Мой сайт, который вы сейчас читаете, построен при помощи генератора статических сайтов Jekyll. Очень много о статических сайтах и Jekyll в частности можно прочитать в Интернете. Пользуясь этой технологией, я увидел, что Jekyll не умеет из коробки минифицировать HTML разметку и JavaScript код. В разметке или коде, который пишет человек много лишних символов: отступы, ненужные пробелы, комментарии. Всё это не влияет на отображение страниц, однако занимает место и всегда передаётся клиентскому браузеру, растрачивая трафик пользователя и его время для загрузки страницы. Сегодня редко встретишь сайты, где не используется минификация кода. Под катом вы найдёте как я для себя, пусть не окончательно, но решил эту проблему при использовании Jekyll, при этом сохраняя поддержку с GitHub Pages.
Блог
Разработал минификаторы HTML и JavaScript для Jekyll
Дистанционное управление громкостью IP TV приставки при помощи Attiny13A
Как-то мне позвонили из Ростелекома и предложили подключить IP TV. Ну что же, решил я, пусть жена с сыном смотрят в спальне мультики и согласился. И вот принесли мне заветную коробочку. Т.к. отдельного телевизора для неё у меня нет, то решил я значит подключить её к старому монитору, через переходник HDMI-VGA. Для звука у меня были старые компьютерные колонки. Решено - сделано. Всё прекрасно завелось с одним но: с пульта, который шёл в комплекте с приставкой, невозможно регулировать громкость звука. Как так то? Честно сказать никогда с таким не сталкивался. Особо я в причинах не разбирался, но вроде как пульт от Ростелекома прописывается в телевизоре, так что с пульта меняется громкость на самом телевизоре, а не на выходе из приставки. Удобно? Конечно, если подключить приставку к современному телевизору. А вот вставать с кровати и крутить крутилку на колонках каждый раз, когда нужно поменять громкость - неудобно. Решением этого вопроса и займёмся. Соберём отдельное устройство, которое будет регулировать громкость на наших колонках по сигналу с пульта.
Разработал два модуля для OpenScad, которые рисуют параллелепипед со скруглёнными краями
Недавно прочитал интересную статью на хабре. В этой статье рассказывается про дизайн иконок для смартфонов, где вместо квадратных иконок со скруглёнными краями используется так называемый квадрокруг.
Если кратко, то использование таких кривых даёт более плавное скругление углов прямоугольника без резких переходов.
И вот я подумал, почему бы не использовать квадрокруги в своих 3D моделях? Модели я разрабатываю в OpenScad, обычно для печати их на 3D принтере. И часто в этом случае приходится применять скругление острых углов, например, при разработке корпусов для своих самоделок.Улучшил скрипт для увеличения картинок при клике на них
Улучшил скрипт, для увеличения картинок, о котором я писал раньше. Теперь изображения большого размера сразу не загружаются. Загрузка начинается только после клика на картинку. Пришлось повозиться с кэшированием и особенностями работы в разных браузерах. Новый скрипт и пример его работы представлен по катом. А последние изменения, если таковые будут, можно отслеживать на Github. К сожалению, история разработки не сохранилась из-за проблем с git.
В обновлённом скрипте обрабатываются картинки с тегом “img”, имеющие атрибут “src-big”. В этот атрибут нужно прописать путь к изображению высокого разрешения. А в атрибут “src” нужно установить путь к изображению низкого разрешения. Размер уменьшенного изображения определяется размером картинки низкого разрешения, а размер увеличенного изображения - размерами экрана.Сделал скрипт для увеличения картинок при клике на них
Вчера и сегодня делал небольшой скрипт для своего сайта. Сделал. Теперь, если у тега “img” есть атрибут “scalable”, то на картинку можно будет кликнуть, чтобы её увеличить. В значение атрибута “scalable” нужно задать размер маленькой картинки (с единицами измерения css).
Наконец можно будет заняться разделом “Мои фотографии”!
Не стал искать готовых решений для такой задачи. Осваивать JS лучше на практике.
Под катом пример работы, код html, javascript с комментариями и css.Настройка VPS для проброса портов на домашний веб сервер
Тут я выяснил, что купить выделенный сервер стоит очень дёшево. По крайней мере дешевле, чем купить выделенный белый IP у моего провайдера. Ну раз такое дело, то я решил отказаться от белого IP и дать доступ к своим домашним веб сереверам (nextcloud и git сервер) при помощи выделенного сервера. К тому же теперь можно не зависить от провайдера, а раздавать интернет для домашнего сервера хоть через телефон.
VPS (от англ. Virtual Private Server) виртуальный сервер, который создается средствами виртуализации на физическом сервере, который в свою очередь находится в дата-центре провайдера VPS. Таких провайдеров очень много. К VPS даётся доступ по SSH под root пользователем. Можно выбрать разные операционные системы. У меня Ubuntu 18.04.
Критерием выбора VPS была цена. Чем дешевле, тем лучше, так как у такого сервера в моём случае будет только одна задача: перенаправлять трафик пришедший на белый IP VPS по VPN тунелю на мой домашний Raspberry Pi компьютер.
Действительно, всего за 130 рублей в месяц у меня есть VPS с 512 МБ оперативной памяти и 10 ГБ места на HDD. Этого с лихвой хватит на перенаправление трафика. А учитывая, что мой провайдер просит 180 рублей просто за выделенный IP, то это очень выгодная покупка.
Теперь осталось настроить VPS.
Чистая установка nextcloud на raspberry pi
Наконец то установил Nextcloud на свой домашний сервер на raspberry pi. Я конечно лёгких путей не искал, решил собрать всё из исходников, вместо того, чтобы просто установить snap пакет. Зачем? Ну во-первых, у меня не было опыта работы с nginx, хотелось чему-то научиться, я думаю это пригодится для будущих проектов. Во-вторых, у меня не было опыта работы с postgresql. А это точно пригодится. К тому же у меня уже стоял на сервере postgresql - на нём крутится gogs. Доставить на существующую СУБД ещё один продукт мне кажется более целостным решением. Ну и ещё, я никогда не работал с php, на котором написан nextcloud. Но правда не знаю, где могут мне могут пригодиться полученные знания об устройстве php 😀. Попутно узнал что есть такая штука redis. Запомню, может это тоже в будущем понадобится.
В итоге всё работает. И пока всё нравится. Малинка справляется.
Под катом мои наброски о настройке. Там всё очень неподробно - это просто записи ключевых моментов, чтобы не забыть. Кто будет проделывать то же самое должен разобраться.Cписок логинов, которые подбирали к моему ssh
У меня дома на raspberry pi крутятся разные мои сервисы. И конечно у меня есть ssh доступ к этому компьютеру. Доступ настроен через ssh-ключи, порт стандартный 22.
Так вот, я постоянно вижу попытки взлома ssh, а именно: пытаются подобрать логин для входа. Ну что же, давайте, шутки ради, посмотрим какие логины подставляют мамкины хацкеры в мой ssh. Я набросал парочку скриптов, которые собирают эти логины в файл. За несколько месяцев набралось уже 8225 уникальных. Под катом мои скрипты 😀.Ремонт робота-пылесоса Xiaomi Roborock Sweep One после ошибки 1
Примерно года полтора назад у меня сломался робот-пылесос Xiaomi Roborock Sweep One. Я нашёл причину поломки, и даже написал про это на 4pda и Pikabu. И вот у меня появился мой личный блог. Ну что же, продублирую и здесь. Скажу сразу, пылесос работает, такой ошибки больше не возникало. Возможно это кому-то поможет справиться с этой проблемой.
Преобразование данных csv в объекты JavaScript
Недавно требовалось по работе обрабатывать большие массивы данных из базы данных. Решил для этого использовать свои новые знания по JavaScript. Сначала всё начиналось как решение моей частной задачи. Но вскоре стало интересно сделать универсальный модуль, которым бы могли пользоваться другие люди. Это мой первый модуль для npm! Выпустил под лицензией MIT. Под катом приведена установка и описание работы с модулем.
Wix.com как бесплатный backend для вашего приложения
Однажды мне захотелось сделать небольшое, но, как мне кажется, полезное веб приложение Ethereum events. Я его сделал, но встал вопрос о том, как поделиться им с другими людьми да и самому удобно пользоваться, т.е. нужен был хостинг веб сайта. Конечно, когда ты создаёшь большой проект, то вопрос где размещать свой сайт не стоит: вы скорей всего купите какой-нибудь VPS. Но для относительно простого сайта тратить деньги на хостинг обычно нет никакого желания.