Генератор статических блогов Pelican

Довольно давно я хотел перевести этот блог на самописный движок. Я даже написал несколько на Django и на flask, но не один из них так и не довел до конца ввиду отсутствия времени, и более приоритетных задач. Со временем я, разумется, понял что занятие это совершенно бессмысленное, и решил оставить Wordpress. И все даже было относительно хорошо, и я мирился с его задумчивостью, разного рода глюками и багами, пока после очередного обновления Wordpress страницы не начали генерироваться в среднем по 5 секунд. Я даже не стал разбираться в чем дело. За то временя сколько я использую Wordpress, мне столько раз нужно было что-то поправлять в нем, что я уже сбился со счета, и мне это порядком надоело. В общем, я решил что пора переходить на какую-то другую платформу.

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

В отличии от традиционных блог-платформ таких как Wordpress, для работы статических блог-платформ требуется только веб-сервер. Не требуется ни базы данных, ни интерпретатора какого либо языка. Только веб-сервер. Весь сайт генерируется в самодостаточные html файлы прямо на том же компьютере, на котором вы пишите статьи, и затем загружаются на сервер, или облачную платформу.

Вот далеко не полный список преимуществ которые предоставляют статические генераторы блогов:

  • Производительность - быстрее, чем отдача статического контента уже не может быть ничего;
  • Дешевая масштабируемость - за пару минут блог размещается на Amazon S3 и стоить это будет считанные центы. Если ссылка на какую либо запись окажется на хабре, то S3 с легкостью выдержит такую нагрузку и стоить это будет все те же копейки;
  • Легко найти где разместить блог - не обязательно держать отдельный сервер ради блога. Можно разместить на Github pages, Amazon S3 или даже в Dropbox;
  • Безопасность - нет риска взлома блога. Собственно и ломать то нечего. Не нужно следить за обновлениями, за новыми дырами в безопасности популярных блог платформ;

Я совсем недавно закончил переносить блог, и пока свежи воспоминания решил написать эту заметку на случай, если кому-то ещё это будет интересно.

Из статических блог-платформ сейчас наиболее популярная - Jekyll, но его я сразу отмел так как Ruby мне не очень по душе. Я довольно неплохо знаю Python, поэтому начал искать статические блог-платформы на нем, и, в итоге, остановился на Pelican.

Читать дальше →

Whatsie - неофициальный десктопный клиент Whatsapp

Не так давно Whatsapp запустили веб-версию своего чат мессенджера который работает синхронизируясь с мобильным клиентом. Это определенно замечательная новость, но использовать whatsapp в браузере не так удобно, как хотелось бы. Однако, появление веб-версии Whatsapp позволило разработчикам сделать неофициальные клиенты, доступные под различные платформамы и предоставлящие более привычный пользовательский опыт. Один из таких неофициальных клиентов - Whatsie.

Whatsie - это простой десктопный Linux использующий "под капотом" веб-версию Whatsapp. Доступен для Linux, Windows и MacOS.

Читать дальше →

Делаем поддержку Flash и H.264 в Vivaldi под Linux

Не так давно был релиз браузера Vivaldi. Для меня, как для человека немного скучающего по старой, доброй и настраиваемой опере он показался довольно неплохим, и в данный момент я даю ему шанс в качестве основного веб-браузера. После установки Vivaldi, первым делом я столкнулся с отсутствием флэша. Даже ютуб с его H.264 не работал!

В этом небольшом посте я опишу как включить flash и H.264 в Vivaldi под Linux.

Читать дальше →

Получаем погоду в красивом виде в терминале используя лишь wget

wttr.in - это веб-фронтенд для wego, небольшой утилиты для Linux терминала написанной на языке Golang. Сервис позволяет используя любой консольный HTTP клиент посмотреть погоду не покидая терминала, да ещё красиво и стильно! И да, конечно можно выводить погоду в conky.

По умолчанию сервис пытается получить информацию о текущем местоположении по IP-адресу, но если у него это не выходит то можно указать вручную. Указать для какого расположения необходим прогноз погоды можно передав:

  • Название города;
  • 3-х буквенный код аэропорта;
  • ZIP код;

Сервис позволяет получить погоду на три дня вперед, фазу луны и поддерживает как метрическую систему отображения температуры, так и "имперскую". Хотя кому нужна имперская система в России? :)

Сам wego и, соответственно, wttr в качестве источника информации о погоде использует WorldWeatherOnline.

Читать дальше →

Используем Gnome 3.18 интергацию с Google Drive в Unity, Xfce4 и других рабочих окружениях

Последний релиз gnome 3.18 среди нововведений добавил одну весьма полезную - интеграцию с Google Drive (Google диск) без сторонних приложений. На фоне того, что Google до сих пор не выпустила официального приложения Google Drive для Linux - это довольно привлекательная возможность. Тем более, что интеграцию можно настроить и в других рабочих окружениях. Для того, чтобы включить интеграцию достаточно просто в настройках gnome добавить учетную запись Google, и разрешить Gnome управлять файлами.

Читать дальше →

Кэшируем Wordpress средствами Nginx

Wordpress далеко не самая производительная платформа для ведения блогов, и крупные сайты, как правило, используют кэширование для ускроения его работы. Для wordpress, есть много популярных дополнений реализующих кэширование, но все они на мой взгляд довольно осложненные, и, как правило, требуют либо установки дополнительного программного обеспечения, такого как, например, Varnish или memcached, либо перекладывают кэширование на плечи PHP который тоже производительным не назовешь. В этом посте я расскажу как настроить кэширование wordpress средствами nginx, без установки дополнительного ПО.

В nginx есть FastCGI модуль который предоставляет директивы, позволяющие кэшировать ответ от fastcgi. Использование данного модуля избавляет нас от необходимости использовать сторонние средства кэширования. Модуль так же позволяет нам не кэшировать часть ресурсов опираясь на различные параметры запроса, такие как, например: тип (GET, POST), куки, адрес страницы и другие. Сам модуль умеет исключительно добавлять в кэш, но не умеет его очищать или удалять отдельные записи из него. Без очистки кэша при добавлении, редактировании и добавлении комментария к посту кэш не будет обновляться, и сделанные изменения будут видны только с большой задержкой, поэтому для очистки кэша мы будем использовать сторонний nginx модуль - nginx_cache_purge.

Читать дальше →

Создаём загрузочный USB диск с Windows из под Linux

В ubuntu уже есть приложение для создания образов дисков - Startup Disk Creator, но оно умеет создавать только загрузочные USB с Linux. Для создания загрузочного USB-диска с Windows из Linux, существует WinUSB, но она довольно давно не обновлялась, и честно говоря, у меня не заработала. Данный пост довольно подробный, и рассчитан преимущественно на людей, плохо знакомых с Linux.

Перед тем как я продолжу, следует указать что в Windows мире два метода загрузки:

  • MBR, при котором в начале диска резервируется место, и располагается специальный загрузочный файл;
  • EFI, при котором исполняемый файл загрузчика хранится в стандартном расположении на FAT32 файловой системе;

Если вы не знаете какой выбрать, то наиболее часто используемый вариант который работает без модификации файлов Windows - это msdos таблица разделов с fat32 файловой системой и загрузочным флагом.

Читать дальше →

Минималистичный док Plank

Plank - это минималистичный док написанный на языке Vala, и используемый по-умолчанию в Elementary OS. Несмотря на то, что он минималистичен в нем есть все необходимые функции, и главное он работает крайне шустро и стабильно! Разумеется, это не единственный док для Linux, но в отличии от остальных, plank активно разрабатывается, и работает стабильно во всех дистрибутивах и рабочих окружениях.

Читать дальше →

Восстанавливаем свалившийся в busybox из-за ошибки initramfs Linux

Недавно при включении компьютера, Ubuntu меня "порадовала" тем, что решила не загружаться и "свалилась" в busybox в момент инициализации пользовательского пространства (userspace) оно же initramfs. Немного ошарашенный начал разбираться. Оказалось, что мой старенький жёсткий диск дал небольшой сбой, и подпортил суперблок файловой системы. Впрочем, оказалось что это не смертельно, и проблема эта, довольно просто и быстро решается.

Суперблок - это часть на диске, отведенная под служебную информацию файловой системы. В нем хранится информация о разделе: тип файловой системы, размер, статус и информацию о других структурах метаданных. В случае потери информации с суперблока, велик риск потерять всю информацию с раздела. Поэтому Linux хранит несколько копий этой информации - т.е. несколько суперблоков.

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

Читать дальше →

Разворачиваем приватный pypi репозиторий с localshop

Время от времени, я пишу небольшие утилиты, библиотеки и приложения на python для себя, и не всегда я готов делится этими утилитами и библиотеками, но хотелось бы иметь возможность их удобно устанавливать, и желательно привычным pip в virtualenv. Для этого я довольно давно организовал себе локальный, приватный pypi сервер. Реализаций локальный pypi серверов довольно много, и я перепробовал их все. Большинство из них откровенно неработающие, другие безбожно глючат и падают от малейшего чиха. В конечном итоге для себя я выбрал localshop. В этом небольшом посте я расскажу как настроить локальный, приватный pypi репозиторий на localshop.

Читать дальше →

Чиним слишком быструю прокрутку у Microsoft Sculpt Mobile Mouse в Linux

Не так давно приобрел себе мышку Microsoft Sculpt Mobile Mouse. Надо сказать, что хоть и основной продукт Microsoft мне не очень импонирует, но мышки и клавиатуры у них просто отличные. Тоже самое и со Sculpt Mobile Mouse - уж больно она мне понравилась. Однако после того, как начал использовать её в Linux, обнаружилась одна досадная проблема - слишком большая скорость прокрутки. Казалось бы, и не проблема вовсе - однако не очень приятно когда, например, ожидаешь что переместишься на один рабочий стол, а вместо это перескакиваешь аж на три. Решалась, впрочем, эта проблема довольно просто, а именно перетыкиванием USB приемника. Только делать приходилось это после каждой загрузки системы, и честно говоря быстро надоело. Впрочем, решение было найдено тоже довольно быстро. Оказалось, что об этой проблеме известно, решать нормально ее никто не собирается, но уже есть вполне рабочий костыль - resetmsmice.

resetmsmice - это небольшая утилита, которая во время загрузки системы просто переводит мышку в режим совместимости.

Читать дальше →

Делаем роутер в GNS3 доступным в реальной сети

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

В этом небольшом посте я расскажу как сделать виртуальные машины с Cisco в GNS3 доступными в реальной сети.

GNS3 - это графический эмулятор сети. Умеет запускать образы iOS, прокладывать линки между ними, мониторить трафик и много других полезных вещей. Подробнее про всё то, что умеет GNS3 лучше почитать на их сайте.

Читать дальше →

Настройка etckeeper с автоматическим пушем изменений и просмотром в gitlist

Довольно давно я храню конфигурации серверов которые администрирую в git, с помошью etckeeper. Etckeeper - это, если кто не знает, набор скриптов, надстройка над git, которая автоматизирует проверку изменений, их коммит в репозиторий и встраивается в pre-install и post-install менеджера пакетов apt.
В этом посте я хочу рассказать об использовании etckeeper совместно с gitlist для более удобного, и наглядного просмотра изменений.

Читать дальше →

Копирование MySQL пользователь с их правами на другой сервер

Недавно случайно увидел, какие велосипеды люди делают, чтобы просто скопировать всех пользователей с одного MySQL сервера на другой. Хотя всё на самом деле довольно просто, и умещается в одну небольшую команду:

mysqldump -uroot -pPASSWORD mysql user > mysql_users_dump.sql

Чтобы на другом сервере восстановить пользователей всё так же логично и просто ...

Читать дальше →

Peerflix: BitTorrent стрим клиент, или смотрим видео из торрент файла без скачивания

Peerflix - это небольшой, экспериментальный bitTorrent стрим клиент. Написан на nodejs и позволяет просматривать не скачивая видео файлы в любимом/удобном видео плеере. Написан на nodejs и, как говорят, он использовался в не так давно нашумевшем Popcorn Time.

Читать дальше →