From nordicdyno на yandex.ru Tue Nov 1 06:04:29 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Tue, 01 Nov 2011 17:04:29 +0400 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: References: Message-ID: <53481320152670@web62.yandex.ru> Было бы хорошо собраться в рамках Moscow.pm незадолго до эвента. Заодно можно было бы доклады обкатать в "черновом" режиме. Да и не собирались давно. 26.10.2011, 02:03, "Andrew Shitov" : > > В третий раз мы приглашаем всех на День рождения перла в > Санкт-Петербург. 18 декабря на уже третий (и по-прежнему бесплатный) > Perl-воркшоп в этот день в этом городе: > http://event.perlrussia.org/saintperl3/. > > -- > Andrew Shitov > ______________________________________________________________________ > andy на shitov.ru | http://shitov.ru > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From zzz на zzz.org.ua Tue Nov 1 10:48:42 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 1 Nov 2011 19:48:42 +0200 Subject: [Moscow.pm] [ANN] nginx-perl Message-ID: Hello, Предлагаю попробовать расширенный встроенный перл. Я решил переделать все то, что мне не нравилось в прошлом моем модуле, но уже в виде патча для nginx, Взять в виде дистрибутива можно тут: https://github.com/zzzcpan/nginx-perl Вся документация пока только в этом письме. Старый API не меняется и практически не тронут: http://nginx.org/ru/docs/http/ngx_http_perl_module.html 1. Установка Сразу советую собрать с новым перлом, использованиe памяти в других не обрадует: Сейчас это довольно просто: % sudo cpan App::perlbrew % perlbrew --force install perl-5.14.2 И через пол часа получите перл в /home//perl5/perlbrew/perls/perl-5.14.2/ Теперь nginx, перл там включен сразу, нужно только указать, с каким собрать: % ./configure --with-perl=/home//perl5/perlbrew/perls/perl-5.14.2/bin/perl % make В дистрибутиве есть готовый конфиг для быстрого старта: % mkdir hello/logs % ./objs/nginx -p hello Пример модуля лежит в hello/lib/Hello.pm, конфиг в hello/conf/nginx.conf. 2. Асинхронные ответы Можно отвечать на запросы асинхронно из другого обработчика: sub handler { my $r = shift; $r->main_count_inc; # ... здесь создаем обработчики для других событий return NGX_DONE; } NGX_DONE позволяет не обрабатывать запрос по старому, а сразу выйти из обрабтчика и вернуться в event loop. Чтобы отправить ответ позже, нужно две строчки: $r->send_special(NGX_HTTP_LAST); $r->finalize_request(NGX_OK); Пример, создать таймер и ответить через секунду: sub handler { my $r = shift; $r->main_count_inc; ngx_timer 1, 0, sub { $r->send_http_header("text/html"); $r->print("Hello\n"); $r->send_special(NGX_HTTP_LAST); $r->finalize_request(NGX_OK); } return NGX_DONE; } 3. Асинхронные соединения: - все ошибки устанавливаются в $!, - EOF считается ошибкой, можно проверить условием: $! == NGX_EOF - flow control происходит через return: return NGX_READ; return NGX_WRITE; return NGX_CLOSE; Чтобы подключиться к какому-то хосту используется ngx_connector: ngx_connector $host, $port, $timeout, sub { return NGX_CLOSE if $!; my $connection = shift; ... }; Внутри коннектора можно создавать функции чтения и записи: ngx_writer $buf, $timeout, sub { return NGX_CLOSE if $!; ... return NGX_READ; }; ngx_reader $buf, $min, $max, $timeout, sub { return NGX_CLOSE if $!; ... return NGX_CLOSE; }; ngx_reader и ngx_writer можно пересоздавать внутри сколько угодно раз. Пример: подключиться к какому-то фтп и считать приветствие: ngx_connector '87.51.34.132', 21, 5, sub { return NGX_CLOSE if $!; my $c = shift; my $buf = ''; ngx_reader $c, $buf, 0, 0, 5, sub { return NGX_CLOSE if $!; return NGX_READ if $buf !~ /\x0a/; warn "buf = $buf\n"; return NGX_CLOSE; }; return NGX_READ; }; Более сложный пример можно найти в hello/lib/Hello.pm, функция selftest_get. Она отправляет простой http запрос, принимает ответ и возвращает результат в колбэк. 4. Подход Уже наверное понятно, какой подход реализован: - все, что вложено -- последовательно - все, что подряд -- параллельно Все переменные хранятся в пэдах, никаких объектов. Чтобы не запутаться, лучше так и продолжать, это довольно просто: sub foo ($\$&) { my ($arg, $arg_ref, $cb) = @_; # ... здесь можно вызывать таймер, коннектор и т.д. &$cb(); } Вызов: foo 1, $buf, sub { print $buf; }; 5. Баги Модуль довольно большой, так что не без багов. Будьте осторожны с отправкой ответа два раза, это вызовет segfault, потому что $r уже после первого будет указывать на осоводившуюся память. Со временем пофиксим. На всякий случай прикладываю и в виде патча. From ivan на bessarabov.ru Wed Nov 2 07:26:45 2011 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Wed, 2 Nov 2011 18:26:45 +0400 Subject: [Moscow.pm] =?utf-8?b?0JzQvtC00YPQu9C4INC00LvRjyDRgNCw0LHQvtGC?= =?utf-8?b?0Ysg0YEgZXhjZXB0aW9u?= Message-ID: А какой модуль вы используете для работы с exception в Perl? From cub.uanic на gmail.com Wed Nov 2 08:10:01 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Wed, 2 Nov 2011 17:10:01 +0200 Subject: [Moscow.pm] =?utf-8?b?0JzQvtC00YPQu9C4INC00LvRjyDRgNCw0LHQvtGC?= =?utf-8?b?0Ysg0YEgZXhjZXB0aW9u?= In-Reply-To: References: Message-ID: Для перехвата Try::Tiny Для генерации die, иногда Throwable::Error (если уже используется Moose) 2 ноября 2011 г. 16:26 пользователь Иван Бессарабов написал: > А какой модуль вы используете для работы с exception в Perl? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From ruz на bestpractical.com Wed Nov 2 08:15:15 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Wed, 2 Nov 2011 19:15:15 +0400 Subject: [Moscow.pm] [ANN] nginx-perl In-Reply-To: References: Message-ID: Привет, Есть в загашнике один асинхронный проект, но пока нету времени к нему вернуться, но все равно спрошу общие вопросы. Я еще раньше смотрел на ваш Nginx::Engine краем глаза. Я так понимаю это новое решение полностью вытеснит необходимость в Nginx::Engine. Верно? Судя по всему можно поверх этого дела написать реализацию AnyEvent::Impl::Nginx. Верно? 2011/11/1 Alexandr Gomoliako : > Hello, > > Предлагаю попробовать расширенный встроенный перл. > Я решил переделать все то, что мне не нравилось в прошлом > моем модуле, но уже в виде патча для nginx, > > Взять в виде дистрибутива можно тут: >    https://github.com/zzzcpan/nginx-perl > > Вся документация пока только в этом письме. > > Старый API не меняется и практически не тронут: >    http://nginx.org/ru/docs/http/ngx_http_perl_module.html > > > 1. Установка > > Сразу советую собрать с новым перлом, использованиe > памяти в других не обрадует: > Сейчас это довольно просто: >    % sudo cpan App::perlbrew >    % perlbrew --force install perl-5.14.2 > > И через пол часа получите перл в >    /home//perl5/perlbrew/perls/perl-5.14.2/ > > Теперь nginx, перл там включен сразу, нужно только > указать, с каким собрать: >    % ./configure > --with-perl=/home//perl5/perlbrew/perls/perl-5.14.2/bin/perl >    % make > > В дистрибутиве есть готовый конфиг для быстрого старта: >    % mkdir hello/logs >    % ./objs/nginx -p hello > > Пример модуля лежит в hello/lib/Hello.pm, конфиг в hello/conf/nginx.conf. > > > 2. Асинхронные ответы > > Можно отвечать на запросы асинхронно из другого > обработчика: > >    sub handler { >        my $r = shift; > >        $r->main_count_inc; > >        # ... здесь создаем обработчики для других событий > >        return NGX_DONE; >    } > > NGX_DONE позволяет не обрабатывать запрос по старому, > а сразу выйти из обрабтчика и вернуться в event loop. > > Чтобы отправить ответ позже, нужно две строчки: > >    $r->send_special(NGX_HTTP_LAST); >    $r->finalize_request(NGX_OK); > > Пример, создать таймер и ответить через секунду: > >    sub handler { >        my $r = shift; >        $r->main_count_inc; > >        ngx_timer 1, 0, sub { >            $r->send_http_header("text/html"); >            $r->print("Hello\n"); > >            $r->send_special(NGX_HTTP_LAST); >            $r->finalize_request(NGX_OK); >        } > >        return NGX_DONE; >    } > > > 3. Асинхронные соединения: > >  - все ошибки устанавливаются в $!, >  - EOF считается ошибкой, можно проверить условием: >        $! == NGX_EOF >  - flow control происходит через return: >        return NGX_READ; >        return NGX_WRITE; >        return NGX_CLOSE; > > Чтобы подключиться к какому-то хосту используется > ngx_connector: > >    ngx_connector $host, $port, $timeout, sub { >        return NGX_CLOSE  if $!; >        my $connection = shift; >        ... >    }; > > Внутри коннектора можно создавать функции чтения > и записи: > >    ngx_writer $buf, $timeout, sub { >        return NGX_CLOSE  if $!; >        ... >        return NGX_READ; >    }; > >    ngx_reader $buf, $min, $max, $timeout, sub { >        return NGX_CLOSE  if $!; >        ... >        return NGX_CLOSE; >    }; > > ngx_reader и ngx_writer можно пересоздавать > внутри сколько угодно раз. > > Пример: подключиться к какому-то фтп и считать > приветствие: > >    ngx_connector '87.51.34.132', 21, 5, sub { >        return NGX_CLOSE  if $!; > >        my $c = shift; >        my $buf = ''; > >        ngx_reader $c, $buf, 0, 0, 5, sub { >            return NGX_CLOSE  if $!; >            return NGX_READ  if $buf !~ /\x0a/; > >            warn "buf = $buf\n"; > >            return NGX_CLOSE; >        }; > >        return NGX_READ; >    }; > > Более сложный пример можно найти в hello/lib/Hello.pm, > функция selftest_get. Она отправляет простой http запрос, > принимает ответ и возвращает результат в колбэк. > > > 4. Подход > > Уже наверное понятно, какой подход реализован: >  - все, что вложено --  последовательно >  - все, что подряд -- параллельно > > Все переменные хранятся в пэдах, никаких объектов. > Чтобы не запутаться, лучше так и продолжать, это довольно > просто: > >    sub foo ($\$&) { >        my ($arg, $arg_ref, $cb) = @_; >        # ...  здесь можно вызывать таймер, коннектор и т.д. >        &$cb(); >    } > > Вызов: >    foo 1, $buf, sub { >         print $buf; >    }; > > > 5. Баги > > Модуль довольно большой, так что не без багов. > > Будьте осторожны с отправкой ответа два раза, это > вызовет segfault, потому что $r уже после первого будет > указывать на осоводившуюся память. > Со временем пофиксим. > > > На всякий случай прикладываю и в виде патча. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From ruz на bestpractical.com Wed Nov 2 08:17:11 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Wed, 2 Nov 2011 19:17:11 +0400 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: <53481320152670@web62.yandex.ru> References: <53481320152670@web62.yandex.ru> Message-ID: 2011/11/1 Orlovsky Alexander : > Было бы хорошо собраться в рамках Moscow.pm незадолго до эвента. > Заодно можно было бы доклады обкатать в "черновом" режиме. Да и не собирались давно. Хорошая идея. Четверг 8 декабря? > > > 26.10.2011, 02:03, "Andrew Shitov" : >> >> В третий раз мы приглашаем всех на День рождения перла в >> Санкт-Петербург. 18 декабря на уже третий (и по-прежнему бесплатный) >> Perl-воркшоп в этот день в этом городе: >> http://event.perlrussia.org/saintperl3/. >> >> -- >> Andrew Shitov >> ______________________________________________________________________ >> andy на shitov.ru | http://shitov.ru >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From zzz на zzz.org.ua Wed Nov 2 10:15:59 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 2 Nov 2011 19:15:59 +0200 Subject: [Moscow.pm] [ANN] nginx-perl In-Reply-To: References: Message-ID: On Wed, Nov 2, 2011 at 5:15 PM, Ruslan Zakirov wrote: > Я еще раньше смотрел на ваш Nginx::Engine краем глаза. Я так понимаю > это новое решение полностью вытеснит необходимость в Nginx::Engine. > Верно? Да, вытеснит. На старый можно уже не смотреть, я его пока еще буду поддерживать, но только на freebsd. > Судя по всему можно поверх этого дела написать реализацию > AnyEvent::Impl::Nginx. Верно? AnyEvent'у нужен ниже уровень, т.е. доступ к дескрипторам, чтобы могли сами вызывать sysread/syswrite на них. Это даже не планируется. Да и у него свои другие проблемы. From member на linkedin.com Wed Nov 2 11:11:33 2011 From: member на linkedin.com (Alexander Chernov via LinkedIn) Date: Wed, 2 Nov 2011 18:11:33 +0000 (UTC) Subject: [Moscow.pm] =?utf-8?b?0J/RgNC40LPQu9Cw0YjQtdC90LjQtSDQv9C+0LQ=?= =?utf-8?b?0LrQu9GO0YfQuNGC0YzRgdGPINC6IExpbmtlZElu?= Message-ID: <1713401764.3057558.1320257493765.JavaMail.app@ela4-app0133.prod> LinkedIn ------------ Alexander Chernov requested to add you as a connection on LinkedIn: ------------------------------------------ Eugene, Присоединяйтесь к сети моих профессиональных контактов в LinkedIn! - Alexander Accept invitation from Alexander Chernov http://www.linkedin.com/e/kcw15v-guin81z4-2i/pXYbgsitMXnSsLzHCoPbx5zhVDB/blk/I3218242141_2/1BpC5vrmRLoRZcjkkZt5YCpnlOt3RApnhMpmdzgmhxrSNBszYOnP4Qcj8QczwNczd9bQJBrl5Kc3p1bP8NdP0RdPwTdPgLrCBxbOYWrSlI/EML_comm_afe/?hs=false&tok=2OcvK3TQd3MAY1 View invitation from Alexander Chernov http://www.linkedin.com/e/kcw15v-guin81z4-2i/pXYbgsitMXnSsLzHCoPbx5zhVDB/blk/I3218242141_2/39vcjgNczgOe34OcQALqnpPbOYWrSlI/svi/?hs=false&tok=1ZwlDC5lJ3MAY1 ------------------------------------------ DID YOU KNOW LinkedIn can help you find the right service providers using recommendations from your trusted network? Using LinkedIn Services, you can take the risky guesswork out of selecting service providers by reading the recommendations of credible, trustworthy members of your network. http://www.linkedin.com/e/kcw15v-guin81z4-2i/svp/inv-25/?hs=false&tok=24TaNtJG53MAY1 -- (c) 2011, LinkedIn Corporation ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From alexusblack на gmail.com Wed Nov 2 11:31:34 2011 From: alexusblack на gmail.com (=?KOI8-R?B?4czFy9PBzsTSIP7F0s7P1w==?=) Date: Wed, 2 Nov 2011 22:31:34 +0400 Subject: [Moscow.pm] =?koi8-r?b?8NLJx8zB28XOycUg0M/Ey8zA3snU2NPRIMsgTGlu?= =?koi8-r?b?a2VkSW4=?= In-Reply-To: <1713401764.3057558.1320257493765.JavaMail.app@ela4-app0133.prod> References: <1713401764.3057558.1320257493765.JavaMail.app@ela4-app0133.prod> Message-ID: Прошу прощения за этот случайный спам =) 2 ноября 2011 г. 22:11 пользователь Alexander Chernov via LinkedIn < member на linkedin.com> написал: > LinkedIn > Alexander Chernov requested to add you as a connection on LinkedIn: > > Eugene, > > Присоединяйтесь к сети моих профессиональных контактов в LinkedIn! > > - Alexander > > Accept > View invitation from Alexander Chernov > > > DID YOU KNOW *LinkedIn can help you find the right service providers > using recommendations from your trusted network?* > > Using LinkedIn Services, > you can take the risky guesswork out of selecting service providers by > reading the recommendations of credible, trustworthy members of your > network. > > > © 2011, LinkedIn Corporation > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением Чернов Александр . ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chesnokov.ilya на gmail.com Wed Nov 2 12:30:21 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Wed, 2 Nov 2011 23:30:21 +0400 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: <53481320152670@web62.yandex.ru> References: <53481320152670@web62.yandex.ru> Message-ID: Если будет "черновое" чтение докладов, то было бы неплохо, поскольку в Питер ехать не собираюсь :) 1 ноября 2011 г. 17:04 пользователь Orlovsky Alexander написал: > Было бы хорошо собраться в рамках Moscow.pm незадолго до эвента. > Заодно можно было бы доклады обкатать в "черновом" режиме. Да и не собирались давно. > > > 26.10.2011, 02:03, "Andrew Shitov" : >> >> В третий раз мы приглашаем всех на День рождения перла в >> Санкт-Петербург. 18 декабря на уже третий (и по-прежнему бесплатный) >> Perl-воркшоп в этот день в этом городе: >> http://event.perlrussia.org/saintperl3/. >> >> -- >> Andrew Shitov >> ______________________________________________________________________ >> andy на shitov.ru | http://shitov.ru >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ilya Chesnokov From worldmind на mail.ru Wed Nov 2 22:39:19 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Thu, 03 Nov 2011 09:39:19 +0400 Subject: [Moscow.pm] =?koi8-r?b?7c/E1czJIMTM0SDSwcLP1Nkg0yAgZXhjZXB0aW9u?= In-Reply-To: References: Message-ID: <1320298759.2196.12.camel@host> On Ср., 2011-11-02 at 18:26 +0400, Иван Бессарабов wrote: > А какой модуль вы используете для работы с exception в Perl? а нужен ли модуль когда есть конструкции языка, у модулей добавляющих новый синтаксис могут быть подводные камни, тему эту я как-то поднимал http://mail.pm.org/pipermail/moscow-pm/2011-February/009557.html мне кажется неплохим вариантом eval { # что-то могущее умереть 1; } or do { # обработка ошибок } From chesnokov.ilya на gmail.com Thu Nov 3 00:27:23 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Thu, 3 Nov 2011 11:27:23 +0400 Subject: [Moscow.pm] =?utf-8?b?0JzQvtC00YPQu9C4INC00LvRjyDRgNCw0LHQvtGC?= =?utf-8?b?0Ysg0YEgZXhjZXB0aW9u?= In-Reply-To: References: Message-ID: Для OO-exceptions - Exception::Class, для обычных - die/croak + eval {}. 2 ноября 2011 г. 18:26 пользователь Иван Бессарабов написал: > А какой модуль вы используете для работы с exception в Perl? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ilya Chesnokov From nordicdyno на yandex.ru Thu Nov 3 00:59:01 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 03 Nov 2011 11:59:01 +0400 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: References: <53481320152670@web62.yandex.ru> Message-ID: <271961320307143@web147.yandex.ru> А они будут, доклады? У меня есть желание сделать пару лайтингов (надо на этих выходных поразмыслить) 02.11.2011, 23:30, "Ilya Chesnokov" : > Если будет "черновое" чтение докладов, то было бы неплохо, поскольку в > Питер ехать не собираюсь :) > > 1 ноября 2011 г. 17:04 пользователь Orlovsky Alexander > написал: > >>  Было бы хорошо собраться в рамках Moscow.pm незадолго до эвента. >>  Заодно можно было бы доклады обкатать в "черновом" режиме. Да и не собирались давно. >> >>  26.10.2011, 02:03, "Andrew Shitov" : >>>  В третий раз мы приглашаем всех на День рождения перла в >>>  Санкт-Петербург. 18 декабря на уже третий (и по-прежнему бесплатный) >>>  Perl-воркшоп в этот день в этом городе: >>>  http://event.perlrussia.org/saintperl3/. >>> >>>  -- >>>  Andrew Shitov >>>  ______________________________________________________________________ >>>  andy на shitov.ru | http://shitov.ru >>> >>>  -- >>>  Moscow.pm mailing list >>>  moscow-pm на pm.org | http://moscow.pm.org >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > Best regards, > Ilya Chesnokov > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From nordicdyno на yandex.ru Thu Nov 3 01:10:08 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 03 Nov 2011 12:10:08 +0400 Subject: [Moscow.pm] =?koi8-r?b?7c/E1czJIMTM0SDSwcLP1Nkg0yAgZXhjZXB0aW9u?= In-Reply-To: <1320298759.2196.12.camel@host> References: <1320298759.2196.12.camel@host> Message-ID: <434661320307809@web70.yandex.ru> Я обычно использую eval, но вообще Try::Tiny делает тоже самое более правильно См. доку и код http://search.cpan.org/~doy/Try-Tiny-0.11/lib/Try/Tiny.pm Почему это лучше, предложеного тобой, варианта там написано. 03.11.2011, 09:39, "Alexey Shrub" : > On Ср., 2011-11-02 at 18:26 +0400, Иван Бессарабов wrote: > >>  А какой модуль вы используете для работы с exception в Perl? > > а нужен ли модуль когда есть конструкции языка, у модулей добавляющих > новый синтаксис могут быть подводные камни, тему эту я как-то поднимал > http://mail.pm.org/pipermail/moscow-pm/2011-February/009557.html > > мне кажется неплохим вариантом > eval { >   # что-то могущее умереть >   1; > } or do { >   # обработка ошибок > } > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From ruz на bestpractical.com Thu Nov 3 04:11:00 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Thu, 3 Nov 2011 15:11:00 +0400 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: <271961320307143@web147.yandex.ru> References: <53481320152670@web62.yandex.ru> <271961320307143@web147.yandex.ru> Message-ID: 2011/11/3 Orlovsky Alexander : > А они будут, доклады? > У меня есть желание сделать пару лайтингов (надо на этих выходных поразмыслить) Нужна площадка и желающие рассказать. > 02.11.2011, 23:30, "Ilya Chesnokov" : >> Если будет "черновое" чтение докладов, то было бы неплохо, поскольку в >> Питер ехать не собираюсь :) >> >> 1 ноября 2011 г. 17:04 пользователь Orlovsky Alexander >> написал: >> >>>  Было бы хорошо собраться в рамках Moscow.pm незадолго до эвента. >>>  Заодно можно было бы доклады обкатать в "черновом" режиме. Да и не собирались давно. >>> >>>  26.10.2011, 02:03, "Andrew Shitov" : >>>>  В третий раз мы приглашаем всех на День рождения перла в >>>>  Санкт-Петербург. 18 декабря на уже третий (и по-прежнему бесплатный) >>>>  Perl-воркшоп в этот день в этом городе: >>>>  http://event.perlrussia.org/saintperl3/. >>>> >>>>  -- >>>>  Andrew Shitov >>>>  ______________________________________________________________________ >>>>  andy на shitov.ru | http://shitov.ru >>>> >>>>  -- >>>>  Moscow.pm mailing list >>>>  moscow-pm на pm.org | http://moscow.pm.org >>>  -- >>>  Moscow.pm mailing list >>>  moscow-pm на pm.org | http://moscow.pm.org >> -- >> Best regards, >> Ilya Chesnokov >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From mons на rambler-co.ru Thu Nov 3 08:04:20 2011 From: mons на rambler-co.ru (Mons Anderson) Date: Thu, 3 Nov 2011 18:04:20 +0300 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: References: <53481320152670@web62.yandex.ru> <271961320307143@web147.yandex.ru> Message-ID: <69B10C28-309C-483F-8B57-4663B6C6DF7E@rambler-co.ru> Как площадку думаю вполне пробью Рамблер On 03.11.2011, at 14:11, Ruslan Zakirov wrote: > 2011/11/3 Orlovsky Alexander : >> А они будут, доклады? >> У меня есть желание сделать пару лайтингов (надо на этих выходных поразмыслить) > > Нужна площадка и желающие рассказать. > >> 02.11.2011, 23:30, "Ilya Chesnokov" : >>> Если будет "черновое" чтение докладов, то было бы неплохо, поскольку в >>> Питер ехать не собираюсь :) >>> >>> 1 ноября 2011 г. 17:04 пользователь Orlovsky Alexander >>> написал: >>> >>>> Было бы хорошо собраться в рамках Moscow.pm незадолго до эвента. >>>> Заодно можно было бы доклады обкатать в "черновом" режиме. Да и не собирались давно. >>>> >>>> 26.10.2011, 02:03, "Andrew Shitov" : >>>>> В третий раз мы приглашаем всех на День рождения перла в >>>>> Санкт-Петербург. 18 декабря на уже третий (и по-прежнему бесплатный) >>>>> Perl-воркшоп в этот день в этом городе: >>>>> http://event.perlrussia.org/saintperl3/. >>>>> >>>>> -- >>>>> Andrew Shitov >>>>> ______________________________________________________________________ >>>>> andy на shitov.ru | http://shitov.ru >>>>> >>>>> -- >>>>> Moscow.pm mailing list >>>>> moscow-pm на pm.org | http://moscow.pm.org >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | http://moscow.pm.org >>> -- >>> Best regards, >>> Ilya Chesnokov >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > -- > Best regards, Ruslan. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From mi на ya.ru Thu Nov 3 08:13:18 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 03 Nov 2011 19:13:18 +0400 Subject: [Moscow.pm] File::Slurp and reinvention of wheel Message-ID: <563331320333198@web145.yandex.ru> Hi Moscow-pm, Тут, начиная писать очередную программу, почитал perldoc File::Slurp и вспомнил о массе велосипедов, изобретенных во время написания прошлых программ (модулей), например,например для написания программ чтения каталога с файлами или файла https://gist.github.com/1336723 были написаны следующие велосипеды: read_file, select_files https://gist.github.com/1336731 просто порой смотрю на старый код и страшно становиться - и зачем я тратил столько времени, когда было уже готовое решение, правда у меня было ограничение, что я не могу скопилировать модуль (no root access), только pure perl, но тем не менее это меня мало извиняет -- Nikolay Mishin From andy на shitov.ru Thu Nov 3 08:17:40 2011 From: andy на shitov.ru (Andrew Shitov) Date: Thu, 3 Nov 2011 16:17:40 +0100 Subject: [Moscow.pm] File::Slurp and reinvention of wheel In-Reply-To: <563331320333198@web145.yandex.ru> References: <563331320333198@web145.yandex.ru> Message-ID: > просто порой смотрю на старый код и страшно становиться - и зачем я тратил столько времени, Не-не. Писать свое иногда надо, иначе это как учиться яваскрипту по jQuery. -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From tarkhil на over.ru Sat Nov 5 02:39:17 2011 From: tarkhil на over.ru (Alex Povolotsky) Date: Sat, 05 Nov 2011 13:39:17 +0400 Subject: [Moscow.pm] =?koi8-r?b?Q2F0YWx5c3QgySDE18/Kzs/FINDF0sXLz8TJ0s/X?= =?koi8-r?b?wc7JxSBVVEYtOA==?= Message-ID: <4EB50445.9000905@over.ru> Добрый день, программа с использованием Catalyst нормально обрабатывает UTF-8 в БД (с Catalyst::Plugin::Unicode::Encoding), но строчные константы в коде и данные, читаемые из конфига модулем Config::Any все равно еще раз кодируются в UTF. Сами исходники в UTF-8, конфиг тоже в UTF. Наивная попытка принудительно апгрейдить строчки с помощью utf8::upgrade подняла флаг UTF, но ни к какому полезному эффекту не привела. Alex. From tarkhil на over.ru Sat Nov 5 02:51:52 2011 From: tarkhil на over.ru (Alex Povolotsky) Date: Sat, 05 Nov 2011 13:51:52 +0400 Subject: [Moscow.pm] =?koi8-r?b?Q2F0YWx5c3QgySDE18/Kzs/FINDF0sXLz8TJ0s/X?= =?koi8-r?b?wc7JxSBVVEYtOA==?= In-Reply-To: <4EB50445.9000905@over.ru> References: <4EB50445.9000905@over.ru> Message-ID: <4EB50738.4050808@over.ru> On 11/05/11 13:39, Alex Povolotsky wrote: > Добрый день, > > программа с использованием Catalyst нормально обрабатывает UTF-8 в БД > (с Catalyst::Plugin::Unicode::Encoding), но строчные константы в коде > и данные, читаемые из конфига модулем Config::Any все равно еще раз > кодируются в UTF. > > Сами исходники в UTF-8, конфиг тоже в UTF. > > Наивная попытка принудительно апгрейдить строчки с помощью > utf8::upgrade подняла флаг UTF, но ни к какому полезному эффекту не > привела. > > Alex. Сформулировал вопрос и все понял 1. use utf8 в начале модуля - для строчных констант 2. 'Plugin::ConfigLoader' => { driver => { 'General' => { -UTF8 => 1 }, } }, для конфига Alex From u-suke на kawa.net Sun Nov 6 16:05:34 2011 From: u-suke на kawa.net (Yusuke Kawasaki) Date: Mon, 7 Nov 2011 09:05:34 +0900 Subject: [Moscow.pm] Final Call: MA7 web tech contest deadline is today! Message-ID: Hi all, I am only Japanese Perl hacker who attend YAPC::Europe Riga 2011. http://mtl.recruit.co.jp/blog/2011/08/ye2011-day1.html http://search.cpan.org/~kawasaki/ As I've mentioned in my talk at the YAPC, I am lead organizer of the MA7 which is Japan's largest web tech contest. The MA7 is accepting web services, smartphone applications, etc. from the globe. http://ma7.mashupaward.jp/?locale=en TODAY IS THE DEADLINE!! The MA7?s submission deadline is today, Monday, 7 November! We?ve accepted 300+ great applications for the MA7 until yesterday. Most applications will be submitted today, we expect from past MAs experience. Submit your app at the form https://ma7.mashupaward.jp/entry?locale=en The deadline is 24:00 midnight at Tokyo time. Tokyo: 24:00 Midnight (JST) November 7 Moscow: 19:00 (MSK) November 7 Apps for submission MUST use one of APIs provided by our API partners: Adobe, Evernote, Facebook, Microsoft, PayPal, Yahoo: YUI library, Yahoo Japan's OAuth, OpenID Google: Chrome Extension / WebApps, Google Apps, App Engine. and more: http://ma7en.tumblr.com/post/10531356431/api-partners http://ma7.mashupaward.jp/apis/company?locale=en We're looking for your application at the MA7. Best regards, -- Yusuke Kawasaki http://www.kawa.net/ From dsimonov на gmail.com Sun Nov 6 22:04:02 2011 From: dsimonov на gmail.com (Dmitry Simonov) Date: Mon, 7 Nov 2011 10:04:02 +0400 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= Message-ID: Привет! Знакомые попросили рекомендаций на перловиков, которым интересна full-time удалённая работа (денег обещают сравнимо с фулл-тайм работой в московском офисе). Единственное условие - я должен знать вас лично или вас должны рекомендовать хорошо знакомые мне люди. Пишите в личку. П.С. здесь не флудить, plz. --- Dmitriy V. Simonov, Perl & Python programmer From dmitry на karasik.eu.org Mon Nov 7 00:12:41 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Mon, 7 Nov 2011 09:12:41 +0100 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: References: Message-ID: <20111107081241.GA77457@tetsuo.karasik.eu.org> Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм работа в московском оффисе? /dk On Mon, Nov 07, 2011 at 10:04:02AM +0400, Dmitry Simonov wrote: > Привет! > > Знакомые попросили рекомендаций на перловиков, которым интересна > full-time удалённая работа (денег обещают сравнимо с фулл-тайм работой > в московском офисе). Единственное условие - я должен знать вас лично > или вас должны рекомендовать хорошо знакомые мне люди. > > Пишите в личку. > > П.С. здесь не флудить, plz. > > --- > Dmitriy V. Simonov, > Perl & Python programmer > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Sincerely, Dmitry Karasik From akovbovich на gmail.com Mon Nov 7 00:18:36 2011 From: akovbovich на gmail.com (=?UTF-8?B?0JDQvdC00YDQtdC5INCfLiDQmtC+0LLQsdC+0LLQuNGH?=) Date: Mon, 7 Nov 2011 12:18:36 +0400 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= In-Reply-To: <20111107081241.GA77457@tetsuo.karasik.eu.org> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> Message-ID: Если зп сравнима с зарплатой в московском офисе гугла, то пишите:) 2011/11/7 Dmitry Karasik : > Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм работа в московском оффисе? > > /dk > > On Mon, Nov 07, 2011 at 10:04:02AM +0400, Dmitry Simonov wrote: >> Привет! >> >> Знакомые попросили рекомендаций на перловиков, которым интересна >> full-time удалённая работа (денег обещают сравнимо с фулл-тайм работой >> в московском офисе). Единственное условие - я должен знать вас лично >> или вас должны рекомендовать хорошо знакомые мне люди. >> >> Пишите в личку. >> >> П.С. здесь не флудить, plz. >> >> --- >> Dmitriy V. Simonov, >> Perl & Python programmer >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- > Sincerely, >        Dmitry Karasik > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From mshogin на gmail.com Mon Nov 7 02:17:43 2011 From: mshogin на gmail.com (=?KOI8-R?B?7cnIwcnMIPvPx8nO?=) Date: Mon, 7 Nov 2011 14:17:43 +0400 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: <20111107081241.GA77457@tetsuo.karasik.eu.org> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> Message-ID: http://moikrug.ru/vacancies/?keywords=Perl&company_name=&Widget%5B%5D=AddressLight%3Avacancy_address&vacancy_address_country_did=null&Widget%5B%5D=CitySuggest%3Avacancy_address_suggest&vacancy_address_suggest=&vacancy_address_suggest%5Bcity_other%5D=%CC%EE%F1%EA%E2%E0&vacancy_address_suggest%5Bcity_did%5D=678&vacancy_address_suggest%5Bother_city_disabled%5D=&Widget%5B%5D=vacancyIndustrySelector%3Avacancy_catalog&vacancy_catalog_select=0&salary_from=80000&salary_to=&salary_currency=rur&salary_free=0&submit=%CD%E0%E9%F2%E8 Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм > работа в московском оффисе? > > -- С уважением Михаил Шогин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Mon Nov 7 03:57:18 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Mon, 7 Nov 2011 15:57:18 +0400 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= In-Reply-To: <20111107081241.GA77457@tetsuo.karasik.eu.org> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> Message-ID: <20111107115718.GG24714@apache.rbscorp.ru> > Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм работа в московском оффисе? от 130 до 170 сейчас. на меньше фуллтайм в москве нет смысла перловику идти :) From worldmind на mail.ru Mon Nov 7 04:17:36 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Mon, 07 Nov 2011 16:17:36 +0400 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: <20111107115718.GG24714@apache.rbscorp.ru> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> Message-ID: <1320668256.3777.4.camel@host> On Пн., 2011-11-07 at 15:57 +0400, Ivan Petrov wrote: > > Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм работа в московском оффисе? > от 130 до 170 сейчас. на меньше фуллтайм в москве нет смысла перловику идти :) да ладно нищебродствовать, меньше 200 не брать, а если серьёзно, то http://rabota.yandex.ru/salary.xml?text=Perl%20%D0%BF%D1%80%D0%BE%D0%B3% D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82 From worldmind на mail.ru Mon Nov 7 04:24:31 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Mon, 07 Nov 2011 16:24:31 +0400 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: <1320668256.3777.4.camel@host> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <1320668256.3777.4.camel@host> Message-ID: <1320668671.3777.6.camel@host> On Пн., 2011-11-07 at 16:17 +0400, Alexey Shrub wrote: > http://rabota.yandex.ru/salary.xml?text=Perl%20%D0%BF%D1%80%D0%BE%D0%B3% > D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82 так может ссылка удобнее для копипаста будет http://rabota.yandex.ru/salary.xml?text=Perl программист From worldmind на mail.ru Mon Nov 7 21:29:39 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Tue, 08 Nov 2011 09:29:39 +0400 Subject: [Moscow.pm] =?koi8-r?b?7c/E1czJIMTM0SDSwcLP1Nkg0yAgZXhjZXB0aW9u?= In-Reply-To: <434661320307809@web70.yandex.ru> References: <1320298759.2196.12.camel@host> <434661320307809@web70.yandex.ru> Message-ID: <1320730179.3585.5.camel@host> On Чт., 2011-11-03 at 12:10 +0400, Orlovsky Alexander wrote: > Я обычно использую eval, но вообще Try::Tiny делает тоже самое более правильно > См. доку и код http://search.cpan.org/~doy/Try-Tiny-0.11/lib/Try/Tiny.pm > Почему это лучше, предложеного тобой, варианта там написано. К сожалению не доходят руки перечитать, но насколько помню там речь шла о локализации $@, тогда да, мой вариант нужно ещё одним блоком обернуть и будет достаточно уродливо From i.petro.77.00 на gmail.com Tue Nov 8 04:49:26 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 16:49:26 +0400 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= In-Reply-To: <1320668671.3777.6.camel@host> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <1320668256.3777.4.camel@host> <1320668671.3777.6.camel@host> Message-ID: <20111108124925.GA11956@apache.rbscorp.ru> >> http://rabota.yandex.ru/salary.xml?text=Perl%20%D0%BF%D1%80%D0%BE%D0%B3% >> D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82 > так может ссылка удобнее для копипаста будет > http://rabota.yandex.ru/salary.xml?text=Perl программист а если серьезно то статистике, составленной по 23 вакансиям не стоит доверять. ну и даже в этих 23 есть 2 с суммами 120-140 тыс. то есть это если прямо с одного поисковика пойти и выбрать работу. но можно же посвятить поиску работы пару недель, правда? From oleg.bunin на ontico.ru Tue Nov 8 05:58:18 2011 From: oleg.bunin на ontico.ru (Oleg Bunin) Date: Tue, 8 Nov 2011 17:58:18 +0400 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: <20111107115718.GG24714@apache.rbscorp.ru> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> Message-ID: <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> Вообще, конечно, подобная цена делает проекты на Perl абсолютно не рентабельными и выводит Perl из инструментов разработки новых перспективных проектов в инструмент исключительно поддержки текущих. По мере того, как менеджеры будут принимать решения перейти на PHP и эта область будет выходить из сферы применимости Perl'а. Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 зарплатами программиста на PHP. Это означает, что PHP-команда, при прочих равных, может предложить заказчику цену на 40% ниже, а это очень серьезное преимущество. > > Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм > работа в московском оффисе? > > от 130 до 170 сейчас. на меньше фуллтайм в москве нет смысла перловику > идти :) > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From i.petro.77.00 на gmail.com Tue Nov 8 06:16:44 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 18:16:44 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= Message-ID: <20111108141643.GB11956@apache.rbscorp.ru> Заспорили мы тут с некоторыми товарищами. в итоге пришло к тому "возможно или нет" написать генератор запросов. видимо правы все или неправы все. тут просто вопрос точки зрения. Я помню на одной из перл-конференций один умный человек читал лекцию про трансгуманизм. Там была хорошая мысль: не стоит гнаться за оптимизацией, если дело можно решить мегафлопсами. Они всегда дешевле. В каких-то нишах он прав. Вероятно для этих же ниш подойдет и DBIC. Вот. Ну а для ниш, где флопсы выделенные БД таки не решают всеж-таки ваяем шаблонный движок для работы с SQL. Сперва мы тут ваяли движок с собственным шаблонным языком. Затем применяя его на практике пришли к тому что собственный язык - плохо, надо идти по пути Mojo. То есть встраиваемый перл. В итоге пришли вот к такому синтаксису. SELECT * FROM table WHERE id = <%= $id %> где $id - именованный параметр переданный запросу. Ну или даже так: SELECT % if ($type eq 'count') { COUNT(*) AS count % } else { * % } FROM table WHERE sid = 123 % if ($filter->filter1) { AND field1 = <%= $filter->filter1 %> % } % if ($filter->filter2) { AND field2 = <%= $filter->filter2 %> % } Получается более изящно и сильно более гибко, однако цена этому в примерно в полтора-два раза бОльшее время на парсинг. Впрочем для сложных SQL оно сравнимо (у старого парсера оно оосло в зависимости от сложности, тут слабо зависит). SQL-ки размещены в выделенной директории, имеют фиксированное (пока) расширение '.sql.ep' и DBI расширен тремя допметодами - select - выборка набора данных (аналог selectall_(hash|array)ref) - single - выборка одной строки (аналог selectrow_hashref) - perform - выполнение SQL-запроса (аналог do) Покамест на выходе простые итераторы, позволяющие сделать просто проход по выборке, а объекты просто предоставляют доступ к выбранным полям (AUTOLOAD). В планах сделать отложенные SQL-запросы ну и более расширить API итераторов (сейчас они частично DBIC совместимые). Если кому интересно, то модуль лежит на CPAN - DBIx::DR. Ссылки на git нет. Git - в закрытом проекте. unfortunatelly. Замечания, предложения крайне интересны :) Спорить по поводу того что некрута писать SQL-запросы руками больше не буду :) From i.petro.77.00 на gmail.com Tue Nov 8 06:19:17 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 18:19:17 +0400 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= In-Reply-To: <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> Message-ID: <20111108141917.GC11956@apache.rbscorp.ru> > Вообще, конечно, подобная цена делает проекты на Perl абсолютно не > рентабельными и выводит Perl из инструментов разработки новых перспективных > проектов в инструмент исключительно поддержки текущих. По мере того, как > менеджеры будут принимать решения перейти на PHP и эта область будет > выходить из сферы применимости Perl'а. > Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 > зарплатами программиста на PHP. Это означает, что PHP-команда, при прочих > равных, может предложить заказчику цену на 40% ниже, а это очень серьезное > преимущество. Тут ведь еще и вопрос в качестве получаемого решения. Цена разработчика в этом вопросе совсем не превалирующая :) From andy на shitov.ru Tue Nov 8 06:23:36 2011 From: andy на shitov.ru (Andrew Shitov) Date: Tue, 8 Nov 2011 15:23:36 +0100 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= In-Reply-To: <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> Message-ID: > Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 > зарплатами программиста на PHP. Это означает, что PHP-команда, при прочих > равных, может предложить заказчику цену на Олег, для правдоподобности надо еще сравнить с ценами хотя бы на Python и Java. -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From evdokimov.denis на gmail.com Tue Nov 8 06:37:07 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Tue, 8 Nov 2011 17:37:07 +0300 Subject: [Moscow.pm] =?koi8-r?b?8NLPxM/M1sXOycUg0sHazdnbzMXOycogzsEg1MXN?= =?koi8-r?b?1SBPUk0=?= In-Reply-To: <20111108141643.GB11956@apache.rbscorp.ru> References: <20111108141643.GB11956@apache.rbscorp.ru> Message-ID: Это настолько похоже на Template Toolkit, что возникает вопрос, чем он не устраивал? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sharifulin на gmail.com Tue Nov 8 06:40:48 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Tue, 8 Nov 2011 18:40:48 +0400 Subject: [Moscow.pm] =?koi8-r?b?8NLPxM/M1sXOycUg0sHazdnbzMXOycogzsEg1MXN?= =?koi8-r?b?1SBPUk0=?= In-Reply-To: <20111108141643.GB11956@apache.rbscorp.ru> References: <20111108141643.GB11956@apache.rbscorp.ru> Message-ID: Если честно, то жесть. Хранить запросы в шаблонах, ещё и использовать синтаксис шаблонизатора для генерации шаблна --вообще зло. Чем вам обычный Perl не устраивает? Генерация строки легко решается без шаблонизатора. Но за тимтоуди спасибо) 2011/11/8 Ivan Petrov > Заспорили мы тут с некоторыми товарищами. > > в итоге пришло к тому "возможно или нет" написать генератор запросов. > видимо правы все или неправы все. тут просто вопрос точки зрения. > > > Я помню на одной из перл-конференций один умный человек читал лекцию > про трансгуманизм. Там была хорошая мысль: не стоит гнаться за > оптимизацией, если дело можно решить мегафлопсами. Они всегда > дешевле. > > В каких-то нишах он прав. Вероятно для этих же ниш подойдет и DBIC. > > Вот. Ну а для ниш, где флопсы выделенные БД таки не решают всеж-таки > ваяем шаблонный движок для работы с SQL. > > Сперва мы тут ваяли движок с собственным шаблонным языком. > > Затем применяя его на практике пришли к тому что собственный язык - > плохо, надо идти по пути Mojo. То есть встраиваемый перл. > > В итоге пришли вот к такому синтаксису. > > SELECT > * > FROM > table > WHERE > id = <%= $id %> > > где $id - именованный параметр переданный запросу. > > > Ну или даже так: > > SELECT > % if ($type eq 'count') { > COUNT(*) AS count > % } else { > * > % } > FROM > table > WHERE > sid = 123 > % if ($filter->filter1) { > AND field1 = <%= $filter->filter1 %> > % } > % if ($filter->filter2) { > AND field2 = <%= $filter->filter2 %> > % } > > Получается более изящно и сильно более гибко, однако цена этому в > примерно в полтора-два раза бОльшее время на парсинг. Впрочем для > сложных SQL оно сравнимо (у старого парсера оно оосло в зависимости от > сложности, тут слабо зависит). > > SQL-ки размещены в выделенной директории, имеют фиксированное (пока) > расширение '.sql.ep' и DBI расширен тремя допметодами > > - select - выборка набора данных (аналог selectall_(hash|array)ref) > - single - выборка одной строки (аналог selectrow_hashref) > - perform - выполнение SQL-запроса (аналог do) > > Покамест на выходе простые итераторы, позволяющие сделать просто > проход по выборке, а объекты просто предоставляют доступ к выбранным > полям (AUTOLOAD). В планах сделать отложенные SQL-запросы ну и более > расширить API итераторов (сейчас они частично DBIC совместимые). > > Если кому интересно, то модуль лежит на CPAN - DBIx::DR. > > Ссылки на git нет. Git - в закрытом проекте. unfortunatelly. > > Замечания, предложения крайне интересны :) > Спорить по поводу того что некрута писать SQL-запросы руками больше не > буду :) > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Tue Nov 8 07:04:28 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 8 Nov 2011 17:04:28 +0200 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: <20111108141917.GC11956@apache.rbscorp.ru> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> <20111108141917.GC11956@apache.rbscorp.ru> Message-ID: On Tue, Nov 8, 2011 at 4:19 PM, Ivan Petrov wrote: >> Вообще, конечно, подобная цена делает проекты на Perl абсолютно не >> рентабельными и выводит Perl из инструментов разработки новых перспективных >> проектов в инструмент исключительно поддержки текущих. По мере того, как >> менеджеры будут принимать решения перейти на PHP и эта область будет >> выходить из сферы применимости Perl'а. >> Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 >> зарплатами программиста на PHP. Это означает, что PHP-команда, при прочих >> равных, может предложить заказчику цену на 40% ниже, а это очень серьезное >> преимущество. Странное заявление, как-будто команда только языком и ограничивается. > Цена разработчика в этом вопросе совсем не превалирующая :) +1 From ruz на bestpractical.com Tue Nov 8 07:05:17 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 8 Nov 2011 19:05:17 +0400 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= In-Reply-To: <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> Message-ID: 2011/11/8 Oleg Bunin : > Вообще, конечно, подобная цена делает проекты на Perl абсолютно не > рентабельными и выводит Perl из инструментов разработки новых перспективных > проектов в инструмент исключительно поддержки текущих. По мере того, как > менеджеры будут принимать решения перейти на PHP и эта область будет > выходить из сферы применимости Perl'а. Странный вывод. Скорее всего Perl будет больше вытесняться Python'ом и реже PHP. Что-то я не слышал, что большие игроки переходят с Perl на PHP, а Python упоминался. Мне кажется, что с другими ресурсами в России тоже не ахти, а соответственно зарплата программистов выше чем у PHP программистов. Решил поискать на круге. Не копейки платят PHP программерам: Ведущий PHP/MySQL разработчик 150кр. Конечно на первой странице зарплаты выше 100к заканчиваются. Можно и дальше исследовать, но не буду. > Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 > зарплатами программиста на PHP. Это означает, что PHP-команда, при прочих > равных, может предложить заказчику цену на 40% ниже, а это очень серьезное > преимущество. Ниже 100 - это не зарплата в Москве для любого программиста 25+ с 5+ годами опыта и с семьей, а если еще нужно и квартиру снимать, то совсем грустно становится. Нехватка Perl программистов с маленьким опытом - это недостаток. Результат кризиса в мире perl, который в слабых рынках как российский имел более существенные последствия. Все это размышления мимо темы. Народ недоволен отсутствием суммы/вилки в предложении, а мутная формулировка просто раздражает своей неопределенностью. -- Best regards, Ruslan. From zzz на zzz.org.ua Tue Nov 8 07:48:31 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 8 Nov 2011 17:48:31 +0200 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> Message-ID: On Tue, Nov 8, 2011 at 5:05 PM, Ruslan Zakirov wrote: > Странный вывод. Скорее всего Perl будет больше вытесняться Python'ом и > реже PHP. Что-то я не слышал, что большие игроки переходят с Perl на > PHP, а Python упоминался. Мне кажется, что с другими ресурсами в > России тоже не ахти, а соответственно зарплата программистов выше чем > у PHP программистов. Да никуда он не вытеснится и ничто его не заменит. А с адаптацией REST или вообще JSON HTTP, языки не будут так важны. From mail на knutov.com Tue Nov 8 07:56:11 2011 From: mail на knutov.com (Nick Knutov) Date: Tue, 08 Nov 2011 21:56:11 +0600 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> Message-ID: <4EB9511B.1010006@knutov.com> А качество кода/проектирования и продукта в целом будет меньше значительно более, чем на 40%. И довольно много заказчиков, кстати, это понимают. 08.11.2011 19:58, Oleg Bunin пишет: > Вообще, конечно, подобная цена делает проекты на Perl абсолютно не > рентабельными и выводит Perl из инструментов разработки новых перспективных > проектов в инструмент исключительно поддержки текущих. По мере того, как > менеджеры будут принимать решения перейти на PHP и эта область будет > выходить из сферы применимости Perl'а. > > Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 > зарплатами программиста на PHP. Это означает, что PHP-команда, при прочих > равных, может предложить заказчику цену на 40% ниже, а это очень серьезное > преимущество. > > >>> Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм >> работа в московском оффисе? >> >> от 130 до 170 сейчас. на меньше фуллтайм в москве нет смысла перловику >> идти :) >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 From yu.pats на gmail.com Tue Nov 8 08:05:53 2011 From: yu.pats на gmail.com (Yury Pats) Date: Tue, 8 Nov 2011 19:05:53 +0300 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= In-Reply-To: <4EB9511B.1010006@knutov.com> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> <4EB9511B.1010006@knutov.com> Message-ID: 2011/11/8 Nick Knutov : > А качество кода/проектирования и продукта в целом будет меньше значительно > более, чем на 40%. И довольно много заказчиков, кстати, это понимают. Ждал эту версию. Заказчикам нужен продукт, который двигает их бизнес, им пофиг какого качества код, если он работает. > > 08.11.2011 19:58, Oleg Bunin пишет: >> >> Вообще, конечно, подобная цена делает проекты на Perl абсолютно не >> рентабельными и выводит Perl из инструментов разработки новых >> перспективных >> проектов в инструмент исключительно поддержки текущих. По мере того, как >> менеджеры будут принимать решения перейти на PHP и эта область будет >> выходить из сферы применимости Perl'а. >> >> Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 >> зарплатами программиста на PHP. Это означает, что PHP-команда, при прочих >> равных, может предложить заказчику цену на 40% ниже, а это очень серьезное >> преимущество. >> >> >>>> Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм >>> >>> работа в московском оффисе? >>> >>> от 130 до 170 сейчас. на меньше фуллтайм в москве нет смысла перловику >>> идти :) >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org > > -- > Best Regards, > Nick Knutov > http://knutov.com > ICQ: 272873706 > Voice: +7-904-84-23-130 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From postmaster на softsearch.ru Tue Nov 8 08:21:32 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 8 Nov 2011 20:21:32 +0400 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> Message-ID: <294108770.20111108202132@softsearch.ru> Здравствуйте, Oleg. А с чьего потолка взяты эти цифры? :-) Кто-то чего-то сказал от балды и понеслось... Вы походите по сайтам с резюме (даже не с вакансиями). Перловики сами не хотят больше 100. Конечно сейчас приведут несколько частных случаев, где хотят, и чуть меньше случаев, где даже предлагают. Но общей картины это не изменит. Если кто не в курсе, то сейчас большинство бизнесов в лучшем случае стагнирует и думают не о том, как заработать, а о том, как сохранить то, что есть. Никаких IT-бумов нет и не предвидится. И IT - это не та "тихая гавань", куда сейчас бежит капитал. > Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 > зарплатами программиста на PHP. Это означает, что PHP-команда, при > прочих равных, может предложить заказчику цену на 40% ниже, а это > очень серьезное преимущество. >> > Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм >> работа в московском оффисе? >> >> от 130 до 170 сейчас. на меньше фуллтайм в москве нет смысла перловику >> идти :) -- С уважением, Михаил mailto:postmaster на softsearch.ru From i.petro.77.00 на gmail.com Tue Nov 8 08:29:34 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 20:29:34 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> Message-ID: <20111108162934.GD11956@apache.rbscorp.ru> > Если честно, то жесть. > Хранить запросы в шаблонах, ещё и использовать синтаксис шаблонизатора для > генерации шаблна ?вообще зло. я сперва думал а стоит ли какие-то теги свои заделать, а потом подумал а пусть будут те же самые. если разработчик в одном и том же проекте наталкивается на шаблоны SQL и шаблоны HTML, то есть ли смысл делать разную разметку переключения языков? PS: а почему зло? хранить html в шаблонах еще и использовать синтаксис шаблонизатора для его генерации же добро? почему с SQL по другому? > Чем вам обычный Perl не устраивает? эмм. а и взят обычный Perl. Или ты имеешь ввиду на обычном Perl генерить эти запросы? ну вот нижеприведенный случай ляжет в набор sprintf'ов с if'ами и аппендами. и при этом надо следить будет за тем чтобы плейсхолдеры легли в нужное место. можно конечно за основу взять какой-то конструктор SQL-запроса, но у всех этих подходов один недостаток: разработчик теряет возможность видеть запрос в целом. а видит лишь его части, либо части запросов к конструктору > Генерация строки легко решается без шаблонизатора. > Но за тимтоуди спасибо) а что такое тимтоуди? From shafiev на gmail.com Tue Nov 8 08:30:23 2011 From: shafiev на gmail.com (Naim Shafiev) Date: Tue, 8 Nov 2011 20:30:23 +0400 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> <4EB9511B.1010006@knutov.com> Message-ID: 2011/11/8 Yury Pats : > 2011/11/8 Nick Knutov : >> А качество кода/проектирования и продукта в целом будет меньше значительно >> более, чем на 40%. И довольно много заказчиков, кстати, это понимают. > Ждал эту версию. Заказчикам нужен продукт, который двигает их бизнес, > им пофиг какого качества код, если он работает. > +100 >> >> 08.11.2011 19:58, Oleg Bunin пишет: >>> >>> Вообще, конечно, подобная цена делает проекты на Perl абсолютно не >>> рентабельными и выводит Perl из инструментов разработки новых >>> перспективных >>> проектов в инструмент исключительно поддержки текущих. По мере того, как >>> менеджеры будут принимать решения перейти на PHP и эта область будет >>> выходить из сферы применимости Perl'а. >>> >>> Жалко, конечно, но реально 130-170 не могут конкурировать с 60-100 >>> зарплатами программиста на PHP. Это означает, что PHP-команда, при прочих >>> равных, может предложить заказчику цену на 40% ниже, а это очень серьезное >>> преимущество. >>> >>> >>>>> Оффтопик, просветите меня плиз, а сколько у нас сейчас стоил фулл-тайм >>>> >>>> работа в московском оффисе? >>>> >>>> от 130 до 170 сейчас. на меньше фуллтайм в москве нет смысла перловику >>>> идти :) >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | http://moscow.pm.org >> >> -- >> Best Regards, >> Nick Knutov >> http://knutov.com >> ICQ: 272873706 >> Voice: +7-904-84-23-130 >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > -- > WBR, Yury Pats > skype: yuripats > cellular: +375 (29) 5870723 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From i.petro.77.00 на gmail.com Tue Nov 8 08:30:44 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 20:30:44 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> Message-ID: <20111108163043.GE11956@apache.rbscorp.ru> > Это настолько похоже на Template Toolkit, что возникает вопрос, чем он не > устраивал? эммм. чем же perl похож на TT? Perl это Perl, а TT это TT. From i.petro.77.00 на gmail.com Tue Nov 8 08:38:39 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 20:38:39 +0400 Subject: [Moscow.pm] =?utf-8?b?ZndkOiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0Ysg?= =?utf-8?q?need?= In-Reply-To: References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> Message-ID: <20111108163839.GF11956@apache.rbscorp.ru> >> Вообще, конечно, подобная цена делает проекты на Perl абсолютно не >> рентабельными и выводит Perl из инструментов разработки новых перспективных >> проектов в инструмент исключительно поддержки текущих. По мере того, как >> менеджеры будут принимать решения перейти на PHP и эта область будет >> выходить из сферы применимости Perl'а. > Странный вывод. Скорее всего Perl будет больше вытесняться Python'ом и > реже PHP. Что-то я не слышал, что большие игроки переходят с Perl на > PHP, а Python упоминался. Мне кажется, что с другими ресурсами в > России тоже не ахти, а соответственно зарплата программистов выше чем > у PHP программистов. > Решил поискать на круге. Не копейки платят PHP программерам: Ведущий > PHP/MySQL разработчик 150кр. Конечно на первой странице зарплаты выше > 100к заканчиваются. Можно и дальше исследовать, но не буду. Кстати на круге искать вакансии получше чем в других местах. использую его как монитор того что творится на рынке. ну и периодически раз этак в пол года выхожу на работодателя с тем что мол вот на мойкруге конкретные предложения, пора зарплату повышать :) Вот кстати ребята ищут программера на 150 http://moikrug.ru/vacancies/967408409/ Ищут с мая месяца примерно. Найти не могут. Ибо люди либо хотят больше и не идут к ним, либо не знают что такое тестирование :-\ From mshogin на gmail.com Tue Nov 8 08:40:54 2011 From: mshogin на gmail.com (=?KOI8-R?B?7cnIwcnMIPvPx8nO?=) Date: Tue, 8 Nov 2011 20:40:54 +0400 Subject: [Moscow.pm] =?koi8-r?b?ZndkOiDQ0s/H0sHNzcnT1NkgbmVlZA==?= In-Reply-To: References: <20111107081241.GA77457@tetsuo.karasik.eu.org> <20111107115718.GG24714@apache.rbscorp.ru> <017001cc9e1e$799a8900$6ccf9b00$@ontico.ru> <4EB9511B.1010006@knutov.com> Message-ID: > > >> А качество кода/проектирования и продукта в целом будет меньше > значительно > >> более, чем на 40%. И довольно много заказчиков, кстати, это понимают. > > Ждал эту версию. Заказчикам нужен продукт, который двигает их бизнес, > > им пофиг какого качества код, если он работает. > > > > +100 > > Так то это так, сначала одна команда х.чит "работающий" продукт, потом второй необходимо что нить доделать/переделать. Вот тут то и начинаются запросы в финансовом плане ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Tue Nov 8 08:51:42 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Tue, 8 Nov 2011 19:51:42 +0300 Subject: [Moscow.pm] =?koi8-r?b?8NLPxM/M1sXOycUg0sHazdnbzMXOycogzsEg1MXN?= =?koi8-r?b?1SBPUk0=?= In-Reply-To: <20111108163043.GE11956@apache.rbscorp.ru> References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108163043.GE11956@apache.rbscorp.ru> Message-ID: > эммм. чем же perl похож на TT? Perl это Perl, а TT это TT. > Не perl похож на TT, а ваш шаблон SQL-запроса похож на обычный TT шаблон. В связи с этим я и спрашиваю, зачем писать свой обработчик шаблонов, если уже есть TT и куча других шаблонизаторов. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Tue Nov 8 09:02:50 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 21:02:50 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108163043.GE11956@apache.rbscorp.ru> Message-ID: <20111108170250.GG11956@apache.rbscorp.ru> > эммм. чем же perl похож на TT? Perl это Perl, а TT это TT. > Не perl похож на TT, а ваш шаблон SQL-запроса похож на обычный TT шаблон. > В связи с этим я и спрашиваю, зачем писать свой обработчик шаблонов, если уже > есть TT и куча других шаблонизаторов. он похож только в месте вставки переменной. и больше нигде. а вставка переменной похожа потому что другого способа отделить язык от языка в шаблоне не придумали. TT использует [% %], а ep использует <% %>. В этом плане, да, похож. в остальном отличие. у TT собственный язык. соответственно собственный его компилятор/интерпретатор. в Ep используется Perl. Соответственно все что можно сделать на TT можно сделать на Perl но не наоборот :) кстати никто не видел сравнений по скорости TT vs Ep (скажем от Mojo)? PS: кстати Ep шаблонизатор в том же Mojo занимает всего ~400 строк кода https://github.com/kraih/mojo/blob/master/lib/Mojo/Template.pm далее всю работу выполняет Perl. :) From evdokimov.denis на gmail.com Tue Nov 8 11:00:29 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Tue, 8 Nov 2011 22:00:29 +0300 Subject: [Moscow.pm] =?koi8-r?b?8NLPxM/M1sXOycUg0sHazdnbzMXOycogzsEg1MXN?= =?koi8-r?b?1SBPUk0=?= In-Reply-To: <20111108170250.GG11956@apache.rbscorp.ru> References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108163043.GE11956@apache.rbscorp.ru> <20111108170250.GG11956@apache.rbscorp.ru> Message-ID: > он похож только в месте вставки переменной. и больше нигде. > Ну насчёт "нигде" это явно не так. Чем ваш шаблон SELECT % if ($type eq 'count') { COUNT(*) AS count % } else { * % } Отличается от такого же по смыслу TT-шаблона SELECT [% IF type == 'count' %] COUNT(*) AS count [% ELSE %] * [% END %] TT собственный язык. соответственно собственный > его компилятор/интерпретатор. > А то, что в DBIx::DR::PerlishTemplate не "собственный компилятор/интерпретатор" в Ep используется Perl. Соответственно все что можно сделать на TT > можно сделать на Perl но не наоборот :) > Если вязть в расчёт EVAL_PERL (который есть в TT), то наоборот тоже можно(но не нужно) P.S. TT шаблоны переводяться в чистый перл 1 раз, а далее, как вы уже сказали "всю работу выполняет Perl." P.S.S. я не очень понимаю, зачем использовать такое кол-во сложного кода для генерации SQL ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sharifulin на gmail.com Tue Nov 8 11:10:25 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Tue, 8 Nov 2011 23:10:25 +0400 Subject: [Moscow.pm] =?koi8-r?b?8NLPxM/M1sXOycUg0sHazdnbzMXOycogzsEg1MXN?= =?koi8-r?b?1SBPUk0=?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108163043.GE11956@apache.rbscorp.ru> <20111108170250.GG11956@apache.rbscorp.ru> Message-ID: 2011/11/8 Denis Evdokimov > P.S. TT шаблоны переводяться в чистый перл 1 раз, а далее, как вы уже > сказали "всю работу выполняет Perl." Это называется компилирование шаблона, все современные шаблонизаторы так работают) -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Tue Nov 8 11:22:34 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Tue, 8 Nov 2011 22:22:34 +0300 Subject: [Moscow.pm] =?koi8-r?b?8NLPxM/M1sXOycUg0sHazdnbzMXOycogzsEg1MXN?= =?koi8-r?b?1SBPUk0=?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108163043.GE11956@apache.rbscorp.ru> <20111108170250.GG11956@apache.rbscorp.ru> Message-ID: > > Это называется компилирование шаблона, все современные шаблонизаторы так > работают) > Это дополнение было исключительно к фразе "далее всю работу выполняет Perl." ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Tue Nov 8 11:23:57 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 23:23:57 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108163043.GE11956@apache.rbscorp.ru> <20111108170250.GG11956@apache.rbscorp.ru> Message-ID: <20111108192356.GH11956@apache.rbscorp.ru> > он похож только в месте вставки переменной. и больше нигде. > Ну насчёт "нигде" это явно не так. > Чем ваш шаблон > SELECT > % if ($type eq 'count') { > COUNT(*) AS count > % } else { > * > % } > Отличается от такого же по смыслу TT-шаблона > SELECT > [% IF type == 'count' %] > COUNT(*) AS count > [% ELSE %] > * > [% END %] > TT собственный язык. соответственно собственный > его компилятор/интерпретатор. > А то, что в DBIx::DR::PerlishTemplate не "собственный компилятор/интерпретатор" там делается только сплит на лексемы, которые разделяются на два типа "это строка" "это перл-строка" а потом конкатенация перл строка immediate(q{просто строка}) перл строка и далее это кормится перлу. то есть я ну и Ep не делают реализацию например того же if, for и так далее :) > P.S.S. я не очень понимаю, зачем использовать такое кол-во сложного кода для > генерации SQL затем же зачем его (такой же по сути код) используют для генерации HTML From vovkasm на gmail.com Tue Nov 8 11:36:36 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Tue, 8 Nov 2011 23:36:36 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: <20111108141643.GB11956@apache.rbscorp.ru> References: <20111108141643.GB11956@apache.rbscorp.ru> Message-ID: Здравствуйте! 8 ноября 2011 г. 18:16 пользователь Ivan Petrov написал: > Заспорили мы тут с некоторыми товарищами. ... > > В итоге пришли вот к такому синтаксису. > > SELECT >    * > FROM >    table > WHERE >    id = <%= $id %> > > где $id - именованный параметр переданный запросу. > > > Ну или даже так: > > SELECT >    % if ($type eq 'count') { >        COUNT(*) AS count >    % } else { >        * >    % } > FROM >    table > WHERE >    sid = 123 >    % if ($filter->filter1) { >        AND field1 = <%= $filter->filter1 %> >    % } >    % if ($filter->filter2) { >        AND field2 = <%= $filter->filter2 %> >    % } > > Получается более изящно и сильно более гибко, однако цена этому в > примерно в полтора-два раза бОльшее время на парсинг. Впрочем для > сложных SQL оно сравнимо (у старого парсера оно оосло в зависимости от > сложности, тут слабо зависит). > ... > Замечания, предложения крайне интересны :) - Человек который строит запросы так, вынужден постоянно помнить про SQL-Injection, а значит помнить про то, откуда именно берется каждый используемый в шаблоне скаляр. - В таком шаблоне возможно писать логику приложения, если возможно значит обязательно это кто-то сделает (та же проблема существует с HTML-шаблонизаторами) - О взаимозаменяемости баз данных можно забыть Это на вскидку, что вспомнилось, когда читал. -- Vladimir Timofeev From i.petro.77.00 на gmail.com Tue Nov 8 11:39:05 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 23:39:05 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108163043.GE11956@apache.rbscorp.ru> <20111108170250.GG11956@apache.rbscorp.ru> Message-ID: <20111108193905.GI11956@apache.rbscorp.ru> > P.S. TT шаблоны переводяться в чистый перл 1 раз, а далее, как вы уже > сказали "всю работу выполняет Perl." > Это называется компилирование шаблона, все современные шаблонизаторы так > работают) ну дык только в случае ТТ его надо проинтерпретировать сначала. а поскольку интерпретируем язык, то он по сравнению с Perl будет изначально ущербным. PS: мы внутреннюю CRM компании на TT уже около 5 лет развиваем. Ща вот новые проекты на Mojo делаем. так перл в шаблонах юзать сильно поприятнее, на мой взгляд. Хотя местами не хватает TT'шных индикаторов начала/конца цикла, с другой стороны двусмысленностей вроде [% IF foo.bar %] нету (насчет что такое bar). TT крут тем что он есть на других языках тоже. From i.petro.77.00 на gmail.com Tue Nov 8 11:42:26 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 8 Nov 2011 23:42:26 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> Message-ID: <20111108194226.GJ11956@apache.rbscorp.ru> >> Получается более изящно и сильно более гибко, однако цена этому в >> примерно в полтора-два раза бОльшее время на парсинг. Впрочем для >> сложных SQL оно сравнимо (у старого парсера оно оосло в зависимости от >> сложности, тут слабо зависит). >> > ... >> Замечания, предложения крайне интересны :) > - Человек который строит запросы так, вынужден постоянно помнить про > SQL-Injection, а значит помнить про то, откуда именно берется каждый > используемый в шаблоне скаляр. неправда. там в документации написано, что <%= $scalar %> эквивалентно <% quote $scalar %> > - В таком шаблоне возможно писать логику приложения, если возможно > значит обязательно это кто-то сделает (та же проблема существует с > HTML-шаблонизаторами) это правда. Но проблема кривых рук - не проблема инструмента > - О взаимозаменяемости баз данных можно забыть > Это на вскидку, что вспомнилось, когда читал. а к взаимозаменяемости не стремились. то есть даже наоборот. хотели от нее уйти. ибо НАДО использовать фичи БД :) From vovkasm на gmail.com Tue Nov 8 11:50:47 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Tue, 8 Nov 2011 23:50:47 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: <20111108194226.GJ11956@apache.rbscorp.ru> References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108194226.GJ11956@apache.rbscorp.ru> Message-ID: 8 ноября 2011 г. 23:42 пользователь Ivan Petrov написал: >>> Получается более изящно и сильно более гибко, однако цена этому в >>> примерно в полтора-два раза бОльшее время на парсинг. Впрочем для >>> сложных SQL оно сравнимо (у старого парсера оно оосло в зависимости от >>> сложности, тут слабо зависит). >>> >> ... >>> Замечания, предложения крайне интересны :) > >> - Человек который строит запросы так, вынужден постоянно помнить про >> SQL-Injection, а значит помнить про то, откуда именно берется каждый >> используемый в шаблоне скаляр. > > неправда. > > там в документации написано, что > > <%= $scalar %> > > эквивалентно > > <% quote $scalar %> > 1. Не знаю, как насчет "там", но в письме отсутствовало ;-) 2. Рано или поздно вы захотите уметь менять имена столбцов и таблиц в шаблоне, вот тут появится quote_field и понесется ;-) > >> - В таком шаблоне возможно писать логику приложения, если возможно >> значит обязательно это кто-то сделает (та же проблема существует с >> HTML-шаблонизаторами) > > это правда. > > Но проблема кривых рук - не проблема инструмента > >> - О взаимозаменяемости баз данных можно забыть > >> Это на вскидку, что вспомнилось, когда читал. > > а к взаимозаменяемости не стремились. то есть даже наоборот. хотели от > нее уйти. ибо НАДО использовать фичи БД :) Тестировать плохо становится (а так, да... редко боевая база на другой движок переезжает) > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Vladimir Timofeev From vovkasm на gmail.com Tue Nov 8 11:54:22 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Tue, 8 Nov 2011 23:54:22 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108194226.GJ11956@apache.rbscorp.ru> Message-ID: 8 ноября 2011 г. 23:50 пользователь Vladimir Timofeev написал: > 8 ноября 2011 г. 23:42 пользователь Ivan Petrov > написал: >>>> Получается более изящно и сильно более гибко, однако цена этому в >>>> примерно в полтора-два раза бОльшее время на парсинг. Впрочем для >>>> сложных SQL оно сравнимо (у старого парсера оно оосло в зависимости от >>>> сложности, тут слабо зависит). >>>> >>> ... >>>> Замечания, предложения крайне интересны :) >> >>> - Человек который строит запросы так, вынужден постоянно помнить про >>> SQL-Injection, а значит помнить про то, откуда именно берется каждый >>> используемый в шаблоне скаляр. >> >> неправда. >> >> там в документации написано, что >> >> <%= $scalar %> >> >> эквивалентно >> >> <% quote $scalar %> >> > 1. Не знаю, как насчет "там", но в письме отсутствовало ;-) Пародон, вот DBIx::DR я и проглядел (вернее, что он уже на CPAN) > 2. Рано или поздно вы захотите уметь менять имена столбцов и таблиц в > шаблоне, вот тут появится quote_field и понесется ;-) > >> >>> - В таком шаблоне возможно писать логику приложения, если возможно >>> значит обязательно это кто-то сделает (та же проблема существует с >>> HTML-шаблонизаторами) >> >> это правда. >> >> Но проблема кривых рук - не проблема инструмента >> >>> - О взаимозаменяемости баз данных можно забыть >> >>> Это на вскидку, что вспомнилось, когда читал. >> >> а к взаимозаменяемости не стремились. то есть даже наоборот. хотели от >> нее уйти. ибо НАДО использовать фичи БД :) > Тестировать плохо становится (а так, да... редко боевая база на другой > движок переезжает) > >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > -- > Vladimir Timofeev > -- Vladimir Timofeev From i.petro.77.00 на gmail.com Tue Nov 8 12:17:40 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 9 Nov 2011 00:17:40 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108194226.GJ11956@apache.rbscorp.ru> Message-ID: <20111108201739.GK11956@apache.rbscorp.ru> > 1. Не знаю, как насчет "там", но в письме отсутствовало ;-) > 2. Рано или поздно вы захотите уметь менять имена столбцов и таблиц в > шаблоне, вот тут появится quote_field и понесется ;-) дык оно уже есть, там всего две изначально встроенных функции quote (<%= %>) и immediate (<%== %>). Последняя как раз делает прямую подстановку. Нужна бывает для подстановок внутрь ORDER BY например. Вероятно надо сделать quote_identifier. Но наверно в виде хелпера. ибо тут связь с БД шаблона нужна (пока ее нет, пока quote заменяет на ? + кладет в bind-массив). Но эта проблема она есть и при ручном составлении строки-запроса. ровно такая же. кстати есть конструкторы HTML. когда на все теги написаны методы и делаешь инсерты тегов в строящийся HTML. популярности особой у них нет. а почему? потому что нет наглядности. когда ты открываешь шаблон HTML с вставками на TT или Perl, ты все равно видишь общий HTML. а в случае конструктора общей картины перед глазами нет. и отлаживать такое человеку сложнее. поэтому популярности не набрало (хотя проекты есть). Так и тут. Когда пишешь my $sql = sprintf q{ SELECT %s FROM %s }, $field, $table; то наглядности уже нет. Особо если $field и $table вычисляются. а уж тем более когда пишешь $constrictor->join(...) $constrictor->where(...) $constrictor->select(...) $constrictor->join(...) $constrictor->where(...) $constrictor->select(...) >> а к взаимозаменяемости не стремились. то есть даже наоборот. хотели от >> нее уйти. ибо НАДО использовать фичи БД :) > Тестировать плохо становится (а так, да... редко боевая база на другой > движок переезжает) переезд боевой БД на другой движок - отдельный проект по полному рефакторингу и ретестингу. это нечто такое чего никогда не видел From i.petro.77.00 на gmail.com Tue Nov 8 12:31:42 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 9 Nov 2011 00:31:42 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108194226.GJ11956@apache.rbscorp.ru> Message-ID: <20111108203142.GL11956@apache.rbscorp.ru> >> а к взаимозаменяемости не стремились. то есть даже наоборот. хотели от >> нее уйти. ибо НАДО использовать фичи БД :) > Тестировать плохо становится (а так, да... редко боевая база на другой > движок переезжает) проектов когда боевая БД - платная и при этом настолько платная что разработчикам ее невозможно поднять для тестов я не встречал. а БД вроде MySQL или постгриса подымай себе наздоровье. ну а в случае платной БД можно выделить тестовые подключения. в общем решаема проблема. мне думается что разработка не на той же БД что и боевая чревато проблемами. вот постгрис 9.1 умеет теперь SELECT table1.* FROM table1 LEFT JOIN table2 ON table2.table1_id = table1.primary_key GROUP BY table1.primary_key а 9.0 (ЕМНИП) еще считал такой запрос ошибкой. Мало того что у разработчика должна быть та же БД, так она должна быть еще и той же версии! From vovkasm на gmail.com Tue Nov 8 13:22:24 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Wed, 9 Nov 2011 01:22:24 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: <20111108203142.GL11956@apache.rbscorp.ru> References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108194226.GJ11956@apache.rbscorp.ru> <20111108203142.GL11956@apache.rbscorp.ru> Message-ID: 9 ноября 2011 г. 0:31 пользователь Ivan Petrov написал: >>> а к взаимозаменяемости не стремились. то есть даже наоборот. хотели от >>> нее уйти. ибо НАДО использовать фичи БД :) >> Тестировать плохо становится (а так, да... редко боевая база на другой >> движок переезжает) > > проектов когда боевая БД - платная и при этом настолько платная что > разработчикам ее невозможно поднять для тестов я не встречал. > а БД вроде MySQL или постгриса подымай себе наздоровье. > > ну а в случае платной БД можно выделить тестовые подключения. в общем > решаема проблема. > > > мне думается что разработка не на той же БД что и боевая чревато > проблемами. > > вот постгрис 9.1 умеет теперь > > SELECT >    table1.* > FROM >    table1 > LEFT JOIN table2 ON table2.table1_id = table1.primary_key > > GROUP BY table1.primary_key > > а 9.0 (ЕМНИП) еще считал такой запрос ошибкой. > > Мало того что у разработчика должна быть та же БД,  так она должна > быть еще и той же версии! У нас сейчас на проекте тесты работают с SQLite, вся БД в памяти, каждый тестовый скрипт создает всю схему с тестовыми данными с нуля. Весь тестовый сайт выполняется ~12s - хочу сказать, что это счастье! Потому что c реальной БД только создание схемы занимает несколько секунд. В этом смысле я предпочитаю минимизировать уникальные фичи настоящей БД (в данном случае как раз postgres), до сих пор это успешно получается. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Vladimir Timofeev From i.petro.77.00 на gmail.com Tue Nov 8 22:14:08 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 9 Nov 2011 10:14:08 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108194226.GJ11956@apache.rbscorp.ru> <20111108203142.GL11956@apache.rbscorp.ru> Message-ID: <20111109061407.GM11956@apache.rbscorp.ru> >> Мало того что у разработчика должна быть та же БД,  так она должна >> быть еще и той же версии! > У нас сейчас на проекте тесты работают с SQLite, вся БД в памяти, > каждый тестовый скрипт создает всю схему с тестовыми данными с нуля. > Весь тестовый сайт выполняется ~12s - хочу сказать, что это счастье! > Потому что c реальной БД только создание схемы занимает несколько > секунд. но при этом например геотипы данных Pg вы использовать не можете. хранимые процедуры тоже. итп итд. получается что ставить на боевой сервер что-то отличное от SQLLite и смысла особого нет. From worldmind на mail.ru Tue Nov 8 22:50:51 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 09 Nov 2011 10:50:51 +0400 Subject: [Moscow.pm] =?koi8-r?b?8NLPxM/M1sXOycUg0sHazdnbzMXOycogzsEg1MXN?= =?koi8-r?b?1SBPUk0=?= In-Reply-To: <20111108162934.GD11956@apache.rbscorp.ru> References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108162934.GD11956@apache.rbscorp.ru> Message-ID: <1320821451.2075.1.camel@host> On Вт., 2011-11-08 at 20:29 +0400, Ivan Petrov wrote: > а что такое тимтоуди? http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it From i.petro.77.00 на gmail.com Tue Nov 8 22:57:57 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 9 Nov 2011 10:57:57 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0Lc=?= =?utf-8?b?0LzRi9GI0LvQtdC90LjQuSDQvdCwINGC0LXQvNGDIE9STQ==?= In-Reply-To: <1320821451.2075.1.camel@host> References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108162934.GD11956@apache.rbscorp.ru> <1320821451.2075.1.camel@host> Message-ID: <20111109065756.GA30212@apache.rbscorp.ru> >> а что такое тимтоуди? > http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it а я просто не въехал что это такое прочтение русскими буквами английской аббривеатуры :) спасибо :) From foxcool333 на gmail.com Wed Nov 9 01:36:07 2011 From: foxcool333 на gmail.com (Foxcool) Date: Wed, 09 Nov 2011 13:36:07 +0400 Subject: [Moscow.pm] =?utf-8?b?0KDQsNCx0L7RgtCwINGBIFdlYjo6U2NyYXBlcg==?= Message-ID: <4EBA4987.8090204@gmail.com> Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого нынче вида Перл-джуниоров. Есть интересный модуль Web::Scraper, документацию которого я не нахожу избыточной, т.к. не могу разобраться, как его "натравливать" на теги. Есть некая страница, которая полна таблиц, идущих друг за другом, разных и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные таблицы. И не с определенным id или class, а с значением другого атрибута. Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне указать это скраперу? Кстати, посоветуете другой инструмент, буду непротив. С небольшим модулем, который парсит регулярками разобрался быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь большим и стабильным инструментом для того, чтобы использовать его в чрезмерно важных задачах. From evgeniy на kosov.su Wed Nov 9 01:52:07 2011 From: evgeniy на kosov.su (Evgeniy Kosov) Date: Wed, 09 Nov 2011 13:52:07 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: <4EBA4987.8090204@gmail.com> References: <4EBA4987.8090204@gmail.com> Message-ID: <4EBA4D47.5000109@kosov.su> On 09.11.2011 13:36, Foxcool wrote: > Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого > нынче вида Перл-джуниоров. > Есть интересный модуль Web::Scraper, документацию которого я не нахожу > избыточной, т.к. не могу разобраться, как его "натравливать" на теги. > Есть некая страница, которая полна таблиц, идущих друг за другом, разных > и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные > таблицы. И не с определенным id или class, а с значением другого атрибута. > > > > > > Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне > указать это скраперу? Кстати, посоветуете другой инструмент, буду > непротив. С небольшим модулем, который парсит регулярками разобрался > быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь > большим и стабильным инструментом для того, чтобы использовать его в > чрезмерно важных задачах. > > > Посмотрите на WWW::Mechanize (http://search.cpan.org/~jesse/WWW-Mechanize-1.70/). Если я ничего не путаю, с его помощью подобные задачи решались просто. -- С уважением, Евгений Косов. From denis.fedoseev на gmail.com Wed Nov 9 01:55:41 2011 From: denis.fedoseev на gmail.com (Denis Fedoseev) Date: Wed, 9 Nov 2011 13:55:41 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: <4EBA4D47.5000109@kosov.su> References: <4EBA4987.8090204@gmail.com> <4EBA4D47.5000109@kosov.su> Message-ID: WWW::Mechanize работает с инстансом Firefox, это как кировцем грядки на даче полоть. 9 ноября 2011 г. 13:52 пользователь Evgeniy Kosov написал: > On 09.11.2011 13:36, Foxcool wrote: > >> Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого >> нынче вида Перл-джуниоров. >> Есть интересный модуль Web::Scraper, документацию которого я не нахожу >> избыточной, т.к. не могу разобраться, как его "натравливать" на теги. >> Есть некая страница, которая полна таблиц, идущих друг за другом, разных >> и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные >> таблицы. И не с определенным id или class, а с значением другого атрибута. >> >> >> >> >> >> Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне >> указать это скраперу? Кстати, посоветуете другой инструмент, буду >> непротив. С небольшим модулем, который парсит регулярками разобрался >> быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь >> большим и стабильным инструментом для того, чтобы использовать его в >> чрезмерно важных задачах. >> >> >> >> > Посмотрите на WWW::Mechanize ( > http://search.cpan.org/~jesse/WWW-Mechanize-1.70/). > Если я ничего не путаю, с его помощью подобные задачи решались просто. > > -- > С уважением, > Евгений Косов. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Денис Федосеев ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From rabbit+moscowpm на rabbit.us Wed Nov 9 01:57:37 2011 From: rabbit+moscowpm на rabbit.us (Peter Rabbitson) Date: Wed, 9 Nov 2011 04:57:37 -0500 Subject: [Moscow.pm] =?utf-8?b?0KDQsNCx0L7RgtCwINGBIFdlYjo6U2NyYXBlcg==?= In-Reply-To: References: <4EBA4987.8090204@gmail.com> <4EBA4D47.5000109@kosov.su> Message-ID: <20111109095737.GA20215@rabbit.us> On Wed, Nov 09, 2011 at 01:55:41PM +0400, Denis Fedoseev wrote: > WWW::Mechanize работает с инстансом Firefox, Что за бред? WWW::Mechanize::Firefox другое дело... From dmarsentev на gmail.com Wed Nov 9 01:57:53 2011 From: dmarsentev на gmail.com (Dmitry Arsentiev) Date: Wed, 9 Nov 2011 13:57:53 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: <4EBA4987.8090204@gmail.com> References: <4EBA4987.8090204@gmail.com> Message-ID: Коллега очень хвалил Scrapy http://scrapy.org/ Хм. По поиску даже две статьи выплыли на хабре про него http://habrahabr.ru/blogs/python/115710/ http://habrahabr.ru/qa/5103/ В инете встречал добрые слова про BeautifulSoup http://www.crummy.com/software/BeautifulSoup/ и про html5lib http://code.google.com/p/html5lib/ 9 ноября 2011 г. 13:36 пользователь Foxcool написал: > Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого нынче > вида Перл-джуниоров. > Есть интересный модуль Web::Scraper, документацию которого я не нахожу > избыточной, т.к. не могу разобраться, как его "натравливать" на теги. > Есть некая страница, которая полна таблиц, идущих друг за другом, разных и > т.д. Первая проблема, с которой я столкнулся: мне нужны определенные > таблицы. И не с определенным id или class, а с значением другого атрибута. > > > > > > Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне > указать это скраперу? Кстати, посоветуете другой инструмент, буду непротив. > С небольшим модулем, который парсит регулярками разобрался быстро и доволен > его работой, но хотелось бы разобраться с каким-нибудь большим и стабильным > инструментом для того, чтобы использовать его в чрезмерно важных задачах. > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From sergiy.borodych на gmail.com Wed Nov 9 02:48:23 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Wed, 9 Nov 2011 12:48:23 +0200 Subject: [Moscow.pm] =?utf-8?b?0KDQsNCx0L7RgtCwINGBIFdlYjo6U2NyYXBlcg==?= In-Reply-To: References: <4EBA4987.8090204@gmail.com> Message-ID: 2011/11/9 Dmitry Arsentiev : > Коллега очень хвалил Scrapy > http://scrapy.org/ > Хм. По поиску даже две статьи выплыли на хабре про него > http://habrahabr.ru/blogs/python/115710/ > http://habrahabr.ru/qa/5103/ > > В инете встречал добрые слова про BeautifulSoup > http://www.crummy.com/software/BeautifulSoup/ > и про html5lib > http://code.google.com/p/html5lib/ Мне кажется или все же это библиотеки для python ? > 9 ноября 2011 г. 13:36 пользователь Foxcool написал: >> Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого нынче >> вида Перл-джуниоров. >> Есть интересный модуль Web::Scraper, документацию которого я не нахожу >> избыточной, т.к. не могу разобраться, как его "натравливать" на теги. >> Есть некая страница, которая полна таблиц, идущих друг за другом, разных и >> т.д. Первая проблема, с которой я столкнулся: мне нужны определенные >> таблицы. И не с определенным id или class, а с значением другого атрибута. >> >> >> >> >> >> Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне >> указать это скраперу? Кстати, посоветуете другой инструмент, буду непротив. >> С небольшим модулем, который парсит регулярками разобрался быстро и доволен >> его работой, но хотелось бы разобраться с каким-нибудь большим и стабильным >> инструментом для того, чтобы использовать его в чрезмерно важных задачах. >> >> -- Sergiy Borodych From dmarsentev на gmail.com Wed Nov 9 03:05:51 2011 From: dmarsentev на gmail.com (Dmitry Arsentiev) Date: Wed, 9 Nov 2011 15:05:51 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: References: <4EBA4987.8090204@gmail.com> Message-ID: > Мне кажется или все же это библиотеки для python ? Да, на питоне. Хотя БьютифлСуп, если мне память не изменяет, есть много на чём. Я подумал, что человеку, задавшему вопрос, надо во-первых ехать, во-вторых - шашечки (perl). Я напомню на всякий случай, что этот список рассылки поддерживается питоновским MailMan-ом. 9 ноября 2011 г. 14:48 пользователь Sergiy Borodych написал: > 2011/11/9 Dmitry Arsentiev : >> Коллега очень хвалил Scrapy >> http://scrapy.org/ >> Хм. По поиску даже две статьи выплыли на хабре про него >> http://habrahabr.ru/blogs/python/115710/ >> http://habrahabr.ru/qa/5103/ >> >> В инете встречал добрые слова про BeautifulSoup >> http://www.crummy.com/software/BeautifulSoup/ >> и про html5lib >> http://code.google.com/p/html5lib/ > > Мне кажется или все же это библиотеки для python ? > >> 9 ноября 2011 г. 13:36 пользователь Foxcool написал: >>> Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого нынче >>> вида Перл-джуниоров. >>> Есть интересный модуль Web::Scraper, документацию которого я не нахожу >>> избыточной, т.к. не могу разобраться, как его "натравливать" на теги. >>> Есть некая страница, которая полна таблиц, идущих друг за другом, разных и >>> т.д. Первая проблема, с которой я столкнулся: мне нужны определенные >>> таблицы. И не с определенным id или class, а с значением другого атрибута. >>> >>> >>> >>> >>> >>> Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне >>> указать это скраперу? Кстати, посоветуете другой инструмент, буду непротив. >>> С небольшим модулем, который парсит регулярками разобрался быстро и доволен >>> его работой, но хотелось бы разобраться с каким-нибудь большим и стабильным >>> инструментом для того, чтобы использовать его в чрезмерно важных задачах. >>> >>> > > -- > Sergiy Borodych > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From dionys на gmail.com Wed Nov 9 03:22:06 2011 From: dionys на gmail.com (Denis Ibaev) Date: Wed, 9 Nov 2011 18:22:06 +0700 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: <4EBA4987.8090204@gmail.com> References: <4EBA4987.8090204@gmail.com> Message-ID: 9 ноября 2011 г. 16:36 пользователь Foxcool написал: > Кстати, посоветуете другой инструмент, буду непротив. > С небольшим модулем, который парсит регулярками разобрался быстро и доволен > его работой, но хотелось бы разобраться с каким-нибудь большим и стабильным > инструментом для того, чтобы использовать его в чрезмерно важных задачах. Есть HTML::HTML5::Parser, который разбирает любой HTML в XML-документ библиотеки XML::LibXML. -- Денис Ибаев From akzhan.abdulin на gmail.com Wed Nov 9 03:25:48 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Wed, 9 Nov 2011 15:25:48 +0400 Subject: [Moscow.pm] =?utf-8?b?0KDQsNCx0L7RgtCwINGBIFdlYjo6U2NyYXBlcg==?= In-Reply-To: <4EBA4987.8090204@gmail.com> References: <4EBA4987.8090204@gmail.com> Message-ID: Я для этой цели использую Nokogiri или Mechanize, на Ruby. 9 ноября 2011 г. 13:36 пользователь Foxcool написал: > Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого > нынче вида Перл-джуниоров. > Есть интересный модуль Web::Scraper, документацию которого я не нахожу > избыточной, т.к. не могу разобраться, как его "натравливать" на теги. > Есть некая страница, которая полна таблиц, идущих друг за другом, разных и > т.д. Первая проблема, с которой я столкнулся: мне нужны определенные > таблицы. И не с определенным id или class, а с значением другого атрибута. > > > > > > Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне > указать это скраперу? Кстати, посоветуете другой инструмент, буду непротив. > С небольшим модулем, который парсит регулярками разобрался быстро и доволен > его работой, но хотелось бы разобраться с каким-нибудь большим и стабильным > инструментом для того, чтобы использовать его в чрезмерно важных задачах. > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From greyhard на gmail.com Wed Nov 9 03:29:56 2011 From: greyhard на gmail.com (=?KOI8-R?B?5MXOydMg6czYyc7ZyA==?=) Date: Wed, 9 Nov 2011 15:29:56 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: References: <4EBA4987.8090204@gmail.com> Message-ID: Может так подойдет ? use HTML::TreeBuilder; $html = qq {

done

}; my $tree = HTML::TreeBuilder->new(); $tree->parse_content($html); my $table = $tree->look_down(_tag=>"table","cellpadding" => "1"); say $table->as_HTML(); $tree = $tree->delete; output:

done

From worldmind на mail.ru Wed Nov 9 03:34:56 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 09 Nov 2011 15:34:56 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgIFdlYjo6U2NyYXBlcg==?= In-Reply-To: <4EBA4987.8090204@gmail.com> References: <4EBA4987.8090204@gmail.com> Message-ID: <1320838496.2075.24.camel@host> On Ср., 2011-11-09 at 13:36 +0400, Foxcool wrote: > Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого > нынче вида Перл-джуниоров. > Есть интересный модуль Web::Scraper, документацию которого я не нахожу > избыточной, т.к. не могу разобраться, как его "натравливать" на теги. > Есть некая страница, которая полна таблиц, идущих друг за другом, разных > и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные > таблицы. И не с определенным id или class, а с значением другого атрибута. > > > > > > Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне > указать это скраперу? Кстати, посоветуете другой инструмент, буду > непротив. С небольшим модулем, который парсит регулярками разобрался > быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь > большим и стабильным инструментом для того, чтобы использовать его в > чрезмерно важных задачах. По мне так самый удобный (правда не самый быстрый), это XPath, только первым делом html нужно привести к xhtml, но это легко сделать с помощью утилиты tidy Тут есть пример https://github.com/worldmind/simple-livejournal-backuper From nordicdyno на yandex.ru Wed Nov 9 03:39:01 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Wed, 09 Nov 2011 15:39:01 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: <4EBA4987.8090204@gmail.com> References: <4EBA4987.8090204@gmail.com> Message-ID: <411271320838741@web15.yandex.ru> 09.11.2011, 13:36, "Foxcool" : > Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого > нынче вида Перл-джуниоров. ) нормальные вопросы, но лучше когда еще в вопросе есть примеры кода и входных данных > Есть интересный модуль Web::Scraper, документацию которого я не нахожу > избыточной, т.к. не могу разобраться, как его "натравливать" на теги. Да, интересный фетчер, как и все штуки которые фигачит Tatsuhiko. > Есть некая страница, которая полна таблиц, идущих друг за другом, разных > и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные > таблицы. И не с определенным id или class, а с значением другого атрибута. > > > > > Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне > указать это скраперу? Кстати, посоветуете другой инструмент, буду > непротив. Да, документации немного. Отсюда вывод ? надо смотреть код и тесты: https://metacpan.org/source/MIYAGAWA/Web-Scraper-0.35/lib/Web/Scraper.pm https://metacpan.org/source/MIYAGAWA/Web-Scraper-0.35/t Это еще и полезно для общего развития (если что-то не понятно в коде, то это повод разобраться или хотя бы попробовать это сделать) Я вот их немного не без удовольствия покурил и родил код, который смотри в конце письма. Кстати, больше всего мучений доставило вспоминать xpath :) > С небольшим модулем, который парсит регулярками разобрался > быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь > большим и стабильным инструментом для того, чтобы использовать его в > чрезмерно важных задачах. Э-ка завернул! Если инструмент полностью устраивает и нет причин его менять ? лучше освоить какую-то смежную предметную область или перпендикулярную (модно говорить "ортогональную", кстати, запомни может пригодиться! :) а не гнаться за совершенством. Собственно код: use v5.12; use Data::Dumper; use Web::Scraper; my $tables_cnt = scraper { process "table", 'tables[]' => 'raw'; process '//table[contains(@cellspacing, "2")', 'tables_with_cs2[]' => 'raw'; process 'table[cellspacing]', 'tables_filtered[]' => scraper { process q{table}, raw => 'raw'; process q{table}, cellpadding => q{@cellpadding}; }; process 'table[cellspacing]', 'tables_handmade_filter[]' => sub { my $node = shift; # HTML::Element my $cs = $node->attr('cellspacing'); say "CS=>$cs"; return unless $cs =~ /^0|2$/; return { as_text => $node->as_text(), cellpadding => $node->attr('cellpadding'), cellspacing => $cs, }; }; }; my $html; my $fh = *DATA; { local $/ = undef; $html = <$fh>; } my $res = $tables_cnt->scrape(\$html); say Dumper($res); __DATA__ table1
table2
table3
table3
From dmitry на karasik.eu.org Wed Nov 9 04:40:33 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Wed, 9 Nov 2011 13:40:33 +0100 Subject: [Moscow.pm] =?koi8-r?b?8NLPxM/M1sXOycUg0sHazdnbzMXOycogzsEg1MXN?= =?koi8-r?b?1SBPUk0=?= In-Reply-To: <1320821451.2075.1.camel@host> References: <20111108141643.GB11956@apache.rbscorp.ru> <20111108162934.GD11956@apache.rbscorp.ru> <1320821451.2075.1.camel@host> Message-ID: <20111109124033.GA36690@tetsuo.karasik.eu.org> а также логин ларри ( TimToady ) в чатах и проч /dk On Wed, Nov 09, 2011 at 10:50:51AM +0400, Alexey Shrub wrote: > On Вт., 2011-11-08 at 20:29 +0400, Ivan Petrov wrote: > > а что такое тимтоуди? > > http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Sincerely, Dmitry Karasik From foxcool333 на gmail.com Wed Nov 9 04:56:03 2011 From: foxcool333 на gmail.com (Foxcool) Date: Wed, 09 Nov 2011 16:56:03 +0400 Subject: [Moscow.pm] =?utf-8?b?0KDQsNCx0L7RgtCwINGBIFdlYjo6U2NyYXBlcg==?= In-Reply-To: <411271320838741@web15.yandex.ru> References: <4EBA4987.8090204@gmail.com> <411271320838741@web15.yandex.ru> Message-ID: <4EBA7863.9080605@gmail.com> On 11/09/2011 03:39 PM, Orlovsky Alexander wrote: > 09.11.2011, 13:36, "Foxcool": >> Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого >> нынче вида Перл-джуниоров. > ) нормальные вопросы, но лучше когда еще в вопросе есть примеры кода и входных данных > >> Есть интересный модуль Web::Scraper, документацию которого я не нахожу >> избыточной, т.к. не могу разобраться, как его "натравливать" на теги. > Да, интересный фетчер, как и все штуки которые фигачит Tatsuhiko. > >> Есть некая страница, которая полна таблиц, идущих друг за другом, разных >> и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные >> таблицы. И не с определенным id или class, а с значением другого атрибута. >> >> >> >> >> Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне >> указать это скраперу? Кстати, посоветуете другой инструмент, буду >> непротив. > Да, документации немного. Отсюда вывод ? надо смотреть код и тесты: > https://metacpan.org/source/MIYAGAWA/Web-Scraper-0.35/lib/Web/Scraper.pm > https://metacpan.org/source/MIYAGAWA/Web-Scraper-0.35/t > Это еще и полезно для общего развития (если что-то не понятно в коде, то это повод разобраться или хотя бы попробовать это сделать) > > Я вот их немного не без удовольствия покурил > и родил код, который смотри в конце письма. > Кстати, больше всего мучений доставило вспоминать xpath :) > >> С небольшим модулем, который парсит регулярками разобрался >> быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь >> большим и стабильным инструментом для того, чтобы использовать его в >> чрезмерно важных задачах. > Э-ка завернул! > Если инструмент полностью устраивает и нет причин его менять ? лучше освоить какую-то смежную предметную область или перпендикулярную (модно говорить "ортогональную", кстати, запомни может пригодиться! :) а не гнаться за совершенством. > > Собственно код: > > use v5.12; > use Data::Dumper; > use Web::Scraper; > > my $tables_cnt = scraper { > process "table", 'tables[]' => 'raw'; > process '//table[contains(@cellspacing, "2")', 'tables_with_cs2[]' => 'raw'; > process 'table[cellspacing]', 'tables_filtered[]' => scraper { > process q{table}, raw => 'raw'; > process q{table}, cellpadding => q{@cellpadding}; > }; > process 'table[cellspacing]', 'tables_handmade_filter[]' => sub { > my $node = shift; # HTML::Element > my $cs = $node->attr('cellspacing'); > say "CS=>$cs"; > return unless $cs =~ /^0|2$/; > return { > as_text => $node->as_text(), > cellpadding => $node->attr('cellpadding'), > cellspacing => $cs, > }; > }; > }; > > my $html; > my $fh = *DATA; > { local $/ = undef; $html =<$fh>; } > > my $res = $tables_cnt->scrape(\$html); > say Dumper($res); > > __DATA__ > > table1
> table2
> table3
> table3
> > > > Огромное спасибо! Вообще я много сидел, пробовал, мучился. Смотрел на тесты немного. Сейчас разбираюсь с CSS-селекторами http://mojolicio.us/perldoc/Mojo/DOM/CSS#E5Bfoo3D22bar225D , ну и конечно присмотрюсь повнимательнее к XPath. Ваш пример очень погом и раскрыл этот способ! (: From mi на ya.ru Wed Nov 9 05:05:16 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 09 Nov 2011 17:05:16 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgIFdlYjo6U2NyYXBlcg==?= In-Reply-To: <1320838496.2075.24.camel@host> References: <4EBA4987.8090204@gmail.com> <1320838496.2075.24.camel@host> Message-ID: <566831320843916@web101.yandex.ru> А зачем такие сложности, можно, например HTML::TableExtract использовать для того, чтобы вытащить любую таблицу https://gist.github.com/1351359 09.11.2011, 15:34, "Alexey Shrub" : > On Ср., 2011-11-09 at 13:36 +0400, Foxcool wrote: > >>  Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого >>  нынче вида Перл-джуниоров. >>  Есть интересный модуль Web::Scraper, документацию которого я не нахожу >>  избыточной, т.к. не могу разобраться, как его "натравливать" на теги. >>  Есть некая страница, которая полна таблиц, идущих друг за другом, разных >>  и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные >>  таблицы. И не с определенным id или class, а с значением другого атрибута. >> >>   >>   >> >>  Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне >>  указать это скраперу? Кстати, посоветуете другой инструмент, буду >>  непротив. С небольшим модулем, который парсит регулярками разобрался >>  быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь >>  большим и стабильным инструментом для того, чтобы использовать его в >>  чрезмерно важных задачах. > > По мне так самый удобный (правда не самый быстрый), это XPath, только > первым делом html нужно привести к xhtml, но это легко сделать с помощью > утилиты tidy > Тут есть пример > https://github.com/worldmind/simple-livejournal-backuper > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From foxcool333 на gmail.com Wed Nov 9 05:09:29 2011 From: foxcool333 на gmail.com (Foxcool) Date: Wed, 09 Nov 2011 17:09:29 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgIFdlYjo6U2NyYXBlcg==?= In-Reply-To: <566831320843916@web101.yandex.ru> References: <4EBA4987.8090204@gmail.com> <1320838496.2075.24.camel@host> <566831320843916@web101.yandex.ru> Message-ID: <4EBA7B89.4000704@gmail.com> On 11/09/2011 05:05 PM, Nikolay Mishin wrote: > А зачем такие сложности, можно, например HTML::TableExtract > использовать для того, чтобы вытащить любую таблицу > > https://gist.github.com/1351359 > > > 09.11.2011, 15:34, "Alexey Shrub": >> On Ср., 2011-11-09 at 13:36 +0400, Foxcool wrote: >> >>> Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого >>> нынче вида Перл-джуниоров. >>> Есть интересный модуль Web::Scraper, документацию которого я не нахожу >>> избыточной, т.к. не могу разобраться, как его "натравливать" на теги. >>> Есть некая страница, которая полна таблиц, идущих друг за другом, разных >>> и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные >>> таблицы. И не с определенным id или class, а с значением другого атрибута. >>> >>> >>> >>> >>> Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне >>> указать это скраперу? Кстати, посоветуете другой инструмент, буду >>> непротив. С небольшим модулем, который парсит регулярками разобрался >>> быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь >>> большим и стабильным инструментом для того, чтобы использовать его в >>> чрезмерно важных задачах. >> По мне так самый удобный (правда не самый быстрый), это XPath, только >> первым делом html нужно привести к xhtml, но это легко сделать с помощью >> утилиты tidy >> Тут есть пример >> https://github.com/worldmind/simple-livejournal-backuper >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > -- > Nikolay Mishin Спасибо, присмотрюсь. С DOM у меня возникала проблема, что многоуровневый хеш имел слишком длинную и запутанную структуру в т.ч. с циклическими ссылками, если я хотел работать непосредственно с деревом, как например если применять на XML XML::LibXML::Simple. То есть работать с деревом, как с многоуровневым хешем удобно, если это хороший структурированный XML. А вот если это мутный HTML, возникают проблемы. From mshogin на gmail.com Wed Nov 9 05:19:42 2011 From: mshogin на gmail.com (=?KOI8-R?B?7cnIwcnMIPvPx8nO?=) Date: Wed, 9 Nov 2011 17:19:42 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: <4EBA7B89.4000704@gmail.com> References: <4EBA4987.8090204@gmail.com> <1320838496.2075.24.camel@host> <566831320843916@web101.yandex.ru> <4EBA7B89.4000704@gmail.com> Message-ID: 9 ноября 2011 г. 17:09 пользователь Foxcool написал: > On 11/09/2011 05:05 PM, Nikolay Mishin wrote: > >> А зачем такие сложности, можно, например HTML::TableExtract >> использовать для того, чтобы вытащить любую таблицу >> >> https://gist.github.com/**1351359 >> >> >> 09.11.2011, 15:34, "Alexey Shrub": >> >>> On Ср., 2011-11-09 at 13:36 +0400, Foxcool wrote: >>> >>> Заранее извиняюсь, возможно, за тривиальные вопросы, т.к. я из редкого >>>> нынче вида Перл-джуниоров. >>>> Есть интересный модуль Web::Scraper, документацию которого я не нахожу >>>> избыточной, т.к. не могу разобраться, как его "натравливать" на теги. >>>> Есть некая страница, которая полна таблиц, идущих друг за другом, >>>> разных >>>> и т.д. Первая проблема, с которой я столкнулся: мне нужны определенные >>>> таблицы. И не с определенным id или class, а с значением другого >>>> атрибута. >>>> >>>> >>>> >>>> >>>> Например, cellspacing="2", или cellpadding="1", или даже оба. Как мне >>>> указать это скраперу? Кстати, посоветуете другой инструмент, буду >>>> непротив. С небольшим модулем, который парсит регулярками разобрался >>>> быстро и доволен его работой, но хотелось бы разобраться с каким-нибудь >>>> большим и стабильным инструментом для того, чтобы использовать его в >>>> чрезмерно важных задачах. >>>> >>> По мне так самый удобный (правда не самый быстрый), это XPath, только >>> первым делом html нужно привести к xhtml, но это легко сделать с помощью >>> утилиты tidy >>> Тут есть пример >>> https://github.com/worldmind/**simple-livejournal-backuper >>> >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >> -- >> Nikolay Mishin >> > Спасибо, присмотрюсь. С DOM у меня возникала проблема, что многоуровневый > хеш имел слишком длинную и запутанную структуру в т.ч. с циклическими > ссылками, если я хотел работать непосредственно с деревом, как например > если применять на XML XML::LibXML::Simple. То есть работать с деревом, как > с многоуровневым хешем удобно, если это хороший структурированный XML. А > вот если это мутный HTML, возникают проблемы. > > Ковырял в свое время Node.js в целях "пощупать". Прекрасная вещь для работы с HTML (и не только HTML). Подключаешь jQuery и вообще все хорошо. -- С уважением Михаил Шогин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Wed Nov 9 05:21:41 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 09 Nov 2011 17:21:41 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgIFdlYjo6U2NyYXBlcg==?= In-Reply-To: <566831320843916@web101.yandex.ru> References: <4EBA4987.8090204@gmail.com> <1320838496.2075.24.camel@host> <566831320843916@web101.yandex.ru> Message-ID: <1320844901.2075.26.camel@host> On Ср., 2011-11-09 at 17:05 +0400, Nikolay Mishin wrote: > А зачем такие сложности, можно, например HTML::TableExtract > использовать для того, чтобы вытащить любую таблицу > > https://gist.github.com/1351359 Таблица это частный случай From nordicdyno на yandex.ru Wed Nov 9 05:36:11 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Wed, 09 Nov 2011 17:36:11 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: References: <4EBA4987.8090204@gmail.com> <1320838496.2075.24.camel@host> <566831320843916@web101.yandex.ru> <4EBA7B89.4000704@gmail.com> Message-ID: <123501320845771@web148.yandex.ru> Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Wed Nov 9 06:50:51 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Wed, 9 Nov 2011 17:50:51 +0300 Subject: [Moscow.pm] =?utf-8?b?0KDQsNCx0L7RgtCwINGBIFdlYjo6U2NyYXBlcg==?= In-Reply-To: <123501320845771@web148.yandex.ru> References: <4EBA4987.8090204@gmail.com> <1320838496.2075.24.camel@host> <566831320843916@web101.yandex.ru> <4EBA7B89.4000704@gmail.com> <123501320845771@web148.yandex.ru> Message-ID: <6B490156-9BFF-4DCC-B91B-850DEEC91D52@gmail.com> On Nov 9, 2011, at 4:36 PM, Orlovsky Alexander wrote: > 09.11.2011, 17:19, "Михаил Шогин" : > Ковырял в свое время Node.js в целях "пощупать". > Прекрасная вещь для работы с HTML (и не только HTML). Подключаешь jQuery и вообще все хорошо. > > у меня от ноды другие впечатления, для большого набора задач, которые влет делаются на Perl, слишком уж много ее нужно ковырять > но где-то она может быть полезна, да > от задачи зависит и упертости разработчика > > А jQuery наверное несложно прикрутить и к JavaScript::V8 (https://metacpan.org/module/JavaScript::V8) А я так понял, что jQuery сложно подключить к server-side js, бо jQuery в основном для работы с DOM, которого, по идее, быть не должно в серверном движке. Ну, то есть оно прикручивается как-то там, но это js эмуляция, вроде. Оно вам надо? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mshogin на gmail.com Wed Nov 9 06:29:00 2011 From: mshogin на gmail.com (=?KOI8-R?B?7cnIwcnMIPvPx8nO?=) Date: Wed, 9 Nov 2011 18:29:00 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHCz9TBINMgV2ViOjpTY3JhcGVy?= In-Reply-To: <6B490156-9BFF-4DCC-B91B-850DEEC91D52@gmail.com> References: <4EBA4987.8090204@gmail.com> <1320838496.2075.24.camel@host> <566831320843916@web101.yandex.ru> <4EBA7B89.4000704@gmail.com> <123501320845771@web148.yandex.ru> <6B490156-9BFF-4DCC-B91B-850DEEC91D52@gmail.com> Message-ID: 9 ноября 2011 г. 18:50 пользователь Dmitry Karpich написал: > > On Nov 9, 2011, at 4:36 PM, Orlovsky Alexander wrote: > > 09.11.2011, 17:19, "Михаил Шогин" : > > Ковырял в свое время Node.js в целях "пощупать". > Прекрасная вещь для работы с HTML (и не только HTML). Подключаешь jQuery и > вообще все хорошо. > > > у меня от ноды другие впечатления, для большого набора задач, которые влет > делаются на Perl, > > Согласен > слишком уж много ее нужно ковырять > > Это точно. Когда писал библиотечку для работы с Oracle, наковырялся сполна. Зато понравился тот факт, что любая С/С++ либа превращается в JS библиотеку в лет. > но где-то она может быть полезна, да > от задачи зависит и упертости разработчика > > А jQuery наверное несложно прикрутить и к JavaScript::V8 ( > https://metacpan.org/module/JavaScript::V8) > > > А я так понял, что jQuery сложно подключить к server-side js, бо jQuery в > основном для работы с DOM, которого, по идее, быть не должно в серверном > движке. > Ну, то есть оно прикручивается как-то там, но это js эмуляция, вроде. > Оно вам надо? > > да ну не var jsdom = require('jsdom'); jsdom.env( { html: body, scripts: [ process.env.PROJECT_HOME + '/jslib/jquery.js' ] }, function (err, window) { var $ = window.jQuery; // и далее все как в браузере } ); -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением Михаил Шогин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Thu Nov 10 00:56:41 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 10 Nov 2011 12:56:41 +0400 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: <69B10C28-309C-483F-8B57-4663B6C6DF7E@rambler-co.ru> References: <53481320152670@web62.yandex.ru> <271961320307143@web147.yandex.ru> <69B10C28-309C-483F-8B57-4663B6C6DF7E@rambler-co.ru> Message-ID: <332131320915401@web93.yandex.ru> я начал уже готовить один доклад, засабмитил его краткое описание на сайт: http://event.perlrussia.org/saintperl3/ 03.11.2011, 19:04, "Mons Anderson" : > Как площадку думаю вполне пробью Рамблер > > On 03.11.2011, at 14:11, Ruslan Zakirov wrote: >>  Нужна площадка и желающие рассказать. From nordicdyno на yandex.ru Thu Nov 10 05:19:15 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 10 Nov 2011 17:19:15 +0400 Subject: [Moscow.pm] cpantesters.org Message-ID: <574811320931155@web136.yandex.ru> Вложение в формате HTML было извлечено… URL: From andy на shitov.ru Thu Nov 10 05:20:51 2011 From: andy на shitov.ru (Andrew Shitov) Date: Thu, 10 Nov 2011 14:20:51 +0100 Subject: [Moscow.pm] cpantesters.org In-Reply-To: <574811320931155@web136.yandex.ru> References: <574811320931155@web136.yandex.ru> Message-ID: Все работает :-) 2011/11/10 Orlovsky Alexander : > Что-то http://www.cpantesters.org/ последнее время нередко лежит. Или всегда > так было и я просто не замечал? > Оно мне отдает 403 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From zzz на zzz.org.ua Thu Nov 10 06:02:14 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Thu, 10 Nov 2011 16:02:14 +0200 Subject: [Moscow.pm] cpantesters.org In-Reply-To: References: <574811320931155@web136.yandex.ru> Message-ID: > 2011/11/10 Orlovsky Alexander : >> Что-то http://www.cpantesters.org/ последнее время нередко лежит. Или >> всегда >> так было и я просто не замечал? >> Оно мне отдает 403 Следите за blogs.perl.org они уже пару раз писали об этом. Диск посыпался, который думали в рейде, а оказался без. Вот уже достаточно долго восстанавливают. From nordicdyno на yandex.ru Thu Nov 10 08:30:53 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 10 Nov 2011 20:30:53 +0400 Subject: [Moscow.pm] cpantesters.org In-Reply-To: References: <574811320931155@web136.yandex.ru> Message-ID: <70031320942653@web29.yandex.ru> 10.11.2011, 18:02, "Alexandr Gomoliako" : >>  2011/11/10 Orlovsky Alexander : >>>  Что-то http://www.cpantesters.org/ последнее время нередко лежит. Или >>>  всегда >>>  так было и я просто не замечал? >>>  Оно мне отдает 403 > > Следите за blogs.perl.org они уже пару раз писали об этом. > Диск посыпался, который думали в рейде, а оказался без. > Вот уже достаточно долго восстанавливают. Спасибо за ответ! К сожалению, очень редко захожу на blogs.perl.org, а где там эта новость? Я что-то не нашел ( From zzz на zzz.org.ua Thu Nov 10 08:37:55 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Thu, 10 Nov 2011 18:37:55 +0200 Subject: [Moscow.pm] cpantesters.org In-Reply-To: <70031320942653@web29.yandex.ru> References: <574811320931155@web136.yandex.ru> <70031320942653@web29.yandex.ru> Message-ID: On Thu, Nov 10, 2011 at 6:30 PM, Orlovsky Alexander wrote: > К сожалению, очень редко захожу на blogs.perl.org, а где там эта новость? Я что-то не нашел ( Пару месяцев назад это случилось. И только совсем недавно писали, что должны уже были заработать уведомления. Через поиск находится. From i.petro.77.00 на gmail.com Fri Nov 11 12:51:15 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sat, 12 Nov 2011 00:51:15 +0400 Subject: [Moscow.pm] =?utf-8?b?0JHQsNCw0LDQu9GM0YjQuNC1IFhNTDog0L/QvtGC?= =?utf-8?b?0L7QutC+0LLRi9C5INC/0LDRgNGB0LjQvdCz?= Message-ID: <20111111205114.GA1275@apache.rbscorp.ru> имеется огромная XML на несколько сот гиг. предствляет из себя по сути большой массив хешей. нужно выковырять из нее часть информации. вопрос: есть ли что-то готовое на эту тему? From maxim.vuets на gmail.com Fri Nov 11 12:57:40 2011 From: maxim.vuets на gmail.com (Maxim Vuets) Date: Fri, 11 Nov 2011 22:57:40 +0200 Subject: [Moscow.pm] =?koi8-r?b?4sHBwczY28nFIFhNTDog0M/Uz8vP19nKINDB0tPJ?= =?koi8-r?b?zsc=?= In-Reply-To: <20111111205114.GA1275@apache.rbscorp.ru> References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: 2011/11/11 Ivan Petrov : > вопрос: есть ли что-то готовое на эту тему? Сейчас Андрей Шитов скажет "libxml2" (: -- maxim.vuets.name From andy на shitov.ru Fri Nov 11 12:59:22 2011 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 11 Nov 2011 21:59:22 +0100 Subject: [Moscow.pm] =?utf-8?b?0JHQsNCw0LDQu9GM0YjQuNC1IFhNTDog0L/QvtGC?= =?utf-8?b?0L7QutC+0LLRi9C5INC/0LDRgNGB0LjQvdCz?= In-Reply-To: References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: Не подойдет. Оно не умеет SAX. Stackoverflow дает несколько ссылок по запросу "xpath command line sax". 2011/11/11 Maxim Vuets : > 2011/11/11 Ivan Petrov : > >> вопрос: есть ли что-то готовое на эту тему? > > Сейчас Андрей Шитов скажет "libxml2" (: > > -- > maxim.vuets.name > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From maxim.vuets на gmail.com Fri Nov 11 13:02:40 2011 From: maxim.vuets на gmail.com (Maxim Vuets) Date: Fri, 11 Nov 2011 23:02:40 +0200 Subject: [Moscow.pm] =?koi8-r?b?4sHBwczY28nFIFhNTDog0M/Uz8vP19nKINDB0tPJ?= =?koi8-r?b?zsc=?= In-Reply-To: References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: 2011/11/11 Andrew Shitov : > Не подойдет. Оно не умеет SAX. О как. Думал оно только SAX и умеет. -- maxim.vuets.name From andy на shitov.ru Fri Nov 11 13:03:57 2011 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 11 Nov 2011 22:03:57 +0100 Subject: [Moscow.pm] =?utf-8?b?0JHQsNCw0LDQu9GM0YjQuNC1IFhNTDog0L/QvtGC?= =?utf-8?b?0L7QutC+0LLRi9C5INC/0LDRgNGB0LjQvdCz?= In-Reply-To: References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: To some extent libxml2 provides support for the following additional specifications but doesn't claim to implement them completely: <...> SAX: a SAX2 like interface and a minimal SAX1 implementation compatible with early expat versions 2011/11/11 Maxim Vuets : > 2011/11/11 Andrew Shitov : > >> Не подойдет. Оно не умеет SAX. > > О как. Думал оно только SAX и умеет. > > -- > maxim.vuets.name > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From zzz на zzz.org.ua Fri Nov 11 13:25:59 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 11 Nov 2011 23:25:59 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 Message-ID: Пререлиз nginx-perl 1.1.6.1 В общем, со времен первого аннонса было реализовано все, что планировалось. Уже даже кое-как документировано (в Nginx.pm). Список фич теперь выглядит примерно так: - асинхронные соединения (ngx_connector, ngx_reader, ngx_writer); - резолвер (ngx_resolver); - установка SSL соединения без кэша сессии (ngx_ssl_handshaker); - таймер (ngx_timer); - обработчик фазы ограничения доступа (perl_access); - установка обработчика в виде файла (perl_app); - выполнение кода на этапе конфигурации (perl_eval); - обработчики при старте воркера (perl_init_worker); - перехват соединения клиента (для вебсокетов и т.д.); - поддержка старого API; Из важных изменений: - теперь можно устанавливать параллельно с обычным nginx, бинарник и директория переименованы в nginx-perl; - директива контент обработчика тут perl_handler вместо perl; Из архитектурных особенностей: полностью вырезана MULTIPLICITY, т.е. у нас всего одна копия интерпретатора, как все модули и ожидают. Не нужно задумываться, что может работать два интерпретатора с одним и тем же кодом. И да, знаю, что без нормальных примеров нет смысла релизить, потому это больше информационное сообщение. Но кто хочет поэксперементировать, не бойтесь :) И главное, пишите о проблемах/багах. Репозиторий: https://github.com/zzzcpan/nginx-perl Коммит лог: https://github.com/zzzcpan/nginx-perl/commits/master From meettya на gmail.com Fri Nov 11 14:36:41 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Sat, 12 Nov 2011 01:36:41 +0300 Subject: [Moscow.pm] =?utf-8?b?0JHQsNCw0LDQu9GM0YjQuNC1IFhNTDog0L/QvtGC?= =?utf-8?b?0L7QutC+0LLRi9C5INC/0LDRgNGB0LjQvdCz?= In-Reply-To: <20111111205114.GA1275@apache.rbscorp.ru> References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: Вроде XML::Twig обещает > One of the strengths of XML::Twig is that it let you work with files that do not fit in memory правда будет ли приемлемой скорость - фик знает. Митяй. On Nov 11, 2011, at 11:51 PM, Ivan Petrov wrote: > > имеется огромная XML на несколько сот гиг. > предствляет из себя по сути большой массив хешей. > > нужно выковырять из нее часть информации. > > вопрос: есть ли что-то готовое на эту тему? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zahatski на gmail.com Fri Nov 11 13:39:49 2011 From: zahatski на gmail.com (Aliaksandr Zahatski) Date: Sat, 12 Nov 2011 01:39:49 +0400 Subject: [Moscow.pm] =?koi8-r?b?4sHBwczY28nFIFhNTDog0M/Uz8vP19nKINDB0tPJ?= =?koi8-r?b?zsc=?= In-Reply-To: <20111111205114.GA1275@apache.rbscorp.ru> References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: Доброго времени суток ! По своему опыту, советую сразу смотреть в сторону низкоуровневых API. Если необходимо _извлечь_ простые структуры из подобных размеров XML максимум XML::Parser :-) ЗЫ: оптимально, если условия позволяют работать с XML как с тестом ( да, регекспами !) 12 ноября 2011 г. 0:51 пользователь Ivan Petrov написал: > > имеется огромная XML на несколько сот гиг. > предствляет из себя по сути большой массив хешей. > > нужно выковырять из нее часть информации. > > вопрос: есть ли что-то готовое на эту тему? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From zahatski на gmail.com Fri Nov 11 13:59:05 2011 From: zahatski на gmail.com (Aliaksandr Zahatski) Date: Sat, 12 Nov 2011 01:59:05 +0400 Subject: [Moscow.pm] =?koi8-r?b?4sHBwczY28nFIFhNTDog0M/Uz8vP19nKINDB0tPJ?= =?koi8-r?b?zsc=?= In-Reply-To: References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: В догонку: речь идет об одноразовой обработке ? 12 ноября 2011 г. 1:39 пользователь Aliaksandr Zahatski написал: > Доброго времени суток ! > По своему опыту, советую сразу смотреть в сторону низкоуровневых API. > Если необходимо _извлечь_  простые структуры из подобных размеров  XML >  максимум XML::Parser :-) > > ЗЫ: оптимально, если условия позволяют работать с XML как с тестом ( > да, регекспами !) > > > 12 ноября 2011 г. 0:51 пользователь Ivan Petrov > написал: >> >> имеется огромная XML на несколько сот гиг. >> предствляет из себя по сути большой массив хешей. >> >> нужно выковырять из нее часть информации. >> >> вопрос: есть ли что-то готовое на эту тему? >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > From sharifulin на gmail.com Fri Nov 11 16:25:23 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Sat, 12 Nov 2011 04:25:23 +0400 Subject: [Moscow.pm] =?koi8-r?b?4sHBwczY28nFIFhNTDog0M/Uz8vP19nKINDB0tPJ?= =?koi8-r?b?zsc=?= In-Reply-To: References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: Привет, всем любителям готовых решений! :) Если ни одно вам не подойдёт, используйте накапление в переменой и регекспу (тут передаю привет Андрею Шетухину, который "любит" Perl и регекспы :). 2011/11/12 Aliaksandr Zahatski > В догонку: речь идет об одноразовой обработке ? > > 12 ноября 2011 г. 1:39 пользователь Aliaksandr Zahatski > написал: > > Доброго времени суток ! > > По своему опыту, советую сразу смотреть в сторону низкоуровневых API. > > Если необходимо _извлечь_ простые структуры из подобных размеров XML > > максимум XML::Parser :-) > > > > ЗЫ: оптимально, если условия позволяют работать с XML как с тестом ( > > да, регекспами !) > > > > > > 12 ноября 2011 г. 0:51 пользователь Ivan Petrov > > написал: > >> > >> имеется огромная XML на несколько сот гиг. > >> предствляет из себя по сути большой массив хешей. > >> > >> нужно выковырять из нее часть информации. > >> > >> вопрос: есть ли что-то готовое на эту тему? > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > >> > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sharifulin на gmail.com Fri Nov 11 16:28:26 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Sat, 12 Nov 2011 04:28:26 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: Привет, я наверно не скоро это попробую, но выглядит круто. Сделай на github-e вместо README файл README.pod и соовтетственно оформи. Удачи! 2011/11/12 Alexandr Gomoliako > Пререлиз nginx-perl 1.1.6.1 > > В общем, со времен первого аннонса было реализовано все, > что планировалось. Уже даже кое-как документировано (в Nginx.pm). > > Список фич теперь выглядит примерно так: > - асинхронные соединения (ngx_connector, ngx_reader, ngx_writer); > - резолвер (ngx_resolver); > - установка SSL соединения без кэша сессии (ngx_ssl_handshaker); > - таймер (ngx_timer); > - обработчик фазы ограничения доступа (perl_access); > - установка обработчика в виде файла (perl_app); > - выполнение кода на этапе конфигурации (perl_eval); > - обработчики при старте воркера (perl_init_worker); > - перехват соединения клиента (для вебсокетов и т.д.); > - поддержка старого API; > > Из важных изменений: > - теперь можно устанавливать параллельно с обычным nginx, > бинарник и директория переименованы в nginx-perl; > - директива контент обработчика тут perl_handler вместо perl; > > Из архитектурных особенностей: полностью вырезана > MULTIPLICITY, т.е. у нас всего одна копия интерпретатора, > как все модули и ожидают. Не нужно задумываться, > что может работать два интерпретатора с одним и тем же > кодом. > > И да, знаю, что без нормальных примеров нет смысла релизить, > потому это больше информационное сообщение. > > Но кто хочет поэксперементировать, не бойтесь :) > И главное, пишите о проблемах/багах. > > Репозиторий: > https://github.com/zzzcpan/nginx-perl > > Коммит лог: > https://github.com/zzzcpan/nginx-perl/commits/master > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Fri Nov 11 17:12:15 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 12 Nov 2011 03:12:15 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: On Sat, Nov 12, 2011 at 2:28 AM, Анатолий Шарифулин wrote: > Привет, я наверно не скоро это попробую, но выглядит круто. > Сделай на github-e вместо README файл README.pod и соовтетственно оформи. Гитхаб поды плохо показвает, растягивает строки на всю ширину. А так я генерю одной командой сразу до 80 символов: pod2text src/http/modules/perl/Nginx.pm > README From i.petro.77.00 на gmail.com Fri Nov 11 22:37:24 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sat, 12 Nov 2011 10:37:24 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: <20111112063723.GC1275@apache.rbscorp.ru> > Пререлиз nginx-perl 1.1.6.1 > В общем, со времен первого аннонса было реализовано все, > что планировалось. Уже даже кое-как документировано (в Nginx.pm). > Список фич теперь выглядит примерно так: > - асинхронные соединения (ngx_connector, ngx_reader, ngx_writer); > - резолвер (ngx_resolver); > - установка SSL соединения без кэша сессии (ngx_ssl_handshaker); > - таймер (ngx_timer); > - обработчик фазы ограничения доступа (perl_access); > - установка обработчика в виде файла (perl_app); > - выполнение кода на этапе конфигурации (perl_eval); > - обработчики при старте воркера (perl_init_worker); > - перехват соединения клиента (для вебсокетов и т.д.); > - поддержка старого API; кто бы бакенд к AnyEvent для этой хрени написал бы, да еще чтобы по возможности соместимо (то есть переносимо) с AE::HTTPD? From i.petro.77.00 на gmail.com Fri Nov 11 22:41:03 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sat, 12 Nov 2011 10:41:03 +0400 Subject: [Moscow.pm] =?utf-8?b?0JHQsNCw0LDQu9GM0YjQuNC1IFhNTDog0L/QvtGC?= =?utf-8?b?0L7QutC+0LLRi9C5INC/0LDRgNGB0LjQvdCz?= In-Reply-To: References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: <20111112064102.GD1275@apache.rbscorp.ru> > В догонку: речь идет об одноразовой обработке ? > 12 ноября 2011 г. 1:39 пользователь Aliaksandr Zahatski > написал: >> Доброго времени суток ! >> По своему опыту, советую сразу смотреть в сторону низкоуровневых API. >> Если необходимо _извлечь_  простые структуры из подобных размеров  XML >>  максимум XML::Parser :-) >> >> ЗЫ: оптимально, если условия позволяют работать с XML как с тестом ( >> да, регекспами !) решение полуодноразовое. то есть первый парсинг делаем из полного XML, а потом уже из приходящих дополнений. ща сделано просто: читается блок в районе мегабайта, парсится, непарсенный хвост остается - к нему читается еще мегабайт итп парсится просто регекспами From q на cono.org.ua Sat Nov 12 00:34:14 2011 From: q на cono.org.ua (Alex Varyanick) Date: Sat, 12 Nov 2011 10:34:14 +0200 Subject: [Moscow.pm] =?utf-8?b?0JHQsNCw0LDQu9GM0YjQuNC1IFhNTDog0L/QvtGC?= =?utf-8?b?0L7QutC+0LLRi9C5INC/0LDRgNGB0LjQvdCz?= In-Reply-To: <20111111205114.GA1275@apache.rbscorp.ru> References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: 2011/11/11 Ivan Petrov : > > имеется огромная XML на несколько сот гиг. > предствляет из себя по сути большой массив хешей. > > нужно выковырять из нее часть информации. > > вопрос: есть ли что-то готовое на эту тему? У нас на работе пользуют: my $xml_parser = new XML::Parser( Handlers => { Start => $self->can( 'header_handler' ), End => $self->can( 'end_handler' ), Char => $self->can( 'char_handler' ), Default => $self->can( 'default_handler' ), } ); Есть ещё XML::LibXML::Reader (пулл парсер), но он совсем простой и XPath там порезан ;( 100Гб файликов у мну нет, но вот с работы стырил один маленький: % ls -lah nsn.xml -rw-r--r-- 1 cono cono 309M 2011-11-12 09:09 nsn.xml Пример из доки: #!/usr/bin/perl use strict; use warnings; use XML::LibXML::Reader; my $reader = XML::LibXML::Reader->new( location => 'nsn.xml' ); while ($reader->read) { printf "%d %d %s %d\n", map { $reader->$_ } qw/depth nodeType name isEmptyElement/; } тест: % time ./test.pl > /dev/null ./test.pl > /dev/null 106.14s user 0.14s system 99% cpu 1:46.49 total память: cono 5149 98.0 0.0 39224 6444 pts/1 R+ 09:14 0:48 /usr/bin/perl ./test.pl скрипт на всём протяжении работы парсера статичен по памяти. -- Varyanick I. Alex icq: 102 575 440 skype: cono.. q на cono.org.ua From cub.uanic на gmail.com Sat Nov 12 04:19:57 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Sat, 12 Nov 2011 14:19:57 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <20111112063723.GC1275@apache.rbscorp.ru> References: <20111112063723.GC1275@apache.rbscorp.ru> Message-ID: Ну почему же "хрени"? Имейте хотя бы элементарное уважение к авторам софтин. 12 ноября 2011 г. 8:37 пользователь Ivan Petrov написал: >> Пререлиз nginx-perl 1.1.6.1 > >> В общем, со времен первого аннонса было реализовано все, >> что планировалось. Уже даже кое-как документировано (в Nginx.pm). > >> Список фич теперь выглядит примерно так: >> - асинхронные соединения (ngx_connector, ngx_reader, ngx_writer); >> - резолвер (ngx_resolver); >> - установка SSL соединения без кэша сессии (ngx_ssl_handshaker); >> - таймер (ngx_timer); >> - обработчик фазы ограничения доступа (perl_access); >> - установка обработчика в виде файла (perl_app); >> - выполнение кода на этапе конфигурации (perl_eval); >> - обработчики при старте воркера (perl_init_worker); >> - перехват соединения клиента (для вебсокетов и т.д.); >> - поддержка старого API; > > кто бы бакенд к AnyEvent для этой хрени написал бы, да еще чтобы по > возможности соместимо (то есть переносимо) с AE::HTTPD? > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From yu.pats на gmail.com Sat Nov 12 05:26:13 2011 From: yu.pats на gmail.com (Yury Pats) Date: Sat, 12 Nov 2011 16:26:13 +0300 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: В перспективе nginx-perl сможет заменить mod_perl и apache? 2011/11/12 Alexandr Gomoliako : > Пререлиз nginx-perl 1.1.6.1 > > В общем, со времен первого аннонса было реализовано все, > что планировалось. Уже даже кое-как документировано (в Nginx.pm). > > Список фич теперь выглядит примерно так: >  - асинхронные соединения (ngx_connector, ngx_reader, ngx_writer); >  - резолвер (ngx_resolver); >  - установка SSL соединения без кэша сессии (ngx_ssl_handshaker); >  - таймер (ngx_timer); >  - обработчик фазы ограничения доступа (perl_access); >  - установка обработчика в виде файла (perl_app); >  - выполнение кода на этапе конфигурации (perl_eval); >  - обработчики при старте воркера (perl_init_worker); >  - перехват соединения клиента (для вебсокетов и т.д.); >  - поддержка старого API; > > Из важных изменений: >  - теперь можно устанавливать параллельно с обычным nginx, >    бинарник и директория переименованы в nginx-perl; >  - директива контент обработчика тут perl_handler вместо perl; > > Из архитектурных особенностей: полностью вырезана > MULTIPLICITY, т.е. у нас всего одна копия интерпретатора, > как все модули и ожидают. Не нужно задумываться, > что может работать два интерпретатора с одним и тем же > кодом. > > И да, знаю, что без нормальных примеров нет смысла релизить, > потому это больше информационное сообщение. > > Но кто хочет поэксперементировать, не бойтесь :) > И главное, пишите о проблемах/багах. > > Репозиторий: >    https://github.com/zzzcpan/nginx-perl > > Коммит лог: >    https://github.com/zzzcpan/nginx-perl/commits/master > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From ruz на bestpractical.com Sat Nov 12 05:45:27 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Sat, 12 Nov 2011 17:45:27 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: 2011/11/12 Yury Pats : > В перспективе nginx-perl сможет заменить mod_perl и apache? Врядли. Блокировать это дело нельзя. Юра, если ты не испольщуешь что-то кроме ResponeHandler, то нет никакого смысла испольовать mod_perl. Просто перейти на FCGI. Тогда не нужен обратный прокси и легко переключиться на другой сервер. -- Best regards, Ruslan. From zzz на zzz.org.ua Sat Nov 12 08:11:52 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 12 Nov 2011 18:11:52 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: On 11/12/11, Ruslan Zakirov wrote: > 2011/11/12 Yury Pats : >> В перспективе nginx-perl сможет заменить mod_perl и apache? Тут смысл совсем не в функционале модперла апача, а чтобы можно было запустить что-то в бэкграунде, отправлять запрос параллельно на несколько бэкендов, создавать очереди соединений и т.д. > Врядли. Блокировать это дело нельзя. Блокировать можно, ничего страшного в этом нет. Просто запускайте больше воркеров. Никаких проблем, а только больше удобства. > Юра, если ты не испольщуешь что-то кроме ResponeHandler, то нет > никакого смысла испольовать mod_perl. Просто перейти на FCGI. Тогда не > нужен обратный прокси и легко переключиться на другой сервер. Или уже PSGI, Миягава упорно его развивает http://plackperl.org/ Если посмотрите на асинхронные PSGI северы Feersum и Twiggy, то они точно так же блокируют воркер при работе с DBI или чем-то таким. На счет внедрения в AE, то тут API выше уровня, т.е. нет колбэков, когда можно что-то читать, а только, когда уже полностью прочитано в указанный буффер. Да и зачем, наоборот хотелось простоты. Т.е. грубо, создали коннектор, подключились, создали в колбеке ридер и вернули NGX_READ из колбэка коннектора, т.е. следующая операция: чтение. И когда буфер ридера заполнится, вызовется его колбэк. По-моему достаточно просто. Кто не заглядывал в код, то вот как выглядит минимально возможный HTTP 1.0 запрос: my $ip = '1.2.3.4'; my $port = 80; my $timeout = 15; my $buf = "GET / HTTP/1.0\x0d\x0aHost: asdf\x0d\x0a\x0d\x0a"; ngx_connector $ip, $port, $timeout, sub { return NGX_CLOSE if $!; my $c = shift; ngx_writer $c, $buf, $timeout, sub { return NGX_CLOSE if $!; $buf = ''; return NGX_READ; }; ngx_reader $c, $buf, 0, 0, $timeout, sub { return NGX_READ unless $!; warn "response: $buf\n"; return NGX_CLOSE; }; return NGX_WRITE; }; From ruz на bestpractical.com Sun Nov 13 04:30:16 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Sun, 13 Nov 2011 16:30:16 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: 2011/11/12 Alexandr Gomoliako : > On 11/12/11, Ruslan Zakirov wrote: >> 2011/11/12 Yury Pats : >>> В перспективе nginx-perl сможет заменить mod_perl и apache? > > Тут смысл совсем не в функционале модперла апача, а чтобы > можно было запустить что-то в бэкграунде, отправлять запрос > параллельно на несколько бэкендов, создавать очереди > соединений и т.д. > >> Врядли. Блокировать это дело нельзя. > > Блокировать можно, ничего страшного в этом нет. Просто запускайте > больше воркеров. Никаких проблем, а только больше удобства. Какой в этом смысл тогда? Чем это будет отличаться от других серверов? Тогда одно отличие, что можно послать асинхронно запрос, что-то поделать. >> Юра, если ты не испольщуешь что-то кроме ResponeHandler, то нет >> никакого смысла испольовать mod_perl. Просто перейти на FCGI. Тогда не >> нужен обратный прокси и легко переключиться на другой сервер. > > Или уже PSGI, Миягава упорно его развивает http://plackperl.org/ psgi тоже хорошо. > Если посмотрите на асинхронные PSGI северы Feersum и Twiggy, то они > точно так же блокируют воркер при работе с DBI или чем-то таким. Плохо, что блокируют. В современном веб приложении общаемся больше всего с БД, а все остальное обработка текста и преобразование полученых данных. Блокировать общение с БД тоже самое, что превратить событийный сервер в форкающийся. Какими же такими плюсами обладает такое решение, что дажее блокируя его все равно мы остаемся в плюсе. > На счет внедрения в AE, то тут API выше уровня, т.е. нет колбэков, > когда можно что-то читать, а только, когда уже полностью прочитано > в указанный буффер. Было бы интересно получить AE приложение, которое работает совместно с nginx loop'ом и периодически передают друг другу управление. То есть должно быть неважно использую ли я ngx соединения с чем-то еще или AE'шные соединения. Не знаю возможно ли такое в принципе поиметь с API nginx. Что скажете? Хочется AE, потому что есть готовые решения для различных задач, переносимость, работа кода за пределами веб сервера. > Да и зачем, наоборот хотелось простоты. Т.е. грубо, создали коннектор, > подключились, создали в колбеке ридер и вернули NGX_READ > из колбэка коннектора, т.е. следующая операция: чтение. > И когда буфер ридера заполнится, вызовется его колбэк. > По-моему достаточно просто. Я не хаю. Мне нравится. -- Best regards, Ruslan. From peter на vereshagin.org Sun Nov 13 05:32:05 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sun, 13 Nov 2011 17:32:05 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHazdnbzMXOydEgzsEg1MXN1SBPUk0gySDXz8/C?= =?koi8-r?b?3cUg0sHCz9TZINMg4uQ=?= In-Reply-To: <20111030140317.GA2216@rabbit.us> References: <20111028020533.GA24610@rabbit.us> <20111030134958.GB5746@external.screwed.box> <20111030140317.GA2216@rabbit.us> Message-ID: <20111113133205.GB16065@external.screwed.box> Hello. Peter Rabbitson: > Слишком тяжело, так что слухи можно закопать. Некоторые части перейдут > потихоньку на Moo, но полного Moose там не будет очень долго, если вообще > когда будет. У меня к сожалению все никак не доходят руки написать > нормальный Vision-document, но опорные точки: > > *) Perl 5.8 будет поддерживатся до тех пор пока не появятся непреодолимые > препядствия (какив кстати не предвидятся). Moose активно хочет от 5.8 > отказатся. От дважды устаревшего, всё правильно: http://rjbs.manxome.org/rubric/entry/1872 if you're still on 5.8 come April, you're on an unsupported legacy version. Current versions are 5.10.1 and 5.12.3 препятствия --- любой админ скажет, что фиксы по безопасности нелишни. Или где-то в далёкой галактике есть поддерживаемый форк 5.8? Хотя ну его рикардушку, его ж вроде давеча поставили тыквой всея пёрл 5, нет? а ведь поди ж ты: http://www.dagolden.com/index.php/1314/belated-modern-perl-review/ Modern Perl obsoletes most of my shelf of Perl 5 books. мой вывод --- потакание юзу 5.8 в дряхлых продакшнах развращает. > *) DBIC должен быть App::FatPack-абле исключая сам DBI/DBD. Здесь не просто > "cool factor" - есть реальные выгоды, позволяющие нам делать некоторые вещи > о которых пока думать не можем. Весь XS который Moose за собой тащит мне > здесь мало нужен. Оптимизация без бенчмарка --- чревата перезрелостью. На результатах не настаиваю, но при возможности посмотрел бы, на сколько в байтах и процентах увеличение того, что не нужно. А что это за мечты про реальные выгоды, про которые я ещё не знаю? (= > В итоге (по крайней мере пока я в проекте) DBIC и Moose ну просто никак не > по пути. Ну и правильно. Хоть что-то попроще останется. Мне хватило разбираться как подсунуть готовый dbh в RDBO ( никак т. е. ) а то автор RDBO так упаролсе что парсер sqlite ( create table, etc. ) режексами вставил. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From peter на vereshagin.org Sun Nov 13 05:49:28 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sun, 13 Nov 2011 17:49:28 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHazdnbzMXOydEgzsEg1MXN1SBPUk0gySDXz8/C?= =?koi8-r?b?3cUg0sHCz9TZINMg4uQ=?= In-Reply-To: <4EAA53BC.5060202@ashmanov.com> References: <20111028020023.GC8797@external.screwed.box> <4EAA53BC.5060202@ashmanov.com> Message-ID: <20111113134928.GC16065@external.screwed.box> Hello. Alexander Q: > On 28.10.2011 06:00, Peter Vereshagin wrote: > >> 2) любая публичная разработка начинается с GitHub, CPAN первое время точно > >> не нужен. > > сколько любителей GET-Хапчика. (= > > А если кто Mercurial предпочитает? > > > > bitbucket нонче и гит поддерживает, не только меркуриал. И репозитарии > закрытые даром в неограниченном количестве. Сплошной профит, ни одного > минуса. Минус тестеры. на препане их тоже запросто может не быть, но полагаю что если они там появятся, то это будет скорее и больше, чем на этих ваших вцс-хостингах. А вообще, я про то, что место, откуда начинать ( а также продолжать и заканчивать ) --- это не только для записи, но и для чтения. Требовать от пользователя наличие чего-то ещё (vcs, особенно конкретной) кроме того, что заведомо нужно --- это +1 затруднение, особенно в начале. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From rabbit+moscowpm на rabbit.us Sun Nov 13 06:44:05 2011 From: rabbit+moscowpm на rabbit.us (Peter Rabbitson) Date: Sun, 13 Nov 2011 09:44:05 -0500 Subject: [Moscow.pm] =?utf-8?b?0KDQsNC30LzRi9GI0LvQtdC90LjRjyDQvdCwINGC?= =?utf-8?b?0LXQvNGDIE9STSDQuCDQstC+0L7QsdGJ0LUg0YDQsNCx0L7RgtGLINGB?= =?utf-8?b?INCR0JQ=?= In-Reply-To: <20111113133205.GB16065@external.screwed.box> References: <20111028020533.GA24610@rabbit.us> <20111030134958.GB5746@external.screwed.box> <20111030140317.GA2216@rabbit.us> <20111113133205.GB16065@external.screwed.box> Message-ID: <20111113144405.GA12608@rabbit.us> On Sun, Nov 13, 2011 at 05:32:05PM +0400, Peter Vereshagin wrote: > Hello. > > Peter Rabbitson: > > > Слишком тяжело, так что слухи можно закопать. Некоторые части перейдут > > потихоньку на Moo, но полного Moose там не будет очень долго, если вообще > > когда будет. У меня к сожалению все никак не доходят руки написать > > нормальный Vision-document, но опорные точки: > > > > *) Perl 5.8 будет поддерживатся до тех пор пока не появятся непреодолимые > > препядствия (какив кстати не предвидятся). Moose активно хочет от 5.8 > > отказатся. > > От дважды устаревшего, всё правильно: > > http://rjbs.manxome.org/rubric/entry/1872 > > if you're still on 5.8 come April, you're on an unsupported legacy > version. Current versions are 5.10.1 and 5.12.3 > > препятствия --- любой админ скажет, что фиксы по безопасности нелишни. Или > где-то в далёкой галактике есть поддерживаемый форк 5.8? > > Хотя ну его рикардушку, его ж вроде давеча поставили тыквой всея пёрл 5, нет? > > а ведь поди ж ты: > > http://www.dagolden.com/index.php/1314/belated-modern-perl-review/ > > Modern Perl obsoletes most of my shelf of Perl 5 books. > > мой вывод --- потакание юзу 5.8 в дряхлых продакшнах развращает. Велите надеть кандалы :) Здесь разница вот в чем - я не поддерживаю бибилиотеку ради денег славы и женщин, мне лично интерес чтоб народ мог легко достать свои данные. Понятие "легко" также включает в себя возможность поставить куда угодно, и все будет работать без шума и пыли. Выкрутасы типа "а надо ставить 5.14" или "надо новый DBI, DBD:: и еще пол-CPANа обновить" - для сисадмина это что угодно но не "легко". > > *) DBIC должен быть App::FatPack-абле исключая сам DBI/DBD. Здесь не просто > > "cool factor" - есть реальные выгоды, позволяющие нам делать некоторые вещи > > о которых пока думать не можем. Весь XS который Moose за собой тащит мне > > здесь мало нужен. > > Оптимизация без бенчмарка --- чревата перезрелостью. На результатах не > настаиваю, но при возможности посмотрел бы, на сколько в байтах и процентах > увеличение того, что не нужно. А где я вообще что либо про оптимизацию сказал? То вообще отдельный разговор (неприятный разговор - DBIC пока по моим меркам тормозит). И речь не о процентах - есть части которые я знаю как сделать в разы быстрее, вот только беда в этом году у меня со временем черт знает что творится, надеюсь что скоро руки разяжутся :) > А что это за мечты про реальные выгоды, про которые я ещё не знаю? (= Будет готово - напишу ;) > > > В итоге (по крайней мере пока я в проекте) DBIC и Moose ну просто никак не > > по пути. > > Ну и правильно. Хоть что-то попроще останется. > Мне хватило разбираться как подсунуть готовый dbh в RDBO ( никак т. е. ) > а то автор RDBO так упаролсе что парсер sqlite ( create table, etc. ) > режексами вставил. Зря считаете что все "englightened perlers" тянутся к сложности и "покупай новый сервак" - я с ребятами из YAPP буду на недел об Cheers From zzz на zzz.org.ua Sun Nov 13 07:03:40 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sun, 13 Nov 2011 17:03:40 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: On 11/13/11, Ruslan Zakirov wrote: > Какой в этом смысл тогда? Чем это будет отличаться от других серверов? > Тогда одно отличие, что можно послать асинхронно запрос, что-то > поделать. Да, только асинхронностью и отличается. Если блокироваться внутри, то это как префорк сервер с возможностью выполнять что-то в перерывах между запросами. Это даже будет чуть-чуть быстрее, чем типичный префорк сервер, но это не так важно. Типичные задачи могут быть: - что-то распределенное, т.е. когда нужно постоянно проверять состояние нод, отправлять запросы на две ноды сразу (quorum logic), синхронизироваться с другими нодами и т.д.; - когда нужно минимизировать время отклика, тоже отправлять на пару нод сразу и отдавать ответ клиенту сразу после первого ответа; - когда нужно много работать с внешними интернет ресурсами; - работа по HTTP с современными nosql базами данных; А вообще любое приложение может выиграть в производительности, но стоит ли оно того, это другой вопрос. > Плохо, что блокируют. В современном веб приложении общаемся больше > всего с БД, а все остальное обработка текста и преобразование > полученых данных. Блокировать общение с БД тоже самое, что превратить > событийный сервер в форкающийся. Какими же такими плюсами обладает > такое решение, что дажее блокируя его все равно мы остаемся в плюсе. Тут проблема не в серверах, а в DBI. Он никогда не станет неблокирующим. Некоторые выносят DBI в отдельный процесс, модуль Марка по-моему так делает. Можно точно так же запустить отдельный nginx и создать простенький JSON интерфейс для работы с DBI, как я когда-то уже предлагал. А к уже нему подключаться асинхронно из другого. Это тоже самое. Но это проблемы не решает, DBI как блокировался, так и блокируется, просто в другом процессе. Но так как клиенты обычно распределены во времени, то они точно так же ждут ответа от DBI. Чтобы был смысл использовать асинхронно у вас уже должна быть распределенная база. Если одна из нод базы вдруг начинает тормозить, то это должно повлиять только на небольшое количество клиентов, а не тормозить всех. Соответственно если база одна, то как бы с ней не общались, когда она начнет тормозить, все начнут тормозить. > Было бы интересно получить AE приложение, которое работает совместно с > nginx loop'ом и периодически передают друг другу управление. То есть > должно быть неважно использую ли я ngx соединения с чем-то еще или > AE'шные соединения. Не знаю возможно ли такое в принципе поиметь с API > nginx. Что скажете? > Хочется AE, потому что есть готовые решения для различных задач, > переносимость, работа кода за пределами веб сервера. Теоретически это возможно, но только теоретически. Т.е. если реализовать libev event module для nginx, то можно будет запускать AE внутри nginx. Но скорее всего будут проблемы, потому что в nginx куча макросов по всему коду для kqueue и edge/level triggering для epoll. Кто-то хочет этим заняться? :) From mi на ya.ru Mon Nov 14 00:14:06 2011 From: mi на ya.ru (Nikolay Mishin) Date: Mon, 14 Nov 2011 12:14:06 +0400 Subject: [Moscow.pm] =?koi8-r?b?4sHBwczY28nFIFhNTDog0M/Uz8vP19nKINDB0tPJ?= =?koi8-r?b?zsc=?= In-Reply-To: References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: <47621321258446@web130.yandex.ru> Согласен, я, если xml 100Gb храню ее в zip -j9 так она будет 5-6Gb и потом open my $fh, q{-|}, "unzip -p $filename $file" or croak "bah unzip -p $filename $file $ERRNO"; generate_index( $fh, $idx_file, $ref_tags ); close $fh or croak "doh $filename"; sub generate_index { my ( $fh, $idx_file, $ref_tags ) = @_; ### $idx_file my ( $start_tag, $end_tag, $tradeid_tag ) = @{$ref_tags}; my ( $start, $sysid, $end, $ret ); my @idx_out = (); while ( my $line = <$fh> ) { if ( $line =~ /$start_tag/ims ) { $start = $INPUT_LINE_NUMBER; } if ( $line =~ /\<$tradeid_tag\>(.*)\<\/$tradeid_tag\>/ims ) { $sysid = $1; } if ( $line =~ /$end_tag/ims ) { $end = $INPUT_LINE_NUMBER; if ($sysid) { push @idx_out, "$start,$end,$sysid\n"; ### @idx_out } } } # print $idx_out; $ret = write_file( $idx_file, \@idx_out ); return 1; } вот один из моих тестов https://gist.github.com/1345359/24e667562df699fa2c054a36733a0999fa7023b9 12.11.2011, 01:39, "Aliaksandr Zahatski" : > Доброго времени суток ! > По своему опыту, советую сразу смотреть в сторону низкоуровневых API. > Если необходимо _извлечь_  простые структуры из подобных размеров  XML >  максимум XML::Parser :-) > > ЗЫ: оптимально, если условия позволяют работать с XML как с тестом ( > да, регекспами !) > > 12 ноября 2011 г. 0:51 пользователь Ivan Petrov > написал: > >>  имеется огромная XML на несколько сот гиг. >>  предствляет из себя по сути большой массив хешей. >> >>  нужно выковырять из нее часть информации. >> >>  вопрос: есть ли что-то готовое на эту тему? >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From i.petro.77.00 на gmail.com Mon Nov 14 12:04:23 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 15 Nov 2011 00:04:23 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: <20111114200421.GA1396@apache.rbscorp.ru> > Теоретически это возможно, но только теоретически. > Т.е. если реализовать libev event module для nginx, то можно будет > запускать AE внутри nginx. для AE EV не нужен. то есть EV там один из бакендов. если в nginx можно делать 1. произвольные сокеты 2. таймеры то по идее поверх него можно для AE свой бакенд написать > Но скорее всего будут проблемы, потому > что в nginx куча макросов по всему коду для kqueue и edge/level triggering > для epoll. Кто-то хочет этим заняться? :) я - нет. я бы посмотрел на это когда бы там AE появился. а так времени нет столько :( From zzz на zzz.org.ua Mon Nov 14 12:46:05 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 14 Nov 2011 22:46:05 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <20111114200421.GA1396@apache.rbscorp.ru> References: <20111114200421.GA1396@apache.rbscorp.ru> Message-ID: On Mon, Nov 14, 2011 at 10:04 PM, Ivan Petrov wrote: >> Теоретически это возможно, но только теоретически. >> Т.е. если реализовать libev event module для nginx, то можно будет >> запускать AE внутри nginx. > > для AE EV не нужен. то есть EV там один из бакендов. Ну я подразумевал, что если реализовать libev внутри nginx, то можно будет взять XS из EV и тогда можно будет сделать Impl для AE на основе Impl::EV. Предлагаю фанатам АЕ этим и заняться, т.к. я сам скорее на Erlang перейду, чем буду использовать AnyEvent. From ruz на bestpractical.com Mon Nov 14 13:11:59 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 15 Nov 2011 01:11:59 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: 2011/11/13 Alexandr Gomoliako : > On 11/13/11, Ruslan Zakirov wrote: >> Какой в этом смысл тогда? Чем это будет отличаться от других серверов? >> Тогда одно отличие, что можно послать асинхронно запрос, что-то >> поделать. > > Да, только асинхронностью и отличается. > Если блокироваться внутри, то это как префорк сервер с возможностью > выполнять что-то в перерывах между запросами. Это даже будет чуть-чуть > быстрее, чем типичный префорк сервер, но это не так важно. Выгода конечно есть. >> Плохо, что блокируют. В современном веб приложении общаемся больше >> всего с БД, а все остальное обработка текста и преобразование >> полученых данных. Блокировать общение с БД тоже самое, что превратить >> событийный сервер в форкающийся. Какими же такими плюсами обладает >> такое решение, что дажее блокируя его все равно мы остаемся в плюсе. > > Тут проблема не в серверах, а в DBI. Он никогда не станет неблокирующим. Я говорил про любые БД, а не только DBI. У Тима Банса спрашивал о том когда появится асинхронный API в DBI, на что был получен ответ, что как только DBD драйвера отполирую частные решения, то можно будит говорить про унификацию. Это было два года назад. > Некоторые выносят DBI в отдельный процесс, модуль Марка по-моему так именно так и делает, но тоже ничего хорошего. Этот процесс имеет один коннект к БД и нужен пул, а дальше вылезают проблемы с балансом и транзакциями. > делает. Можно точно так же запустить отдельный nginx и создать простенький > JSON интерфейс для работы с DBI, как я когда-то уже предлагал. > А к уже нему подключаться асинхронно из другого. Это тоже самое. > > Но это проблемы не решает, DBI как блокировался, так и блокируется, > просто в другом процессе. Но так как клиенты обычно распределены > во времени, то они точно так же ждут ответа от DBI. > > Чтобы был смысл использовать асинхронно у вас уже должна быть > распределенная база. Если одна из нод базы вдруг начинает тормозить, > то это должно повлиять только на небольшое количество клиентов, > а не тормозить всех. > Соответственно если база одна, то как бы с ней не общались, когда она > начнет тормозить, все начнут тормозить. Это актуально для форкнутых и не форкнутых серверов. >> Было бы интересно получить AE приложение, которое работает совместно с >> nginx loop'ом и периодически передают друг другу управление. То есть >> должно быть неважно использую ли я ngx соединения с чем-то еще или >> AE'шные соединения. Не знаю возможно ли такое в принципе поиметь с API >> nginx. Что скажете? > >> Хочется AE, потому что есть готовые решения для различных задач, >> переносимость, работа кода за пределами веб сервера. > > Теоретически это возможно, но только теоретически. > Т.е. если реализовать libev event module для nginx, то можно будет > запускать AE внутри nginx. Но скорее всего будут проблемы, потому > что в nginx куча макросов по всему коду для kqueue и edge/level triggering > для epoll. Кто-то хочет этим заняться? :) Я посмотрел внутренности краем глаза. Мне показалось, что можно написать биндинги к абстракции Nginx, который тоже работает на куче решений, но расскрыть доступ к дескрипторам, которые так или иначе там сохраняются, но это только показалось. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From ruz на bestpractical.com Mon Nov 14 13:18:37 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 15 Nov 2011 01:18:37 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111114200421.GA1396@apache.rbscorp.ru> Message-ID: 2011/11/15 Alexandr Gomoliako : > On Mon, Nov 14, 2011 at 10:04 PM, Ivan Petrov wrote: >>> Теоретически это возможно, но только теоретически. >>> Т.е. если реализовать libev event module для nginx, то можно будет >>> запускать AE внутри nginx. >> >> для AE EV не нужен. то есть EV там один из бакендов. > > Ну я подразумевал, что если реализовать libev внутри nginx, > то можно будет взять XS из EV и тогда можно будет сделать > Impl для AE на основе Impl::EV. Это прокомментировал в другом письме. > Предлагаю фанатам АЕ этим и заняться, т.к. я сам скорее > на Erlang перейду, чем буду использовать AnyEvent. Откуда такая нелюбовь к AE? У меня есть один проект, где я его применяю, то есть минимум опыта. Продукт нормально работает в продакшене и хорошо справляется, но практически не обновляется. Скоро опять хочу вернутся в новом проекте к событийной модели общения. Вот и возникают вопросы. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Best regards, Ruslan. From zzz на zzz.org.ua Mon Nov 14 13:19:29 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 14 Nov 2011 23:19:29 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: On Mon, Nov 14, 2011 at 11:11 PM, Ruslan Zakirov wrote: > Я посмотрел внутренности краем глаза. Мне показалось, что можно > написать биндинги к абстракции Nginx, который тоже работает на куче > решений, но расскрыть доступ к дескрипторам, которые так или иначе там > сохраняются, но это только показалось. Можно и этим путем пойти, не меньше работы. From zzz на zzz.org.ua Mon Nov 14 13:50:04 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 14 Nov 2011 23:50:04 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111114200421.GA1396@apache.rbscorp.ru> Message-ID: On Mon, Nov 14, 2011 at 11:18 PM, Ruslan Zakirov wrote: > Откуда такая нелюбовь к AE? У меня есть один проект, где я его > применяю, то есть минимум опыта. Продукт нормально работает в > продакшене и хорошо справляется, но практически не обновляется. Скоро > опять хочу вернутся в новом проекте к событийной модели общения. Вот и > возникают вопросы. Ну я не считаю нормальным усложнять код, вместо упрощения. Такой код очень тяжело поддерживать и развивать. 1. Вочеры привязаны к переменным, заставляет задумываться о том, как и где их хранить, сложность кода увеличивается на порядок. 2. У вочеров нет таймеров, а таймеры отдельно. Причем Марк в доке к libev много рассуждает, о том, что для каждого события нам всегда будет нужен таймер и предлагает штук 5 способов как это реализовать, а в вочер его не встраивает. Еще один порядок сложности, то о чем приходится задумываться все время. 3. condvar вместо event_loop, зачем мне еще об этом задумываться? Главное ж в libev он сделал event_loop, как положено. 4. Handle и остальное. Слишком усложнено, непонятные события, не понятно когда вызываются, on_error, on_eof, on_drain, on_чтопридумается. Работа с буферами тоже не радует. Чтобы такое использовать, надо подробно внутренности изучать. В общем на Си проще, чем на AnyEvent. From zzz на zzz.org.ua Mon Nov 14 14:40:04 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 15 Nov 2011 00:40:04 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111114200421.GA1396@apache.rbscorp.ru> Message-ID: On Mon, Nov 14, 2011 at 11:50 PM, Alexandr Gomoliako wrote: > Ну я не считаю нормальным усложнять код, вместо упрощения. > Такой код очень тяжело поддерживать и развивать. Кстати, кто-то может не читал никогда, о сложности: Ben Moseley, Peter Marks - Out of the Tar Pit http://web.mac.com/ben_moseley/frp/frp.html From i.petro.77.00 на gmail.com Mon Nov 14 23:11:13 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 15 Nov 2011 11:11:13 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111114200421.GA1396@apache.rbscorp.ru> Message-ID: <20111115071112.GB1396@apache.rbscorp.ru> > Это прокомментировал в другом письме. >> Предлагаю фанатам АЕ этим и заняться, т.к. я сам скорее >> на Erlang перейду, чем буду использовать AnyEvent. > Откуда такая нелюбовь к AE? У меня есть один проект, где я его > применяю, то есть минимум опыта. Продукт нормально работает в > продакшене и хорошо справляется, но практически не обновляется. Скоро > опять хочу вернутся в новом проекте к событийной модели общения. Вот и > возникают вопросы. ну вообще событийное программирование на перл это еще тот секс. все время надо следить за утечками памяти и баги в AE всплывают изредка которые Марк фиксить не хочет принципиально, при этом признает что это баги. но впрочем лучше AE и нет ничего в Perl. From mons на rambler-co.ru Tue Nov 15 03:57:57 2011 From: mons на rambler-co.ru (Mons Anderson) Date: Tue, 15 Nov 2011 15:57:57 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: <14B8DBC4-6F45-4AB8-BCF7-838FEA40F06C@rambler-co.ru> Рус, я не хочу ввязываться в разговоры в этом треде, т.к. мне сильно не нравится стиль общения и отношение к EV/AE Александра, но могу сказать следующее: Используя текущее api nginx'а мы можем создать таймер, но не можем создать io watcher. Я говорил с Игорем на эту тему (не в рассылке, а лично) около года назад. Тогда мы отложили этот вопрос т.к. в тот момент реализация доступа к nginx'овому event-loop'у если и могла быть сделана, то не таким способом, который Игорь считал _правильным_ с точки его зрения на архитектуру проекта целиком. Он говорил, что после определенного количества изменений это можно будет сделать. Вполне возможно, что уже можно сделать AE::Impl::Nginx. Я посмотрю на обсуждаемый патч и пообщаюсь с Игорем еще раз. Конкретно обсуждаемую поделку я могу рассматривать именно как интересную поделку. Для задач узкого круга ее может быть и можно успешно использовать. Но пока-что ее автору недостает понимания принципов работы асинхронно-событийных систем. И пока он предлагает нафоркать побольше воркеров и законнектиться из них через DBI я не думаю, что эта поделка может дорасти до уровня фреймворка, как, например, AE. On 13.11.2011, at 16:30, Ruslan Zakirov wrote: > Было бы интересно получить AE приложение, которое работает совместно с > nginx loop'ом и периодически передают друг другу управление. То есть > должно быть неважно использую ли я ngx соединения с чем-то еще или > AE'шные соединения. Не знаю возможно ли такое в принципе поиметь с API > nginx. Что скажете? > > Хочется AE, потому что есть готовые решения для различных задач, > переносимость, работа кода за пределами веб сервера. From yu.pats на gmail.com Tue Nov 15 04:05:09 2011 From: yu.pats на gmail.com (Yury Pats) Date: Tue, 15 Nov 2011 15:05:09 +0300 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: Message-ID: On Sat, Nov 12, 2011 at 16:45, Ruslan Zakirov wrote: > > 2011/11/12 Yury Pats : > > В перспективе nginx-perl сможет заменить mod_perl и apache? > > Врядли. Блокировать это дело нельзя. > > Юра, если ты не испольщуешь что-то кроме ResponeHandler, то нет > никакого смысла испольовать mod_perl. Просто перейти на FCGI. Тогда не > нужен обратный прокси и легко переключиться на другой сервер. Вопрос был скорее праздный, я не собираюсь встраивать в nginx перловый код :) Интересна концепция данного решения в смысле а зачем? -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From zzz на zzz.org.ua Tue Nov 15 05:31:23 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 15 Nov 2011 15:31:23 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <14B8DBC4-6F45-4AB8-BCF7-838FEA40F06C@rambler-co.ru> References: <14B8DBC4-6F45-4AB8-BCF7-838FEA40F06C@rambler-co.ru> Message-ID: On 11/15/11, Mons Anderson wrote: > Но пока-что ее автору недостает понимания принципов работы > асинхронно-событийных систем. Опять? Кому-то другому расскажите о вашем "понимании". Если есть какие-то реальные аргументы против чего-то, пишите. А если нет, ну так не делайте ложных заявлений. From andy на shitov.ru Tue Nov 15 05:34:39 2011 From: andy на shitov.ru (Andrew Shitov) Date: Tue, 15 Nov 2011 14:34:39 +0100 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <14B8DBC4-6F45-4AB8-BCF7-838FEA40F06C@rambler-co.ru> Message-ID: > Если есть какие-то реальные аргументы против чего-то, пишите. > А если нет, ну так не делайте ложных заявлений. Давайте просто все запишемся на санкт-петербургский перл-воркшоп! http://event.perlrussia.org/saintperl3 -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From akzhan.abdulin на gmail.com Tue Nov 15 07:55:28 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Tue, 15 Nov 2011 19:55:28 +0400 Subject: [Moscow.pm] =?utf-8?b?0JHQsNCw0LDQu9GM0YjQuNC1IFhNTDog0L/QvtGC?= =?utf-8?b?0L7QutC+0LLRi9C5INC/0LDRgNGB0LjQvdCz?= In-Reply-To: <20111111205114.GA1275@apache.rbscorp.ru> References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: Кстати, на практике оказалось удобнее такие массивы данных обрабатывать в формате JSON, через libyajl (вернее, через гем yajl-ruby). Быстрее и поддерживает потоковую обработку. 12 ноября 2011 г. 0:51 пользователь Ivan Petrov написал: > > имеется огромная XML на несколько сот гиг. > предствляет из себя по сути большой массив хешей. > > нужно выковырять из нее часть информации. > > вопрос: есть ли что-то готовое на эту тему? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From timonnius на gmail.com Wed Nov 16 00:06:16 2011 From: timonnius на gmail.com (=?KOI8-R?B?9MnNz8bFyiDtwdLLz9c=?=) Date: Wed, 16 Nov 2011 11:06:16 +0300 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= Message-ID: Добрый день Moscow.pm Поделитесь опытом/советом Есть небольшой демон(порядка 500 строк), написанный мной на перле, который крутится на моих серверах. В скоре необходимо будет расширять его функционал. И вот взглянул я на этот код и понял что он классический - "быдлокод" потому решил его переписать, благо время есть, работа работается, а я предоставлен себе. Отсюда несколько вопросов: -Посоветуйте что почитать (ну или просто совет дайте) о том как писать "качественный" код, я по образованию ниразу не программист и, к сожалению с общими подходами программирования не знаком. -По скольку моя главная задача - сделать максимально надежную систему, хотелось бы почитать о том как писать не просто качественный а еще и надежный код. Теперь частные вопросы: -Как вы называете переменные? под конец программы это для меня было оч тяжелой задачей. Хочется чего-то унифицированного, но в голову не приходит. -Среда разработки и система управления версиями: на данный момент я программирую в редакторе vim (я ведь администратор на самом деле). Хотелось бы узнать, есть ли смысл использовать систему управления версиями в моих мастштабах, и если да то какую и с какой стороны подступиться, и что б не отходить от любимого vim-а? да работаю я на ubuntu. Заранее всем благодарен за ответы. С уважением Тимофей. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Wed Nov 16 00:15:03 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Wed, 16 Nov 2011 12:15:03 +0400 Subject: [Moscow.pm] =?koi8-r?b?4sHBwczY28nFIFhNTDog0M/Uz8vP19nKINDB0tPJ?= =?koi8-r?b?zsc=?= In-Reply-To: References: <20111111205114.GA1275@apache.rbscorp.ru> Message-ID: <219831321431303@web151.yandex.ru> Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Wed Nov 16 00:18:16 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 16 Nov 2011 12:18:16 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: Message-ID: <1321431496.2276.9.camel@host> Качественный код это код который: - можно прочитать и понять (а не отдебажить и понять) - можно модифицировать по частям т.е. он разбит на независимые модули - не содержит числовых и строковых значений (всё в конфигах) - покрыт тестами On Ср., 2011-11-16 at 11:06 +0300, Тимофей Марков wrote: > Добрый день Moscow.pm Поделитесь опытом/советом > Есть небольшой демон(порядка 500 строк), написанный мной на перле, > который крутится на моих серверах. В скоре необходимо будет расширять > его функционал. И вот взглянул я на этот код и понял что он > классический - "быдлокод" потому решил его переписать, благо время > есть, работа работается, а я предоставлен себе. Отсюда несколько > вопросов: > -Посоветуйте что почитать (ну или просто совет дайте) о том как писать > "качественный" код, я по образованию ниразу не программист и, к > сожалению с общими подходами программирования не знаком. > -По скольку моя главная задача - сделать максимально надежную систему, > хотелось бы почитать о том как писать не просто качественный а еще и > надежный код. > Теперь частные вопросы: > -Как вы называете переменные? под конец программы это для меня было оч > тяжелой задачей. Хочется чего-то унифицированного, но в голову не > приходит. > -Среда разработки и система управления версиями: на данный момент я > программирую в редакторе vim (я ведь администратор на самом деле). > Хотелось бы узнать, есть ли смысл использовать систему управления > версиями в моих мастштабах, и если да то какую и с какой стороны > подступиться, и что б не отходить от любимого vim-а? > да работаю я на ubuntu. > Заранее всем благодарен за ответы. > С уважением Тимофей. From nordicdyno на yandex.ru Wed Nov 16 00:19:16 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Wed, 16 Nov 2011 12:19:16 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: Message-ID: <226261321431556@web126.yandex.ru> Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Wed Nov 16 00:20:33 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Wed, 16 Nov 2011 12:20:33 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: <226261321431556@web126.yandex.ru> References: <226261321431556@web126.yandex.ru> Message-ID: <227541321431634@web126.yandex.ru> Вложение в формате HTML было извлечено… URL: From andrei.protasovitski на gmail.com Wed Nov 16 00:20:47 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Wed, 16 Nov 2011 09:20:47 +0100 Subject: [Moscow.pm] =?utf-8?b?0L3QtdGB0LrQvtC70YzQutC+INC+0LHRidC40YUg?= =?utf-8?b?0LLQvtC/0YDQvtGB0L7QsiDQvdCw0YfQuNC90LDRjtGJ0LXQs9C+ICI=?= =?utf-8?b?0L/RgNC+0LPRgNCw0LzQvNC40YHRgtCwIg==?= In-Reply-To: <1321431496.2276.9.camel@host> References: <1321431496.2276.9.camel@host> Message-ID: Качественный код -- это тот, который делает то, что от него ждут. Читабельность, поддерживаемость, тесты и т.п. -- опционально. On Nov 16, 2011 9:17 AM, "Alexey Shrub" wrote: > > Качественный код это код который: > - можно прочитать и понять (а не отдебажить и понять) > - можно модифицировать по частям т.е. он разбит на независимые модули > - не содержит числовых и строковых значений (всё в конфигах) > - покрыт тестами > > On Ср., 2011-11-16 at 11:06 +0300, Тимофей Марков wrote: > > Добрый день Moscow.pm Поделитесь опытом/советом > > Есть небольшой демон(порядка 500 строк), написанный мной на перле, > > который крутится на моих серверах. В скоре необходимо будет расширять > > его функционал. И вот взглянул я на этот код и понял что он > > классический - "быдлокод" потому решил его переписать, благо время > > есть, работа работается, а я предоставлен себе. Отсюда несколько > > вопросов: > > -Посоветуйте что почитать (ну или просто совет дайте) о том как писать > > "качественный" код, я по образованию ниразу не программист и, к > > сожалению с общими подходами программирования не знаком. > > -По скольку моя главная задача - сделать максимально надежную систему, > > хотелось бы почитать о том как писать не просто качественный а еще и > > надежный код. > > Теперь частные вопросы: > > -Как вы называете переменные? под конец программы это для меня было оч > > тяжелой задачей. Хочется чего-то унифицированного, но в голову не > > приходит. > > -Среда разработки и система управления версиями: на данный момент я > > программирую в редакторе vim (я ведь администратор на самом деле). > > Хотелось бы узнать, есть ли смысл использовать систему управления > > версиями в моих мастштабах, и если да то какую и с какой стороны > > подступиться, и что б не отходить от любимого vim-а? > > да работаю я на ubuntu. > > Заранее всем благодарен за ответы. > > С уважением Тимофей. > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Wed Nov 16 00:25:08 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 16 Nov 2011 12:25:08 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: <1321431496.2276.9.camel@host> Message-ID: <1321431908.2276.10.camel@host> On Ср., 2011-11-16 at 09:20 +0100, Andrei wrote: > Качественный код -- это тот, который делает то, что от него ждут. > Читабельность, поддерживаемость, тесты и т.п. -- опционально. Вопрос был именно про то что я написал From zhecka на gmail.com Wed Nov 16 00:25:45 2011 From: zhecka на gmail.com (Kaltashkin Eugene) Date: Wed, 16 Nov 2011 12:25:45 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: Message-ID: <4EC37389.9020303@gmail.com> 16.11.2011 12:06, Тимофей Марков пишет: > Добрый день Moscow.pm Поделитесь опытом/советом > Есть небольшой демон(порядка 500 строк), написанный мной на перле, > который крутится на моих серверах. В скоре необходимо будет расширять > его функционал. И вот взглянул я на этот код и понял что он > классический - "быдлокод" потому решил его переписать, благо время > есть, работа работается, а я предоставлен себе. Отсюда несколько вопросов: > -Посоветуйте что почитать (ну или просто совет дайте) о том как писать > "качественный" код, я по образованию ниразу не программист и, к > сожалению с общими подходами программирования не знаком. Что подразумевает под собой "Качественный" код ? Красота восприятия кода в целом ? или качественно надёжный и отказоустойчивый код ? > -По скольку моя главная задача - сделать максимально надежную систему, > хотелось бы почитать о том как писать не просто качественный а еще и > надежный код. Чем проще код, тем надёжнее. Если код вылизан с точки зрения скорости и надёжности, то нет смысла переписывать его, если ты не сваливаешь его в продакшн или на продажу. Если используется множество зависимостей от модулей, то обновлять код потом и искать глюки будет сложнее. Обычно внешние модули лучше использовать для облегчения работы с протоколами разными(это в моём случае). Ибо писать системные утилиты руками обрабатывая последовательности протокольного уровня - ну его нафиг. Перед программированием чего либо лучше сначала подумать об архитектуре и будущем использовании того что Вы пишете и для чего. > Теперь частные вопросы: > -Как вы называете переменные? под конец программы это для меня было оч > тяжелой задачей. Хочется чего-то унифицированного, но в голову не > приходит. Переменные ? согласно её функциональному значению :) IO::Socket -> $socket, Users list -> %users_list. и т.д. Главное чтоб было понятно. > -Среда разработки и система управления версиями: на данный момент я > программирую в редакторе vim (я ведь администратор на самом деле). > Хотелось бы узнать, есть ли смысл использовать систему управления > версиями в моих мастштабах, и если да то какую и с какой стороны > подступиться, и что б не отходить от любимого vim-а? на 500 строк нет смысла использовать версионность если нет активной разработки. Системы версионности не привязаны к редактору, они анализируют изменения в файлах до и после загрузки на сервер. посему любите vim ? любите дальше. > да работаю я на ubuntu. а я на фре ;) > Заранее всем благодарен за ответы. > С уважением Тимофей. > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zahatski на gmail.com Wed Nov 16 00:35:06 2011 From: zahatski на gmail.com (Aliaksandr Zahatski) Date: Wed, 16 Nov 2011 11:35:06 +0300 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: Message-ID: Приветствую, Тимофей ! По поводу написания кода на Perl есть рекомендательные материалы здесь [1] и здесь [2]. Возможно будет полезным взять какой-нибудь из популярных ( а может близкий по назначению ) модулей на cpan и посмотреть исходники. Возможно будет полезна книга [3], но написана она автором с Java опытом, и может окажется не такой полезной. >(я ведь администратор на самом деле) Что мне подсказывает, что уже нет. 1. Программирование на Perl. http://www.ozon.ru/context/detail/id/147137/ 2. Perl Best Practices. http://www.ozon.ru/context/detail/id/3669011/ 3. Рефакторинг. Улучшение существующего кода. http://www.ozon.ru/context/detail/id/4952415/ 16 ноября 2011 г. 11:06 пользователь Тимофей Марков написал: > Добрый день Moscow.pm Поделитесь опытом/советом > Есть небольшой демон(порядка 500 строк), написанный мной на перле, который > крутится на моих серверах. В скоре необходимо будет расширять его > функционал. И вот взглянул я на этот код и понял что он классический - > "быдлокод" потому решил его переписать, благо время есть, работа работается, > а я предоставлен себе. Отсюда несколько вопросов: > -Посоветуйте что почитать (ну или просто совет дайте) о том как писать > "качественный" код, я по образованию ниразу не программист и, к сожалению с > общими подходами программирования не знаком. > -По скольку моя главная задача - сделать максимально надежную систему, > хотелось бы почитать о том как писать не просто качественный а еще и > надежный код. > Теперь частные вопросы: > -Как вы называете переменные? под конец программы это для меня было оч > тяжелой задачей. Хочется чего-то унифицированного, но в голову не приходит. > -Среда разработки и система управления версиями: на данный момент я > программирую в редакторе vim (я ведь администратор на самом деле). Хотелось > бы узнать, есть ли смысл использовать систему управления версиями в моих > мастштабах, и если да то какую и с какой стороны подступиться, и что б не > отходить от любимого vim-а? > да работаю я на ubuntu. > Заранее всем благодарен за ответы. > С уважением Тимофей. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > From paul.vlasov на gmail.com Wed Nov 16 00:52:33 2011 From: paul.vlasov на gmail.com (Pavel Vlasov) Date: Wed, 16 Nov 2011 12:52:33 +0400 Subject: [Moscow.pm] =?utf-8?b?0L3QtdGB0LrQvtC70YzQutC+INC+0LHRidC40YUg?= =?utf-8?b?0LLQvtC/0YDQvtGB0L7QsiDQvdCw0YfQuNC90LDRjtGJ0LXQs9C+ICI=?= =?utf-8?b?0L/RgNC+0LPRgNCw0LzQvNC40YHRgtCwIg==?= In-Reply-To: References: <1321431496.2276.9.camel@host> Message-ID: Посмотри книгу Perl Best Practices автора Damian Conway в ней есть некоторые хорошие советы. (как лучше именовать переменные, объекты, методы и так далее) 2011/11/16 Andrei > Качественный код -- это тот, который делает то, что от него ждут. > Читабельность, поддерживаемость, тесты и т.п. -- опционально. > > On Nov 16, 2011 9:17 AM, "Alexey Shrub" wrote: > > > > Качественный код это код который: > > - можно прочитать и понять (а не отдебажить и понять) > > - можно модифицировать по частям т.е. он разбит на независимые модули > > - не содержит числовых и строковых значений (всё в конфигах) > > - покрыт тестами > > > > On Ср., 2011-11-16 at 11:06 +0300, Тимофей Марков wrote: > > > Добрый день Moscow.pm Поделитесь опытом/советом > > > Есть небольшой демон(порядка 500 строк), написанный мной на перле, > > > который крутится на моих серверах. В скоре необходимо будет расширять > > > его функционал. И вот взглянул я на этот код и понял что он > > > классический - "быдлокод" потому решил его переписать, благо время > > > есть, работа работается, а я предоставлен себе. Отсюда несколько > > > вопросов: > > > -Посоветуйте что почитать (ну или просто совет дайте) о том как писать > > > "качественный" код, я по образованию ниразу не программист и, к > > > сожалению с общими подходами программирования не знаком. > > > -По скольку моя главная задача - сделать максимально надежную систему, > > > хотелось бы почитать о том как писать не просто качественный а еще и > > > надежный код. > > > Теперь частные вопросы: > > > -Как вы называете переменные? под конец программы это для меня было оч > > > тяжелой задачей. Хочется чего-то унифицированного, но в голову не > > > приходит. > > > -Среда разработки и система управления версиями: на данный момент я > > > программирую в редакторе vim (я ведь администратор на самом деле). > > > Хотелось бы узнать, есть ли смысл использовать систему управления > > > версиями в моих мастштабах, и если да то какую и с какой стороны > > > подступиться, и что б не отходить от любимого vim-а? > > > да работаю я на ubuntu. > > > Заранее всем благодарен за ответы. > > > С уважением Тимофей. > > > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Best regards, Pavel Vlasov Please consider the environment before printing this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From akzhan.abdulin на gmail.com Wed Nov 16 01:10:55 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Wed, 16 Nov 2011 13:10:55 +0400 Subject: [Moscow.pm] =?utf-8?b?0JHQsNCw0LDQu9GM0YjQuNC1IFhNTDog0L/QvtGC?= =?utf-8?b?0L7QutC+0LLRi9C5INC/0LDRgNGB0LjQvdCz?= In-Reply-To: <219831321431303@web151.yandex.ru> References: <20111111205114.GA1275@apache.rbscorp.ru> <219831321431303@web151.yandex.ru> Message-ID: Я как раз написал описал одно из возможных решений, когда мы может получить входной поток не только в XML-формате. Чаще всего это возможно. На нет и суда нет. Тогда парсим XML в поточном режиме, конечно. 16 ноября 2011 г. 12:15 пользователь Orlovsky Alexander < nordicdyno на yandex.ru> написал: > На CPAN есть http://search.cpan.org/~lbrocard/JSON-YAJL/ > Только что делать если данные УЖЕ приходят в xml? Не проще ли потоково > этот же xml и обработать? > 15.11.2011, 19:55, "Akzhan Abdulin" : > > Кстати, на практике оказалось удобнее такие массивы данных обрабатывать в > формате JSON, через libyajl (вернее, через гем yajl-ruby). > Быстрее и поддерживает потоковую обработку. > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Wed Nov 16 01:47:15 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Wed, 16 Nov 2011 13:47:15 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: Message-ID: <261671321436835@web110.yandex.ru> 16.11.2011, 12:06, "Тимофей Марков" : > Добрый день Moscow.pm Поделитесь опытом/советомЕсть небольшой демон(порядка 500 строк), написанный мной на перле, который крутится на моих серверах. В скоре необходимо будет расширять его функционал. И вот взглянул я на этот код и понял что он классический - "быдлокод" потому решил его переписать, благо время есть, работа работается, а я предоставлен себе. Отсюда несколько вопросов: > -Посоветуйте что почитать (ну или просто совет дайте) о том как писать "качественный" код, я по образованию ниразу не программист и, к сожалению с общими подходами программирования не знаком. Привет! Качественный код ? это тема почти философская. По крайней мере очень обширная, т.к. существует много точек зрения, различных инженерных практик. Множество из них имеют смысл, но информации очень много и легко не увидеть за деревьями леса. Правильный путь, на мой взляд, ? читать исходники с хорошим кодом (ну и почитывать всякие профильные книги/сайты/блоги когда есть время). И вообще читать чужие исходные тексты (и писать свой код, конечно же) На практике встретив что-то непонятное ? стараться понять, как это "что-то" работает и чем руководствовались авторы, когда писали код. Книги по теме: "Анализ программного кода на примере проектов Open Source" (переводная), "Идеальный код" (в оригинале вообще-то "Beautiful code"). Еще могу порекомендовать "Практику программирования" от Кернигана и Пайка. Гуру рекомендуют писать код на разных языках. Наверное это имеет какой-то смысл, но на практике это не так часто удается осуществлять. Как минимум надо очень хорошо знать свой основной инструментарий (на это уходят годы) и не забывать посматривать по сторонам (чтобы не видеть все проблемы как "гвозди") > -По скольку моя главная задача - сделать максимально надежную систему, хотелось бы почитать о том как писать не просто качественный а еще и надежный код. Чем проще он будет, тем надежнее. Но вот только "простота" реализации ? может быть очень сложной задачей. Хорошая статья про сложность: http://www.rsdn.ru/article/philosophy/Complexity.xml Книга по теме: "Искусство программирования в UNIX". Философия UNIX ? Википедия: http://ru.wikipedia.org/wiki/%D4%E8%EB%EE%F1%EE%F4%E8%FF_UNIX Есть инженерные практики типа TTD & etc, но это скорее "вишенка на торте" в плане обеспечения качества и надежности. > Теперь частные вопросы: > -Как вы называете переменные? под конец программы это для меня было оч тяжелой задачей. Хочется чего-то унифицированного, но в голову не приходит. это нормально, ибо "There are only two hard things in Computer Science: cache invalidation and naming things."(с) :) но вообще нужно практиковаться и со временем будет проще, немного ) книжки по теме Фаулер "Рефакторинг", Макконелл "Совершенный код"  общие советы: давать говорящие названия переменным, не слишком усердствовать в этом (иначе появляются монстры типа my_private_super_puper_variable_with_some_magic_and_unicorns), не бояться коротких имен (i, n, tmp) подробности ? в книжках выше полезные ресурсы: + http://perldoc.perl.org/perlstyle.html + книжка "Perl Best Practices" + perltidy > -Среда разработки и система управления версиями: на данный момент я программирую в редакторе vim (я ведь администратор на самом деле). Хотелось бы узнать, есть ли смысл использовать систему управления версиями в моих масштабах, и если да то какую и с какой стороны подступиться, и что б не отходить от любимого vim-а? Используй git (ему не обязателен центральный репозиторий и это наиболее распространенный "промышленный" стандарт среди DVCS) Потраченное время на изучение git ? хорошая инвестиция и наверняка пригодится на практике. Кроме того, что сохраняется история кода, гораздо удобнее управлять его конфигурацией (по сути удобство поддержки различных версий) vim + vim plugins + CLI- годный набор инструментов для Perl-разработки From worldmind на mail.ru Wed Nov 16 02:15:49 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 16 Nov 2011 14:15:49 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: <261671321436835@web110.yandex.ru> References: <261671321436835@web110.yandex.ru> Message-ID: <1321438549.2276.15.camel@host> On Ср., 2011-11-16 at 13:47 +0400, Orlovsky Alexander wrote: > Правильный путь, на мой взляд, ? читать исходники с хорошим кодом если такие и бывают, то найти их непросто From nordicdyno на yandex.ru Wed Nov 16 02:26:28 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Wed, 16 Nov 2011 14:26:28 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: <1321438549.2276.15.camel@host> References: <261671321436835@web110.yandex.ru> <1321438549.2276.15.camel@host> Message-ID: <324461321439203@web145.yandex.ru> сейчас все можно найти, было б желание все почти opensource и есть несколько web-поисковиков с помощью которых можно обращаться к коллективному разуму: вот для Perl нашел с пол-тычка http://stackoverflow.com/questions/5173650/which-cpan-modules-are-the-best-to-read-and-study там кстати интересный граф плодовитости и востребованности cpan-девелоперов: http://cpan-explorer.org/2009/07/28/version-of-the-authors-graph-for-yapceu/ P.S. хороший код ? идеальный код 16.11.2011, 14:15, "Alexey Shrub" : > On Ср., 2011-11-16 at 13:47 +0400, Orlovsky Alexander wrote: > >>  Правильный путь, на мой взляд, ? читать исходники с хорошим кодом > > если такие и бывают, то найти их непросто > From timonnius на gmail.com Wed Nov 16 03:06:19 2011 From: timonnius на gmail.com (=?KOI8-R?B?9MnNz8bFyiDtwdLLz9c=?=) Date: Wed, 16 Nov 2011 14:06:19 +0300 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: Message-ID: Спасибо за развернутые ответы. Пошел на амазон покупать книги. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Wed Nov 16 03:45:00 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Wed, 16 Nov 2011 15:45:00 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: Message-ID: <379091321443900@web52.yandex.ru> Вложение в формате HTML было извлечено… URL: From mi на ya.ru Wed Nov 16 04:00:40 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 16:00:40 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICLQ0s/H0sHNzcnT1MEi?= In-Reply-To: References: Message-ID: <359031321444840@web16.yandex.ru> Вложение в формате HTML было извлечено… URL: From akovbovich на gmail.com Wed Nov 16 04:04:05 2011 From: akovbovich на gmail.com (=?UTF-8?B?0JDQvdC00YDQtdC5INCfLiDQmtC+0LLQsdC+0LLQuNGH?=) Date: Wed, 16 Nov 2011 16:04:05 +0400 Subject: [Moscow.pm] =?utf-8?b?0L3QtdGB0LrQvtC70YzQutC+INC+0LHRidC40YUg?= =?utf-8?b?0LLQvtC/0YDQvtGB0L7QsiDQvdCw0YfQuNC90LDRjtGJ0LXQs9C+ICI=?= =?utf-8?b?0L/RgNC+0LPRgNCw0LzQvNC40YHRgtCwIg==?= In-Reply-To: <359031321444840@web16.yandex.ru> References: <359031321444840@web16.yandex.ru> Message-ID: По-моему, отличные советы! 16 ноября 2011 г. 16:00 пользователь Nikolay Mishin написал: > Пропусти свой демон через > http://perlcritic.com/ > по brutal и все поймешь > > и сделай так, чтобы не одного предупреждения не вылетало > ,а лучше еще начинать писать код > http://petdance.com/perl/use-prove-lt.pdf > > чтобы писать сначала тесты, а потом код, но, вообще говоря это достаточно > сложно научиться писать > нормальные тесты > почитай тесты к модулю Test::Files, а лучше распечатай, лучшего тестового > кода я не видел > и посмотри модули > https://metacpan.org/author/DCONWAY > и > https://metacpan.org/author/INGY > > ну и приезжай в питер на SaintPerl > 16.11.2011, 15:06, "Тимофей Марков" : > > Спасибо за развернутые ответы. Пошел на амазон покупать книги. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > From zzz на zzz.org.ua Wed Nov 16 06:24:46 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 16 Nov 2011 16:24:46 +0200 Subject: [Moscow.pm] non-blocking mysql & pg Message-ID: Вчера был первый стейбл проекта agentzh'а, я совсем забыл про него: http://openresty.org/ Это nginx, который включает в себя много разных модулей, в том числе для асинхронного доступа к mysql и pg по http. Не уверен на счет 100% асинхронности, т.к. помню ngx_dirzzle (mysql) начинался, как блокирующийся, но по-моему где-то указано, что уже неблокирующий. В общем глянул, там есть возможность получать запрос из тела и отдавать ответ в JSON. Так что, если кому-то такое нужно, то можно пробовать. From mi на ya.ru Wed Nov 16 07:27:43 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 19:27:43 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= Message-ID: <591321457264@web29.yandex.ru> Hi Moscow-pm, perl v5.8.4 Не правда ли получается кривовато, что при my $EMPTY = undef; our ( $start_date, $end_date ) = ( $EMPTY, $EMPTY ); #считываем входные параметры if ( ( $start_date ne '' ) && ( $end_date ne '' ) ) { my $RGX_DATE_FULL = qr{.*(\d{2}-\w{3}-\d{4}).*}smo; } то возможен Use of uninitialized value in string ne at Search.pm line 227. и приходиться инициализировать строки пробелами my $SPACE = q{ }; our ( $start_date, $end_date ) = ( $SPACE, $SPACE ); if ( ( $start_date ne ' ' ) && ( $end_date ne ' ' ) ) { my $RGX_DATE_FULL = qr{.*(\d{2}-\w{3}-\d{4}).*}smo; } из В принципе я уже все решил, просто крик души, видимо нужно больше писать тестов и тогда меньше будет вылетать неожиданных ошибок все-таки как удобно в pl-sql обрабатывать ошибки: DECLARE pe_ratio NUMBER(3,1); BEGIN SELECT price / earnings INTO pe_ratio FROM stocks WHERE symbol = 'XYZ'; -- might cause division-by-zero error INSERT INTO stats (symbol, ratio) VALUES ('XYZ', pe_ratio); COMMIT; EXCEPTION -- exception handlers begin WHEN ZERO_DIVIDE THEN -- handles 'division by zero' error INSERT INTO stats (symbol, ratio) VALUES ('XYZ', NULL); COMMIT; ... WHEN OTHERS THEN -- handles all other errors ROLLBACK; END; -- exception handlers and block end here -- здесь я тоже понимаю, что нужно use Try::Tiny; # handle errors with a catch handler try { if ( ( $start_date ne ' ' ) && ( $end_date ne ' ' ) ) { my $RGX_DATE_FULL = qr{.*(\d{2}-\w{3}-\d{4}).*}smo; } } catch { warn "caught error: $_ \$start_date:*$start_date* \$end_date:*$end_date*" ; # not $@ }; но какая лень берет покрывать весь модуль такими штуками, утешает лишь то, что это приходиться делать только с местами, где находится ошибка (а их ограниченное количество) Nikolay Mishin From sergiy.borodych на gmail.com Wed Nov 16 07:32:11 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Wed, 16 Nov 2011 17:32:11 +0200 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: <591321457264@web29.yandex.ru> References: <591321457264@web29.yandex.ru> Message-ID: 2011/11/16 Nikolay Mishin : > Hi Moscow-pm, > perl v5.8.4 > Не правда ли получается кривовато, что при > my $EMPTY = undef; > our ( $start_date, $end_date ) = ( $EMPTY, $EMPTY ); > #считываем входные параметры > if ( ( $start_date ne '' ) && ( $end_date ne '' ) ) { >        my $RGX_DATE_FULL = qr{.*(\d{2}-\w{3}-\d{4}).*}smo; > } > вот здесь я не понял а почему не my $EMPTY = ''; ? P.S. >perl v5.8.4 IMHO плохо, очень плохо -- Sergiy Borodych From evdokimov.denis на gmail.com Wed Nov 16 07:33:30 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 16 Nov 2011 18:33:30 +0300 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <591321457264@web29.yandex.ru> References: <591321457264@web29.yandex.ru> Message-ID: или так? our ( $start_date, $end_date ) = ( "", "" ); ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Wed Nov 16 07:36:43 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 16 Nov 2011 18:36:43 +0300 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> Message-ID: или так if ( $start_date && $end_date ) { } ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mi на ya.ru Wed Nov 16 07:39:40 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 19:39:40 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> Message-ID: <6111321457980@web6.yandex.ru> потому что это не проходит через perlcritic ^Quotes used with a string containing no non-whitespace characters ^Useless interpolation of literal string ^Quotes used with a string containing no non-whitespace characters ^Useless interpolation of literal string $EMPTY = q{}; $message = $EMPTY; #best 16.11.2011, 19:33, "Denis Evdokimov" : > или так? > our ( $start_date, $end_date ) = ( "", "" ); > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From sergiy.borodych на gmail.com Wed Nov 16 07:40:25 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Wed, 16 Nov 2011 17:40:25 +0200 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> Message-ID: 2011/11/16 Denis Evdokimov : > или так? > our ( $start_date, $end_date ) = ( "", "" ); > тогда уж лучше так ;) our ( $start_date, $end_date ) = ( '', '' ); хотя в данном случае не сильно существенно -- Sergiy Borodych From mi на ya.ru Wed Nov 16 07:43:37 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 19:43:37 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> Message-ID: <6651321458217@web27.yandex.ru> да, так лучше, чем #if ( ( $start_date ne '' ) && ( $end_date ne '' ) ) { } 16.11.2011, 19:36, "Denis Evdokimov" : > или так > if ( $start_date && $end_date ) { > > } > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From evdokimov.denis на gmail.com Wed Nov 16 07:49:01 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 16 Nov 2011 18:49:01 +0300 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> Message-ID: > тогда уж лучше так ;) > our ( $start_date, $end_date ) = ( '', '' ); > > хотя в данном случае не сильно существенно > > Да, с точки зрения интерпретатора лучше, но с точки зрения глаз двойные кавычки лучше. Как глазам отличить ( '', '' ); от ( ", " ); + Если есть тест, где видно хоть какой-то прирост скорости от одинарных кавычек, то... я хочу его увидеть. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Wed Nov 16 07:59:05 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 16 Nov 2011 17:59:05 +0200 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 5:49 PM, Denis Evdokimov wrote: > но с точки зрения глаз двойные > кавычки лучше. но их дольше писать :) > + Если есть тест, где видно хоть какой-то прирост скорости от одинарных > кавычек, то... я хочу его увидеть. Его не можеть быть, когда код выполняется, все кавычки уже давно распарсены. From zzz на zzz.org.ua Wed Nov 16 08:03:01 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 16 Nov 2011 18:03:01 +0200 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <6111321457980@web6.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 5:39 PM, Nikolay Mishin wrote: >  $EMPTY = q{}; >  $message = $EMPTY;      #best И вот это perlcritic приводит к такому корявому коду? :) From mi на ya.ru Wed Nov 16 08:16:44 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 20:16:44 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> Message-ID: <19611321460204@web3.yandex.ru> да, но все равно проблема у меня в том, что в perl v5.8.4 $perl -e 'use warnings;my ($a,$b);$c=$a.$b;print $c' Use of uninitialized value in concatenation (.) or string at -e line 1. Use of uninitialized value in concatenation (.) or string at -e line 1. 16.11.2011, 20:03, "Alexandr Gomoliako" : > On Wed, Nov 16, 2011 at 5:39 PM, Nikolay Mishin wrote: > >>   $EMPTY = q{}; >>   $message = $EMPTY;      #best > > И вот это perlcritic приводит к такому корявому коду? :) > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From zzz на zzz.org.ua Wed Nov 16 08:18:05 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 16 Nov 2011 18:18:05 +0200 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <19611321460204@web3.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 6:16 PM, Nikolay Mishin wrote: > да, но все равно проблема у меня в том, что в perl v5.8.4 > $perl -e 'use warnings;my ($a,$b);$c=$a.$b;print $c' > Use of uninitialized value in concatenation (.) or string at -e line 1. > Use of uninitialized value in concatenation (.) or string at -e line 1. + no warnings 'uninitialized'; From evdokimov.denis на gmail.com Wed Nov 16 08:24:46 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 16 Nov 2011 19:24:46 +0300 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> Message-ID: Стоит ещё раз перечитать всё, что писалось в http://mail.pm.org/pipermail/moscow-pm/2011-October/thread.html#10865 16 ноября 2011 г. 20:18 пользователь Alexandr Gomoliako написал: > On Wed, Nov 16, 2011 at 6:16 PM, Nikolay Mishin wrote: > > да, но все равно проблема у меня в том, что в perl v5.8.4 > > $perl -e 'use warnings;my ($a,$b);$c=$a.$b;print $c' > > Use of uninitialized value in concatenation (.) or string at -e line 1. > > Use of uninitialized value in concatenation (.) or string at -e line 1. > > + no warnings 'uninitialized'; > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mi на ya.ru Wed Nov 16 08:27:33 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 20:27:33 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> Message-ID: <21441321460853@web31.yandex.ru> Спасибо Денис, но спасение, видимо, вот в чем: perl -e ' use warnings; my ( $a, $b, $c ); if ( ( defined $a ) and ( defined $b ) ) { my $c = $a . $b; } if ( defined $c ) { print $c; } ' p.s. http://stackoverflow.com/questions/6691874/how-to-avoid-uninitialized-value 16.11.2011, 20:24, "Denis Evdokimov" : > Стоит ещё раз перечитать всё, что писалось в > http://mail.pm.org/pipermail/moscow-pm/2011-October/thread.html#10865 > > 16 ноября 2011 г. 20:18 пользователь Alexandr Gomoliako написал: >> On Wed, Nov 16, 2011 at 6:16 PM, Nikolay Mishin wrote: >>> да, но все равно проблема у меня в том, что в perl v5.8.4 >>> $perl -e 'use warnings;my ($a,$b);$c=$a.$b;print $c' >>> Use of uninitialized value in concatenation (.) or string at -e line 1. >>> Use of uninitialized value in concatenation (.) or string at -e line 1. >> >> + no warnings 'uninitialized'; >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From andy на shitov.ru Wed Nov 16 08:31:07 2011 From: andy на shitov.ru (Andrew Shitov) Date: Wed, 16 Nov 2011 17:31:07 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: <21441321460853@web31.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: Ну тут все надо переделать :-) Но начать надо с того, чтобы убрать второй my. > use warnings; > my ( $a, $b, $c ); > if ( ( defined $a ) and ( defined $b ) ) { >    my $c = $a . $b; > } > if ( defined $c ) { >    print $c; > } -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From zzz на zzz.org.ua Wed Nov 16 08:32:26 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 16 Nov 2011 18:32:26 +0200 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <21441321460853@web31.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 6:27 PM, Nikolay Mishin wrote: > Спасибо Денис, но спасение, видимо, вот в чем: > > perl -e ' > use warnings; > my ( $a, $b, $c ); > if ( ( defined $a ) and ( defined $b ) ) { >    my $c = $a . $b; > } > if ( defined $c ) { >    print $c; > } > ' А без uninitialized этот код бы выглядел: my ($a, $b, $c); { my $c = $a.$b; } print $c; From mi на ya.ru Wed Nov 16 08:53:40 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 20:53:40 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <19611321460204@web3.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> Message-ID: <31831321462420@web11.yandex.ru> все решилось, написанием такого кода use 5.8.4; use strict; use warnings; my ( $start, $end, $sysid, $ver, $tradetype ); ( $start, $end ) = ( 1, 10 ); my $test = make_string( $start, $end, $sysid, $ver, $tradetype ); print $test; sub make_string { my @input = @_; my @input_init = map { $_ || '' } @input; my $rezult = join q{,}, @input_init; return $rezult . "\n"; } 16.11.2011, 20:16, "Nikolay Mishin" : > да, но все равно проблема у меня в том, что в perl v5.8.4 > $perl -e 'use warnings;my ($a,$b);$c=$a.$b;print $c' > Use of uninitialized value in concatenation (.) or string at -e line 1. > Use of uninitialized value in concatenation (.) or string at -e line 1. > > 16.11.2011, 20:03, "Alexandr Gomoliako" : > >>  On Wed, Nov 16, 2011 at 5:39 PM, Nikolay Mishin wrote: >>>    $EMPTY = q{}; >>>    $message = $EMPTY;      #best >>  И вот это perlcritic приводит к такому корявому коду? :) >> >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin -- Nikolay Mishin From evdokimov.denis на gmail.com Wed Nov 16 08:56:18 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 16 Nov 2011 19:56:18 +0300 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <31831321462420@web11.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <31831321462420@web11.yandex.ru> Message-ID: make_string(0, 0, 0, 0, 0, ) 16 ноября 2011 г. 20:53 пользователь Nikolay Mishin написал: > все решилось, написанием такого кода > > use 5.8.4; > use strict; > use warnings; > my ( $start, $end, $sysid, $ver, $tradetype ); > ( $start, $end ) = ( 1, 10 ); > my $test = make_string( $start, $end, $sysid, $ver, $tradetype ); > print $test; > > sub make_string { > my @input = @_; > my @input_init = map { $_ || '' } @input; > my $rezult = join q{,}, @input_init; > return $rezult . "\n"; > } > > > 16.11.2011, 20:16, "Nikolay Mishin" : > > да, но все равно проблема у меня в том, что в perl v5.8.4 > > $perl -e 'use warnings;my ($a,$b);$c=$a.$b;print $c' > > Use of uninitialized value in concatenation (.) or string at -e line 1. > > Use of uninitialized value in concatenation (.) or string at -e line 1. > > > > 16.11.2011, 20:03, "Alexandr Gomoliako" : > > > >> On Wed, Nov 16, 2011 at 5:39 PM, Nikolay Mishin wrote: > >>> $EMPTY = q{}; > >>> $message = $EMPTY; #best > >> И вот это perlcritic приводит к такому корявому коду? :) > >> > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > > > > -- > > Nikolay Mishin > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From yu.pats на gmail.com Wed Nov 16 08:56:02 2011 From: yu.pats на gmail.com (Yury Pats) Date: Wed, 16 Nov 2011 19:56:02 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: Есть золотое правило программирования на перл. Если Perl Critic ругается на ваш код, то выкиньте Perl Critic. А на счет одинарных кавычек, то да, они "быстрее". On Wed, Nov 16, 2011 at 19:32, Alexandr Gomoliako wrote: > On Wed, Nov 16, 2011 at 6:27 PM, Nikolay Mishin wrote: >> Спасибо Денис, но спасение, видимо, вот в чем: >> >> perl -e ' >> use warnings; >> my ( $a, $b, $c ); >> if ( ( defined $a ) and ( defined $b ) ) { >>    my $c = $a . $b; >> } >> if ( defined $c ) { >>    print $c; >> } >> ' > > А без uninitialized этот код бы выглядел: > > my ($a, $b, $c); > {  my $c = $a.$b;  } > print $c; > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From mi на ya.ru Wed Nov 16 09:02:55 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 21:02:55 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <31831321462420@web11.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <31831321462420@web11.yandex.ru> Message-ID: <33731321462975@web33.yandex.ru> а, еще лучше все это превратить в тест cat 18_test_undef.t use 5.8.4; use strict; use warnings; use Test::More; my ( $start, $end, $sysid, $ver, $tradetype ); ( $start, $end ) = ( 1, 10 ); my $test = make_string( $start, $end, $sysid, $ver, $tradetype ); is( $test, "1,10,,,\n", "make index string" ); sub make_string { my @input = @_; my @input_init = map { $_ || '' } @input; my $rezult = join q{,}, @input_init; return $rezult . "\n"; } 16.11.2011, 20:53, "Nikolay Mishin" : > все решилось, написанием такого кода > > use 5.8.4; > use strict; > use warnings; > my ( $start, $end, $sysid, $ver, $tradetype ); > ( $start, $end ) = ( 1, 10 ); > my $test = make_string( $start, $end, $sysid, $ver, $tradetype ); > print $test; > > sub make_string { >     my @input      = @_; >     my @input_init = map { $_ || '' } @input; >     my $rezult     = join q{,}, @input_init; >     return $rezult . "\n"; > } > > 16.11.2011, 20:16, "Nikolay Mishin" : > >>  да, но все равно проблема у меня в том, что в perl v5.8.4 >>  $perl -e 'use warnings;my ($a,$b);$c=$a.$b;print $c' >>  Use of uninitialized value in concatenation (.) or string at -e line 1. >>  Use of uninitialized value in concatenation (.) or string at -e line 1. >> >>  16.11.2011, 20:03, "Alexandr Gomoliako" : >>>   On Wed, Nov 16, 2011 at 5:39 PM, Nikolay Mishin wrote: >>>>     $EMPTY = q{}; >>>>     $message = $EMPTY;      #best >>>   И вот это perlcritic приводит к такому корявому коду? :) >>> >>>   -- >>>   Moscow.pm mailing list >>>   moscow-pm на pm.org | http://moscow.pm.org >>  -- >>  Nikolay Mishin > > -- > Nikolay Mishin -- Nikolay Mishin From evdokimov.denis на gmail.com Wed Nov 16 09:06:06 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 16 Nov 2011 20:06:06 +0300 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <33731321462975@web33.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <31831321462420@web11.yandex.ru> <33731321462975@web33.yandex.ru> Message-ID: Мне нравится такой вариант: my ( $a, $b, $c ); defined $a or $a=""; defined $b or $b=""; $c=$a.$b; print $c; А ещё больше мне нравится вариант $a or die; $b or die; $c=$a.$b; print $c; P.S. Не стоит использовать $a и $b нигде, кроме sort ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Wed Nov 16 09:06:11 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 16 Nov 2011 19:06:11 +0200 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 6:56 PM, Yury Pats wrote: > золотое правило программирования на перл ... > выкиньте Perl Critic. From mi на ya.ru Wed Nov 16 09:08:19 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 21:08:19 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <31831321462420@web11.yandex.ru> Message-ID: <36811321463299@web31.yandex.ru> Спасибо Денис, еще чуть чуть поменяем , use 5.8.4; use strict; use warnings; use Test::More; my ( $start, $end, $sysid, $ver, $tradetype ); ( $start, $end ) = ( 1, 10 ); my $test = make_string( $start, $end, $sysid, $ver, $tradetype ); is( $test, "1,10,,,\n", "make index string" ); is( make_string( 0, 0, 0, 0, 0, ), "0,0,0,0,0\n", "test number" ); sub make_string { my @input = @_; my @input_init = map { !defined($_) ? '' : $_ } @input; my $rezult = join q{,}, @input_init; return $rezult . "\n"; } 16.11.2011, 20:56, "Denis Evdokimov" : > make_string(0, 0, 0, 0, 0, ) > > 16 ноября 2011 г. 20:53 пользователь Nikolay Mishin написал: >> все решилось, написанием такого кода >> >> use 5.8.4; >> use strict; >> use warnings; >> my ( $start, $end, $sysid, $ver, $tradetype ); >> ( $start, $end ) = ( 1, 10 ); >> my $test = make_string( $start, $end, $sysid, $ver, $tradetype ); >> print $test; >> >> sub make_string { >>    my @input      = @_; >>    my @input_init = map { $_ || '' } @input; >>    my $rezult     = join q{,}, @input_init; >>    return $rezult . "\n"; >> } >> >> 16.11.2011, 20:16, "Nikolay Mishin" : >>> да, но все равно проблема у меня в том, что в perl v5.8.4 >>> $perl -e 'use warnings;my ($a,$b);$c=$a.$b;print $c' >>> Use of uninitialized value in concatenation (.) or string at -e line 1. >>> Use of uninitialized value in concatenation (.) or string at -e line 1. >>> >>> 16.11.2011, 20:03, "Alexandr Gomoliako" : >>> >>>>  On Wed, Nov 16, 2011 at 5:39 PM, Nikolay Mishin wrote: >>>>>    $EMPTY = q{}; >>>>>    $message = $EMPTY;      #best >>>>  И вот это perlcritic приводит к такому корявому коду? :) >>>> >>>>  -- >>>>  Moscow.pm mailing list >>>>  moscow-pm на pm.org | http://moscow.pm.org >>> >>> -- >>> Nikolay Mishin >> >> -- >> Nikolay Mishin >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From sergiy.borodych на gmail.com Wed Nov 16 09:11:27 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Wed, 16 Nov 2011 19:11:27 +0200 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 2011/11/16 Alexandr Gomoliako : > On Wed, Nov 16, 2011 at 6:56 PM, Yury Pats wrote: > >> золотое правило программирования на перл > ... >> выкиньте Perl Critic. Категорически не согласен :) Возможно когда опыт в Perl 5+ или даже 10+ - то все уже на автомате (но даже и тогда можно "что-то иногда" упускать). Но для не "полных гуру" самое то. Единственно, что поднастроить под себя (и/или команду). -- Sergiy Borodych From mi на ya.ru Wed Nov 16 09:14:53 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 16 Nov 2011 21:14:53 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: <40111321463693@web10.yandex.ru> я понял Alexandr Gomoliako как раз за, это была ирония на основе предыдущего выступления 16.11.2011, 21:11, "Sergiy Borodych" : > 2011/11/16 Alexandr Gomoliako : > >>  On Wed, Nov 16, 2011 at 6:56 PM, Yury Pats wrote: >>>  золотое правило программирования на перл >>  ... >>>  выкиньте Perl Critic. > > Категорически не согласен :) > Возможно когда опыт в Perl 5+ или даже 10+ - то все уже на автомате >  (но даже и тогда можно "что-то иногда" упускать). > Но для не "полных гуру" самое то. > Единственно, что поднастроить под себя (и/или команду). > > -- > Sergiy Borodych > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From yu.pats на gmail.com Wed Nov 16 09:16:28 2011 From: yu.pats на gmail.com (Yury Pats) Date: Wed, 16 Nov 2011 20:16:28 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 20:11, Sergiy Borodych wrote: > 2011/11/16 Alexandr Gomoliako : >> On Wed, Nov 16, 2011 at 6:56 PM, Yury Pats wrote: >> >>> золотое правило программирования на перл >> ... >>> выкиньте Perl Critic. > > Категорически не согласен :) > Возможно когда опыт в Perl 5+ или даже 10+ - то все уже на автомате >  (но даже и тогда можно "что-то иногда" упускать). > Но для не "полных гуру" самое то. > Единственно, что поднастроить под себя (и/или команду). > Данный тред как бы подтверждает, что код подстраивается(!) под PerlCritic. Толку с такого подхода ни больше ни меньше. > -- > Sergiy Borodych > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From sergiy.borodych на gmail.com Wed Nov 16 09:18:47 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Wed, 16 Nov 2011 19:18:47 +0200 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 2011/11/16 Sergiy Borodych : > 2011/11/16 Alexandr Gomoliako : >> On Wed, Nov 16, 2011 at 6:56 PM, Yury Pats wrote: >> >>> золотое правило программирования на перл >> ... >>> выкиньте Perl Critic. > > Категорически не согласен :) > Возможно когда опыт в Perl 5+ или даже 10+ - то все уже на автомате >  (но даже и тогда можно "что-то иногда" упускать). > Но для не "полных гуру" самое то. > Единственно, что поднастроить под себя (и/или команду). P.S. Кстати, кому интересно, было недавно интервью с Jeffrey Thalhammer http://twit.tv/show/floss-weekly/189 We talk about to Jeffrey Thalhammer about his project, PerlCritic, which looks at Perl Code and gives suggestions about how to make it better. -- Sergiy Borodych From zzz на zzz.org.ua Wed Nov 16 09:18:55 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 16 Nov 2011 19:18:55 +0200 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <40111321463693@web10.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <40111321463693@web10.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 7:14 PM, Nikolay Mishin wrote: > я понял Alexandr Gomoliako как раз за, это была ирония на основе предыдущего выступления Я за свободу выбора. From evdokimov.denis на gmail.com Wed Nov 16 09:26:23 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 16 Nov 2011 20:26:23 +0300 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <40111321463693@web10.yandex.ru> Message-ID: Если хочется make_string То может лучше так? sub make_string { no warnings; return join(",", @_) . "\n"; } ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Wed Nov 16 09:57:54 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Wed, 16 Nov 2011 21:57:54 +0400 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: В больших командах лучше наоборот. 16 ноября 2011 г. 20:56 пользователь Yury Pats написал: > Есть золотое правило программирования на перл. > Если Perl Critic ругается на ваш код, то выкиньте Perl Critic. > > А на счет одинарных кавычек, то да, они "быстрее". > > On Wed, Nov 16, 2011 at 19:32, Alexandr Gomoliako wrote: > > On Wed, Nov 16, 2011 at 6:27 PM, Nikolay Mishin wrote: > >> Спасибо Денис, но спасение, видимо, вот в чем: > >> > >> perl -e ' > >> use warnings; > >> my ( $a, $b, $c ); > >> if ( ( defined $a ) and ( defined $b ) ) { > >> my $c = $a . $b; > >> } > >> if ( defined $c ) { > >> print $c; > >> } > >> ' > > > > А без uninitialized этот код бы выглядел: > > > > my ($a, $b, $c); > > { my $c = $a.$b; } > > print $c; > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > -- > WBR, Yury Pats > skype: yuripats > cellular: +375 (29) 5870723 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From yu.pats на gmail.com Wed Nov 16 11:39:13 2011 From: yu.pats на gmail.com (Yury Pats) Date: Wed, 16 Nov 2011 22:39:13 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 20:57, Akzhan Abdulin wrote: > В больших командах лучше наоборот. > В больших командах есть документ code style и процесс code review, что гораздо эффективнее. > 16 ноября 2011 г. 20:56 пользователь Yury Pats написал: >> >> Есть золотое правило программирования на перл. >> Если Perl Critic ругается на ваш код, то выкиньте Perl Critic. >> >> А на счет одинарных кавычек, то да, они "быстрее". >> >> On Wed, Nov 16, 2011 at 19:32, Alexandr Gomoliako wrote: >> > On Wed, Nov 16, 2011 at 6:27 PM, Nikolay Mishin wrote: >> >> Спасибо Денис, но спасение, видимо, вот в чем: >> >> >> >> perl -e ' >> >> use warnings; >> >> my ( $a, $b, $c ); >> >> if ( ( defined $a ) and ( defined $b ) ) { >> >>    my $c = $a . $b; >> >> } >> >> if ( defined $c ) { >> >>    print $c; >> >> } >> >> ' >> > >> > А без uninitialized этот код бы выглядел: >> > >> > my ($a, $b, $c); >> > {  my $c = $a.$b;  } >> > print $c; >> > -- >> > Moscow.pm mailing list >> > moscow-pm на pm.org | http://moscow.pm.org >> > >> >> >> >> -- >> WBR, Yury Pats >> skype: yuripats >> cellular: +375 (29) 5870723 >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From akzhan.abdulin на gmail.com Wed Nov 16 12:34:47 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Thu, 17 Nov 2011 00:34:47 +0400 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: Code style не отменяет правильно настроенного Perl Critic. Это раз. Code review вообще полезен, но не всегда идёт вовремя, это два. 16 ноября 2011 г. 23:39 пользователь Yury Pats написал: > On Wed, Nov 16, 2011 at 20:57, Akzhan Abdulin > wrote: > > В больших командах лучше наоборот. > > > В больших командах есть документ code style и процесс code review, что > гораздо эффективнее. > > > 16 ноября 2011 г. 20:56 пользователь Yury Pats > написал: > >> > >> Есть золотое правило программирования на перл. > >> Если Perl Critic ругается на ваш код, то выкиньте Perl Critic. > >> > >> А на счет одинарных кавычек, то да, они "быстрее". > >> > >> On Wed, Nov 16, 2011 at 19:32, Alexandr Gomoliako > wrote: > >> > On Wed, Nov 16, 2011 at 6:27 PM, Nikolay Mishin wrote: > >> >> Спасибо Денис, но спасение, видимо, вот в чем: > >> >> > >> >> perl -e ' > >> >> use warnings; > >> >> my ( $a, $b, $c ); > >> >> if ( ( defined $a ) and ( defined $b ) ) { > >> >> my $c = $a . $b; > >> >> } > >> >> if ( defined $c ) { > >> >> print $c; > >> >> } > >> >> ' > >> > > >> > А без uninitialized этот код бы выглядел: > >> > > >> > my ($a, $b, $c); > >> > { my $c = $a.$b; } > >> > print $c; > >> > -- > >> > Moscow.pm mailing list > >> > moscow-pm на pm.org | http://moscow.pm.org > >> > > >> > >> > >> > >> -- > >> WBR, Yury Pats > >> skype: yuripats > >> cellular: +375 (29) 5870723 > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > > > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > > > -- > WBR, Yury Pats > skype: yuripats > cellular: +375 (29) 5870723 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andrei.protasovitski на gmail.com Wed Nov 16 13:05:33 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Wed, 16 Nov 2011 22:05:33 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 16 ноября 2011 г. 20:39 пользователь Yury Pats написал: > On Wed, Nov 16, 2011 at 20:57, Akzhan Abdulin > wrote: > > В больших командах лучше наоборот. > > > В больших командах есть документ code style и процесс code review, что > гораздо эффективнее. > Нету ни того, ни другого. -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andy на shitov.ru Wed Nov 16 13:13:35 2011 From: andy на shitov.ru (Andrew Shitov) Date: Wed, 16 Nov 2011 22:13:35 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: >> В больших командах есть документ code style и процесс code review, что >> гораздо эффективнее. > > Нету ни того, ни другого. Плохая компания. -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From andrei.protasovitski на gmail.com Wed Nov 16 13:19:51 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Wed, 16 Nov 2011 22:19:51 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 16 ноября 2011 г. 22:13 пользователь Andrew Shitov написал: > >> В больших командах есть документ code style и процесс code review, что > >> гораздо эффективнее. > > > > Нету ни того, ни другого. > > Плохая компания. > Кому как. :-P -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From yu.pats на gmail.com Wed Nov 16 13:24:23 2011 From: yu.pats на gmail.com (Yury Pats) Date: Thu, 17 Nov 2011 00:24:23 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Thu, Nov 17, 2011 at 00:05, Andrei wrote: > 16 ноября 2011 г. 20:39 пользователь Yury Pats написал: >> >> On Wed, Nov 16, 2011 at 20:57, Akzhan Abdulin >> wrote: >> > В больших командах лучше наоборот. >> > >> В больших командах есть документ code style и процесс code review, что >> гораздо эффективнее. > > Нету ни того, ни другого. > Вообще большие команды перл разработчиков это миф. > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From zzz на zzz.org.ua Wed Nov 16 13:28:28 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 16 Nov 2011 23:28:28 +0200 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Wed, Nov 16, 2011 at 11:24 PM, Yury Pats wrote: > Вообще большие команды перл разработчиков это миф. Для перла больше 2-х уже большая команда :) From andrei.protasovitski на gmail.com Wed Nov 16 13:30:35 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Wed, 16 Nov 2011 22:30:35 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 16 ноября 2011 г. 22:24 пользователь Yury Pats написал: > On Thu, Nov 17, 2011 at 00:05, Andrei > wrote: > > 16 ноября 2011 г. 20:39 пользователь Yury Pats > написал: > >> > >> On Wed, Nov 16, 2011 at 20:57, Akzhan Abdulin > > >> wrote: > >> > В больших командах лучше наоборот. > >> > > >> В больших командах есть документ code style и процесс code review, что > >> гораздо эффективнее. > > > > Нету ни того, ни другого. > > > Вообще большие команды перл разработчиков это миф. > У нас человек 50 будет. -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From yu.pats на gmail.com Wed Nov 16 13:32:55 2011 From: yu.pats на gmail.com (Yury Pats) Date: Thu, 17 Nov 2011 00:32:55 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Thu, Nov 17, 2011 at 00:30, Andrei wrote: > 16 ноября 2011 г. 22:24 пользователь Yury Pats написал: >> >> On Thu, Nov 17, 2011 at 00:05, Andrei >> wrote: >> > 16 ноября 2011 г. 20:39 пользователь Yury Pats >> > написал: >> >> >> >> On Wed, Nov 16, 2011 at 20:57, Akzhan Abdulin >> >> >> >> wrote: >> >> > В больших командах лучше наоборот. >> >> > >> >> В больших командах есть документ code style и процесс code review, что >> >> гораздо эффективнее. >> > >> > Нету ни того, ни другого. >> > >> Вообще большие команды перл разработчиков это миф. > > У нас человек 50 будет. > Это не одна команда, а несколько разделенных. > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From andrei.protasovitski на gmail.com Wed Nov 16 13:36:34 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Wed, 16 Nov 2011 22:36:34 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 16 ноября 2011 г. 22:32 пользователь Yury Pats написал: > >> >> > В больших командах лучше наоборот. > >> >> > > >> >> В больших командах есть документ code style и процесс code review, > что > >> >> гораздо эффективнее. > >> > > >> > Нету ни того, ни другого. > >> > > >> Вообще большие команды перл разработчиков это миф. > > > > У нас человек 50 будет. > > > Это не одна команда, а несколько разделенных. > > А code base один. При этом ни code review, ни code style. -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From yu.pats на gmail.com Wed Nov 16 13:40:24 2011 From: yu.pats на gmail.com (Yury Pats) Date: Thu, 17 Nov 2011 00:40:24 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Thu, Nov 17, 2011 at 00:36, Andrei wrote: > 16 ноября 2011 г. 22:32 пользователь Yury Pats написал: >> >> >> >> > В больших командах лучше наоборот. >> >> >> > >> >> >> В больших командах есть документ code style и процесс code review, >> >> >> что >> >> >> гораздо эффективнее. >> >> > >> >> > Нету ни того, ни другого. >> >> > >> >> Вообще большие команды перл разработчиков это миф. >> > >> > У нас человек 50 будет. >> > >> Это не одна команда, а несколько разделенных. >> > > А code base один. При этом ни code review, ни code style. > Че, PCritic есть? > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From andrei.protasovitski на gmail.com Wed Nov 16 13:43:50 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Wed, 16 Nov 2011 22:43:50 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 16 ноября 2011 г. 22:40 пользователь Yury Pats написал: > >> >> >> > В больших командах лучше наоборот. > >> >> >> > > >> >> >> В больших командах есть документ code style и процесс code review, > >> >> >> что > >> >> >> гораздо эффективнее. > >> >> > > >> >> > Нету ни того, ни другого. > >> >> > > >> >> Вообще большие команды перл разработчиков это миф. > >> > > >> > У нас человек 50 будет. > >> > > >> Это не одна команда, а несколько разделенных. > >> > > > > А code base один. При этом ни code review, ни code style. > > > Че, PCritic есть? > Может, у кого-то и есть. Я не пользуюсь. Пустое это. -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andy на shitov.ru Wed Nov 16 13:51:41 2011 From: andy на shitov.ru (Andrew Shitov) Date: Wed, 16 Nov 2011 22:51:41 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: Отличная тема для круглого стола (с помидорами) на питерском воркшопе! 2011/11/16 Andrei : > 16 ноября 2011 г. 22:40 пользователь Yury Pats написал: >> >> >> >> >> > В больших командах лучше наоборот. >> >> >> >> > >> >> >> >> В больших командах есть документ code style и процесс code >> >> >> >> review, >> >> >> >> что >> >> >> >> гораздо эффективнее. >> >> >> > >> >> >> > Нету ни того, ни другого. >> >> >> > >> >> >> Вообще большие команды перл разработчиков это миф. >> >> > >> >> > У нас человек 50 будет. >> >> > >> >> Это не одна команда, а несколько разделенных. >> >> >> > >> > А code base один. При этом ни code review, ни code style. >> > >> Че, PCritic есть? > > Может, у кого-то и есть. Я не пользуюсь. Пустое это. > > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From akzhan.abdulin на gmail.com Wed Nov 16 13:53:52 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Thu, 17 Nov 2011 01:53:52 +0400 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: Сочувствую руководителю проекта, чё. Контрольный вопрос - что с документированием кода? 17 ноября 2011 г. 1:43 пользователь Andrei написал: > 16 ноября 2011 г. 22:40 пользователь Yury Pats написал: > > >> >> >> > В больших командах лучше наоборот. >> >> >> >> > >> >> >> >> В больших командах есть документ code style и процесс code >> review, >> >> >> >> что >> >> >> >> гораздо эффективнее. >> >> >> > >> >> >> > Нету ни того, ни другого. >> >> >> > >> >> >> Вообще большие команды перл разработчиков это миф. >> >> > >> >> > У нас человек 50 будет. >> >> > >> >> Это не одна команда, а несколько разделенных. >> >> >> > >> > А code base один. При этом ни code review, ни code style. >> > >> Че, PCritic есть? >> > > Может, у кого-то и есть. Я не пользуюсь. Пустое это. > > > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andrei.protasovitski на gmail.com Wed Nov 16 13:58:41 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Wed, 16 Nov 2011 22:58:41 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 16 ноября 2011 г. 22:53 пользователь Akzhan Abdulin < akzhan.abdulin на gmail.com> написал: > Сочувствую руководителю проекта, чё. Я ему передам. Контрольный вопрос - что с документированием кода? > А что это? 17 ноября 2011 г. 1:43 пользователь Andrei написал: > > Че, PCritic есть? >> > Может, у кого-то и есть. Я не пользуюсь. Пустое это. > А вообще не стоит так напрягаться. Это моё личное имхо, которое пока не опровергнуто практикой. -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Wed Nov 16 14:03:23 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Thu, 17 Nov 2011 02:03:23 +0400 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: Объясняю со своей точки зрения: 1) PerlCritic обязан быть, ибо снимает рутину. Важно лишь подстроить его правила под команду. 2) Все проблемы некритикуемого кода выявлятся много позже написания оного. При его поддержке спустя год, например. 17 ноября 2011 г. 1:58 пользователь Andrei написал: > 16 ноября 2011 г. 22:53 пользователь Akzhan Abdulin < > akzhan.abdulin на gmail.com> написал: > >> Сочувствую руководителю проекта, чё. > > > Я ему передам. > > > Контрольный вопрос - что с документированием кода? >> > > А что это? > > 17 ноября 2011 г. 1:43 пользователь Andrei > написал: > >> >> Че, PCritic есть? >>> >> Может, у кого-то и есть. Я не пользуюсь. Пустое это. >> > > А вообще не стоит так напрягаться. Это моё личное имхо, которое пока не > опровергнуто практикой. > > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andrei.protasovitski на gmail.com Wed Nov 16 14:07:25 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Wed, 16 Nov 2011 23:07:25 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 16 ноября 2011 г. 23:03 пользователь Akzhan Abdulin < akzhan.abdulin на gmail.com> написал: > Объясняю со своей точки зрения: > > 1) PerlCritic обязан быть, ибо снимает рутину. Важно лишь подстроить его > правила под команду. > 2) Все проблемы некритикуемого кода выявлятся много позже написания оного. > При его поддержке спустя год, например. > Каждый имеет право на ошибочное мнение. Даже я. И даже не только я. -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ruz на bestpractical.com Wed Nov 16 15:13:52 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Thu, 17 Nov 2011 03:13:52 +0400 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 2011/11/17 Andrei : > 16 ноября 2011 г. 23:03 пользователь Akzhan Abdulin > написал: >> >> Объясняю со своей точки зрения: >> 1) PerlCritic обязан быть, ибо снимает рутину. Важно лишь подстроить его >> правила под команду. Был проведен эксперимент. Мы взяли двух человек из нашей команды и сделали следующее. В гугло доку закинули все полиси из PerlCritic с ссылками и коротким описанием. Испытуемые проставили напротив каждой: за, пофиг, против. Под эту тему добавил статистику и получились следующие цифры: Все за: 57% Хотя бы один за, а другим пофиг: 65% Хотя бы один против: 27% Все против: 13% Вот такой ваш критик. Думаю все понимают куда скатится статистика если добавить еще одного человека. Вот эти тринадцать процентов реально интересныеи в них попали: Write q{} instead of ''. - тов. критик, смени шрифт или его размер Return failure with bare return instead of return undef. - это просто кладезь для багов в ОО программах с именоваными переменными, не нужно нам таких проблем Write @{ $array_ref } instead of @$array_ref. - а это кто такую ахинею придумал? Give every module a $VERSION number. - ага, а потом выходят дистрибутивы, где один модуль имеет более новую версию в старой версии дистрибутива Write if(! $condition) instead of unless($condition). Write if($condition){ do_something() } instead of do_something() if $condition. И так далее. Критик - спорная штука. Так мы их и не внедрили полностью. Только прошлись наиболее важными из тех 57%. >> 2) Все проблемы некритикуемого кода выявлятся много позже написания оного. >> При его поддержке спустя год, например. Не нужно политик критика, а нужна систематическая проверка кода новых сотрудников на предмет корявости со всех точек зрения (бажности, маштабиремости, читабельности и прочего). > Каждый имеет право на ошибочное мнение. > > Даже я. И даже не только я. > > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Best regards, Ruslan. From dmitry на karasik.eu.org Wed Nov 16 22:41:42 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Thu, 17 Nov 2011 07:41:42 +0100 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <20111115071112.GB1396@apache.rbscorp.ru> References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> Message-ID: <20111117064141.GA27896@tetsuo.karasik.eu.org> > но впрочем лучше AE и нет ничего в Perl. можете обосновать? мне для общего интереса -- Sincerely, Dmitry Karasik From sergiy.borodych на gmail.com Thu Nov 17 00:32:00 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Thu, 17 Nov 2011 10:32:00 +0200 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 2011/11/17 Ruslan Zakirov : > 2011/11/17 Andrei : >> 16 ноября 2011 г. 23:03 пользователь Akzhan Abdulin >> написал: >>> >>> Объясняю со своей точки зрения: >>> 1) PerlCritic обязан быть, ибо снимает рутину. Важно лишь подстроить его >>> правила под команду. > > Был проведен эксперимент. Мы взяли двух человек из нашей команды и > сделали следующее. В гугло доку закинули все полиси из PerlCritic с > ссылками и коротким описанием. Испытуемые проставили напротив каждой: > за, пофиг, против. Под эту тему добавил статистику и получились > следующие цифры: > > Все за: 57% > Хотя бы один за, а другим пофиг: 65% > Хотя бы один против: 27% > Все против: 13% Вот тут и идет в ход настройка под команду. Разве нет ? Он помогает убрать рутину. > > Вот такой ваш критик. Думаю все понимают куда скатится статистика если > добавить еще одного человека. > > Вот эти тринадцать процентов реально интересныеи в них попали: > > Write q{} instead of ''. - тов. критик, смени шрифт или его размер Этот пункт, да зависит от шрифтов :) Мне тоже не нравится. > Return failure with bare return instead of return undef.  - это просто > кладезь для багов в ОО программах с именоваными переменными, не нужно > нам таких проблем В приведеном мною выше интерью Джефри розказывает про этот момент и обьяcняет почему. Кратко - в зависимости от вызваного контекста список с (undef) вернет тру. > Write @{ $array_ref } instead of @$array_ref.  - а это кто такую > ахинею придумал? > > Give every module a $VERSION number.  - ага, а потом выходят > дистрибутивы, где один модуль имеет более новую версию в старой версии > дистрибутива > > Write if(! $condition) instead of unless($condition). > > Write if($condition){ do_something() } instead of do_something() if > $condition. > > И так далее. Критик - спорная штука. > > Так мы их и не внедрили полностью. Только прошлись наиболее важными из тех 57%. Вот-вот - IMHO эта возможность(тонкой настройки под себя) и есть его огромном плюсом. -- Sergiy Borodych From yu.pats на gmail.com Thu Nov 17 00:38:59 2011 From: yu.pats на gmail.com (Yury Pats) Date: Thu, 17 Nov 2011 11:38:59 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: On Thu, Nov 17, 2011 at 11:32, Sergiy Borodych wrote: > 2011/11/17 Ruslan Zakirov : >> 2011/11/17 Andrei : >>> 16 ноября 2011 г. 23:03 пользователь Akzhan Abdulin >>> написал: >>>> >>>> Объясняю со своей точки зрения: >>>> 1) PerlCritic обязан быть, ибо снимает рутину. Важно лишь подстроить его >>>> правила под команду. >> >> Был проведен эксперимент. Мы взяли двух человек из нашей команды и >> сделали следующее. В гугло доку закинули все полиси из PerlCritic с >> ссылками и коротким описанием. Испытуемые проставили напротив каждой: >> за, пофиг, против. Под эту тему добавил статистику и получились >> следующие цифры: >> >> Все за: 57% >> Хотя бы один за, а другим пофиг: 65% >> Хотя бы один против: 27% >> Все против: 13% > > Вот тут и идет в ход настройка под команду. Разве нет ? > Он помогает убрать рутину. > >> >> Вот такой ваш критик. Думаю все понимают куда скатится статистика если >> добавить еще одного человека. >> >> Вот эти тринадцать процентов реально интересныеи в них попали: >> >> Write q{} instead of ''. - тов. критик, смени шрифт или его размер > > Этот пункт, да зависит от шрифтов :) > Мне тоже не нравится. > >> Return failure with bare return instead of return undef.  - это просто >> кладезь для багов в ОО программах с именоваными переменными, не нужно >> нам таких проблем > > В приведеном мною выше интерью Джефри розказывает про этот момент и > обьяcняет почему. > Кратко - в зависимости от вызваного контекста список с (undef) вернет тру. > Пишите просто return; >> Write @{ $array_ref } instead of @$array_ref.  - а это кто такую >> ахинею придумал? >> >> Give every module a $VERSION number.  - ага, а потом выходят >> дистрибутивы, где один модуль имеет более новую версию в старой версии >> дистрибутива >> >> Write if(! $condition) instead of unless($condition). >> >> Write if($condition){ do_something() } instead of do_something() if >> $condition. >> >> И так далее. Критик - спорная штука. >> >> Так мы их и не внедрили полностью. Только прошлись наиболее важными из тех 57%. > > Вот-вот - IMHO эта возможность(тонкой настройки под себя) и есть его > огромном плюсом. > > -- > Sergiy Borodych > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From sergiy.borodych на gmail.com Thu Nov 17 00:50:14 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Thu, 17 Nov 2011 10:50:14 +0200 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 2011/11/17 Yury Pats : > On Thu, Nov 17, 2011 at 11:32, Sergiy Borodych > wrote: >> 2011/11/17 Ruslan Zakirov : >>> 2011/11/17 Andrei : >>>> 16 ноября 2011 г. 23:03 пользователь Akzhan Abdulin >>>> написал: >>>>> >>>>> Объясняю со своей точки зрения: >>>>> 1) PerlCritic обязан быть, ибо снимает рутину. Важно лишь подстроить его >>>>> правила под команду. >>> >>> Был проведен эксперимент. Мы взяли двух человек из нашей команды и >>> сделали следующее. В гугло доку закинули все полиси из PerlCritic с >>> ссылками и коротким описанием. Испытуемые проставили напротив каждой: >>> за, пофиг, против. Под эту тему добавил статистику и получились >>> следующие цифры: >>> >>> Все за: 57% >>> Хотя бы один за, а другим пофиг: 65% >>> Хотя бы один против: 27% >>> Все против: 13% >> >> Вот тут и идет в ход настройка под команду. Разве нет ? >> Он помогает убрать рутину. >> >>> >>> Вот такой ваш критик. Думаю все понимают куда скатится статистика если >>> добавить еще одного человека. >>> >>> Вот эти тринадцать процентов реально интересныеи в них попали: >>> >>> Write q{} instead of ''. - тов. критик, смени шрифт или его размер >> >> Этот пункт, да зависит от шрифтов :) >> Мне тоже не нравится. >> >>> Return failure with bare return instead of return undef.  - это просто >>> кладезь для багов в ОО программах с именоваными переменными, не нужно >>> нам таких проблем >> >> В приведеном мною выше интерью Джефри розказывает про этот момент и >> обьяcняет почему. >> Кратко - в зависимости от вызваного контекста список с (undef) вернет тру. >> > Пишите просто return; Я так и делаю ;) -- Sergiy Borodych From nikzubkov на gmail.com Thu Nov 17 00:51:14 2011 From: nikzubkov на gmail.com (Nikita Zubkov) Date: Thu, 17 Nov 2011 12:51:14 +0400 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 17 ноября 2011 г. 12:32 пользователь Sergiy Borodych написал: > В приведеном мною выше интерью Джефри розказывает про этот момент и > обьяcняет почему. > Кратко - в зависимости от вызваного контекста список с (undef) вернет тру. Не список, а массив. Это разные вещи. Список вернет undef, массив 1. Feel the difference: perl -e 'print scalar (4, 5, 6)' perl -e 'my @a = (4, 5, 6); print scalar @a' -- С уважением, Никита Зубков From yu.pats на gmail.com Thu Nov 17 01:22:45 2011 From: yu.pats на gmail.com (Yury Pats) Date: Thu, 17 Nov 2011 12:22:45 +0300 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= Message-ID: Сабж, Троллоло! -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From mi на ya.ru Thu Nov 17 01:27:08 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 17 Nov 2011 13:27:08 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: <358681321522028@web50.yandex.ru> Кстати, я стараюсь весь код выносить в модули и после изменения, запускаю build_project.bat perl Build.PL perl Build perl Build test perl Build manifest perl Build dist perl Build install и так как у меня t выглядит: 00.load.t perlcritic.t pod-coverage.t pod.t то он проверяет и на critic и на pod так что хочешь не хочешь, а приходиться добавлять в модуль хотя бы =item * C<< gen_cnt( $key, \%hash_rez, \@$date_arr ) >> Generate rows record for jira =back хоть и мало (так как лень и не времени), но хоть что-то, за то потом можно хоть как-то разобраться в коде, который написан 1 год назад (и исправить его, если нужно) 17.11.2011, 01:40, "Yury Pats" : > On Thu, Nov 17, 2011 at 00:36, Andrei wrote: > >>  16 ноября 2011 г. 22:32 пользователь Yury Pats написал: >>>>>>>>  В больших командах лучше наоборот. >>>>>>>  В больших командах есть документ code style и процесс code review, >>>>>>>  что >>>>>>>  гораздо эффективнее. >>>>>>  Нету ни того, ни другого. >>>>>  Вообще большие команды перл разработчиков это миф. >>>>  У нас человек 50 будет. >>>  Это не одна команда, а несколько разделенных. >>  А code base один. При этом ни code review, ни code style. > > Че, PCritic есть? > >>  -- >>  Andrei Protasovitski >>  < andrei[dot]protasovitski[at]gmail[dot]com > >>  Diemen, Netherlands >> >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > WBR, Yury Pats > skype: yuripats > cellular: +375 (29) 5870723 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From mi на ya.ru Thu Nov 17 01:32:56 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 17 Nov 2011 13:32:56 +0400 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: References: Message-ID: <369971321522376@web40.yandex.ru> Поздравляем и лекцию по mojo на сейнтперл;)) (а то я его никак не освою, как я понял, его можно юзать вместо апача) 17.11.2011, 13:22, "Yury Pats" : > Сабж, Троллоло! > > -- > WBR, Yury Pats > skype: yuripats > cellular: +375 (29) 5870723 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From nordicdyno на yandex.ru Thu Nov 17 02:38:59 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 17 Nov 2011 14:38:59 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: <368521321526340@web106.yandex.ru> 17.11.2011, 12:51, "Nikita Zubkov" : > 17 ноября 2011 г. 12:32 пользователь Sergiy Borodych > написал: > >>  В приведеном мною выше интерью Джефри розказывает про этот момент и >>  обьяcняет почему. >>  Кратко - в зависимости от вызваного контекста список с (undef) вернет тру. > > Не список, а массив.  Это разные вещи. Список вернет undef, массив 1. > > Feel the difference: > > perl -e 'print scalar (4, 5, 6)' > perl -e 'my @a = (4, 5, 6); print scalar @a' > основная разница в том что с список ? это синтаксическая сущность, а массив ? ?first-class object? языка не надо их противопоставлять ? это типичная ошибка From nordicdyno на yandex.ru Thu Nov 17 02:48:17 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 17 Nov 2011 14:48:17 +0400 Subject: [Moscow.pm] =?koi8-r?b?Q292ZXJpdHkgySBQZXJs?= Message-ID: <376921321526897@web114.yandex.ru> Вот узнал о том что Coverity поддерживает OSS проекты, в том числе Perl (молодцы, чо): несколько ссылок: http://scan.coverity.com/rung2.html http://www.internetnews.com/dev-news/article.php/3589361/Coverity+Study+Ranks+LAMP+Code+Quality.htm http://www.perlfoundation.org/news/post/May%205,%202006%20-%20Coverity%20confirms%20success%20of%20Perl's%20testing%20strategy возможно, кому-нибудь будет интересно P.S. Coverity - это такая штука для статического анализа исходного кода типизированных языков (C++/Java/.NET), для поиска потенциальных ошибок и уязвимостей (как-то так) From nikzubkov на gmail.com Thu Nov 17 03:06:49 2011 From: nikzubkov на gmail.com (Nikita Zubkov) Date: Thu, 17 Nov 2011 15:06:49 +0400 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: <368521321526340@web106.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> Message-ID: Типичаня ошибка - их не различать, после чего появляются на свет такие предложения "в зависимости от вызваного контекста список с (undef) вернет тру", которые не верны. 17 ноября 2011 г. 14:38 пользователь Orlovsky Alexander написал: > > > 17.11.2011, 12:51, "Nikita Zubkov" : >> 17 ноября 2011 г. 12:32 пользователь Sergiy Borodych >> написал: >> >>>  В приведеном мною выше интерью Джефри розказывает про этот момент и >>>  обьяcняет почему. >>>  Кратко - в зависимости от вызваного контекста список с (undef) вернет тру. >> >> Не список, а массив.  Это разные вещи. Список вернет undef, массив 1. >> >> Feel the difference: >> >> perl -e 'print scalar (4, 5, 6)' >> perl -e 'my @a = (4, 5, 6); print scalar @a' >> > > основная разница в том что с список ? это синтаксическая сущность, а массив ? ?first-class object? языка > не надо их противопоставлять ? это типичная ошибка > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Никита Зубков From ruz на bestpractical.com Thu Nov 17 03:18:59 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Thu, 17 Nov 2011 15:18:59 +0400 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> Message-ID: 2011/11/17 Sergiy Borodych : >> Return failure with bare return instead of return undef.  - это просто >> кладезь для багов в ОО программах с именоваными переменными, не нужно >> нам таких проблем > > В приведеном мною выше интерью Джефри розказывает про этот момент и > обьяcняет почему. > Кратко - в зависимости от вызваного контекста список с (undef) вернет тру. > Многие не поняли мой комментарий. sub method { return undef if $self->something_wrong; return $res_that_during_success_is_scalar; } sub second_method { my ($self, %args) = @_ print Dumper \%args; } $obj->second_method( argument => $obj->method, another => 'value', ); Так что политика просто ошибочна. Если ей следовать, то придется вызывать все такие методы/функции в явном скалярном контексте. Эту политику можно модифицировать в что-то более правильное. 1) если функция возвращает хотя бы один список, то нужно писать return; 2) иначе undef вполне нормально -- Best regards, Ruslan. From sergiy.borodych на gmail.com Thu Nov 17 04:32:07 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Thu, 17 Nov 2011 14:32:07 +0200 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> Message-ID: 2011/11/17 Nikita Zubkov : > Типичаня ошибка - их не различать, после чего появляются на свет такие > предложения "в зависимости от вызваного контекста список с (undef) > вернет тру", которые не верны. > да, немного не точно выразился спасибо за замечание хотел сказать "если вызван в списковом контексте" -- Sergiy Borodych From sharifulin на gmail.com Thu Nov 17 04:40:33 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Thu, 17 Nov 2011 16:40:33 +0400 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: <369971321522376@web40.yandex.ru> References: <369971321522376@web40.yandex.ru> Message-ID: Опа, спасибо! :) Если получится быть, то будет доклад-исповедь про моджо))) четверг, 17 ноября 2011 г. пользователь Nikolay Mishin писал: > Поздравляем и лекцию по mojo на сейнтперл;)) > (а то я его никак не освою, как я понял, его можно юзать вместо апача) > > 17.11.2011, 13:22, "Yury Pats" : >> Сабж, Троллоло! >> >> -- >> WBR, Yury Pats >> skype: yuripats >> cellular: +375 (29) 5870723 >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zhecka на gmail.com Thu Nov 17 05:36:43 2011 From: zhecka на gmail.com (Kaltashkin Eugene) Date: Thu, 17 Nov 2011 17:36:43 +0400 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: References: <369971321522376@web40.yandex.ru> Message-ID: <4EC50DEB.6010803@gmail.com> С днюхой!!! Всех благ ! 17.11.2011 16:40, Анатолий Шарифулин пишет: > Опа, спасибо! :) > > Если получится быть, то будет доклад-исповедь про моджо))) > > четверг, 17 ноября 2011 г. пользователь Nikolay Mishin > писал: > > Поздравляем и лекцию по mojo на сейнтперл;)) > > (а то я его никак не освою, как я понял, его можно юзать вместо апача) > > > > 17.11.2011, 13:22, "Yury Pats" >: > >> Сабж, Троллоло! > >> > >> -- > >> WBR, Yury Pats > >> skype: yuripats > >> cellular: +375 (29) 5870723 > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > > > > -- > > Nikolay Mishin > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > -- > С уважением, > Анатолий Шарифулин. > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Thu Nov 17 05:52:29 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 17 Nov 2011 17:52:29 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> Message-ID: <107551321537949@web94.yandex.ru> :) итого уже нашли две ошибки так что возможно в этом месте какая-нибудь разумная полиси в critic будет небесполезна 17.11.2011, 15:06, "Nikita Zubkov" : > Типичаня ошибка - их не различать, после чего появляются на свет такие > предложения "в зависимости от вызваного контекста список с (undef) > вернет тру", которые не верны. > > 17 ноября 2011 г. 14:38 пользователь Orlovsky Alexander > написал: ' >>  основная разница в том что с список ? это синтаксическая сущность, а массив ? ?first-class object? языка >>  не надо их противопоставлять ? это типичная ошибка From yu.pats на gmail.com Thu Nov 17 06:01:27 2011 From: yu.pats на gmail.com (Yury Pats) Date: Thu, 17 Nov 2011 17:01:27 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: <107551321537949@web94.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> <107551321537949@web94.yandex.ru> Message-ID: Что на это скажет букингдотком? On Thu, Nov 17, 2011 at 16:52, Orlovsky Alexander wrote: > :) итого уже нашли две ошибки > так что возможно в этом месте какая-нибудь разумная полиси в critic будет небесполезна > > 17.11.2011, 15:06, "Nikita Zubkov" : >> Типичаня ошибка - их не различать, после чего появляются на свет такие >> предложения "в зависимости от вызваного контекста список с (undef) >> вернет тру", которые не верны. >> >> 17 ноября 2011 г. 14:38 пользователь Orlovsky Alexander >> написал: > ' >>>  основная разница в том что с список ? это синтаксическая сущность, а массив ? ?first-class object? языка >>>  не надо их противопоставлять ? это типичная ошибка > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- WBR, Yury Pats skype: yuripats cellular: +375 (29) 5870723 From mshogin на gmail.com Thu Nov 17 06:31:14 2011 From: mshogin на gmail.com (=?KOI8-R?B?7cnIwcnMIPvPx8nO?=) Date: Thu, 17 Nov 2011 18:31:14 +0400 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: <4EC50DEB.6010803@gmail.com> References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> Message-ID: Мои поздравления! ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From despairr на gmail.com Thu Nov 17 07:44:41 2011 From: despairr на gmail.com (Walery Studennikov) Date: Thu, 17 Nov 2011 19:44:41 +0400 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> Message-ID: Респектос и уважуха! ;) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From dmitry на eremeev.ru Thu Nov 17 08:18:31 2011 From: dmitry на eremeev.ru (Dmitry Eremeev) Date: Thu, 17 Nov 2011 20:18:31 +0400 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> Message-ID: <4EC533D7.9040509@eremeev.ru> inc From andy на shitov.ru Thu Nov 17 08:19:04 2011 From: andy на shitov.ru (Andrew Shitov) Date: Thu, 17 Nov 2011 17:19:04 +0100 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: <4EC533D7.9040509@eremeev.ru> References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> Message-ID: +1 2011/11/17 Dmitry Eremeev : > inc > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From ccnweb на gmail.com Thu Nov 17 08:33:15 2011 From: ccnweb на gmail.com (Alexander Onokhov) Date: Thu, 17 Nov 2011 19:33:15 +0300 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> Message-ID: Толик, поздравляю! Нравится мне в тебе молодецкий задор. Своей энергичностью ты оживляешь "мёртвый" Perl и действительно заслуживаешь того, чтоб тебя поздравляли с Днем рождения и в этой рассылке. Отжигай и дальше! On Thu, Nov 17, 2011 at 7:19 PM, Andrew Shitov wrote: > +1 > > 2011/11/17 Dmitry Eremeev : > > inc > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > -- > Andrew Shitov > ______________________________________________________________________ > andy на shitov.ru | http://shitov.ru > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Alexander ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From dmitry на karasik.eu.org Thu Nov 17 08:33:56 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Thu, 17 Nov 2011 17:33:56 +0100 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: <4EC533D7.9040509@eremeev.ru> References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> Message-ID: <20111117163356.GA83664@tetsuo.karasik.eu.org> +1 -- Sincerely, Dmitry Karasik From akovbovich на gmail.com Thu Nov 17 11:02:19 2011 From: akovbovich на gmail.com (=?UTF-8?B?0JDQvdC00YDQtdC5INCfLiDQmtC+0LLQsdC+0LLQuNGH?=) Date: Thu, 17 Nov 2011 22:02:19 +0300 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: <20111117163356.GA83664@tetsuo.karasik.eu.org> References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> <20111117163356.GA83664@tetsuo.karasik.eu.org> Message-ID: Поздравляю! # заодно подсчитаем число перловиков в рассылке 17 ноября 2011 г. 20:33 пользователь Dmitry Karasik написал: > +1 > > -- > Sincerely, >        Dmitry Karasik > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From denis.fedoseev на gmail.com Thu Nov 17 11:09:26 2011 From: denis.fedoseev на gmail.com (Denis Fedoseev) Date: Thu, 17 Nov 2011 23:09:26 +0400 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> <20111117163356.GA83664@tetsuo.karasik.eu.org> Message-ID: Поздравляю :) С уважением, Денис Федосеев. From q на cono.org.ua Thu Nov 17 11:32:51 2011 From: q на cono.org.ua (Alex Varyanick) Date: Thu, 17 Nov 2011 21:32:51 +0200 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> <20111117163356.GA83664@tetsuo.karasik.eu.org> Message-ID: 2011/11/17 Denis Fedoseev : > Поздравляю :) HB! -- Varyanick I. Alex icq: 102 575 440 skype: cono.. q на cono.org.ua From dmarsentev на gmail.com Thu Nov 17 11:34:19 2011 From: dmarsentev на gmail.com (Dmitry Arsentiev) Date: Thu, 17 Nov 2011 22:34:19 +0300 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> <20111117163356.GA83664@tetsuo.karasik.eu.org> Message-ID: Присоединяюсь к поздравлениям с днём рождения евангелиста Mojo и Mojolicious в России. ;) Поздравительная открытка прилагается и символизирует стиль разработки OpenSource http://www.youtube.com/watch?v=kKJH5flgBO0 17 ноября 2011 г. 23:09 пользователь Denis Fedoseev написал: > Поздравляю :) > > С уважением, Денис Федосеев. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From cub.uanic на gmail.com Thu Nov 17 11:34:21 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Thu, 17 Nov 2011 21:34:21 +0200 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> <20111117163356.GA83664@tetsuo.karasik.eu.org> Message-ID: Присоединяюсь к поздравлениям и желаю больше созидательности в, и наслаждения от Перла и всех около-перловых областей! 17 ноября 2011 г. 21:02 пользователь Андрей П. Ковбович написал: > Поздравляю! > > # заодно подсчитаем число перловиков в рассылке Это такой троллинг, типа "кто не поздравит - тот не перловик"? :) > 17 ноября 2011 г. 20:33 пользователь Dmitry Karasik > написал: >> +1 >> >> -- >> Sincerely, >>        Dmitry Karasik >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From sharifulin на gmail.com Thu Nov 17 11:37:54 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Thu, 17 Nov 2011 23:37:54 +0400 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> <20111117163356.GA83664@tetsuo.karasik.eu.org> Message-ID: Спасибо всем)) Очень приятно! 2011/11/17 Oleg Kostyuk > Присоединяюсь к поздравлениям и желаю больше созидательности в, и > наслаждения от Перла и всех около-перловых областей! > > 17 ноября 2011 г. 21:02 пользователь Андрей П. Ковбович > написал: > > Поздравляю! > > > > # заодно подсчитаем число перловиков в рассылке > Это такой троллинг, типа "кто не поздравит - тот не перловик"? :) > > > > 17 ноября 2011 г. 20:33 пользователь Dmitry Karasik > > написал: > >> +1 > >> > >> -- > >> Sincerely, > >> Dmitry Karasik > >> > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > >> > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > -- > Sincerely yours, > Oleg Kostyuk (CUB-UANIC) > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Thu Nov 17 11:49:08 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Thu, 17 Nov 2011 22:49:08 +0300 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> <20111117163356.GA83664@tetsuo.karasik.eu.org> Message-ID: Поздравляю )) while (1) { if ( "17-10" eq join "-", @{ [ localtime(time) ] }[ 3, 4 ] ) { print "С Днём Рождения!\n"; } sleep 24 * 3600; } ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From angel на domashka.kiev.ua Thu Nov 17 12:44:34 2011 From: angel на domashka.kiev.ua (Alessandro Gorohovski) Date: Thu, 17 Nov 2011 22:44:34 +0200 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> Message-ID: Михаил Шогин писал(а) в своём письме Thu, 17 Nov 2011 16:31:14 +0200: > Мои поздравления! ++; -- С уважением, АНГ From meettya на gmail.com Thu Nov 17 14:00:05 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Fri, 18 Nov 2011 01:00:05 +0300 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> Message-ID: On Nov 17, 2011, at 11:44 PM, Alessandro Gorohovski wrote: > Михаил Шогин писал(а) в своём письме Thu, 17 Nov 2011 16:31:14 +0200: > >> Мои поздравления! > > ++; > q{+}=>!q{} :) С поздравлениями и благодарностями за инфу по Mojo* > -- > С уважением, > АНГ > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From mi на ya.ru Thu Nov 17 23:30:04 2011 From: mi на ya.ru (Nikolay Mishin) Date: Fri, 18 Nov 2011 11:30:04 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> <107551321537949@web94.yandex.ru> Message-ID: <418071321601404@web73.yandex.ru> Юрий, думаю, чтобы задавать вопросы нужно написать тест с описанием проблемы, а то мне, например, совершенно не ясно где вы нашли ошибки в perlcritic, приведите пример кода и тест к нему, по которому будет ясно, что критик не прав. То есть 1-й вариант правильный по вашему мнению и 2-й вариант правильный по перлкритик, код должен быть полноценно работающий в виде тест скрипта, чтобы его можно было выпоолнить без лишних движений - просто вставив в редактор. Ну или например, кода код, проходящий по перлкритик не проходящий тесту. 17.11.2011, 18:01, "Yury Pats" : > Что на это скажет букингдотком? > > On Thu, Nov 17, 2011 at 16:52, Orlovsky Alexander wrote: > >>  :) итого уже нашли две ошибки >>  так что возможно в этом месте какая-нибудь разумная полиси в critic будет небесполезна >> >>  17.11.2011, 15:06, "Nikita Zubkov" : >>>  Типичаня ошибка - их не различать, после чего появляются на свет такие >>>  предложения "в зависимости от вызваного контекста список с (undef) >>>  вернет тру", которые не верны. >>> >>>  17 ноября 2011 г. 14:38 пользователь Orlovsky Alexander >>>   написал: >>  ' >>>>   основная разница в том что с список ? это синтаксическая сущность, а массив ? ?first-class object? языка >>>>   не надо их противопоставлять ? это типичная ошибка >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > WBR, Yury Pats > skype: yuripats > cellular: +375 (29) 5870723 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From mi на ya.ru Thu Nov 17 23:34:39 2011 From: mi на ya.ru (Nikolay Mishin) Date: Fri, 18 Nov 2011 11:34:39 +0400 Subject: [Moscow.pm] =?koi8-r?b?+8HSycbVzMnOwSDTIMTSIQ==?= In-Reply-To: <4EC533D7.9040509@eremeev.ru> References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> Message-ID: <374041321601680@web65.yandex.ru> что означает inc? 17.11.2011, 20:18, "Dmitry Eremeev" : > inc > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From i.petro.77.00 на gmail.com Fri Nov 18 00:07:52 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Fri, 18 Nov 2011 12:07:52 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <20111117064141.GA27896@tetsuo.karasik.eu.org> References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> Message-ID: <20111118080751.GA3553@apache.rbscorp.ru> >> но впрочем лучше AE и нет ничего в Perl. > можете обосновать? мне для общего интереса я имел ввиду событийно-ориентированное программирование. From andrei.protasovitski на gmail.com Fri Nov 18 00:15:28 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Fri, 18 Nov 2011 09:15:28 +0100 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: <374041321601680@web65.yandex.ru> References: <369971321522376@web40.yandex.ru> <4EC50DEB.6010803@gmail.com> <4EC533D7.9040509@eremeev.ru> <374041321601680@web65.yandex.ru> Message-ID: Функция инкремента, я полагаю. On Nov 18, 2011 8:35 AM, "Nikolay Mishin" wrote: > что означает inc? > > 17.11.2011, 20:18, "Dmitry Eremeev" : > > inc > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andrei.protasovitski на gmail.com Fri Nov 18 00:34:29 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Fri, 18 Nov 2011 09:34:29 +0100 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: <418071321601404@web73.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> <107551321537949@web94.yandex.ru> <418071321601404@web73.yandex.ru> Message-ID: Мне больше интересно вот что: 1. Сколько времени в неделю уходит на прогон кода через PerlCritic? 2. Сколько времени уходит на подгонку кода под PerlCritic? 3. Сколько времени экономится на решение возможных проблем в будущем в сравнении с 1 и 2? 4. Как влияет на ваш доход подгонка кода под PerlCritic? Если на вопросы о ваших затратах времени (1 и 2) ещё можно ответить, то ваши потенциальные прибыли или убытки (вопросы 3 и 4) остаются не измеренными. Раз вы не можете дать оценку прибыли, а можете только измерить затраты, вы не можете утверждать, что использование PerlCritic полезно. Бизнесу нужны данные, а не ваша интуиция. On Nov 18, 2011 8:30 AM, "Nikolay Mishin" wrote: > Юрий, думаю, чтобы задавать вопросы нужно написать тест с описанием > проблемы, а то мне, например, совершенно не ясно где вы нашли ошибки в > perlcritic, приведите пример кода и тест к нему, по которому будет ясно, > что критик не прав. То есть 1-й вариант правильный по вашему мнению и 2-й > вариант правильный по перлкритик, код должен быть полноценно работающий в > виде тест скрипта, чтобы его можно было выпоолнить без лишних движений - > просто вставив в редактор. Ну или например, кода код, проходящий по > перлкритик не проходящий тесту. > > 17.11.2011, 18:01, "Yury Pats" : > > Что на это скажет букингдотком? > > > > On Thu, Nov 17, 2011 at 16:52, Orlovsky Alexander > wrote: > > > >> :) итого уже нашли две ошибки > >> так что возможно в этом месте какая-нибудь разумная полиси в critic > будет небесполезна > >> > >> 17.11.2011, 15:06, "Nikita Zubkov" : > >>> Типичаня ошибка - их не различать, после чего появляются на свет такие > >>> предложения "в зависимости от вызваного контекста список с (undef) > >>> вернет тру", которые не верны. > >>> > >>> 17 ноября 2011 г. 14:38 пользователь Orlovsky Alexander > >>> написал: > >> ' > >>>> основная разница в том что с список ? это синтаксическая сущность, > а массив ? ?first-class object? языка > >>>> не надо их противопоставлять ? это типичная ошибка > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > > -- > > WBR, Yury Pats > > skype: yuripats > > cellular: +375 (29) 5870723 > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Fri Nov 18 01:38:12 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Fri, 18 Nov 2011 12:38:12 +0300 Subject: [Moscow.pm] =?utf-8?b?KNCx0LXQtyDRgtC10LzRiyk=?= In-Reply-To: <418071321601404@web73.yandex.ru> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> <107551321537949@web94.yandex.ru> <418071321601404@web73.yandex.ru> Message-ID: <27B26366-8E4D-449D-A72A-72FC9292E089@gmail.com> Николай, вот тебе пример кода, проходящий critic но не работающий вообще. проходит проверку уровня --brutal , че. #!/usr/bin/env perl use warnings; use strict; my $a = print 1 / 0; При этом пришлось выкосить абсолютно валидное объявление use v5.14; и за каким-то лешим присваивать результат возврата print, который конечно может вернуть что-то кроме 1, но только в случае ядерной войны. Так что критик критиком, но это всего лишь тулза, которая иногда может быть полезна. Митяй. On Nov 18, 2011, at 10:30 AM, Nikolay Mishin wrote: > Юрий, думаю, чтобы задавать вопросы нужно написать тест с описанием проблемы, а то мне, например, совершенно не ясно где вы нашли ошибки в perlcritic, приведите пример кода и тест к нему, по которому будет ясно, что критик не прав. То есть 1-й вариант правильный по вашему мнению и 2-й вариант правильный по перлкритик, код должен быть полноценно работающий в виде тест скрипта, чтобы его можно было выпоолнить без лишних движений - просто вставив в редактор. Ну или например, кода код, проходящий по перлкритик не проходящий тесту. > > 17.11.2011, 18:01, "Yury Pats" : >> Что на это скажет букингдотком? >> >> On Thu, Nov 17, 2011 at 16:52, Orlovsky Alexander wrote: >> >>> :) итого уже нашли две ошибки >>> так что возможно в этом месте какая-нибудь разумная полиси в critic будет небесполезна >>> >>> 17.11.2011, 15:06, "Nikita Zubkov" : >>>> Типичаня ошибка - их не различать, после чего появляются на свет такие >>>> предложения "в зависимости от вызваного контекста список с (undef) >>>> вернет тру", которые не верны. >>>> >>>> 17 ноября 2011 г. 14:38 пользователь Orlovsky Alexander >>>> написал: >>> ' >>>>> основная разница в том что с список ? это синтаксическая сущность, а массив ? ?first-class object? языка >>>>> не надо их противопоставлять ? это типичная ошибка >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >> -- >> WBR, Yury Pats >> skype: yuripats >> cellular: +375 (29) 5870723 >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From worldmind на mail.ru Fri Nov 18 00:44:30 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Fri, 18 Nov 2011 12:44:30 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> <107551321537949@web94.yandex.ru> <418071321601404@web73.yandex.ru> Message-ID: <1321605870.2323.31.camel@host> Юзаю перлкритик (на самом "добром" уровне) при написании нового кода уже с полгода, было всего один или два случая когда мне понадобилось что-то править, и насколько помню это было полезно - понял почему так нежелательно делать. А вопрос про бизнес и затраты это ни очём вопросы на которые можно ответить такими же вопросами: а сколько будет стоить баг на продакшене связанный с ошибкой которую можно было отловить в процессе разработки? и т.д. - разумные оценки дать сложно, ибо нужен огромный объём статистики On Пт., 2011-11-18 at 09:34 +0100, Andrei wrote: > Мне больше интересно вот что: > > 1. Сколько времени в неделю уходит на прогон кода через PerlCritic? > 2. Сколько времени уходит на подгонку кода под PerlCritic? > 3. Сколько времени экономится на решение возможных проблем в будущем в > сравнении с 1 и 2? > 4. Как влияет на ваш доход подгонка кода под PerlCritic? > > Если на вопросы о ваших затратах времени (1 и 2) ещё можно ответить, > то ваши потенциальные прибыли или убытки (вопросы 3 и 4) остаются не > измеренными. Раз вы не можете дать оценку прибыли, а можете только > измерить затраты, вы не можете утверждать, что использование > PerlCritic полезно. > > Бизнесу нужны данные, а не ваша интуиция. > > On Nov 18, 2011 8:30 AM, "Nikolay Mishin" wrote: > Юрий, думаю, чтобы задавать вопросы нужно написать тест с > описанием проблемы, а то мне, например, совершенно не ясно где > вы нашли ошибки в perlcritic, приведите пример кода и тест к > нему, по которому будет ясно, что критик не прав. То есть 1-й > вариант правильный по вашему мнению и 2-й вариант правильный > по перлкритик, код должен быть полноценно работающий в виде > тест скрипта, чтобы его можно было выпоолнить без лишних > движений - просто вставив в редактор. Ну или например, кода > код, проходящий по перлкритик не проходящий тесту. > > 17.11.2011, 18:01, "Yury Pats" : > > Что на это скажет букингдотком? > > > > On Thu, Nov 17, 2011 at 16:52, Orlovsky Alexander > wrote: > > > >> :) итого уже нашли две ошибки > >> так что возможно в этом месте какая-нибудь разумная полиси > в critic будет небесполезна > >> > >> 17.11.2011, 15:06, "Nikita Zubkov" : > >>> Типичаня ошибка - их не различать, после чего появляются > на свет такие > >>> предложения "в зависимости от вызваного контекста список > с (undef) > >>> вернет тру", которые не верны. > >>> > >>> 17 ноября 2011 г. 14:38 пользователь Orlovsky Alexander > >>> написал: > >> ' > >>>> основная разница в том что с список ? это > синтаксическая сущность, а массив ? ?first-class object? языка > >>>> не надо их противопоставлять ? это типичная ошибка > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > > -- > > WBR, Yury Pats > > skype: yuripats > > cellular: +375 (29) 5870723 > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From mi на ya.ru Fri Nov 18 03:28:57 2011 From: mi на ya.ru (Nikolay Mishin) Date: Fri, 18 Nov 2011 15:28:57 +0400 Subject: [Moscow.pm] =?koi8-r?b?KMLF2iDUxc3ZKQ==?= In-Reply-To: <27B26366-8E4D-449D-A72A-72FC9292E089@gmail.com> References: <591321457264@web29.yandex.ru> <6111321457980@web6.yandex.ru> <19611321460204@web3.yandex.ru> <21441321460853@web31.yandex.ru> <368521321526340@web106.yandex.ru> <107551321537949@web94.yandex.ru> <418071321601404@web73.yandex.ru> <27B26366-8E4D-449D-A72A-72FC9292E089@gmail.com> Message-ID: <10061321615737@web36.yandex.ru> а вот для " присваивать результат возврата print" у меня в c:\Users\nmishin\Documents\perlcritic_profile.perlcriticrc лежит единственное исключение severity = 1 [InputOutput::RequireCheckedSyscalls] functions = :builtins exclude_functions = print для print действительно не нужно проверять возвращаемое значение,т.к., если мы потеряем консоль, то не сможем и прочитать сообщение об ошибке http://search.cpan.org/dist/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm 18.11.2011, 13:38, "Dmitry Karpich" : > Николай, вот тебе пример кода, проходящий critic но не работающий вообще. > > проходит проверку уровня --brutal , че. > > #!/usr/bin/env perl > > use warnings; > use strict; > > my $a = print 1 / 0; > > При этом пришлось выкосить абсолютно валидное объявление > use v5.14; > и за каким-то лешим присваивать результат возврата print, который конечно может вернуть что-то кроме 1, но только в случае ядерной войны. > > Так что критик критиком, но это всего лишь тулза, которая иногда может быть полезна. > > Митяй. > > On Nov 18, 2011, at 10:30 AM, Nikolay Mishin wrote: > >>  Юрий, думаю, чтобы задавать вопросы нужно написать тест с описанием проблемы, а то мне, например, совершенно не ясно где вы нашли ошибки в perlcritic, приведите пример кода и тест к нему, по которому будет ясно, что критик не прав. То есть 1-й вариант правильный по вашему мнению и 2-й вариант правильный по перлкритик, код должен быть полноценно работающий в виде тест скрипта, чтобы его можно было выпоолнить без лишних движений - просто вставив в редактор. Ну или например, кода код, проходящий по перлкритик не проходящий тесту. >> >>  17.11.2011, 18:01, "Yury Pats" : >>>  Что на это скажет букингдотком? >>> >>>  On Thu, Nov 17, 2011 at 16:52, Orlovsky Alexander wrote: >>>>   :) итого уже нашли две ошибки >>>>   так что возможно в этом месте какая-нибудь разумная полиси в critic будет небесполезна >>>> >>>>   17.11.2011, 15:06, "Nikita Zubkov" : >>>>>   Типичаня ошибка - их не различать, после чего появляются на свет такие >>>>>   предложения "в зависимости от вызваного контекста список с (undef) >>>>>   вернет тру", которые не верны. >>>>> >>>>>   17 ноября 2011 г. 14:38 пользователь Orlovsky Alexander >>>>>    написал: >>>>   ' >>>>>>    основная разница в том что с список ? это синтаксическая сущность, а массив ? ?first-class object? языка >>>>>>    не надо их противопоставлять ? это типичная ошибка >>>>   -- >>>>   Moscow.pm mailing list >>>>   moscow-pm на pm.org | http://moscow.pm.org >>>  -- >>>  WBR, Yury Pats >>>  skype: yuripats >>>  cellular: +375 (29) 5870723 >>>  -- >>>  Moscow.pm mailing list >>>  moscow-pm на pm.org | http://moscow.pm.org >>  -- >>  Nikolay Mishin >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From akzhan.abdulin на gmail.com Fri Nov 18 04:18:34 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Fri, 18 Nov 2011 16:18:34 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <20111118080751.GA3553@apache.rbscorp.ru> References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> Message-ID: Мне вот интересно, когда для AnyEvent появится backend, основанный на libuv :) 18 ноября 2011 г. 12:07 пользователь Ivan Petrov написал: > >> но впрочем лучше AE и нет ничего в Perl. > > > можете обосновать? мне для общего интереса > > я имел ввиду событийно-ориентированное программирование. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mons на cpan.org Fri Nov 18 04:58:34 2011 From: mons на cpan.org (Mons Anderson) Date: Fri, 18 Nov 2011 16:58:34 +0400 Subject: [Moscow.pm] =?windows-1251?b?7eXx6u7r/OruIO7h+ej1IOLu7/Du8e7iIO3g?= =?windows-1251?b?9+jt4P755ePuICIg7/Du4/Dg7Ozo8fLgICI=?= In-Reply-To: References: Message-ID: <201111181658.35005.mons@cpan.org> В догонку. Если вы дошли до Task::Kensho, то что следует добавить: * Асинхронное программирование POE это позавчерашний день. На что стоит посмотреть: - AnyEvent - IO::Lambda * WebDev - Mojolicious - Plack/PSGI - Text::Xslate * WebCrawling - Web::Scraper -- Mons Anderson aka Vladimir Perepelitsa / #99779956 / quanth на irc.freenode.net From zzz на zzz.org.ua Fri Nov 18 05:09:14 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 18 Nov 2011 15:09:14 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> Message-ID: On 11/18/11, Akzhan Abdulin wrote: > Мне вот интересно, когда для AnyEvent появится backend, основанный на libuv > :) А смысл? В libuv встроен libev, получится тот же EV. Другое дело использовать все его возможности. Но тогда это не будет бэкендом для AnyEvent. From akzhan.abdulin на gmail.com Fri Nov 18 06:07:49 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Fri, 18 Nov 2011 18:07:49 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> Message-ID: Полноценная кроссплатформенность. 18 ноября 2011 г. 17:09 пользователь Alexandr Gomoliako написал: > On 11/18/11, Akzhan Abdulin wrote: > > Мне вот интересно, когда для AnyEvent появится backend, основанный на > libuv > > :) > > А смысл? В libuv встроен libev, получится тот же EV. > > Другое дело использовать все его возможности. Но тогда это не будет > бэкендом для AnyEvent. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chesnokov.ilya на gmail.com Fri Nov 18 06:25:18 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Fri, 18 Nov 2011 18:25:18 +0400 Subject: [Moscow.pm] =?utf-8?b?0KjQsNGA0LjRhNGD0LvQuNC90LAg0YEg0LTRgCE=?= In-Reply-To: References: <369971321522376@web40.yandex.ru> Message-ID: Поздравляю! Всегда с интересом слушал твои доклады, особенно почему-то лайтинги :) 17 ноября 2011 г. 16:40 пользователь Анатолий Шарифулин написал: > Опа, спасибо! :) > > Если получится быть, то будет доклад-исповедь про моджо))) > > четверг, 17 ноября 2011 г. пользователь Nikolay Mishin писал: >> Поздравляем и лекцию по mojo на сейнтперл;)) >> (а то я его никак не освою, как я понял, его можно юзать вместо апача) >> >> 17.11.2011, 13:22, "Yury Pats" : >>> Сабж, Троллоло! >>> >>> -- >>> WBR, Yury Pats >>> skype: yuripats >>> cellular: +375 (29) 5870723 >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >> >> -- >> Nikolay Mishin >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > -- > С уважением, >  Анатолий Шарифулин. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Best regards, Ilya Chesnokov From ruz на bestpractical.com Fri Nov 18 06:31:58 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Fri, 18 Nov 2011 18:31:58 +0400 Subject: [Moscow.pm] =?utf-8?b?0L3QtdGB0LrQvtC70YzQutC+INC+0LHRidC40YUg?= =?utf-8?b?0LLQvtC/0YDQvtGB0L7QsiDQvdCw0YfQuNC90LDRjtGJ0LXQs9C+ICIg?= =?utf-8?b?0L/RgNC+0LPRgNCw0LzQvNC40YHRgtCwICI=?= In-Reply-To: <201111181658.35005.mons@cpan.org> References: <201111181658.35005.mons@cpan.org> Message-ID: 2011/11/18 Mons Anderson : > * WebCrawling > - Web::Scraper Почему не mojo агент? -- Best regards, Ruslan. From zzz на zzz.org.ua Fri Nov 18 06:43:38 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 18 Nov 2011 16:43:38 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> Message-ID: On Fri, Nov 18, 2011 at 4:07 PM, Akzhan Abdulin wrote: > Полноценная кроссплатформенность. Она скорее урежется, чем станет полноценной. Там только IOCP добавили, вместо select() на винде. Но винда это так, побаловаться. А многое из libuv на винде вообще не заработает. >> А смысл? В libuv встроен libev, получится тот же EV. From ivan на bessarabov.ru Sat Nov 19 05:16:34 2011 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Sat, 19 Nov 2011 17:16:34 +0400 Subject: [Moscow.pm] Code review request Message-ID: Поругайте, пожалуйста, модуль https://github.com/bessarabov/Weightbot-API (на cpan залил, в пути) From mi на ya.ru Sat Nov 19 06:22:46 2011 From: mi на ya.ru (Nikolay Mishin) Date: Sat, 19 Nov 2011 18:22:46 +0400 Subject: [Moscow.pm] PerlMagick+Strawberry Perl+win7 Message-ID: <209351321712566@web148.yandex.ru> Hi, Moscow-pm у кого нибудь был опыт установки этого модуля на Strawberry Perl после чтения форума http://www.imagemagick.org/discourse-server/viewtopic.php?f=7&t=14814 я понял, что единственный способ сделать чтобы он заработал, это самому написать патч для Makefile.PL в общем я выбился из сил обычная инструкция, идущая в README c модулем : 1. You must have ImageMagick 6.7.1 or above installed on your system for this module to work properly. 2. Installation - Win32 Strawberry perl On Win32 Strawberry perl the prefered way of installing PerlMagick is the following: 1) Download and install ImageMagick Windows binaries from http://www.imagemagick.org/script/binary-releases.php#windows 2) You HAVE TO choose dynamic (DLL) ImageMagick binaries. Note: it is not possible to mix 32/64bit binaries of perl and ImageMagick 3) During installation select that you want to install ImageMagick's development files (libraries+headers) 4) You NEED TO have ImageMagick's directory in your PATH. Note: we are checking the presence of convert.exe or identify.exe tools 5) You might need Visual C++ Redistributable Package installed on your system. See instructions on ImageMagick's Binary Release webpage. 6) If you have all prerequisites 1)...5) you can simply install ImageMagick by running: cpan -i Image::Magick не помогает я ставил разные версии сейчас стоит d:\ImageMagick-6.7.3-Q8\.. а воз и ныне там;(( -- Nikolay Mishin From dmitry на karasik.eu.org Sat Nov 19 07:32:06 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Sat, 19 Nov 2011 16:32:06 +0100 Subject: [Moscow.pm] PerlMagick+Strawberry Perl+win7 In-Reply-To: <209351321712566@web148.yandex.ru> References: <209351321712566@web148.yandex.ru> Message-ID: <20111119153206.GA11876@tetsuo.karasik.eu.org> PerlMagick это гемор тот еще. Проблема в том что если его ставить отдельно с CPANa, он может чуть не совпадать по версиям с установленным ImageMagick, и тогда он просто не соберется. Причем эта проблема у него не только на винде - отсюда непонятно зачем этот модуль вообще существует отдельно от главной дистрибуции. Когда мне его надо ставить, я скачиваю не с CPANa а с родного сайта все исходники, той же версии что и бинарники, и вручную perl Makefile.PL итд. Если повезет, то все успешно. Если не повезет, что может быть еще: - не находит либ, всяких там libMagick.a итд. Виндузный IM по умолчанию не ставит .lib/.a/.h файлы, надо его попросить (дада пункт 3 внизу). Потом указать путь perl Makefile.PL INC=path/to/Magick LIBS=-L/path/to/Magick > 3) During installation select that you want to install ImageMagick's > development files (libraries+headers) > > 4) You NEED TO have ImageMagick's directory in your PATH. Note: we are > checking the presence of convert.exe or identify.exe tools > > 5) You might need Visual C++ Redistributable Package installed on your > system. See instructions on ImageMagick's Binary Release webpage. номер 5 не требовался вроде никогда. Вобщем собирать вручную и анализировать ошибки сборки, как обычно. -- Sincerely, Dmitry Karasik From andy на shitov.ru Sat Nov 19 08:03:39 2011 From: andy на shitov.ru (Andrew Shitov) Date: Sat, 19 Nov 2011 17:03:39 +0100 Subject: [Moscow.pm] PerlMagick+Strawberry Perl+win7 In-Reply-To: <20111119153206.GA11876@tetsuo.karasik.eu.org> References: <209351321712566@web148.yandex.ru> <20111119153206.GA11876@tetsuo.karasik.eu.org> Message-ID: У меня ни разу не получилось :-) Я теперь пользуюсь просто командной строкой: `/usr/bin/convert $from.jpg $to.png` и счастлив. 2011/11/19 Dmitry Karasik : > PerlMagick это гемор тот еще. Проблема в том что если его ставить отдельно с CPANa, > он может чуть не совпадать по версиям с установленным ImageMagick, и тогда он просто не соберется. > Причем эта проблема у него не только на винде - отсюда непонятно зачем этот модуль вообще существует > отдельно от главной дистрибуции. > > Когда мне его надо ставить, я скачиваю не с CPANa а с родного сайта все исходники, той же версии что > и бинарники, и вручную perl Makefile.PL итд. Если повезет, то все успешно. Если не повезет, что может быть еще: > > - не находит либ, всяких там libMagick.a итд. Виндузный IM по умолчанию не ставит .lib/.a/.h файлы, надо его попросить > (дада пункт 3 внизу). Потом указать путь perl Makefile.PL INC=path/to/Magick LIBS=-L/path/to/Magick > >>    3) During installation select that you want to install ImageMagick's >>       development files (libraries+headers) >> >>    4) You NEED TO have ImageMagick's directory in your PATH.  Note: we are >>       checking the presence of convert.exe or identify.exe tools >> >>    5) You might need Visual C++ Redistributable Package installed on your >>       system.  See instructions on ImageMagick's Binary Release webpage. > > номер 5 не требовался вроде никогда. > > Вобщем собирать вручную и анализировать ошибки сборки, как обычно. > > -- > Sincerely, >        Dmitry Karasik > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From mi на ya.ru Sat Nov 19 14:22:37 2011 From: mi на ya.ru (Nikolay Mishin) Date: Sun, 20 Nov 2011 02:22:37 +0400 Subject: [Moscow.pm] PerlMagick+Strawberry Perl+win7 In-Reply-To: <20111119153206.GA11876@tetsuo.karasik.eu.org> References: <209351321712566@web148.yandex.ru> <20111119153206.GA11876@tetsuo.karasik.eu.org> Message-ID: <311261321741357@web155.yandex.ru> Спасибо, да, даже грязные хаки не помогают, но будем бороться https://github.com/mishin/scripts/wiki/Install-Perl-Magick 19.11.2011, 19:32, "Dmitry Karasik" : > PerlMagick это гемор тот еще. Проблема в том что если его ставить отдельно с CPANa, > он может чуть не совпадать по версиям с установленным ImageMagick, и тогда он просто не соберется. > Причем эта проблема у него не только на винде - отсюда непонятно зачем этот модуль вообще существует > отдельно от главной дистрибуции. > > Когда мне его надо ставить, я скачиваю не с CPANa а с родного сайта все исходники, той же версии что > и бинарники, и вручную perl Makefile.PL итд. Если повезет, то все успешно. Если не повезет, что может быть еще: > > - не находит либ, всяких там libMagick.a итд. Виндузный IM по умолчанию не ставит .lib/.a/.h файлы, надо его попросить > (дада пункт 3 внизу). Потом указать путь perl Makefile.PL INC=path/to/Magick LIBS=-L/path/to/Magick > >>     3) During installation select that you want to install ImageMagick's >>        development files (libraries+headers) >> >>     4) You NEED TO have ImageMagick's directory in your PATH.  Note: we are >>        checking the presence of convert.exe or identify.exe tools >> >>     5) You might need Visual C++ Redistributable Package installed on your >>        system.  See instructions on ImageMagick's Binary Release webpage. > > номер 5 не требовался вроде никогда. > > Вобщем собирать вручную и анализировать ошибки сборки, как обычно. > > -- > Sincerely, > Dmitry Karasik > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From dmitry на karasik.eu.org Sat Nov 19 20:42:39 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Sun, 20 Nov 2011 05:42:39 +0100 Subject: [Moscow.pm] PerlMagick+Strawberry Perl+win7 In-Reply-To: <311261321741357@web155.yandex.ru> References: <209351321712566@web148.yandex.ru> <20111119153206.GA11876@tetsuo.karasik.eu.org> <311261321741357@web155.yandex.ru> Message-ID: <20111120044238.GA43425@tetsuo.karasik.eu.org> по пунктам 4 и 5: y .a и .lib вроде бы один и тот же формат.. я помню что я как-то пробовал, но не помню что из этого вышло - что если скопировать идущий в инсталляции CORE_RL_magick_.lib в libMagick.a ? /dk On Sun, Nov 20, 2011 at 02:22:37AM +0400, Nikolay Mishin wrote: > Спасибо, да, даже грязные хаки не помогают, > но будем бороться > > https://github.com/mishin/scripts/wiki/Install-Perl-Magick > > 19.11.2011, 19:32, "Dmitry Karasik" : > > PerlMagick это гемор тот еще. Проблема в том что если его ставить отдельно с CPANa, > > он может чуть не совпадать по версиям с установленным ImageMagick, и тогда он просто не соберется. > > Причем эта проблема у него не только на винде - отсюда непонятно зачем этот модуль вообще существует > > отдельно от главной дистрибуции. > > > > Когда мне его надо ставить, я скачиваю не с CPANa а с родного сайта все исходники, той же версии что > > и бинарники, и вручную perl Makefile.PL итд. Если повезет, то все успешно. Если не повезет, что может быть еще: > > > > - не находит либ, всяких там libMagick.a итд. Виндузный IM по умолчанию не ставит .lib/.a/.h файлы, надо его попросить > > (дада пункт 3 внизу). Потом указать путь perl Makefile.PL INC=path/to/Magick LIBS=-L/path/to/Magick > > > >>     3) During installation select that you want to install ImageMagick's > >>        development files (libraries+headers) > >> > >>     4) You NEED TO have ImageMagick's directory in your PATH.  Note: we are > >>        checking the presence of convert.exe or identify.exe tools > >> > >>     5) You might need Visual C++ Redistributable Package installed on your > >>        system.  See instructions on ImageMagick's Binary Release webpage. > > > > номер 5 не требовался вроде никогда. > > > > Вобщем собирать вручную и анализировать ошибки сборки, как обычно. > > > > -- > > Sincerely, > > Dmitry Karasik > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Sincerely, Dmitry Karasik From i.petro.77.00 на gmail.com Sun Nov 20 12:31:32 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Mon, 21 Nov 2011 00:31:32 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> Message-ID: <20111120203132.GE23685@apache.rbscorp.ru> >> Полноценная кроссплатформенность. > Она скорее урежется, чем станет полноценной. > Там только IOCP добавили, вместо select() на винде. > Но винда это так, побаловаться. А многое из libuv > на винде вообще не заработает. да и для венды зачем вообще событийки? не нагрузку же на ней экономить правда? сервера на ней только идиоты же делают >>> А смысл? В libuv встроен libev, получится тот же EV. From meettya на gmail.com Sun Nov 20 13:46:38 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Mon, 21 Nov 2011 00:46:38 +0300 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <20111120203132.GE23685@apache.rbscorp.ru> References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> <20111120203132.GE23685@apache.rbscorp.ru> Message-ID: On Nov 20, 2011, at 11:31 PM, Ivan Petrov wrote: >>> Полноценная кроссплатформенность. > >> Она скорее урежется, чем станет полноценной. >> Там только IOCP добавили, вместо select() на винде. >> Но винда это так, побаловаться. А многое из libuv >> на винде вообще не заработает. > > да и для венды зачем вообще событийки? не нагрузку же на ней экономить > правда? сервера на ней только идиоты же делают ИМХО. кроссплатформенность означает "работает на любом *nix". Все остальное - пожалуй лишнее :) > >>>> А смысл? В libuv встроен libev, получится тот же EV. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From i.petro.77.00 на gmail.com Sun Nov 20 12:59:40 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Mon, 21 Nov 2011 00:59:40 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: References: <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> <20111120203132.GE23685@apache.rbscorp.ru> Message-ID: <20111120205940.GF23685@apache.rbscorp.ru> >>>> Полноценная кроссплатформенность. >> >>> Она скорее урежется, чем станет полноценной. >>> Там только IOCP добавили, вместо select() на винде. >>> Но винда это так, побаловаться. А многое из libuv >>> на винде вообще не заработает. >> >> да и для венды зачем вообще событийки? не нагрузку же на ней экономить >> правда? сервера на ней только идиоты же делают > ИМХО. кроссплатформенность означает "работает на любом *nix". > Все остальное - пожалуй лишнее :) а на любом *nix разве EV не будет работать? имхается мне что все что работает на Linux + BSD далее работает на любом *nix :) From zzz на zzz.org.ua Sun Nov 20 13:09:00 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sun, 20 Nov 2011 23:09:00 +0200 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <20111120205940.GF23685@apache.rbscorp.ru> References: <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> <20111120203132.GE23685@apache.rbscorp.ru> <20111120205940.GF23685@apache.rbscorp.ru> Message-ID: On Sun, Nov 20, 2011 at 10:59 PM, Ivan Petrov wrote: >>> да и для венды зачем вообще да From akzhan.abdulin на gmail.com Sun Nov 20 16:32:22 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Mon, 21 Nov 2011 04:32:22 +0400 Subject: [Moscow.pm] nginx-perl prerelease 1.1.6.1 In-Reply-To: <20111120203132.GE23685@apache.rbscorp.ru> References: <20111114200421.GA1396@apache.rbscorp.ru> <20111115071112.GB1396@apache.rbscorp.ru> <20111117064141.GA27896@tetsuo.karasik.eu.org> <20111118080751.GA3553@apache.rbscorp.ru> <20111120203132.GE23685@apache.rbscorp.ru> Message-ID: Лень спорить. Windows ничуть не менее православная система, по сравнению с Linux. Просто философия другая. И стек технологий иной (недавно, кстати, поднимал сервис на Node.JS под Windows, взлетел без бубна). Нагрузку держит. 21 ноября 2011 г. 0:31 пользователь Ivan Petrov написал: > >> Полноценная кроссплатформенность. > > > Она скорее урежется, чем станет полноценной. > > Там только IOCP добавили, вместо select() на винде. > > Но винда это так, побаловаться. А многое из libuv > > на винде вообще не заработает. > > да и для венды зачем вообще событийки? не нагрузку же на ней экономить > правда? сервера на ней только идиоты же делают > > >>> А смысл? В libuv встроен libev, получится тот же EV. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evgeniy на kosov.su Mon Nov 21 01:53:53 2011 From: evgeniy на kosov.su (Evgeniy Kosov) Date: Mon, 21 Nov 2011 13:53:53 +0400 Subject: [Moscow.pm] Code review request In-Reply-To: References: Message-ID: <4ECA1FB1.2080504@kosov.su> Привет. Возможно стоило (как это рекомендуется, http://pause.perl.org/pause/query?ACTION=pause_namingmodules) посоветоваться с module-authors на perl.org по поводу названия модуля (новый top-level namespace всё-таки). > Поругайте, пожалуйста, модуль https://github.com/bessarabov/Weightbot-API > (на cpan залил, в пути) Ошибки в POD вщёт? :) -- С уважением, Евгений Косов From ivan на bessarabov.ru Mon Nov 21 01:58:07 2011 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Mon, 21 Nov 2011 13:58:07 +0400 Subject: [Moscow.pm] Code review request In-Reply-To: <4ECA1FB1.2080504@kosov.su> References: <4ECA1FB1.2080504@kosov.su> Message-ID: <2192283842800421529@unknownmsgid> Спасибо ? не знал про этот документ, думал что любое адекватное имя годится. Ошибкам в pod тоже буду рад =) 21.11.2011, в 13:54, Evgeniy Kosov написал(а): > Привет. > > Возможно стоило (как это рекомендуется, http://pause.perl.org/pause/query?ACTION=pause_namingmodules) посоветоваться с module-authors на perl.org по поводу названия модуля (новый top-level namespace всё-таки). > >> Поругайте, пожалуйста, модуль https://github.com/bessarabov/Weightbot-API >> (на cpan залил, в пути) > > Ошибки в POD вщёт? :) > > -- > С уважением, > Евгений Косов > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From dmitry на karasik.eu.org Mon Nov 21 02:09:26 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Mon, 21 Nov 2011 11:09:26 +0100 Subject: [Moscow.pm] Code review request In-Reply-To: <2192283842800421529@unknownmsgid> References: <4ECA1FB1.2080504@kosov.su> <2192283842800421529@unknownmsgid> Message-ID: <20111121100926.GA49827@tetsuo.karasik.eu.org> а чего Weightbot::API->new({...}) а не Weightbot::API->new(...) как обычно делается ? /dk On Mon, Nov 21, 2011 at 01:58:07PM +0400, Иван Бессарабов wrote: > Спасибо ? не знал про этот документ, думал что любое адекватное имя годится. > > Ошибкам в pod тоже буду рад =) > > 21.11.2011, в 13:54, Evgeniy Kosov написал(а): > > > Привет. > > > > Возможно стоило (как это рекомендуется, http://pause.perl.org/pause/query?ACTION=pause_namingmodules) посоветоваться с module-authors на perl.org по поводу названия модуля (новый top-level namespace всё-таки). > > > >> Поругайте, пожалуйста, модуль https://github.com/bessarabov/Weightbot-API > >> (на cpan залил, в пути) > > > > Ошибки в POD вщёт? :) > > > > -- > > С уважением, > > Евгений Косов > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Sincerely, Dmitry Karasik From andy на shitov.ru Mon Nov 21 02:15:36 2011 From: andy на shitov.ru (Andrew Shitov) Date: Mon, 21 Nov 2011 11:15:36 +0100 Subject: [Moscow.pm] Code review request In-Reply-To: <4ECA1FB1.2080504@kosov.su> References: <4ECA1FB1.2080504@kosov.su> Message-ID: > Возможно стоило (как это рекомендуется, > http://pause.perl.org/pause/query?ACTION=pause_namingmodules) посоветоваться > с module-authors на perl.org по поводу названия модуля (новый top-level > namespace всё-таки). Имхо, надо просто добавить префикс Net:: Ср.: http://search.cpan.org/search?query=net+api&mode=all -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From makarov.e.g на gmail.com Mon Nov 21 02:31:41 2011 From: makarov.e.g на gmail.com (Egor Makarov) Date: Mon, 21 Nov 2011 14:31:41 +0400 Subject: [Moscow.pm] Code review request In-Reply-To: References: Message-ID: Пожалуй стоит умирать croak'ом вместо die при проверке валидности параметров функции 19 ноября 2011 г. 17:16 пользователь Иван Бессарабов написал: > Поругайте, пожалуйста, модуль https://github.com/bessarabov/Weightbot-API > (на cpan залил, в пути) > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From thecrux на gmail.com Mon Nov 21 04:31:44 2011 From: thecrux на gmail.com (thecrux на gmail.com) Date: Mon, 21 Nov 2011 16:31:44 +0400 Subject: [Moscow.pm] Code review request In-Reply-To: References: <4ECA1FB1.2080504@kosov.su> Message-ID: <20111121123144.GA8244@mail.truecrux.org> On Mon, Nov 21, 2011 at 11:15:36AM +0100, Andrew Shitov wrote: > > Возможно стоило (как это рекомендуется, > > http://pause.perl.org/pause/query?ACTION=pause_namingmodules) посоветоваться > > с module-authors на perl.org по поводу названия модуля (новый top-level > > namespace всё-таки). > > Имхо, надо просто добавить префикс Net:: > > Ср.: http://search.cpan.org/search?query=net+api&mode=all Ещё лучше наверно WWW:: http://search.cpan.org/search?query=www+api&mode=all -- Vladimir Lettiev aka crux ? theCrux на gmail.com From mi на ya.ru Mon Nov 21 06:35:28 2011 From: mi на ya.ru (Nikolay Mishin) Date: Mon, 21 Nov 2011 18:35:28 +0400 Subject: [Moscow.pm] putty automation Message-ID: <426531321886128@web4.yandex.ru> Hi, Moscow-pm Image Magick пока не удалось поставить, но зато я c помощью use Win32::GuiTest qw(:ALL); автоматизнул putty, нереальный модуль https://gist.github.com/1382756 -- Nikolay Mishin From ivan на serezhkin.com Mon Nov 21 07:00:09 2011 From: ivan на serezhkin.com (Vany Serezhkin) Date: Mon, 21 Nov 2011 19:00:09 +0400 Subject: [Moscow.pm] putty automation In-Reply-To: <426531321886128@web4.yandex.ru> References: <426531321886128@web4.yandex.ru> Message-ID: <4ECA6779.7090809@serezhkin.com> Привет. On 11/21/2011 06:35 PM, Nikolay Mishin wrote: > Hi, Moscow-pm > > Image Magick пока не удалось поставить, > но зато я c помощью use Win32::GuiTest qw(:ALL); > автоматизнул putty, нереальный модуль > > https://gist.github.com/1382756 Наверное было интересно, я сам с гуитестом, а потом и с Win32::GUIRobot игрался, а потом оказалось, что это оверхед и всё делается проще. Потом я начал ещё один проект, тоже с гуироботом ... и опять нашёл на пару порядков более простое решение, так что гуитест - это для тестов гуи =) а кидать туда сюда строки через клипбоард - это лишнее. Так вот, в случае с путти, простое решение называется plink =) -- WBR Vany From denis.zhdanov на gmail.com Mon Nov 21 07:18:30 2011 From: denis.zhdanov на gmail.com (Denis Zhdanov) Date: Mon, 21 Nov 2011 17:18:30 +0200 Subject: [Moscow.pm] putty automation In-Reply-To: <4ECA6779.7090809@serezhkin.com> References: <426531321886128@web4.yandex.ru> <4ECA6779.7090809@serezhkin.com> Message-ID: Привет всем! 21 ноября 2011 г. 17:00 пользователь Vany Serezhkin написал: > Так вот, в случае с путти, простое решение называется plink =) Однажды, работая в закрытой от мира и зафаерволленой корпоративной среде (Activestate Perl был, но модули доставить было проблематично) я извратился через Cygwin + Net::SSH::Expect... From mi на ya.ru Mon Nov 21 07:28:05 2011 From: mi на ya.ru (Nikolay Mishin) Date: Mon, 21 Nov 2011 19:28:05 +0400 Subject: [Moscow.pm] putty automation In-Reply-To: <4ECA6779.7090809@serezhkin.com> References: <426531321886128@web4.yandex.ru> <4ECA6779.7090809@serezhkin.com> Message-ID: <445151321889285@web84.yandex.ru> c plink я так и не понял как работать, мне же нужно автоматически залогироваться, а далее чтобы я уже сам команды вводил.. , мне не понравилось, что ему нельзя передать сохраненную сессию putty, я читал, что он крутой, но как? 21.11.2011, 19:00, "Vany Serezhkin" : > Привет. > On 11/21/2011 06:35 PM, Nikolay Mishin wrote: > >>  Hi, Moscow-pm >> >>  Image Magick пока не удалось поставить, >>  но зато я c помощью use Win32::GuiTest qw(:ALL); >>  автоматизнул putty, нереальный модуль >> >>  https://gist.github.com/1382756 > > Наверное было интересно, я сам с гуитестом, а потом и с Win32::GUIRobot > игрался, а потом оказалось, что это оверхед и всё делается проще. Потом > я начал ещё один проект, тоже с гуироботом ... и опять нашёл на пару > порядков более простое решение, так что гуитест - это для тестов гуи =) > а кидать туда сюда строки через клипбоард - это лишнее. > > Так вот, в случае с путти, простое решение называется plink =) > > -- > WBR Vany > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From ivan на serezhkin.com Mon Nov 21 07:31:36 2011 From: ivan на serezhkin.com (Vany Serezhkin) Date: Mon, 21 Nov 2011 19:31:36 +0400 Subject: [Moscow.pm] putty automation In-Reply-To: <445151321889285@web84.yandex.ru> References: <426531321886128@web4.yandex.ru> <4ECA6779.7090809@serezhkin.com> <445151321889285@web84.yandex.ru> Message-ID: <4ECA6ED8.4010500@serezhkin.com> On 11/21/2011 07:28 PM, Nikolay Mishin wrote: > c plink я так и не понял как работать, > мне же нужно автоматически залогироваться, а далее чтобы я уже сам команды вводил.. > , мне не понравилось, что ему нельзя передать сохраненную сессию putty, > я читал, что он крутой, но как? В случае если тебе хочется просто авторизовыватся побырому - ставь putty-0.61-installer.exe И оно будет делать чудеса, а если ещё и пароль вводить лень - man ssh-keygen -- WBR Vany From mi на ya.ru Mon Nov 21 08:02:35 2011 From: mi на ya.ru (Nikolay Mishin) Date: Mon, 21 Nov 2011 20:02:35 +0400 Subject: [Moscow.pm] putty automation In-Reply-To: <4ECA6ED8.4010500@serezhkin.com> References: <426531321886128@web4.yandex.ru> <4ECA6779.7090809@serezhkin.com> <445151321889285@web84.yandex.ru> <4ECA6ED8.4010500@serezhkin.com> Message-ID: <519671321891355@web75.yandex.ru> дело в том, что я логинюсь на хост, на котором я могу только приконнектиться на другой хост лесенка такая получается, так что за putty-0.61-installer.exe спасибо, но от use Win32::GuiTest qw(:ALL); отказаться не получиться 21.11.2011, 19:31, "Vany Serezhkin" : > On 11/21/2011 07:28 PM, Nikolay Mishin wrote: > >>  c plink я так и не понял как работать, >>  мне же нужно автоматически залогироваться, а далее чтобы я уже сам команды вводил.. >>  , мне не понравилось, что ему нельзя передать сохраненную сессию putty, >>  я читал, что он крутой, но как? > > В случае если тебе хочется просто авторизовыватся побырому - > ставь putty-0.61-installer.exe > И оно будет делать чудеса, а если ещё и пароль вводить лень - man ssh-keygen > > -- > WBR Vany > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From ruz на bestpractical.com Mon Nov 21 08:49:45 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Mon, 21 Nov 2011 20:49:45 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= Message-ID: Привет, Не могу найти нормальный путь запустить комманду под другим UID. Нуно из CLI скрипта поднять демон, который не может сам менять пользователя. Предполагается, что скрипт запустил root, а если нет, то развалиться. -- Best regards, Ruslan. From onokonem на gmail.com Mon Nov 21 09:01:07 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Mon, 21 Nov 2011 20:01:07 +0300 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: References: Message-ID: man sudo 2011/11/21 Ruslan Zakirov : > Привет, > > Не могу найти нормальный путь запустить комманду под другим UID. Нуно > из CLI скрипта поднять демон, который не может сам менять > пользователя. Предполагается, что скрипт запустил root, а если нет, то > развалиться. > > -- > Best regards, Ruslan. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From evdokimov.denis на gmail.com Mon Nov 21 09:05:05 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Mon, 21 Nov 2011 20:05:05 +0300 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: References: Message-ID: POSIX::setuid не то? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Mon Nov 21 09:18:50 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Mon, 21 Nov 2011 20:18:50 +0300 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: References: Message-ID: Хотя должны быть демонизаторы, которые сами меняют UID и делают прочие необходимые действия. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ksurent на gmail.com Mon Nov 21 09:52:59 2011 From: ksurent на gmail.com (Alexey Surikov) Date: Mon, 21 Nov 2011 17:52:59 +0000 (UTC) Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGM0LrQvNC80LDQvdC0?= =?utf-8?b?0YPQv9C+0LTQtNGA0YPQs9C40LzQv9C+0LvRjNC30L7QstCw0YLQtdC7?= =?utf-8?b?0LXQvA==?= References: Message-ID: Ruslan Zakirov writes: > > Привет, > > Не могу найти нормальный путь запустить комманду под > другим UID. Нуно > из CLI скрипта поднять демон, который не может сам менять > пользователя. Предполагается, что скрипт запустил > root, а если нет, то > развалиться. > На *nix можно так: $< == 0 or die; $< = $> = 42; # UID = EUID = 42 fork and exit; exec qw(perl daemon.pl); На Darwin надо POSIX::setuid() делать. From akzhan.abdulin на gmail.com Mon Nov 21 10:09:00 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Mon, 21 Nov 2011 22:09:00 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: References: Message-ID: man sudo или man chpst chpst - в комплекте поставки пакета runit. 21 ноября 2011 г. 20:49 пользователь Ruslan Zakirov написал: > Привет, > > Не могу найти нормальный путь запустить комманду под другим UID. Нуно > из CLI скрипта поднять демон, который не может сам менять > пользователя. Предполагается, что скрипт запустил root, а если нет, то > развалиться. > > -- > Best regards, Ruslan. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ruz на bestpractical.com Mon Nov 21 10:12:21 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Mon, 21 Nov 2011 22:12:21 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: References: Message-ID: 2011/11/21 Daniel Podolsky : > man sudo не портабельно > > 2011/11/21 Ruslan Zakirov : >> Привет, >> >> Не могу найти нормальный путь запустить комманду под другим UID. Нуно >> из CLI скрипта поднять демон, который не может сам менять >> пользователя. Предполагается, что скрипт запустил root, а если нет, то >> развалиться. >> >> -- >> Best regards, Ruslan. >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From ruz на bestpractical.com Mon Nov 21 10:26:21 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Mon, 21 Nov 2011 22:26:21 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: References: Message-ID: 2011/11/21 Akzhan Abdulin : > chpst еще менее портабльно -- Best regards, Ruslan. From onokonem на gmail.com Mon Nov 21 10:32:08 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Mon, 21 Nov 2011 21:32:08 +0300 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: References: Message-ID: >> man sudo > не портабельно Откуда куда оно непортабельно? From dmitry на karasik.eu.org Mon Nov 21 11:45:58 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Mon, 21 Nov 2011 20:45:58 +0100 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: References: Message-ID: <20111121194558.GA86520@tetsuo.karasik.eu.org> man su On Mon, Nov 21, 2011 at 08:49:45PM +0400, Ruslan Zakirov wrote: > Привет, > > Не могу найти нормальный путь запустить комманду под другим UID. Нуно > из CLI скрипта поднять демон, который не может сам менять > пользователя. Предполагается, что скрипт запустил root, а если нет, то > развалиться. > > -- > Best regards, Ruslan. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Sincerely, Dmitry Karasik From ruz на bestpractical.com Mon Nov 21 13:12:16 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 22 Nov 2011 01:12:16 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: <20111121194558.GA86520@tetsuo.karasik.eu.org> References: <20111121194558.GA86520@tetsuo.karasik.eu.org> Message-ID: 2011/11/21 Dmitry Karasik : > man su Не работает на маках, если у пользователя нету шела/хомы, что для демонов есть бесполезно. Вполне возможно аналогичная ситуция и с другими системами. > On Mon, Nov 21, 2011 at 08:49:45PM +0400, Ruslan Zakirov wrote: >> Привет, >> >> Не могу найти нормальный путь запустить комманду под другим UID. Нуно >> из CLI скрипта поднять демон, который не может сам менять >> пользователя. Предполагается, что скрипт запустил root, а если нет, то >> развалиться. >> >> -- >> Best regards, Ruslan. >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- > Sincerely, >        Dmitry Karasik > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From ruz на bestpractical.com Mon Nov 21 13:33:09 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 22 Nov 2011 01:33:09 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: References: Message-ID: 2011/11/21 Daniel Podolsky : >>> man sudo >> не портабельно > Откуда куда оно непортабельно? sudo не везде стоит и иногда требует настройки: ruz на new-mac /opt/rt4ngx $ sudo -n -u www date вт ноя 22 01:23:22 GET 2011 ruz на new-mac /opt/rt4ngx $ sudo -n -u www -g www date Sorry, user ruz is not allowed to execute '/opt/portage/bin/date' as _www:_www on new-mac.local. Мне нужно минимизировать труд админа/юзера в простом случае. Я бы мог сказать, что мол запустите вот эту команду с правами вот этого пользователя и группы. Практика показала, что пользователи запустят ее от рута и будут надеятся на авось. Заставить их настривать sudo другая грань садизма. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Best regards, Ruslan. From ruz на bestpractical.com Mon Nov 21 13:35:33 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 22 Nov 2011 01:35:33 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: References: Message-ID: 2011/11/21 Denis Evdokimov : > POSIX::setuid не то? Пока остановился на fork+setgid+setuid+exec. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Best regards, Ruslan. From meettya на gmail.com Mon Nov 21 14:38:27 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Tue, 22 Nov 2011 01:38:27 +0300 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LDRgtC1?= =?utf-8?b?0LvQtdC8?= In-Reply-To: References: Message-ID: transmission-daemon используют конструкцию в /etc/init.d/transmission-daemon start-stop-daemon --start \ --chuid $USER \ --exec $DAEMON -- $OPTIONS не? On Nov 22, 2011, at 12:35 AM, Ruslan Zakirov wrote: > 2011/11/21 Denis Evdokimov : >> POSIX::setuid не то? > > Пока остановился на fork+setgid+setuid+exec. > >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> > > > > -- > Best regards, Ruslan. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From mi на ya.ru Mon Nov 21 20:35:11 2011 From: mi на ya.ru (Nikolay Mishin) Date: Tue, 22 Nov 2011 08:35:11 +0400 Subject: [Moscow.pm] Win32::GuiTest Open Context Menu Key Message-ID: <680361321936512@web126.yandex.ru> Moscow.pm, Привет вопрос в основном Диме Карасику, ну или мало ли кто знает Вот запускаю я контекстное меню (это то, что между правым контролом и клавишей виндоуз) {APP} Open Context Menu Key   SendKeys("{APP}"); вот пример на основе Notepada https://gist.github.com/1384894 так вот 14 строка посылает enter SendKeys("~"); , в notepad это работает, а вот в java-приложении у меня будет работать, если я дважды кликну (или 1 раз) на пункт этого меню (понятно, что там и контекстное меню другое) как вычислить координату этого меню и послать туда сигнал мыши MouseMoveAbsPix( ( $x, $y); sleep(1); SendMouse("{LeftClick}"); как вычислить $x и $y ? p.s. здесь http://www.perl.com/pub/2005/08/11/win32guitest.html еще хорошо написано, но это не помогает help! -- Nikolay Mishin From dmitry на karasik.eu.org Mon Nov 21 20:56:57 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Tue, 22 Nov 2011 05:56:57 +0100 Subject: [Moscow.pm] Win32::GuiTest Open Context Menu Key In-Reply-To: <680361321936512@web126.yandex.ru> References: <680361321936512@web126.yandex.ru> Message-ID: <20111122045657.GA10596@tetsuo.karasik.eu.org> > 14 строка посылает enter SendKeys("~"); > , в notepad это работает, а вот > в java-приложении у меня будет работать, если я > дважды кликну (или 1 раз) на пункт этого меню (понятно, что там и контекстное меню другое) > как вычислить координату этого меню и послать туда сигнал мыши > > MouseMoveAbsPix( ( $x, $y); > sleep(1); > SendMouse("{LeftClick}"); > > как вычислить $x и $y ? > > p.s. здесь http://www.perl.com/pub/2005/08/11/win32guitest.html еще хорошо написано, но это не помогает > help! Если EnumWindows или как там его не помогает на явовских приложениях ( в чем я очень сомневаюсь, т.к. контекстное меню как ни крути, а будет иметь системный HWND, а значит его можно найти ), то можно на самый худой конец анализировать пиксели с помощью Win32::GUIRobot -- Sincerely, Dmitry Karasik From onokonem на gmail.com Tue Nov 22 03:13:24 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Tue, 22 Nov 2011 14:13:24 +0300 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: References: Message-ID: > sudo не везде стоит и иногда требует настройки все остальное, что у вас используется, надо полагать - всегда везде стоит, и настройки никогда не требует... From ruz на bestpractical.com Tue Nov 22 04:48:11 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 22 Nov 2011 16:48:11 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: References: Message-ID: 2011/11/22 Daniel Podolsky : >> sudo не везде стоит и иногда требует настройки > все остальное, что у вас используется, надо полагать - всегда везде > стоит, и настройки никогда не требует... Установки требует, но настройки только веб сервер, почта, cron и минимум субд. Я в итоге написал генератор оптимизированного nginx конфига и скрипт запуска сервера. Ничего сверхестественного, но убрал еще один шаг в настройке, а также дополнил его знаниями разработчика. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Best regards, Ruslan. From me на berekuk.ru Tue Nov 22 05:41:01 2011 From: me на berekuk.ru (=?utf-8?B?0JLRj9GH0LXRgdC70LDQsiDQnNCw0YLRjtGF0LjQvQ==?=) Date: Tue, 22 Nov 2011 17:41:01 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LDRgtC1?= =?utf-8?b?0LvQtdC8?= In-Reply-To: References: Message-ID: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> On Nov 22, 2011, at 1:35, Ruslan Zakirov wrote: > 2011/11/21 Denis Evdokimov : >> POSIX::setuid не то? > > Пока остановился на fork+setgid+setuid+exec. Не забудь про setpgrp, не забудь переоткрыть stdin/stdout/stderr, про double fork для полного детача от родительского процесса, и про то, что все остальные fh надо переоткрыть. Или забудь про эту затею и пользуйся нормальным демонизатором, как минимум Proc::Daemon'ом, а лучше сразу ubic'ом :) -- Вячеслав Матюхин http://friendfeed.com/mmcleric http://berekuk.ru From onokonem на gmail.com Tue Nov 22 05:52:16 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Tue, 22 Nov 2011 16:52:16 +0300 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> References: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> Message-ID: > все остальные fh надо переоткрыть Как раз не надо. лог - к примеру - открывается под рутом, а потом делается drop privilegies. и файлец пишется, и опасности нет. From ruz на bestpractical.com Tue Nov 22 06:00:01 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 22 Nov 2011 18:00:01 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> References: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> Message-ID: 2011/11/22 Вячеслав Матюхин : > > On Nov 22, 2011, at 1:35, Ruslan Zakirov wrote: > >> 2011/11/21 Denis Evdokimov : >>> POSIX::setuid не то? >> >> Пока остановился на fork+setgid+setuid+exec. > > Не забудь про setpgrp, не забудь переоткрыть stdin/stdout/stderr, про double fork для полного детача от родительского процесса, и про то, что все остальные fh надо переоткрыть. Мне повезло и plackup -s FCGI умеет демонизироваться :) > Или забудь про эту затею и пользуйся нормальным демонизатором, как минимум Proc::Daemon'ом, а И где вы раньше были с Proc::Daemon. Я бы хоть подглядел что они делают. > лучше сразу ubic'ом :) > > > -- > Вячеслав Матюхин > http://friendfeed.com/mmcleric > http://berekuk.ru > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From mons на cpan.org Tue Nov 22 06:14:27 2011 From: mons на cpan.org (Mons Anderson) Date: Tue, 22 Nov 2011 18:14:27 +0400 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: References: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> Message-ID: <201111221814.27857.mons@cpan.org> Я менял $> и $) //github.com/Mons/Daemond lib/Daemond/Daemonization.pm#sub change_user On Tuesday 22 November 2011 18:00:01 Ruslan Zakirov wrote: > 2011/11/22 Вячеслав Матюхин : > > On Nov 22, 2011, at 1:35, Ruslan Zakirov wrote: > >> 2011/11/21 Denis Evdokimov : > >>> POSIX::setuid не то? > >> > >> Пока остановился на fork+setgid+setuid+exec. > > > > Не забудь про setpgrp, не забудь переоткрыть stdin/stdout/stderr, про > > double fork для полного детача от родительского процесса, и про то, что > > все остальные fh надо переоткрыть. > > Мне повезло и plackup -s FCGI умеет демонизироваться :) > > > Или забудь про эту затею и пользуйся нормальным демонизатором, как > > минимум Proc::Daemon'ом, а > > И где вы раньше были с Proc::Daemon. Я бы хоть подглядел что они делают. > > > лучше сразу ubic'ом :) > > > > > > > > > > > > -- > > Вячеслав Матюхин > > http://friendfeed.com/mmcleric > > http://berekuk.ru > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > -- > Best regards, Ruslan. -- Mons Anderson aka Vladimir Perepelitsa / #99779956 / quanth на irc.freenode.net From mons на cpan.org Tue Nov 22 06:19:44 2011 From: mons на cpan.org (Mons Anderson) Date: Tue, 22 Nov 2011 18:19:44 +0400 Subject: [Moscow.pm] =?koi8-r?b?zsXTy8/M2MvPIM/C3cnIINfP0NLP08/XIM7B3snO?= =?koi8-r?b?wcDdxcfPICIg0NLPx9LBzc3J09TBICI=?= In-Reply-To: References: <201111181658.35005.mons@cpan.org> Message-ID: <201111221819.44932.mons@cpan.org> On Friday 18 November 2011 18:31:58 Ruslan Zakirov wrote: > 2011/11/18 Mons Anderson : > > * WebCrawling > > - Web::Scraper > > Почему не mojo агент? > Mojo::UserAgent + Mojo::DOM* - тоже -- Mons Anderson aka Vladimir Perepelitsa / #99779956 / quanth на irc.freenode.net From zzz на zzz.org.ua Tue Nov 22 06:57:05 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Tue, 22 Nov 2011 16:57:05 +0200 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: <201111221814.27857.mons@cpan.org> References: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> <201111221814.27857.mons@cpan.org> Message-ID: On Tue, Nov 22, 2011 at 4:14 PM, Mons Anderson wrote: > Я менял $> и $) Вот это на запись лучше вообще не юзать. В p5p как раз обсуждают deprecation в честь POSIX::* From evdokimov.denis на gmail.com Tue Nov 22 07:10:24 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Tue, 22 Nov 2011 18:10:24 +0300 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: References: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> <201111221814.27857.mons@cpan.org> Message-ID: Рекомендую почитать http://progbook.ru/perl/226-shtain_razrabotka_setevyh_programm_na_perl.html В частности главу "Применение демонов в системах UNIX" Там очень кратно, но при этом подробно описано, что и для чего должен сделать скрипт, чтоб стать "правильным" демоном. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From me на berekuk.ru Tue Nov 22 07:53:17 2011 From: me на berekuk.ru (=?utf-8?B?0JLRj9GH0LXRgdC70LDQsiDQnNCw0YLRjtGF0LjQvQ==?=) Date: Tue, 22 Nov 2011 19:53:17 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LDRgtC1?= =?utf-8?b?0LvQtdC8?= In-Reply-To: References: <0114238C-F823-4AA5-8F31-A839361136B6@berekuk.ru> Message-ID: <1D799148-8959-4D48-9BD8-B22FDD82C846@berekuk.ru> On Nov 22, 2011, at 18:00, Ruslan Zakirov wrote: > 2011/11/22 Вячеслав Матюхин : >> >> On Nov 22, 2011, at 1:35, Ruslan Zakirov wrote: >> >>> 2011/11/21 Denis Evdokimov : >>>> POSIX::setuid не то? >>> >>> Пока остановился на fork+setgid+setuid+exec. >> >> Не забудь про setpgrp, не забудь переоткрыть stdin/stdout/stderr, про double fork для полного детача от родительского процесса, и про то, что все остальные fh надо переоткрыть. > > Мне повезло и plackup -s FCGI умеет демонизироваться :) А останавливать как? Проверять статус? Мониторить? > >> Или забудь про эту затею и пользуйся нормальным демонизатором, как минимум Proc::Daemon'ом, а > > И где вы раньше были с Proc::Daemon. Я бы хоть подглядел что они делают. > Ну, они делают это одновременно с демонизацией. Так что там просто POSIX::setuid (у них даже поддержки групп нет). Я в Ubic'е это делаю через $>, $<, $(, $), код тут: https://metacpan.org/source/MMCLERIC/Ubic-1.35/lib/Ubic/Credentials/OS/POSIX.pm. У меня кода намного больше, потому что: 1) поддерживаются группы; 2) правильно транслируются текстовые имена в числовые; 3) есть проверки, что операция выполнилась успешно. PS: с каких пор мы на "вы"? :) >> лучше сразу ubic'ом :) > > > >> >> >> -- >> Вячеслав Матюхин >> http://friendfeed.com/mmcleric >> http://berekuk.ru >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > -- > Best regards, Ruslan. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Вячеслав Матюхин http://friendfeed.com/mmcleric http://berekuk.ru From worldmind на mail.ru Wed Nov 23 02:18:10 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 14:18:10 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) Message-ID: <1322043490.2034.48.camel@host> Всем привет, Взял примеры http демонов с http://twistedmatrix.com/trac/ и http://search.cpan.org/perldoc?AnyEvent::HTTPD чуть допилил до похожего на реальность - они сериализуют запрос в json и кладут в редис, алгоритм вроде идентичный, однако судя по тестам ab -c 100 -n 10000 'http://localhost:8080/?param=value1¶m2=value2&tid=6666' twisted чуть больше чем в три раза быстрее (~1500 req/sec против ~500 req/sec), пробовал убрать json и редис в перловом демоне - разницы нет, он такой же медленный Что не так - нужно выбросить AnyEvent::HTTPD ? тюнить AnyEvent или юзать Twisted ? исходники в аттаче, тестил на обычном писюке с Ubuntu ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: twisted-web.py Type: text/x-python Size: 610 bytes Desc: отсутствует URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: anyevent-http.pl Type: application/x-perl Size: 530 bytes Desc: отсутствует URL: From d3fin3 на gmail.com Wed Nov 23 02:54:19 2011 From: d3fin3 на gmail.com (und3f) Date: Wed, 23 Nov 2011 12:54:19 +0200 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322043490.2034.48.camel@host> References: <1322043490.2034.48.camel@host> Message-ID: <4ECCD0DB.2080600@gmail.com> Добрый день. Вы используете синхронный клиент Redis, который блокирует приложение на время запроса. Попробуйте использовать AnyEvent::Redis. 23.11.2011 12:18, Alexey Shrub пишет: > Всем привет, > > Взял примеры http демонов с > http://twistedmatrix.com/trac/ > и > http://search.cpan.org/perldoc?AnyEvent::HTTPD > > чуть допилил до похожего на реальность - они сериализуют запрос в json и > кладут в редис, алгоритм вроде идентичный, однако судя по тестам > ab -c 100 -n 10000 > 'http://localhost:8080/?param=value1¶m2=value2&tid=6666' > > twisted чуть больше чем в три раза быстрее (~1500 req/sec против ~500 > req/sec), пробовал убрать json и редис в перловом демоне - разницы нет, > он такой же медленный > > Что не так - нужно выбросить AnyEvent::HTTPD ? тюнить AnyEvent или юзать > Twisted ? > > исходники в аттаче, тестил на обычном писюке с Ubuntu > > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Wed Nov 23 03:50:11 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 15:50:11 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <4ECCD0DB.2080600@gmail.com> References: <1322043490.2034.48.camel@host> <4ECCD0DB.2080600@gmail.com> Message-ID: <1322049011.2034.52.camel@host> On Ср., 2011-11-23 at 12:54 +0200, und3f wrote: > Вы используете синхронный клиент Redis, который блокирует приложение > на время запроса. Попробуйте использовать AnyEvent::Redis. Да, мой косяк, однако AnyEvent::HTTPD и статику отдаёт с той же скоростью, о чём я написал, так что влияния редиса тут нет. From mons на rambler-co.ru Wed Nov 23 03:52:08 2011 From: mons на rambler-co.ru (Mons Anderson) Date: Wed, 23 Nov 2011 15:52:08 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322043490.2034.48.camel@host> References: <1322043490.2034.48.camel@host> Message-ID: + к тому, что сказал und3f: как минимум use EV; EV::loop() вместо httpd->run; Но как я посмотрел - особого выигрыша это не даст (~ +10%). Погонял свой (AnyEvent::HTTP::Server @ gthub) - производительность несколько больше ( даже с учетом включеной отладки ), но все равно значительно хуже, чем у twisted. Думаю мой можно затюнить где-то до 1k (против 1.5k у twisted) Проблемы судя по профайлеру в AE::Handle. Вообще по хорошему к базовым вещам AE (таким как Handle, Socket, ...) нужно писать XS версии. PS: спасибо за наводку: подумаю на тему отказаться от AE::Handle в своей реализации. On 23.11.2011, at 14:18, Alexey Shrub wrote: > Всем привет, > > Взял примеры http демонов с > http://twistedmatrix.com/trac/ > и > http://search.cpan.org/perldoc?AnyEvent::HTTPD > > чуть допилил до похожего на реальность - они сериализуют запрос в json и > кладут в редис, алгоритм вроде идентичный, однако судя по тестам > ab -c 100 -n 10000 > 'http://localhost:8080/?param=value1¶m2=value2&tid=6666' > > twisted чуть больше чем в три раза быстрее (~1500 req/sec против ~500 > req/sec), пробовал убрать json и редис в перловом демоне - разницы нет, > он такой же медленный > > Что не так - нужно выбросить AnyEvent::HTTPD ? тюнить AnyEvent или юзать > Twisted ? > > исходники в аттаче, тестил на обычном писюке с Ubuntu > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From ruz на bestpractical.com Wed Nov 23 03:59:00 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Wed, 23 Nov 2011 15:59:00 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322043490.2034.48.camel@host> References: <1322043490.2034.48.camel@host> Message-ID: 2011/11/23 Alexey Shrub : > Всем привет, > > Взял примеры http демонов с > http://twistedmatrix.com/trac/ > и > http://search.cpan.org/perldoc?AnyEvent::HTTPD > > чуть допилил до похожего на реальность - они сериализуют запрос в json и > кладут в редис, алгоритм вроде идентичный, однако судя по тестам > ab -c 100 -n 10000 > 'http://localhost:8080/?param=value1¶m2=value2&tid=6666' > > twisted чуть больше чем в три раза быстрее (~1500 req/sec против ~500 > req/sec), пробовал убрать json и редис в перловом демоне - разницы нет, > он такой же медленный > > Что не так - нужно выбросить AnyEvent::HTTPD ? тюнить AnyEvent или юзать > Twisted ? http://cpansearch.perl.org/src/ELMEX/AnyEvent-HTTPD-0.93/lib/AnyEvent/HTTPD/HTTPConnection.pm Туда нужно воткнуть HTTP::Parser::XS и тогда сравнивать, а так оно парсит перлом. Еще половина скорее всего уходит на диспечер. Можно оптимизировать, но смысла нет, когда есть twiggy: http://search.cpan.org/~miyagawa/Twiggy-0.1010/lib/Twiggy.pm c100/n10000 У меня AE::HTTPD - 126.27 [#/sec] Twiggy - 3995.35 [#/sec] Выкинул все, просто текстовой ответ "boo". Странно, что при большем количестве запросов (n>20000) twiggy может несколько запросов отложить на 10-20 секунд. 98% 113 99% 10958 100% 19096 (longest request) У AE::HTTPD похожая ситуация, но не так ярко выражена или просто количество запросов слишком маленькое чтобы получить большие задержки. Самое главное, что оба показывают значительные относительные задержки для отдельных запросов при увеличении общего количества запросов. Попробовал повысить конкуренцию и появились ошибки. Разбираться не буду. > исходники в аттаче, тестил на обычном писюке с Ubuntu > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Best regards, Ruslan. From worldmind на mail.ru Wed Nov 23 04:32:51 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 16:32:51 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322043490.2034.48.camel@host> References: <1322043490.2034.48.camel@host> Message-ID: <1322051571.2034.61.camel@host> Если гонять в холостую, то twisted даёт примерно 2300 запросов, а AnyEvent::HTTPD всё те же 500, что-то там не так. Исходники с пустыми циклами в аттаче ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: twisted-web.void.py Type: text/x-python Size: 359 bytes Desc: отсутствует URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: anyevent-http.void.pl Type: application/x-perl Size: 307 bytes Desc: отсутствует URL: From d3fin3 на gmail.com Wed Nov 23 04:38:09 2011 From: d3fin3 на gmail.com (Sergey Zasenko) Date: Wed, 23 Nov 2011 14:38:09 +0200 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322051571.2034.61.camel@host> References: <1322043490.2034.48.camel@host> <1322051571.2034.61.camel@host> Message-ID: <4ECCE931.7050602@gmail.com> Написал полный аналог исходного приложения на Twisted: https://gist.github.com/1388567 23.11.2011 14:32, Alexey Shrub пишет: > Если гонять в холостую, то twisted даёт примерно 2300 запросов, а > AnyEvent::HTTPD всё те же 500, что-то там не так. > > Исходники с пустыми циклами в аттаче > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Wed Nov 23 04:39:21 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 23 Nov 2011 16:39:21 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322043490.2034.48.camel@host> References: <1322043490.2034.48.camel@host> Message-ID: <20111123123921.GG3161@apache.rbscorp.ru> > Всем привет, > Взял примеры http демонов с > http://twistedmatrix.com/trac/ > и > http://search.cpan.org/perldoc?AnyEvent::HTTPD > чуть допилил до похожего на реальность - они сериализуют запрос в json и > кладут в редис, алгоритм вроде идентичный, однако судя по тестам > ab -c 100 -n 10000 > 'http://localhost:8080/?param=value1¶m2=value2&tid=6666' > twisted чуть больше чем в три раза быстрее (~1500 req/sec против ~500 > req/sec), пробовал убрать json и редис в перловом демоне - разницы нет, > он такой же медленный > Что не так - нужно выбросить AnyEvent::HTTPD ? тюнить AnyEvent или юзать > Twisted ? а какой бакенд для AE используется? EV, надеюсь? From worldmind на mail.ru Wed Nov 23 04:43:33 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 16:43:33 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> Message-ID: <1322052213.2034.62.camel@host> On Ср., 2011-11-23 at 15:59 +0400, Ruslan Zakirov wrote: > http://search.cpan.org/~miyagawa/Twiggy-0.1010/lib/Twiggy.pm > > c100/n10000 > У меня AE::HTTPD - 126.27 [#/sec] > Twiggy - 3995.35 [#/sec] Спасибо, нужно будет поглядеть From worldmind на mail.ru Wed Nov 23 04:45:24 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 16:45:24 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <20111123123921.GG3161@apache.rbscorp.ru> References: <1322043490.2034.48.camel@host> <20111123123921.GG3161@apache.rbscorp.ru> Message-ID: <1322052324.2034.64.camel@host> On Ср., 2011-11-23 at 16:39 +0400, Ivan Petrov wrote: > а какой бакенд для AE используется? EV, надеюсь? да, пробовали и Perl - те же результаты From i.petro.77.00 на gmail.com Wed Nov 23 04:48:14 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 23 Nov 2011 16:48:14 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> Message-ID: <20111123124813.GH3161@apache.rbscorp.ru> > Туда нужно воткнуть HTTP::Parser::XS и тогда сравнивать, а так оно > парсит перлом. Еще половина скорее всего уходит на диспечер. Можно > оптимизировать, но смысла нет, когда есть twiggy: > http://search.cpan.org/~miyagawa/Twiggy-0.1010/lib/Twiggy.pm > c100/n10000 > У меня AE::HTTPD - 126.27 [#/sec] > Twiggy - 3995.35 [#/sec] результаты интересны. С документацией только что-то у них скудновато. есть ссылка на пример кода простого сервера с двумя роутами? From akzhan.abdulin на gmail.com Wed Nov 23 04:53:46 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Wed, 23 Nov 2011 16:53:46 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322043490.2034.48.camel@host> References: <1322043490.2034.48.camel@host> Message-ID: Вы попробуйте на своем железе ещё Node.JS 0.6 прогнать :) 23 ноября 2011 г. 14:18 пользователь Alexey Shrub написал: > Всем привет, > > Взял примеры http демонов с > http://twistedmatrix.com/trac/ > и > http://search.cpan.org/perldoc?AnyEvent::HTTPD > > чуть допилил до похожего на реальность - они сериализуют запрос в json и > кладут в редис, алгоритм вроде идентичный, однако судя по тестам > ab -c 100 -n 10000 > 'http://localhost:8080/?param=value1¶m2=value2&tid=6666' > > twisted чуть больше чем в три раза быстрее (~1500 req/sec против ~500 > req/sec), пробовал убрать json и редис в перловом демоне - разницы нет, > он такой же медленный > > Что не так - нужно выбросить AnyEvent::HTTPD ? тюнить AnyEvent или юзать > Twisted ? > > исходники в аттаче, тестил на обычном писюке с Ubuntu > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Wed Nov 23 05:03:31 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 17:03:31 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <4ECCE931.7050602@gmail.com> References: <1322043490.2034.48.camel@host> <1322051571.2034.61.camel@host> <4ECCE931.7050602@gmail.com> Message-ID: <1322053412.2034.73.camel@host> On Ср., 2011-11-23 at 14:38 +0200, Sergey Zasenko wrote: > Написал полный аналог исходного приложения на Twisted: > https://gist.github.com/1388567 прирост есть, где-то 800 запросов получается, лучше, но всё равно в 2 раза хуже чем twisted с _синхронным_ клиентом. Плюс похоже эта версия с каждым тестом всё медленнее - в пятом тесте уже 650 запросов From worldmind на mail.ru Wed Nov 23 05:05:13 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 17:05:13 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <20111123124813.GH3161@apache.rbscorp.ru> References: <1322043490.2034.48.camel@host> <20111123124813.GH3161@apache.rbscorp.ru> Message-ID: <1322053514.2034.74.camel@host> On Ср., 2011-11-23 at 16:48 +0400, Ivan Petrov wrote: > результаты интересны. С документацией только что-то у них скудновато. > есть ссылка на пример кода простого сервера с двумя роутами? Присоединяюсь, нужен живой пример From d3fin3 на gmail.com Wed Nov 23 05:03:44 2011 From: d3fin3 на gmail.com (Sergey Zasenko) Date: Wed, 23 Nov 2011 15:03:44 +0200 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322053412.2034.73.camel@host> References: <1322043490.2034.48.camel@host> <1322051571.2034.61.camel@host> <4ECCE931.7050602@gmail.com> <1322053412.2034.73.camel@host> Message-ID: <4ECCEF30.8090204@gmail.com> Я еще забыл это все запустить через starman ? https://gist.github.com/1388567 23.11.2011 15:03, Alexey Shrub пишет: > On Ср., 2011-11-23 at 14:38 +0200, Sergey Zasenko wrote: >> Написал полный аналог исходного приложения на Twisted: >> https://gist.github.com/1388567 > > прирост есть, где-то 800 запросов получается, лучше, но всё равно в 2 > раза хуже чем twisted с _синхронным_ клиентом. > Плюс похоже эта версия с каждым тестом всё медленнее - в пятом тесте уже > 650 запросов > From worldmind на mail.ru Wed Nov 23 05:09:43 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 17:09:43 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> Message-ID: <1322053783.2034.76.camel@host> On Ср., 2011-11-23 at 16:53 +0400, Akzhan Abdulin wrote: > Вы попробуйте на своем железе ещё Node.JS 0.6 прогнать :) Прямо сейчас нет времени разбираться, дадите инструкцию - поставь то-то, запусти скрипт такой-то, тогда без проблем потестирую From worldmind на mail.ru Wed Nov 23 05:23:31 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Wed, 23 Nov 2011 17:23:31 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <4ECCEF30.8090204@gmail.com> References: <1322043490.2034.48.camel@host> <1322051571.2034.61.camel@host> <4ECCE931.7050602@gmail.com> <1322053412.2034.73.camel@host> <4ECCEF30.8090204@gmail.com> Message-ID: <1322054611.2034.79.camel@host> On Ср., 2011-11-23 at 15:03 +0200, Sergey Zasenko wrote: > Я еще забыл это все запустить через starman ? > https://gist.github.com/1388567 А так те же 1500 запросов в секунду, причём стабильно. Типо успех, правда усилий поболе потребовалось From zzz на zzz.org.ua Wed Nov 23 06:53:07 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Wed, 23 Nov 2011 16:53:07 +0200 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322052324.2034.64.camel@host> References: <1322043490.2034.48.camel@host> <20111123123921.GG3161@apache.rbscorp.ru> <1322052324.2034.64.camel@host> Message-ID: On Wed, Nov 23, 2011 at 2:45 PM, Alexey Shrub wrote: > On Ср., 2011-11-23 at 16:39 +0400, Ivan Petrov wrote: >> а какой бакенд для AE используется? EV, надеюсь? > > да, пробовали и Perl - те же результаты Попробуйте nginx-perl: https://github.com/zzzcpan/nginx-perl Тест ab покажет грубо в 10 раз быстрее, чем AnyEvent::HTTPD Собрать и запустить можно так: git clone git на github.com:zzzcpan/nginx-perl.git nginx-perl cd nginx-perl ./configure && make ./objs/nginx-perl -p eg/helloworld ... ab -c100 -n10000 http://127.0.0.1:55555/ From ruz на bestpractical.com Wed Nov 23 08:25:27 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Wed, 23 Nov 2011 20:25:27 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322053514.2034.74.camel@host> References: <1322043490.2034.48.camel@host> <20111123124813.GH3161@apache.rbscorp.ru> <1322053514.2034.74.camel@host> Message-ID: 2011/11/23 Alexey Shrub : > On Ср., 2011-11-23 at 16:48 +0400, Ivan Petrov wrote: >> результаты интересны. С документацией только что-то у них скудновато. >> есть ссылка на пример кода простого сервера с двумя роутами? > > Присоединяюсь, нужен живой пример Какой пример? Это PSGI. $ cat app.psgi #!/usr/bin/perl use v5.10; use utf8; use strict; use warnings; my $app = sub { my $env = shift; return [ 200, ['Content-Type' => 'text/plain' ], [ "boo" ] ]; }; Вот и все. Можете запустить https://gist.github.com/1388567 под ним. -- Best regards, Ruslan. From worldmind на mail.ru Thu Nov 24 00:32:52 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Thu, 24 Nov 2011 12:32:52 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> Message-ID: <1322123572.3420.21.camel@host> On Ср., 2011-11-23 at 15:59 +0400, Ruslan Zakirov wrote: > смысла нет, когда есть twiggy: Да, twiggi вхолостую выдаёт более 5000 запросов в секунду, это если такой файлик my $app = sub { my $env = shift; return [ 200, ['Content-Type' => 'text/plain'], [ "Hello stranger from $env->{REMOTE_ADDR}!"], ]; }; запустить так twiggy --listen :8080 hello.psgi а если нагрузить его всей ранее описанной логикой, то получим 2500 запросов, что явно успех, правда не уверен что всё верно сделал, исходник в аттаче ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: hello.psgi Type: application/x-perl Size: 424 bytes Desc: отсутствует URL: From i.petro.77.00 на gmail.com Thu Nov 24 02:35:36 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 24 Nov 2011 14:35:36 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <20111123124813.GH3161@apache.rbscorp.ru> <1322053514.2034.74.camel@host> Message-ID: <20111124103536.GK3769@apache.rbscorp.ru> >> On Ср., 2011-11-23 at 16:48 +0400, Ivan Petrov wrote: >>> результаты интересны. С документацией только что-то у них скудновато. >>> есть ссылка на пример кода простого сервера с двумя роутами? >> >> Присоединяюсь, нужен живой пример > Какой пример? Это PSGI. > $ cat app.psgi > #!/usr/bin/perl > use v5.10; > use utf8; > use strict; > use warnings; > my $app = sub { > my $env = shift; > return [ 200, ['Content-Type' => 'text/plain' ], [ "boo" ] ]; > }; > Вот и все. Можете запустить https://gist.github.com/1388567 под ним. ага, то есть контроллера нет. ну вроде его несложно написать... я к тому что у нас много скопилось тестов на AE::HTTPD. From ruz на bestpractical.com Thu Nov 24 03:15:28 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Thu, 24 Nov 2011 15:15:28 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322123572.3420.21.camel@host> References: <1322043490.2034.48.camel@host> <1322123572.3420.21.camel@host> Message-ID: 2011/11/24 Alexey Shrub : > а если нагрузить его всей ранее описанной логикой, то получим 2500 > запросов, что явно успех, правда не уверен что всё верно сделал, > исходник в аттаче Сергей ранее написал уже полный вариант: https://gist.github.com/1388567 Можно ускорить, если не ждать ответ от редиски. -- Best regards, Ruslan. From akzhan.abdulin на gmail.com Thu Nov 24 03:36:23 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Thu, 24 Nov 2011 15:36:23 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322053783.2034.76.camel@host> References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> Message-ID: Инструкция по установке: Надо иметь python 2.6 или выше, а также libssl-dev. git clone git://github.com/joyent/node.git cd node git checkout v0.6.2 ./configure make -j2 # -j sets the number of jobs to run [sudo] make install Далее создать сервер example.js: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n');}).listen(14337, "0.0.0.0"); console.log('Server running at http://0.0.0.0:14337/'); Запуск node example.js 23 ноября 2011 г. 17:09 пользователь Alexey Shrub написал: > On Ср., 2011-11-23 at 16:53 +0400, Akzhan Abdulin wrote: > > Вы попробуйте на своем железе ещё Node.JS 0.6 прогнать :) > > Прямо сейчас нет времени разбираться, дадите инструкцию - поставь то-то, > запусти скрипт такой-то, тогда без проблем потестирую > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Thu Nov 24 03:43:49 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Thu, 24 Nov 2011 15:43:49 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <1322123572.3420.21.camel@host> Message-ID: <1322135029.3420.22.camel@host> On Чт., 2011-11-24 at 15:15 +0400, Ruslan Zakirov wrote: > Сергей ранее написал уже полный вариант: https://gist.github.com/1388567 этот вариант под twiggy выдаёт 1200 From akzhan.abdulin на gmail.com Thu Nov 24 04:03:42 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Thu, 24 Nov 2011 16:03:42 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> Message-ID: Касательно Redis: Сперва ставим менеджер пакетов npm curl http://npmjs.org/install.sh | sh Далее ставим пакеты для Redis: npm install hiredis redis Далее создать сервер example.js: var http = require('http'), redis = require('redis'), url = require('url');var redisClient = redis.createClient(); http.createServer(function (req, res) { var reqUrl = url.parse(req.url, true); if (req.method !== 'GET' || reqUrl.pathname !== '/') { res.writeHead(412, {'Content-Type': 'text/plain'}); res.end('Bad Request\n'); return; } res.writeHead(200, {'Content-Type': 'text/plain'}); var tid = reqUrl.query.tid; redisClient.set(tid, JSON.serialize(reqUrl.query), function() { res.end('SET!\n'); });}).listen(14337, "0.0.0.0"); console.log('Server running at http://0.0.0.0:14337/'); 24 ноября 2011 г. 15:36 пользователь Akzhan Abdulin < akzhan.abdulin на gmail.com> написал: > Инструкция по установке: > > Надо иметь python 2.6 или выше, а также libssl-dev. > > git clone git://github.com/joyent/node.git > cd node > git checkout v0.6.2 > ./configure > make -j2 # -j sets the number of jobs to run > [sudo] make install > > > Далее создать сервер example.js: > > var http = require('http'); > http.createServer(function (req, res) { > res.writeHead(200, {'Content-Type': 'text/plain'}); > res.end('Hello World\n');}).listen(14337, "0.0.0.0"); > console.log('Server running at http://0.0.0.0:14337/'); > > > Запуск > node example.js > > 23 ноября 2011 г. 17:09 пользователь Alexey Shrub написал: > > On Ср., 2011-11-23 at 16:53 +0400, Akzhan Abdulin wrote: >> > Вы попробуйте на своем железе ещё Node.JS 0.6 прогнать :) >> >> Прямо сейчас нет времени разбираться, дадите инструкцию - поставь то-то, >> запусти скрипт такой-то, тогда без проблем потестирую >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Thu Nov 24 07:38:33 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Thu, 24 Nov 2011 17:38:33 +0200 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322123572.3420.21.camel@host> References: <1322043490.2034.48.camel@host> <1322123572.3420.21.camel@host> Message-ID: On Thu, Nov 24, 2011 at 10:32 AM, Alexey Shrub wrote: > On Ср., 2011-11-23 at 15:59 +0400, Ruslan Zakirov wrote: >>  смысла нет, когда есть twiggy: > > Да, twiggi вхолостую выдаёт более 5000 запросов в секунду, И все-таки, если гонитесь за запросами в секунду, то попробуйте nginx-perl или node.js. nginx-perl быстрее твигги в несколько раз "вхолостую", и догадываюсь, что чуть-чуть быстрее, чем node.js Но на самом деле это почти никогда не важно, как только ваше приложение перестало быть CPU-bound, тогда все и начинается. From mail на knutov.com Thu Nov 24 15:06:35 2011 From: mail на knutov.com (Nick Knutov) Date: Fri, 25 Nov 2011 05:06:35 +0600 Subject: [Moscow.pm] CTPP -> Xslate Message-ID: <4ECECDFB.6030502@knutov.com> А кто-нибудь использует Xslate? Как ощущения? Как в сравнении с CTPP? Есть ли относительно готовый способ научить его синтаксису (хотя бы большей части) CTPP? -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 From worldmind на mail.ru Thu Nov 24 21:49:25 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Fri, 25 Nov 2011 09:49:25 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> Message-ID: <1322200165.3175.1.camel@host> Ставил в итоге по другому, из тарбола с checkinstall - http://habrahabr.ru/blogs/webdev/95960/ вхолостую выдаёт 6500 не знаю соберусь ли вариант с редисом попробовать On Чт., 2011-11-24 at 15:36 +0400, Akzhan Abdulin wrote: > Инструкция по установке: > > > Надо иметь python 2.6 или выше, а также libssl-dev. > git clone git://github.com/joyent/node.git > cd node > git checkout v0.6.2 > ./configure > make -j2 # -j sets the number of jobs to run > [sudo] make install > > > Далее создать сервер example.js: > var http = require('http'); > http.createServer(function (req, res) { > res.writeHead(200, {'Content-Type': 'text/plain'}); > res.end('Hello World\n'); > }).listen(14337, "0.0.0.0"); > console.log('Server running at http://0.0.0.0:14337/'); > > > Запуск > node example.js > > 23 ноября 2011 г. 17:09 пользователь Alexey Shrub > написал: > On Ср., 2011-11-23 at 16:53 +0400, Akzhan Abdulin wrote: > > Вы попробуйте на своем железе ещё Node.JS 0.6 прогнать :) > > > Прямо сейчас нет времени разбираться, дадите инструкцию - > поставь то-то, > запусти скрипт такой-то, тогда без проблем потестирую > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > From andy на shitov.ru Fri Nov 25 04:20:51 2011 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 25 Nov 2011 13:20:51 +0100 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: <332131320915401@web93.yandex.ru> References: <53481320152670@web62.yandex.ru> <271961320307143@web147.yandex.ru> <69B10C28-309C-483F-8B57-4663B6C6DF7E@rambler-co.ru> <332131320915401@web93.yandex.ru> Message-ID: Привет! Появились скидки 40-50% на гостиницы в Санкт-Петербурге: http://ostrovok.ru/deals/. Есть места на даты воркшопа! 2011/11/10 Orlovsky Alexander : > я начал уже готовить один доклад, засабмитил его краткое описание на сайт: > http://event.perlrussia.org/saintperl3/ > > 03.11.2011, 19:04, "Mons Anderson" : >> Как площадку думаю вполне пробью Рамблер >> >> On 03.11.2011, at 14:11, Ruslan Zakirov wrote: >>>  Нужна площадка и желающие рассказать. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From despairr на gmail.com Fri Nov 25 06:01:46 2011 From: despairr на gmail.com (Walery Studennikov) Date: Fri, 25 Nov 2011 18:01:46 +0400 Subject: [Moscow.pm] CTPP -> Xslate In-Reply-To: <4ECECDFB.6030502@knutov.com> References: <4ECECDFB.6030502@knutov.com> Message-ID: 25 ноября 2011 г. 3:06 пользователь Nick Knutov написал: > А кто-нибудь использует Xslate? Как ощущения? Как в сравнении с CTPP? Есть > ли относительно готовый способ научить его синтаксису (хотя бы большей > части) CTPP? Были мечты использовать Xslate вместо TT (Text::Xslate::Syntax::TTerse), т.к. оно типа сильно быстрее, но... всё-таки в синтаксисе куча мелких отличий от "настоящего" TT2, не все фичи / синтакс конструкции поддерживаются, при том что мы их сильно юзаем. Пару часов пробовал переделать наши шаблоны под прокрустово ложе Text::Xslate::Syntax::TTerse, чтобы хотя бы одна страница нормально обрабатывалась, но плюнул, терпения не хватило ;) Всё таки не хочется вылезать с такого роллс-ройса и жертвовать какими-то фичами / синтаксическими плюшками. Поэтому приходится пока юзать TT2 на стероидах ;) Были даже мысли назначить какую-то премию (скажем, $10K) для того, кто допилит Xslate до полноценной поддержки синтаксиса TT2. Конкурс какой-нибудь объявить ;) -- Walery Studennikov http://www.reg.ru/ From tarkhil на over.ru Fri Nov 25 06:06:10 2011 From: tarkhil на over.ru (Alex Povolotsky) Date: Fri, 25 Nov 2011 18:06:10 +0400 Subject: [Moscow.pm] =?koi8-r?b?/M7UydTJINcgVVRGIC0gy8HLPw==?= Message-ID: <4ECFA0D2.8010900@over.ru> Добрый вечер на меня упал (и обещал регулярно падать еще) XML-файл с такой вот фигней Автомобильный коммуникатор DriveMotion – оригинальный подарок автолюбителю Попытка изменить источник этого XML'я требует машины времени и коррекции ДНК. Следовательно, нужно как-то привести ЭТО в человеческий вид. Может быть, есть готовый осмысленный модуль? Быстрое гугление не помогло. Alex P.S. Обсуждать форму рук генератора, необходимость соблюдать стандарты, альтернативные форматы и проч. нет необходимости. From worldmind на mail.ru Fri Nov 25 06:13:34 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Fri, 25 Nov 2011 18:13:34 +0400 Subject: [Moscow.pm] =?koi8-r?b?/M7UydTJINcgVVRGIC0gy8HLPw==?= In-Reply-To: <4ECFA0D2.8010900@over.ru> References: <4ECFA0D2.8010900@over.ru> Message-ID: <1322230414.3175.13.camel@host> http://stackoverflow.com/questions/576095/how-can-i-decode-html-entities так? On Пт., 2011-11-25 at 18:06 +0400, Alex Povolotsky wrote: > Добрый вечер > > на меня упал (и обещал регулярно падать еще) XML-файл с такой вот фигней > > Автомобильный > коммуникатор > DriveMotion – > оригинальный > подарок > автолюбителю > > Попытка изменить источник этого XML'я требует машины времени и коррекции > ДНК. Следовательно, нужно как-то привести ЭТО в человеческий вид. > > Может быть, есть готовый осмысленный модуль? Быстрое гугление не помогло. > > Alex > P.S. Обсуждать форму рук генератора, необходимость соблюдать стандарты, > альтернативные форматы и проч. нет необходимости. From tarkhil на over.ru Fri Nov 25 06:20:44 2011 From: tarkhil на over.ru (Alex Povolotsky) Date: Fri, 25 Nov 2011 18:20:44 +0400 Subject: [Moscow.pm] =?koi8-r?b?/M7UydTJINcgVVRGIC0gy8HLPw==?= In-Reply-To: <1322230414.3175.13.camel@host> References: <4ECFA0D2.8010900@over.ru> <1322230414.3175.13.camel@host> Message-ID: <4ECFA43C.7070302@over.ru> On 11/25/11 18:13, Alexey Shrub wrote: > http://stackoverflow.com/questions/576095/how-can-i-decode-html-entities > > так? Спасибо. Это оно. > On Пт., 2011-11-25 at 18:06 +0400, Alex Povolotsky wrote: >> Добрый вечер >> >> на меня упал (и обещал регулярно падать еще) XML-файл с такой вот фигней >> >> Автомобильный >> коммуникатор >> DriveMotion– >> оригинальный >> подарок >> автолюбителю >> >> Попытка изменить источник этого XML'я требует машины времени и коррекции >> ДНК. Следовательно, нужно как-то привести ЭТО в человеческий вид. >> >> Может быть, есть готовый осмысленный модуль? Быстрое гугление не помогло. >> >> Alex >> P.S. Обсуждать форму рук генератора, необходимость соблюдать стандарты, >> альтернативные форматы и проч. нет необходимости. > From andy на shitov.ru Fri Nov 25 06:49:48 2011 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 25 Nov 2011 15:49:48 +0100 Subject: [Moscow.pm] =?utf-8?b?0K3QvdGC0LjRgtC4INCyIFVURiAtINC60LDQuj8=?= In-Reply-To: <4ECFA43C.7070302@over.ru> References: <4ECFA0D2.8010900@over.ru> <1322230414.3175.13.camel@host> <4ECFA43C.7070302@over.ru> Message-ID: Можно просто открыть в браузере :-) 2011/11/25 Alex Povolotsky : > On 11/25/11 18:13, Alexey Shrub wrote: >> >> http://stackoverflow.com/questions/576095/how-can-i-decode-html-entities >> >> так? > > Спасибо. Это оно. >> >> On Пт., 2011-11-25 at 18:06 +0400, Alex Povolotsky wrote: >>> >>> Добрый вечер >>> >>> на меня упал (и обещал регулярно падать еще) XML-файл с такой вот фигней >>> >>> >>> Автомобильный >>> >>> коммуникатор >>> DriveMotion– >>> >>> оригинальный >>> подарок >>> >>> автолюбителю >>> >>> Попытка изменить источник этого XML'я требует машины времени и коррекции >>> ДНК. Следовательно, нужно как-то привести ЭТО в человеческий вид. >>> >>> Может быть, есть готовый осмысленный модуль? Быстрое гугление не помогло. >>> >>> Alex >>> P.S. Обсуждать форму рук генератора, необходимость соблюдать стандарты, >>> альтернативные форматы и проч. нет необходимости. >> > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From tarkhil на over.ru Fri Nov 25 11:12:05 2011 From: tarkhil на over.ru (Alex Povolotsky) Date: Fri, 25 Nov 2011 23:12:05 +0400 Subject: [Moscow.pm] =?koi8-r?b?/M7UydTJINcgVVRGIC0gy8HLPw==?= In-Reply-To: <1322230414.3175.13.camel@host> References: <4ECFA0D2.8010900@over.ru> <1322230414.3175.13.camel@host> Message-ID: <4ECFE885.6080000@over.ru> On 11/25/11 18:13, Alexey Shrub wrote: > http://stackoverflow.com/questions/576095/how-can-i-decode-html-entities > > так? ПОЧТИ. Почему-то perl -MHTML::Entities -e 'while(<>) { print HTML::Entities::decode_entities($_); }' importcouponweb > importcouponweb.xml ругается на wide character in print, выдает нечто, что less показывает, как текстовый файл, а emacs (внезапно) - как \символы, и пишет предупреждение - Warning (emacs): File contents detected as raw-text. Consider adding an encoding attribute to the xml declaration, or saving as utf-8, as mandated by the xml specification. Я не догоняю (( Alex From sergiy.borodych на gmail.com Fri Nov 25 11:18:55 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Fri, 25 Nov 2011 21:18:55 +0200 Subject: [Moscow.pm] =?utf-8?b?0K3QvdGC0LjRgtC4INCyIFVURiAtINC60LDQuj8=?= In-Reply-To: <4ECFE885.6080000@over.ru> References: <4ECFA0D2.8010900@over.ru> <1322230414.3175.13.camel@host> <4ECFE885.6080000@over.ru> Message-ID: 2011/11/25 Alex Povolotsky : > On 11/25/11 18:13, Alexey Shrub wrote: >> >> http://stackoverflow.com/questions/576095/how-can-i-decode-html-entities >> >> так? > > ПОЧТИ. > > Почему-то > > perl -MHTML::Entities -e 'while(<>) { print > HTML::Entities::decode_entities($_); }' importcouponweb > > importcouponweb.xml > видимо нехватает binmode(STDOUT, ":encoding(UTF-8)"); # или просто :utf-8 чтоб без конверта > ругается на wide character in print, выдает нечто, что less показывает, как > текстовый файл, а emacs (внезапно) - как \символы, и пишет предупреждение - > > Warning (emacs): File contents detected as raw-text. >  Consider adding an encoding attribute to the xml declaration, >  or saving as utf-8, as mandated by the xml specification. а здесь возможно дело в BOM https://en.wikipedia.org/wiki/Byte_order_mark -- Sergiy Borodych From tarkhil на over.ru Fri Nov 25 11:21:33 2011 From: tarkhil на over.ru (Alex Povolotsky) Date: Fri, 25 Nov 2011 23:21:33 +0400 Subject: [Moscow.pm] =?koi8-r?b?/M7UydTJINcgVVRGIC0gy8HLPw==?= In-Reply-To: References: <4ECFA0D2.8010900@over.ru> <1322230414.3175.13.camel@host> <4ECFE885.6080000@over.ru> Message-ID: <4ECFEABD.6060202@over.ru> On 11/25/11 23:18, Sergiy Borodych wrote: > 2011/11/25 Alex Povolotsky: >> On 11/25/11 18:13, Alexey Shrub wrote: >>> http://stackoverflow.com/questions/576095/how-can-i-decode-html-entities >>> >>> так? >> ПОЧТИ. >> >> Почему-то >> >> perl -MHTML::Entities -e 'while(<>) { print >> HTML::Entities::decode_entities($_); }' importcouponweb> >> importcouponweb.xml >> > видимо нехватает > binmode(STDOUT, ":encoding(UTF-8)"); # или просто :utf-8 чтоб без конверта > Облин! Все счастливы. Спасибо. Все-таки UTF8 в перле - это немного черная магия Alex. From sergiy.borodych на gmail.com Fri Nov 25 11:35:32 2011 From: sergiy.borodych на gmail.com (Sergiy Borodych) Date: Fri, 25 Nov 2011 21:35:32 +0200 Subject: [Moscow.pm] =?utf-8?b?0K3QvdGC0LjRgtC4INCyIFVURiAtINC60LDQuj8=?= In-Reply-To: <4ECFEABD.6060202@over.ru> References: <4ECFA0D2.8010900@over.ru> <1322230414.3175.13.camel@host> <4ECFE885.6080000@over.ru> <4ECFEABD.6060202@over.ru> Message-ID: 2011/11/25 Alex Povolotsky : > On 11/25/11 23:18, Sergiy Borodych wrote: >> >> 2011/11/25 Alex Povolotsky: >>> >>> On 11/25/11 18:13, Alexey Shrub wrote: >>>> >>>> http://stackoverflow.com/questions/576095/how-can-i-decode-html-entities >>>> >>>> так? >>> >>> ПОЧТИ. >>> >>> Почему-то >>> >>> perl -MHTML::Entities -e 'while(<>) { print >>> HTML::Entities::decode_entities($_); }' importcouponweb> >>> importcouponweb.xml >>> >> видимо нехватает >> binmode(STDOUT, ":encoding(UTF-8)"); # или просто :utf-8 чтоб без конверта >> > > Облин! Все счастливы. Спасибо. Все-таки UTF8 в перле - это немного черная > магия > Зато работает ;) [1] И даже возможно лучше чем где-либо [2] [1] http://stackoverflow.com/questions/6162484/why-does-modern-perl-avoid-utf-8-by-default [2] http://98.245.80.27/tcpc/OSCON2011/gbu.html -- Sergiy Borodych From peter на vereshagin.org Fri Nov 25 13:24:48 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sat, 26 Nov 2011 01:24:48 +0400 Subject: [Moscow.pm] putty automation In-Reply-To: <426531321886128@web4.yandex.ru> Message-ID: <20111125212440.GA6900@external.screwed.box> Hello. 2011/11/21 07:19:14 -0800 moscow-pm-request на pm.org => To moscow-pm на pm.org : > Image Magick пока не удалось поставить, Пропустил подробности: почему нельзя cygwin и его perl? http://lists-archives.org/cygwin/44045-r-perlmagick-wanted.html Беспакетно ставил данное (cpan -i) и по скорости работы устроило. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From peter на vereshagin.org Fri Nov 25 13:31:20 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sat, 26 Nov 2011 01:31:20 +0400 Subject: [Moscow.pm] =?koi8-r?b?2sHQ1dPUydTYIMvNzcHOxNUg0M/EIMTS1cfJzSDQ?= =?koi8-r?b?z8zY2s/XwdTFzMXN?= In-Reply-To: Message-ID: <20111125213118.GB6900@external.screwed.box> Hello. 2011/11/22 06:19:43 -0800 moscow-pm-request на pm.org => To moscow-pm на pm.org : > И где вы раньше были с Proc::Daemon. Я бы хоть подглядел что они делают. Вот хорошо показано про setuid и setsid: http://www.youtube.com/watch?v=jGrd0Hm_4f8 Многие моменты на самом деле неочевидны. Я, например, не подозревал, что вдруг может понадобиться размонтировать текущий каталог и потому, мол, chdir "/" не лишнее. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From peter на vereshagin.org Fri Nov 25 13:59:36 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sat, 26 Nov 2011 01:59:36 +0400 Subject: [Moscow.pm] =?koi8-r?b?zc/E1czJIMTM0SDUxdPUz9c=?= Message-ID: <20111125215934.GC6900@external.screwed.box> Hello. Имею модуль, к нему тесты. У тестов модули, в сабнеймспейсе ::Test::*. Их даже больше, чем .pm-ов, которые они тестят. Эндовому юзеру их ставить, пожалуй, не резон. Вопрос: куда их в файловой иерархии модуля девать, чтоб и тестить удобно было, и чтоб юзер случайно себе не поставил? Сколько смотрю на чужой опыт --- тим тоуди. Многие даже в пакеты к os инклюдят свои Test/*.pm . А некоторые даже более одного варианта размещения в одном .tar.gz для такого своего добра предусматривают. В основном варианта 3: ./lib ./t/lib и ./inc Хочется определиться в чём-то одном. Вопрос: куда лучше? И если зависит от билд-системы ( предпочитаю M:I ), то чем? То же о данных, которые демон бы читал и записывал при тестировании. В t/ их отправлять сомневаюсь --- мало ли какое prove это прочитает и давай выполнять. ps. насчёт того, что Test/*.pm много --- а чем бы потестить демон, чтобы поднимался, не падал, отправлял в лог что положено, читал до конца то, что ему отправляют в сокет и отвечал что надо? и завершался бы как сигнал поймает тоже в течение таймаута, а не то sigkill всей его процесс-группе. может есть что готовое? pps. какие новости про реги в зоне PM? домен moscow.pm вроде пока не занят... -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From d3fin3 на gmail.com Fri Nov 25 14:14:55 2011 From: d3fin3 на gmail.com (Sergey Zasenko) Date: Sat, 26 Nov 2011 00:14:55 +0200 Subject: [Moscow.pm] =?koi8-r?b?zc/E1czJIMTM0SDUxdPUz9c=?= In-Reply-To: <20111125215934.GC6900@external.screwed.box> References: <20111125215934.GC6900@external.screwed.box> Message-ID: <4ED0135F.9020903@gmail.com> Модули с тестами могут быть полезны для использования тестов пакета другими, как, например, в Protocol::Redis выделены тесты в отдельный пакет для использования в других реализациях интерфейса. Если устанавливать модули с тестами бессмысленно --- я определяю их в ?./t/lib?. prove запускает только файлы с расширением ?.t?, пока у ваших данных другое расширение --- их безопасно класть в ?./t? Тоже самое советуют в руководстве http://world.std.com/~swmcd/steven/perl/module_mechanics.html#TOC28 . 25.11.2011 23:59, Peter Vereshagin пишет: > Hello. > > Имею модуль, к нему тесты. > > У тестов модули, в сабнеймспейсе ::Test::*. Их даже больше, чем .pm-ов, которые > они тестят. > > Эндовому юзеру их ставить, пожалуй, не резон. Вопрос: куда их в файловой > иерархии модуля девать, чтоб и тестить удобно было, и чтоб юзер случайно себе > не поставил? > > Сколько смотрю на чужой опыт --- тим тоуди. Многие даже в пакеты к os инклюдят > свои Test/*.pm . А некоторые даже более одного варианта размещения в одном > .tar.gz для такого своего добра предусматривают. > > В основном варианта 3: ./lib ./t/lib и ./inc Хочется определиться в чём-то одном. > > Вопрос: куда лучше? И если зависит от билд-системы ( предпочитаю M:I ), то чем? > > То же о данных, которые демон бы читал и записывал при тестировании. В t/ их > отправлять сомневаюсь --- мало ли какое prove это прочитает и давай выполнять. > > ps. насчёт того, что Test/*.pm много --- а чем бы потестить демон, чтобы > поднимался, не падал, отправлял в лог что положено, читал до конца то, что ему > отправляют в сокет и отвечал что надо? и завершался бы как сигнал поймает тоже > в течение таймаута, а не то sigkill всей его процесс-группе. может есть что > готовое? > > pps. какие новости про реги в зоне PM? домен moscow.pm вроде пока не занят... > > -- > Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Fri Nov 25 14:26:36 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 26 Nov 2011 00:26:36 +0200 Subject: [Moscow.pm] =?koi8-r?b?zc/E1czJIMTM0SDUxdPUz9c=?= In-Reply-To: <20111125215934.GC6900@external.screwed.box> References: <20111125215934.GC6900@external.screwed.box> Message-ID: On Fri, Nov 25, 2011 at 11:59 PM, Peter Vereshagin wrote: > В основном варианта 3: ./lib ./t/lib и ./inc Хочется определиться в чём-то одном. +1 к ответу Sergey Zasenko > То же о данных, которые демон бы читал и записывал при тестировании. В t/ их > отправлять сомневаюсь --- мало ли какое prove это прочитает и давай выполнять. Прямо в текущую директорию можно ложить и в make clean добавлять. > ps.  насчёт того, что Test/*.pm много --- а чем бы потестить демон, чтобы > поднимался, не падал, отправлял в лог что положено, читал до конца то, что ему > отправляют в сокет и отвечал что надо? и завершался бы как сигнал поймает тоже > в течение таймаута, а не то sigkill всей его процесс-группе. может есть что > готовое? Наверное нет готового, у всех разные логи, у кого-то сислог, у кого-то файлы, кто-то форкается, кто-то в inetd, кто-то в своем специальном форкере. Лично я не заметил особой полезности от тестирования демонов, они могут проходить все тесты, но падать через пол часа работы. Думаю важнее позаботиться о фейловере, пусть в продакшине падает, но никого не задевает. From d3fin3 на gmail.com Fri Nov 25 14:34:10 2011 From: d3fin3 на gmail.com (Sergey Zasenko) Date: Sat, 26 Nov 2011 00:34:10 +0200 Subject: [Moscow.pm] =?koi8-r?b?zc/E1czJIMTM0SDUxdPUz9c=?= In-Reply-To: References: <20111125215934.GC6900@external.screwed.box> Message-ID: <4ED017E2.8020107@gmail.com> 26.11.2011 00:26, Alexandr Gomoliako пишет: >> То же о данных, которые демон бы читал и записывал при тестировании. В t/ их >> отправлять сомневаюсь --- мало ли какое prove это прочитает и давай выполнять. > Прямо в текущую директорию можно ложить и в make clean добавлять. Кстати записывать что-либо лучше всего во временные файлы/временный каталог. Избежите множества проблем -- у вас не измениться результат выполнения тестов если cleanup не был выполнен. From zzz на zzz.org.ua Fri Nov 25 14:41:59 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 26 Nov 2011 00:41:59 +0200 Subject: [Moscow.pm] =?koi8-r?b?zc/E1czJIMTM0SDUxdPUz9c=?= In-Reply-To: <4ED017E2.8020107@gmail.com> References: <20111125215934.GC6900@external.screwed.box> <4ED017E2.8020107@gmail.com> Message-ID: On Sat, Nov 26, 2011 at 12:34 AM, Sergey Zasenko wrote: > Кстати записывать что-либо лучше всего во временные файлы/временный > каталог. Избежите множества проблем -- у вас не измениться результат > выполнения тестов если cleanup не был выполнен. Ну в /tmp может не быть места или его вообще может не быть, а текущий пакет распакован уже куда-то, как раз для временного использования. А файлы можно просто перегенерировать, что скорее всего и так происходит. From d3fin3 на gmail.com Fri Nov 25 15:31:31 2011 From: d3fin3 на gmail.com (Sergey Zasenko) Date: Sat, 26 Nov 2011 01:31:31 +0200 Subject: [Moscow.pm] =?utf-8?b?0LzQvtC00YPQu9C4INC00LvRjyDRgtC10YHRgtC+?= =?utf-8?b?0LI=?= In-Reply-To: References: <20111125215934.GC6900@external.screwed.box> <4ED017E2.8020107@gmail.com> Message-ID: <4ED02553.5040205@gmail.com> 26.11.2011 00:41, Alexandr Gomoliako пишет: > Ну в /tmp может не быть места или его вообще может не быть, а текущий > пакет распакован уже куда-то, как раз для временного использования. А > файлы можно просто перегенерировать, что скорее всего и так происходит. Временные файлы надо просто через File::Temp создавать, который сам определит временную директорию и почистит все после выполнения. А вот если на фс с временными файлами закончилось место ? будут проблемы хуже fail тестов :) Также дистрибутив модуля может быть доступен в ro режиме (к примеру тесты запускаются от другого пользователя). К тому-же в рабочей директории не будет появляться мусор который, случайно, можно занести в cvs/релиз. From peter на vereshagin.org Fri Nov 25 15:35:15 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sat, 26 Nov 2011 03:35:15 +0400 Subject: [Moscow.pm] =?koi8-r?b?5MHKxNbF09Qg09DJ08vBINLB09PZzMvJIE1vc2Nv?= =?koi8-r?b?dy1wbTsg1M/NIDQ5LCDX2dDV08sgNzE=?= In-Reply-To: References: Message-ID: <20111125233515.GD6900@external.screwed.box> Hello. 2011/11/25 14:34:16 -0800 moscow-pm-request на pm.org => To moscow-pm на pm.org : > Если устанавливать модули с тестами бессмысленно --- я определяю их в > ?./t/lib?. Мне не очень удобно показалось в BEGIN{} каждого t/*.t добавлять t/lib в @INC. (dirname(), realpath() и require'ы для них, и grep с unshift) Меньше 4-х строк не получается, пора смотреть в сторону local::lib какого-нибудь. > prove запускает только файлы с расширением ?.t?, пока у ваших данных > другое расширение --- их безопасно класть в ?./t? Тоже самое советуют в таки для записываемых тестами данных там подкаталог лучше сделать, t/var, например. Тоже таки вопрос про их удаление: в одних случаях интересно что тесты туда напишут, особенно если не пройдут, а в других --- при сворачивании исходников в .tar.gz, например, нежелательно, чтобы они там после тестов оставались. Может, какие стандартные настройки бывают для какого-нибудь prove, например, или общепринятое имя переменной (naming convention) и её значение по умолчанию, от которой это бы зависело? > руководстве > http://world.std.com/~swmcd/steven/perl/module_mechanics.html#TOC28 > . Стивен интересно пишет, но вот, например, в POD Конвей рекомендует head1 VERSION, а у Стивена этого нет. Всеобщий Тим Тоуди. (= Но пока буду пользовать то, что Конвей против t/lib ещё ничего не сказал. > 25.11.2011 23:59, Peter Vereshagin пишет: оба. топпостинг. (= -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From peter на vereshagin.org Fri Nov 25 15:52:22 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sat, 26 Nov 2011 03:52:22 +0400 Subject: [Moscow.pm] =?koi8-r?b?zc/E1czJIMTM0SDUxdPUz9c=?= In-Reply-To: Message-ID: <20111125235222.GE6900@external.screwed.box> Hello. 2011/11/25 14:34:16 -0800 moscow-pm-request на pm.org => To moscow-pm на pm.org : > > То же о данных, которые демон бы читал и записывал при тестировании. В t/ их > > отправлять сомневаюсь --- мало ли какое prove это прочитает и давай выполнять. > > Прямо в текущую директорию можно ложить и в make clean добавлять. Дельно. Ещё бы знать, что для M:I, например, это заведомо реализуемо. > Наверное нет готового, у всех разные логи, у кого-то сислог, у кого-то файлы, > кто-то форкается, кто-то в inetd, кто-то в своем специальном форкере. Втф форкер? Ивент-машина? (= и что, нет универсального способа взять и прочитать сообщение демона о том, что он запустился, например? или, если процесс упал не запустившись, то не ждать конца таймаута? если заведомо известно, куда он это отправит... > Лично я не заметил особой полезности от тестирования демонов, > они могут проходить все тесты, но падать через пол часа работы. Я пару досадных багов таки выловил. Изредка вылезали в продукцию, но условия всё время слетали, всё не мог поймать. а так оно конечно --- "тестирование не даёт утверждать, что багов нет, но зато если они есть, то не даёт утверждать, что их нет". (= > Думаю важнее позаботиться о фейловере, пусть в продакшине > падает, но никого не задевает. Чем не задевает? занятыми после себя семафорами и shm-сегментами? Тоже хорошее направление тестирования демонов. (= -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From zzz на zzz.org.ua Fri Nov 25 16:54:31 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 26 Nov 2011 02:54:31 +0200 Subject: [Moscow.pm] =?koi8-r?b?5MHKxNbF09Qg09DJ08vBINLB09PZzMvJIE1vc2Nv?= =?koi8-r?b?dy1wbTsg1M/NIDQ5LCDX2dDV08sgNzE=?= In-Reply-To: <20111125233515.GD6900@external.screwed.box> References: <20111125233515.GD6900@external.screwed.box> Message-ID: On Sat, Nov 26, 2011 at 1:31 AM, Sergey Zasenko wrote:> Временные файлы надо просто через File::Temp создавать, который сам На ридонли рут с маленьким /tmp не сработает. > Мне не очень удобно показалось в BEGIN{} каждого t/*.t добавлять t/lib в @INC. > (dirname(), realpath() и require'ы для них, и grep с unshift) Меньше 4-х строк а use lib 't/lib' ? > напишут, особенно если не пройдут, а в других --- при сворачивании исходников в > .tar.gz, например, нежелательно, чтобы они там после тестов оставались. Может, > директории не будет появляться мусор который, случайно, можно занести в > cvs/релиз. MANIFEST.SKIP, .gitignore, .hgignore, etc. И даже хуки не нужны > Ещё бы знать, что для M:I, например, это заведомо реализуемо. Кто его знает, в ExtUtils::MakeMaker можно. > Я пару досадных багов таки выловил. Мы можем протестировать только те баги, о которых мы и так знаем :) А на самом деле надежность системы напрямую зависит от простоты. From chesnokov.ilya на gmail.com Sun Nov 27 01:30:04 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Sun, 27 Nov 2011 13:30:04 +0400 Subject: [Moscow.pm] =?utf-8?b?0JTQsNC50LTQttC10YHRgiDRgdC/0LjRgdC60LAg?= =?utf-8?b?0YDQsNGB0YHRi9C70LrQuCBNb3Njb3ctcG07INGC0L7QvCA0OSwg0LI=?= =?utf-8?b?0YvQv9GD0YHQuiA3MQ==?= In-Reply-To: <20111125233515.GD6900@external.screwed.box> References: <20111125233515.GD6900@external.screwed.box> Message-ID: 26 ноября 2011 г. 3:35 пользователь Peter Vereshagin написал: > Hello. > > 2011/11/25 14:34:16 -0800 moscow-pm-request на pm.org => To moscow-pm на pm.org : > >> Если устанавливать модули с тестами бессмысленно --- я определяю их в >> ?./t/lib?. > > Мне не очень удобно показалось в BEGIN{} каждого t/*.t добавлять t/lib в @INC. > (dirname(), realpath() и require'ы для них, и grep с unshift) Меньше 4-х строк > не получается, пора смотреть в сторону local::lib какого-нибудь. Посмотрите в сторону lib::abs какого-нибудь ;) -- Best regards, Ilya Chesnokov From paul.vlasov на gmail.com Sun Nov 27 09:03:02 2011 From: paul.vlasov на gmail.com (Pavel Vlasov) Date: Sun, 27 Nov 2011 20:03:02 +0300 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: References: <53481320152670@web62.yandex.ru> <271961320307143@web147.yandex.ru> <69B10C28-309C-483F-8B57-4663B6C6DF7E@rambler-co.ru> <332131320915401@web93.yandex.ru> Message-ID: Ну как будет прогон докладов в Москве? Про 4 декабря говорили выше. Я готов выступить http://event.perlrussia.org/saintperl3/talk/169 2011/11/25 Andrew Shitov > Привет! > > Появились скидки 40-50% на гостиницы в Санкт-Петербурге: > http://ostrovok.ru/deals/. > Есть места на даты воркшопа! > > > > > 2011/11/10 Orlovsky Alexander : > > я начал уже готовить один доклад, засабмитил его краткое описание на > сайт: > > http://event.perlrussia.org/saintperl3/ > > > > 03.11.2011, 19:04, "Mons Anderson" : > >> Как площадку думаю вполне пробью Рамблер > >> > >> On 03.11.2011, at 14:11, Ruslan Zakirov wrote: > >>> Нужна площадка и желающие рассказать. > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > -- > Andrew Shitov > ______________________________________________________________________ > andy на shitov.ru | http://shitov.ru > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Pavel Vlasov Please consider the environment before printing this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharifulin на gmail.com Mon Nov 28 02:37:09 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Mon, 28 Nov 2011 14:37:09 +0400 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: References: <53481320152670@web62.yandex.ru> <271961320307143@web147.yandex.ru> <69B10C28-309C-483F-8B57-4663B6C6DF7E@rambler-co.ru> <332131320915401@web93.yandex.ru> Message-ID: 6 или 7 декабря в Москве, давайте в эти дни, а-то меня в Питере скорей всего не будет, а по Moscow.pm я соскучился)) 2011/11/27 Pavel Vlasov > Ну как будет прогон докладов в Москве? > Про 4 декабря говорили выше. > > Я готов выступить http://event.perlrussia.org/saintperl3/talk/169 > > > 2011/11/25 Andrew Shitov > >> Привет! >> >> Появились скидки 40-50% на гостиницы в Санкт-Петербурге: >> http://ostrovok.ru/deals/. >> Есть места на даты воркшопа! >> >> >> >> >> 2011/11/10 Orlovsky Alexander : >> > я начал уже готовить один доклад, засабмитил его краткое описание на >> сайт: >> > http://event.perlrussia.org/saintperl3/ >> > >> > 03.11.2011, 19:04, "Mons Anderson" : >> >> Как площадку думаю вполне пробью Рамблер >> >> >> >> On 03.11.2011, at 14:11, Ruslan Zakirov wrote: >> >>> Нужна площадка и желающие рассказать. >> > -- >> > Moscow.pm mailing list >> > moscow-pm на pm.org | http://moscow.pm.org >> > >> >> >> >> -- >> Andrew Shitov >> ______________________________________________________________________ >> andy на shitov.ru | http://shitov.ru >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > -- > Best regards, Pavel Vlasov > Please consider the environment before printing this email. > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ruz на bestpractical.com Mon Nov 28 02:43:46 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Mon, 28 Nov 2011 14:43:46 +0400 Subject: [Moscow.pm] =?utf-8?b?0LfQsNC/0YPRgdGC0LjRgtGMINC60LzQvNCw0L0=?= =?utf-8?b?0LTRgyDQv9C+0LQg0LTRgNGD0LPQuNC8INC/0L7Qu9GM0LfQvtCy0LA=?= =?utf-8?b?0YLQtdC70LXQvA==?= In-Reply-To: <20111125213118.GB6900@external.screwed.box> References: <20111125213118.GB6900@external.screwed.box> Message-ID: Полезное видео, но для начального знакомства. Первые же минуты удивляют способом работы с pidfile, который оставляет место race condition, но это мелочи. Посмотреть можно. Regards, Ruslan. From phone. 26.11.2011 0:32 пользователь "Peter Vereshagin" написал: > Hello. > > 2011/11/22 06:19:43 -0800 moscow-pm-request на pm.org => To moscow-pm на pm.org: > > И где вы раньше были с Proc::Daemon. Я бы хоть подглядел что они делают. > > Вот хорошо показано про setuid и setsid: > > http://www.youtube.com/watch?v=jGrd0Hm_4f8 > > Многие моменты на самом деле неочевидны. Я, например, не подозревал, что > вдруг > может понадобиться размонтировать текущий каталог и потому, мол, > > chdir "/" > > не лишнее. > > -- > Peter Vereshagin (http://vereshagin.org) pgp: > A0E26627 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Mon Nov 28 03:13:38 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Mon, 28 Nov 2011 15:13:38 +0400 Subject: [Moscow.pm] =?koi8-r?b?wczJwdPZIMTM0SDLzMDexcogyMXbwQ==?= Message-ID: <1322478818.3179.45.camel@host> Всем привет, возникла у меня мысль что неплохо бы иметь алиасы для ключей хеша - связанные данные удобность иметь в хеше/объекте, но когда нужно активно использовать конкретные значения писать $hash{key} не очень красиво делать my $key = $hash{key} можно, но модифицировать нельзя (а значит можно ошибиться), делать my $key = \$hash{key} тоже можно, но тогда оперируем не с $key, а с $$key, и символ лишний и опять же можно случайно написать $key и не всегда ругнётся. Возможно можно через таблицу символов сделать красивые алиасы, но не знаю как там хеши хранятся, да и вообще не очень знаю где там могут быть подводные камни. Нашёл модуль Alias и вот так perl -E 'use Alias; my %hash=(key=>"value"); my $s = attr \%hash;say $key' работает, юзал его кто-нибудь, насколько он годен к реальному использованию? From mons на cpan.org Mon Nov 28 03:21:17 2011 From: mons на cpan.org (Mons Anderson) Date: Mon, 28 Nov 2011 15:21:17 +0400 Subject: [Moscow.pm] =?koi8-r?b?wczJwdPZIMTM0SDLzMDexcogyMXbwQ==?= In-Reply-To: <1322478818.3179.45.camel@host> References: <1322478818.3179.45.camel@host> Message-ID: <201111281521.17727.mons@cpan.org> Я делал Variable::Eject а еще есть Lexical::Alias - он по моему лучше, чем Alias. On Monday 28 November 2011 15:13:38 Alexey Shrub wrote: > Всем привет, > > возникла у меня мысль что неплохо бы иметь алиасы для ключей хеша - > связанные данные удобность иметь в хеше/объекте, но когда нужно активно > использовать конкретные значения писать $hash{key} не очень красиво > делать my $key = $hash{key} можно, но модифицировать нельзя (а значит > можно ошибиться), делать my $key = \$hash{key} тоже можно, но тогда > оперируем не с $key, а с $$key, и символ лишний и опять же можно > случайно написать $key и не всегда ругнётся. > Возможно можно через таблицу символов сделать красивые алиасы, но не > знаю как там хеши хранятся, да и вообще не очень знаю где там могут быть > подводные камни. > Нашёл модуль Alias и вот так > perl -E 'use Alias; my %hash=(key=>"value"); my $s = attr \%hash;say > $key' > работает, > юзал его кто-нибудь, насколько он годен к реальному > использованию? -- Mons Anderson aka Vladimir Perepelitsa / #99779956 / quanth на irc.freenode.net ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Mon Nov 28 03:39:47 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Mon, 28 Nov 2011 15:39:47 +0400 Subject: [Moscow.pm] =?koi8-r?b?wczJwdPZIMTM0SDLzMDexcogyMXbwQ==?= In-Reply-To: <201111281521.17727.mons@cpan.org> References: <1322478818.3179.45.camel@host> <201111281521.17727.mons@cpan.org> Message-ID: <1322480387.3179.48.camel@host> On Пн., 2011-11-28 at 15:21 +0400, Mons Anderson wrote: > Я делал Variable::Eject > а еще есть Lexical::Alias - он по моему лучше, чем Alias. У него вроде нет функции извлечь все ключи хеша в переменные, так что либо Alias либо Variable::Eject > On Monday 28 November 2011 15:13:38 Alexey Shrub wrote: > > > Всем привет, > > > > > > возникла у меня мысль что неплохо бы иметь алиасы для ключей хеша - > > > связанные данные удобность иметь в хеше/объекте, но когда нужно > активно > > > использовать конкретные значения писать $hash{key} не очень красиво > > > делать my $key = $hash{key} можно, но модифицировать нельзя (а > значит > > > можно ошибиться), делать my $key = \$hash{key} тоже можно, но тогда > > > оперируем не с $key, а с $$key, и символ лишний и опять же можно > > > случайно написать $key и не всегда ругнётся. > > > Возможно можно через таблицу символов сделать красивые алиасы, но не > > > знаю как там хеши хранятся, да и вообще не очень знаю где там могут > быть > > > подводные камни. > > > Нашёл модуль Alias и вот так > > > perl -E 'use Alias; my %hash=(key=>"value"); my $s = attr \%hash;say > > > $key' > > > работает, > > > юзал его кто-нибудь, насколько он годен к реальному > > > использованию? > > -- > > Mons Anderson aka Vladimir Perepelitsa > > / #99779956 / quanth на irc.freenode.net > From mons на cpan.org Mon Nov 28 03:42:46 2011 From: mons на cpan.org (Mons Anderson) Date: Mon, 28 Nov 2011 15:42:46 +0400 Subject: [Moscow.pm] =?utf-8?b?0LDQu9C40LDRgdGLINC00LvRjyDQutC70Y7Rh9C1?= =?utf-8?b?0Lkg0YXQtdGI0LA=?= In-Reply-To: <1322480387.3179.48.camel@host> References: <1322478818.3179.45.camel@host> <201111281521.17727.mons@cpan.org> <1322480387.3179.48.camel@host> Message-ID: <201111281542.46547.mons@cpan.org> On Monday 28 November 2011 15:39:47 Alexey Shrub wrote: > On Пн., 2011-11-28 at 15:21 +0400, Mons Anderson wrote: > > Я делал Variable::Eject > > а еще есть Lexical::Alias - он по моему лучше, чем Alias. > > У него вроде нет функции извлечь все ключи хеша в переменные, так что > либо Alias либо Variable::Eject > Eject написан на Devel::Declare. Он просто делает лексический алиасинг через Lexical::Alias. Alias на XS. хз чем мне он когда-то не понравился, но возможно он работает лучше. -- Mons Anderson aka Vladimir Perepelitsa / #99779956 / quanth на irc.freenode.net From meettya на gmail.com Mon Nov 28 04:49:21 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Mon, 28 Nov 2011 15:49:21 +0300 Subject: [Moscow.pm] =?utf-8?b?0LDQu9C40LDRgdGLINC00LvRjyDQutC70Y7Rh9C1?= =?utf-8?b?0Lkg0YXQtdGI0LA=?= In-Reply-To: <1322478818.3179.45.camel@host> References: <1322478818.3179.45.camel@host> Message-ID: On Nov 28, 2011, at 2:13 PM, Alexey Shrub wrote: > Всем привет, > > возникла у меня мысль что неплохо бы иметь алиасы для ключей хеша - > связанные данные удобность иметь в хеше/объекте, но когда нужно активно > использовать конкретные значения писать $hash{key} не очень красиво > делать my $key = $hash{key} можно, но модифицировать нельзя (а значит > можно ошибиться), делать my $key = \$hash{key} тоже можно, но тогда > оперируем не с $key, а с $$key, и символ лишний и опять же можно > случайно написать $key и не всегда ругнётся. > Возможно можно через таблицу символов сделать красивые алиасы, но не > знаю как там хеши хранятся, да и вообще не очень знаю где там могут быть > подводные камни. > Нашёл модуль Alias и вот так > perl -E 'use Alias; my %hash=(key=>"value"); my $s = attr \%hash;say > $key' > работает, > юзал его кто-нибудь, насколько он годен к реальному > использованию? > Судя по тому, что на TravelMate:~ meettya$ uname -a Darwin TravelMate.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386 TravelMate:~ meettya$ perl -v This is perl 5, version 14, subversion 0 (v5.14.0) built for darwin-2level cpan[1]> install Alias cc -c -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -O3 -DVERSION=\"2.32\" -DXS_VERSION=\"2.32\" "-I/opt/local/lib/perl5/5.14.0/darwin-2level/CORE" Alias.c Alias.xs: In function ?XS_Alias_attr?: Alias.xs:208: error: lvalue required as unary ?&? operand Alias.xs:209: error: lvalue required as left operand of assignment make: *** [Alias.o] Error 1 годен условно :) ИМХО. Это пример ложной лени, потенциально взрывоопасное решение. Митяй. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From worldmind на mail.ru Mon Nov 28 04:04:41 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Mon, 28 Nov 2011 16:04:41 +0400 Subject: [Moscow.pm] =?koi8-r?b?wczJwdPZIMTM0SDLzMDexcogyMXbwQ==?= In-Reply-To: References: <1322478818.3179.45.camel@host> Message-ID: <1322481881.3179.49.camel@host> On Пн., 2011-11-28 at 15:49 +0300, Dmitry Karpich wrote: > ИМХО. Это пример ложной лени, потенциально взрывоопасное решение. Да выглядит всё вроде мирно - просто алиасы, какие видятся взрывоопасные моменты? From sergey.aleynikov на gmail.com Mon Nov 28 04:28:33 2011 From: sergey.aleynikov на gmail.com (Sergey Aleynikov) Date: Mon, 28 Nov 2011 16:28:33 +0400 Subject: [Moscow.pm] =?koi8-r?b?wczJwdPZIMTM0SDLzMDexcogyMXbwQ==?= In-Reply-To: <1322478818.3179.45.camel@host> References: <1322478818.3179.45.camel@host> Message-ID: Добрый день, Я использовал Data::Alias, его плюс - он допольно активно поддерживается. Минус - извлекать переменные придётся по одной. Best regards, Sergey Aleynikov ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Mon Nov 28 05:53:30 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Mon, 28 Nov 2011 16:53:30 +0300 Subject: [Moscow.pm] =?utf-8?b?0LDQu9C40LDRgdGLINC00LvRjyDQutC70Y7Rh9C1?= =?utf-8?b?0Lkg0YXQtdGI0LA=?= In-Reply-To: <1322481881.3179.49.camel@host> References: <1322478818.3179.45.camel@host> <1322481881.3179.49.camel@host> Message-ID: On Nov 28, 2011, at 3:04 PM, Alexey Shrub wrote: > On Пн., 2011-11-28 at 15:49 +0300, Dmitry Karpich wrote: >> ИМХО. Это пример ложной лени, потенциально взрывоопасное решение. > > Да выглядит всё вроде мирно - просто алиасы, какие видятся взрывоопасные > моменты? > В варианте use Alias; my %hash=(key=>"value"); my $s = attr \%hash;say $key в область имен переменных инжектятся все ключи. Если там окажется какая-нить бяка - может выйти странно. Alias поставить не могу, поэтому пример с V::E, синтетический - http://pastebin.com/CMahyyZu (тут мы контролируем имена переменных), но он показывает, что теоретически можно что-то присвоить не туда, если имена брать "на веру", как это делается в Alias. Обычная паранойя, ничего такого :) > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Mon Nov 28 05:13:21 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Mon, 28 Nov 2011 17:13:21 +0400 Subject: [Moscow.pm] =?koi8-r?b?wczJwdPZIMTM0SDLzMDexcogyMXbwQ==?= In-Reply-To: References: <1322478818.3179.45.camel@host> <1322481881.3179.49.camel@host> Message-ID: <1322486001.3179.56.camel@host> On Пн., 2011-11-28 at 16:53 +0300, Dmitry Karpich wrote: > В варианте use Alias; my %hash=(key=>"value"); my $s = attr \% > hash;say > $key в область имен переменных инжектятся все ключи. Если там окажется > какая-нить бяка - может выйти странно. > > Alias поставить не могу, поэтому пример с V::E, синтетический - > http://pastebin.com/CMahyyZu (тут мы контролируем имена переменных), > но он показывает, что теоретически можно что-то присвоить не туда, > если имена брать "на веру", как это делается в Alias. Обычная > паранойя, ничего такого :) Паранойя это прекрасно worldmind на host:~$ perl -E 'use Alias; my %hash=("_"=>"value"); my $s = attr \%hash;say $_' value как бы да - переменную по умолчанию поломали, но в моём случае хеш делается самостоятельно и из нормальных имён, для подстраховки можно конечно делать алиасы по одному, но это от уровня паранойи зависит From thekostya на gmail.com Mon Nov 28 05:55:30 2011 From: thekostya на gmail.com (=?koi8-r?B?68/O09TBztTJziDy0cLP1w==?=) Date: Mon, 28 Nov 2011 17:55:30 +0400 Subject: [Moscow.pm] =?koi8-r?b?wczJwdPZIMTM0SDLzMDexcogyMXbwQ==?= In-Reply-To: <1322481881.3179.49.camel@host> References: <1322478818.3179.45.camel@host> <1322481881.3179.49.camel@host> Message-ID: 28.11.2011, в 16:04, Alexey Shrub написал(а): > Да выглядит всё вроде мирно - просто алиасы, какие видятся взрывоопасные > моменты? Взрывоопасные моменты перечислены тут: perldoc perlvar ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ivan на serezhkin.com Mon Nov 28 06:07:12 2011 From: ivan на serezhkin.com (Vany Serezhkin) Date: Mon, 28 Nov 2011 18:07:12 +0400 Subject: [Moscow.pm] Saint Perl - 3 In-Reply-To: References: <53481320152670@web62.yandex.ru> <271961320307143@web147.yandex.ru> <69B10C28-309C-483F-8B57-4663B6C6DF7E@rambler-co.ru> <332131320915401@web93.yandex.ru> Message-ID: <4ED39590.3010006@serezhkin.com> On 11/28/2011 02:37 PM, Анатолий Шарифулин wrote: > 6 или 7 декабря в Москве, давайте в эти дни, а-то меня в Питере скорей > всего не будет, а по Moscow.pm я соскучился)) Замётано ! Приедешь - звони. -- WBR, Vany From q на cono.org.ua Mon Nov 28 06:31:24 2011 From: q на cono.org.ua (Alex Varyanick) Date: Mon, 28 Nov 2011 16:31:24 +0200 Subject: [Moscow.pm] =?utf-8?b?0LDQu9C40LDRgdGLINC00LvRjyDQutC70Y7Rh9C1?= =?utf-8?b?0Lkg0YXQtdGI0LA=?= In-Reply-To: <1322486001.3179.56.camel@host> References: <1322478818.3179.45.camel@host> <1322481881.3179.49.camel@host> <1322486001.3179.56.camel@host> Message-ID: 2011/11/28 Alexey Shrub : > On Пн., 2011-11-28 at 16:53 +0300, Dmitry Karpich wrote: > Паранойя это прекрасно > worldmind на host:~$ perl -E 'use Alias; my %hash=("_"=>"value"); my $s = > attr \%hash;say $_' > value perl -MAlias -E'attr{qw/_ value/};say' ну так и рвётся желание погольфить ;) -- Varyanick I. Alex icq: 102 575 440 skype: cono.. q на cono.org.ua From meettya на gmail.com Mon Nov 28 07:47:39 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Mon, 28 Nov 2011 18:47:39 +0300 Subject: [Moscow.pm] =?utf-8?b?0LDQu9C40LDRgdGLINC00LvRjyDQutC70Y7Rh9C1?= =?utf-8?b?0Lkg0YXQtdGI0LA=?= In-Reply-To: References: <1322478818.3179.45.camel@host> <1322481881.3179.49.camel@host> <1322486001.3179.56.camel@host> Message-ID: On Nov 28, 2011, at 5:31 PM, Alex Varyanick wrote: > 2011/11/28 Alexey Shrub : >> On Пн., 2011-11-28 at 16:53 +0300, Dmitry Karpich wrote: >> Паранойя это прекрасно >> worldmind на host:~$ perl -E 'use Alias; my %hash=("_"=>"value"); my $s = >> attr \%hash;say $_' >> value > > perl -MAlias -E'attr{qw/_ value/};say' > > ну так и рвётся желание погольфить ;) $ echo value Быстрее, короче, проще, надежнее. Результат идентичный. :) > > -- > Varyanick I. Alex > icq: 102 575 440 > skype: cono.. > q на cono.org.ua > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From peter на vereshagin.org Mon Nov 28 07:05:49 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Mon, 28 Nov 2011 19:05:49 +0400 Subject: [Moscow.pm] =?koi8-r?b?5MHKxNbF09Qg09DJ08vBINLB09PZzMvJIE1vc2Nv?= =?koi8-r?b?dy1wbTsg1M/NIDQ5LCDX2dDV08sgNzM=?= In-Reply-To: References: Message-ID: <20111128150549.GA5363@external.screwed.box> Hello. 2011/11/27 12:00:16 -0800 moscow-pm-request на pm.org => To moscow-pm на pm.org : > > не получается, пора смотреть в сторону local::lib какого-нибудь. > Посмотрите в сторону lib::abs какого-нибудь ;) забыл его название. Не беда --- пошёл в каталог автора (MONS) и вспомнил. (= -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From q на cono.org.ua Mon Nov 28 07:28:14 2011 From: q на cono.org.ua (Alex Varyanick) Date: Mon, 28 Nov 2011 17:28:14 +0200 Subject: [Moscow.pm] =?utf-8?b?0LDQu9C40LDRgdGLINC00LvRjyDQutC70Y7Rh9C1?= =?utf-8?b?0Lkg0YXQtdGI0LA=?= In-Reply-To: References: <1322478818.3179.45.camel@host> <1322481881.3179.49.camel@host> <1322486001.3179.56.camel@host> Message-ID: 2011/11/28 Dmitry Karpich : > > On Nov 28, 2011, at 5:31 PM, Alex Varyanick wrote: >> perl -MAlias -E'attr{qw/_ value/};say' >> >> ну так и рвётся желание погольфить ;) > > $ echo value > > Быстрее, короче, проще, надежнее. > Результат идентичный. :) Победил, соглазен ) -- Varyanick I. Alex icq: 102 575 440 skype: cono.. q на cono.org.ua From zzz на zzz.org.ua Mon Nov 28 09:33:42 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 28 Nov 2011 19:33:42 +0200 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: <1322200165.3175.1.camel@host> References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> <1322200165.3175.1.camel@host> Message-ID: Node.js vs nginx-perl, в этом топике как раз обсуждали. Только что выложил пример клиента для redis, было любопытно попрбовать, на сколько это быстрее, чем node.js + redis: Три теста: - без запроса к редису - /; - с одним запросом к редису - /single; - с 10-ю параллельными запросами к редису - /multi: nginx-perl: https://raw.github.com/zzzcpan/nginx-perl/master/eg/redis/lib/Redis.pm % cpan Redis::Parser::XS % ./objs/nginx-perl -p eg/redis 6983.07 [#/sec] / 3566.61 [#/sec] /single 1852.36 [#/sec] /multi node.js https://raw.github.com/zzzcpan/nginx-perl/master/eg/redis.js % node eg/redis.js 2270.60 [#/sec] / 2264.34 [#/sec] /single 791.61 [#/sec] /multi nginx-perl здесь: https://github.com/zzzcpan/nginx-perl From akzhan.abdulin на gmail.com Mon Nov 28 10:26:26 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Mon, 28 Nov 2011 22:26:26 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> <1322200165.3175.1.camel@host> Message-ID: Александр, в случае с Node.JS был ли установлен модуль hiredis (нативные биндинги к Redis из Node)? 28 ноября 2011 г. 21:33 пользователь Alexandr Gomoliako написал: > Node.js vs nginx-perl, > в этом топике как раз обсуждали. > > Только что выложил пример клиента для redis, было > любопытно попрбовать, на сколько это быстрее, чем > node.js + redis: > > Три теста: > - без запроса к редису - /; > - с одним запросом к редису - /single; > - с 10-ю параллельными запросами к редису - /multi: > > > nginx-perl: > https://raw.github.com/zzzcpan/nginx-perl/master/eg/redis/lib/Redis.pm > > % cpan Redis::Parser::XS > % ./objs/nginx-perl -p eg/redis > > 6983.07 [#/sec] / > 3566.61 [#/sec] /single > 1852.36 [#/sec] /multi > > > node.js > https://raw.github.com/zzzcpan/nginx-perl/master/eg/redis.js > > % node eg/redis.js > > 2270.60 [#/sec] / > 2264.34 [#/sec] /single > 791.61 [#/sec] /multi > > > nginx-perl здесь: > https://github.com/zzzcpan/nginx-perl > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Mon Nov 28 10:31:11 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 28 Nov 2011 20:31:11 +0200 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> <1322200165.3175.1.camel@host> Message-ID: On Mon, Nov 28, 2011 at 8:26 PM, Akzhan Abdulin wrote: > Александр, в случае с Node.JS был ли установлен модуль hiredis (нативные > биндинги к Redis из Node)? % npm ls hiredis на 0.1.13 active installed redis на 0.7.1 active installed npm ok From akzhan.abdulin на gmail.com Mon Nov 28 10:34:44 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Mon, 28 Nov 2011 22:34:44 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> <1322200165.3175.1.camel@host> Message-ID: Спасибо, будет время, посмотрю, почему да как :) 28 ноября 2011 г. 22:31 пользователь Alexandr Gomoliako написал: > On Mon, Nov 28, 2011 at 8:26 PM, Akzhan Abdulin > wrote: > > Александр, в случае с Node.JS был ли установлен модуль hiredis (нативные > > биндинги к Redis из Node)? > > % npm ls > hiredis на 0.1.13 active installed > redis на 0.7.1 active installed > npm ok > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Mon Nov 28 10:39:40 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Mon, 28 Nov 2011 22:39:40 +0400 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> <1322200165.3175.1.camel@host> Message-ID: Кстати, в принципе, в случае с многократным получением ключа проще использовать возможность multi, которая делает все за один exec. 28 ноября 2011 г. 22:31 пользователь Alexandr Gomoliako написал: > On Mon, Nov 28, 2011 at 8:26 PM, Akzhan Abdulin > wrote: > > Александр, в случае с Node.JS был ли установлен модуль hiredis (нативные > > биндинги к Redis из Node)? > > % npm ls > hiredis на 0.1.13 active installed > redis на 0.7.1 active installed > npm ok > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zzz на zzz.org.ua Mon Nov 28 10:47:24 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 28 Nov 2011 20:47:24 +0200 Subject: [Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP) In-Reply-To: References: <1322043490.2034.48.camel@host> <1322053783.2034.76.camel@host> <1322200165.3175.1.camel@host> Message-ID: On Mon, Nov 28, 2011 at 8:39 PM, Akzhan Abdulin wrote: > Кстати, в принципе, в случае с многократным получением ключа проще > использовать возможность multi, которая делает все за один exec. Ну суть не в этом была, да и там pipelining есть. From worldmind на mail.ru Mon Nov 28 23:08:03 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Tue, 29 Nov 2011 11:08:03 +0400 Subject: [Moscow.pm] =?koi8-r?b?8sHa2dPLydfBwNQg6czYwCD0wcLB3s7Jy8E=?= Message-ID: <1322550483.2287.6.camel@host> Может кто знаком http://blogs.perl.org/users/leon_timmermans/2011/11/looking-for-ilja-tabachnik.html From worldmind на mail.ru Tue Nov 29 02:47:10 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Tue, 29 Nov 2011 14:47:10 +0400 Subject: [Moscow.pm] =?koi8-r?b?wczJwdPZIMTM0SDLzMDexcogyMXbwQ==?= In-Reply-To: References: <1322478818.3179.45.camel@host> <1322481881.3179.49.camel@host> Message-ID: <1322563630.2287.12.camel@host> On Пн., 2011-11-28 at 17:55 +0400, Константин Рябов wrote: > Взрывоопасные моменты перечислены тут: perldoc perlvar Если есть желание подстраховаться, то можно фильтровать ключи http://search.cpan.org/~gsar/Alias-2.32/Alias.pm#Configuration_Variables From mi на ya.ru Tue Nov 29 06:02:51 2011 From: mi на ya.ru (Nikolay Mishin) Date: Tue, 29 Nov 2011 18:02:51 +0400 Subject: [Moscow.pm] Win32::GuiTest Open Context Menu Key In-Reply-To: <20111122045657.GA10596@tetsuo.karasik.eu.org> References: <680361321936512@web126.yandex.ru> <20111122045657.GA10596@tetsuo.karasik.eu.org> Message-ID: <43651322575372@web52.yandex.ru> Спасибо Дим, криво, но прошло с Win32::GuiTest::GetWindowRect: SetForegroundWindow($w); my ( $x, $y ) = Win32::GuiTest::GetWindowRect($w); Win32::GuiTest::MouseMoveAbsPix( $x + 242, $y + 613 ); sleep 1; for ( 1 .. 4 ) { SendKeys("{DOWN}"); } SendRButtonDown(); SendRButtonUp(); итоговый скрипт (запуска воркфлоуменеджера информатики): https://gist.github.com/1384894 игрушки , конечно, приукольные, но нужно быть аккуратным, очень жаль что нельзя посылать сигнал именно окну по его id , а нужно его предварительно сделать SetForegroundWindow($w); ну такая уж, видимо, событийная модель виндоуз 22.11.2011, 08:56, "Dmitry Karasik" : >>  14 строка посылает enter SendKeys("~"); >>  , в notepad это работает, а вот >>  в java-приложении у меня будет работать, если я >>  дважды кликну (или 1 раз) на пункт этого меню (понятно, что там и контекстное меню другое) >>  как вычислить координату этого меню и послать туда сигнал мыши >> >>  MouseMoveAbsPix( ( $x, $y); >>       sleep(1); >>  SendMouse("{LeftClick}"); >> >>  как вычислить $x и $y ? >> >>  p.s. здесь http://www.perl.com/pub/2005/08/11/win32guitest.html еще хорошо написано, но это не помогает >>  help! > > Если EnumWindows или как там его не помогает на явовских приложениях ( в чем я очень сомневаюсь, т.к. контекстное > меню как ни крути, а будет иметь системный HWND, а значит его можно найти ), то можно на самый худой конец > анализировать пиксели с помощью Win32::GUIRobot > > -- > Sincerely, > Dmitry Karasik > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From dmitry на karasik.eu.org Tue Nov 29 07:27:13 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Tue, 29 Nov 2011 16:27:13 +0100 Subject: [Moscow.pm] Win32::GuiTest Open Context Menu Key In-Reply-To: <43651322575372@web52.yandex.ru> References: <680361321936512@web126.yandex.ru> <20111122045657.GA10596@tetsuo.karasik.eu.org> <43651322575372@web52.yandex.ru> Message-ID: <20111129152713.GA3549@tetsuo.karasik.eu.org> > игрушки , конечно, приукольные, но нужно быть аккуратным, > очень жаль что нельзя посылать сигнал именно окну по его id > , а нужно его предварительно сделать > SetForegroundWindow($w); > ну такая уж, видимо, событийная модель виндоуз Скорее жавы, т.к. родным виндузным приложениям я IIRC такое делал - а жава видимо сама решает кому идут сигналы. -- Sincerely, Dmitry Karasik