Месячные архивы:Март 2017

Как сделать vk.com менее отвлекающим?

Как сделать так, чтобы Vk.com меньше отвлекал от действительно важных дел?
Самый простой способ — удалиться из этой социальной сети, или вообще не создавать там аккаунт, если у вас его ещё нет.
Но что делать тем, у кого вконтакте есть множество «друзей», с которыми больше негде вести переписку?
Или тем, кто пользуется музыкой вконтакте?

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

Решить задачу поможет пользовательский скрипт, подключаемый с помощью GreasyMonkey/TamperMonkey

Читать далее


Как разбить поле «ФИО» на имя, фамилию и отчество в PHP

Бывают случаи, когда ФИО пользователей на сайте задавалось с помощью единственного поля «ФИО», а после какого-то времени, в ходе рефакторинга базы, решили сделать 3 поля — Фамилия, Имя, Отчество. Как же быть со старыми данными? Ведь пользователи вводят туда всё что угодно. Попадаются такие ФИО как «Иванов К.М.», «пЕтрова ивгения», «Константин пАВЛОВ директор». Как же выделить из этих «ФИО» осмысленную информацию, настоящие имя, фамилию и отчество, чтобы заполнить соответствующие поля?

Когда я столкнулся с этой проблемой, я не нашел готового решения, поэтому написал инструмент сам.

Библиотека анализа и нечёткого поиска в строке фамилии, имени, отчества.

Библиотека написана на PHP и использует базу русских имен, фамилий, и отчеств (женских и мужских), взятых из википедии, и дополненных еще несколькими десятками вручную. Если вам нужно определять также другие ФИО (например, грузинские, таджикские, казахские), нужно будет дополнить базы слов в соответствующих файлах.

Взять библиотеку можно здесь: https://github.com/MihanEntalpo/FIO-Analyzer

Установка с помощью composer:

В вашем файле composer.json нужно прописать:

{
    "require": {
        "mihanentalpo/fio-analyzer": "*"
    }
}

Установить:

composer.phar install

Читать далее


Linux backup time machine на базе Python + Rsync + Mysql

в корпоративном чате:
xxx: я очень наделся, что в этом проекте не скажу этих слов, но обстоятельства заставляют.
xxx: господа.
xxx: а бэкапы кто-то делал?

Очередной велосипед для резервного копирования для систем на базе Linux, был собран из Python-а и Rsync-а, когда существующие решения оказались либо слишком сложными, либо не обладающими достаточным функционалом.
Особенности и плюсы Linux Time Machine:

  • Работа по принципу TimeMachine из MacOs, а именно — создание инкрементальных копий в отдельных папках с возможностью быстро восстановить или как-то ещё использовать файлы за произвольную дату
  • Инкрементальные копии, основанные на Hard-Link’ах, то есть в каждой папке находится «как-бы» полная копия, однако не изменившиеся файлы являются Hard-link’ами на свои предыдущие версии в папках за старые даты
  • Лёгкое прореживание инкрементальных копий, так как Hard-link’и позволят не терять сами файлы при удалении одной из их версий
  • Моментальный доступ к файлам за счёт того что они хранятся в чистом виде (в отличии от rdiff-backup и других)
  • Встроенный функционал для создания инкрементальных SQL-дампов баз данных MySql (чтобы можно было бэкапить также и mysql-таблицы в виде файлов)
  • Автоматическое возобновление резервного копирования с того места, на котором оно остановилось, если было прервано
  • Резервное копирование может быть запущено с сервера, на котором хранятся исходные данные, с сервера, на котором находятся резервные копии, а также с любого другого сервера, имеющего доступ к двум предыдущим по ssh (Прямо сейчас эта функция сломана, копировать можно либо с локального сервера, либо на локальный (на котором запускается скрипт) 🙁 )
  • Можно ограничивать частоту резервного копирования (копировать не чаще определённого), и, таким образом, оставить информацию о частоте копирования в конфигурации, не вынося её в crontab.
  • С помощью API систему можно легко и быстро расширить, например, добавить копирование на несколько серверов-хранилищ
  • Копирование как всей файловой системы так и произвольных папок
  • Возможность исключения папок, файлов и масок файлов (например *.log)
  • Возможность автоматической очистки старых копий по гибким правилам
  • Можно настроить отправку уведомлений об ошибках в систему getSentry(веб-интерфейс собирающий и отображающий информацию по ошибкам)

Есть и минусы:

  • Данные хранятся в чистом виде, без сжатия, поэтому могут занимать в несколько раз больше оригинала (в несколько — потому что копий несколько)
  • Для копирования на каждом из «концов» должен быть установлен Rsync
  • Без доступа по ssh резервное копирование работать не будет
  • Доступ по ssh работает только по ключу
  • При вычисления занятого резервными копиями места, один и тот же файл за счёт жестких ссылок учитывается по нескольку раз, так что занятое место может вычисляться неверно (однако, консольная команда du вычисляет занятое место верно)

Читать далее


Разработка на WordPress по-человечески, с использованием GIT

Как обычно ведётся разработка на WordPress?
Одним из двух способов:
1) Полностью на удалённом сервере
1.1 Устанавливаем wordpress на удалённом сервере
1.2 Закрываем доступ к нему через .htaccess и .htpasswd чтобы посторонние не лезли, пока он не готов
1.3 Подключаемся к сайту по FTP через FileZilla и вручную создаём тему дизайна
2) На локальном сервере, с последующей одноразовой выгрузкой
2.1 Устанавливаем wordpress на локальной машине
2.2 Через /etc/hosts прописываем строчку, чтобы адрес будущего сайта указывал на локальную машину
2.3 Разрабатываем сайт на локальной машине, обращаясь к ней по адресу будущего сайта
2.4 По готовности выгружаем сайт на боевой сервер через ftp и mysql

Однако, любой разработчик, имеющий опыт командной работы над сайтом с обменом кодом посредством git, давно привычен к гораздо лучшему. Разработка «по-человечески», с использованием удалённого git-репозитория имеет множество плюсов.

Но начать разрабатывать сайты на wordpress с использованием git-а на разных машинах не так просто, как хотелось бы.
Путём долгих поисков и большого количества набитых шишек я создал алгоритм разработки сайтов на wordpress с использованием git и минимальными проблемами.

Читать далее