From mi на ya.ru Fri Sep 9 08:21:29 2011 From: mi на ya.ru (Nikolay Mishin) Date: Fri, 09 Sep 2011 19:21:29 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> Message-ID: <484111315581689@web57.yandex.ru> Hi Moscow PM Помогите , есть программа, сортирующая файлы: можно ли ее переписать с использованием Schwartzian Transform типа @new = map { $_->[0] } sort { $b->[1] <=> $a->[1] || $a->[2] cmp $b->[2] } map { [ $_, /=(\d+)/, uc($_) ] } @old; у меня что-то не получается #содержимое confile # N1089767N_7_SWOPT_03-Jul-2011_78919186.xml # N1089767N_7_SWOPT_25-Jun-2011_72745892.xml # N1089772L_9_SWOPT_03-Jul-2011_78979055.xml # N1089772L_9_SWOPT_20-Jul-2011_69380887.xml # N1089772L_9_SWOPT_29-Jun-2011_74754662.xml open( CONSULTS, "confile" ); @scons = ; close CONSULTS; my %is_trade_id_unique; foreach ( reverse sort consort @scons ) { chomp; if ( $_ =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { my ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $3, $4 ); if ( !$is_trade_id_unique{$trade_id} ) { print $_. "\n"; $is_trade_id_unique{$trade_id} = 1; } } } #N1089767N_7_SWOPT_03-Jul-2011_78919186.xml sub consort { $aa = $a; $bb = $b; # save our variables because our sort routine affects them. If I "chomp $a" # that will actually change the line seen in the foreach loop that calls this. chomp $aa; chomp $bb; $aa =~ s/^ *//; $bb =~ s/^ *//; my %months = ( FY => 0, Jan => 1, Feb => 2, Mar => 3, Apr => 4, May => 5, Jun => 6, Jul => 7, Aug => 8, Sep => 9, Oct => 10, Nov => 11, Dec => 12, ); my ( $trade_id, $date, $month, $row_num ); my ( $btrade_id, $bdate, $bmonth, $brow_num ); if ( $aa =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $months{$3}, $4 ); } if ( $bb =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { ( $btrade_id, $bdate, $bmonth, $brow_num ) = ( $1, $2, $months{$3}, $4 ); } $trade_id cmp $btrade_id || $month <=> $bmonth || $date <=> $bdate || $row_num <=> $brow_num; } From evdokimov.denis на gmail.com Fri Sep 9 08:51:00 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Fri, 9 Sep 2011 19:51:00 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <484111315581689@web57.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: Немного корректировки. Объявлять справочники стоит один раз(и обычно в начале программы). По этому для начала вынеси my %months = ( FY => 0, Jan => 1, Feb => 2, Mar => 3, Apr => 4, May => 5, Jun => 6, Jul => 7, Aug => 8, Sep => 9, Oct => 10, Nov => 11, Dec => 12, ); в начало. Дальше с регулярным выражением. Оно сильно не оптимально из-за того, что \w включает в себя знак _ Так будет получше m/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-20\d{2}_(\d+)[.]xml/ Дублировать RegExp'ы плохо По этому стоит объявить его один раз в начале use constant RegExp_parse_name => qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-20\d{2}_(\d+)[.]xml/; А дальше использовать так: if ( $aa =~ RegExp_parse_name ) { ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $months{$3}, $4 ); } if ( $bb =~ RegExp_parse_name ) { ( $btrade_id, $bdate, $bmonth, $brow_num ) = ( $1, $2, $months{$3}, $4 ); } From mi на ya.ru Fri Sep 9 09:05:33 2011 From: mi на ya.ru (Nikolay Mishin) Date: Fri, 09 Sep 2011 20:05:33 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: <496031315584333@web44.yandex.ru> красиво, спасибо за оптимизацию 09.09.2011, 19:51, "Denis Evdokimov" : > Немного корректировки. > > Объявлять справочники стоит один раз(и обычно в начале программы). > По этому для начала вынеси >    my %months = ( >        FY  => 0, >        Jan => 1, >        Feb => 2, >        Mar => 3, >        Apr => 4, >        May => 5, >        Jun => 6, >        Jul => 7, >        Aug => 8, >        Sep => 9, >        Oct => 10, >        Nov => 11, >        Dec => 12, >    ); > в начало. > > Дальше с регулярным выражением. > Оно сильно не оптимально из-за того, что \w включает в себя знак _ > Так будет получше > m/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-20\d{2}_(\d+)[.]xml/ > > Дублировать RegExp'ы плохо > По этому стоит объявить его один раз в начале > use constant RegExp_parse_name => > qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-20\d{2}_(\d+)[.]xml/; > А дальше использовать так: >  if ( $aa =~ RegExp_parse_name ) { >        ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $months{$3}, $4 ); >    } >    if ( $bb =~ RegExp_parse_name ) { >        ( $btrade_id, $bdate, $bmonth, $brow_num ) = >          ( $1, $2, $months{$3}, $4 ); >    } > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From evdokimov.denis на gmail.com Fri Sep 9 09:08:43 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Fri, 9 Sep 2011 20:08:43 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <496031315584333@web44.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> Message-ID: А теперь ответ на вопрос #!/usr/bin/perl use strict; use warnings; use constant RegExp_parse_name => qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; my %months = ( FY => '00', Jan => '01', Feb => '02', Mar => '03', Apr => '04', May => '05', Jun => '06', Jul => '07', Aug => '08', Sep => '09', Oct => '10', Nov => '11', Dec => '12', ); my @tmp_scons; while ( my $str = ) { chomp($str); my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ RegExp_parse_name; $trade_id or next; $month = $months{$month}; push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num", $str]; } my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; foreach(@scons) { print "$_\n"; } __DATA__ N1089767N_7_SWOPT_03-Jul-2011_78919186.xml N1089767N_7_SWOPT_25-Jun-2011_72745892.xml N1089772L_9_SWOPT_03-Jul-2011_78979055.xml N1089772L_9_SWOPT_20-Jul-2011_69380887.xml N1089772L_9_SWOPT_29-Jun-2011_74754662.xml From zzz на zzz.org.ua Fri Sep 9 09:10:56 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 9 Sep 2011 19:10:56 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: On 9/9/11, Denis Evdokimov wrote: > Дальше с регулярным выражением. > Оно сильно не оптимально из-за того, что \w включает в себя знак _ > Дублировать RegExp'ы плохо > По этому стоит объявить его один раз в начале > use constant RegExp_parse_name => Сори, но premature optimization же. Оптимизировать код в ущерб читабельности плохо From evdokimov.denis на gmail.com Fri Sep 9 09:14:34 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Fri, 9 Sep 2011 20:14:34 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: > Сори, но premature optimization же. > Оптимизировать код в ущерб читабельности плохо Не очень понял, где именно ущерб читабельности? [A-Z0-9]+ Вместо \w+ Или $bb =~ RegExp_parse_name Вместо $bb =~ /Длинный рег.експ/ From zzz на zzz.org.ua Fri Sep 9 09:16:33 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 9 Sep 2011 19:16:33 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: On 9/9/11, Denis Evdokimov wrote: >> Сори, но premature optimization же. >> Оптимизировать код в ущерб читабельности плохо > Не очень понял, где именно ущерб читабельности? > [A-Z0-9]+ Вместо \w+ > Или > $bb =~ RegExp_parse_name > Вместо > $bb =~ /Длинный рег.експ/ Оба. From evdokimov.denis на gmail.com Fri Sep 9 09:16:37 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Fri, 9 Sep 2011 20:16:37 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: P.S. Конечно же my @scons = map $_->[1], sort {$a->[0] cmp $b->[0]} @tmp_scons; А не my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; From evdokimov.denis на gmail.com Fri Sep 9 09:43:12 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Fri, 9 Sep 2011 20:43:12 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: Хорошо, попытаюсь объяснить свою позицию. [A-Z0-9]+ Вместо \w+ Оба варианта отлично читаются, как мне кажется. Но в данном контексте использовать \w+ вредно, т.к. захватывает много лишнего $aa ="N1089767N_7_SWOPT_03-Jul-2011_78919186.xml"; $aa =~ m/(\w+_\d+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i; Перым делом \w+ захватит всё до - т.е. N1089767N_7_SWOPT_03 Что явно не то, что хотелось. Если [A-Z0-9]+ слишком длинно, можно написать так [^_]+ Во втором случае вообще не вижу причин для недовольства. Основная мысль - копирование одного и того же RegExp'а в несколько мест недопустимо. Из моего опыта могу сказать, что выносить RegExp'ы в константы/переменные, а константы выделять в отдельный пакет - очень здравое решение. Особенно, если для этого пакета написать юнит-тесты. From dsimonov на gmail.com Fri Sep 9 09:50:53 2011 From: dsimonov на gmail.com (Dmitry Simonov) Date: Fri, 9 Sep 2011 20:50:53 +0400 Subject: [Moscow.pm] AnyEvent+Mojo? In-Reply-To: <201108121903.23287.mons@cpan.org> References: <201108121855.52317.mons@cpan.org> <201108121903.23287.mons@cpan.org> Message-ID: Прикольно. Если в системе установлен EV, то синхронное приложение начинает отрабатывать каждый реквест что-то около 15 секунд. --- С искр. ув. Д.Симонов 2011/8/12 Mons Anderson : > Лады, погляжу > > On Friday 12 August 2011 19:01:07 Анатолий Шарифулин wrote: >> https://gist.github.com/1130253 >> >> 2011/8/12 Mons Anderson >> >> > Я не понял, а куда делась поддержка AE из Mojo? >> > Или ее там никогда и не было, и Шарифулин врал? >> > >> > -- >> > Mons Anderson aka Vladimir Perepelitsa >> > / #99779956 / quanth на irc.freenode.net >> > -- >> > Moscow.pm mailing list >> > moscow-pm на pm.org | http://moscow.pm.org > > > > -- > Mons Anderson aka Vladimir Perepelitsa > / #99779956 / quanth на irc.freenode.net > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From evdokimov.denis на gmail.com Fri Sep 9 09:52:08 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Fri, 9 Sep 2011 20:52:08 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: Единственное, что мне не нравится в первоначальном RegExp'е, а по этому и в моём - они слишком дотошы. Насколько я вижу, нам приходят валидные данные. По этому проверять их не имеет смысла. По этому вместо qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; я бы написал qr/(\w+)_(\d{2})-(\w{3})-(\d{4})_(\d+)/; From zzz на zzz.org.ua Fri Sep 9 09:54:48 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 9 Sep 2011 19:54:48 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: On 9/9/11, Denis Evdokimov wrote: > Во втором случае вообще не вижу причин для недовольства. > Основная мысль - копирование одного и того же RegExp'а в несколько > мест недопустимо. Нет, выносить регулярное выражение в константы недопустимо. Это практически тоже самое, что повыносить условия в константы, типа вместо if $a eq 'foo' писать if SOME_A_CONDITION. Это же не джаваскрипт или пхп, тут регулярные выражения являются частью языка, как циклы, условия и т.д. From mi на ya.ru Fri Sep 9 10:57:25 2011 From: mi на ya.ru (Nikolay Mishin) Date: Fri, 09 Sep 2011 21:57:25 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> Message-ID: <471441315591045@web24.yandex.ru> Отличный отчет, но в результате сортируется не верно - после июня июль проверьте на этом куске #!/usr/bin/perl use strict; use warnings; use Smart::Comments; use constant RegExp_parse_name => qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; my %months = ( Jan => '01', Feb => '02', Mar => '03', Apr => '04', May => '05',Jun => '06', Jul => '07', Aug => '08', Sep => '09', Oct => '10', Nov => '11',Dec => '12', ); my @tmp_scons; my @tmp_scons2; while ( my $str = ) { chomp($str); my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ RegExp_parse_name; $trade_id or next; $month = $months{$month}; push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num", $str]; push @tmp_scons2, "$trade_id:$year-$month-$date:$row_num"; } my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; ### @tmp_scons2:@tmp_scons2 ### @tmp_scons:@tmp_scons ### @scons:@scons foreach(sort @tmp_scons2) { print "$_\n"; } foreach(@scons) { print "$_\n"; } __DATA__ N1089767N_7_SWOPT_03-Jul-2011_78919186.xml N1089767N_7_SWOPT_25-Jun-2011_72745892.xml N1089772L_9_SWOPT_03-Jul-2011_78979055.xml N1089772L_9_SWOPT_20-Jul-2011_69380887.xml N1089772L_9_SWOPT_29-Jun-2011_74754662.xml 09.09.2011, 20:08, "Denis Evdokimov" : > А теперь ответ на вопрос > #!/usr/bin/perl > use strict; > use warnings; > > use constant RegExp_parse_name => > qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; > my %months = ( >                FY  => '00', >                Jan => '01', >                Feb => '02', >                Mar => '03', >                Apr => '04', >                May => '05', >                Jun => '06', >                Jul => '07', >                Aug => '08', >                Sep => '09', >                Oct => '10', >                Nov => '11', >                Dec => '12', > ); > > my @tmp_scons; > while ( my $str = ) > { >     chomp($str); >     my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ > RegExp_parse_name; >     $trade_id or next; >     $month = $months{$month}; >     push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num",  $str]; > } > my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; > > foreach(@scons) > { >     print "$_\n"; > } > > __DATA__ > N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > N1089767N_7_SWOPT_25-Jun-2011_72745892.xml > N1089772L_9_SWOPT_03-Jul-2011_78979055.xml > N1089772L_9_SWOPT_20-Jul-2011_69380887.xml > N1089772L_9_SWOPT_29-Jun-2011_74754662.xml > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From cub.uanic на gmail.com Fri Sep 9 10:57:50 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Fri, 9 Sep 2011 20:57:50 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: Ага, то есть надо один и тот же регексп копи-пастить ЭН раз, потом, если прийдётся - менять ЭН раз, где-то пропустить/забыть/ошибиться, и потом неделю ловить баги? Какие ещё интересные развлечения вы практикуете? :) 9 сентября 2011 г. 19:54 пользователь Alexandr Gomoliako написал: > On 9/9/11, Denis Evdokimov wrote: >> Во втором случае вообще не вижу причин для недовольства. >> Основная мысль - копирование одного и того же RegExp'а в несколько >> мест недопустимо. > > Нет, выносить регулярное выражение в константы недопустимо. Это > практически тоже самое, что повыносить условия в константы, типа > вместо if $a eq 'foo' писать if SOME_A_CONDITION. > > Это же не джаваскрипт или пхп, тут регулярные выражения являются > частью языка, как циклы, условия и т.д. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From zzz на zzz.org.ua Fri Sep 9 11:01:22 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Fri, 9 Sep 2011 21:01:22 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: On 9/9/11, Oleg Kostyuk wrote: > Ага, то есть надо один и тот же регексп копи-пастить ЭН раз, потом, > если прийдётся - менять ЭН раз, где-то пропустить/забыть/ошибиться, и > потом неделю ловить баги? А про подпрограммы не слышали? :) From cub.uanic на gmail.com Fri Sep 9 11:08:11 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Fri, 9 Sep 2011 21:08:11 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: А вы в курсе, что use constant создаёт как раз подпрограммы? :))) 9 сентября 2011 г. 21:01 пользователь Alexandr Gomoliako написал: > On 9/9/11, Oleg Kostyuk wrote: >> Ага, то есть надо один и тот же регексп копи-пастить ЭН раз, потом, >> если прийдётся - менять ЭН раз, где-то пропустить/забыть/ошибиться, и >> потом неделю ловить баги? > > А про подпрограммы не слышали? :) > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From ali на ali.org.ua Fri Sep 9 11:15:12 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Fri, 09 Sep 2011 21:15:12 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: <4E6A57B0.30203@ali.org.ua> On 09.09.2011 21:01, Alexandr Gomoliako wrote: > On 9/9/11, Oleg Kostyuk wrote: >> Ага, то есть надо один и тот же регексп копи-пастить ЭН раз, потом, >> если прийдётся - менять ЭН раз, где-то пропустить/забыть/ошибиться, и >> потом неделю ловить баги? > > А про подпрограммы не слышали? :) Шикарно. use constant, значит, не катит, а подпрограммы катят. -- Олег From akzhan.abdulin на gmail.com Fri Sep 9 11:20:32 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Fri, 9 Sep 2011 22:20:32 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <484111315581689@web57.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: Я не понял проблемы. Любую программу можно переписать при знании исходного и целевого алгоритмов. Зачем сюда приплетать кучу народу? 9 сентября 2011 г. 19:21 пользователь Nikolay Mishin написал: > Hi Moscow PM > > Помогите , есть программа, сортирующая файлы: > можно ли ее переписать с использованием Schwartzian Transform > типа @new = map { $_->[0] } > sort { $b->[1] <=> $a->[1] || $a->[2] cmp $b->[2] } > map { [ $_, /=(\d+)/, uc($_) ] } @old; > у меня что-то не получается > #содержимое confile > # N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > # N1089767N_7_SWOPT_25-Jun-2011_72745892.xml > # N1089772L_9_SWOPT_03-Jul-2011_78979055.xml > # N1089772L_9_SWOPT_20-Jul-2011_69380887.xml > # N1089772L_9_SWOPT_29-Jun-2011_74754662.xml > open( CONSULTS, "confile" ); > @scons = ; > close CONSULTS; > my %is_trade_id_unique; > foreach ( reverse sort consort @scons ) { > chomp; > if ( $_ =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { > my ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $3, $4 ); > if ( !$is_trade_id_unique{$trade_id} ) { > print $_. "\n"; > $is_trade_id_unique{$trade_id} = 1; > } > } > > } > > #N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > sub consort { > $aa = $a; > $bb = $b; > > # save our variables because our sort routine affects them. If I "chomp > $a" > # that will actually change the line seen in the foreach loop that calls > this. > chomp $aa; > chomp $bb; > > $aa =~ s/^ *//; > $bb =~ s/^ *//; > > my %months = ( > FY => 0, > Jan => 1, > Feb => 2, > Mar => 3, > Apr => 4, > May => 5, > Jun => 6, > Jul => 7, > Aug => 8, > Sep => 9, > Oct => 10, > Nov => 11, > Dec => 12, > ); > > my ( $trade_id, $date, $month, $row_num ); > my ( $btrade_id, $bdate, $bmonth, $brow_num ); > if ( $aa =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { > ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $months{$3}, $4 > ); > } > if ( $bb =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { > ( $btrade_id, $bdate, $bmonth, $brow_num ) = > ( $1, $2, $months{$3}, $4 ); > } > > $trade_id cmp $btrade_id > || $month <=> $bmonth > || $date <=> $bdate > || $row_num <=> $brow_num; > > } > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mi на ya.ru Fri Sep 9 11:41:33 2011 From: mi на ya.ru (Nikolay Mishin) Date: Fri, 09 Sep 2011 22:41:33 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <471441315591045@web24.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> Message-ID: <548551315593693@web158.yandex.ru> Я бы еще оптимизнул на определении хеша с месяцами my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/; my %months; foreach my $index ( 0 .. $#month ) { $months{ $month[$index] } = $index } 09.09.2011, 21:57, "Nikolay Mishin" : > Отличный отчет, но в результате сортируется не верно - после июня июль > проверьте на этом куске > #!/usr/bin/perl > use strict; > use warnings; > use Smart::Comments; > > use constant RegExp_parse_name => > qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; > my %months = ( Jan => '01', Feb => '02', Mar => '03', Apr => '04', May => '05',Jun => '06', >                Jul => '07', Aug => '08', Sep => '09', Oct => '10', Nov => '11',Dec => '12', > ); > > my @tmp_scons; > my @tmp_scons2; > while ( my $str = ) > { >     chomp($str); >     my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ > RegExp_parse_name; >     $trade_id or next; >     $month = $months{$month}; >     push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num",  $str]; >     push @tmp_scons2, "$trade_id:$year-$month-$date:$row_num"; > } > my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; > > ### @tmp_scons2:@tmp_scons2 > ### @tmp_scons:@tmp_scons > ### @scons:@scons > foreach(sort @tmp_scons2) > { >     print "$_\n"; > } > > foreach(@scons) > { >     print "$_\n"; > } > > __DATA__ > N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > N1089767N_7_SWOPT_25-Jun-2011_72745892.xml > N1089772L_9_SWOPT_03-Jul-2011_78979055.xml > N1089772L_9_SWOPT_20-Jul-2011_69380887.xml > N1089772L_9_SWOPT_29-Jun-2011_74754662.xml > > 09.09.2011, 20:08, "Denis Evdokimov" : > >>  А теперь ответ на вопрос >>  #!/usr/bin/perl >>  use strict; >>  use warnings; >> >>  use constant RegExp_parse_name => >>  qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; >>  my %months = ( >>                 FY  => '00', >>                 Jan => '01', >>                 Feb => '02', >>                 Mar => '03', >>                 Apr => '04', >>                 May => '05', >>                 Jun => '06', >>                 Jul => '07', >>                 Aug => '08', >>                 Sep => '09', >>                 Oct => '10', >>                 Nov => '11', >>                 Dec => '12', >>  ); >> >>  my @tmp_scons; >>  while ( my $str = ) >>  { >>      chomp($str); >>      my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ >>  RegExp_parse_name; >>      $trade_id or next; >>      $month = $months{$month}; >>      push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num",  $str]; >>  } >>  my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; >> >>  foreach(@scons) >>  { >>      print "$_\n"; >>  } >> >>  __DATA__ >>  N1089767N_7_SWOPT_03-Jul-2011_78919186.xml >>  N1089767N_7_SWOPT_25-Jun-2011_72745892.xml >>  N1089772L_9_SWOPT_03-Jul-2011_78979055.xml >>  N1089772L_9_SWOPT_20-Jul-2011_69380887.xml >>  N1089772L_9_SWOPT_29-Jun-2011_74754662.xml >> >>  -- >>  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 -- Nikolay Mishin From mi на ya.ru Fri Sep 9 12:04:55 2011 From: mi на ya.ru (Nikolay Mishin) Date: Fri, 09 Sep 2011 23:04:55 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <548551315593693@web158.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: <494631315595095@web97.yandex.ru> Всем огромное спасибо!! Итоговый вариант #!/usr/bin/perl use strict; use warnings; #use Smart::Comments; use constant RegExp_parse_name => qr/(\w+)_(\d{2})-(\w{3})-(\d{4})_(\d+)/; #qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; #create month hash my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/; my %months; foreach my $index ( 0 .. $#month ) { $months{ $month[$index] } = $index } #generate tmp array for special sort my @tmp_scons; while ( my $str = ) { chomp($str); my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ RegExp_parse_name; $trade_id or next; $month = $months{$month}; push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num", $str ]; } my @scons = map $_->[1], reverse sort { $a cmp $b } @tmp_scons; ### @tmp_scons:@tmp_scons ### @scons:@scons ### %months:%months my %is; foreach my $str (@scons) { my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ RegExp_parse_name; if ( !$is{$trade_id} ) { print "$str\n"; } $is{$trade_id}++; } __DATA__ N1089767N_7_SWOPT_03-Jul-2011_78919186.xml N1089767N_7_SWOPT_25-Jun-2011_72745892.xml N1089772L_9_SWOPT_03-Jul-2011_78979055.xml N1089772L_9_SWOPT_20-Jul-2011_69380887.xml N1089772L_9_SWOPT_29-Jun-2011_74754662.xml 09.09.2011, 22:41, "Nikolay Mishin" : > Я бы еще оптимизнул на определении хеша с месяцами > > my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/; > my %months; > foreach my $index ( 0 .. $#month ) { $months{ $month[$index] } = $index } > > 09.09.2011, 21:57, "Nikolay Mishin" : > >>  Отличный отчет, но в результате сортируется не верно - после июня июль >>  проверьте на этом куске >>  #!/usr/bin/perl >>  use strict; >>  use warnings; >>  use Smart::Comments; >> >>  use constant RegExp_parse_name => >>  qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; >>  my %months = ( Jan => '01', Feb => '02', Mar => '03', Apr => '04', May => '05',Jun => '06', >>                 Jul => '07', Aug => '08', Sep => '09', Oct => '10', Nov => '11',Dec => '12', >>  ); >> >>  my @tmp_scons; >>  my @tmp_scons2; >>  while ( my $str = ) >>  { >>      chomp($str); >>      my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ >>  RegExp_parse_name; >>      $trade_id or next; >>      $month = $months{$month}; >>      push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num",  $str]; >>      push @tmp_scons2, "$trade_id:$year-$month-$date:$row_num"; >>  } >>  my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; >> >>  ### @tmp_scons2:@tmp_scons2 >>  ### @tmp_scons:@tmp_scons >>  ### @scons:@scons >>  foreach(sort @tmp_scons2) >>  { >>      print "$_\n"; >>  } >> >>  foreach(@scons) >>  { >>      print "$_\n"; >>  } >> >>  __DATA__ >>  N1089767N_7_SWOPT_03-Jul-2011_78919186.xml >>  N1089767N_7_SWOPT_25-Jun-2011_72745892.xml >>  N1089772L_9_SWOPT_03-Jul-2011_78979055.xml >>  N1089772L_9_SWOPT_20-Jul-2011_69380887.xml >>  N1089772L_9_SWOPT_29-Jun-2011_74754662.xml >> >>  09.09.2011, 20:08, "Denis Evdokimov" : >>>   А теперь ответ на вопрос >>>   #!/usr/bin/perl >>>   use strict; >>>   use warnings; >>> >>>   use constant RegExp_parse_name => >>>   qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; >>>   my %months = ( >>>                  FY  => '00', >>>                  Jan => '01', >>>                  Feb => '02', >>>                  Mar => '03', >>>                  Apr => '04', >>>                  May => '05', >>>                  Jun => '06', >>>                  Jul => '07', >>>                  Aug => '08', >>>                  Sep => '09', >>>                  Oct => '10', >>>                  Nov => '11', >>>                  Dec => '12', >>>   ); >>> >>>   my @tmp_scons; >>>   while ( my $str = ) >>>   { >>>       chomp($str); >>>       my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ >>>   RegExp_parse_name; >>>       $trade_id or next; >>>       $month = $months{$month}; >>>       push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num",  $str]; >>>   } >>>   my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; >>> >>>   foreach(@scons) >>>   { >>>       print "$_\n"; >>>   } >>> >>>   __DATA__ >>>   N1089767N_7_SWOPT_03-Jul-2011_78919186.xml >>>   N1089767N_7_SWOPT_25-Jun-2011_72745892.xml >>>   N1089772L_9_SWOPT_03-Jul-2011_78979055.xml >>>   N1089772L_9_SWOPT_20-Jul-2011_69380887.xml >>>   N1089772L_9_SWOPT_29-Jun-2011_74754662.xml >>> >>>   -- >>>   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 > > -- > Nikolay Mishin > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From chesnokov.ilya на gmail.com Fri Sep 9 14:38:21 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Sat, 10 Sep 2011 01:38:21 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <548551315593693@web158.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: 9 сентября 2011 г. 22:41 пользователь Nikolay Mishin написал: > Я бы еще оптимизнул на определении хеша с месяцами > > my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/; > my %months; > foreach my $index ( 0 .. $#month ) { $months{ $month[$index] } = $index } Или, например, так: my %months; @months{ qw/ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec / } = (1)x12; )) -- Ilya Chesnokov From meettya на gmail.com Fri Sep 9 14:57:08 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Sat, 10 Sep 2011 01:57:08 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <494631315595095@web97.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> Message-ID: <8447D12E-1885-441C-9819-C576D95530B6@gmail.com> Э... итоговый вариант настолько впечатлил, что не удержался сделать "от и до". https://ideone.com/VVfJj Послушайте, преобразование Шварца это не волшебный порошок, и не гипердвигатель. Прикрутив его костылями и скотчем к какому-то скрипту нельзя получить плюсписот к экспе и ливелап всем юнитам. Посмотрите на то, что делает скрипт, как он это делает и не мешайте ему работать :) Джиу-джитсу в действии - эффективность без лишних движений. Митяй. On Sep 9, 2011, at 11:04 PM, Nikolay Mishin wrote: > Всем огромное спасибо!! Итоговый вариант > > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chesnokov.ilya на gmail.com Fri Sep 9 15:00:06 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Sat, 10 Sep 2011 02:00:06 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: 2011/9/10 Ilya Chesnokov : > 9 сентября 2011 г. 22:41 пользователь Nikolay Mishin написал: >> Я бы еще оптимизнул на определении хеша с месяцами >> >> my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/; >> my %months; >> foreach my $index ( 0 .. $#month ) { $months{ $month[$index] } = $index } > > Или, например, так: > > my %months; > @months{ qw/ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec / } = (1)x12; Пардон, там же индексы, а не единицы )) Тогда так: my %months; @months{ qw/ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec / } = 0..11; И кстати, по поводу имён @month и %months - тут наоборот, для массива лучше использовать множественное число, а для хеша - единственное. И хешу больше подошло бы имя %month_index, т.е. обращение к элементу будет выглядеть, например, как $month_index{Jan} - т.е. мы обращаемся к индексу месяца 'Jan'. > Нет, выносить регулярное выражение в константы недопустимо С этим, кстати, тоже не согласен. Не только допустимо, но и очень удобно. Например, в модуле Regexp::Common полно готовых регекспов, к которым можно обратиться по имени. А чем мы хуже? )) -- Ilya Chesnokov From zzz на zzz.org.ua Fri Sep 9 15:36:16 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 10 Sep 2011 01:36:16 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: On 9/10/11, Ilya Chesnokov wrote: >> Нет, выносить регулярное выражение в константы недопустимо > > С этим, кстати, тоже не согласен. Не только допустимо, но и очень > удобно. Например, в модуле Regexp::Common полно готовых регекспов, к > которым можно обратиться по имени. А чем мы хуже? )) Т.е. вы считаете вот это читабельным кодом? Тогда скажите, что будет в $&? if ($str =~ $RE{num}{real}{-keep}) { $number = $1; $whole = $3; $decimals = $5; } Или в примере ранее: next unless $search_str =~ s/$RegExp_parse_name/$4-$months{$3}-$2:$5/; Если $RegExp_parse_name будет рядом, то ладно, можно еще стерпеть. Но если он где-то в начале модуля, то это уже совсем плохо. Пока найдешь, где эта $RegExp_parse_name уже забудешь, в каком контексте искал. Нужно сразу видеть, что будет в $&, $1, $2 ... On 9/9/11, Oleg Alistratov wrote: >> вместо if $a eq 'foo' писать if SOME_A_CONDITION. > > сомнительно. Ведь речь о > > if ( $a eq SOME_VALUE ) Наоборот, даже ближе к if SOME_A_B_CONDITION вместо if $a eq 'foo' || $b eq 'bar', у вас же в регулярных выражениях есть captures > И вообще, если литерал встречается в исходниках более одного раза, > он тут же напрашивается на быть записаным константой. Само собой, но к регулярным выражениям это не относится. From onokonem на gmail.com Fri Sep 9 23:52:01 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Sat, 10 Sep 2011 10:52:01 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: > Т.е. вы считаете вот это читабельным кодом? Тогда скажите, что будет в $&? Это вопрос названия переменной. From ccnweb на gmail.com Sat Sep 10 02:45:40 2011 From: ccnweb на gmail.com (Alexander Onokhov) Date: Sat, 10 Sep 2011 12:45:40 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <484111315581689@web57.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: Я б скрипт переписал примерно так: #!/perl -lan -F'_|-' -- $F[4] = { Jan => '01', Feb => '02', Mar => '03', Apr => '04', May => '05', Jun => '06', Jul => '07', Aug => '08', Sep => '09', Oct => 10, Nov => 11, Dec => 12 }->{ $F[4] }; $date = join '-', @F[5,4,3]; $R{ $F[0] } = { file => $_, date => $date } if ! $R{ $F[0] } or $R{ $F[0] }{date} le $date; }{ print $R{$_}{file} for reverse sort keys %R; Комментарии проставить по вкусу Вызов perl script.pl confile 2011/9/9 Nikolay Mishin > Hi Moscow PM > > Помогите , есть программа, сортирующая файлы: > можно ли ее переписать с использованием Schwartzian Transform > типа @new = map { $_->[0] } > sort { $b->[1] <=> $a->[1] || $a->[2] cmp $b->[2] } > map { [ $_, /=(\d+)/, uc($_) ] } @old; > у меня что-то не получается > #содержимое confile > # N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > # N1089767N_7_SWOPT_25-Jun-2011_72745892.xml > # N1089772L_9_SWOPT_03-Jul-2011_78979055.xml > # N1089772L_9_SWOPT_20-Jul-2011_69380887.xml > # N1089772L_9_SWOPT_29-Jun-2011_74754662.xml > open( CONSULTS, "confile" ); > @scons = ; > close CONSULTS; > my %is_trade_id_unique; > foreach ( reverse sort consort @scons ) { > chomp; > if ( $_ =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { > my ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $3, $4 ); > if ( !$is_trade_id_unique{$trade_id} ) { > print $_. "\n"; > $is_trade_id_unique{$trade_id} = 1; > } > } > > } > > #N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > sub consort { > $aa = $a; > $bb = $b; > > # save our variables because our sort routine affects them. If I "chomp > $a" > # that will actually change the line seen in the foreach loop that calls > this. > chomp $aa; > chomp $bb; > > $aa =~ s/^ *//; > $bb =~ s/^ *//; > > my %months = ( > FY => 0, > Jan => 1, > Feb => 2, > Mar => 3, > Apr => 4, > May => 5, > Jun => 6, > Jul => 7, > Aug => 8, > Sep => 9, > Oct => 10, > Nov => 11, > Dec => 12, > ); > > my ( $trade_id, $date, $month, $row_num ); > my ( $btrade_id, $bdate, $bmonth, $brow_num ); > if ( $aa =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { > ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $months{$3}, $4 > ); > } > if ( $bb =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) { > ( $btrade_id, $bdate, $bmonth, $brow_num ) = > ( $1, $2, $months{$3}, $4 ); > } > > $trade_id cmp $btrade_id > || $month <=> $bmonth > || $date <=> $bdate > || $row_num <=> $brow_num; > > } > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Alexander ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chesnokov.ilya на gmail.com Sat Sep 10 04:37:57 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Sat, 10 Sep 2011 15:37:57 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: 10 сентября 2011 г. 2:36 пользователь Alexandr Gomoliako написал: > On 9/10/11, Ilya Chesnokov wrote: >>> Нет, выносить регулярное выражение в константы недопустимо >> >> С этим, кстати, тоже не согласен. Не только допустимо, но и очень >> удобно. Например, в модуле Regexp::Common полно готовых регекспов, к >> которым можно обратиться по имени. А чем мы хуже? )) > > Т.е. вы считаете вот это читабельным кодом? Тогда скажите, что будет в $&? В $& всегда хранится часть строки, которая соответствует регулярному выражению, т.е. в данном случае это всё число с плавающей точкой. А что хранится в $1, $2, $3 и т.д., можно посмотреть в perldoc Regexp::Common::number. И да, я считаю, что приведённое выражение гораздо более читабельно, чем аналогичное: if ( $str =~ /((?i)([+-]?)((?=[.]?[0-9])([0-9]*)(?:([.])([0-9]{0,}))?)(?:([E])(([+-]?)([0-9]+))|))/ ) { ... } > if ($str =~ $RE{num}{real}{-keep}) { >    $number   = $1; >    $whole    = $3; >    $decimals = $5; > } > -- Ilya Chesnokov From zzz на zzz.org.ua Sat Sep 10 07:11:27 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 10 Sep 2011 17:11:27 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: On 9/10/11, Ilya Chesnokov wrote: > И да, я считаю, что приведённое выражение гораздо более читабельно, > чем аналогичное: > if ( $str =~ > /((?i)([+-]?)((?=[.]?[0-9])([0-9]*)(?:([.])([0-9]{0,}))?)(?:([E])(([+-]?)([0-9]+))|))/ >> if ($str =~ $RE{num}{real}{-keep}) { >> $number = $1; >> $whole = $3; >> $decimals = $5; Это далеко не аналогично, у вас было бы что-то ближе к if ($str =~ /(..)(..)(..)/), что намного читабельнее, проще, понятнее и не требует изучения очередного левого модуля со cpan, еще и огромного к тому же. Теперь ясно, почему никто не хочет учитывать мнение комьюнити. Regexp::Common это плохо. From mi на ya.ru Sat Sep 10 08:58:58 2011 From: mi на ya.ru (Nikolay Mishin) Date: Sat, 10 Sep 2011 19:58:58 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <494631315595095@web97.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> Message-ID: <717631315670338@web140.yandex.ru> кстати здесь ошибка , правильно my @scons = map $_->[1], sort { $a->[0] cmp $b->[0] } @tmp_scons; это мне на http://stackoverflow.com/questions/7366402/perl-schwartzian-transform подсказали 09.09.2011, 23:04, "Nikolay Mishin" : > Всем огромное спасибо!! Итоговый вариант > > #!/usr/bin/perl > use strict; > use warnings; > > #use Smart::Comments; > > use constant RegExp_parse_name => qr/(\w+)_(\d{2})-(\w{3})-(\d{4})_(\d+)/; > > #qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; > > #create month hash > my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/; > my %months; > foreach my $index ( 0 .. $#month ) { $months{ $month[$index] } = $index } > > #generate tmp array for special sort > my @tmp_scons; > while ( my $str = ) { >     chomp($str); >     my ( $trade_id, $date, $month, $year, $row_num ) = >       $str =~ RegExp_parse_name; >     $trade_id or next; >     $month = $months{$month}; >     push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num", $str ]; > } > my @scons = map $_->[1], reverse sort { $a cmp $b } @tmp_scons; > > ### @tmp_scons:@tmp_scons > ### @scons:@scons > ### %months:%months > my %is; > > foreach my $str (@scons) { >     my ( $trade_id, $date, $month, $year, $row_num ) = >       $str =~ RegExp_parse_name; >     if ( !$is{$trade_id} ) { >         print "$str\n"; >     } >     $is{$trade_id}++; > } > > __DATA__ > N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > N1089767N_7_SWOPT_25-Jun-2011_72745892.xml > N1089772L_9_SWOPT_03-Jul-2011_78979055.xml > N1089772L_9_SWOPT_20-Jul-2011_69380887.xml > N1089772L_9_SWOPT_29-Jun-2011_74754662.xml > > 09.09.2011, 22:41, "Nikolay Mishin" : > >>  Я бы еще оптимизнул на определении хеша с месяцами >> >>  my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/; >>  my %months; >>  foreach my $index ( 0 .. $#month ) { $months{ $month[$index] } = $index } >> >>  09.09.2011, 21:57, "Nikolay Mishin" : >>>   Отличный отчет, но в результате сортируется не верно - после июня июль >>>   проверьте на этом куске >>>   #!/usr/bin/perl >>>   use strict; >>>   use warnings; >>>   use Smart::Comments; >>> >>>   use constant RegExp_parse_name => >>>   qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; >>>   my %months = ( Jan => '01', Feb => '02', Mar => '03', Apr => '04', May => '05',Jun => '06', >>>                  Jul => '07', Aug => '08', Sep => '09', Oct => '10', Nov => '11',Dec => '12', >>>   ); >>> >>>   my @tmp_scons; >>>   my @tmp_scons2; >>>   while ( my $str = ) >>>   { >>>       chomp($str); >>>       my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ >>>   RegExp_parse_name; >>>       $trade_id or next; >>>       $month = $months{$month}; >>>       push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num",  $str]; >>>       push @tmp_scons2, "$trade_id:$year-$month-$date:$row_num"; >>>   } >>>   my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; >>> >>>   ### @tmp_scons2:@tmp_scons2 >>>   ### @tmp_scons:@tmp_scons >>>   ### @scons:@scons >>>   foreach(sort @tmp_scons2) >>>   { >>>       print "$_\n"; >>>   } >>> >>>   foreach(@scons) >>>   { >>>       print "$_\n"; >>>   } >>> >>>   __DATA__ >>>   N1089767N_7_SWOPT_03-Jul-2011_78919186.xml >>>   N1089767N_7_SWOPT_25-Jun-2011_72745892.xml >>>   N1089772L_9_SWOPT_03-Jul-2011_78979055.xml >>>   N1089772L_9_SWOPT_20-Jul-2011_69380887.xml >>>   N1089772L_9_SWOPT_29-Jun-2011_74754662.xml >>> >>>   09.09.2011, 20:08, "Denis Evdokimov" : >>>>    А теперь ответ на вопрос >>>>    #!/usr/bin/perl >>>>    use strict; >>>>    use warnings; >>>> >>>>    use constant RegExp_parse_name => >>>>    qr/([A-Z0-9]+_\d+_[A-Z0-9]+)_(\d+)-([A-Z][a-z]{2})-(20\d{2})_(\d+)[.]xml/; >>>>    my %months = ( >>>>                   FY  => '00', >>>>                   Jan => '01', >>>>                   Feb => '02', >>>>                   Mar => '03', >>>>                   Apr => '04', >>>>                   May => '05', >>>>                   Jun => '06', >>>>                   Jul => '07', >>>>                   Aug => '08', >>>>                   Sep => '09', >>>>                   Oct => '10', >>>>                   Nov => '11', >>>>                   Dec => '12', >>>>    ); >>>> >>>>    my @tmp_scons; >>>>    while ( my $str = ) >>>>    { >>>>        chomp($str); >>>>        my ( $trade_id, $date, $month, $year, $row_num ) = $str =~ >>>>    RegExp_parse_name; >>>>        $trade_id or next; >>>>        $month = $months{$month}; >>>>        push @tmp_scons, [ "$trade_id:$year-$month-$date:$row_num",  $str]; >>>>    } >>>>    my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; >>>> >>>>    foreach(@scons) >>>>    { >>>>        print "$_\n"; >>>>    } >>>> >>>>    __DATA__ >>>>    N1089767N_7_SWOPT_03-Jul-2011_78919186.xml >>>>    N1089767N_7_SWOPT_25-Jun-2011_72745892.xml >>>>    N1089772L_9_SWOPT_03-Jul-2011_78979055.xml >>>>    N1089772L_9_SWOPT_20-Jul-2011_69380887.xml >>>>    N1089772L_9_SWOPT_29-Jun-2011_74754662.xml >>>> >>>>    -- >>>>    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 >>  -- >>  Nikolay Mishin >> >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin -- Nikolay Mishin From chesnokov.ilya на gmail.com Sat Sep 10 09:19:34 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Sat, 10 Sep 2011 20:19:34 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: 10 сентября 2011 г. 18:11 пользователь Alexandr Gomoliako написал: > On 9/10/11, Ilya Chesnokov wrote: >> И да, я считаю, что приведённое выражение гораздо более читабельно, >> чем аналогичное: > >> if ( $str =~ >> /((?i)([+-]?)((?=[.]?[0-9])([0-9]*)(?:([.])([0-9]{0,}))?)(?:([E])(([+-]?)([0-9]+))|))/ > >>> if ($str =~ $RE{num}{real}{-keep}) { >>>    $number   = $1; >>>    $whole    = $3; >>>    $decimals = $5; > > Это далеко не аналогично, у вас было бы что-то ближе к if ($str =~ > /(..)(..)(..)/), что намного читабельнее, проще, понятнее и не требует > изучения очередного левого модуля со cpan, еще и огромного к тому же. Напоминает троллинг )) > Теперь ясно, почему никто не хочет учитывать мнение комьюнити. Вы ассоциируете себя с коммьюнити? ) В-общем, спор ни о чём, так что не вижу смысла его продолжать - пусть каждый останется при своём. > Regexp::Common это плохо. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Ilya Chesnokov From zzz на zzz.org.ua Sat Sep 10 09:44:03 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Sat, 10 Sep 2011 19:44:03 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: On 9/10/11, Ilya Chesnokov wrote: >> Это далеко не аналогично, у вас было бы что-то ближе к if ($str =~ >> /(..)(..)(..)/), что намного читабельнее, проще, понятнее и не требует >> изучения очередного левого модуля со cpan, еще и огромного к тому же. > > Напоминает троллинг )) Какой троллинг? Конкретно, где я не прав? >> Теперь ясно, почему никто не хочет учитывать мнение комьюнити. > > Вы ассоциируете себя с коммьюнити? ) Я считаю всех здесь частью комьюнити. И имел в виду, что многие разработчики, которые выкладывают модули на cpan, вообще не учитывают мнение комьюнити. Вон Марк хороший пример. From peter на vereshagin.org Sat Sep 10 11:06:33 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sat, 10 Sep 2011 22:06:33 +0400 Subject: [Moscow.pm] =?koi8-r?b?RmluZEJpbiDJIGNyb24=?= In-Reply-To: Message-ID: <20110910180632.GC5251@external.screwed.box> Hello. 2011/08/26 12:00:21 -0700 moscow-pm-request на pm.org => To moscow-pm на pm.org : > Ну это ж немного не о том :) Что проскипал, то не понял, наверное, потому что не пользую qw(). (= > Впрочем, это всё теория, на практике лично я предпочитаю qw// :) А на это я и намекал. Может, $Bin оно именно от () не сымпортилось? > >> use FindBin qw( $Bin ); > > https://encrypted.google.com/search?sclient=psy&hl=en&source=hp&q=Use+of+qw%28...%29+as+parentheses+is+deprecated&btnG=Search Вообще, это не единственное возражение против того, что с этой строчкой всё ok. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From STork2000 на yandex.ru Sun Sep 11 06:21:43 2011 From: STork2000 на yandex.ru (=?koi8-r?B?U1RvcmsgTG9naW5vZmYg7snLz8zByiDhzMXL08HOxNLP18ne?=) Date: Sun, 11 Sep 2011 17:21:43 +0400 Subject: [Moscow.pm] =?koi8-r?b?8M/e1Mkgz8bG1M/QOiD6wczJ18vBIMbByszP1yDO?= =?koi8-r?b?wSDVxMHMxc7O2cog08XS18XSLg==?= Message-ID: <167511315747304@web89.yandex.ru> Вложение в формате HTML было извлечено… URL: From postmaster на softsearch.ru Sun Sep 11 11:34:17 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sun, 11 Sep 2011 22:34:17 +0400 Subject: [Moscow.pm] =?koi8-r?b?8M/e1Mkgz8bG1M/QOiD6wczJ18vBIMbByszP1yDO?= =?koi8-r?b?wSDVxMHMxc7O2cog08XS18XSLg==?= In-Reply-To: <167511315747304@web89.yandex.ru> References: <167511315747304@web89.yandex.ru> Message-ID: <83944841.20110911223417@softsearch.ru> Здравствуйте, STork. > Пока в рассылке тишина, напишу глупый вопрос, сильно не пинайте. >   > Задача: > Несколько бекендов отрабатывают запросы от пользователей + > файловый (image) сервер. Пользователи загружают файлы через backend, > файлы должны попасть на файловый сервер. На файловом сервере не > хочется поднимать общие диски с бекендами и прочее. Да и не хотелось > бы бэкенды нагружать загрузкой файлов (хоть и маленьких - > иконки,аватары), они же должны быстро отплевывать данные. В идеале, > бекенд проверил авторизацию и перенаправил юзера на файловый-сервер > (но не понимаю как правильно сделать). Файлы закачивай на бэкенды. Потом вебдавом копируй их на картиночный сервер. А отдавай всегда с картиночного. Если на картиночном файла ещё нет, то делай редирект на бэкенд, если там нет, то на следующий бэкенд. Но браузеры более 10 редиректов не отрабатывают. Так что возможен и второй вариант - на картиночном сервере прописать апстрим со всеми бэкендами и сам nginx будет искать, на каком бэкенде картинка для отдачи юзеру. Там же можно и кэш небольшой сделать с небольшим временем кэширования, чтобы на бэкенд лазить только 1 раз для каждого файла. Из плюсов - никакие глючных решений вроде смонтированных по сети разделов не используется. Из минусов - много программирования. Вопрос кстати для nginx-ru на nginx.org :-) -- С уважением, Михаил mailto:postmaster на softsearch.ru From nordicdyno на yandex.ru Sun Sep 11 23:31:16 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Mon, 12 Sep 2011 10:31:16 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> Message-ID: <76191315809076@web11.yandex.ru> 10.09.2011, 20:44, "Alexandr Gomoliako" : > Я считаю всех здесь частью комьюнити. И имел в виду, что многие > разработчики, которые выкладывают модули на cpan, вообще не учитывают > мнение комьюнити. Вон Марк хороший пример. > С этого места хотелось бы более развернутое мнение услышать, желательно со ссылками на критику Regexp:Common, например. Судя по cpanratings часть коммьюнити модуль все-таки одобряеет ) Или это плохая, не годная его часть? ) From evdokimov.denis на gmail.com Mon Sep 12 05:53:56 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Mon, 12 Sep 2011 16:53:56 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <717631315670338@web140.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> <717631315670338@web140.yandex.ru> Message-ID: > кстати здесь ошибка , правильно > > my @scons = map $_->[1], sort { $a->[0] cmp $b->[0] } @tmp_scons; > > это мне на http://stackoverflow.com/questions/7366402/perl-schwartzian-transform подсказали Если быть точным, то свою ошибку я заметил раньше и танисал P.S. Конечно же my @scons = map $_->[1], sort {$a->[0] cmp $b->[0]} @tmp_scons; А не my @scons = map $_->[1], sort {$a cmp $b} @tmp_scons; From evdokimov.denis на gmail.com Mon Sep 12 06:19:38 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Mon, 12 Sep 2011 17:19:38 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> <717631315670338@web140.yandex.ru> Message-ID: Александр, на все ваши аргументы у меня есть всего несколько вопросов 1. Как часто вы пишете большие и сложные регулярки(Хотя бы от 10 строк)? 2. Как вы такие регулярки тестируете, если они написаны прямо в коде? From zzz на zzz.org.ua Mon Sep 12 07:22:36 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 12 Sep 2011 17:22:36 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> <717631315670338@web140.yandex.ru> Message-ID: On 9/12/11, Denis Evdokimov wrote: > Александр, на все ваши аргументы у меня есть всего несколько вопросов > 1. Как часто вы пишете большие и сложные регулярки(Хотя бы от 10 строк)? Очень редко. В основном m//g и несколько регулярок, чем одна большая. Вы же все равно без m//g особо много не напарсите, только что-то цельное. Да и ошибиться в больших регулярках легче и потом править тяжело. > 2. Как вы такие регулярки тестируете, если они написаны прямо в коде? А как вы тестируете условия, если они написаны прямо в коде? Вы тоже не считаете регулярные выражения частью языка? Очевидно же, есть какая-то функция-парсер (или функция-что-то), ее и тестирую. Это дает и читабельный код и возможность переписать функцию в XS, когда нужна будет производительность. Win-win. From evdokimov.denis на gmail.com Mon Sep 12 07:41:55 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Mon, 12 Sep 2011 18:41:55 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> <717631315670338@web140.yandex.ru> Message-ID: Функция-парсер, которая содержит одну регулярку. Можно, но зачем. Почему не воспринимать регулярку, как функцию? Чем отличается my($aa, $bb, $cc) = $str =~ RegExp_parse_bla_bla_bla; от my($aa, $bb, $cc) = parse_bla_bla_bla($str); С мой мочки зрения - ничем. Только $str =~ RegExp_parse_bla_bla_bla несколько быстрее. From zzz на zzz.org.ua Mon Sep 12 07:59:43 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 12 Sep 2011 17:59:43 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> <717631315670338@web140.yandex.ru> Message-ID: On 9/12/11, Denis Evdokimov wrote: > Функция-парсер, которая содержит одну регулярку. > Можно, но зачем. Почему не воспринимать регулярку, как функцию? > Чем отличается > my($aa, $bb, $cc) = $str =~ RegExp_parse_bla_bla_bla; > от > my($aa, $bb, $cc) = parse_bla_bla_bla($str); Ничем. Оба нечитабельно. Естественно не нужно выносить одну регулярку в фукнцию, но и в константу тоже. Пишите сразу читабельно: my ($aa, $bb, $cc) = $str =~ /(aa)(bb)(cc)/; Выносите в парсер все, что касается парсера. Регулярное выражение не имеет смысла, если оно не в контексте, как и условия. Т.е. вот как-то так: sub foo { ... my ($aa, $bb, $cc) = $str =~ /(aa)(bb)(cc)/; # other parser-related stuff ... return $your_fully_parsed_data_structure; } > С мой мочки зрения - ничем. > Только $str =~ RegExp_parse_bla_bla_bla несколько быстрее. Вот не надо только про быстрее. Высокая производительность либо нужна, либо нет. Если нет, то не надо портить читабельность, если да (когда да), то перепишите в XS. Все та же premature optimization. From evdokimov.denis на gmail.com Mon Sep 12 08:27:13 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Mon, 12 Sep 2011 19:27:13 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> <717631315670338@web140.yandex.ru> Message-ID: > Выносите в парсер все, что касается парсера. > Регулярное выражение не имеет смысла, если оно не в контексте, как и условия. А как быть: если весь парсер можно записать одной регуляркой? если этот парсер должен использоваться в нескольких местах? > , если да (когда да), то перепишите в XS. Насколько я пониаю, мы сейчас говорим про регулярные выражения, а как переписать регулярку на XS? From zzz на zzz.org.ua Mon Sep 12 08:38:40 2011 From: zzz на zzz.org.ua (Alexandr Gomoliako) Date: Mon, 12 Sep 2011 18:38:40 +0300 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> <717631315670338@web140.yandex.ru> Message-ID: On 9/12/11, Denis Evdokimov wrote: > А как быть: > если весь парсер можно записать одной регуляркой? > если этот парсер должен использоваться в нескольких местах? Ну так само напрашивается стать функцией, разве не очевидно? Как бонус получаете возможность менять капчуры местамы, не переписывая ни в одном месте, где она используется (достоинства функционального интерфейса). > Насколько я пониаю, мы сейчас говорим про регулярные выражения, а как > переписать регулярку на XS? Как какой-нибудь автоматный парсер: switch (state) { case ST_START: ... } From evdokimov.denis на gmail.com Mon Sep 12 08:52:27 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Mon, 12 Sep 2011 19:52:27 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <496031315584333@web44.yandex.ru> <471441315591045@web24.yandex.ru> <548551315593693@web158.yandex.ru> <494631315595095@web97.yandex.ru> <717631315670338@web140.yandex.ru> Message-ID: > Ну так само напрашивается стать функцией, разве не очевидно? Так зачем нужна функция-обёртка над одной регуляркой? И чем отличается вызов такой функции от использовании регулярки? From mi на ya.ru Wed Sep 14 04:36:50 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 14 Sep 2011 15:36:50 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <734251315674025@web70.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> Message-ID: <36241316000210@web18.yandex.ru> Вложение в формате HTML было извлечено… URL: From mi на ya.ru Wed Sep 14 09:04:45 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 14 Sep 2011 20:04:45 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <36241316000210@web18.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> Message-ID: <6711316016285@web128.yandex.ru> Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Wed Sep 14 09:06:36 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Wed, 14 Sep 2011 20:06:36 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <36241316000210@web18.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> Message-ID: <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> Интересный вы человек, можно пару вопросов по коду? И главный вопрос - ищем-то первое вхождение или последнее? А то у вас то одно, то другое. ТЗ то так об этом говорит? On Sep 14, 2011, at 3:36 PM, Nikolay Mishin wrote: > В итоге получилось такое решение: > use v5.10; > use Sort::Key qw(rkeysort_inplace); > use Readonly; > #use Smart::Comments; > my %months; > @months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = > ( '00' .. '11' ); - зачем вам тут Readonly? кто где и что может сделать с вашими регулярками? > > # N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > Readonly my $RGX_SHORT_MESS => qr/(\w+)_(\d{2})-(\w{3})-(\d{4})_(\d+)/; > # message.110530033311A4259348AS26.A4259348AS_26_SWOPT_01-Jul-2011.xml > Readonly my $RGX_LONG_MESS => qr/message[.](\w+)[.](\w+)_(\d{2})-(\w{3})-(\d{4})/; - вот смотрите, у вас тут ЕСТЬ ВЫНУЖДЕННЫЙ цикл, зачем вы его "впустую" прогоняете? > my @file_names = ; > ### @file_names:@file_names - а вот тут вы запускаете ненужный цикл, да еще с вызовом функции на каждого члена, выкидывая после этого результат, хотя он вам пригодится позднее > rkeysort_inplace { make_trade_sortest($_) } @file_names; > my %is_avaible; - и еще один > foreach my $file_name (@file_names) { > my ($trade_id); - а вот здесь ваше имя файла "тыкается" в регулярки второй раз с тем же успехом, профит с этого какой? > given ($file_name) { > when ($RGX_SHORT_MESS) { > $trade_id = $1; > } > when ($RGX_LONG_MESS) { > $trade_id = $2; > } > } > if ( !$is_avaible{$trade_id} ) { - вы уверены, что print - это хороший и расширяемый return? намекаю - модуль из этого вырастет ? > print "$file_name"; > } > $is_avaible{$trade_id}++; > } > ### @file_names:@file_names > #function make name good for sort alphabetically - в этой функции имя файла первый раз "тыкается" в регулярки > sub make_trade_sortest { > my ($trade_file_name) = @_; > my ( $trade_id, $date, $month, $year, $row_num ); > given ($trade_file_name) { > when ($RGX_SHORT_MESS) { > ( $trade_id, $date, $month, $year, $row_num ) = > ( $1, $2, $3, $4, $5 ); > } > when ($RGX_LONG_MESS) { > ( $row_num, $trade_id, $date, $month, $year ) = > ( $1, $2, $3, $4, $5 ); > } > } > $month = $months{$month}; > return "$trade_id:$year-$month-$date:$row_num"; > } > __DATA__ > N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > N1089767N_7_SWOPT_25-Jun-2011_72745892.xml > N1089772L_9_SWOPT_03-Jul-2011_78979055.xml > N1089772L_9_SWOPT_20-Jul-2011_69380887.xml > N1089772L_9_SWOPT_29-Jun-2011_74754662.xml > message.110530033311A4259348AS26.A4259348AS_26_SWOPT_01-Jul-2011.xml > message.110530033311A4259348AS26.A4259348AS_26_SWOPT_31-May-2011.xml > A4259348AS_26_SWOPT_29-Jun-2011_74754662.xml Можете просто пояснить мне пометки, я честно сделал "домашнее задание" вместе с вами, так что вроде как не "за так" прошу вас еще чуть-чуть потрудится. <... mass skip ...> > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org PS. Ах, да, модифицированный вариант https://ideone.com/lk59w моего предыдущего решения. Для тех, кто не верит ссылкам - копипаста: #!/usr/bin/env perl use v5.10; use warnings; use utf8; use Smart::Comments; my $RGX_SHORT_MESS = qr/^(\w+)_(\d{2})-(\w{3})-(\d{4})_(\d+)/o; my $RGX_LONG_MESS = qr/^message[.](\w+)[.](\w+)_(\d{2})-(\w{3})-(\d{4})/o; #create month hash my %months; # two symbol for correct literal matching @months{ qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ) } = ( '00' .. '11' ); my ($result, $index); while ( my $str = ){ chomp $str; my $search_str = $str; my $trade_id; if ( $search_str =~ s/$RGX_SHORT_MESS/$4-$months{$3}-$2:$5/ ){ $trade_id = $1; } elsif ( $search_str =~ s/$RGX_LONG_MESS/$5-$months{$4}-$3:$1/ ){ $trade_id = $2; } else { next } # so, from now we are search BIGGEST value & ignore less next if ( exists $index->{$trade_id} && ( $index->{$trade_id} gt $search_str ) ); $index->{$trade_id} = $search_str; $result->{$trade_id} = $str; } # $result say $result->{$_} foreach ( reverse sort keys %$result ); __DATA__ N1089767N_7_SWOPT_03-Jul-2011_78919186.xml N1089767N_7_SWOPT_25-Jun-2011_72745892.xml N1089772L_9_SWOPT_03-Jul-2011_78979055.xml N1089772L_9_SWOPT_20-Jul-2011_69380887.xml N1089772L_9_SWOPT_29-Jun-2011_74754662.xml message.110530033311A4259348AS26.A4259348AS_26_SWOPT_01-Jul-2011.xml message.110530033311A4259348AS26.A4259348AS_26_SWOPT_31-May-2011.xml A4259348AS_26_SWOPT_29-Jun-2011_74754662.xml ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sharifulin на gmail.com Wed Sep 14 09:10:06 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Wed, 14 Sep 2011 20:10:06 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> Message-ID: А можно код хотя бы через gist выкладывать, читать рассылку невозможно On Wednesday, September 14, 2011, Dmitry Karpich wrote: > Интересный вы человек, можно пару вопросов по коду? И главный вопрос - ищем-то первое вхождение или последнее? > А то у вас то одно, то другое. ТЗ то так об этом говорит? > > On Sep 14, 2011, at 3:36 PM, Nikolay Mishin wrote: > > В итоге получилось такое решение: > use v5.10; > use Sort::Key qw(rkeysort_inplace); > use Readonly; > #use Smart::Comments; > my %months; > @months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = > ( '00' .. '11' ); > > - зачем вам тут Readonly? кто где и что может сделать с вашими регулярками? > > # N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > Readonly my $RGX_SHORT_MESS => qr/(\w+)_(\d{2})-(\w{3})-(\d{4})_(\d+)/; > # message.110530033311A4259348AS26.A4259348AS_26_SWOPT_01-Jul-2011.xml > Readonly my $RGX_LONG_MESS => qr/message[.](\w+)[.](\w+)_(\d{2})-(\w{3})-(\d{4})/; > > - вот смотрите, у вас тут ЕСТЬ ВЫНУЖДЕННЫЙ цикл, зачем вы его "впустую" прогоняете? > > my @file_names = ; > ### @file_names:@file_names > > - а вот тут вы запускаете ненужный цикл, да еще с вызовом функции на каждого члена, выкидывая после этого результат, хотя он вам пригодится позднее > > rkeysort_inplace { make_trade_sortest($_) } @file_names; > my %is_avaible; > > - и еще один > > foreach my $file_name (@file_names) { > my ($trade_id); > > - а вот здесь ваше имя файла "тыкается" в регулярки второй раз с тем же успехом, профит с этого какой? > > given ($file_name) { > when ($RGX_SHORT_MESS) { > $trade_id = $1; > } > when ($RGX_LONG_MESS) { > $trade_id = $2; > } > } > if ( !$is_avaible{$trade_id} ) { > > - вы уверены, что print - это хороший и расширяемый return? намекаю - модуль из этого вырастет ? > > print "$file_name"; > } > $is_avaible{$trade_id}++; > } > ### @file_names:@file_names > #function make name good for sort alphabetically > > - в этой функции имя файла первый раз "тыкается" в регулярки > > sub make_trade_sortest { > my ($trade_file_name) = @_; > my ( $trade_id, $date, $month, $year, $row_num ); > given ($trade_file_name) { > when ($RGX_SHORT_MESS) { > ( $trade_id, $date, $month, $year, $row_num ) = > ( $1, $2, $3, $4, $5 ); > } > when ($RGX_LONG_MESS) { > ( $row_num, $trade_id, $date, $month, $year ) = > ( $1, $2, $3, $4, $5 ); > } > } > $month = $months{$month}; > return "$trade_id:$year-$month-$date:$row_num"; > } > __DATA__ > N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > N1089767N_7_SWOPT_25-Jun-2011_72745892.xml > N1089772L_9_SWOPT_03-Jul-2011_78979055.xml > N1089772L_9_SWOPT_20-Jul-2011_69380887.xml > N1089772L_9_SWOPT_29-Jun-2011_74754662.xml > message.110530033311A4259348AS26.A4259348AS_26_SWOPT_01-Jul-2011.xml > message.110530033311A4259348AS26.A4259348AS_26_SWOPT_31-May-2011.xml > A4259348AS_26_SWOPT_29-Jun-2011_74754662.xml > > Можете просто пояснить мне пометки, я честно сделал "домашнее задание" вместе с вами, так что вроде как не "за так" прошу вас еще чуть-чуть потрудится. > <... mass skip ...> > > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > PS. Ах, да, модифицированный вариант https://ideone.com/lk59w моего предыдущего решения. Для тех, кто не верит ссылкам - копипаста: > #!/usr/bin/env perl > > use v5.10; > use warnings; > use utf8; > > use Smart::Comments; > > my $RGX_SHORT_MESS = qr/^(\w+)_(\d{2})-(\w{3})-(\d{4})_(\d+)/o; > my $RGX_LONG_MESS = qr/^message[.](\w+)[.](\w+)_(\d{2})-(\w{3})-(\d{4})/o; > > #create month hash > my %months; > # two symbol for correct literal matching > @months{ qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ) } = ( '00' .. '11' ); > > my ($result, $index); > > while ( my $str = ){ > > chomp $str; > my $search_str = $str; > my $trade_id; > > if ( $search_str =~ s/$RGX_SHORT_MESS/$4-$months{$3}-$2:$5/ ){ > $trade_id = $1; > } > elsif ( $search_str =~ s/$RGX_LONG_MESS/$5-$months{$4}-$3:$1/ ){ > $trade_id = $2; > } > else { next } > > # so, from now we are search BIGGEST value & ignore less > next if ( exists $index->{$trade_id} && ( $index->{$trade_id} gt $search_str ) ); > > $index->{$trade_id} = $search_str; > $result->{$trade_id} = $str; > > } > # $result > > say $result->{$_} foreach ( reverse sort keys %$result ); > > > __DATA__ > N1089767N_7_SWOPT_03-Jul-2011_78919186.xml > N1089767N_7_SWOPT_25-Jun-2011_72745892.xml > N1089772L_9_SWOPT_03-Jul-2011_78979055.xml > N1089772L_9_SWOPT_20-Jul-2011_69380887.xml > N1089772L_9_SWOPT_29-Jun-2011_74754662.xml > message.110530033311A4259348AS26.A4259348AS_26_SWOPT_01-Jul-2011.xml > message.110530033311A4259348AS26.A4259348AS_26_SWOPT_31-May-2011.xml > A4259348AS_26_SWOPT_29-Jun-2011_74754662.xml > > > > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Wed Sep 14 09:14:21 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Wed, 14 Sep 2011 20:14:21 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> Message-ID: <59081B0C-88CD-4E0D-87B3-41D735072662@gmail.com> On Sep 14, 2011, at 8:10 PM, Анатолий Шарифулин wrote: > А можно код хотя бы через gist выкладывать, читать рассылку невозможно Так ideone.com еще лучше, просто у меня такое впечатление сложилось, что ссылка на вариант была просто проигнорена. А так ага, "под кат"! > <... mass skip ...> > > -- > С уважением, > Анатолий Шарифулин. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From mi на ya.ru Wed Sep 14 09:42:54 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 14 Sep 2011 20:42:54 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> Message-ID: <17671316018574@web23.yandex.ru> Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Wed Sep 14 10:02:35 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Wed, 14 Sep 2011 21:02:35 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <17671316018574@web23.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> Message-ID: On Sep 14, 2011, at 8:42 PM, Nikolay Mishin wrote: > 14.09.2011, 20:06, "Dmitry Karpich" : <.. mass skip ..> Есть несколько идей, над которыми я предлагаю вам подумать, возможно это будет вам интересно: 1) не пытайтесь субоптимизировать программу, скорее всего "бутылочное горлышко" возникнет не здесь. достаточно того, чтобы оно работало корректно ( а вот с корректностью стоит возится столько, сколько получится "выциганить" времени. тесты наше все ) 2) используйте только те фичи, которые вам нужны. если вы можете твердо сформулировать причину использования фичи - отлично. если нет - ну зачем вам эта головная боль? 3) используйте основной поток данных для его обработки. обычно всегда есть какой-нить цикл - так не гоняйте его впустую 4) если вам что-то где-то надо будет искать - имитируйте БД. стройте индекс. индекс - это хорошо, fullscan - плохо. 5) plugable - хорошо и очень OOP. даже plugable ready. Не воспринимайте это как ммм... ну, не важно. Это дружеский совет. > -- > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From mi на ya.ru Wed Sep 14 10:12:41 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 14 Sep 2011 21:12:41 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> Message-ID: <31011316020361@web7.yandex.ru> Спасибо Дмитрий.. почерпнул очень много хороших идей, и рассылка, которая казалось по началу сухой и инертной (раньше) оказалась очень полезной, спасибо ! да - тесты нужны, особенно на баги и индексы - тоже золотая вещь.. особенно среди гигабайт информации 14.09.2011, 21:02, "Dmitry Karpich" : > On Sep 14, 2011, at 8:42 PM, Nikolay Mishin wrote: > >>  14.09.2011, 20:06, "Dmitry Karpich" : > > <.. mass skip ..> > > Есть несколько идей, над которыми я предлагаю вам подумать, возможно это будет вам интересно: > > 1) не пытайтесь субоптимизировать программу, скорее всего "бутылочное горлышко" возникнет не здесь. достаточно того, чтобы оно работало корректно ( а вот с корректностью стоит возится столько, сколько получится "выциганить" времени. тесты наше все ) > > 2) используйте только те фичи, которые вам нужны. если вы можете твердо сформулировать причину использования фичи - отлично. если нет - ну зачем вам эта головная боль? > > 3) используйте основной поток данных для его обработки. обычно всегда есть какой-нить цикл - так не гоняйте его впустую > > 4) если вам что-то где-то надо будет искать - имитируйте БД. стройте индекс. индекс - это хорошо, fullscan - плохо. > > 5) plugable - хорошо и очень OOP. даже plugable ready. > > Не воспринимайте это как ммм... ну, не важно. > Это дружеский совет. > >>  -- >>  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 mi на yandex.ru Sat Sep 10 09:03:08 2011 From: mi на yandex.ru (Nikolay Mishin) Date: Sat, 10 Sep 2011 20:03:08 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: <718361315670588@web140.yandex.ru> Вложение в формате HTML было извлечено… URL: From mi на yandex.ru Sat Sep 10 10:00:25 2011 From: mi на yandex.ru (Nikolay Mishin) Date: Sat, 10 Sep 2011 21:00:25 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> Message-ID: <734251315674025@web70.yandex.ru> Вложение в формате HTML было извлечено… URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: image1 Type: image/gif Size: 450 bytes Desc: отсутствует URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: image2 Type: image/gif Size: 526 bytes Desc: отсутствует URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: image3 Type: image/gif Size: 444 bytes Desc: отсутствует URL: From mi на yandex.ru Wed Sep 14 11:09:32 2011 From: mi на yandex.ru (Nikolay Mishin) Date: Wed, 14 Sep 2011 22:09:32 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform ?? In-Reply-To: <31011316020361@web7.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> Message-ID: <59151316023772@web123.yandex.ru> читал perldoc perlre узнал много нового, это я к параметру 'o' , который применли Дмитрий, а он означает: из perdoc perlop qr/STRING/msixpo This operator quotes (and possibly compiles) its STRING as a regular expression. STRING is interpolated the same way as PATTERN in "m/PATTERN/". If "'" is used as the delimiter, no interpolation is done. Returns a Perl value which may be used instead of the corresponding "/STRING/msixpo" expression. The returned value is a normalized version of the original pattern. It magically differs from a string containing the same characters: "ref(qr/x/)" returns "Regexp", even though dereferencing the result returns undef. и далее Options are: m Treat string as multiple lines. s Treat string as single line. (Make . match a newline) i Do case-insensitive pattern matching. x Use extended regular expressions. p When matching preserve a copy of the matched string so that ${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} will be defined. o Compile pattern only once. компилировать выражение только 1 раз, useful ;) 14.09.2011, 21:12, "Nikolay Mishin" : > Спасибо Дмитрий.. почерпнул очень много хороших идей, и рассылка, которая казалось по началу сухой  и инертной (раньше) > оказалась очень полезной, спасибо ! > да - тесты нужны, особенно на баги > и индексы - тоже золотая вещь.. особенно среди гигабайт информации > > 14.09.2011, 21:02, "Dmitry Karpich" : > >>  On Sep 14, 2011, at 8:42 PM, Nikolay Mishin wrote: >>>   14.09.2011, 20:06, "Dmitry Karpich" : >>  <.. mass skip ..> >> >>  Есть несколько идей, над которыми я предлагаю вам подумать, возможно это будет вам интересно: >> >>  1) не пытайтесь субоптимизировать программу, скорее всего "бутылочное горлышко" возникнет не здесь. достаточно того, чтобы оно работало корректно ( а вот с корректностью стоит возится столько, сколько получится "выциганить" времени. тесты наше все ) >> >>  2) используйте только те фичи, которые вам нужны. если вы можете твердо сформулировать причину использования фичи - отлично. если нет - ну зачем вам эта головная боль? >> >>  3) используйте основной поток данных для его обработки. обычно всегда есть какой-нить цикл - так не гоняйте его впустую >> >>  4) если вам что-то где-то надо будет искать - имитируйте БД. стройте индекс. индекс - это хорошо, fullscan - плохо. >> >>  5) plugable - хорошо и очень OOP. даже plugable ready. >> >>  Не воспринимайте это как ммм... ну, не важно. >>  Это дружеский совет. >>>   -- >>>   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 -- Nikolay Mishin From ruz на bestpractical.com Wed Sep 14 12:46:21 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Wed, 14 Sep 2011 23:46:21 +0400 Subject: [Moscow.pm] perl soap In-Reply-To: <550311308546530@web79.yandex.ru> References: <4DFD06C7.6030507@knutov.com> <4DFD1852.4000806@knutov.com> <711151308546281@web49.yandex.ru> <550311308546530@web79.yandex.ru> Message-ID: Привет, Есть XML::Compile::SOAP. Он поддерживает не все форматы протокола, но если он зароботает для вас, то рекомендую. Если он не заработает за 30минут - 1 час, то лучше и не трогать больше. В свое время рекомендовали выше привиденный модуль и я не стал пробывать SOAP::Lite. 2011/6/20 Николай Мишин : > исправил , чтобы файлы отображались в браузере,а не просили скачиваться > http://mishin.narod.ru/python/jira.py.html > http://mishin.narod.ru/python/sl3.jira.home.py.html > > 20.06.2011, 09:04, "Николай Мишин" : >> Hi Moscow.pm >> >> Кто-нибудь смог подружиться с soap протоколом или с SOAP::Lite >> по моему скромному мнению этот модуль совершенно не дописан, >> например там не хватает функции, возвращающей список методов soap-сервера >> >> Складывается идиотская ситуация, как только мне нужно написать что-нибудь сложнее примера, показанного в модуле - >> ничего не работает и не ясно как заставить это работать, например хочу в из Jira вытащить все заявки с помощью jql: >> >> #!/usr/bin/perl >> use strict; >> use warnings; >> use SOAP::Lite; >> use Data::Dumper; >> >> my $soap = >>   SOAP::Lite->proxy("http://localhost:8080/rpc/soap/jirasoapservice-v2?wsdl"); >> my $auth = $soap->login( "login", "pw" ); >> >> #ключ авторизации кладем в переменную >> my $aur = $auth->result(); >> >> my $jql = 'assignee = mishin'; >> my $issues = $soap->getIssuesFromJqlSearch( $aur, $jql ); >> >> print Dumper($issues); >> >> # my $addComment = $soap->addComment( >> # $aur, "AXIS-1", >> # SOAP::Data->type( >> # 'RemoteComment' => { 'body' => "Comment added via SOAP::Lite" } >> # ) >> # ); >> # >> # if ( defined $addComment->fault() ) { >> # print $addComment->faultstring() . "\n"; >> # print Dumper($addComment); >> # } >> # else { >> # print "Comment added:\n"; >> # print Dumper( $addComment->result() ); >> # } >> $soap->logout( $auth->result() ); >> >> а вот как то же самое легко делается на python >> просто дам ссылку >> http://mishin.narod.ru/python/jira.py >> http://mishin.narod.ru/python/sl3.jira.home.py >> >> мне не удалось к сожалению разместить на https://github.com/mishin/scripts >> ( >> $   git push -u origin master >> The authenticity of host 'github.com (207.97.227.239)' can't be established. >> RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. >> Are you sure you want to continue connecting (yes/no)? yes >> Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts. >> Permission denied (publickey). >> fatal: The remote end hung up unexpectedly >> >> kshunkov на Jet ~/scripts >> $   git push -u origin master >> Permission denied (publickey). >> fatal: The remote end hung up unexpectedly >> >> ) >> >> а так хотелось сделать это на перле >> и еще, кто-нибудь имел опыт использования >>  perthon http://perthon.sourceforge.net/ Дамиана Конвея >> я вот подумал может с помощью это программы перенести код библиотеки suds (которая в свою очередь >> была перенесена из java Axis) в perl6. >> и на java Axis c soap вполне себе  работается (хоть и не так просто). >> >> Спасибо > > -- > Николай Мишин > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ruslan. From peter на vereshagin.org Sat Sep 17 10:50:17 2011 From: peter на vereshagin.org (Peter Vereshagin) Date: Sat, 17 Sep 2011 21:50:17 +0400 Subject: [Moscow.pm] transform sort function to Schwartzian Transform In-Reply-To: Message-ID: <20110917175017.GA93644@external.screwed.box> Hello. 2011/09/12 12:00:24 -0700 moscow-pm-request на pm.org => To moscow-pm на pm.org : > > Ну так само напрашивается стать функцией, разве не очевидно? а разве возможно сделать функцию, чостоящую только из regex, без оператора (s|m|y)? > Так зачем нужна функция-обёртка над одной регуляркой? Не нужно, есть qr// . > И чем отличается вызов такой функции от использовании регулярки? Полагаю, наличием оператора. -- Peter Vereshagin (http://vereshagin.org) pgp: A0E26627 From dasign на gmail.com Sun Sep 18 09:23:53 2011 From: dasign на gmail.com (Dmitriy Amelin) Date: Sun, 18 Sep 2011 20:23:53 +0400 Subject: [Moscow.pm] =?windows-1251?b?8ODh7vLgIOIgzO7x6uLlICwgIPHu4uzl8fLo?= =?windows-1251?b?8uXr/PHy4u4t9+Dx8uj37eD/IOfg7f/y7vHy/A==?= Message-ID: Требуется довольно срочно - основной режим ? удаленная поддержка внутренних сайтов компании ? исправление ошибок, новые сервисы и службы, формирование отчетов, развитие и пр. Проект долгосрочный, не меньше года). Только Москва или область ? нужно время от времени бывать в офисе в Москве, не часто ? 1-2 в месяц. Постоянное присутствие онлайн. Готовность выехать на место в случае проблем. Загрузка примерно 40% времени. Обязательно большой опыт работы на perl. Знание Oracle на уровне использования (без администрирования) будет большим плюсом. Оплата на первый этап сдельная ? по каждому заданию обсуждается время его выполнения и стоимость. В подписи есть координаты, просьба присылать резюме на e-mail. удачи! --- С уважением, Дмитрий Амелин +7 (495) 967 49 08 +7 (916) 122 28 43 office на profsolutions.ru http://www.profsolutions.ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: 60CA2F71-F901-4D90-A0ED-152590764CD1.png Type: image/png Size: 5359 bytes Desc: отсутствует URL: From taras.semenenko на gmail.com Sun Sep 18 13:39:35 2011 From: taras.semenenko на gmail.com (Taras Semenenko) Date: Mon, 19 Sep 2011 00:39:35 +0400 Subject: [Moscow.pm] perl soap Message-ID: Николай, а вы пробовали SOAP::WSDL? При помощи этого модуля у меня получилось взаимодействовать с таким чудо-юдом, как Siebel CRM, хотя конечно пришлось руками править wsdl для того, чтобы wsdl2perl.pl корректно сформировал все интерфейсы. -- Тарас Семененко From mi на ya.ru Sun Sep 18 21:41:20 2011 From: mi на ya.ru (Nikolay Mishin) Date: Mon, 19 Sep 2011 08:41:20 +0400 Subject: [Moscow.pm] perl soap In-Reply-To: References: Message-ID: <558911316407280@web129.yandex.ru> Спасибо, попробую, может реальным примером использования поделитесь? А мне в свое время прикрутить perl к web services CRM Siebel не удалось я тестировал сервисы через XMLSpy 19.09.2011, 00:39, "Taras Semenenko" : > Николай, > > а вы пробовали SOAP::WSDL? > При помощи этого модуля у меня получилось взаимодействовать с таким > чудо-юдом, как Siebel CRM, хотя конечно пришлось руками править wsdl > для того, чтобы wsdl2perl.pl корректно сформировал все интерфейсы. > > -- > Тарас Семененко > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From greyhard на gmail.com Mon Sep 19 06:07:42 2011 From: greyhard на gmail.com (=?koi8-r?B?6czYyc7ZyCDkxc7J0w==?=) Date: Mon, 19 Sep 2011 17:07:42 +0400 Subject: [Moscow.pm] =?koi8-r?b?y8HLINXazsHU2CDT18/AIMPFztU=?= Message-ID: как узнать Отправлено с iPhone From andrei.protasovitski на gmail.com Mon Sep 19 06:14:55 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Mon, 19 Sep 2011 15:14:55 +0200 Subject: [Moscow.pm] =?utf-8?b?0LrQsNC6INGD0LfQvdCw0YLRjCDRgdCy0L7RjiA=?= =?utf-8?b?0YbQtdC90YM=?= In-Reply-To: References: Message-ID: 19 сентября 2011 г. 15:07 пользователь Ильиных Денис написал: > как узнать > > Отправлено с iPhone > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > Просканировать штрих-код. Есть специальное приложение для iPhone. -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From greyhard на gmail.com Mon Sep 19 06:34:45 2011 From: greyhard на gmail.com (=?koi8-r?B?6czYyc7ZyCDkxc7J0w==?=) Date: Mon, 19 Sep 2011 17:34:45 +0400 Subject: [Moscow.pm] =?koi8-r?b?y8HLINXazsHU2CDT18/AIMPFztU=?= In-Reply-To: References: Message-ID: упс )) Отправлено с iPhone 19.09.2011, в 17:14, Andrei написал(а): > 19 сентября 2011 г. 15:07 пользователь Ильиных Денис написал: > как узнать > > Отправлено с iPhone > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > Просканировать штрих-код. Есть специальное приложение для iPhone. > > -- > 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 ali на ali.org.ua Mon Sep 19 07:12:17 2011 From: ali на ali.org.ua (Alistratov Oleg) Date: Mon, 19 Sep 2011 17:12:17 +0300 Subject: [Moscow.pm] =?koi8-r?b?y8HLINXazsHU2CDT18/AIMPFztU=?= In-Reply-To: References: Message-ID: <948741316441537@web77.yandex.ru> Вложение в формате HTML было извлечено… URL: From greyhard на gmail.com Mon Sep 19 07:20:26 2011 From: greyhard на gmail.com (=?koi8-r?B?6czYyc7ZyCDkxc7J0w==?=) Date: Mon, 19 Sep 2011 18:20:26 +0400 Subject: [Moscow.pm] =?koi8-r?b?y8HLINXazsHU2CDT18/AIMPFztU=?= In-Reply-To: <948741316441537@web77.yandex.ru> References: <948741316441537@web77.yandex.ru> Message-ID: <77571D33-D9D9-43FC-8113-1AA01219AC2A@gmail.com> Отправлено с iPhone 19.09.2011, в 18:12, Alistratov Oleg написал(а): > > *WALL > Это лучшее, что я видел в этой рассылке! > 19.09.2011, 16:14, "Andrei" : > как узнать > > Отправлено с iPhone > Просканировать штрих-код. Есть специальное приложение для iPhone. > > -- > Oleg Alistratov > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Mon Sep 19 07:22:02 2011 From: ali на ali.org.ua (Alistratov Oleg) Date: Mon, 19 Sep 2011 17:22:02 +0300 Subject: [Moscow.pm] =?koi8-r?b?y8HLINXazsHU2CDT18/AIMPFztU=?= In-Reply-To: <77571D33-D9D9-43FC-8113-1AA01219AC2A@gmail.com> References: <948741316441537@web77.yandex.ru> <77571D33-D9D9-43FC-8113-1AA01219AC2A@gmail.com> Message-ID: <25101316442122@web66.yandex.ru> Вложение в формате HTML было извлечено… URL: From greyhard на gmail.com Mon Sep 19 07:21:55 2011 From: greyhard на gmail.com (=?koi8-r?B?6czYyc7ZyCDkxc7J0w==?=) Date: Mon, 19 Sep 2011 18:21:55 +0400 Subject: [Moscow.pm] =?koi8-r?b?y8HLINXazsHU2CDT18/AIMPFztU=?= In-Reply-To: <948741316441537@web77.yandex.ru> References: <948741316441537@web77.yandex.ru> Message-ID: <2FAFE30B-22CE-43CA-A9BB-40EDC3896CAE@gmail.com> простите ) я только учусь ) использовать мобильный клиент Отправлено с iPhone 19.09.2011, в 18:12, Alistratov Oleg написал(а): > > *WALL > Это лучшее, что я видел в этой рассылке! > 19.09.2011, 16:14, "Andrei" : > как узнать > > Отправлено с iPhone > Просканировать штрих-код. Есть специальное приложение для iPhone. > > -- > Oleg Alistratov > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From denis.fedoseev на gmail.com Mon Sep 19 07:24:22 2011 From: denis.fedoseev на gmail.com (Denis Fedoseev) Date: Mon, 19 Sep 2011 18:24:22 +0400 Subject: [Moscow.pm] =?utf-8?b?0LrQsNC6INGD0LfQvdCw0YLRjCDRgdCy0L7RjiA=?= =?utf-8?b?0YbQtdC90YM=?= In-Reply-To: <2FAFE30B-22CE-43CA-A9BB-40EDC3896CAE@gmail.com> References: <948741316441537@web77.yandex.ru> <2FAFE30B-22CE-43CA-A9BB-40EDC3896CAE@gmail.com> Message-ID: <756CBC2B-594D-4CA6-AF9C-06F89F90F20A@gmail.com> А говорят на маке все интуитивно и понятно. А тут вон оно как. On Sep 19, 2011, at 6:21 PM, Ильиных Денис wrote: > простите ) я только учусь ) использовать мобильный клиент > > Отправлено с iPhone > > 19.09.2011, в 18:12, Alistratov Oleg написал(а): > >> >> *WALL >> Это лучшее, что я видел в этой рассылке! >> 19.09.2011, 16:14, "Andrei" : >> как узнать >> >> Отправлено с iPhone >> Просканировать штрих-код. Есть специальное приложение для iPhone. >> >> -- >> Oleg Alistratov >> -- >> 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 daniil.starkov на gmail.com Mon Sep 19 08:16:15 2011 From: daniil.starkov на gmail.com (Daniil Starkov) Date: Mon, 19 Sep 2011 19:16:15 +0400 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydEgIvDSz8fSwc3NydPUIHBlcmwiINcg?= =?koi8-r?b?yc7UxdLOxdQtyM/MxMnOxyAo7c/Ty9fBLCAxMDDU0ik=?= Message-ID: *Вакансия: Perl-программист (г.Москва)* Компания: крупный интернет-холдинг в составе которого разрабатываются поисковые, коммуникационные, новостные, видео, фото, музыкальные и многие другие сервисы. Ежемесячная аудитория интернет-проектов объединенной компании превышает 17 млн человек, суммарная ежемесячная аудитория журналов - более 2 млн человек. *Обязанности:* * Оптимизация существующих и разработка новых веб-сервисов. * Посвящать себя с головы до ног виртуозному решению мегасложных задач :-) *Требования:* * Хорошее знание Perl и SQL * Опыт администрирования веб-серверов * Технический английский * Высшее техническое образование * Аналогичный опыт работы от года *Также очень желательны:* * Опыт работы с высоконагруженными проектами * Опыт работы с системами контроля верстки (subversion) * Знание HTML и принципов верстки веб-страниц * Опыт работы с JavaScript и реализации AJAX * Опыт работы с framework Catalyst * Опыт работы с ORM DBIx::Class * Опыт работы с асинхронной моделью AnyEvent * Опыт работы с большими объемами данных * Опыт работы с PostgreSQL, знание plpgsql * Опыт администрирования nginx *Условия:* * Офис рядом со станцией метро <<Автозаводская>> (г.Москва) * Медицинская страховка (ДМС) * Оплата 100тр, оформление согласно ТК РФ * Помощь компании в переезде для кандидатов из регионов *!-ПЕРЕВОЗИМ КАНДИДАТОВ ИЗ РЕГИОНОВ-!* *Процедура собеседования (для регионов):* * Кандидат присылает резюме, его собеседуют 15 минут по телефону. * Затем выполняет дома за установленный срок тестовое задание. * После выполнения HR службы и эксперты собеседуют по скайп около 1 часа. * Личное собеседование в Москве, возмещается стоимость билетов. ---------------------- С уважением, Даниил Старков HR & Recruitment professional http://sdaniil.moikrug.ru/ http://ru.linkedin.com/in/daniilstarkov E-mail: daniil.starkov на gmail.com Skype: daniil.starkov Моб. 8-927-650-70-49 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From proler на gmail.com Mon Sep 19 08:32:20 2011 From: proler на gmail.com (oleg alexeenkov) Date: Mon, 19 Sep 2011 19:32:20 +0400 Subject: [Moscow.pm] =?utf-8?b?0JLQsNC60LDQvdGB0LjRjyAi0J/RgNC+0LPRgNCw?= =?utf-8?b?0LzQvNC40YHRgiBwZXJsIiDQsiDQuNC90YLQtdGA0L3QtdGCLdGF0L7Qu9C0?= =?utf-8?b?0LjQvdCzICjQnNC+0YHQutCy0LAsIDEwMNGC0YAp?= In-Reply-To: References: Message-ID: Daniil Starkov писал(а) в своём письме Mon, 19 Sep 2011 19:16:15 +0400: > *Вакансия: Perl-программист (г.Москва)* > > Компания: крупный интернет-холдинг в составе которого разрабатываются > поисковые, коммуникационные, новостные, видео, фото, музыкальные и многие > другие сервисы. Ежемесячная аудитория интернет-проектов объединенной > компании превышает 17 млн человек, суммарная ежемесячная аудитория > журналов > - более 2 млн человек. А почему сложно написать слово "Рамблер" ? From akzhan.abdulin на gmail.com Mon Sep 19 09:14:24 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Mon, 19 Sep 2011 20:14:24 +0400 Subject: [Moscow.pm] =?utf-8?b?0LrQsNC6INGD0LfQvdCw0YLRjCDRgdCy0L7RjiA=?= =?utf-8?b?0YbQtdC90YM=?= In-Reply-To: <756CBC2B-594D-4CA6-AF9C-06F89F90F20A@gmail.com> References: <948741316441537@web77.yandex.ru> <2FAFE30B-22CE-43CA-A9BB-40EDC3896CAE@gmail.com> <756CBC2B-594D-4CA6-AF9C-06F89F90F20A@gmail.com> Message-ID: Да и тут все всё сразу поняли. Интуитивно :) 19 сентября 2011 г. 18:24 пользователь Denis Fedoseev < denis.fedoseev на gmail.com> написал: > А говорят на маке все интуитивно и понятно. А тут вон оно как. > > On Sep 19, 2011, at 6:21 PM, Ильиных Денис wrote: > > простите ) я только учусь ) использовать мобильный клиент > > Отправлено с iPhone > > 19.09.2011, в 18:12, Alistratov Oleg написал(а): > > > *WALL > Это лучшее, что я видел в этой рассылке! > 19.09.2011, 16:14, "Andrei" : > > как узнать > > Отправлено с iPhone > > Просканировать штрих-код. Есть специальное приложение для iPhone. > > -- > Oleg Alistratov > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- > 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 akovbovich на gmail.com Mon Sep 19 09:57:17 2011 From: akovbovich на gmail.com (=?UTF-8?B?0JDQvdC00YDQtdC5INCfLiDQmtC+0LLQsdC+0LLQuNGH?=) Date: Mon, 19 Sep 2011 20:57:17 +0400 Subject: [Moscow.pm] =?utf-8?b?0JLQsNC60LDQvdGB0LjRjyAi0J/RgNC+0LPRgNCw?= =?utf-8?b?0LzQvNC40YHRgiBwZXJsIiDQsiDQuNC90YLQtdGA0L3QtdGCLdGF0L4=?= =?utf-8?b?0LvQtNC40L3QsyAo0JzQvtGB0LrQstCwLCAxMDDRgtGAKQ==?= In-Reply-To: References: Message-ID: Зачем писать, если и так все знают. 2011/9/19 oleg alexeenkov : > Daniil Starkov писал(а) в своём письме Mon, 19 > Sep 2011 19:16:15 +0400: > >> *Вакансия: Perl-программист (г.Москва)* >> >> Компания: крупный интернет-холдинг в составе которого разрабатываются >> поисковые, коммуникационные, новостные, видео, фото, музыкальные и многие >> другие сервисы. Ежемесячная аудитория интернет-проектов объединенной >> компании превышает 17 млн человек, суммарная ежемесячная аудитория >> журналов >> - более 2 млн человек. > > А почему сложно написать слово "Рамблер" ? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From STork2000 на yandex.ru Mon Sep 19 10:05:03 2011 From: STork2000 на yandex.ru (=?koi8-r?B?U1RvcmsgTG9naW5vZmYg7snLz8zByiDhzMXL08HOxNLP18ne?=) Date: Mon, 19 Sep 2011 21:05:03 +0400 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydEgIvDSz8fSwc3NydPUIHBlcmwiINcg?= =?koi8-r?b?yc7UxdLOxdQtyM/MxMnOxyAo7c/Ty9fBLCAxMDDU0ik=?= In-Reply-To: References: Message-ID: <891381316451903@web97.yandex.ru> Вечер добрый. А может быть и корпорация Guru ( они же Корпорация РБС ( bdbd.ru ) ). Они там же в Омега-Плаза сидят. У Рамблера раньше таких жестких требования не было, да и собеседования были довольно банальны, пришел поговорил, дали задание и т.д. 19.09.2011, 20:57, "Андрей П. Ковбович" : > Зачем писать, если и так все знают. > > 2011/9/19 oleg alexeenkov : > >>  Daniil Starkov писал(а) в своём письме Mon, 19 >>  Sep 2011 19:16:15 +0400: >>>  *Вакансия: Perl-программист (г.Москва)* >>> >>>  Компания: крупный интернет-холдинг в составе которого разрабатываются >>>  поисковые, коммуникационные, новостные, видео, фото, музыкальные и многие >>>  другие сервисы. Ежемесячная аудитория интернет-проектов объединенной >>>  компании превышает 17 млн человек, суммарная ежемесячная аудитория >>>  журналов >>>  - более 2 млн человек. >>  А почему сложно написать слово "Рамблер" ? >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- С Уважением, Login|off Николай Александрович. From andrey на kostenko.name Mon Sep 19 10:15:10 2011 From: andrey на kostenko.name (=?UTF-8?B?0JDQvdC00YDQtdC5INCa0L7RgdGC0LXQvdC60L4=?=) Date: Mon, 19 Sep 2011 21:15:10 +0400 Subject: [Moscow.pm] =?utf-8?b?0JLQsNC60LDQvdGB0LjRjyAi0J/RgNC+0LPRgNCw?= =?utf-8?b?0LzQvNC40YHRgiBwZXJsIiDQsiDQuNC90YLQtdGA0L3QtdGCLdGF0L4=?= =?utf-8?b?0LvQtNC40L3QsyAo0JzQvtGB0LrQstCwLCAxMDDRgtGAKQ==?= In-Reply-To: References: Message-ID: Можно и я потроллю?) ? Опыт работы с системами контроля верстки (subversion) Cистемы контроля верстки? Мне казалось, что система контрола верстки одна - человек, который бьет по рукам тех, кто хреново верстает. PS: К Сергею или к Вове? 2011/9/19 Андрей П. Ковбович > Зачем писать, если и так все знают. > > 2011/9/19 oleg alexeenkov : > > Daniil Starkov писал(а) в своём письме Mon, > 19 > > Sep 2011 19:16:15 +0400: > > > >> *Вакансия: Perl-программист (г.Москва)* > >> > >> Компания: крупный интернет-холдинг в составе которого разрабатываются > >> поисковые, коммуникационные, новостные, видео, фото, музыкальные и > многие > >> другие сервисы. Ежемесячная аудитория интернет-проектов объединенной > >> компании превышает 17 млн человек, суммарная ежемесячная аудитория > >> журналов > >> - более 2 млн человек. > > > > А почему сложно написать слово "Рамблер" ? > > -- > > 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 proler на gmail.com Mon Sep 19 10:19:11 2011 From: proler на gmail.com (oleg alexeenkov) Date: Mon, 19 Sep 2011 21:19:11 +0400 Subject: [Moscow.pm] =?utf-8?b?0JLQsNC60LDQvdGB0LjRjyAi0J/RgNC+0LPRgNCw?= =?utf-8?b?0LzQvNC40YHRgiBwZXJsIiDQsiDQuNC90YLQtdGA0L3QtdGCLdGF0L7Qu9C0?= =?utf-8?b?0LjQvdCzICjQnNC+0YHQutCy0LAsIDEwMNGC0YAp?= In-Reply-To: <891381316451903@web97.yandex.ru> References: <891381316451903@web97.yandex.ru> Message-ID: STork Loginoff Николай Александрович писал(а) в своём письме Mon, 19 Sep 2011 21:05:03 +0400: > Вечер добрый. > > А может быть и корпорация Guru ( они же Корпорация РБС ( bdbd.ru ) ). > Они там же в Омега-Плаза сидят. > У Рамблера раньше таких жестких требования не было, да и собеседования > были довольно банальны, пришел поговорил, дали задание и т.д. Можно поиграть в игру "найди 5 отличий" исходного письма и http://www.rambler.ru/doc/perl.shtml From STork2000 на yandex.ru Mon Sep 19 10:21:24 2011 From: STork2000 на yandex.ru (=?koi8-r?B?U1RvcmsgTG9naW5vZmYg7snLz8zByiDhzMXL08HOxNLP18ne?=) Date: Mon, 19 Sep 2011 21:21:24 +0400 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydEgIvDSz8fSwc3NydPUIHBlcmwiINcg?= =?koi8-r?b?yc7UxdLOxdQtyM/MxMnOxyAo7c/Ty9fBLCAxMDDU0ik=?= In-Reply-To: References: <891381316451903@web97.yandex.ru> Message-ID: <902811316452884@web114.yandex.ru> ну а как же потроллить? 19.09.2011, 21:19, "oleg alexeenkov" : > STork Loginoff Николай Александрович писал(а) в > своём письме Mon, 19 Sep 2011 21:05:03 +0400: > >>  Вечер добрый. >> >>  А может быть и корпорация Guru ( они же Корпорация РБС ( bdbd.ru ) ). >>  Они там же в Омега-Плаза сидят. >>  У Рамблера раньше таких жестких требования не было, да и собеседования >>  были довольно банальны, пришел поговорил, дали задание и т.д. > > Можно поиграть в игру "найди 5 отличий" исходного письма и > http://www.rambler.ru/doc/perl.shtml > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- С Уважением, Login|off Николай Александрович. From aml на rulezz.ru Mon Sep 19 21:52:31 2011 From: aml на rulezz.ru (Alexander Lourier) Date: Tue, 20 Sep 2011 08:52:31 +0400 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydEgIiDw0s/H0sHNzcnT1CBwZXJsIiDX?= =?koi8-r?b?IMnO1MXSzsXULcjPzMTJzscgKCDtz9PL18EgLCAxMDDU0iAp?= In-Reply-To: References: Message-ID: <201109200852.31872.aml@rulezz.ru> В письме Monday 19 September 2011 19:32:20 oleg alexeenkov написал: > > *Вакансия: Perl-программист (г.Москва)* > > > > Компания: крупный интернет-холдинг в составе которого разрабатываются > > поисковые, коммуникационные, новостные, видео, фото, музыкальные и многие > > другие сервисы. Ежемесячная аудитория интернет-проектов объединенной > > компании превышает 17 млн человек, суммарная ежемесячная аудитория > > журналов > > - более 2 млн человек. > > А почему сложно написать слово "Рамблер" ? Всегда думал, что работать в крупной известной компании - это, как минимум, престижно. А сейчас смотрю - такая нелюбовь к рамблерам/яндексам, что даже эйчары стесняются названия писать. -- Alexander Lourier, http://aml.rulezz.ru/ From worldmind на mail.ru Mon Sep 19 22:29:57 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Tue, 20 Sep 2011 09:29:57 +0400 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydEgIvDSz8fSwc3NydPUIHBlcmwiINcg?= =?koi8-r?b?yc7UxdLOxdQtyM/MxMnOxyAo7c/Ty9fBLCAxMDDU0ik=?= In-Reply-To: References: <891381316451903@web97.yandex.ru> Message-ID: <1316496597.1976.0.camel@host> On Пн., 2011-09-19 at 21:19 +0400, oleg alexeenkov wrote: > Можно поиграть в игру "найди 5 отличий" исходного письма и > http://www.rambler.ru/doc/perl.shtml У них на сайте тоже системы контроля _вёрстки_ From chesnokov.ilya на gmail.com Mon Sep 19 23:22:32 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Tue, 20 Sep 2011 10:22:32 +0400 Subject: [Moscow.pm] =?utf-8?b?0JLQsNC60LDQvdGB0LjRjyAi0J/RgNC+0LPRgNCw?= =?utf-8?b?0LzQvNC40YHRgiBwZXJsIiDQsiDQuNC90YLQtdGA0L3QtdGCLdGF0L4=?= =?utf-8?b?0LvQtNC40L3QsyAo0JzQvtGB0LrQstCwLCAxMDDRgtGAKQ==?= In-Reply-To: <1316496597.1976.0.camel@host> References: <891381316451903@web97.yandex.ru> <1316496597.1976.0.camel@host> Message-ID: 2011/9/20 Alexey Shrub : > On Пн., 2011-09-19 at 21:19 +0400, oleg alexeenkov wrote: >> Можно поиграть в игру "найди 5 отличий" исходного письма и >> http://www.rambler.ru/doc/perl.shtml > > У них на сайте тоже системы контроля _вёрстки_ Вот поэтому никого и набрать не могут - т.к. никто с этими системами не знаком %) > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Ilya Chesnokov From dmitry на eremeev.ru Mon Sep 19 23:25:19 2011 From: dmitry на eremeev.ru (Dmitry Eremeev) Date: Tue, 20 Sep 2011 10:25:19 +0400 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydEgIvDSz8fSwc3NydPUIHBlcmwiINcg?= =?koi8-r?b?yc7UxdLOxdQtyM/MxMnOxyAo7c/Ty9fBLCAxMDDU0ik=?= In-Reply-To: References: <891381316451903@web97.yandex.ru> <1316496597.1976.0.camel@host> Message-ID: Это только для крутых чуваков с двумя высшими. 20.09.2011, в 10:22, Ilya Chesnokov написал(а): > 2011/9/20 Alexey Shrub : >> On Пн., 2011-09-19 at 21:19 +0400, oleg alexeenkov wrote: >>> Можно поиграть в игру "найди 5 отличий" исходного письма и >>> http://www.rambler.ru/doc/perl.shtml >> >> У них на сайте тоже системы контроля _вёрстки_ > > Вот поэтому никого и набрать не могут - т.к. никто с этими системами > не знаком %) > >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > -- > Ilya Chesnokov > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From ccnweb на gmail.com Mon Sep 19 23:26:20 2011 From: ccnweb на gmail.com (Alexander Onokhov) Date: Tue, 20 Sep 2011 09:26:20 +0300 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydEgIvDSz8fSwc3NydPUIHBlcmwiINcg?= =?koi8-r?b?yc7UxdLOxdQtyM/MxMnOxyAo7c/Ty9fBLCAxMDDU0ik=?= In-Reply-To: <1316496597.1976.0.camel@host> References: <891381316451903@web97.yandex.ru> <1316496597.1976.0.camel@host> Message-ID: On Tue, Sep 20, 2011 at 8:29 AM, Alexey Shrub wrote: У них на сайте тоже системы контроля _вёрстки_ > > Это у них тест на внимательность такой. А вы его спалили -- Alexander ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From q на cono.org.ua Tue Sep 20 00:47:53 2011 From: q на cono.org.ua (Alex Varyanick) Date: Tue, 20 Sep 2011 10:47:53 +0300 Subject: [Moscow.pm] =?utf-8?b?0JLQsNC60LDQvdGB0LjRjyAi0J/RgNC+0LPRgNCw?= =?utf-8?b?0LzQvNC40YHRgiBwZXJsIiDQsiDQuNC90YLQtdGA0L3QtdGCLdGF0L4=?= =?utf-8?b?0LvQtNC40L3QsyAo0JzQvtGB0LrQstCwLCAxMDDRgtGAKQ==?= In-Reply-To: References: <891381316451903@web97.yandex.ru> <1316496597.1976.0.camel@host> Message-ID: 2011/9/20 Alexander Onokhov : >> У них на сайте тоже системы контроля _вёрстки_ > > Это у них тест на внимательность такой. А вы его спалили Я бы не прошел ;( -- Varyanick I. Alex icq: 102 575 440 skype: cono.. q на cono.org.ua From nordicdyno на yandex.ru Tue Sep 20 01:26:42 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Tue, 20 Sep 2011 12:26:42 +0400 Subject: [Moscow.pm] =?koi8-r?b?y8HLINXazsHU2CDT18/AIMPFztU=?= In-Reply-To: References: Message-ID: <123721316507202@web14.yandex.ru> Вложение в формате HTML было извлечено… URL: From mi на ya.ru Wed Sep 21 02:10:17 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 21 Sep 2011 13:10:17 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RICDXIM/EztUg09TSz97L1Q==?= In-Reply-To: <59151316023772@web123.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> Message-ID: <664771316596217@web118.yandex.ru> Hi Moscow.PM Как можно написать число секунд в 4 часа утра сегодня в одну строчку use Time::Local; my $time = time; my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST ) = gmtime($time); my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST ); my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual print $tom1am; получается так perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' а можно еще короче? Nikolay Mishin From asyakin на post.km.ru Wed Sep 21 02:17:13 2011 From: asyakin на post.km.ru (Andrey Asyakin) Date: Wed, 21 Sep 2011 13:17:13 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RICDXIM/EztUg09TSz97L1Q==?= In-Reply-To: <664771316596217@web118.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> Message-ID: <1316596633.2716.0.camel@asyakin-desktop> print time(); ? В Ср., 21/09/2011 в 13:10 +0400, Nikolay Mishin пишет: > perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, > $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' > > From asyakin на post.km.ru Wed Sep 21 02:26:26 2011 From: asyakin на post.km.ru (Andrey Asyakin) Date: Wed, 21 Sep 2011 13:26:26 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RICDXIM/EztUg09TSz97L1Q==?= In-Reply-To: <664771316596217@web118.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> Message-ID: <1316597186.2716.1.camel@asyakin-desktop> пардон, стормозил)) В Ср., 21/09/2011 в 13:10 +0400, Nikolay Mishin пишет: > Hi Moscow.PM > > Как можно написать число секунд в 4 часа утра сегодня в одну строчку > > use Time::Local; > my $time = time; > my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST > ) = gmtime($time); > my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, > $IsDST ); > my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual > print $tom1am; > > получается так > perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' > > а можно еще короче? > > > Nikolay Mishin From nikzubkov на gmail.com Wed Sep 21 02:35:02 2011 From: nikzubkov на gmail.com (Nikita Zubkov) Date: Wed, 21 Sep 2011 13:35:02 +0400 Subject: [Moscow.pm] =?utf-8?b?0LTQsNGC0LAg0LIg0YHQtdC60L3QtNCw0YUg0LIg?= =?utf-8?b?NCDRh9Cw0YHQsCDRg9GC0YDQsCDRgdC10LPQvtC00L3RjyDQsiDQvtC0?= =?utf-8?b?0L3RgyDRgdGC0YDQvtGH0LrRgw==?= In-Reply-To: <664771316596217@web118.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> Message-ID: perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )' 21 сентября 2011 г. 13:10 пользователь Nikolay Mishin написал: > Hi Moscow.PM > > Как можно написать число секунд в 4 часа утра сегодня  в одну строчку > > use Time::Local; > my $time = time; > my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST > ) = gmtime($time); > my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, > $IsDST ); > my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual > print $tom1am; > > получается так > perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' > > а можно еще короче? > > > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Никита Зубков тел: +7 (915) 082-76-80 From mons на cpan.org Wed Sep 21 02:40:17 2011 From: mons на cpan.org (Mons Anderson) Date: Wed, 21 Sep 2011 13:40:17 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RINcgz8TO1SDT1NLP3svV?= In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <664771316596217@web118.yandex.ru> Message-ID: <201109211340.17555.mons@cpan.org> On Wednesday 21 September 2011 13:35:02 Nikita Zubkov wrote: > perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )' А вас не смущает смешанное использование *local и gm* ? все-таки perl -MTime::Local -e 'print timelocal( 0, 0, 4, (localtime)[3..8] )' если по местному времени или perl -MTime::Local -e 'print timegm( 0, 0, 4, (gmtime)[3..8] )' если по GMT -- Mons Anderson aka Vladimir Perepelitsa / #99779956 / quanth на irc.freenode.net From nikzubkov на gmail.com Wed Sep 21 02:45:11 2011 From: nikzubkov на gmail.com (Nikita Zubkov) Date: Wed, 21 Sep 2011 13:45:11 +0400 Subject: [Moscow.pm] =?utf-8?b?0LTQsNGC0LAg0LIg0YHQtdC60L3QtNCw0YUg0LIg?= =?utf-8?b?NCDRh9Cw0YHQsCDRg9GC0YDQsCDRgdC10LPQvtC00L3RjyDQsiDQvtC0?= =?utf-8?b?0L3RgyDRgdGC0YDQvtGH0LrRgw==?= In-Reply-To: <201109211340.17555.mons@cpan.org> References: <4E5644DC.5040801@ryvasy.net> <664771316596217@web118.yandex.ru> <201109211340.17555.mons@cpan.org> Message-ID: Задача была "как короче", а не "где у меня ошибка". ) 21 сентября 2011 г. 13:40 пользователь Mons Anderson написал: > On Wednesday 21 September 2011 13:35:02 Nikita Zubkov wrote: >> perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )' > > А вас не смущает смешанное использование *local и gm* ? > > все-таки > perl -MTime::Local -e 'print timelocal( 0, 0, 4, (localtime)[3..8] )' > если по местному времени > или > perl -MTime::Local -e 'print timegm( 0, 0, 4, (gmtime)[3..8] )' > если по GMT > > -- > Mons Anderson aka Vladimir Perepelitsa > / #99779956 / quanth на irc.freenode.net > -- С уважением, Никита Зубков тел: +7 (915) 082-76-80 From STork2000 на yandex.ru Wed Sep 21 02:58:23 2011 From: STork2000 на yandex.ru (=?koi8-r?B?U1RvcmsgTG9naW5vZmYg7snLz8zByiDhzMXL08HOxNLP18ne?=) Date: Wed, 21 Sep 2011 13:58:23 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RICDXIM/EztUg09TSz97L1Q==?= In-Reply-To: <664771316596217@web118.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> Message-ID: <737411316599103@web84.yandex.ru> print int(time / 86400)*86400+14400; 21.09.2011, 13:10, "Nikolay Mishin" : > Hi Moscow.PM > > Как можно написать число секунд в 4 часа утра сегодня  в одну строчку > > use Time::Local; > my $time = time; > my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST > ) = gmtime($time); > my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, > $IsDST ); > my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual > print $tom1am; > > получается так > perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' > > а можно еще короче? > > Nikolay Mishin > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- С Уважением, Login|off Николай Александрович. From mi на ya.ru Wed Sep 21 03:35:39 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 21 Sep 2011 14:35:39 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RINcgz8TO1SDT1NLP3svV?= In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> Message-ID: <805531316601339@web4.yandex.ru> Спасибо.. ответы супер повешу их на стену;)) perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )' perl -e "print int(time / 86400)*86400+14400" 21.09.2011, 13:35, "Nikita Zubkov" : > perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )' > > 21 сентября 2011 г. 13:10 пользователь Nikolay Mishin написал: > >>  Hi Moscow.PM >> >>  Как можно написать число секунд в 4 часа утра сегодня  в одну строчку >> >>  use Time::Local; >>  my $time = time; >>  my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST >>  ) = gmtime($time); >>  my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, >>  $IsDST ); >>  my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual >>  print $tom1am; >> >>  получается так >>  perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' >> >>  а можно еще короче? >> >>  Nikolay Mishin >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > С уважением, > Никита Зубков > тел: +7 (915) 082-76-80 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From nikzubkov на gmail.com Wed Sep 21 03:53:24 2011 From: nikzubkov на gmail.com (Nikita Zubkov) Date: Wed, 21 Sep 2011 14:53:24 +0400 Subject: [Moscow.pm] =?utf-8?b?0LTQsNGC0LAg0LIg0YHQtdC60L3QtNCw0YUg0LIg?= =?utf-8?b?NCDRh9Cw0YHQsCDRg9GC0YDQsCDRgdC10LPQvtC00L3RjyDQsiDQvtC0?= =?utf-8?b?0L3RgyDRgdGC0YDQvtGH0LrRgw==?= In-Reply-To: <737411316599103@web84.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> <737411316599103@web84.yandex.ru> Message-ID: Этот код выведет 4 утра по Гринвичу, а не локальному времени. 21 сентября 2011 г. 13:58 пользователь STork Loginoff Николай Александрович написал: > > print int(time / 86400)*86400+14400; > > 21.09.2011, 13:10, "Nikolay Mishin" : >> Hi Moscow.PM >> >> Как можно написать число секунд в 4 часа утра сегодня  в одну строчку >> >> use Time::Local; >> my $time = time; >> my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST >> ) = gmtime($time); >> my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, >> $IsDST ); >> my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual >> print $tom1am; >> >> получается так >> perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' >> >> а можно еще короче? >> >> Nikolay Mishin >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- >  С Уважением, Login|off Николай Александрович. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Никита Зубков тел: +7 (915) 082-76-80 From mi на ya.ru Wed Sep 21 04:08:29 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 21 Sep 2011 15:08:29 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RINcgz8TO1SDT1NLP3svV?= In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> <737411316599103@web84.yandex.ru> Message-ID: <743361316603309@web22.yandex.ru> выполняю на сервере perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )' 1316570400 полученную цифру ввожу http://www.onlineconversion.com/unix_time.htm получаю Wed, 21 Sep 2011 02:00:00 GMT то, что мне нужно 2 часа по Лондону - это 4 по Франкфурту , меня этот результат устраивает я все равно его буду сравнивать с perl -e "print time" 1316603097 echo $((1316603097-1316570400)) 32697 и, если сейчас 13:00 , то echo $((32697/3600)) 9 часов прошло с 4 утра - все верно 21.09.2011, 14:53, "Nikita Zubkov" : > Этот код выведет 4 утра по Гринвичу, а не локальному времени. > > 21 сентября 2011 г. 13:58 пользователь STork Loginoff Николай > Александрович написал: > >>  print int(time / 86400)*86400+14400; >> >>  21.09.2011, 13:10, "Nikolay Mishin" : >>>  Hi Moscow.PM >>> >>>  Как можно написать число секунд в 4 часа утра сегодня  в одну строчку >>> >>>  use Time::Local; >>>  my $time = time; >>>  my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST >>>  ) = gmtime($time); >>>  my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, >>>  $IsDST ); >>>  my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual >>>  print $tom1am; >>> >>>  получается так >>>  perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' >>> >>>  а можно еще короче? >>> >>>  Nikolay Mishin >>> >>>  -- >>>  Moscow.pm mailing list >>>  moscow-pm на pm.org | http://moscow.pm.org >>  -- >>   С Уважением, Login|off Николай Александрович. >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > С уважением, > Никита Зубков > тел: +7 (915) 082-76-80 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From aml на rulezz.ru Wed Sep 21 04:15:13 2011 From: aml на rulezz.ru (Alexander Lourier) Date: Wed, 21 Sep 2011 15:15:13 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RINcgz8TO1SDT1NLP3svV?= In-Reply-To: <743361316603309@web22.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <743361316603309@web22.yandex.ru> Message-ID: <201109211515.13497.aml@rulezz.ru> В письме Wednesday 21 September 2011 15:08:29 Nikolay Mishin написал: > выполняю на сервере > perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )' > 1316570400 > > полученную цифру ввожу http://www.onlineconversion.com/unix_time.htm > получаю > > Wed, 21 Sep 2011 02:00:00 GMT > > то, что мне нужно 2 часа по Лондону - это 4 по Франкфурту , > меня этот результат устраивает Если запустить скрипт в время, когда в одном часовом поясе уже следующий день, а в другом ещё предыдущий, то покажет 4 часа не того дня, который вы можете ожидать. -- Alexander Lourier, http://aml.rulezz.ru/ From mi на ya.ru Wed Sep 21 04:28:02 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 21 Sep 2011 15:28:02 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RINcgz8TO1SDT1NLP3svV?= In-Reply-To: <201109211515.13497.aml@rulezz.ru> References: <4E5644DC.5040801@ryvasy.net> <743361316603309@web22.yandex.ru> <201109211515.13497.aml@rulezz.ru> Message-ID: <1841316604482@web15.yandex.ru> Понял.. То есть в 1 час ночи 22 сентября по франкфурту он вернет 4 часа утра 21 сентября (т.к. в Лондоне будет еще 23.00 21 сентября) а так как мне все же нужное местное время, то perl -MTime::Local -e 'print timelocal( 0, 0, 4, (localtime)[3..8] )' вернее.. да спасибо..а то мог бы быть косяк 21.09.2011, 15:15, "Alexander Lourier" : > В письме Wednesday 21 September 2011 15:08:29 Nikolay Mishin написал: > >>  выполняю на сервере >>  perl -MTime::Local -e 'print timelocal( 0, 0, 4, (gmtime)[3..8] )' >>  1316570400 >> >>  полученную цифру ввожу http://www.onlineconversion.com/unix_time.htm >>  получаю >> >>  Wed, 21 Sep 2011 02:00:00 GMT >> >>  то, что мне нужно 2 часа по Лондону - это 4 по Франкфурту , >>  меня этот результат устраивает > > Если запустить скрипт в время, когда в одном часовом поясе уже следующий день, а в другом ещё предыдущий, то покажет 4 > часа не того дня, который вы можете ожидать. > > -- > Alexander Lourier, http://aml.rulezz.ru/ > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From STork2000 на yandex.ru Wed Sep 21 05:16:39 2011 From: STork2000 на yandex.ru (Loginoff Nick) Date: Wed, 21 Sep 2011 16:16:39 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RINcgz8TO1SDT1NLP3svV?= In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> <737411316599103@web84.yandex.ru> Message-ID: <694261316607399@web110.yandex.ru> Вопрос "Как можно написать число секунд в 4 часа утра сегодня в одну строчку". Учитывая, что на сервере стоит нормальное время, получать будешь именно то, что необходимо. Вопрос стоял "сегодня", а не сегодня во Франкфурте. 21.09.2011, 14:53, "Nikita Zubkov" : > Этот код выведет 4 утра по Гринвичу, а не локальному времени. > > 21 сентября 2011 г. 13:58 пользователь STork Loginoff Николай > Александрович написал: > >>  print int(time / 86400)*86400+14400; >> >>  21.09.2011, 13:10, "Nikolay Mishin" : >>>  Hi Moscow.PM >>> >>>  Как можно написать число секунд в 4 часа утра сегодня  в одну строчку >>> >>>  use Time::Local; >>>  my $time = time; >>>  my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST >>>  ) = gmtime($time); >>>  my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, >>>  $IsDST ); >>>  my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual >>>  print $tom1am; >>> >>>  получается так >>>  perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' >>> >>>  а можно еще короче? >>> >>>  Nikolay Mishin >>> >>>  -- >>>  Moscow.pm mailing list >>>  moscow-pm на pm.org | http://moscow.pm.org >>  -- >>   С Уважением, Login|off Николай Александрович. >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > С уважением, > Никита Зубков > тел: +7 (915) 082-76-80 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- С Уважением, Login|off Nick or STork. From mi на ya.ru Wed Sep 21 06:04:16 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 21 Sep 2011 17:04:16 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RINcgz8TO1SDT1NLP3svV?= In-Reply-To: <694261316607399@web110.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> <737411316599103@web84.yandex.ru> <694261316607399@web110.yandex.ru> Message-ID: <20601316610256@web147.yandex.ru> время нужно смотреть на 1 сервере, его расположение в общем случае не должно влиять на результат а по факту сервер стоит в Франкфурте..если бы он стоял в Лондоне, то результат везде бы был один (как я думаю) , т.к. тогда gmtime=localtime 21.09.2011, 16:16, "Loginoff Nick" : > Вопрос "Как можно написать число секунд в 4 часа утра сегодня  в одну строчку". > Учитывая, что на сервере стоит нормальное время, получать будешь именно то, что необходимо. Вопрос стоял "сегодня", а не сегодня во Франкфурте. > > 21.09.2011, 14:53, "Nikita Zubkov" : > >>  Этот код выведет 4 утра по Гринвичу, а не локальному времени. >> >>  21 сентября 2011 г. 13:58 пользователь STork Loginoff Николай >>  Александрович написал: >>>   print int(time / 86400)*86400+14400; >>> >>>   21.09.2011, 13:10, "Nikolay Mishin" : >>>>   Hi Moscow.PM >>>> >>>>   Как можно написать число секунд в 4 часа утра сегодня  в одну строчку >>>> >>>>   use Time::Local; >>>>   my $time = time; >>>>   my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST >>>>   ) = gmtime($time); >>>>   my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, >>>>   $IsDST ); >>>>   my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual >>>>   print $tom1am; >>>> >>>>   получается так >>>>   perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' >>>> >>>>   а можно еще короче? >>>> >>>>   Nikolay Mishin >>>> >>>>   -- >>>>   Moscow.pm mailing list >>>>   moscow-pm на pm.org | http://moscow.pm.org >>>   -- >>>    С Уважением, Login|off Николай Александрович. >>>   -- >>>   Moscow.pm mailing list >>>   moscow-pm на pm.org | http://moscow.pm.org >>  -- >>  С уважением, >>  Никита Зубков >>  тел: +7 (915) 082-76-80 >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > С Уважением, Login|off Nick or STork. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From nikzubkov на gmail.com Wed Sep 21 06:34:29 2011 From: nikzubkov на gmail.com (Nikita Zubkov) Date: Wed, 21 Sep 2011 17:34:29 +0400 Subject: [Moscow.pm] =?utf-8?b?0LTQsNGC0LAg0LIg0YHQtdC60L3QtNCw0YUg0LIg?= =?utf-8?b?NCDRh9Cw0YHQsCDRg9GC0YDQsCDRgdC10LPQvtC00L3RjyDQsiDQvtC0?= =?utf-8?b?0L3RgyDRgdGC0YDQvtGH0LrRgw==?= In-Reply-To: <694261316607399@web110.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> <737411316599103@web84.yandex.ru> <694261316607399@web110.yandex.ru> Message-ID: Что значит "Учитывая, что на сервере стоит нормальное время"? Например. 4 утра по Гринвичу, это 8 часов по Москве. 4 утра по Москве, это 0 часов по Гринвичу. Код print int(time / 86400)*86400+14400; не учитывает временную зону на сервере и всегда возвращает 4 часа по Гринвичу. И это не то, что делает оригинальный код. 21 сентября 2011 г. 16:16 пользователь Loginoff Nick написал: > Вопрос "Как можно написать число секунд в 4 часа утра сегодня  в одну строчку". > Учитывая, что на сервере стоит нормальное время, получать будешь именно то, что необходимо. Вопрос стоял "сегодня", а не сегодня во Франкфурте. > > 21.09.2011, 14:53, "Nikita Zubkov" : >> Этот код выведет 4 утра по Гринвичу, а не локальному времени. >> >> 21 сентября 2011 г. 13:58 пользователь STork Loginoff Николай >> Александрович написал: >> >>>  print int(time / 86400)*86400+14400; >>> >>>  21.09.2011, 13:10, "Nikolay Mishin" : >>>>  Hi Moscow.PM >>>> >>>>  Как можно написать число секунд в 4 часа утра сегодня  в одну строчку >>>> >>>>  use Time::Local; >>>>  my $time = time; >>>>  my ( $Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST >>>>  ) = gmtime($time); >>>>  my $trunc_time = timelocal( 0, 0, 0, $Day, $Month, $Year, $WeekDay, $DayOfYear, >>>>  $IsDST ); >>>>  my $tom1am = $trunc_time + 4*3600;#select trunc(sysdate)+4 from dual >>>>  print $tom1am; >>>> >>>>  получается так >>>>  perl -MTime::Local -e '@t = gmtime(time);print timelocal( 0, 0, 0, $t[3], $t[4], $t[5], $t[6], $t[7],$t[8] )+4*3600' >>>> >>>>  а можно еще короче? >>>> >>>>  Nikolay Mishin >>>> >>>>  -- >>>>  Moscow.pm mailing list >>>>  moscow-pm на pm.org | http://moscow.pm.org >>>  -- >>>   С Уважением, Login|off Николай Александрович. >>>  -- >>>  Moscow.pm mailing list >>>  moscow-pm на pm.org | http://moscow.pm.org >> -- >> С уважением, >> Никита Зубков >> тел: +7 (915) 082-76-80 >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- >  С Уважением, Login|off Nick or STork. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Никита Зубков тел: +7 (915) 082-76-80 From daniil.starkov на gmail.com Wed Sep 21 07:05:08 2011 From: daniil.starkov на gmail.com (Daniil Starkov) Date: Wed, 21 Sep 2011 18:05:08 +0400 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydEgIvDSz8fSwc3NydPUIHBlcmwiINcg?= =?koi8-r?b?yc7UxdLOxdQtyM/MxMnOxyAo7c/Ty9fBLCAxMDDU0ik=?= In-Reply-To: References: Message-ID: Добрый день, Всем спасибо за комментарии. В описании требований действительно были неточности. Ниже корректная и актуальная информация, поэтому предлагаю закрыть обсуждение этой темы. ----------------------- Обязательные требования: - Знание Apache и mod_perl. - Опыт разработки на OO-Perl ( процедурно) - Знание memcached - Знание шаблонизаторов (TT, HTML::CTPP2, HTML::Template::Pro) - Умение самостоятельно написать SQL запросы для MySQL/PostgreSQL Желательные требования: - Опыт разработки на PerlXS, С, C++. - Знание FreeBSD. С уважением, Даниил Старков --------------------------------- 2011/9/19 Daniil Starkov > *Вакансия: Perl-программист (г.Москва)* > > Компания: крупный интернет-холдинг в составе которого разрабатываются > поисковые, коммуникационные, новостные, видео, фото, музыкальные и многие > другие сервисы. Ежемесячная аудитория интернет-проектов объединенной > компании превышает 17 млн человек, суммарная ежемесячная аудитория журналов > - более 2 млн человек. > > *Обязанности:* > * Оптимизация существующих и разработка новых веб-сервисов. > * Посвящать себя с головы до ног виртуозному решению мегасложных задач :-) > > *Требования:* > * Хорошее знание Perl и SQL > * Опыт администрирования веб-серверов > * Технический английский > * Высшее техническое образование > * Аналогичный опыт работы от года > > *Также очень желательны:* > * Опыт работы с высоконагруженными проектами > * Опыт работы с системами контроля верстки (subversion) > * Знание HTML и принципов верстки веб-страниц > * Опыт работы с JavaScript и реализации AJAX > * Опыт работы с framework Catalyst > * Опыт работы с ORM DBIx::Class > * Опыт работы с асинхронной моделью AnyEvent > * Опыт работы с большими объемами данных > * Опыт работы с PostgreSQL, знание plpgsql > * Опыт администрирования nginx > > *Условия:* > * Офис рядом со станцией метро <<Автозаводская>> (г.Москва) > * Медицинская страховка (ДМС) > * Оплата 100тр, оформление согласно ТК РФ > * Помощь компании в переезде для кандидатов из регионов > > *!-ПЕРЕВОЗИМ КАНДИДАТОВ ИЗ РЕГИОНОВ-!* > > *Процедура собеседования (для регионов):* > * Кандидат присылает резюме, его собеседуют 15 минут по телефону. > * Затем выполняет дома за установленный срок тестовое задание. > * После выполнения HR службы и эксперты собеседуют по скайп около 1 часа. > * Личное собеседование в Москве, возмещается стоимость билетов. > > ---------------------- > С уважением, > Даниил Старков > > HR & Recruitment professional > http://sdaniil.moikrug.ru/ > http://ru.linkedin.com/in/daniilstarkov > > E-mail: daniil.starkov на gmail.com > Skype: daniil.starkov > Моб. 8-927-650-70-49 > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Wed Sep 21 09:48:42 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Wed, 21 Sep 2011 20:48:42 +0400 Subject: [Moscow.pm] =?utf-8?b?0LTQsNGC0LAg0LIg0YHQtdC60L3QtNCw0YUg0LIg?= =?utf-8?b?NCDRh9Cw0YHQsCDRg9GC0YDQsCDRgdC10LPQvtC00L3RjyAg0LIg0L7QtNC9?= =?utf-8?b?0YMg0YHRgtGA0L7Rh9C60YM=?= In-Reply-To: <664771316596217@web118.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> Message-ID: On Sep 21, 2011, at 1:10 PM, Nikolay Mishin wrote: > Hi Moscow.PM > > Как можно написать число секунд в 4 часа утра сегодня в одну строчку > <... skip ...> > > а можно еще короче? > date -j -v0S -v0M -v4H "+%s" :) Даже Perl не нужен, только *nix Митяй. > > Nikolay Mishin > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From mi на ya.ru Wed Sep 21 10:14:04 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 21 Sep 2011 21:14:04 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RICDXIM/EztUg09TSz97L1Q==?= In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> Message-ID: <123931316625244@web130.yandex.ru> это под Убунтой?, что-то на Solaris 5.10 это не работае, хотя и прикольно 21.09.2011, 20:48, "Dmitry Karpich" : > On Sep 21, 2011, at 1:10 PM, Nikolay Mishin wrote: > >>  Hi Moscow.PM >> >>  Как можно написать число секунд в 4 часа утра сегодня  в одну строчку > > <... skip ...> > >>  а можно еще короче? > > date -j -v0S -v0M -v4H "+%s" > :) > > Даже Perl не нужен, только *nix > > Митяй. > >>  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 meettya на gmail.com Wed Sep 21 11:01:12 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Wed, 21 Sep 2011 22:01:12 +0400 Subject: [Moscow.pm] =?utf-8?b?0LTQsNGC0LAg0LIg0YHQtdC60L3QtNCw0YUg0LIg?= =?utf-8?b?NCDRh9Cw0YHQsCDRg9GC0YDQsCDRgdC10LPQvtC00L3RjyAg0LIg0L7QtNC9?= =?utf-8?b?0YMg0YHRgtGA0L7Rh9C60YM=?= In-Reply-To: <123931316625244@web130.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> <123931316625244@web130.yandex.ru> Message-ID: Это под MacOSX, в Ubuntu 11.4 это будет так- date +%s -d "04:00:00" А в Solaris похоже вообще не получится. Вот тебе и стандарты, мда... On Sep 21, 2011, at 9:14 PM, Nikolay Mishin wrote: > это под Убунтой?, что-то на Solaris 5.10 это не работае, хотя и прикольно > > 21.09.2011, 20:48, "Dmitry Karpich" : >> On Sep 21, 2011, at 1:10 PM, Nikolay Mishin wrote: >> >>> Hi Moscow.PM >>> >>> Как можно написать число секунд в 4 часа утра сегодня в одну строчку >> >> <... skip ...> >> >>> а можно еще короче? >> >> date -j -v0S -v0M -v4H "+%s" >> :) >> >> Даже Perl не нужен, только *nix >> >> Митяй. >> >>> 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 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From onokonem на gmail.com Wed Sep 21 14:14:32 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Thu, 22 Sep 2011 01:14:32 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RINcgz8TO1SDT1NLP3svV?= In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> <123931316625244@web130.yandex.ru> Message-ID: > Вот тебе и стандарты, мда... bsd и gnu тулзы отличаются, это известный факт. я в свое время на солярис всегда ставил gnu тулзы, чтобы еще и третий синтаксис не изучать... From mi на ya.ru Thu Sep 22 01:12:52 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 22 Sep 2011 12:12:52 +0400 Subject: [Moscow.pm] =?koi8-r?b?xMHUwSDXINPFy87Ewcgg1yA0IN7B08Eg1dTSwSDT?= =?koi8-r?b?xcfPxM7RICDXIM/EztUg09TSz97L1Q==?= In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <734251315674025@web70.yandex.ru> <36241316000210@web18.yandex.ru> <15FCED8D-9BE2-4CDB-AF8E-B778D4DC07E3@gmail.com> <17671316018574@web23.yandex.ru> <31011316020361@web7.yandex.ru> <59151316023772@web123.yandex.ru> <664771316596217@web118.yandex.ru> <123931316625244@web130.yandex.ru> Message-ID: <313231316679172@web116.yandex.ru> Да, кстати date +%s -d "04:00:00" в cygwin работает кстати в Windows PowerShell используется твигил $ для переменной, прям как в перле (точнее взято из unix shell) и там будет такое решение: аналогом PS U:\> perl -E "say time" 1316678577 будет (http://stackoverflow.com/questions/4192971/powershell-methods) $unixEpochStart = new-object DateTime 1970,1,1,0,0,0,([DateTimeKind]::Utc) [int]([DateTime]::UtcNow - $unixEpochStart).TotalSeconds 1316678578 как найти 4 утра текущего дня - думаю уже вопрос не этой рассылки 21.09.2011, 22:01, "Dmitry Karpich" : > Это под MacOSX, в Ubuntu 11.4 это будет так- > > date +%s -d "04:00:00" > > А в Solaris похоже вообще не получится. > > Вот тебе и стандарты, мда... > > On Sep 21, 2011, at 9:14 PM, Nikolay Mishin wrote: > >>  это под Убунтой?, что-то на Solaris 5.10 это не работае, хотя и прикольно >> >>  21.09.2011, 20:48, "Dmitry Karpich" : >>>  On Sep 21, 2011, at 1:10 PM, Nikolay Mishin wrote: >>>>   Hi Moscow.PM >>>> >>>>   Как можно написать число секунд в 4 часа утра сегодня  в одну строчку >>>  <... skip ...> >>>>   а можно еще короче? >>>  date -j -v0S -v0M -v4H "+%s" >>>  :) >>> >>>  Даже Perl не нужен, только *nix >>> >>>  Митяй. >>>>   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 >>  -- >>  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 chesnokov.ilya на gmail.com Mon Sep 26 02:14:55 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Mon, 26 Sep 2011 13:14:55 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/QtdGA0LXQstC+0LQg0YHQv9C10YbQuNGE0Lg=?= =?utf-8?b?0LrQsNGG0LjQuCBQU0dJ?= Message-ID: Всем привет. В выходные вместе с Вячеславом Тихановским (aka vti) решили перевести спецификацию PSGI на русский язык, для чего создали репо на гитхабе: https://github.com/vti/psgi-specs-ru. Если вы ещё далеки от этой технологии, а от прочтения спецификации вас удерживало отсутствие русской документации, то это неплохая возможность прокачать свои знания. К сожалению, FAQ переведён ещё не до конца - думаю, сегодня или завтра мы с этим справимся. Если хотите поучаствовать в этом действе, то присылайте pull request-ы. Также приветствуется исправление неточностей в переводе, орфографии, пунктуации и пр. Кстати, Вячеслав прочитает доклад, посвящённый PSGI/Plack, на воркшопе Black Perl 1-го октября в Крыму: http://black-perl.org/bp2011/ -- Ilya Chesnokov From mi на ya.ru Mon Sep 26 02:28:35 2011 From: mi на ya.ru (Nikolay Mishin) Date: Mon, 26 Sep 2011 13:28:35 +0400 Subject: [Moscow.pm] =?koi8-r?b?8MXSxdfPxCDT0MXDycbJy8HDyckgUFNHSQ==?= In-Reply-To: References: Message-ID: <283191317029315@web149.yandex.ru> Илья, молодцы, отличная работа 26.09.2011, 13:14, "Ilya Chesnokov" : > Всем привет. > > В выходные вместе с Вячеславом Тихановским (aka vti) решили перевести > спецификацию PSGI на русский язык, для чего создали репо на гитхабе: > https://github.com/vti/psgi-specs-ru. > > Если вы ещё далеки от этой технологии, а от прочтения спецификации вас > удерживало отсутствие русской документации, то это неплохая > возможность прокачать свои знания. > > К сожалению, FAQ переведён ещё не до конца - думаю, сегодня или завтра > мы с этим справимся. Если хотите поучаствовать в этом действе, то > присылайте pull request-ы. Также приветствуется исправление > неточностей в переводе, орфографии, пунктуации и пр. > > Кстати, Вячеслав прочитает доклад, посвящённый PSGI/Plack, на воркшопе > Black Perl 1-го октября в Крыму: http://black-perl.org/bp2011/ > > -- > Ilya Chesnokov > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From yury.zavarin на gmail.com Mon Sep 26 02:56:00 2011 From: yury.zavarin на gmail.com (Yury Zavarin) Date: Mon, 26 Sep 2011 13:56:00 +0400 Subject: [Moscow.pm] =?utf-8?b?0J/QtdGA0LXQstC+0LQg0YHQv9C10YbQuNGE0Lg=?= =?utf-8?b?0LrQsNGG0LjQuCBQU0dJ?= In-Reply-To: References: Message-ID: Здорово, молодцы. Немного оффтопик. А как вы будете синхронизировать переводы, когда что-то будет меняться в оригинале? Смотреть на diff'ы оригинала и потом искать это и править в переводе наверное не очень удобно. 2011/9/26 Ilya Chesnokov : > Всем привет. > > В выходные вместе с Вячеславом Тихановским (aka vti) решили перевести > спецификацию PSGI на русский язык, для чего создали репо на гитхабе: > https://github.com/vti/psgi-specs-ru. > > Если вы ещё далеки от этой технологии, а от прочтения спецификации вас > удерживало отсутствие русской документации, то это неплохая > возможность прокачать свои знания. > > К сожалению, FAQ переведён ещё не до конца - думаю, сегодня или завтра > мы с этим справимся. Если хотите поучаствовать в этом действе, то > присылайте pull request-ы. Также приветствуется исправление > неточностей в переводе, орфографии, пунктуации и пр. > > Кстати, Вячеслав прочитает доклад, посвящённый PSGI/Plack, на воркшопе > Black Perl 1-го октября в Крыму: http://black-perl.org/bp2011/ > > -- > Ilya Chesnokov > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From sharifulin на gmail.com Mon Sep 26 03:03:11 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Mon, 26 Sep 2011 14:03:11 +0400 Subject: [Moscow.pm] =?koi8-r?b?8MXSxdfPxCDT0MXDycbJy8HDyckgUFNHSQ==?= In-Reply-To: References: Message-ID: Нужно в репо хранить оригинал, чтобы именно с ним делать дифф. 2011/9/26 Yury Zavarin > Здорово, молодцы. > > Немного оффтопик. > А как вы будете синхронизировать переводы, когда что-то будет меняться > в оригинале? Смотреть на diff'ы оригинала и потом искать это и править > в переводе наверное не очень удобно. > > 2011/9/26 Ilya Chesnokov : > > Всем привет. > > > > В выходные вместе с Вячеславом Тихановским (aka vti) решили перевести > > спецификацию PSGI на русский язык, для чего создали репо на гитхабе: > > https://github.com/vti/psgi-specs-ru. > > > > Если вы ещё далеки от этой технологии, а от прочтения спецификации вас > > удерживало отсутствие русской документации, то это неплохая > > возможность прокачать свои знания. > > > > К сожалению, FAQ переведён ещё не до конца - думаю, сегодня или завтра > > мы с этим справимся. Если хотите поучаствовать в этом действе, то > > присылайте pull request-ы. Также приветствуется исправление > > неточностей в переводе, орфографии, пунктуации и пр. > > > > Кстати, Вячеслав прочитает доклад, посвящённый PSGI/Plack, на воркшопе > > Black Perl 1-го октября в Крыму: http://black-perl.org/bp2011/ > > > > -- > > 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 > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mi на ya.ru Wed Sep 28 02:12:40 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 13:12:40 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <718361315670588@web140.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> Message-ID: <1065881317201160@web23.yandex.ru> Вложение в формате HTML было извлечено… URL: From nikzubkov на gmail.com Wed Sep 28 02:23:46 2011 From: nikzubkov на gmail.com (Nikita Zubkov) Date: Wed, 28 Sep 2011 13:23:46 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <1065881317201160@web23.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> Message-ID: А может стоит развернутее и с комментариями? Это уже сложно поддерживать. 28 сентября 2011 г. 13:12 пользователь Nikolay Mishin написал: > Добрый день Moscow-pm > > пока получается так > cat du-s > #!/bin/sh > du -h |perl -e '%bo = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print > map { $_->[0] } sort { $bo{$a->[1]} <=> $bo{$b->[1]} || $b->[2] <=> $a->[2] > } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <>' $* > > Вопрос - а можно короче или оптимальнеею > спасибо. > > С Уважением Николай Мишин > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением, Никита Зубков тел: +7 (915) 082-76-80 From onokonem на gmail.com Wed Sep 28 02:32:08 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 28 Sep 2011 13:32:08 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <1065881317201160@web23.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> Message-ID: если это gnu/linux, то du -h|sort -h 2011/9/28 Nikolay Mishin : > Добрый день Moscow-pm > > пока получается так > cat du-s > #!/bin/sh > du -h |perl -e '%bo = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print > map { $_->[0] } sort { $bo{$a->[1]} <=> $bo{$b->[1]} || $b->[2] <=> $a->[2] > } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <>' $* > > Вопрос - а можно короче или оптимальнеею > спасибо. > > С Уважением Николай Мишин > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > From cub.uanic на gmail.com Wed Sep 28 02:32:04 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Wed, 28 Sep 2011 12:32:04 +0300 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> Message-ID: А не проще ли так? du -k | sort -n | tail Вполне себе человеко-читаемый вывод, не замороченно, и сразу видно кто место "схавал". 28 сентября 2011 г. 12:23 пользователь Nikita Zubkov написал: > А может стоит развернутее и с комментариями? Это уже сложно поддерживать. > > 28 сентября 2011 г. 13:12 пользователь Nikolay Mishin написал: >> Добрый день Moscow-pm >> >> пока получается так >> cat du-s >> #!/bin/sh >> du -h |perl -e '%bo = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print >> map { $_->[0] } sort { $bo{$a->[1]} <=> $bo{$b->[1]} || $b->[2] <=> $a->[2] >> } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <>' $* >> >> Вопрос - а можно короче или оптимальнеею >> спасибо. >> >> С Уважением Николай Мишин >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> > > > > -- > С уважением, > Никита Зубков > тел: +7 (915) 082-76-80 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From mi на ya.ru Wed Sep 28 02:59:34 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 13:59:34 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> Message-ID: <940161317203974@web16.yandex.ru> Хорошо, вернем понятливость и #!/bin/sh du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <>' $* представим, как #!/bin/sh du -h |perl -e ' %byte_order = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); #хэш приоритетов , где T(терабайты)>G>M>K print map { $_->[0] } sort { #применяем Schwartzian Transform (http://en.wikipedia.org/wiki/Schwartzian_transform) $byte_order{ $a->[1] } <=> $byte_order{ $b->[1] } #в начале сортируем по рипоритету G>K гигабайт больше килобайта || $b->[2] <=> $a->[2] #потом сортируем по цифровому значению } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <> #функцией map и регулярным выражением #вытаскиеваем значения из строки вида: # 150G ./xml # 100M ./tmp # 10K ./test ' $* #входные параметры скрипта передаем на вход этой конструкции 28.09.2011, 13:23, "Nikita Zubkov" : > А может стоит развернутее и с комментариями? Это уже сложно поддерживать. > > 28 сентября 2011 г. 13:12 пользователь Nikolay Mishin написал: > >>  Добрый день Moscow-pm >> >>  пока получается так >>  cat du-s >>  #!/bin/sh >>  du -h |perl -e '%bo = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print >>  map { $_->[0] } sort { $bo{$a->[1]} <=> $bo{$b->[1]} || $b->[2] <=> $a->[2] >>  } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <>' $* >> >>  Вопрос - а можно короче или оптимальнеею >>  спасибо. >> >>  С Уважением Николай Мишин >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > С уважением, > Никита Зубков > тел: +7 (915) 082-76-80 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From mi на ya.ru Wed Sep 28 03:03:16 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 14:03:16 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> Message-ID: <87181317204199@web33.yandex.ru> к сожалению, у меня $uname -a SunOS my_server_name_01 5.10 Generic_144488-06 sun4u sparc SUNW,SPARC-Enterprise 28.09.2011, 13:32, "Daniel Podolsky" : > если это gnu/linux, то > du -h|sort -h > > 2011/9/28 Nikolay Mishin : > >>  Добрый день Moscow-pm >> >>  пока получается так >>  cat du-s >>  #!/bin/sh >>  du -h |perl -e '%bo = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print >>  map { $_->[0] } sort { $bo{$a->[1]} <=> $bo{$b->[1]} || $b->[2] <=> $a->[2] >>  } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <>' $* >> >>  Вопрос - а можно короче или оптимальнеею >>  спасибо. >> >>  С Уважением Николай Мишин >>  -- >>  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 maxim.vuets на gmail.com Wed Sep 28 03:10:11 2011 From: maxim.vuets на gmail.com (Maxim Vuets) Date: Wed, 28 Sep 2011 13:10:11 +0300 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <1065881317201160@web23.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> Message-ID: 2011/9/28 Nikolay Mishin : > Вопрос - а можно короче или оптимальнеею Встречный: почему такая страсть к обфускации? -- Максим Вуец From mi на ya.ru Wed Sep 28 03:14:36 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 14:14:36 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> Message-ID: <194431317204876@web40.yandex.ru> 116042964 /di1sdf 119943961 /di2dg 126165710 /di5dfg 126568969 /di5sdfgh 148419088 /di5sdghd 148419796 /di5sdfgh 157771392 /di5sdfsfdh 164217228 /di5sdfh 946858524 /di5sdfg 1250260722 /di5asdg не так уж и читабельно 28.09.2011, 13:32, "Oleg Kostyuk" : > А не проще ли так? > > du -k | sort -n | tail > > Вполне себе человеко-читаемый вывод, не замороченно, и сразу видно кто > место "схавал". > > 28 сентября 2011 г. 12:23 пользователь Nikita Zubkov > написал: > >>  А может стоит развернутее и с комментариями? Это уже сложно поддерживать. >> >>  28 сентября 2011 г. 13:12 пользователь Nikolay Mishin написал: >>>  Добрый день Moscow-pm >>> >>>  пока получается так >>>  cat du-s >>>  #!/bin/sh >>>  du -h |perl -e '%bo = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print >>>  map { $_->[0] } sort { $bo{$a->[1]} <=> $bo{$b->[1]} || $b->[2] <=> $a->[2] >>>  } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <>' $* >>> >>>  Вопрос - а можно короче или оптимальнеею >>>  спасибо. >>> >>>  С Уважением Николай Мишин >>>  -- >>>  Moscow.pm mailing list >>>  moscow-pm на pm.org | http://moscow.pm.org >>  -- >>  С уважением, >>  Никита Зубков >>  тел: +7 (915) 082-76-80 >>  -- >>  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 -- Nikolay Mishin From mi на ya.ru Wed Sep 28 03:18:22 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 14:18:22 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> Message-ID: <722711317205102@web44.yandex.ru> это не совсем обсфукация, мне , вообще говоря, нравяться красивые программы проходящие perlcritic c brutal, но иногда хочется сдалать код короче, например, для того, чтобы вставить его впоследствии как alias в ./bashrc , хотя в данном конкретном случае может быть эта "оптимизация" и действительно не нужна, и еще, я верю, что эту конструкцию можно написать короче 28.09.2011, 14:10, "Maxim Vuets" : > 2011/9/28 Nikolay Mishin : > >>  Вопрос - а можно короче или оптимальнеею > > Встречный: почему такая страсть к обфускации? > > -- > Максим Вуец > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From evdokimov.denis на gmail.com Wed Sep 28 06:41:46 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 28 Sep 2011 17:41:46 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <722711317205102@web44.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> Message-ID: Николай, у вас небольшая неточность вот в этом месте map { [ $_, /([TMGKk])/, /(\d+)/ ] } стоит использовать map { [ $_, /([TMGKk])/, /(\d+(:?\.\d+)?)/ ] } du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, /(\d+)/ ] } <>' | head | awk '{print $1}' 48G 22G 21G 12G 11G 9.7G 8.1G 8.1G 8.6G 8.4G du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, /(\d+(:?\.\d+)?)/ ] } <>' | head | awk '{print $1}' 48G 22G 21G 12G 11G 9.7G 8.6G 8.4G 8.1G 8.1G P.S. Есть ещё несколько мыслей, напишу их позже, сейчас много работы. From mi на ya.ru Wed Sep 28 06:55:26 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 17:55:26 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> Message-ID: <146271317218126@web109.yandex.ru> нереально, спасибо, да, хорошее исправление, а то после запятой не сортировал, точнее брал для сортировки только целую часть 28.09.2011, 17:41, "Denis Evdokimov" : > Николай, у вас небольшая неточность вот в этом месте > map { [ $_, /([TMGKk])/, /(\d+)/ ] } > стоит использовать > map { [ $_, /([TMGKk])/, /(\d+(:?\.\d+)?)/ ] } > > du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k > => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> > $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, > /(\d+)/ ] } <>' | head | awk '{print $1}' > 48G > 22G > 21G > 12G > 11G > 9.7G > 8.1G > 8.1G > 8.6G > 8.4G > > du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k > => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> > $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, > /(\d+(:?\.\d+)?)/ ] } <>' | head | awk '{print $1}' > 48G > 22G > 21G > 12G > 11G > 9.7G > 8.6G > 8.4G > 8.1G > 8.1G > P.S. Есть ещё несколько мыслей, напишу их позже, сейчас много работы. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From mi на ya.ru Wed Sep 28 06:59:31 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 17:59:31 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <146271317218126@web109.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> Message-ID: <204291317218371@web97.yandex.ru> есть еще вывод первых 10 больших файлов find . -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb %s\n", size,$2);}' | head вот бы теперь сделать так, чтобы выводились и файлы и каталоги и они были отсортированы по размеру правда знака директории тоже бы не помешал (ну это доп задача..так сказать) 28.09.2011, 17:55, "Nikolay Mishin" : > нереально, спасибо, да, хорошее исправление, а то после запятой не сортировал, точнее брал для сортировки только целую часть > > 28.09.2011, 17:41, "Denis Evdokimov" : > >>  Николай, у вас небольшая неточность вот в этом месте >>  map { [ $_, /([TMGKk])/, /(\d+)/ ] } >>  стоит использовать >>  map { [ $_, /([TMGKk])/, /(\d+(:?\.\d+)?)/ ] } >> >>  du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k >>  => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> >>  $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, >>  /(\d+)/ ] } <>' | head | awk '{print $1}' >>  48G >>  22G >>  21G >>  12G >>  11G >>  9.7G >>  8.1G >>  8.1G >>  8.6G >>  8.4G >> >>  du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k >>  => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> >>  $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, >>  /(\d+(:?\.\d+)?)/ ] } <>' | head | awk '{print $1}' >>  48G >>  22G >>  21G >>  12G >>  11G >>  9.7G >>  8.6G >>  8.4G >>  8.1G >>  8.1G >>  P.S. Есть ещё несколько мыслей, напишу их позже, сейчас много работы. >> >>  -- >>  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 -- Nikolay Mishin From mi на ya.ru Wed Sep 28 07:01:36 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 18:01:36 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <204291317218371@web97.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> Message-ID: <205141317218496@web97.yandex.ru> для файлов, правда есть такой хак (Perl hack: To display large files :http://www.cyberciti.biz/faq/find-large-files-linux/) du -k | sort -n | perl -ne 'if ( /^(\d+)\s+(.*$)/){$l=log($1+.1);$m=int($l/log(1024)); printf ("%6.1f\t%s\t%25s %s\n",($1/(2**(10*$m))),(("K","M","G","T","P")[$m]),"*"x (1.5*$l),$2);}' 28.09.2011, 17:59, "Nikolay Mishin" : > есть еще вывод первых 10 больших файлов >  find . -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb %s\n", size,$2);}' | head > вот бы теперь сделать так, чтобы выводились и файлы и каталоги и они были отсортированы по размеру > правда знака директории тоже бы не помешал (ну это доп задача..так сказать) > > 28.09.2011, 17:55, "Nikolay Mishin" : > >>  нереально, спасибо, да, хорошее исправление, а то после запятой не сортировал, точнее брал для сортировки только целую часть >> >>  28.09.2011, 17:41, "Denis Evdokimov" : >>>   Николай, у вас небольшая неточность вот в этом месте >>>   map { [ $_, /([TMGKk])/, /(\d+)/ ] } >>>   стоит использовать >>>   map { [ $_, /([TMGKk])/, /(\d+(:?\.\d+)?)/ ] } >>> >>>   du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k >>>   => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> >>>   $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, >>>   /(\d+)/ ] } <>' | head | awk '{print $1}' >>>   48G >>>   22G >>>   21G >>>   12G >>>   11G >>>   9.7G >>>   8.1G >>>   8.1G >>>   8.6G >>>   8.4G >>> >>>   du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k >>>   => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> >>>   $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, >>>   /(\d+(:?\.\d+)?)/ ] } <>' | head | awk '{print $1}' >>>   48G >>>   22G >>>   21G >>>   12G >>>   11G >>>   9.7G >>>   8.6G >>>   8.4G >>>   8.1G >>>   8.1G >>>   P.S. Есть ещё несколько мыслей, напишу их позже, сейчас много работы. >>> >>>   -- >>>   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 > > -- > Nikolay Mishin > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From mi на ya.ru Wed Sep 28 07:03:13 2011 From: mi на ya.ru (Nikolay Mishin) Date: Wed, 28 Sep 2011 18:03:13 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <205141317218496@web97.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> Message-ID: <205821317218593@web97.yandex.ru> в понятном виде так perl -ne ' if (/^(\d+)\s+(.*$)/) { $l = log( $1 + .1 ); $m = int( $l / log(1024) ); printf( "%6.1f\t%s\t%25s %s\n", ( $1 / ( 2**( 10 * $m ) ) ), ( ( "K", "M", "G", "T", "P" )[$m] ), "*" x ( 1.5 * $l ), $2 ); } ' 28.09.2011, 18:01, "Nikolay Mishin" : > для файлов, правда есть такой хак (Perl hack: To display large files :http://www.cyberciti.biz/faq/find-large-files-linux/) > >  du -k | sort -n | perl -ne 'if ( /^(\d+)\s+(.*$)/){$l=log($1+.1);$m=int($l/log(1024)); printf  ("%6.1f\t%s\t%25s  %s\n",($1/(2**(10*$m))),(("K","M","G","T","P")[$m]),"*"x (1.5*$l),$2);}' > > 28.09.2011, 17:59, "Nikolay Mishin" : > >>  есть еще вывод первых 10 больших файлов >>   find . -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb %s\n", size,$2);}' | head >>  вот бы теперь сделать так, чтобы выводились и файлы и каталоги и они были отсортированы по размеру >>  правда знака директории тоже бы не помешал (ну это доп задача..так сказать) >> >>  28.09.2011, 17:55, "Nikolay Mishin" : >>>   нереально, спасибо, да, хорошее исправление, а то после запятой не сортировал, точнее брал для сортировки только целую часть >>> >>>   28.09.2011, 17:41, "Denis Evdokimov" : >>>>    Николай, у вас небольшая неточность вот в этом месте >>>>    map { [ $_, /([TMGKk])/, /(\d+)/ ] } >>>>    стоит использовать >>>>    map { [ $_, /([TMGKk])/, /(\d+(:?\.\d+)?)/ ] } >>>> >>>>    du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k >>>>    => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> >>>>    $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, >>>>    /(\d+)/ ] } <>' | head | awk '{print $1}' >>>>    48G >>>>    22G >>>>    21G >>>>    12G >>>>    11G >>>>    9.7G >>>>    8.1G >>>>    8.1G >>>>    8.6G >>>>    8.4G >>>> >>>>    du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k >>>>    => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=> >>>>    $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/, >>>>    /(\d+(:?\.\d+)?)/ ] } <>' | head | awk '{print $1}' >>>>    48G >>>>    22G >>>>    21G >>>>    12G >>>>    11G >>>>    9.7G >>>>    8.6G >>>>    8.4G >>>>    8.1G >>>>    8.1G >>>>    P.S. Есть ещё несколько мыслей, напишу их позже, сейчас много работы. >>>> >>>>    -- >>>>    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 >>  -- >>  Nikolay Mishin >> >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > > -- > Nikolay Mishin -- Nikolay Mishin From zhdinar на gmail.com Wed Sep 28 14:46:40 2011 From: zhdinar на gmail.com (=?KOI8-R?B?5MnOwdIg9sHNwczJxdc=?=) Date: Thu, 29 Sep 2011 01:46:40 +0400 Subject: [Moscow.pm] =?koi8-r?b?8MXSxdfPxCDT0MXDycbJy8HDyckgUFNHSQ==?= In-Reply-To: References: Message-ID: Ребята, спасибо за качественный перевод спецификации PSGI, аккуратно оформленный в формате POD. Результат разместил на сайте http://perl5doc.ru/cpan/PSGI. 26 сентября 2011 г. 13:14 пользователь Ilya Chesnokov < chesnokov.ilya на gmail.com> написал: > Всем привет. > > В выходные вместе с Вячеславом Тихановским (aka vti) решили перевести > спецификацию PSGI на русский язык, для чего создали репо на гитхабе: > https://github.com/vti/psgi-specs-ru. > > Если вы ещё далеки от этой технологии, а от прочтения спецификации вас > удерживало отсутствие русской документации, то это неплохая > возможность прокачать свои знания. > > К сожалению, FAQ переведён ещё не до конца - думаю, сегодня или завтра > мы с этим справимся. Если хотите поучаствовать в этом действе, то > присылайте pull request-ы. Также приветствуется исправление > неточностей в переводе, орфографии, пунктуации и пр. > > Кстати, Вячеслав прочитает доклад, посвящённый PSGI/Plack, на воркшопе > Black Perl 1-го октября в Крыму: http://black-perl.org/bp2011/ > > -- > Ilya Chesnokov > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Wed Sep 28 15:31:05 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Thu, 29 Sep 2011 02:31:05 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <205821317218593@web97.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> Message-ID: Как и обещал, альтернативный вариант my $c = 1; my %hum_comp = map {$_, $c*=1024} qw(K M G T P); $hum_comp{''} = 1; print map $_->[1], sort{$b->[0] <=> $a->[0]} map {/^(\d+(?>\.\d+)?)(\w?)/; [$1*$hum_comp{$2}, $_]} <> и чуть более сжатый du -h | perl -e'%hc=map{$_,$a=$a?$a*1024:1}qw(K M G T);print map $_->[1],sort{$b->[0]<=>$a->[0]}map{/^(\d+(?>\.\d+)?)(\w?)/;[$1*$hc{$2},$_]}<>' ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Wed Sep 28 15:38:34 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Thu, 29 Sep 2011 02:38:34 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> Message-ID: Как же меня пугает количество топиков про обфуркацию в конфе Perl... Нет ничего плохого в том, чтобы писать всем понятный код. 29 сентября 2011 г. 2:31 пользователь Denis Evdokimov < evdokimov.denis на gmail.com> написал: > Как и обещал, альтернативный вариант > > my $c = 1; > my %hum_comp = map {$_, $c*=1024} qw(K M G T P); > $hum_comp{''} = 1; > print map $_->[1], sort{$b->[0] <=> $a->[0]} map {/^(\d+(?>\.\d+)?)(\w?)/; > [$1*$hum_comp{$2}, $_]} <> > > и чуть более сжатый > du -h | perl -e'%hc=map{$_,$a=$a?$a*1024:1}qw(K M G T);print map > $_->[1],sort{$b->[0]<=>$a->[0]}map{/^(\d+(?>\.\d+)?)(\w?)/;[$1*$hc{$2},$_]}<>' > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Wed Sep 28 15:50:54 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Thu, 29 Sep 2011 02:50:54 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> Message-ID: > Нет ничего плохого в том, чтобы писать всем понятный код. Только за > Как же меня пугает количество топиков про обфуркацию в конфе Perl... однострочники != обфуркация ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Wed Sep 28 16:31:25 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Thu, 29 Sep 2011 03:31:25 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> Message-ID: Вот любители лишних телодвижений :) #!/bin/sh du -h | perl -e ' print map { $_->[0] } sort { $b->[3] <=> $a->[3] || $b->[1] <=> $a->[1] } map { [ $_, /([\d.]+)(\w)/, $2 =~ tr/kKMGT/00123/r ] } <> ' $* как-то так, хотя общественность негодуе, эти однострочники write-only Митяй. On Sep 29, 2011, at 2:31 AM, Denis Evdokimov wrote: > Как и обещал, альтернативный вариант > > my $c = 1; > my %hum_comp = map {$_, $c*=1024} qw(K M G T P); > $hum_comp{''} = 1; > print map $_->[1], sort{$b->[0] <=> $a->[0]} map {/^(\d+(?>\.\d+)?)(\w?)/; [$1*$hum_comp{$2}, $_]} <> > > и чуть более сжатый > du -h | perl -e'%hc=map{$_,$a=$a?$a*1024:1}qw(K M G T);print map $_->[1],sort{$b->[0]<=>$a->[0]}map{/^(\d+(?>\.\d+)?)(\w?)/;[$1*$hc{$2},$_]}<>' > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From meettya на gmail.com Wed Sep 28 16:47:34 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Thu, 29 Sep 2011 03:47:34 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <205821317218593@web97.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> Message-ID: <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> Если perl ниже 5.14.0 и не понимает /r #!/bin/sh du -h | perl -e ' print map { $_->[0] } sort { $b->[2] <=> $a->[2] || $b->[1] <=> $a->[1] } map { $_->[2] =~ tr/kKMGT/00123/, $_ } map { [ $_, /([\d.]+)(\w)/ ] } <> ' $* From tarkhil на over.ru Wed Sep 28 22:44:57 2011 From: tarkhil на over.ru (Alex Povolotsky) Date: Thu, 29 Sep 2011 09:44:57 +0400 Subject: [Moscow.pm] =?koi8-r?b?98XS08nPzsnSz9fBzs7ZxSDTyMXN2SDXIERCSXg6?= =?koi8-r?b?OkNsYXNzIC0gy9TPLc7JwtXE2CDExczBzD8=?= Message-ID: <4E8405D9.6030200@over.ru> Добрый день, не поможет ли кто внятным рассказом, как делать версионированные схемы в DBIx::Class? Для апгрейда нужен файл апгрейда, который (вроде бы) можно сгенерировать автоматически - но нигде не сказано, как. Alex From qalex на ashmanov.com Wed Sep 28 23:50:18 2011 From: qalex на ashmanov.com (Alexander Q) Date: Thu, 29 Sep 2011 10:50:18 +0400 Subject: [Moscow.pm] =?koi8-r?b?98XS08nPzsnSz9fBzs7ZxSDTyMXN2SDXIERCSXg6?= =?koi8-r?b?OkNsYXNzIC0gy9TPLc7JwtXE2CDExczBzD8=?= In-Reply-To: <4E8405D9.6030200@over.ru> References: <4E8405D9.6030200@over.ru> Message-ID: <4E84152A.50409@ashmanov.com> http://search.cpan.org/~abraxxa/DBIx-Class-0.08195/lib/DBIx/Class/Schema/Versioned.pm#GETTING_STARTED Я списал свои скрипты генерирования апгрейда и собственно апгрейда практически дословно отсюда. $schema->create_ddl_dir содержит всю магию. On 29.09.2011 09:44, Alex Povolotsky wrote: > Добрый день, > > не поможет ли кто внятным рассказом, как делать версионированные схемы в > DBIx::Class? Для апгрейда нужен файл апгрейда, который (вроде бы) можно > сгенерировать автоматически - но нигде не сказано, как. > > Alex -- Alexander Q mailto:qalex на ashmanov.com From mi на ya.ru Thu Sep 29 00:11:05 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 29 Sep 2011 11:11:05 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> Message-ID: <104441317280265@web44.yandex.ru> клевая замена для kKMGT ,правда, если ассоциировать с 00123, то, если будет файл - 0 размера, то он не попадет в итоговый список, поэтому пошла заморочка с отрицательными весами (http://ubuntuforums.org/showpost.php?p=9410815&postcount=9) например: ls -lAtrh total 0 -rw-rw---- 1 rwaprd01 rwa 0 Sep 29 08:59 test а результат скрипта: du-s2 1K . правда я только сейчас понял, что на du -h нулевые файлы вообще не показываются, только нулевые каталоги так что этот вариант подходит 29.09.2011, 03:31, "Dmitry Karpich" : > Вот любители лишних телодвижений :) > > #!/bin/sh > du -h | > perl -e ' >         print map { $_->[0] } >                 sort { $b->[3] <=> $a->[3] || $b->[1] <=> $a->[1] } >                 map { [ $_, /([\d.]+)(\w)/, $2 =~ tr/kKMGT/00123/r ] } <> > ' $* > > как-то так, хотя общественность негодуе, эти однострочники write-only > > Митяй. > > On Sep 29, 2011, at 2:31 AM, Denis Evdokimov wrote: > >>  Как и обещал, альтернативный вариант >> >>  my $c = 1; >>  my %hum_comp = map {$_, $c*=1024} qw(K M G T P); >>  $hum_comp{''} = 1; >>  print map $_->[1], sort{$b->[0] <=> $a->[0]} map {/^(\d+(?>\.\d+)?)(\w?)/; [$1*$hum_comp{$2}, $_]} <> >> >>  и чуть более сжатый >>  du -h | perl -e'%hc=map{$_,$a=$a?$a*1024:1}qw(K M G T);print map $_->[1],sort{$b->[0]<=>$a->[0]}map{/^(\d+(?>\.\d+)?)(\w?)/;[$1*$hc{$2},$_]}<>' >>  -- >>  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 mi на ya.ru Thu Sep 29 00:19:42 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 29 Sep 2011 11:19:42 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> Message-ID: <967281317280782@web69.yandex.ru> Вложение в формате HTML было извлечено… URL: From mi на ya.ru Thu Sep 29 00:37:37 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 29 Sep 2011 11:37:37 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> Message-ID: <829261317281857@web11.yandex.ru> Dmitry Karpich++ В общем Дмитрий, думаю, этот вариант наикратчайший, даже лучше, чем инициализация хэша рангов use Smart::Comments; my %rang; @rang{qw( P T G M K)} = ( 0 .. 5 ); ### %rang и регулярное выражение ([\d.]+) эквивалентно (\d+(?>\.\d+)?) клево и он короче du -h | perl -e 'print map{$_->[0]}sort{$b->[2]<=>$a->[2]||$b->[1]<=>$a->[1]}map{$_->[2]=~ tr/kKMGT/00123/,$_}map{[$_,/([\d.]+)(\w)/]}<>' du -h | perl -e'%hc=map{$_,$a=$a?$a*1024:1}qw(K M G T);print map $_->[1],sort{$b->[0]<=>$a->[0]}map{/^(\d+(?>\.\d+)?)(\w?)/;[$1*$hc{$2},$_]}<>' на 6 байт варианта, предложенного Denis Evdokimov, хотя у него тоже хороший вариант а главное решение Karpich размером 137 байт влезло в твиттер (max 139) !! 29.09.2011, 03:48, "Dmitry Karpich" : > Если perl ниже 5.14.0 и не понимает /r > > #!/bin/sh > du -h | > perl -e ' >         print >                 map { $_->[0] } >                 sort { $b->[2] <=> $a->[2] || $b->[1] <=> $a->[1] } >                 map { $_->[2]  =~ tr/kKMGT/00123/, $_ } >                 map { [ $_, /([\d.]+)(\w)/ ] } >                         <> > ' $* > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Nikolay Mishin From cub.uanic на gmail.com Thu Sep 29 02:30:56 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Thu, 29 Sep 2011 12:30:56 +0300 Subject: [Moscow.pm] =?utf-8?b?0JLQtdGA0YHQuNC+0L3QuNGA0L7QstCw0L3QvdGL?= =?utf-8?b?0LUg0YHRhdC10LzRiyDQsiBEQkl4OjpDbGFzcyAtINC60YLQvi3QvdC4?= =?utf-8?b?0LHRg9C00Ywg0LTQtdC70LDQuz8=?= In-Reply-To: <4E84152A.50409@ashmanov.com> References: <4E8405D9.6030200@over.ru> <4E84152A.50409@ashmanov.com> Message-ID: У разработчиков DBIx::Class::Schema::Versioned есть мнение, что этот модуль - вчерашний день. О чём, кстати, почти прямо сказано непосредственно перед #GETTING_STARTED. На мой взгляд, основной недостаток DBIx::Class::Schema::Versioned - необходимость описания обновления "с любой версии на любую", что требует n! (факториал от n) файлов с обновлением. Конечно, на практике до n! не доходит, но.... На практике это говорит о том, что при изменении перловой части схемы вы должны обеспечить наличие файлов для апгрейда со всех версих, присутствующих на продакшене, до текущей. Если не совсем понятно, то вот конкретный пример. Допустим, у вас на продакшене и в девелопинге схема версии 10. Вы сделали изменения, версия теперь 11, сделали файл апгрейда 10->11, закоммитили. Всё вроде хорошо. Но перед деплоем на продакшен вдруг обнаружилась ошибка. Ну, с кем не бывает. Получается что версию 11 на продакшен выкатывать нельзя. Не проблема - ошибку исправили, версию подняли, готовы закоммитить. Но теперь вам надо предоставить два файла обновлений: 10->12 и 11->12. Потому как у вас есть дев-среда, с версией 11, и продакшен, пока ещё с версией 10. При попытке сделать апгрейд на продакшене всё обломится, если не будет файла 10->12, так как DBIx::Class::Schema::Versioned не умеет использовать файлы промежуточных апгрейдов. Конечно, этого можно избежать, и обойтись одним обновлением - путём отката своей базы до предыдущей версии и внесения исправлений в изменение 10->11. Но это если у вас есть full-dump от версии 10. И даже если есть - это гемморой. Проще всё-таки сделать новый апдейт, который исправит ошибку и продакшен пропустит одну (или несколько) версий. А если у вас есть development, production и ещё и semi-production, на котором заказчик тестит вашу работу в "максимально приближённой среде" - то количество одновременно используемых версий растёт, а вместе с ним - и кол-во файлов апгрейда. Берите DBIx::Class::DeploymentHandler. Документация у него, правда, слегда замороченная, но в DBIx::Class::DeploymentHandler::Manual::Intro есть даже готовый install-скрипт. Его будет необходимо немного расширить для выполнения трёх основных операций: 1) проинсталлить служебные данные в существующую базу, 2) после изменения перл-файлов схемы сгенерить обновления в sql/ и 3) при наличии старой версии в базе и файлов новой версии в sql обновить базу. Уверен, что внимательное чтение мануала снимет все вопросы, если же нет - обращайтесь. 29 сентября 2011 г. 9:50 пользователь Alexander Q написал: > http://search.cpan.org/~abraxxa/DBIx-Class-0.08195/lib/DBIx/Class/Schema/Versioned.pm#GETTING_STARTED > > Я списал свои скрипты генерирования апгрейда и собственно апгрейда > практически дословно отсюда. $schema->create_ddl_dir содержит всю магию. > > On 29.09.2011 09:44, Alex Povolotsky wrote: >> Добрый день, >> >> не поможет ли кто внятным рассказом, как делать версионированные схемы в >> DBIx::Class? Для апгрейда нужен файл апгрейда, который (вроде бы) можно >> сгенерировать автоматически - но нигде не сказано, как. >> >> Alex > > -- > Alexander Q                       mailto:qalex на ashmanov.com > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From evdokimov.denis на gmail.com Thu Sep 29 07:48:57 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Thu, 29 Sep 2011 18:48:57 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <829261317281857@web11.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> <829261317281857@web11.yandex.ru> Message-ID: Отличная разминка для мозга )))) Дмитрий, отличный вариант. Он натолкнул меня на ещё более короткий du -h | perl -e'print map{$_->[1]}sort{$b->[0]<=>$a->[0]}map{($c,$d)=/([\d.]+)(\w)/;$d=~tr/kKMGT/00123/;[$c*1024**$d,$_]}<>' ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Thu Sep 29 08:56:46 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Thu, 29 Sep 2011 19:56:46 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> <829261317281857@web11.yandex.ru> Message-ID: <3CFE8C4B-17B9-4C14-AB7E-5BE4D5F54F4D@gmail.com> Ага, это как жвачка. Можно еще > [$c*1024**$d,$_] на [ $d+$c/1024, $_ ] поменять, правда я не знаю, что дороже обойдется - умножение + степень или деление + сложение. Ну а на самом деле баловство все это, /usr/local/sbin вполне переживет скрипт любого размера, даже с копией полного текста двух лицензий сразу :) Да и поддерживать прощее. On Sep 29, 2011, at 6:48 PM, Denis Evdokimov wrote: > Отличная разминка для мозга )))) > Дмитрий, отличный вариант. > Он натолкнул меня на ещё более короткий > du -h | perl -e'print map{$_->[1]}sort{$b->[0]<=>$a->[0]}map{($c,$d)=/([\d.]+)(\w)/;$d=~tr/kKMGT/00123/;[$c*1024**$d,$_]}<>' > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From mi на ya.ru Thu Sep 29 09:13:09 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 29 Sep 2011 20:13:09 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> <829261317281857@web11.yandex.ru> Message-ID: <154961317312789@web149.yandex.ru> Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Thu Sep 29 09:56:35 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Thu, 29 Sep 2011 20:56:35 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <3CFE8C4B-17B9-4C14-AB7E-5BE4D5F54F4D@gmail.com> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> <829261317281857@web11.yandex.ru> <3CFE8C4B-17B9-4C14-AB7E-5BE4D5F54F4D@gmail.com> Message-ID: > Ну а на самом деле баловство все это, /usr/local/sbin вполне переживет > скрипт любого размера, даже с копией полного текста двух лицензий сразу :) > Да и поддерживать прощее. > > Именно так. Правда мне хватает обычных du -sh * du -sh * | head -20 du -sh * | grep "[0-9]G" | sort -rn ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mi на ya.ru Thu Sep 29 10:08:59 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 29 Sep 2011 21:08:59 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <3CFE8C4B-17B9-4C14-AB7E-5BE4D5F54F4D@gmail.com> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> <829261317281857@web11.yandex.ru> <3CFE8C4B-17B9-4C14-AB7E-5BE4D5F54F4D@gmail.com> Message-ID: <156171317316140@web46.yandex.ru> Ага, понятно этим  [ $d+$c/1024, $_ ] убрали лишний параметр сортировки и для 20 К будет [0 + 20/1024] или [20*1024**0] 20 умножить на 1024 в степени 0 для 20G [2 + 20/1024] -- по скорости они похожи, мне кажется [20*1024**2] 20 умножить на 1024 в степени 2 29.09.2011, 19:56, "Dmitry Karpich" : > Ага, это как жвачка. > > Можно еще > >>  [$c*1024**$d,$_] > > на >  [ $d+$c/1024, $_ ] > поменять, правда я не знаю, что дороже обойдется - умножение + степень или деление + сложение. > > Ну а на самом деле баловство все это, /usr/local/sbin вполне переживет скрипт любого размера, даже с копией полного текста двух лицензий сразу :) Да и поддерживать прощее. > > On Sep 29, 2011, at 6:48 PM, Denis Evdokimov wrote: > >>  Отличная разминка для мозга )))) >>  Дмитрий, отличный вариант. >>  Он натолкнул меня на ещё более короткий >>  du -h | perl -e'print map{$_->[1]}sort{$b->[0]<=>$a->[0]}map{($c,$d)=/([\d.]+)(\w)/;$d=~tr/kKMGT/00123/;[$c*1024**$d,$_]}<>' >>  -- >>  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 mi на ya.ru Thu Sep 29 10:09:59 2011 From: mi на ya.ru (Nikolay Mishin) Date: Thu, 29 Sep 2011 21:09:59 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> <829261317281857@web11.yandex.ru> <3CFE8C4B-17B9-4C14-AB7E-5BE4D5F54F4D@gmail.com> Message-ID: <156511317316199@web46.yandex.ru> Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Thu Sep 29 13:25:24 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Fri, 30 Sep 2011 00:25:24 +0400 Subject: [Moscow.pm] Get human-readable output from du, sorted by size: In-Reply-To: <156511317316199@web46.yandex.ru> References: <4E5644DC.5040801@ryvasy.net> <484111315581689@web57.yandex.ru> <718361315670588@web140.yandex.ru> <1065881317201160@web23.yandex.ru> <722711317205102@web44.yandex.ru> <146271317218126@web109.yandex.ru> <204291317218371@web97.yandex.ru> <205141317218496@web97.yandex.ru> <205821317218593@web97.yandex.ru> <5106ACA4-D100-4784-AB5B-4D5E6E51AE26@gmail.com> <829261317281857@web11.yandex.ru> <3CFE8C4B-17B9-4C14-AB7E-5BE4D5F54F4D@gmail.com> <156511317316199@web46.yandex.ru> Message-ID: > > кстати, если брать файлы, то регулярка с малыми размерами (<1Кб) не > работает > ($c,$d)=/([\d.]+)(\w?)/; ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vaneska.ru на gmail.com Fri Sep 30 00:21:42 2011 From: vaneska.ru на gmail.com (=?KOI8-R?B?6dfBziDzz8vPzM/X?=) Date: Fri, 30 Sep 2011 11:21:42 +0400 Subject: [Moscow.pm] nginx + Catalyst + PSGI Message-ID: Добрый день! Схема такая frontend - nginx backend - plackup -s Starman app.psgi --port 3000 Решить проблему с X-Real-IP удалость очень просто с помощью Plack::Middleware::ReverseProxy Но есть другая проблема. Т.к. передается http запрос на backend, $c->request->base выдает схему http и некоторые модули типа Catalyst::Controller::FormBuilder в form action="" кладут http url. Временно решил это так: builder { enable_if { $_[0]->{REMOTE_ADDR} eq '127.0.0.1' } "Plack::Middleware::ReverseProxy"; enable sub { my $app = shift; sub { my $env = shift; $env->{'psgi.url_scheme'} = 'https' if $env->{HTTP_X_IS_SECURE} || $env->{HTTPS}; $app->($env); } }; $app; }; Может есть какое-то более правильное решение? -- С уважением, Иван From isage на aumi.ru Fri Sep 30 00:34:06 2011 From: isage на aumi.ru (iSage) Date: Fri, 30 Sep 2011 10:34:06 +0300 Subject: [Moscow.pm] nginx + Catalyst + PSGI In-Reply-To: References: Message-ID: <3e1ee9fabc61a2e377f65f4d8022f3a2@aumi.ru> Иногда очень полезно заглядывать в исходники того, что вы используете. Plack::Middleware::ReverseProxy: $env->{HTTPS} = $env->{'HTTP_X_FORWARDED_HTTPS'} if $env->{'HTTP_X_FORWARDED_HTTPS'}; $env->{HTTPS} = 'ON' if $env->{'HTTP_X_FORWARDED_PROTO'} && $env->{'HTTP_X_FORWARDED_PROTO'} eq 'https'; # Pound $env->{'psgi.url_scheme'} = 'https' if $env->{HTTPS} && uc $env->{HTTPS} eq 'ON'; my $default_port = $env->{'psgi.url_scheme'} eq 'https' ? 443 : 80; On Fri, 30 Sep 2011 11:21:42 +0400, Иван Соколов wrote: > Добрый день! > > Схема такая > frontend - nginx > backend - plackup -s Starman app.psgi --port 3000 > > Решить проблему с X-Real-IP удалость очень просто с помощью > Plack::Middleware::ReverseProxy > Но есть другая проблема. > Т.к. передается http запрос на backend, $c->request->base выдает схему http > и некоторые модули типа Catalyst::Controller::FormBuilder в form > action="" кладут http url. > Временно решил это так: > builder { > enable_if { $_[0]->{REMOTE_ADDR} eq '127.0.0.1' } > "Plack::Middleware::ReverseProxy"; > enable sub { > my $app = shift; > sub { > my $env = shift; > $env->{'psgi.url_scheme'} = 'https' if > $env->{HTTP_X_IS_SECURE} || $env->{HTTPS}; > $app->($env); > } > }; > $app; > }; > > Может есть какое-то более правильное решение? > > -- > С уважением, > Иван From vaneska.ru на gmail.com Fri Sep 30 01:22:34 2011 From: vaneska.ru на gmail.com (=?KOI8-R?B?6dfBziDzz8vPzM/X?=) Date: Fri, 30 Sep 2011 12:22:34 +0400 Subject: [Moscow.pm] nginx + Catalyst + PSGI In-Reply-To: <3e1ee9fabc61a2e377f65f4d8022f3a2@aumi.ru> References: <3e1ee9fabc61a2e377f65f4d8022f3a2@aumi.ru> Message-ID: Очень даже заглядывал, но иногда смотришь в книгу, а видишь фигу )) В конфиге nginx было proxy_set_header X-Forwarded-Https 1; 30 сентября 2011 г. 11:34 пользователь iSage написал: > Иногда очень полезно заглядывать в исходники того, что вы используете. > Plack::Middleware::ReverseProxy: > > $env->{HTTPS} = $env->{'HTTP_X_FORWARDED_HTTPS'} >        if $env->{'HTTP_X_FORWARDED_HTTPS'}; >    $env->{HTTPS} = 'ON' >        if $env->{'HTTP_X_FORWARDED_PROTO'} && > $env->{'HTTP_X_FORWARDED_PROTO'} eq 'https';    # Pound >    $env->{'psgi.url_scheme'}  = 'https' if $env->{HTTPS} && uc > $env->{HTTPS} eq 'ON'; >    my $default_port = $env->{'psgi.url_scheme'} eq 'https' ? 443 : 80; > > > > > On Fri, 30 Sep 2011 11:21:42 +0400, Иван Соколов > wrote: >> Добрый день! >> >> Схема такая >> frontend - nginx >> backend - plackup -s Starman app.psgi --port 3000 >> >> Решить проблему с X-Real-IP удалость очень просто с помощью >> Plack::Middleware::ReverseProxy >> Но есть другая проблема. >> Т.к. передается http запрос на backend, $c->request->base выдает схему http >> и некоторые модули типа Catalyst::Controller::FormBuilder в form >> action="" кладут http url. >> Временно решил это так: >> builder { >>     enable_if { $_[0]->{REMOTE_ADDR} eq '127.0.0.1' } >>         "Plack::Middleware::ReverseProxy"; >>      enable sub { >>          my $app = shift; >>          sub { >>              my $env = shift; >>              $env->{'psgi.url_scheme'} = 'https' if >> $env->{HTTP_X_IS_SECURE} || $env->{HTTPS}; >>              $app->($env); >>          } >>      }; >>     $app; >> }; >> >> Может есть какое-то более правильное решение? >> >> -- >> С уважением, >> Иван > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Иван From ivan на bessarabov.ru Fri Sep 30 06:20:04 2011 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Fri, 30 Sep 2011 17:20:04 +0400 Subject: [Moscow.pm] =?utf-8?b?0JjQvdGC0LXRgNCw0YLQvtGAINC40L3QuNGG0Lg=?= =?utf-8?b?0LDQu9C40LfQuNGA0YPQtdGCINGB0YHRi9C70LrRgyDQvdCwINC80LA=?= =?utf-8?b?0YHRgdC40LIv0YXQtdGI?= Message-ID: Я не могу понять из-за чего происходит такое поведение. Покажите, пожалуйста, кусок доки где объянено, почему так. #!/usr/bin/perl use strict; use warnings; use 5.010; use Data::Dumper; my ($t1, $t2); foreach (@$t1) {} # почему-то не вызывает ошибку say Dumper $t1; say '' if @$t2; # вызывает ошибку, как и ожидалось say 'end'; From andy на shitov.ru Fri Sep 30 06:26:38 2011 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 30 Sep 2011 15:26:38 +0200 Subject: [Moscow.pm] =?utf-8?b?0JjQvdGC0LXRgNCw0YLQvtGAINC40L3QuNGG0Lg=?= =?utf-8?b?0LDQu9C40LfQuNGA0YPQtdGCINGB0YHRi9C70LrRgyDQvdCwINC80LA=?= =?utf-8?b?0YHRgdC40LIv0YXQtdGI?= In-Reply-To: References: Message-ID: Потому что $t1 станет другим после foreach, а $t2 не станет :-) $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for (@$t) {}; print Dumper($t);' $VAR1 = undef; $VAR1 = []; 2011/9/30 Иван Бессарабов : > Я не могу понять из-за чего происходит такое поведение. > Покажите, пожалуйста, кусок доки где объянено, почему так. > > > #!/usr/bin/perl > > use strict; > use warnings; > use 5.010; > use Data::Dumper; > > my ($t1, $t2); > > foreach (@$t1) {} # почему-то не вызывает ошибку > say Dumper $t1; > > say '' if @$t2; # вызывает ошибку, как и ожидалось > > say 'end'; > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From sharifulin на gmail.com Fri Sep 30 06:32:50 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Fri, 30 Sep 2011 17:32:50 +0400 Subject: [Moscow.pm] =?koi8-r?b?6c7UxdLB1M/SIMnOycPJwczJ2snS1cXUINPT2czL?= =?koi8-r?b?1SDOwSDNwdPTydcvyMXb?= In-Reply-To: References: Message-ID: Потому что разный контекст. foreach (scalar @$t1) {} Вот так будет идентично ифу. 2011/9/30 Andrew Shitov > Потому что $t1 станет другим после foreach, а $t2 не станет :-) > > $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for > (@$t) {}; print Dumper($t);' > $VAR1 = undef; > $VAR1 = []; > > > 2011/9/30 Иван Бессарабов : > > Я не могу понять из-за чего происходит такое поведение. > > Покажите, пожалуйста, кусок доки где объянено, почему так. > > > > > > #!/usr/bin/perl > > > > use strict; > > use warnings; > > use 5.010; > > use Data::Dumper; > > > > my ($t1, $t2); > > > > foreach (@$t1) {} # почему-то не вызывает ошибку > > say Dumper $t1; > > > > say '' if @$t2; # вызывает ошибку, как и ожидалось > > > > say 'end'; > > -- > > 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 > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ivan на bessarabov.ru Fri Sep 30 06:36:51 2011 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Fri, 30 Sep 2011 17:36:51 +0400 Subject: [Moscow.pm] =?utf-8?b?0JjQvdGC0LXRgNCw0YLQvtGAINC40L3QuNGG0Lg=?= =?utf-8?b?0LDQu9C40LfQuNGA0YPQtdGCINGB0YHRi9C70LrRgyDQvdCwINC80LA=?= =?utf-8?b?0YHRgdC40LIv0YXQtdGI?= In-Reply-To: References: Message-ID: Вот мне и не понятно, почему $t1 станет другим после foreach =) 30 сентября 2011 г. 17:26 пользователь Andrew Shitov написал: > Потому что $t1 станет другим после foreach, а $t2 не станет :-) > > $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for > (@$t) {}; print Dumper($t);' > $VAR1 = undef; > $VAR1 = []; > > > 2011/9/30 Иван Бессарабов : >> Я не могу понять из-за чего происходит такое поведение. >> Покажите, пожалуйста, кусок доки где объянено, почему так. >> >> >> #!/usr/bin/perl >> >> use strict; >> use warnings; >> use 5.010; >> use Data::Dumper; >> >> my ($t1, $t2); >> >> foreach (@$t1) {} # почему-то не вызывает ошибку >> say Dumper $t1; >> >> say '' if @$t2; # вызывает ошибку, как и ожидалось >> >> say 'end'; >> -- >> 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 > From ccnweb на gmail.com Fri Sep 30 06:38:00 2011 From: ccnweb на gmail.com (Alexander Onokhov) Date: Fri, 30 Sep 2011 16:38:00 +0300 Subject: [Moscow.pm] =?koi8-r?b?6c7UxdLB1M/SIMnOycPJwczJ2snS1cXUINPT2czL?= =?koi8-r?b?1SDOwSDNwdPTydcvyMXb?= In-Reply-To: References: Message-ID: Потому что разный контекст. > > > foreach (scalar @$t1) {} > > Вот так будет идентично ифу. > > Сомнительно my @t3 = @$t2; # вызывает ошибку -- Alexander ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ivan на bessarabov.ru Fri Sep 30 06:38:17 2011 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Fri, 30 Sep 2011 17:38:17 +0400 Subject: [Moscow.pm] =?utf-8?b?0JjQvdGC0LXRgNCw0YLQvtGAINC40L3QuNGG0Lg=?= =?utf-8?b?0LDQu9C40LfQuNGA0YPQtdGCINGB0YHRi9C70LrRgyDQvdCwINC80LA=?= =?utf-8?b?0YHRgdC40LIv0YXQtdGI?= In-Reply-To: References: Message-ID: Ок. А почему в списочном контексте происходит инициализация ссылки? 30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин написал: > Потому что разный контекст. > foreach (scalar @$t1) {} > Вот так будет идентично ифу. > > > 2011/9/30 Andrew Shitov >> >> Потому что $t1 станет другим после foreach, а $t2 не станет :-) >> >> $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for >> (@$t) {}; print Dumper($t);' >> $VAR1 = undef; >> $VAR1 = []; >> >> >> 2011/9/30 Иван Бессарабов : >> > Я не могу понять из-за чего происходит такое поведение. >> > Покажите, пожалуйста, кусок доки где объянено, почему так. >> > >> > >> > #!/usr/bin/perl >> > >> > use strict; >> > use warnings; >> > use 5.010; >> > use Data::Dumper; >> > >> > my ($t1, $t2); >> > >> > foreach (@$t1) {} # почему-то не вызывает ошибку >> > say Dumper $t1; >> > >> > say '' if @$t2; # вызывает ошибку, как и ожидалось >> > >> > say 'end'; >> > -- >> > 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 > > > > -- > С уважением, >  Анатолий Шарифулин. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > From ccnweb на gmail.com Fri Sep 30 06:39:51 2011 From: ccnweb на gmail.com (Alexander Onokhov) Date: Fri, 30 Sep 2011 16:39:51 +0300 Subject: [Moscow.pm] =?koi8-r?b?6c7UxdLB1M/SIMnOycPJwczJ2snS1cXUINPT2czL?= =?koi8-r?b?1SDOwSDNwdPTydcvyMXb?= In-Reply-To: References: Message-ID: On Fri, Sep 30, 2011 at 4:26 PM, Andrew Shitov wrote: > Потому что $t1 станет другим после foreach, а $t2 не станет :-) > > $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for > (@$t) {}; print Dumper($t);' > $VAR1 = undef; > $VAR1 = []; > > В том и вопрос, почему $t1 позволено стать другим, а $t2 не позволено -- Alexander ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andy на shitov.ru Fri Sep 30 06:41:05 2011 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 30 Sep 2011 15:41:05 +0200 Subject: [Moscow.pm] =?utf-8?b?0JjQvdGC0LXRgNCw0YLQvtGAINC40L3QuNGG0Lg=?= =?utf-8?b?0LDQu9C40LfQuNGA0YPQtdGCINGB0YHRi9C70LrRgyDQvdCwINC80LA=?= =?utf-8?b?0YHRgdC40LIv0YXQtdGI?= In-Reply-To: References: Message-ID: http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference 2011/9/30 Alexander Onokhov : > > > On Fri, Sep 30, 2011 at 4:26 PM, Andrew Shitov wrote: >> >> Потому что $t1 станет другим после foreach, а $t2 не станет :-) >> >> $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for >> (@$t) {}; print Dumper($t);' >> $VAR1 = undef; >> $VAR1 = []; >> > > > В том и вопрос, почему $t1 позволено стать другим, а $t2 не позволено > > -- > Alexander > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From meettya на gmail.com Fri Sep 30 06:42:21 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Fri, 30 Sep 2011 17:42:21 +0400 Subject: [Moscow.pm] =?utf-8?b?0JjQvdGC0LXRgNCw0YLQvtGAINC40L3QuNGG0Lg=?= =?utf-8?b?0LDQu9C40LfQuNGA0YPQtdGCINGB0YHRi9C70LrRgyDQvdCwINC80LDRgdGB?= =?utf-8?b?0LjQsi/RhdC10Yg=?= In-Reply-To: References: Message-ID: http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case stackoverflow наш друг :) On Sep 30, 2011, at 5:38 PM, Иван Бессарабов wrote: > Ок. А почему в списочном контексте происходит инициализация ссылки? > > 30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин > написал: >> Потому что разный контекст. >> foreach (scalar @$t1) {} >> Вот так будет идентично ифу. >> >> >> 2011/9/30 Andrew Shitov >>> >>> Потому что $t1 станет другим после foreach, а $t2 не станет :-) >>> >>> $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for >>> (@$t) {}; print Dumper($t);' >>> $VAR1 = undef; >>> $VAR1 = []; >>> >>> >>> 2011/9/30 Иван Бессарабов : >>>> Я не могу понять из-за чего происходит такое поведение. >>>> Покажите, пожалуйста, кусок доки где объянено, почему так. >>>> >>>> >>>> #!/usr/bin/perl >>>> >>>> use strict; >>>> use warnings; >>>> use 5.010; >>>> use Data::Dumper; >>>> >>>> my ($t1, $t2); >>>> >>>> foreach (@$t1) {} # почему-то не вызывает ошибку >>>> say Dumper $t1; >>>> >>>> say '' if @$t2; # вызывает ошибку, как и ожидалось >>>> >>>> say 'end'; >>>> -- >>>> 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 >> >> >> >> -- >> С уважением, >> Анатолий Шарифулин. >> >> -- >> 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 ccnweb на gmail.com Fri Sep 30 06:45:11 2011 From: ccnweb на gmail.com (Alexander Onokhov) Date: Fri, 30 Sep 2011 16:45:11 +0300 Subject: [Moscow.pm] =?koi8-r?b?6c7UxdLB1M/SIMnOycPJwczJ2snS1cXUINPT2czL?= =?koi8-r?b?1SDOwSDNwdPTydcvyMXb?= In-Reply-To: References: Message-ID: Да про lvalue хорошо @$t2 = (1,2,3); # нет ошибки On Fri, Sep 30, 2011 at 4:42 PM, Dmitry Karpich wrote: > > http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference > > > > http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case > > > stackoverflow > наш друг :) > > > On Sep 30, 2011, at 5:38 PM, Иван Бессарабов wrote: > > Ок. А почему в списочном контексте происходит инициализация ссылки? > > 30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин > написал: > > Потому что разный контекст. > > foreach (scalar @$t1) {} > > Вот так будет идентично ифу. > > > > 2011/9/30 Andrew Shitov > > > Потому что $t1 станет другим после foreach, а $t2 не станет :-) > > > $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for > > (@$t) {}; print Dumper($t);' > > $VAR1 = undef; > > $VAR1 = []; > > > > 2011/9/30 Иван Бессарабов : > > Я не могу понять из-за чего происходит такое поведение. > > Покажите, пожалуйста, кусок доки где объянено, почему так. > > > > #!/usr/bin/perl > > > use strict; > > use warnings; > > use 5.010; > > use Data::Dumper; > > > my ($t1, $t2); > > > foreach (@$t1) {} # почему-то не вызывает ошибку > > say Dumper $t1; > > > say '' if @$t2; # вызывает ошибку, как и ожидалось > > > say 'end'; > > -- > > 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 > > > > > -- > > С уважением, > > Анатолий Шарифулин. > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Alexander ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sharifulin на gmail.com Fri Sep 30 06:51:58 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Fri, 30 Sep 2011 17:51:58 +0400 Subject: [Moscow.pm] =?koi8-r?b?6c7UxdLB1M/SIMnOycPJwczJ2snS1cXUINPT2czL?= =?koi8-r?b?1SDOwSDNwdPTydcvyMXb?= In-Reply-To: References: Message-ID: Вместо: @$t2 = @$t3; обычно пишу: $t2 = [ @$t3 ]; Ну и: нужно быть уверенным в том, что ты разыменовываешь, если не уверен, то @{ $t2 || [] }; Только не нужно быть пароноиком и использовать ref eq 'ARRAY' или использовать перегрузку, когда не известен тип входной структуры. Такая практика меня ещё ни разу не привела к подобным ошибкам. 2011/9/30 Alexander Onokhov > Да про lvalue хорошо > > @$t2 = (1,2,3); # нет ошибки > > > > On Fri, Sep 30, 2011 at 4:42 PM, Dmitry Karpich wrote: > >> >> http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference >> >> >> >> http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case >> >> >> stackoverflow >> наш друг :) >> >> >> On Sep 30, 2011, at 5:38 PM, Иван Бессарабов wrote: >> >> Ок. А почему в списочном контексте происходит инициализация ссылки? >> >> 30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин >> написал: >> >> Потому что разный контекст. >> >> foreach (scalar @$t1) {} >> >> Вот так будет идентично ифу. >> >> >> >> 2011/9/30 Andrew Shitov >> >> >> Потому что $t1 станет другим после foreach, а $t2 не станет :-) >> >> >> $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for >> >> (@$t) {}; print Dumper($t);' >> >> $VAR1 = undef; >> >> $VAR1 = []; >> >> >> >> 2011/9/30 Иван Бессарабов : >> >> Я не могу понять из-за чего происходит такое поведение. >> >> Покажите, пожалуйста, кусок доки где объянено, почему так. >> >> >> >> #!/usr/bin/perl >> >> >> use strict; >> >> use warnings; >> >> use 5.010; >> >> use Data::Dumper; >> >> >> my ($t1, $t2); >> >> >> foreach (@$t1) {} # почему-то не вызывает ошибку >> >> say Dumper $t1; >> >> >> say '' if @$t2; # вызывает ошибку, как и ожидалось >> >> >> say 'end'; >> >> -- >> >> 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 >> >> >> >> >> -- >> >> С уважением, >> >> Анатолий Шарифулин. >> >> >> -- >> >> Moscow.pm mailing list >> >> moscow-pm на pm.org | http://moscow.pm.org >> >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> > > > -- > Alexander > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением, Анатолий Шарифулин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ivan на bessarabov.ru Fri Sep 30 07:17:01 2011 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Fri, 30 Sep 2011 18:17:01 +0400 Subject: [Moscow.pm] =?utf-8?b?0JjQvdGC0LXRgNCw0YLQvtGAINC40L3QuNGG0Lg=?= =?utf-8?b?0LDQu9C40LfQuNGA0YPQtdGCINGB0YHRi9C70LrRgyDQvdCwINC80LA=?= =?utf-8?b?0YHRgdC40LIv0YXQtdGI?= In-Reply-To: References: Message-ID: Андрей, Дмитрий, спасибо =) 30 сентября 2011 г. 17:42 пользователь Dmitry Karpich написал: > http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference > http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case > stackoverflow наш друг :) > > On Sep 30, 2011, at 5:38 PM, Иван Бессарабов wrote: > > Ок. А почему в списочном контексте происходит инициализация ссылки? > > 30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин > написал: > > Потому что разный контекст. > > foreach (scalar @$t1) {} > > Вот так будет идентично ифу. > > > 2011/9/30 Andrew Shitov > > Потому что $t1 станет другим после foreach, а $t2 не станет :-) > > $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for > > (@$t) {}; print Dumper($t);' > > $VAR1 = undef; > > $VAR1 = []; > > > 2011/9/30 Иван Бессарабов : > > Я не могу понять из-за чего происходит такое поведение. > > Покажите, пожалуйста, кусок доки где объянено, почему так. > > > #!/usr/bin/perl > > use strict; > > use warnings; > > use 5.010; > > use Data::Dumper; > > my ($t1, $t2); > > foreach (@$t1) {} # почему-то не вызывает ошибку > > say Dumper $t1; > > say '' if @$t2; # вызывает ошибку, как и ожидалось > > say 'end'; > > -- > > 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 > > > > -- > > С уважением, > >  Анатолий Шарифулин. > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > From cub.uanic на gmail.com Fri Sep 30 12:52:47 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Fri, 30 Sep 2011 22:52:47 +0300 Subject: [Moscow.pm] =?utf-8?b?0JjQvdGC0LXRgNCw0YLQvtGAINC40L3QuNGG0Lg=?= =?utf-8?b?0LDQu9C40LfQuNGA0YPQtdGCINGB0YHRi9C70LrRgyDQvdCwINC80LA=?= =?utf-8?b?0YHRgdC40LIv0YXQtdGI?= In-Reply-To: References: Message-ID: Про перегрузку соглашусь, но почему использование ref eq 'ARRAY' - это паранойя? Это сплошь и рядом используется, например в том же DBIx::Class. Обоснуйте-ка, милейший! 30 сентября 2011 г. 16:51 пользователь Анатолий Шарифулин написал: > Вместо: > @$t2 = @$t3; > обычно пишу: > $t2 = [ @$t3 ]; > > Ну и: нужно быть уверенным в том, что ты разыменовываешь, если не уверен, то > @{ $t2 || [] }; > Только не нужно быть пароноиком и использовать ref eq 'ARRAY' или > использовать перегрузку, когда не известен тип входной структуры. > Такая практика меня ещё ни разу не привела к подобным ошибкам. > > 2011/9/30 Alexander Onokhov >> >> Да про lvalue хорошо >> >> @$t2 = (1,2,3);  # нет ошибки >> >> >> On Fri, Sep 30, 2011 at 4:42 PM, Dmitry Karpich wrote: >>> >>> >>> http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference >>> >>> http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case >>> stackoverflow наш друг :) >>> >>> On Sep 30, 2011, at 5:38 PM, Иван Бессарабов wrote: >>> >>> Ок. А почему в списочном контексте происходит инициализация ссылки? >>> >>> 30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин >>> написал: >>> >>> Потому что разный контекст. >>> >>> foreach (scalar @$t1) {} >>> >>> Вот так будет идентично ифу. >>> >>> >>> 2011/9/30 Andrew Shitov >>> >>> Потому что $t1 станет другим после foreach, а $t2 не станет :-) >>> >>> $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for >>> >>> (@$t) {}; print Dumper($t);' >>> >>> $VAR1 = undef; >>> >>> $VAR1 = []; >>> >>> >>> 2011/9/30 Иван Бессарабов : >>> >>> Я не могу понять из-за чего происходит такое поведение. >>> >>> Покажите, пожалуйста, кусок доки где объянено, почему так. >>> >>> >>> #!/usr/bin/perl >>> >>> use strict; >>> >>> use warnings; >>> >>> use 5.010; >>> >>> use Data::Dumper; >>> >>> my ($t1, $t2); >>> >>> foreach (@$t1) {} # почему-то не вызывает ошибку >>> >>> say Dumper $t1; >>> >>> say '' if @$t2; # вызывает ошибку, как и ожидалось >>> >>> say 'end'; >>> >>> -- >>> >>> 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 >>> >>> >>> >>> -- >>> >>> С уважением, >>> >>>  Анатолий Шарифулин. >>> >>> -- >>> >>> Moscow.pm mailing list >>> >>> moscow-pm на pm.org | http://moscow.pm.org >>> >>> >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >>> >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >> >> >> >> -- >> Alexander >> >> -- >> 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)