?

Log in

Perl Developer's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Perl Developer's LiveJournal:

[ << Previous 20 ]
Tuesday, June 20th, 2017
1:22 pm
[ignik]
вот как бывает:
#!/usr/bin/perl -w
use strict;

print ";-)\n" if "foo" =~ //;
"bar" =~ /bar/;
print ":-(\n" if "foo" =~ //;
Tuesday, April 4th, 2017
5:17 pm
[gul_kiev]
print 100.101.102
Почему perl -e 'print 100.101.102' выводит 'def'?
Понятно, что 100, 101 и 102 - это ASCII-коды символов 'd', 'e' и 'f', но почему произошло такое преобразование, почему это не то же самое, что perl -e 'print 100 . 101 . 102', как было бы ожидаемо? Или perl -e 'print 100.101 . 102' - тоже понятно.

Скорее всего, где-то в доке об этом написано, но не могу найти, так что просто покажите, не пинайте сильно.
Wednesday, March 29th, 2017
3:25 pm
[dp_z]
Быстродействие Perl6
perl6 -v This is Rakudo version 2017.01 built on MoarVM version 2017.01 implementing Perl 6.c.
perl -v This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-gnu-thread-multi
julia -v julia version 0.4.5
python -V Python 2.7.12
pypy -V Python 2.7.10 (5.1.2+dfsg-1~16.04, Jun 16 2016, 17:37:42)
[PyPy 5.1.2 with GCC 5.3.1 20160413]

time perl6 -e 'my $x=0; $x++ while $x < 30000000' real 0m11.016s
time perl6 -e 'my int $x=0; $x++ while $x < 30000000' real 0m0.380s
time perl -e '$x++ while $x < 30000000' real 0m1.321s
time julia -e 'x=0; while x<30000000; x+=1; end' real 0m2.239s
time python -c 'x=0
while x<30000000: x+=1'
real 0m2.824s
time pypy -c 'x=0
while x<30000000: x+=1'
real 0m0.054s
Monday, February 20th, 2017
4:12 pm
[gorynlexx]
Spreadsheet::WriteExcel - как убрать колонтитулы

Господа, вопрос такой: генериться эксель-файл в формате xls с помощью Spreadsheet::WriteExcel. Надо, чтобы на печати верхний и нижний колонтитулы были равны 0. По умолчанию там стоит 1.3 у верхнего и нижнего колонтитула.
Отступы все "как в образце" сделал с помощью set_margin_...

А вот как указать нулевые размеры для верхнего и нижнего колонтитула. Методы set_header и set_footer задают только их содержимое.

Friday, February 3rd, 2017
2:03 pm
[gorynlexx]
Использование модуля с генерируемым "на лету" именем.

Задача такая. Есть ряд модулей, каждый в отдельном PM-файле. Внутри модулей хранится хэш с данными, имя хэша во всех модулях одинаковое %Hash. Причем одновременно может быть загружен не один модуль.
Имена модулей имеют вид
Module_aaa.pm
Module_bbb.pm
Module_ccc.pm
...
В текущий момент я знаю. что мне нужно взять данные из модуля 'aaa' или 'ccc'. С помощью Module::Load я могу загрузить только нужные мне в текущий запуск скрипта модули. Но как мне обратиться к нужному модулю по ключу? Понятно, что напрашивается куча тернарников вида

$value = $key='aaa' ? $Module_aaa::Hash{key} : $key='bbb' ? $Module_bbb::Hash{key} :$key='ccc' ? $Module_ccc::Hash{key} : '';

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

Если знаете, подскажите также вариант для случая, если модуль один, а данные хранятся в нем в хэшах %Hash_aaa, %Hash_bbb и т.д.

P.S. Вариант использовать один сложных хэшей с ключами aaa, bbb, и т.д. очевиден, но тут надо в идеале, чтобы они были разнесены по разным файлам модулей с точки зрения архитектуры проекта.

Wednesday, January 11th, 2017
7:47 pm
[thecamelsway]
ищу работу
Привет.

Есть опыт работы с нагруженными системами.
Проектно, по часам, фиксированно, как угодно ~ 500р/час
Удаленно 10-20 часов в неделю. С апреля готов работать в офисе в Москве.

Василий
thecamelsway@gmail.com
Friday, November 11th, 2016
10:45 am
[gorynlexx]
Форматирование ячеек в таблицах Google
Стоит задача из скрипта Perl сохранять информацию в таблицах Гугла. При этом в зависимости от значений одной из колонок надо изменять фоновый цвет строки.
Я нашел только один работающий модуль для работы с Гугл АПИ - Net::Google::Spreadsheets. Но он позволяет работать только с данными.

Знает ли кто-либо способ, как не только менять данные, но и форматировать их, в частности, менять фоновый цвет?
Thursday, May 5th, 2016
11:38 am
[our_region62]
Моджо сдох
Внезапно с утра обнаружил что помер проект на моджо, рестарт приложения и рестарт nginx не помогло. Снёс nginx, установил заново, воткнул простейшие настройки для моджо проекта:

upstream myapp {
server 91.136.234.5:3002;
}
server {
server_name domen.ru www.domen.ru;
listen 80;
charset UTF8;
index index.html;
root /var/www/domen/public;

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root /var/www/domen/public;
expires 14d;
}
location / {
proxy_pass http://myapp;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "http";
}
}


обновил моджо:

# mojo version
CORE
Perl (v5.18.2, linux)
Mojolicious (6.61, Clinking Beer Mugs)

OPTIONAL
EV 4.0+ (4.22)
IO::Socket::Socks 0.64+ (0.68)
IO::Socket::SSL 1.94+ (1.965)
Net::DNS::Native 0.15+ (0.15)

This version is up to date, have fun!

перезалил проект, назначил права доступа, запустил проект:

su user, cd /var/www/domen, hypnotoad script/myapp,

получаю: 504 Gateway Time-out.

Проект висит в процессах и слушает порт, смотрю так: netstat -tupnl.

tcp 0 0 91.136.234.5:3002 0.0.0.0:* LISTEN 1459/myapp

Прописалл в iptables:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000:3050 -j ACCEPT

это помимо того что уже есть правило для 3002 порта,


Что это может быть? Может что-то уже поменялось в фреймворке, пока я картоху сажал? )))
Friday, March 11th, 2016
10:49 am
[comder]
Вакансия Perl разработчик Санкт-Петербург
Обязанности:
• разработка проекта компании;
• различные интеграционные решения;
• тесная работа с фронт-енд программистом

Требования:
• уверенное знание Perl;
• умение работать с любым из популярных шаблонизаторов (HTML::Template, TT, CTPP и т.д);
• умение работать с PostgreSQL или Mysql;
• умение работать с большим объемом данных, опыт в hbase будет большим плюсом;
• знание JavaScript, HTML, CSS будет существенным плюсом;
• ответственность, инициативность, исполнительность.

Условия:
• офис ст. метро Горьковская в пешей доступности;
• гибкий график работы, возможность работать удаленно;
• работа в крупной российской компании (успешный прибыльный проект);
• зарплата от 100 000 рублей, по результатам собеседования.

Тип занятости:
• Полная занятость, полный день.

Резюме высылайте на почту: comdef@gmail.com
Sunday, March 6th, 2016
1:09 am
[blacklion]
Как добавлять бизнес-логику в DBIx::Class?
Хочу уже не руками модель писать, а как большой. И нигде не могу найти никакой документации -- как расширять модель для DBIx::Class. Ну вот она сгенерирована Schema::Loader'ом. А мне бы туда теперь бизнес-логики. Например, добавить в состояние схемы (туда же, где хендл DBI хранится) текущего пользователя и добавить ВО ВСЕ все селекты проверку владельца объекта, что бы чужого из базы никто запросить не смог, даже если я уровнем выше вдруг ошибусь. Или вот при создании объекта проверить лимиты того же пользователя, можно ли ему создавать. Такое вот разное. Или это предполагатеся делать уровнем выше, т.е. поверх DBIx::Class-модели писать ЕЩЁ ОДИН СЛОЙ и заворачивать каждый объект в DBIx::Class в ещё одну обёртку? Но тогда получается, что DBIx::Class фактически бесполезен!
Wednesday, March 2nd, 2016
9:35 pm
[blacklion]
Библиотека (очень специализированный шаблонизатор?) для web-фронтенда?
Сто лет не писал на perl'е ничего для веба. А тут понадобилось. Когда писал последний раз — писал «рутер» и контроллер руками, шаблоны делал на Template::Toolkit тоже руками. Это было так давно, что Mojo или Dancer'а ещё и в проекте не было, был CGI.pm и Mason. Которые были так ужасны, что руками было проще. AJAX'а тоже не было, модных форнтенд-библиотек не было и всех устраивали формочки сделанные на голом HTML «профессиональным программистом» (в табличках, разумеется), на которые какой-никакой дизайн натягивался через CSS1. В общем, лет 10 назад это было.

А тут потребовалось. Ну ладно, server-side я понимаю — Mojo или Dancer2, сейчас разберёмся.

А вот что делать с фронтом? Нету ли какого-нибудь очень специального шаблонизатора для CRUD-подобных приложений, что бы дизайна и HTML'я и всякого jQuery не делать вообще, а описать СТРУКТУРУ формочек на экранах как-то декларативно (YAML-хуямл, да хоть XML, не важно) и получить непротивно выглядящий фронтенд, с проверкой данных на клиенте, AJAX'ом, и прочими ништяками?

Update: Поясню. Я спрашиваю не про клиентский JavaScript-фреймворк типа React'а или там Angular'а, а про именно что умный генератор фронтенда на бэкенде по декларативному описанию интерфейса. А уж этот генератор может прицеплять в сгенерированный фронтенд хоть Реакт хоть Ангулар хоть чёрта лысого, как ему удобно и что любит автор генератора.
10:56 am
[our_region62]
locale ubuntu mojo
Всем привет, то-ли лыжи не едут то-ли я не так делаю.

#locale
LANG=ru_RU.UTF-8
LANGUAGE=ru_RU:en
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

[Spoiler (click to open)]

use DateTime::Format::SQLite;
use locale;
use POSIX qw( locale_h strftime );
setlocale(LC_ALL,"ru_RU.UTF8");

my @stash;

while (my $archive = $rs->next) {

my $dt = DateTime::Format::SQLite->parse_datetime( $archive->postime );

$dt->set_time_zone('Europe/Moscow');

push @stash, $dt->strftime('%B %Y');

}

В результате названия месяцев на английском, а хочется на русском. Куда ещё покопать, что прочесть? Спасибо.
Tuesday, March 1st, 2016
3:17 pm
[our_region62]
Mojolicious Роуты
Возникла нужда иметь такие роуты:
$r->get('/blog')->to('blog#index');
$r->get('/blog/:category')->to('blog#show_category');
$r->get('/blog/:category/:id')->to('blog#show');
$r->get('/blog/:year/:month')->to('blog#show_archive');
Разумеется они конфликтуют. Кто и как решает такие проблемы?
Ну и что-бы два раза тему не создавать, видел роуты с регэкспом:

qr|/user/show/(\d+)| -> $self->render(text => $users{$1});

и вот ещё:

$r->route('/uid/:id/',id => qr/\d+/)->to( controller => 'Uid',action => 'index');

Роуты с регэкспами работают? И как? Спасибо.
Saturday, February 13th, 2016
8:59 pm
[our_region62]
Eclipse Perl::Epic PerlTidy
Фигня какая-то с редактором творится. Не получается скопировать уже готовый проект. Делаю так, создаю проект, потом импортирую в него файлы. Вроде всё хорошо, но файлы физические на диске не сохраняются, не изменяются, а в редакторе всё норм.

Как это так?

Ещё не понятно как работает perltidy, приходится ручками делать так:

perltidy -b Dashboard.pm

Нагуглил какие-то опции для perltidy в eclipse:

-l=180 --force-read-binary -i=2 --tabs -et=2 -ci=2 -olc -ibc -hsc -nsfs --delete-old-whitespace -nbbc -bbs --blanks-before-blocks --long-block-line-count=1 -nsob -bar -dnl -anl -pscf=-c -cti=0 -nolq -w -dws -bext=’/’ -csc -csci=15 -cscb -dcsc -iob

Это вообще что за хрень? И работает ли?

Где нибудь есть информация по скрещиванию eclipse и perl?
Wednesday, February 3rd, 2016
6:33 pm
[scofer]
Удаленная работа для PERL-программиста
Приветствую!

Ищу человека для осуществление различных доработок сервиса.
Используем perl/dancer + mysql.
Желательно умение разбираться с html/css/js, понимать что такое bootstrap.

E-mail: aleksandr.khasanov (at) gmail.com
Saturday, January 23rd, 2016
1:27 pm
[our_region62]
TinyMCE upload image not PHP!
Всем доброго времени суток. Никто не встречал случайно плагин для редактора tinymce что-бы картинки грузить? Кроме поделок на PHP, ничего существенного не нашёл. Хочется на Perl. Или пэхэпешный код переписывать? Спасибо.
Monday, January 18th, 2016
6:07 am
[our_region62]
Аплоад филе на сервер посредством Mojo
Всем доброго времени суток, в связи с тем что меня забанили в гугле и группе mojo, обращаюсь сюда. Кто-нибудь грузил картинки на сервер через приложение? Образец посмотреть-бы. Спасибо.
Thursday, December 31st, 2015
10:42 am
[vti_vti]
Тридцать четвертый выпуск журнала о современном Perl
ppВыпуск 34. Декабрь 2015

http://pragmaticperl.com/issues/34

В этом номере:

- От редактора, Вячеслав Тихановский
http://pragmaticperl.com/a/19c65174

- Впечатления от воркшопа Saint Perl 2015, Владимир Леттиев
Не изменяя традиции 19 декабря 2015 г. прошёл седьмой ежегодный воркшоп Saint Perl для всех любителей и профессионалов мира Perl в Санкт-Петербурге.
http://pragmaticperl.com/a/03f5a6a7

- Взгляд на 2015 г., Андрей Шитов
Краткий обзор заметных событий в мире Perl за прошедший год
http://pragmaticperl.com/a/513cbaaa

- Управление модулями и прекомпиляция в Perl 6, Владимир Леттиев
25 декабря 2015 г. вышел первый стабильный релиз Rakudo Perl 6, среди новшеств которого совершенно новая система управления модулями и прекомпиляция. Рассмотрим в деталях процесс загрузки, разрешения зависимостей и компиляции модулей.
http://pragmaticperl.com/a/08df5d9c

- Perl 6-винегрет, Андрей Шитов
Новогодний оливье — сборная солянка про разные интересные штуки в Perl 6
http://pragmaticperl.com/a/c5e39c3c

- Использование Rust из Perl, Денис Федосеев
Встраивание Rust в Perl с помощью FFI
http://pragmaticperl.com/a/c8d2c40d

- Обзор CPAN за ноябрь 2015 г., Владимир Леттиев
Рубрика с обзором интересных новинок CPAN за прошедший месяц.
http://pragmaticperl.com/a/60f97f58

- Интервью с Дмитрием Шаматриным, Вячеслав Тихановский
Дмитрий Шаматрин — программист, с недавнего времени организатор Perl-конференций
http://pragmaticperl.com/a/f47a739a
12:15 pm
[our_region62]
Mojo Категории
Доброго времени суток сообщество, с наступающим!

Вот возникла задачка, решить не могу. Есть блог на mojo, записи складываются в БД, у каждой записи есть категория. Задачка заключается в том, что-бы отсортировать записи по категориям. Само по себе это не сложно, нюанс лишь в ссылке на странице. Нужно придумать ссыль(или способ), которую mojo не перепутает, и вывалит отсортированный список записей. То есть хочется что-бы это выглядело так:

http://domen/blog/category/

На данный момент вот такие роуты:

$r->get('/blog')->to('blog#index');                # Список записей в виде анонсов как в ЖЖ
$r->get('/blog/:id')->to('blog#show');           # Запись по клику на заголовке

Намекните в какую сторону думать, или что/где почитать. Спасибо.
Friday, October 16th, 2015
5:02 pm
[oyx]
Modern::Perl не в почёте?
Куда не посмотрю - нигде особо не юзается, ни experimental/given (хотя вопрос спорный), ни Const::Fast/English (как то рекомендуют в PBP), ни даже fields.
Почему?
[ << Previous 20 ]
About LiveJournal.com