Pull to refresh
32
0
Никита Полунин @Pontific

User

Send message

Как отказаться от мизинца для Ctrl + C и Ctrl + V на Windows.

Колпачки клавиш переставил — не сработало
Колпачки клавиш переставил — не сработало

Мои этапы знакомства с "горячими клавишами":

  1. Что это за ерунда, это чтобы пальцы не мёрзли?

  2. Что за дикари используют мышь для копирования и вставки?

  3. Apple, нафига вы даже комбинации клавиш сделали по-своему?

  4. Apple — красавцы! Нажимать ⌘ command большим пальцем куда удобней, чем Ctrl мизинцем — на Windows.

  5. Хочу так же на Windows.

Идея простая: нужно поменять местами (переназначить) левый Ctrl и левый Alt (я обычно использую левую руку для большинства комбинаций).

Раньше я использовал для этих целей программу SharpKeys — она просто добавляет в реестр неообходимые записи.

Потом узнал про PowerToys от Microsoft, которая позволяет делать этот и многие другие фокусы с Windows, не переживая за её целостность и безопасность.

Бонусом можно поназначать себе всяких хитрых символов (≈²€≠) на комбинации клавиш.

Короче, рекомендую.

Tags:
Total votes 2: ↑2 and ↓0+3
Comments2

Простейший Windows-скрипт для поиска дубликатов файлов в папке.

Проблема: в папке с бэкапами фоток скопилось много дубликатов под разными названиями.

Я не нашёл способа корректно эти дубликаты удалить средствами Windows, а ставить что попало на компьютер ради такой ерунды тоже не хотелось. Поэтому написал очень простой скрипт на Powershell. Нужно поместить его в нужную папку и в контекстном меню выбрать "Выполнить с помощью PowerShell". Конечно, сперва проверьте содержимое файла от неизвестного издателя (меня).

Скрипт сравнит размеры всех файлов и, при равенстве размеров, сравнит md5-суммы. Если и размер, и контрольная сумма совпадают, то останется файл с наименьшей длиной названия, а все его дубликаты будут перемещены в корзину.

Результат выполнения
Результат выполнения

Код доступен на GitHub.

Tags:
Total votes 5: ↑5 and ↓0+6
Comments0

Telegram-бот подстрахует ваш сайт

В отличие от профиля в социальной сети или батарейки Nokia 3310, за сайтом нужен кое-какой присмотр, чтобы он продолжал работать.

Если конкретно:

  • Нужно вовремя продлевать домен.

  • Нужно вовремя продлевать SSL-сертификат.

  • Нужно следить за балансом на хостинге.

  • Желательно периодически проверять работоспособность сайта и его основных страниц.

Примеры происшествий с сайтами из моего опыта:

  • Хостинг впал в ничтожество.

  • Разработчик перепутал папки на сервере.

  • Сайт перестал открываться под грузом DDoS-атаки.

  • Сайт взломали и разместили на нём что-то своё.

Если сайт/web-сервис сломался, то возможны такие последствия:

  • Перестают звонить потенциальные клиенты.

  • Начинают жаловаться действующие клиенты.

  • Сайт падает в глазах поисковых алгоритмов, а значит и в поисковой выдаче.

  • Рекламный бюджет тратится впустую.

Как предотвратить эти риски

  • Домен: Включить автопродление у своего регистратора и читать письма от него.

  • SSL-сертификат:Настроить автоматический перевыпуск.Поставить напоминалку в календарь, чтобы проконтролировать.

  • Баланс на хостинге:Включить автопополнение и читать письма от хостинга.

  • Работоспособность сайта:Настроить мониторинг и/или иногда заходить на него.

Вариант для подстраховки

Я написал Telegram-бота для мониторинга сайтов и вот прямо сейчас его рекламирую. Можете попробовать без регистрации и SMS.

 Вот так будут выглядеть уведомления в боте
Вот так будут выглядеть уведомления в боте
  • Бот будет следить за сроками действия домена и сертификата, заранее напомнит о продлении.

  • По 144 раза на дню будет проверять доступность сайта.

  • Сообщит об изменении заголовка страницы. Например, если деньги на хостинге закончатся, то заголовок изменится на что-то вроде “Домен не прилинкован к директории”.

  • Опционально может раз в день/неделю присылать отчёт по сайту (просто для успокоения).

Бот не заменяет собой полноценного аудита/тестирования сайта, но зато максимально прост в использовании и за 20 секунд ваших усилий предотвратит 80% проблем.

Обратная связь (даже та, которая не мажется на хлеб) очень приветствуется!

Tags:
Total votes 4: ↑4 and ↓0+5
Comments0

Биллинговая дилемма, которую не смог решить ChatGPT

Пишу первый в своей жизнь биллинг.

Контекст

У меня есть Telegram-бот для мониторинга сайтов. Я ввожу в нём платный тариф: 1 сайт бесплатно, каждый дополнительный — 2 рубля в день. Пользователь может в любой момент добавлять/удалять сайты, а также пополнять баланс.

Структура данных

  1. Подписки

    1. Пользователь

    2. Дата создания

    3. Дата удаления

    4. Причина удаления
      Например, отключение пользователем или приостановка за неуплату.

  2. Пополнения

    1. Пользователь

    2. Сумма

  3. Списания

    1. За какую подписку

    2. За какой день

    3. Сумма

Задачи

  1. Ежедневно списывать деньги с баланса в соответствии с тем, сколько за истекшие сутки сайтов было на мониторинге.

  2. Отключать мониторинг дополнительных сайтов при исчерпании баланса.

  3. Сразу же уведомлять об этом пользователя.

При этом

  1. Очень хочу делать расчёты по календарным суткам, с полуночи до полуночи. Проще код, лаконичнее детализация расчётов (если понадобится в дальнейшем).

  2. В уведомлении должен быть актуальный баланс на текущий момент.

  3. Не хочу слать уведомления об исчерпании баланса ночью.

  4. Не хочу слать уведомления с задержкой после списания:

    1. Если мониторинг был отключен в полночь, а уведомление пришло только днём, то некрасиво.

    2. Если расчёт в полночь, а отключать днём, в момент уведомления, то с полуночи прошло какое-то время, за которое при дальнейших расчётах будут списаны деньги, а это некрасиво.

    3. ...либо нужно усложнять код и делать этот период бесплатным.

Как бы вы предложили разрешить эту дилемму? Может, есть какие-то общепринятые практики?

Tags:
Total votes 3: ↑3 and ↓0+5
Comments8

Как я снизил нагрузку на базу данных в 53 раза с помощью ChatGPT

Снижение нагрузки на базу данных: 60488 → 1136 CP за сутки
Снижение нагрузки на базу данных: 60488 → 1136 CP за сутки

Недавно запустил Telegram-бота для мониторинга сайтов. Он раз в 10 минут проверяет сайты, добавленные пользователями. Постепенно их проверка стала занимать существенное время.

Сначала я думал, что проблема в медленных сайтах и долгих ответах whois. Потом замерил разные участки кода и понял, что примерно 3 секунды для каждого из сайтов отрабатывает запрос к моей же базе данных (MySQL). С помощью него я получаю результаты предыдущих проверок: последней и последней успешной. Это нужно, чтобы сравнить с текущим результатом и уведомить пользователя об изменениях.

Запрос выглядел примерно так:

SELECT *
FROM 
    checks c
LEFT JOIN (
    SELECT *
    FROM checks c2
    WHERE c2.id = (
            SELECT MAX(c3.id)
            FROM checks c3
            WHERE c3.db_message_id = c2.db_message_id 
              AND c3.response_received = true
        )
) AS sub 
ON  c.db_message_id = sub.db_message_id
WHERE
    c.db_message_id = :db_message_id
ORDER BY c.id DESC 
LIMIT 1;

Я попросил ChatGPT o1-preview оптимизировать код, его предложение:

SELECT *
FROM
    (SELECT * 
     FROM checks 
     WHERE db_message_id = :db_message_id 
     ORDER BY id DESC 
     LIMIT 1) c
LEFT JOIN
    (SELECT *
     FROM checks
     WHERE db_message_id = :db_message_id AND response_received = true
     ORDER BY id DESC
     LIMIT 1) c2
ON 1=1;

Время обработки сайтов снизилось примерно в 10 раз, нагрузка на базу — в 53.

Кажется, подписка окупилась.

Tags:
Total votes 7: ↑6 and ↓1+10
Comments15

Сегодня Яндекс.Метрика отключила сервис мониторинга сайтов.
Я создал замену: Телеграм-бот, который следит за доступностью сайтов и присылает уведомления, если что-то не так.

Сервис Яндекса умел отправлять письма и SMS двух видов:

  • Проблемы с доступностью сайта.

  • Сайт снова доступен.

В своём боте я сделал чуть больше проверок:

  • Сайт недоступен/снова доступен.

  • Изменился заголовок сайта.
    Может выручить, если в какой-то момент вместо сайта появится заглушка "домен не прилинкован к директории" или что-то в этом роде.

  • Истекает срок действия SSL-сертификата или домена.

  • Изменился конечный адрес (если срабатывает переадресация).

Казалось бы, простой пингатор, но на деле нюансов оказалось очень много. Может быть, напишу статью с техническими деталями.

Старался от души и сделал полезный инструмент для владельцев/администраторов сайтов.

Пока что всё бесплатно, пробуйте!

Telegram-бот "Мониторинг сайта"

Вот так выглядит проверка сайта в Tg-боте
Вот так выглядит проверка сайта в Tg-боте

Tags:
Total votes 6: ↑5 and ↓1+7
Comments8

Information

Rating
6,310-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity