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

Автоматическое определение кодировки терминала в 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).