Sleepless tech | Евгений J
رفتن به کانال در Telegram
DIY, web, coffee Автоматизирую все и вся, ремонтирую что сломалось, трачу время на just-for-fun проекты. Пишу про хардвар и софтвар и не только. http://jem-space.ru Связь со мной: @jem_jem Донаты на припой и хостинги: https://bit.ly/2MKcRoJ
نمایش بیشتر759
مشترکین
-124 ساعت
-27 روز
-230 روز
آرشیو پست ها
Мама, я в телевизоре chatGPT
Запросил у чата статьи по разработке ботов и он выдал мне мою же. А вообще это называется GEO, когда ты оптимизируешь сайт для генеративных поисковых систем (чат-боты и AI-помощники), с целью попасть в их ответы. Я правда ничего для этого не делал)
Ну чтож, в очередной раз мой мелкий сервак на DO забил память. В этот раз виновником оказались логи journal.
Что то мне подсказывало, что просто так удалять директории с логами не стоит. И действительно, у journalctl есть команды которые позволяют сделать это правильно.
sudo journalctl --vacuum-time=2d удалить все логи старше 2 дней
sudo journalctl --vacuum-size=100M удалить логи, оставив только 100Мб
А потом можно еще и в конфиге /etc/systemd/journald.conf прописать чтобы он много не хранил
SystemMaxUse=200Mи перезапустить его
sudo systemctl restart systemd-journaldХей, знатоки железа, подскажите.
Есть 3 модуля BT-05, которые не хотят пейрится с 3 телефонами на андроид (v7, 10, 14). Покупал их тыщу лет назад. Общаюсь с ними AT командами, отвечают адекватно, выставил им пароли. Но при пейринге либо ошибка что пароль не подходит либо просто что не удалось законнектиться.
Че за прикол? Если у них версия блютус старая, то должны пейриться со старым андроидом.
Может я что то упускаю или есть какая нить доп настройка на андроидах? Или меня просто китайцы обманули и подсунули какое то нерабочее г*вно?
Модуль похож на этот https://roboshop.spb.ru/modules/moduli-besprovodnoj-svyazi/bluetooth-moduli/hm-10-mlt-bt05-cc2541-board
Мониторим мобильный интернет
Ну чтож, пришло время очередного беполезного бота пет-проекта. Сегодня это сервис мониторинга мобильного интернета в Саратове, который присылает вам статус в телегу с утра, чтобы вы заранее знали (пока еще дома), что по дороге на работу вы не посмотрите ютуб и не почитаете РБК (или че вы там читаете).
Я взял старый смартфон с симкой для мобильного интернета и запустил на нем Termux со скриптом ежеминутного DDOSa моего сервера.
#!/data/data/com.termux/files/usr/bin/bash
while true
do
curl -H "Authorization: Bearer your_auth_secret" http://YOUR_VPS_DOMAIN/heartbeat
sleep 60
done
Если сервер не получил запрос, значит интернет на телефоне пропал. Юзер может подписаться на изменение статуса (если уж прям так интересно), либо просто получать уведомление по утрам.
Потыкать можно тут @mobile_check_64_bot
Исходники тут (можете запустить в своем городе, в README вроде доступно описал все).
Вообще, задача была проверить, можно ли использовать старый смартфон в качестве платформы для запуска кода. Как оказалось, вполне можно!
Чуть подробнее описал в заметках https://jem-space.ru/old-smartphone-as-sensor/
Всем хорошего воскресенья! ✌️Долго не мог понять, что я поправил в коде, что бот перестал работать. А оно вон че, просто совпало.
Только botfather как то работает, хотя может потому что он уже миниапп.
Машина времени существует!
Это очевидно, потому что кто-то украл мою классную идею которая пришла мне в голову в 5 утра!
Я подумал, а почему бы вместо заднего фонаря для вела не сделать бегущую строку размером с одну секцию MAX7219?
Можно будет писать "Подписывайтесь на мой канал" и провоцировать ДТП или всякие другие глупости. Достаточно будет мелкого акума, адруино нано и блютус модуля HC-05 (последние 2 можно заменить esp32). Ну и приложеньку накидать с Cordova для настройки.
И в этот же день мне попадается ссылка на Magene L308. Реализация конечно покруче, но и сделано не на коленке
https://youtu.be/5twejpxRfV8?si=GcShUKJvl64slIjG
Чуть чуть обидно, но для себя можно сделать. Нарыскал в 5 утра в своих запасах почти все (спасибо шопоголизму на алиэкспресс).
Как словить стресс?
1. Готовишь расширение
2. Релизишь
3. Пишешь пост в канал про релиз
4. Открываешь расширение и находишь баг
5. Profit
Ладно, ждите завтра багфикс выкачу)
Как закрыть вкладку в chrome?
Признаюсь, я тот человек, у которого есть 100500 вкладок (и все они ВАЖНЫ!!!).
Да, я могу закрыть их в любой момент, но не сейчас.
Открою ещё одну вкладку — ничего страшного.
И в какой то момент ты уже не видишь свою вкладку в списке сверху и не знаешь как ее закрыть (хоть лезь в консоль и пиши window.close()). Поэтому я сделал расширение для себя Close Tab
Прикололо, что я не стал воровать механику у других расширений и придумал свой велосипед. Часто, окно браузера прижато к правой части окна, поэтому легко смахнуть мышкой вправо до конца и зацепить очень тонкий (3px) сайдбар, который вылезет большой областью, кликнув на которую можно закрыть окно. Плюсом есть возможность использовать сочетание CMD + E (хотя оказалось что есть стандартное для хрома CMD + W) и даже возможность закрыть вкладку при помощи контекстного меню (это я уже украл).
В общем, если у кого есть такая же проблема, попробуйте, вдруг будет полезно.
https://chromewebstore.google.com/detail/ijfdkhipeejdbaeddoklajgllchcjceh?utm_source=item-share-cb
Интересное использование curl
Кайфую от консольных команд. Очевидно, что не знаю и 10% возможностей curl.
Вот, например, нужно было исключить влияние браузера и посмотреть как сервер отвечает на запрос.
Создаем файлик curl-format.txt с таким содержимым:
time_namelookup: %{time_namelookup}\n
time_connect: %{time_connect}\n
time_starttransfer: %{time_starttransfer}\n
total_time: %{time_total}\n
🚀 Выполняем команду
curl -w "@curl-format.txt" -o /dev/null -s "https://pdf-convert.ru/welcome/e/pdf-to-png/"
Получаем отформатированный ответ.Почему я использую eleventy в 2025?
Честно говоря, в информационном поле eleventy не особо светится, больше всякие Astro/NextJS. Но хуже он от этого не стал.
Для тех кто не знаком с eleventy — это простой генератор статических сайтов. Делаешь html шаблон и наполняешь его данным + css/js.
Работал с ним чуть чуть пару лет назад и тут нужно было наклепать пару однотипных лендингов. Пришлось погрузиться чуть глубже, написал заметку с советами, которые чуток упрощают разработку.
https://jem-space.ru/eleventy-in-2025/
Кстати, а вы что юзаете, если пилите лендинги и подобную статику?
+3
Утром я решаю самые важные задачи, чтобы остальная часть дня была более лайтовая
Сегодня с утра я модифицирую назойливую и громкую детскую игрушку, производители которой явно бездетные и не понимают что за 10 минут с ума сойдет и расколется даже стойкий шпион.
Поэтому я пошел на форум Радиокот, где люди обсирают друг друга за незнание тока коллектора транзистора КТ315 или просто за то, что вообще решили что-то написать на форум не получив диплом электрика. Там предложили пожонглировать резисторами от 10 до 100 Ом либо заклеить динамик скотчем (или ватой и скотчем). Я люблю пайку, поэтому я выбрал вату и скотч. Почему? Потому что я осознанный инженер и выбираю инструменты в соответствии с задачей.
Как видим из графиков, результат работы - 15Дб. Вполне приемлемо.
Всем хорошего рабочего дня!
Кстати, какие задачи сегодня решаете вы?
Почему я отказался от сборки gulp'ом?
Извиняюсь за тупой и очевидный кликбейт. Gulp в 2025 относительный кек. Почему относительный? Да потому что в принципе работает и свои задачи выполняет. А раз работает, то не стыдно это использовать.
На волне разработки расширений под Chrome нашел свое старое расширение Security Message Viewer для вк. Оказалось, что его до сих пор устанавливают люди (и не удаляют, хотя оно не работает). А всего у него 90 пользователей. Запили его 9 лет назад и вот теперь в панели разработчика расширений маячит плашка, что его выпилят, потому что у него манифест старой версии.
Расширение позволяет просматривать сообщения в вк без отметки о прочтении — наводишь на диалог и всплывает тултип с непрочитанными сообщениями. В вк давно не сижу, поэтому и перестал поддерживать
Решил реинкарнировать, заглянул под капот, прослезился (там jQuery, IIFE, сборщик gulp, встроенная реклама моих каналов в телеге), вспомнил себя джуна 😅. Решил оставить gulp, но на production билде он начал плеваться ошибками, видать с node > 12 он не дружит, пришлось заменить на vite. JQuery оставил (just for fun, хотя на самом деле попробовал выпилить и чет там поехало, лень разбираться даже с чатом). Написал описание с улучшенным SEO.
Если вдруг кому будет полезно — VK Security Message Viewer
Привет!
Заказал себе кронштейн под моник и понял, что монитор жесть какой древний (Acer G226) и у него нет креплений под vesa. Пришлось задизайнить переходник. Вышло с 3 попытки, но вроде норм.
Заценить модельку можно тут https://www.thingiverse.com/thing:7084390
Chrome Identity API
Ладно, чтобы отойти от вчерашнего фиаско (я таки запаял, но оно не работает, кек) расскажу вам про Chrome Identity API.
Пилил тут расширение Chrome и чтобы аутентифицировать юзера не хотел делать лишних телодвижений и узнал, что если юзер уже залогинен в Chrome, можно брать OAuth токен и использовать его в качестве аутентификации. Если повезет, это можно делать вообще без доп шагов, если нет — то придется показать юзеру модалку с авторизацией через гугл аккаунт.
Звучит просто, но пока нашел ручку в google cloud console, чтобы получить API токен для расширения, посмотрел все ролики на ютуб (включая мемы из нижнего интернета).
А использовать его довольно просто
chrome.identity.getAuthToken({ interactive: false }, (token) => {
if (chrome.runtime.lastError || !token) {
chrome.identity.getAuthToken(
{ interactive: true },
(interactiveToken) => {
console.log("Ну чтож, получили токен с модалкой")
}) else {
console.log("Ура, получилось по тихой взять токен")
}
})
https://jem-space.ru/chrome-identity/Ну что, знатоки, есть шанс запаять такое паяльником (без фена)?
Корпус: LGA14
PAM в ssh_config
Привет!
Недавно взял себе сервак на 2 Гб RAM на JustHost. По деньгам как DigitalOcean, только памяти в 2 раза больше.
Настроил как обычно (создал юзера, отключил вход для рута и по паролю). Но через пару дней при проверке обнаружилось, что по паролю все еще можно войти. Чатгопоты посоветовал отключить PAM в настройках ssh_config. Я особо не шарю, отключил - заработало!
И тут на днях настраиваю dokku для деплоя по своей инструкции, но запушить в dokku не могу, ругается на публичный ключ. Все ключи прописаны, права у юзеров в порядке, конфиги тоже. Но все равно ругается на публичный ключ. Спустя пару дней поисков и переписок с чатом закралась мысль, что дело в PAM. Причем этот АI пес даже не предложил такой вариант🤨
Кароч, как оказалось, PAM — это модуль отвечающий за аутентификацию. Не особо проникся его плюшками, но без него аутентификация проводится силами самого ssh сервиса, и, видимо, как то урезанно и негибко.
Морали нет, просто буду иметь в виду 😁
Кто шарит в теме, поясните почему без него не работает))
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
