Архив рубрики: Кодинг

Автоматическое определение кодировки терминала в perl-скрипте.

Надоело руками менять кодировки для нормального вывода русского текста в своих perl-скриптах в зависимости от кодировки терминала (запускаю скрипты под Linux (utf8), Windows (ActivePerl, cp866) и Windows (Cygwin, cp1251)). Немного погуглил, но никаких готовых рецептов не встретил, хороший запрос для поиска что-то в голову не пришёл.

Решил поступить следующим образом — определять операционную систему, в которой запущен скрипт, и в зависимости от этого выставлять кодировку выходного потока (STDOUT):

#!/usr/bin/perl;
use utf8;
require encoding;
import encoding  ('utf8', 'STDOUT' => &SetEncoding);

sub SetEncoding {
    if ($^O =~ /^MSWin\d{2}$/i) {
        return 'cp866';
    }
    elsif ($^O =~ /^cygwin$/i) {
        return 'cp1251';
    }
    elsif ( условие для следующей ОС (например - linux) ) {
        return 'utf8';
    }
    # и так далее, исходя из личных потребностей
}

Замечания, исправления, дополнения и/или другие способы решения задачи по автоматической установке кодировки для perl-скрипта всегда приветствуются!

И на всякий случай, если вдруг мне не удастся найти время написать ещё что-то в блог до нового года — поздравляю всех своих читателей с наступающим новым годом, успехов вам и побольше приятных открытий! 🙂

PS: А для интересующихся фрилансом — новый, но достаточно любопытный ресурс ФрилансFM — портал о фрилансе.

Файл настройки vim — .vimrc (для Linux и Windows)

Продолжу сохранение самых интересных своих конфигурационных файлов. Сегодня пришла очередь файла конфигурации для редактора vim — .vimrc (находится обычно в домашнем каталоге пользователя: ~/.vimrc, также пример файла есть в /etc/vim). Довольно много времени ему уделил, собирая настройки и разделяя их применение для разных ОС (Windows и Linux). А будет ли он завершён окончательно — даже и не знаю 🙂

Самое хорошее русскоязычное руководство (с примерами) по настройке Vim из встретившихся мне в интернете: Очередной HowTo по Vim. Именно из него я взял функцию для переключения раскладок клавиатуры без потери реакции редактора на нажатия управляющих клавишей в случае раскладки, отличной от английской.

Перемещение по табам сделано в стиле моего любимого эмулятора терминала — urxvt (Shift+стрелка). Можно просто скопировать все настройки в свой файл ~/.vimrc, открыв мой vimrc на отдельной странице.
Читать далее Файл настройки vim — .vimrc (для Linux и Windows) →

Библиотека для WordPress. Как сделать своё файлохранилище

Решил переделать страницу с книгами на своём сайте, воспользовавшись доступом к MySQL, который всё равно используется в wordpress. Суть переделки довольно проста — создать функцию, которая, найдя в теле страницы определённый тег, заменяла бы его некоей информацией, полученной из базы данных wordpress. В базе, в свою очередь, может быть что угодно, в моём случае — описания и ссылки на файлы книг, представленных в «Библиотеке». Сложного в написании такой функции ничего нет, по таком принципу кстати работают многие плагины, например вставляющие видео или музыку на страницу.

Читать далее Библиотека для WordPress. Как сделать своё файлохранилище →

Парсер базы nakolesah.ru

Грабим nakolesah.ru
Пример работы парсера сайта nakolesah.ru

Уф, докрутил парсер nakolesah до вменяемого состояния и сграбил подбор шин по автомобилю. Кому интересно — ссылка на сам скрипт в конце поста.

Что-то в нём ещё буду менять, не очень мне нравится логика работы нынешняя, основанная на GET-запросах (тогда как браузер получает всю информацию, обращаясь к asp-скрипту с передачей разных параметров в POST-запросе). У меня POST только в конце, а надо бы попробовать работу браузера полностью скопировать, да времени особо не было разбираться.

Читать далее Парсер базы nakolesah.ru →

Парсер-граббер nakolesah.ru

Был занят в свободное (от основной работы) время — делал халтуру, которая заключалась в просьбе написать парсер, чтобы сграбить структуру подбора колёс по автомобилю с сайта nakolesah.ru (естественно, на языке perl).
И вот сегодня он готов (начал в минувшее воскресенье) и проходит тестирование у заказчика. Приятно то, что это первый случай, когда моё хобби принесло небольшую денежку (которую я потрачу на другое хобби — охоту 🙂 ).
Читать далее Парсер-граббер nakolesah.ru →

Пишем плагин для WordPress. Добавление в репозиторий WordPress.org (часть 7)

wordpress-plugin

Размещение своего плагина в репозитории на сайте WordPress.org

Настало время опубликовать седьмую (но видимо — не последнюю) часть руководства Как написать плагин для WordPress.

В ней я рассмотрю и пошагово изложу процесс добавления написанного плагина в репозиторий на сайте WordPress.org.

Читать далее Пишем плагин для WordPress. Добавление в репозиторий WordPress.org (часть 7) →

Пишем плагин для WordPress. Интернационализация (часть 6).

Написание плагина для WordPress - русификация плагина.
Написание плагина для WordPress - русификация плагина.

Вопросы интернационализации (перевода) WordPress-плагина

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

Читать далее Пишем плагин для WordPress. Интернационализация (часть 6). →

Пишем плагин для WordPress. Функциональная составляющая (часть 5)

plugins-wordpress

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

Начнём.

Читать далее Пишем плагин для WordPress. Функциональная составляющая (часть 5) →

Пишем плагин для WordPress. Создание страницы настроек плагина (часть 4)

Создаём страницу настроек для WordPress плагина

Продолжим разговор о том, как написать свой плагин для WordPress.
В прошлый раз мы рассмотрели вопрос предустановленные настройки wordpress плагина, а сегодня попробуем написать его административную страницу. Для начала приведу функцию создания этой страницы, а затем на некоторых моментах остановлюсь подробней. В принципе основные сведения были даны в предыдущей части руководства, здесь же достаточно просто кода с комментариями.
Читать далее Пишем плагин для WordPress. Создание страницы настроек плагина (часть 4) →

Пишем плагин для WordPress. Подготовка к созданию страницы настроек (часть 3).

Пишем-напишем плагин для вордпресс (wordpress plugin)
wp-plugin

Итак, мы уже знаем, как вызвать функцию создания настроек для плагина в процессе его установки (при помощи вызова register_activation_hook(__FILE__, 'myplugin_set_options'); , где __FILE__ будет автоматически заменено на вызов файла плагина). Теперь для того, чтобы написать WordPress плагин, нам нужно установить опции по умолчанию (создав соответствующие записи в таблице prefix_options*) и создать для него страницу настроек, на которой пользователь сможет управлять поведением плагина.
*prefix_options – таблица mySQL с настройкам wordpress. prefix задаётся в файле wp-config при установке wordpress и по умолчанию имеет занчение wp (т. е. таблица называется wp_options).
Читать далее Пишем плагин для WordPress. Подготовка к созданию страницы настроек (часть 3). →