Сегодня я узнал, что
То есть если есть такой HTML:
то селектор
хотя должно быть всё наоборот
: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
Loskir's
Сегодня я узнал, что :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 хотя должно быть всё наоборот
одно из будущих решений этой проблемы —
и угадайте, в каком браузере оно реализовано?
p:nth-child(1 of .a)
и угадайте, в каком браузере оно реализовано?
🌚10👎5😁1
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 добавить путь к этому файлу
Скачать: тут
Полдня мучений с CSS прошли не зря, и я сделал кастомные стили для VSCode, в которых пофиксил несколько бесячих проблем:
• уменьшил высоту вкладок
• немного уменьшил отступы у вкладок
• сделал так, чтобы ширина вкладок в ряду была равномерной
• сделал так, чтобы в последнем ряду вкладки не растягивались на всю ширину, а прижимались к левому краю
• сделал так, чтобы Editor Toolbar мог быть единственным элементом в строке (раньше слева от него всегда должна была стоять ещё одна вкладка)
Как поставить?
1. скачать расширение Custom CSS
2. создать css-файл где-нибудь (наверное, лучше в какой-нибудь папке с конфигами vscode)
3. в настройках Custom CSS добавить путь к этому файлу
Скачать: тут
❤5👍2
type PelmenShape = 'halfcircle' | 'circle' | 'square' | 'rectangle' | string
👍3
Forwarded from Теперь живите с этим
По стандарту России, Белоруссии, Армении и Киргизии, пельмень должен иметь "форму полукруга, круга, квадрата, прямоугольника или произвольную форму"
🔥1
Купили Xiaomi 12
Папа уже много лет пользовался старым добрым Xiaomi Mi8, но вчера телефон внезапно стал странно себя вести, а потом и вовсе ушел в бутлуп. Сделали Factory Reset через TWRP, но через несколько минут ситуация повторилась. Пришлось искать замену
Заказали на яндекс маркете, обошлось примерно в 45 тысяч рублей + кешбек за версию 8/256
Девайсом особо не пользовался, но в руках подержать успел. Он очень компактный: по ширине один в один как пиксель 5, по высоте — чуть больше. В руке лежит очень удобно
В остальном всё тоже как надо: Snapdragon 8 Gen 1, 120 герц, UFS3.1, неплохая камера, неплохие динамики
В общем, мне кажется, хороший девайс за свои деньги
Папа уже много лет пользовался старым добрым 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 на локали, чтобы подсказки автоматически обновлялись при изменении.
Есть довольно старый бот на js, локали у которого лежат в yaml-файлах. Хочется иметь автодополнение ключей локалей при написании кода.
Разумеется, из yaml-файла не так просто вытащить ключи. Решение — кодогенерация .d.ts файлов!
Пишем простенький скрипт, который
- читает yaml-файл и парсит его
- проходится по нему и рекурсивно собирает все возможные ключи
- генерирует валидную декларацию (например, просто подставляет значения в строку 🌚)
- кладет этот файл в специальную папку, заигноренную в гите
Дальше импортируем типы из этого файла обычным способом, патчим тайпинги библиотеки и вуаля! Заодно не забываем настроить file watcher на локали, чтобы подсказки автоматически обновлялись при изменении.
🔥10👍1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🐬 А что это тут у нас? Настоящий Flipper Zero!
Маленький список его возможностей:
• iButton ключи от домофона (чтение и эмуляция)
• Инфракрасный диапазон (правда, пульт от кондиционера эмулировать сложнее чем кажется)
• Sub-GHz радио диапазон (например, 433МГц пульты)
• NFC-теги (чтение и эмуляция, запись пока не готова) (работает даже с тройками и банковскими картами, правда только на чтение информации)
• 125КГц RFID (например, некоторые карточки-пропуски)
• Режим Bad USB (когда он притворяется клавиатурой или другим устройством и может "нажимать на кнопки" на компьютере)
Особенно хорошо сделана софтовая часть. Например, есть приложения для телефонов и компьютеров, с которых можно в один клик обновить прошивку, посмотреть сохраненные сигналы и даже постримить картинку с экрана, при этом удаленно нажимая на кнопки. Сама прошивка тоже юзер-френдли, ей приятно пользоваться. Для многих типов сигналов добавлены отдельные парсеры, чтобы на экране показывалась полезная информация, а не сырые данные.
И не стоит забывать про открытость системы. Кто угодно может модифицировать официальную прошивку или написать своё приложение. Например, сейчас есть несколько активно развивающихся кастомных прошивок с вырезанными ограничениями и дополнительными фишками. Ещё есть awesome-flipperzero — сборник известных проектов.
А скоро обещают выкатить поддержку динамической загрузки программ с SD-карты (сейчас они должны быть вшиты в прошивку). Представьте, насколько круто это будет!
В общем, супер интересный девайс. Я очень доволен.
Маленький список его возможностей:
• 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+
Прикрепляю ссылочку на видос Mitxela о проекте RockBox — кастомной прошивке для музыкальных плееров, популярной в нулевых-десятых годах и оказавшей на него сильное влияние. И я не могу с ним не согласиться.
Я тоже имел честь пользоваться RockBox'ом с десяток лет назад, причём именно на Sandisk Sansa Clip+ с его шестью кнопками и монохромным экраном. Он и сейчас лежит себе спокойно где-то в ящике, правда не включается.
В то время (да и сейчас) меня завораживал RockBox. Своим обилием кастомных приложений и игр, proof-of-concept программами (бесполезными, но такими интересными), вроде просмотрщика изображений, эмулирующего оттенки серого через ШИМ, да даже настоящим Doom!
И именно такие вайбы я ценю во флиппере.
P.S. К слову, у него ровно такая же схема управления (d-pad, центральная кнопка и одна отдельная) и такое же разрешение экрана (128×64), как у Sansa Clip+
YouTube
Ode to Rockbox
Not actually an ode. Normality will resume shortly.
https://patreon.com/mitxela
https://paypal.me/mitxela
More info: https://mitxela.com/ode_to_rockbox
https://patreon.com/mitxela
https://paypal.me/mitxela
More info: https://mitxela.com/ode_to_rockbox
👍3❤1👎1😁1
🥳 grammY 1.10
На днях вышло большое обновление для grammY — современной typescript-библиотеки для создания телеграм-ботов.
Conversations, ctx.has, обновления сессий и клавиатур. Разбираемся, что нового »
На днях вышло большое обновление для grammY — современной typescript-библиотеки для создания телеграм-ботов.
Conversations, ctx.has, обновления сессий и клавиатур. Разбираемся, что нового »
Teletype
🎉 grammY 1.10
На днях вышло большое обновление для grammY — современной typescript-библиотеки для создания телеграм-ботов.
🔥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 сразу заработал!
Наконец-то перенёс 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 с фиксами в мой репозиторий!
Респект таким мейнтейнерам.
Как же я был удивлён, когда через три дня автор библиотеки написал огромный комментарий на три страницы с объяснением проблем и способами их решения. И даже сделал PR с фиксами в мой репозиторий!
Респект таким мейнтейнерам.
👍24🔥9😁1