Home
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 ]
    Monday, July 13th, 2009
    1:14 am
    [afiskon]
    Движок сайта, CMS или модуль CPAN
    Господа,

    а не знает ли кто-нибудь модуля или движка, на базе которого можно разрабатывать сайты. Я имею ввиду не "use CGI", а нечто более сложное - релизующее кеширование страниц, поддержку шаблонов, поддержку mod_rewrite и тд.

    В общем ищу способ сделать разработку сайта более простой - чтобы часть базового функционала была уже написана. Ничего подобного не встречали?
    Sunday, July 12th, 2009
    3:30 pm
    [eugene_toropov]
    Ищем удаленного фуллтайм perl-разработчика
    Не прошло и полгода, как нам опять нужен новый спец, так что текст вакансии почти не изменился.

    Про вас:
     
    1. Английский на уровне общения по мессенджеру или круче.
    2. Высшее образование в соотв. или смежной области.
    3. Good problem-solving skills.
    4. Ability to work individually and in a team.
    5. По крайней мере 3 года опыта работы perl-разработчиком в связке Linux/bash + Apache/mod_perl2 + MySQL + Perl
    6. Вам не надо объяснять, что такое CVS/SVN, HTML, DOM, XML, JS/JQuery и как с этим хозяйством работать.
    7. Большим плюсом будет опыт работы в travel-индустрии, а также с событийными фреймворками, в особенности AnyEvent.


     
    Про нас:
     
    Skoosh ( http://www.skoosh.com ) - онлайн система бронирования отелей. Этим сказано точно не все, но достаточно много.
     
    Резюме _на английском_ отправлять на jt@aaanet.ru.

    Оплата: $3000 в месяц.
     
    Don't forget to describe the biggest challenges that you have faced so far in your development career and explain how you solved these challenges.

    Wednesday, July 8th, 2009
    10:26 am
    [shtaketon_]
    Здравствуйте! Поделитесь, пожалуйста, каким модулем пользуетесь для формирования сложных excel-файлов из Perl? У меня есть документ Торг-12, счет-фактура и другие подобные.. Записывать их с помощью SpreadSheet::WriteExcel, а потом еще и модифицировать - уходит вечность! Может быть есть что-то вразумительное с нормальными возможностями?
    Saturday, July 4th, 2009
    12:18 pm
    [beffz]
    Как сделать чтобы отработал JS в полученой с помощью WWW::Mechanize странице?
    Делаю грабилку проксей. Нашел сайт с нормальными живыми проксями, но IP-адреса там спрятаны в js. Может от поисковиков, может от таких как я ;)

    11:42 am
    [kun99]
    вопросик
    Доброе время суток,
    Задача с асинхронными запросами переросла себя, на данный момент нужна такая схема:
    несколько независимых друг от друга процессов, у них один мастер, который в одно время посылает им всем задания, они выполняют их и отдают результаты мастеру. дочерние процессы никак не связанны, они сами по себе, мастер только один, данные никак не связаны между дочерними, нужно послать запрос всем дочерним, дождаться последнего ответа, и дальше работа мастера, дочерние ждут следующих запросов. ответы могут отдаться +- одновременно со всех дочерних, пока в голову приходит только банальный прием команд дочерними через сокеты, пайпы и запись в какой-то файл через лок или что-то в этом роде, чтоб другой ждал пока лок не снимется и дальше отдавал своё.. 
    Есть какие-то варианты получше, быстрее, надежнее?
    Спасибо 
    Thursday, July 2nd, 2009
    4:55 pm
    [mollenhauer]
    use Carp?
    Читал о пользе применения croak вместо die в модулях, но честно никогда не использовал этот механизм (всегда обходил это разными способами, либо не возникало необходимости).
    А тут заморочился с одной своей библиотекой, и решил реализовать ее так сказать для паблик, а потому переписать "правильно".
    Краткая справка о модуле Carp:

    Содержит функции carp() и croak() - аналогии функций warn() и die(). Они отображают сообщение с указанием подпрограммы и номера ее строки, откуда вызываются эти функции, тогда как warn() и die() отображают номер строки в коде всей программы.

    Написал простейший вызов функции моего модуля, и определил вместо die при открытии файла croak.
    Любопытства ради прошелся отладчиком (хотя мог бы и сразу в модуль Carp залезть, но уж так вышло)... И слегка прифигел от этого кода:
    Далее )
    Sunday, June 28th, 2009
    12:29 pm
    [as_pushkin_by]
    Perl5 вместо Perl
    http://perlbuzz.com/2009/06/promote-perl-6-by-saying-perl-5.html

    Если лень ходить по ссылке, вкратце объясняю.

    Автор призывает называть Perl версии 5 именно "Perl 5", а не просто Perl, чтобы явно обозначить существование разных Perl'ов.
    Thursday, June 25th, 2009
    12:18 pm
    [groooover]
    Проблема с модулем Digest::SHA256
    Поставил из портов модуль Digest::SHA256. Версия perl v5.8.8 built for i386-freebsd-64int.
    ОС: 6.2-RELEASE FreeBSD
    При запуске тестового скрипта, состоящего из трех строчек:

    #!/usr/bin/perl
    use Digest::SHA256;
    my $context = new Digest::SHA256::new(256);

    Выдается ошибка:
    Bareword found where operator expected at test3.pl line 3, near "new Digest::SHA256::new"
    (Do you need to predeclare new?)
    syntax error at test3.pl line 3, near "new Digest::SHA256::new"
    Execution of test3.pl aborted due to compilation errors.

    Причем объект инициализируется так, как написано в документации модуля на CPAN. Кто-нибудь сталкивался с такой проблемой? Есть ли еще какой-нибудь модуль, реализующий функцию SHA256?
    Tuesday, June 23rd, 2009
    1:45 pm
    [hr_mail_ru]
    Требуется: Perl-программист, Москва, Mail.Ru
    Mail.Ru объявляет конкурс на открытую вакансию

    Perl-программист

    Условия работы 

    Требования:
    • хорошее знание Perl
    • хорошее знание SQL, опыт работы с mysql или другими СУБД, оптимизация SQL-запросов, опыт проектирования структур БД
    • опыт разработки под *nix (FreeBSD, Linux)
    • умение работать в команде, коммуникабельность, желание развиваться

    Особыми плюсами являются:
    • опыт написания веб-приложений, общее представление об apache, протоколах, используемых в Web, инфраструктуре Web в целом
    • знание других языков программирования

    Обязанности:
    • разработка новых Web-проектов компании и поддержка существующих


     Резюме направляйте на Shokina@corp.mail.ru, контактный телефон: (495) 725-63-57

    Friday, June 19th, 2009
    9:17 am
    [odlbo]
    XS vs threads
    Всем доброго времени суток!
    Недавно столкнулся с давольно непонятной для меня проблемой, так как я вляюсь новичком как в XS'е так и в Perl'е .
    Read more... )
    9:48 am
    [despairr]
    Открытый SVN-репозиторий REG.RU
    Как мы все прекрасно знаем, "правильное" использование OpenSource-технологий
    предполагает не только их потребление, но и готовность делиться собственными
    разработками с сообществом.

    Если говорить о Perl, то такая возможность делиться, это, безусловно -- CPAN.
    Однако, чтобы выложить модуль на CPAN, он, как ни крути, должен
    обладать определённой степенью зрелости -- нужна хотя бы минимальная документация
    и какая-то уверенность, что интерфейсы не поменяются в ближайшее время
    радикальным образом.

    Возникает вопрос -- как же делиться теми разработками, до "причёсывания" которых
    пока не дошли руки?

    В нашей компании мы решили этот вопрос так -- создали отдельный
    SVN-репозиторий специально для открытых разработок:

    URL: https://svn.reg.ru/oss
    Разумеется, есть открытый анонимный readonly-доступ ;)

    Там все наши CPAN-дистрибутивы и то, что пока на CPAN не выложено.
    Также отдельные скрипты, мини-утилиты, патчи для стороннего открытого софта и т. п.

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

    Read more... )
    Monday, June 15th, 2009
    9:42 pm
    [spirit_nn]
    sablotron
    проблема:
    имеем такой вот код
    my $xsl_file=shift;
    my $xml=shift;
    my $xsl=shift;
    $xsl=“file://$main::StylePath/templates/” if (!$xsl);

    $convertUTF = Text::Iconv->new(“windows-1251”, “UTF-8”);
    $convertWIN = Text::Iconv->new(“UTF-8”, “windows-1251”);

    $xml=$convertUTF->convert($xml);

    $sab = new XML::Sablotron();

    $sab->setBase(“$xsl”);

    $sab->runProcessor($xsl.$xsl_file, “arg:/data”, “arg:/result”, undef, [“data”, $xml] );

    ругается следующим образом:
    5-th argument to SablotProcess has to be ARRAYREF at /usr/local/lib/perl/5.10.0/XML/Sablotron.pm line 115.
    perl 5.10
    Sablotron 1.0.1

    как так? ведь очевидно, что 5й аргумент ARRAYREF
    для чистоты попробовали безумный вариант:
    @arraytmp = (“data”, $xml);
    $sab->runProcessor($xsl.$xsl_file, “arg:/data”, “arg:/result”, undef, \@arraytmp );
    не помогло.
    код заведомо работает в другом месте, там perl 5.08 и Sablotron 0.97
    поставили здесь 0.97 - результат тот же
    куда копать?
    2:24 pm
    [sadmitry]
    CGI.pm & meta tags
    Имеем:
    debian:~/work/test# perl -v
    This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
    Copyright 1987-2007, Larry Wall

    Делаю простенький скрипт:

    debian:~/work/test# cat test1.cgi
    #!/usr/bin/perl -w

    use CGI qw/:standard/;

    my $q = new CGI;
    print $q->header( "text/html; charset=UTF-8" );
    print $q->start_html(-head=>[
    Link({-rel=>'stylesheet',
    -type=>'text/css',
    -href=>'/status.css'}),
    meta({-http_equiv => 'Content-Type',
    -content => 'text/html; charset=UTF-8'}),
    ],
    -title=>( "Statistics" ),
    -class=>("status")
    );
    print $q->p($CGI::revision);
    print "\n";
    print $q->p($CGI::VERSION);
    print "\n";

    Получаю:

    debian:~/work/test# cat test1.cgi.2
    HTTP/1.1 200 OK
    Date: Mon, 15 Jun 2009 10:09:57 GMT
    Server: Apache/1.3.41 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8g
    Connection: close
    Content-Type: text/html; charset=UTF-8

    <!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
    <head>
    <title>Statistics</title>
    <link type="text/css" rel="stylesheet" href="/status.css" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body class="status">
    <p>$Id: CGI.pm,v 1.234 2007/04/16 16:58:46 lstein Exp $</p>
    <p>3.29</p>

    Как видно, тег meta дублирован.
    Вот здесь http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418915 сказано, что есть такой баг.
    ФФ показывает страничку нормально (русские буквы выводятся в UTF-8 как и должно быть), но насколько это правильно ? Не будет ли проблем ?
    9:41 am
    [domrachevivan]
    обработка сигналов в fastcgi
    есть много мануалов и примеров как писать fastcgi. но найти примеры как обрабатывать сигналы (alarm, kill и прочие) не получилось.по сему рецепт... )
    Thursday, June 11th, 2009
    5:33 pm
    [panki_ru]
    Программист python / perl / java / ruby
    Для работы над серверной частью ММО игры с flash клиентом, требуется ведущий программист.

    Обязанности:

    Построение архитектуры серверной части
    Проектирование базы данных
    Разработка системных служб и сетевых сервисов
    Разработка игровой механики
    Разработка игрового инструментария

    Требования

    Отличное знание одного из языков Perl/Java/Python/Ruby
    Отличное знание реляционных баз данных, опыт работы с MySQL и/или PostgreSQL
    Хорошая алгоритмическая подготовка

    Желательно

    Опыт участия в игровых проектах (с client/server архитектурой)
    Опыт написания сетевых протоколов
    Опыт оптимизации приложений
    Опыт программирования на C++
    Знание сетевых технологий и протоколов
    Законченное высшее техническое образование

    Условия

    Полный рабочий день, м.Красные ворота
    Гибкий график работы
    Заработная плата от 80000р по результатам собеседования
    Оформление по ТК РФ
    Профессиональная команда разработчиков
    Любовь и забота руководства

    Контакты

    Панько Александр
    email/jabber: god@panki.ru
    icq: 10619
    + 7 926 479-2443
    Wednesday, June 10th, 2009
    3:19 am
    [klopp]
    Нинавижу тесты
    Как дубль, при виде официальных бумажек - рву их и убегаю. А при слове "тест" отсутствие мозга выключается полностью. Стресс, блин. Или это в говнокод?

    use `test`;
    drop table if exists `tree_test`;
    create table `tree_test`
    (
        `id` int(4) unsigned auto_increment not null,
        `parent` int(4) unsigned default '0',
        `data` blob,
    
        primary key(`id`),
        key(`parent`)
    );
    
    insert into `tree_test` ( `parent`, `data` ) values ( 0, 'root' );
    insert into `tree_test` ( `parent`, `data` ) values ( 1, 'subroot-1' );
    insert into `tree_test` ( `parent`, `data` ) values ( 1, 'subroot-2' );
    insert into `tree_test` ( `parent`, `data` ) values ( 2, 'subsubroot-1' );
    insert into `tree_test` ( `parent`, `data` ) values ( 2, 'subsubroot-1' );
    insert into `tree_test` ( `parent`, `data` ) values ( 3, 'subsubroot-2' );
    insert into `tree_test` ( `parent`, `data` ) values ( 3, 'subsubroot-2' );


    #!/usr/bin/perl
    
    # --------------------------------------------------------------------
    use strict;
    use DBI;
    
    # --------------------------------------------------------------------
    my $db = DBI->connect( 'DBI:mysql:database=test;host=127.0.0.1','*********','*********' );
    die "$DBI::errstr\n" unless $db;
    
    my $sth = $db->prepare( 'select * from `tree_test` order by `parent`' );
    die "$sth->errstr\n" unless $sth->execute();
    
    # --------------------------------------------------------------------
    my %sections;
    my %parents;
    
    for( my $i = 0; $i < $sth->rows(); $i++ )
    {
        my $data = $sth->fetchrow_hashref();
        $parents{$data->{'parent'}}++;
        $sections{$data->{'id'}} = $data;
    }
    $sth->finish();
    $db->disconnect();
    print_sections(0, 0);
    
    # --------------------------------------------------------------------
    sub print_sections
    {
        my ( $parent, $level ) = @_;
    
        foreach my $k ( keys %sections )
        {
            my $data = $sections{$k};
            next unless $data->{'parent'} eq $parent;
            print ' ' x $level;
            print 'id: '.$data->{'id'}.', parent: '.
                    $data->{'parent'}.', data: '.$data->{'data'}."\n";
    
            print_sections( $data->{'id'}, $level+1 )
                if defined $parents{$data->{'id'}};           
        }
    }
    
    # --------------------------------------------------------------------
    Tuesday, June 9th, 2009
    2:13 pm
    [afiskon]
    Экспорт данных в PDF и HTML
    Есть база данных, информацию из которой нужно
    1) Отображать на веб-сайте
    2) Экспортировать в PDF
    используются таблицы, гистограммы, графики.
    Что можете посоветовать? Идей много, начиная от написания собственного класса, заканчивая использованием PDF::FromHTML (пока пакет собирается, не знаю как он дружит с картинкамми).
    Saturday, June 6th, 2009
    5:44 pm
    [kun99]
    need help с задачкой
    Доброе время суток, товарищи.
    Такая вот задачка у меня:
     1) есть сайты, в количестве от 2 до 10
    2) надо сделать в одно время запросы на все 10 сайтов
    3) при получании последнего из них нужно обработать их все
    4) после паузы повторяем с первого пункта

    Как бы задача не трудная, сделать чтоб работало это не проблема, но хочется узнать может есть готовые решения или методы чтобы было наиболее быстро и удобно (с учетом таймаутов, чтоб не ждать какой-то подвисший запрос)?
    Saturday, May 30th, 2009
    10:16 pm
    [knutov]
    Буферизация и FastCGI
    Все-таки CGI::WebOut нельзя заставить работать полнофункционально под FastCGI. Последнее с чем столкнулся - при включенной буферизации оно не отдает заголовки (судя по логам - вообще, даже если потом вручную Flush сделать), а при отключенной оно отправляет все заголовки до редиректа.

    Отсюда вопрос - что тогда использовать для буферизации хотя бы заголовков? Чтобы без CGI.pm. И чтобы они гарантированно отдавались клиенту, даже если скрипт делает warn или die.
    Friday, May 29th, 2009
    3:18 pm
    [slonik_v_domene]
    Работа с Perl API. Курс молодого бойца.
    Документации, особенно русскоязычной, по Perl API не найти. Поэтому считаю что статья будет полезной для тех, кто пишет модули на XS.

    Прочитать можно здесь: http://slonik-v-domene.livejournal.com/31403.html#cutid1

    В community копипастить не стал, т.к. лучше чтобы замечания и предложения были в одном месте.
[ << Previous 20 ]
About LiveJournal.com

Advertisement