Портрет 4X_Pro
Был в Сети 4 нояб. 2025 г., 21:11
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb, slow lifer.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Компьютерное

Советник Сократ

4X_Pro

Сегодня опубликовал первый навык для Яндекс.Алисы — «Советник Сократ». Чтобы запустить навык, скажите Алисе «запусти чат с советником Сократом» и начните отвечать на вопросы. Навык реализует метод майевтики — задает вопросы, которые побуждают к размышлению и помогают самостоятельно найти решение той или иной стоящей перед вами проблемы. Этот метод был придуман почти две с половиной тысячи лет назад философом Сократом, но остается актуальным до сих пор.

Немного о том, как он был создан

CondiLoader — условная асинхронная загрузка скриптов и CSS

4X_Pro

Я уже не раз писал в этом блоге о приемах для ускорения отображения сайтов. Это и отложенная асинхронная загрузка, и условная загрузка по имени класса, и запуск inline JavaScript-кода после загрузки внешнего файла по событию.
Теперь же я сделал библиотеку-загрузчик, которая упрощает и автоматизирует их применение, а также позволяет собрать список всех используемых на сайте библиотек в одном месте. Называется она CondiLoader, скачать ее можно на GitHub или же установить через npm:
npm install condiloader
Работает CondiLoader следующим образом: вы передаете скрипту список объектов для загрузки, он дожидается события DOMContentLoaded. После этого для каждого объекта проверяет, необходимо ли загружать его для данной страницы. Если да, приступает к загрузке, после чего вызывает функцию инициализации, либо пользовательское событие с указанным именем. Все объекты загружаются параллельно, и ошибка при загрузке одного из них на остальные не влияет.
Читать далее…

Два бота для Telegram

4X_Pro
Сегодня запустил двух собственных ботов для Telegram. https://telegram.me/SiteKnockerBot — мониторинг состояния сайта. Отслеживает доступность сайта, наличие на странице заданных ключевых слов, время ответа сервера, и сообщает о возникновении проблем. Также умеет предупреждать о подозрительных ситуациях (выдается почти пустая страница, присутствуют слова, характерные для дефейса или сообщения об ошибках PHP). Из соображений безопасности число сайтов на мониторинге ограничено: до 1 сентября 2017 года можно добавить 10 сайтов для одного пользователя, после — 5. https://telegram.me/TypograferBot — типографирование текста. Расставляет правильные кавычки, тире, многоточия, пробелы вокруг знаков препинания, простейшие дроби, обозначения типа см2, м2 и т.п., а также знаки дюйма, градусы по Цельсию и Фаренгейту. За основу взят типографер из моей давней разработки — TextCMS.
Читать далее…

Собственный сервис оптимизации загрузки сайтов

4X_Pro
Рад сообщить, что сегодня запустил собственный сервис для оптимизации времени загрузки сайтов: 2Seconds.4XPro.Ru. Он позволяет легко и быстро получить список всех CSS и JavaScript страницы (если они прописаны через теги link и script), минифицировать их и склеить в один файл. Кроме того, сервис позволяет автоматически встраивать в CSS графические файлы меньше указанного размера с помощью data:uri.
Читать далее…

Обновление TextCMS до версии 1.01

4X_Pro
Рад сообщить всем читателям, что недавно я выпустил новую версию одной из своих разработкой — TextCMS. Она представляет собой предельно простую систему управления сайтом, работающую без использованя баз данных, где на одной странице любое динамическое содержимое можно комбинировать произвольным образом. В новой версии был заменени визуальный редактор и исправлено несколько незначительных ошибок.
Читать далее…

Yaml Form Generator -- простое и быстро создание форм для PHP

4X_Pro

В прошлом году, работая над одним проектом, задумался, сколько же времени уходит на то, чтобы сделать качественные формы: нужно сверстать форму на HTML, сделать валидацию формы на стороне клиента, а потом и на стороне сервера, а для некоторых типов данных выполнить еще ряд действий: преобразовать дату в Unix Timestamp и обратно, обработать ситуацию "снятый checkbox", проверить, что злоумышленник не добавил каких-то своих полей. Поскольку все эти действия весьма рутинны, и я задумался над тем, можно ли их как-то автоматизировать, причем так, чтобы форма целиком и полностью описывалась в одном месте.


Читать далее…

Задать вопрос