From sergle.ua на gmail.com Tue Feb 1 03:10:38 2011 From: sergle.ua на gmail.com (Sergey Leschenko) Date: Tue, 1 Feb 2011 13:10:38 +0200 Subject: [Moscow.pm] =?utf-8?b?0JrQvtC0INGA0LDQsdC+0YLQsNC10YIg0LIgNS44?= =?utf-8?b?Ljgg0Lgg0L3QtSDRgNCw0LHQvtGC0LDQtSDQsiA1LjEwLjEsINC/0L4=?= =?utf-8?b?0YfQtdC80YM/?= Message-ID: Добрый день Есть такой фрагмент: use strict; use Data::Dumper; my $info = { Column1 => 'Value1', Column2 => 'Value2', Column3 => 'Value3', }; my @fields_from_master = qw(Column1 Column2); my @fields_to_alias = qw(Col1 Col2); my %values_from_master = (); @{ %values_from_master }{ @fields_to_alias } = @{ %$info }{@fields_from_master }; print Dumper(\%values_from_master); Enterprise Linux Enterprise Linux Server release 5.4 (Carthage) This is perl, v5.8.8 perl t.pl $VAR1 = { 'Col2' => 'Value2', 'Col1' => 'Value1' }; Red Hat Enterprise Linux Server release 6.0 (Santiago) This is perl, v5.10.1 perl t.pl Can't use string ("3/8") as a HASH ref while "strict refs" in use at t.pl line 13. Чем объясняется эта ошибка? в perldelta сходу ничего похожего нет. -- Sergey From q на cono.org.ua Tue Feb 1 03:16:22 2011 From: q на cono.org.ua (Alex Varyanick) Date: Tue, 1 Feb 2011 13:16:22 +0200 Subject: [Moscow.pm] =?utf-8?b?0JrQvtC0INGA0LDQsdC+0YLQsNC10YIg0LIgNS44?= =?utf-8?b?Ljgg0Lgg0L3QtSDRgNCw0LHQvtGC0LDQtSDQsiA1LjEwLjEsINC/0L4=?= =?utf-8?b?0YfQtdC80YM/?= In-Reply-To: References: Message-ID: 2011/2/1 Sergey Leschenko : > Добрый день > > Есть такой фрагмент: > > use strict; > use Data::Dumper; > > my $info = { >    Column1 => 'Value1', >    Column2 => 'Value2', >    Column3 => 'Value3', > }; > my @fields_from_master = qw(Column1 Column2); > my @fields_to_alias = qw(Col1 Col2); > my %values_from_master = (); > > @{ %values_from_master }{ @fields_to_alias } = @{ %$info > }{@fields_from_master }; > > print Dumper(\%values_from_master); > > > Enterprise Linux Enterprise Linux Server release 5.4 (Carthage) > This is perl, v5.8.8 > perl t.pl > $VAR1 = { >          'Col2' => 'Value2', >          'Col1' => 'Value1' >        }; > > Red Hat Enterprise Linux Server release 6.0 (Santiago) > This is perl, v5.10.1 > perl t.pl > Can't use string ("3/8") as a HASH ref while "strict refs" in use at > t.pl line 13. > > Чем объясняется эта ошибка? в perldelta сходу ничего похожего нет. % perl -Mstrict -MData::Dumper -le 'my %h=(1,2,3,4); @h{qw(1 3)} = (5, 6); print Dumper \%h' $VAR1 = { '1' => 5, '3' => 6 }; % perl -Mstrict -MData::Dumper -le 'my %h=(1,2,3,4); @{%h}{qw(1 3)} = (5, 6); print Dumper \%h' Can't use string ("2/8") as a HASH ref while "strict refs" in use at -e line 1. % perl -V:version version='5.10.1'; -- Varyanick I. Alex icq: 102 575 440 skype: cono.. q на cono.org.ua From aml на rulezz.ru Tue Feb 1 03:21:24 2011 From: aml на rulezz.ru (Alexander Lourier) Date: Tue, 1 Feb 2011 14:21:24 +0300 Subject: [Moscow.pm] =?koi8-r?b?68/EINLBws/UwcXUINcgNS44LjggySDOxSDSwcLP?= =?koi8-r?b?1MHFINcgNS4xMC4xLCDQz97FzdU/?= In-Reply-To: References: Message-ID: <201102011421.24918.aml@rulezz.ru> В письме Tuesday 01 February 2011 14:10:38 Sergey Leschenko написал: > Есть такой фрагмент: <недоумение>О чём думают программисты, когда пишут такое? Это быстрее работает? Вряд ли хоть какую-то роль играет в этом случае. Это быстрее писать? Как видим, нет - надо ещё в рассылке темы создавать. Это проще поддерживать? Лучше застрелите саппортов, чем такой код им давайте. Вот конструктивная часть ответа: for my $i (0 .. $#fields_from_master) { $values_from_master{$fields_to_alias[$i]} = $info->{$fields_from_master[$i]}; } -- Alexander Lourier, http://aml.rulezz.ru/ From gnatyna на ya.ru Tue Feb 1 03:30:34 2011 From: gnatyna на ya.ru (=?koi8-r?b?587B1NnOwSDhzMXL08HOxNI=?=) Date: Tue, 1 Feb 2011 14:30:34 +0300 Subject: [Moscow.pm] =?koi8-r?b?68/EINLBws/UwcXUINcgNS44LjggySDOxSDSwcLP?= =?koi8-r?b?1MHFINcgNS4xMC4xLCDQz97FzdU/?= In-Reply-To: References: Message-ID: <201102011430.59840.gnatyna@ya.ru> @values_from_master{ @fields_to_alias } = @$info{@fields_from_master }; какая0то у вас странная запись была. -- С уважением, Гнатына Александр. В сообщении от 1 февраля 2011 14:10:38 автор Sergey Leschenko написал: > Добрый день > > Есть такой фрагмент: > > use strict; > use Data::Dumper; > > my $info = { > Column1 => 'Value1', > Column2 => 'Value2', > Column3 => 'Value3', > }; > my @fields_from_master = qw(Column1 Column2); > my @fields_to_alias = qw(Col1 Col2); > my %values_from_master = (); > > @{ %values_from_master }{ @fields_to_alias } = @{ %$info > }{@fields_from_master }; > > print Dumper(\%values_from_master); > > > Enterprise Linux Enterprise Linux Server release 5.4 (Carthage) > This is perl, v5.8.8 > perl t.pl > $VAR1 = { > 'Col2' => 'Value2', > 'Col1' => 'Value1' > }; > > Red Hat Enterprise Linux Server release 6.0 (Santiago) > This is perl, v5.10.1 > perl t.pl > Can't use string ("3/8") as a HASH ref while "strict refs" in use at > t.pl line 13. > > Чем объясняется эта ошибка? в perldelta сходу ничего похожего нет. From sergle.ua на gmail.com Tue Feb 1 03:37:08 2011 From: sergle.ua на gmail.com (Sergey Leschenko) Date: Tue, 1 Feb 2011 13:37:08 +0200 Subject: [Moscow.pm] =?utf-8?b?0JrQvtC0INGA0LDQsdC+0YLQsNC10YIg0LIgNS44?= =?utf-8?b?Ljgg0Lgg0L3QtSDRgNCw0LHQvtGC0LDQtSDQsiA1LjEwLjEsINC/0L4=?= =?utf-8?b?0YfQtdC80YM/?= In-Reply-To: <201102011421.24918.aml@rulezz.ru> References: <201102011421.24918.aml@rulezz.ru> Message-ID: 2011/2/1 Alexander Lourier : > <недоумение>О чём думают программисты, когда пишут такое? Это быстрее работает? Вряд ли хоть какую-то роль играет в этом > случае. Это быстрее писать? Как видим, нет - надо ещё в рассылке темы создавать. Это проще поддерживать? Лучше > застрелите саппортов, чем такой код им давайте. Я затрудняюсь сказать о чем думал автор, т.к. им не являюсь. Под 5.10 этот фрагмент уже переписал, просто не понимаю почему он перестал работать. -- Sergey From cub.uanic на gmail.com Tue Feb 1 04:06:49 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Tue, 1 Feb 2011 14:06:49 +0200 Subject: [Moscow.pm] =?utf-8?b?0JrQvtC0INGA0LDQsdC+0YLQsNC10YIg0LIgNS44?= =?utf-8?b?Ljgg0Lgg0L3QtSDRgNCw0LHQvtGC0LDQtSDQsiA1LjEwLjEsINC/0L4=?= =?utf-8?b?0YfQtdC80YM/?= In-Reply-To: References: <201102011421.24918.aml@rulezz.ru> Message-ID: Ну, не сложно объяснить, почему оно работает именно так. Операторы зарыменования, вроде @{something}, тербуют на месте something что-либо, возвращающее ссылку. Одну. Т.е. говоря простым языком - он предоставляет скалярный контекст для своего содержимого. Хеш в скалярном контексте возвращает соотношение использованного и выделенного пространства, в виде строки "a/b" (perldoc perldata, /If you evaluate a hash in scalar context). Так что результат записи @{%hash}{qw(list)} уже не удивляет. И я думаю он и не начал бы удивлять, если бы вы запустили его с use warnings. Хотя сам этого не проверял. Так же понятно, что оператор "срез хеша", который вероятно и хотелось получить, выглядит как @hash{qw(list)}. Ваш вопрос "почему работало и перестало" равносилен вопросу "почему КРИВОЙ код работал и перестал". Вероятно, потому, что автор кода не сумел правильно написать срез хеша. Вероятно, потому, что Perl совершенствуется и начинает допускать всё меньше и меньше двусмысленностей и неоднозначностей. Вероятно, потому, что это был один из многочисленных багфиксов. Более детальный ответ на свой вопрос - я думаю, вы найдёте в changelog-ах от 5.8 до 5.10. Удачи. 1 февраля 2011 г. 13:37 пользователь Sergey Leschenko написал: > 2011/2/1 Alexander Lourier : >> <недоумение>О чём думают программисты, когда пишут такое? Это быстрее работает? Вряд ли хоть какую-то роль играет в этом >> случае. Это быстрее писать? Как видим, нет - надо ещё в рассылке темы создавать. Это проще поддерживать? Лучше >> застрелите саппортов, чем такой код им давайте. > > Я затрудняюсь сказать о чем думал автор, т.к. им не являюсь. > Под 5.10 этот фрагмент уже переписал, просто не понимаю почему он > перестал работать. > > -- > Sergey > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From ruz на bestpractical.com Tue Feb 1 12:04:47 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Tue, 1 Feb 2011 23:04:47 +0300 Subject: [Moscow.pm] =?utf-8?b?WFMg0LrQsNC6INC/0LXRgNC10LjQvNC10L3QvtCy?= =?utf-8?b?0LDRgtGMINC80L7QtNGD0LvRjD8=?= In-Reply-To: References: Message-ID: 2011/2/1 Ivan Petrov : > >> $str = 0x1000; $str = ''; > > а вот это не совсем то, вернее совсем не то. > > > одно дело при создании скаляра - выделить заранее память, а совсем другое > дело - выделить память *и заполнить ее значением*. > > используя XS можно сделать первое, а вот данная конструкция делает второе. Вы сказали у вас проблема с realloc, мы предложили вам решение. Если вы заглянете в av_extend, то увидите, что он также заполняет доступное пространство undef'ами. Вот только AvFILL у массива не двигает. Сравните код с функцией av_fill, которая эквивалент $#a = x;. По этому во всех примерах сначала расширяем до нужного размера, потом уменьшаем. Ну нету av_extend в perl, но ничего не мешает его сделать. > то же самое и с массивами. когда мы пишем $#a = 1000; реально создается 1000 > скаляров и если затем сказать push @a => $b; то $b запишется по 1001 > индексу, Ничего не создается. Записывается ссылка на PL_sv_undef. > а вот если мы в C скажем av_extend(a, 1000), а затем следом av_push(a, b), > то в результате у нас будет массив из одного элемента, но не требующий > переаллокации до тех пор пока не допушимся до 1000-го элемента my @a = (1..2); Dump \@a; my $len = @a; $#a = 1000; Dump \@a; $#a = $len; Dump \@a; К сожалению без двойного прохода не получится. Опубликуйте List::Util::Internals и Scalar::Util::Internals вам будут благодарны программисты со сложными алгоритмами, где realloc становится проблемой. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Best regards, Ruslan. From oleg.bunin на ontico.ru Wed Feb 2 02:00:06 2011 From: oleg.bunin на ontico.ru (Oleg Bunin) Date: Wed, 2 Feb 2011 13:00:06 +0300 Subject: [Moscow.pm] =?koi8-r?b?UGVybCDOwSDy6fQrKw==?= Message-ID: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Коллеги, добрый день! Хочу посоветоваться. Наша компания, кроме заказной разработки, занимается также организацией конференций для разработчиков. Ближайшая - конференция веб-разработчиков "Российские интернет-технологии" - 25 и 26 апреля 2011 года. Обычно на наших мероприятиях примерно четверть западных докладчиков - мы привозим их в Россию, оплачиваем им проживание, билеты и визу, организовываем перевод, а они выступают. В прошлом году Андрей Шитов помог нам привести таких перловиков как Джонатан Вортингтон (Jonathan Worthington), Патрик Мишо (Patrick Michaud). Кого позвать в этом году? Кто был бы интересен? На какие темы, именно по perl'у хотелось бы услышать доклады? -- С уважением, Олег Бунин +7 (916) 635-9584 http://www.ritconf.ru/ http://www.ontico.ru/ From andy на shitov.ru Wed Feb 2 02:05:29 2011 From: andy на shitov.ru (Andrew Shitov) Date: Wed, 2 Feb 2011 11:05:29 +0100 Subject: [Moscow.pm] =?utf-8?b?UGVybCDQvdCwINCg0JjQoisr?= In-Reply-To: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: (Не про РИТ++.) Мы собираемся привезти хорошего докладчика на YAPC::Russia 13-15 мая. Участие бесплатное. Предлагайте (не в рассылку) и приходите. > Хочу посоветоваться. Наша компания, кроме заказной разработки, занимается > также организацией конференций для разработчиков. Ближайшая - конференция > веб-разработчиков "Российские интернет-технологии" - 25 и 26 апреля 2011 > года. Обычно на наших мероприятиях примерно четверть западных докладчиков - > мы привозим их в Россию, оплачиваем им проживание, билеты и визу, > организовываем перевод, а они выступают. В прошлом году Андрей Шитов помог > нам привести таких перловиков как Джонатан Вортингтон (Jonathan > Worthington), Патрик Мишо (Patrick Michaud). > > Кого позвать в этом году? Кто был бы интересен? На какие темы, именно по > perl'у хотелось бы услышать доклады? -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From shafiev на gmail.com Wed Feb 2 12:03:44 2011 From: shafiev на gmail.com (Naim Shafiev) Date: Wed, 2 Feb 2011 23:03:44 +0300 Subject: [Moscow.pm] =?koi8-r?b?UGVybCDOwSDy6fQrKw==?= In-Reply-To: References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: 2 февраля 2011 г. 13:05 пользователь Andrew Shitov написал: > (Не про РИТ++.) > > Мы собираемся привезти хорошего докладчика на YAPC::Russia 13-15 мая. > А кого если не секрет? > Участие бесплатное. Предлагайте (не в рассылку) и приходите. > > > > Хочу посоветоваться. Наша компания, кроме заказной разработки, занимается > > также организацией конференций для разработчиков. Ближайшая - конференция > > веб-разработчиков "Российские интернет-технологии" - 25 и 26 апреля 2011 > > года. Обычно на наших мероприятиях примерно четверть западных докладчиков > - > > мы привозим их в Россию, оплачиваем им проживание, билеты и визу, > > организовываем перевод, а они выступают. В прошлом году Андрей Шитов > помог > > нам привести таких перловиков как Джонатан Вортингтон (Jonathan > > Worthington), Патрик Мишо (Patrick Michaud). > > > > Кого позвать в этом году? Кто был бы интересен? На какие темы, именно по > > perl'у хотелось бы услышать доклады? > > > -- > Andrew Shitov > ______________________________________________________________________ > andy на shitov.ru | http://shitov.ru > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Wed Feb 2 12:54:46 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 2 Feb 2011 20:54:46 +0000 Subject: [Moscow.pm] =?koi8-r?b?WFMgy8HLINDF0sXJzcXOz9fB1Nggzc/E1czYPw==?= In-Reply-To: References: Message-ID: > К сожалению без двойного прохода не получится. Опубликуйте > List::Util::Internals и Scalar::Util::Internals вам будут благодарны > программисты со сложными алгоритмами, где realloc становится > проблемой. > > я собственно этот вопрос задавал на предмет может кто-то уже эту работу проделал. тут переписали два модуля с Perl на XS. а поскольку алгоритмы не меняли, то вся разница в быстродействии (> 100 раз) упирается чисто в работу с памятью. вот собственно интересно стало, можно ли вернуться на perl пусть бы и с костылями. PS: а кстати вот перловая инструкция вида (%hash)[$index] получается всегда полным перебором (от нуля до $index) выполняется? или я пропустил в документации какую-то функцию? PS: писали сериализацию/десериализацию данных. обычную типа Data::Dumper, но с такой фичей: работа из event-машины. то есть и сериализация и десериализация идут ограниченными квантами. ну и event-машина при этом не блокируется. в ближайшее время выльем на cpan десериализация получилась быстрее eval, а сериализация медленнее Dumper раз в пять. опять же вопрос - а не велосипед ли мы ваяли? может для event-машин кто-то делал что-то подобное? вот JSON::XS имеет инкрементальный парсинг, а в обратном направлении инкремента нет. хотя что самое интересное десериализацию можно сделать быстрее сериализации... ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andy на shitov.ru Wed Feb 2 12:58:29 2011 From: andy на shitov.ru (Andrew Shitov) Date: Wed, 2 Feb 2011 21:58:29 +0100 Subject: [Moscow.pm] =?utf-8?b?UGVybCDQvdCwINCg0JjQoisr?= In-Reply-To: References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: Как куплю билет, скажу :-) Пока не хочу сглазить. 2011/2/2 Naim Shafiev : > > > 2 февраля 2011 г. 13:05 пользователь Andrew Shitov написал: >> >> (Не про РИТ++.) >> >> Мы собираемся привезти хорошего докладчика на YAPC::Russia 13-15 мая. > > А кого если не секрет? > >> >> Участие бесплатное. Предлагайте (не в рассылку) и приходите. >> >> >> > Хочу посоветоваться. Наша компания, кроме заказной разработки, >> > занимается >> > также организацией конференций для разработчиков. Ближайшая - >> > конференция >> > веб-разработчиков "Российские интернет-технологии" - 25 и 26 апреля 2011 >> > года. Обычно на наших мероприятиях примерно четверть западных >> > докладчиков - >> > мы привозим их в Россию, оплачиваем им проживание, билеты и визу, >> > организовываем перевод, а они выступают. В прошлом году Андрей Шитов >> > помог >> > нам привести таких перловиков как Джонатан Вортингтон (Jonathan >> > Worthington), Патрик Мишо (Patrick Michaud). >> > >> > Кого позвать в этом году? Кто был бы интересен? На какие темы, именно по >> > perl'у хотелось бы услышать доклады? >> >> >> -- >> 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 > > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From meettya на gmail.com Wed Feb 2 13:13:19 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Thu, 3 Feb 2011 00:13:19 +0300 Subject: [Moscow.pm] =?utf-8?b?WFMg0LrQsNC6INC/0LXRgNC10LjQvNC10L3QvtCy?= =?utf-8?b?0LDRgtGMINC80L7QtNGD0LvRjD8=?= In-Reply-To: References: Message-ID: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> Очень заинтересовал PS On Feb 2, 2011, at 11:54 PM, Ivan Petrov wrote: > PS: а кстати вот перловая инструкция вида > > (%hash)[$index] > > получается всегда полным перебором (от нуля до $index) выполняется? или я пропустил в документации какую-то функцию? не совсем понимаю, что Вы имели ввиду. Хеш с индексом - оксюморон какой-то Можно пример, для наглядности? From i.petro.77.00 на gmail.com Wed Feb 2 13:54:40 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 2 Feb 2011 21:54:40 +0000 Subject: [Moscow.pm] =?koi8-r?b?WFMgy8HLINDF0sXJzcXOz9fB1Nggzc/E1czYPw==?= In-Reply-To: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> References: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> Message-ID: > > PS: а кстати вот перловая инструкция вида > > > > (%hash)[$index] > > > > получается всегда полным перебором (от нуля до $index) выполняется? или я > пропустил в документации какую-то функцию? > > не совсем понимаю, что Вы имели ввиду. Хеш с индексом - оксюморон какой-то > Можно пример, для наглядности? > -- > ну я же привел пример - сериализация. в простейшем виде так: my $str = sprintf "{%s}", join ",", %hash; если сюда вставить ескейпинг, затем добавить возможность прерваться в любом месте этого процесса, поделать что-то другое, затем вернуться и продолжить, то получается что обращаться с хешом как с массивом наиболее удобно. А если считать что в перерыве кто-то может почитать этот хеш и неявно сбить итераторы, то на итераторы и полагаться-то нельзя. что остается? индекс в массиве (который из хеша получен) ну и хеши всегда в массивы обращались и наоборот %h = @array; @array = %hash; %hash = (%hash, %hash2); и так далее. на уровне перла средств манипуляции хешами как массивами полным полно, а вот на уровне perl api я такой возможности не нашел. а поскольку я в XS новичок, вот и спрашиваю :) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Wed Feb 2 23:41:38 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 3 Feb 2011 10:41:38 +0300 Subject: [Moscow.pm] =?koi8-r?b?UGVybCDOwSDy6fQrKw==?= In-Reply-To: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: Марка Лемана (AnyEvent) нельзя привезти?d). > > Кого позвать в этом году? Кто был бы интересен? На какие темы, именно по > perl'у хотелось бы услышать доклады? > хотелось бы именно по perl, а не мечты про perl6 :) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sharifulin на gmail.com Thu Feb 3 00:34:43 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Thu, 3 Feb 2011 11:34:43 +0300 Subject: [Moscow.pm] =?koi8-r?b?UGVybCDOwSDy6fQrKw==?= In-Reply-To: References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: Он не существует) On Thursday, February 3, 2011, Ivan Petrov wrote: > Марка Лемана (AnyEvent) нельзя привезти?d). > > > Кого позвать в этом году? Кто был бы интересен? На какие темы, именно по > perl'у хотелось бы услышать доклады? > > хотелось бы именно по perl, а не мечты про perl6 :) > -- С уважением, Анатолий Шарифулин. From yu.pats на gmail.com Thu Feb 3 01:45:15 2011 From: yu.pats на gmail.com (Yuri Pats) Date: Thu, 3 Feb 2011 11:45:15 +0200 Subject: [Moscow.pm] =?utf-8?b?UGVybCDQvdCwINCg0JjQoisr?= In-Reply-To: References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: 2011/2/3 Анатолий Шарифулин : > Он не существует) > По теории вероятности он находится сразу в нескольких местах? > On Thursday, February 3, 2011, Ivan Petrov wrote: >> Марка Лемана (AnyEvent) нельзя привезти?d). >> >> >> Кого позвать в этом году? Кто был бы интересен? На какие темы, именно по >> perl'у хотелось бы услышать доклады? >> >> хотелось бы именно по perl, а не мечты про perl6 :) >> > > -- > С уважением, >  Анатолий Шарифулин. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- WBR, Yuri Pats skype: yuripats cellular: +375 (29) 5870723 From jt на aaanet.ru Thu Feb 3 01:47:13 2011 From: jt на aaanet.ru (=?utf-8?B?0JXQstCz0LXQvdC40Lkg0KLQvtGA0L7Qv9C+0LI=?=) Date: Thu, 3 Feb 2011 12:47:13 +0300 Subject: [Moscow.pm] =?utf-8?b?UGVybCDQvdCwINCg0JjQoisr?= In-Reply-To: References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: <5ED25F66-9B2B-490D-B278-5B5DA71A8704@aaanet.ru> Сколько раз ни пробовал - всегда находил его в IRC On Feb 3, 2011, at 12:45 PM, Yuri Pats wrote: > 2011/2/3 Анатолий Шарифулин : >> Он не существует) >> > По теории вероятности он находится сразу в нескольких местах? > > >> On Thursday, February 3, 2011, Ivan Petrov wrote: >>> Марка Лемана (AnyEvent) нельзя привезти?d). >>> >>> >>> Кого позвать в этом году? Кто был бы интересен? На какие темы, именно по >>> perl'у хотелось бы услышать доклады? >>> >>> хотелось бы именно по perl, а не мечты про perl6 :) >>> >> >> -- >> С уважением, >> Анатолий Шарифулин. >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > -- > WBR, Yuri Pats > skype: yuripats > cellular: +375 (29) 5870723 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From oleg.bunin на ontico.ru Thu Feb 3 04:01:16 2011 From: oleg.bunin на ontico.ru (Oleg Bunin) Date: Thu, 3 Feb 2011 15:01:16 +0300 Subject: [Moscow.pm] =?koi8-r?b?UGVybCDOwSDy6fQrKw==?= In-Reply-To: References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: <4d4a990e.cc7e0e0a.3178.21fc@mx.google.com> Найдем, спросим ;) "- Он в грядущем! - Достанем из грядущего, не в первой!" (c) Формула любви > Марка Лемана (AnyEvent) нельзя привезти?d). Кого еще? Олег From dsimonov на gmail.com Thu Feb 3 04:52:33 2011 From: dsimonov на gmail.com (Dmitry Simonov) Date: Thu, 3 Feb 2011 15:52:33 +0300 Subject: [Moscow.pm] =?utf-8?b?UGVybCDQvdCwINCg0JjQoisr?= In-Reply-To: <4d4a990e.cc7e0e0a.3178.21fc@mx.google.com> References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> <4d4a990e.cc7e0e0a.3178.21fc@mx.google.com> Message-ID: За одного его Тебе памятник поставят. Реддекера ещё. --- С искр. ув. Д.Симонов 2011/2/3 Oleg Bunin : >> Марка Лемана (AnyEvent) нельзя привезти?d). From postmaster на softsearch.ru Thu Feb 3 06:12:56 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Thu, 3 Feb 2011 17:12:56 +0300 Subject: [Moscow.pm] =?koi8-r?b?UGVybCDOwSDy6fQrKw==?= In-Reply-To: References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> Message-ID: <115293137.20110203171256@softsearch.ru> Здравствуйте, Иван. IP> Марка Лемана (AnyEvent) нельзя привезти?d). +1 IP> хотелось бы именно по perl, а не мечты про perl6 :) +1 -- С уважением, Михаил Монашёв mailto:postmaster на softsearch.ru ICQ# 166233339 http://michael.mindmix.ru/ Без бэкапа по жизни. From shafiev на gmail.com Thu Feb 3 06:54:38 2011 From: shafiev на gmail.com (Naim Shafiev) Date: Thu, 3 Feb 2011 17:54:38 +0300 Subject: [Moscow.pm] =?koi8-r?b?UGVybCDOwSDy6fQrKw==?= In-Reply-To: <115293137.20110203171256@softsearch.ru> References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> <115293137.20110203171256@softsearch.ru> Message-ID: 3 февраля 2011 г. 17:12 пользователь Михаил Монашёв < postmaster на softsearch.ru> написал: > Здравствуйте, Иван. > > IP> Марка Лемана (AnyEvent) нельзя привезти?d). > > +1 > +1024 > IP> хотелось бы именно по perl, а не мечты про perl6 :) > > +1 > :) > -- > > С уважением, > Михаил Монашёв > mailto:postmaster на softsearch.ru > ICQ# 166233339 > http://michael.mindmix.ru/ > Без бэкапа по жизни. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From inthrax на gmail.com Thu Feb 3 07:42:59 2011 From: inthrax на gmail.com (Mons Anderson) Date: Thu, 3 Feb 2011 18:42:59 +0300 Subject: [Moscow.pm] =?windows-1251?b?UGVybCDt4CDQyNIrKw==?= In-Reply-To: References: <4d492b32.cb05df0a.6b6e.ffff8a2b@mx.google.com> <115293137.20110203171256@softsearch.ru> Message-ID: <201102031842.59109.inthrax@gmail.com> On Thursday 03 February 2011 17:54:38 Naim Shafiev wrote: > 3 февраля 2011 г. 17:12 пользователь Михаил Монашёв < > > postmaster на softsearch.ru> написал: > > Здравствуйте, Иван. > > > > IP> Марка Лемана (AnyEvent) нельзя привезти?d). > > > > +1 > > +1024 + sprintf "%u",-1 -- Vladimir Perepelitsa aka Mons Anderson / #99779956 From meettya на gmail.com Thu Feb 3 12:01:08 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Thu, 3 Feb 2011 23:01:08 +0300 Subject: [Moscow.pm] =?utf-8?b?WFMg0LrQsNC6INC/0LXRgNC10LjQvNC10L3QvtCy?= =?utf-8?b?0LDRgtGMINC80L7QtNGD0LvRjD8=?= In-Reply-To: References: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> Message-ID: <6E30F515-0A96-4A38-87FA-FF0AE3DD37DA@gmail.com> Все же еще немного пооффтоплю. On Feb 3, 2011, at 12:54 AM, Ivan Petrov wrote: > если сюда вставить ескейпинг, затем добавить возможность прерваться в любом месте этого процесса, поделать что-то другое, затем вернуться и продолжить, то получается что обращаться с хешом как с массивом наиболее удобно. А если считать что в перерыве кто-то может почитать этот хеш и неявно сбить итераторы, то на итераторы и полагаться-то нельзя. что остается? индекс в массиве (который из хеша получен) > Локализуйтесь, с присвоением по значению, и в замыкание ее - никто итератор не собьет, локальная переменная ИМХО физически недоступна вне блока. Ну, вот так например - http://pastebin.com/TEbW5t4m Разве что накладно может получится, если хеши большие, наверное. > ну и хеши всегда в массивы обращались и наоборот > > %h = @array; > @array = %hash; > > %hash = (%hash, %hash2); > > и так далее. > Позвольте уж позанудничать - хеш в массив не обращается, ровно как и наоборот, это просто операция присвоения в списковом (list) контексте. > на уровне перла средств манипуляции хешами как массивами полным полно, а вот на уровне perl api я такой возможности не нашел. а поскольку я в XS новичок, вот и спрашиваю :) Мммм... вот честно, могу припомнить только псевдохеши из верблюдокнижки, но это черная магия. Да и то это не "хешем как массивом". Более того, мне всегда казалось что последовательность выдачи ключей из хеша должна быть случайна. Оно вроде бы сейчас не так, но по идее... From i.petro.77.00 на gmail.com Thu Feb 3 13:46:53 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 3 Feb 2011 21:46:53 +0000 Subject: [Moscow.pm] =?koi8-r?b?WFMgy8HLINDF0sXJzcXOz9fB1Nggzc/E1czYPw==?= In-Reply-To: <6E30F515-0A96-4A38-87FA-FF0AE3DD37DA@gmail.com> References: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> <6E30F515-0A96-4A38-87FA-FF0AE3DD37DA@gmail.com> Message-ID: > Более того, мне всегда казалось что последовательность выдачи ключей > из хеша должна быть случайна. Оно вроде бы сейчас не так, но по идее... она не случайна, она просто упорядочена так как хеш-значение упорядочено. а последовательные проходы по одному хешу дают одинаковые результаты. всегда ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Thu Feb 3 13:54:05 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Fri, 4 Feb 2011 00:54:05 +0300 Subject: [Moscow.pm] =?utf-8?b?WFMg0LrQsNC6INC/0LXRgNC10LjQvNC10L3QvtCy?= =?utf-8?b?0LDRgtGMINC80L7QtNGD0LvRjD8=?= In-Reply-To: References: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> <6E30F515-0A96-4A38-87FA-FF0AE3DD37DA@gmail.com> Message-ID: On Feb 4, 2011, at 12:46 AM, Ivan Petrov wrote: > > Более того, мне всегда казалось что последовательность выдачи ключей > > из хеша должна быть случайна. Оно вроде бы сейчас не так, но по идее... > > она не случайна, она просто упорядочена так как хеш-значение упорядочено. а последовательные проходы по одному хешу дают одинаковые результаты. всегда http://docstore.mik.ua/orelly/perl/prog/ch03_030.htm 3.2.30 each "Entries are returned in an apparently random order." И http://perldoc.perl.org/functions/each.html "Hash entries are returned in an apparently random order. The actual random order is subject to change in future versions of Perl, but it is guaranteed to be in the same order as either the keys or values function would produce on the same (unmodified) hash. Since Perl 5.8.2 the ordering can be different even between different runs of Perl for security reasons (see Algorithmic Complexity Attacks in perlsec)." Так что как бы скорее случайна. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org PS. Кстати, а чего бы Вам просто объект-итератор не сделать для Вашего хеша? Прозрачно и наглядно. ИМХО. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Thu Feb 3 13:58:36 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 3 Feb 2011 21:58:36 +0000 Subject: [Moscow.pm] =?koi8-r?b?WFMgy8HLINDF0sXJzcXOz9fB1Nggzc/E1czYPw==?= In-Reply-To: <6E30F515-0A96-4A38-87FA-FF0AE3DD37DA@gmail.com> References: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> <6E30F515-0A96-4A38-87FA-FF0AE3DD37DA@gmail.com> Message-ID: > Локализуйтесь, с присвоением по значению, и в замыкание ее - никто итератор не собьет, > локальная переменная ИМХО физически недоступна вне блока. присвоение хеша по значению пожалуй по расходам накладным хуже чем проход по хешу по индексам. по памяти во всяком случае :) хотя я в итоге к этому примерно и пришел. только локализую не само содержимое хеша, а массив ссылок на значения и ключи. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Thu Feb 3 14:11:06 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Fri, 4 Feb 2011 01:11:06 +0300 Subject: [Moscow.pm] =?utf-8?b?WFMg0LrQsNC6INC/0LXRgNC10LjQvNC10L3QvtCy?= =?utf-8?b?0LDRgtGMINC80L7QtNGD0LvRjD8=?= In-Reply-To: References: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> <6E30F515-0A96-4A38-87FA-FF0AE3DD37DA@gmail.com> Message-ID: On Feb 4, 2011, at 12:58 AM, Ivan Petrov wrote: > > Локализуйтесь, с присвоением по значению, и в замыкание ее - никто итератор не собьет, > > локальная переменная ИМХО физически недоступна вне блока. > > присвоение хеша по значению пожалуй по расходам накладным хуже чем проход по хешу по индексам. по памяти во всяком случае :) > > хотя я в итоге к этому примерно и пришел. только локализую не само содержимое хеша, а массив ссылок на значения и ключи. > как бы фик знает, мерять надо и делать выбор в зависимости от того, на чем экономим. Я рассуждал о том, что раз Ваше решение к Event-машине привязывается, то можно пожертвовать памятью в угоду скорости. Да и ИМХО память дешевле циклов, ее можно напихать сейчас по самые 64 бита. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From i.petro.77.00 на gmail.com Thu Feb 3 22:51:21 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Fri, 4 Feb 2011 09:51:21 +0300 Subject: [Moscow.pm] =?koi8-r?b?WFMgy8HLINDF0sXJzcXOz9fB1Nggzc/E1czYPw==?= In-Reply-To: References: <5573E18C-081A-427E-A81F-16BC2532A4BC@gmail.com> <6E30F515-0A96-4A38-87FA-FF0AE3DD37DA@gmail.com> Message-ID: > > > Локализуйтесь, с присвоением по значению, и в замыкание ее - никто > итератор не собьет, > > > локальная переменная ИМХО физически недоступна вне блока. > > > > присвоение хеша по значению пожалуй по расходам накладным хуже чем проход > по хешу по индексам. по памяти во всяком случае :) > > > > хотя я в итоге к этому примерно и пришел. только локализую не само > содержимое хеша, а массив ссылок на значения и ключи. > > > как бы фик знает, мерять надо и делать выбор в зависимости от того, на чем > экономим. > > Я рассуждал о том, что раз Ваше решение к Event-машине привязывается, то > можно пожертвовать памятью в угоду скорости. Да и ИМХО память дешевле > циклов, ее можно напихать сейчас по самые 64 бита. > > а вот тут имхо Вы не правы. как раз в EM память и надо в первую очередь экономить даже если ее напихано куча. ибо вся выделенная память приатачивается к одному процессу, а event-машина может обслужить гораздо больше клиентов и если каждый из клиентов потребует +1Мб памяти, то сто клиентов это +100Мб :) одна старушка - рупь ;) кстати я тут как раз сейчас возявкаюсь над вопросом работы с памятью: собрали серверок на EM, использовали несколько сторонних модулей. память где-то "подтекает". если в обычном сервере а-ля apache с утечкой бороться можно просто: взял и ограничил число обработанных соединений на один pre-fork-процесс, то EM так просто не перезапустишь. ща пришли к такому варианту перезапуска: * пишем свой tcp_server (поскольку Марк в AE отказался подобавлять каллбеки): нужно чтобы он мог пуститься с готовым сокетом, а так же "спрашивал разрешения" на accept. * в определенный момент машина перестает делать accept'ы (клиенты копятся в очереди) * как только все соединения обработаны делаем fcntl на сокет чтобы он мог пережить exec * делаем exec на самого себя и запускаем tcp_server с открытым сокетом. по идее клиенты должны "заметить" разве что некоторый простой на периоде установления соединения. как-то так. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From me на ryvasy.net Fri Feb 4 01:23:02 2011 From: me на ryvasy.net (=?UTF-8?B?0JLQsNGB0LjQu9C40Lkg0KDRj9Cx0L7Qsg==?=) Date: Fri, 04 Feb 2011 12:23:02 +0300 Subject: [Moscow.pm] =?utf-8?b?0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQsNC00YA=?= =?utf-8?b?0LXRgdCwIFJTUyDQu9C10L3RgtGL?= Message-ID: <4D4BC576.3040304@ryvasy.net> Всем привет У меня задача: по урлу определять, есть ли на сайте RSS-лента и, если есть, получать ее адрес. Понятно, что можно это сделать, распарсив исходник. Но может быть есть какой-нибудь более элегантный способ, о котором я не догадываюсь? Заранее спасибо! -- Василий Рябов, me на ryvasy.net From andrei.protasovitski на gmail.com Fri Feb 4 01:38:29 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Fri, 4 Feb 2011 10:38:29 +0100 Subject: [Moscow.pm] =?utf-8?b?0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQsNC00YA=?= =?utf-8?b?0LXRgdCwIFJTUyDQu9C10L3RgtGL?= In-Reply-To: <4D4BC576.3040304@ryvasy.net> References: <4D4BC576.3040304@ryvasy.net> Message-ID: Да, есть. Достаточно парсить заголовок исходника (секцию ) на предмет наличия тегов link, описывающий RSS страницы. ;) 4 февраля 2011 г. 10:23 пользователь Василий Рябов написал: > Всем привет > > У меня задача: по урлу определять, есть ли на сайте RSS-лента и, если есть, > получать ее адрес. Понятно, что можно это сделать, распарсив исходник. Но > может быть есть какой-нибудь более элегантный способ, о котором я не > догадываюсь? > > Заранее спасибо! > -- > Василий Рябов, > me на ryvasy.net > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From me на ryvasy.net Fri Feb 4 01:41:47 2011 From: me на ryvasy.net (=?UTF-8?B?0JLQsNGB0LjQu9C40Lkg0KDRj9Cx0L7Qsg==?=) Date: Fri, 04 Feb 2011 12:41:47 +0300 Subject: [Moscow.pm] =?utf-8?b?0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQsNC00YA=?= =?utf-8?b?0LXRgdCwIFJTUyDQu9C10L3RgtGL?= In-Reply-To: References: <4D4BC576.3040304@ryvasy.net> Message-ID: <4D4BC9DB.2050109@ryvasy.net> Я это и подразумевал под "парсингом исходника". Думал, может есть модуль какой, который с RSS работает, ну и среди прочего такое делает. Ну, нет - да и ладно :) On 02/04/2011 12:38 PM, Andrei wrote: > Да, есть. Достаточно парсить заголовок исходника (секцию ) на > предмет наличия тегов link, описывающий RSS страницы. ;) > > 4 февраля 2011 г. 10:23 пользователь Василий Рябов > написал: > > Всем привет > > У меня задача: по урлу определять, есть ли на сайте RSS-лента и, > если есть, получать ее адрес. Понятно, что можно это сделать, > распарсив исходник. Но может быть есть какой-нибудь более элегантный > способ, о котором я не догадываюсь? > > Заранее спасибо! > -- > Василий Рябов, > me на ryvasy.net > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > > > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Василий Рябов, me на ryvasy.net From victor на methodlab.info Fri Feb 4 01:42:44 2011 From: victor на methodlab.info (victor на methodlab.info) Date: Fri, 04 Feb 2011 12:42:44 +0300 Subject: [Moscow.pm] =?koi8-r?b?z9DSxcTFzMXOycUgwcTSxdPBIFJTUyDMxc7U2Q==?= In-Reply-To: <4D4BC576.3040304@ryvasy.net> References: <4D4BC576.3040304@ryvasy.net> Message-ID: <1296812564.2317.0.camel@victor> Обычно такой тег стоит: В Пт., 04/02/2011 в 12:23 +0300, Василий Рябов пишет: > Всем привет > > У меня задача: по урлу определять, есть ли на сайте RSS-лента и, если > есть, получать ее адрес. Понятно, что можно это сделать, распарсив > исходник. Но может быть есть какой-нибудь более элегантный способ, о > котором я не догадываюсь? > > Заранее спасибо! -- С уважением, Виктор Метод Лаб +7 (495) 228-0992 www.methodlab.ru From gnatyna на ya.ru Fri Feb 4 01:44:12 2011 From: gnatyna на ya.ru (=?koi8-r?b?587B1NnOwSDhzMXL08HOxNI=?=) Date: Fri, 4 Feb 2011 12:44:12 +0300 Subject: [Moscow.pm] =?koi8-r?b?z9DSxcTFzMXOycUgwcTSxdPBIFJTUyDMxc7U2Q==?= In-Reply-To: <4D4BC9DB.2050109@ryvasy.net> References: <4D4BC576.3040304@ryvasy.net> <4D4BC9DB.2050109@ryvasy.net> Message-ID: <201102041244.12974.gnatyna@ya.ru> Ну модули видимо так и делают, HTML::RSSAutodiscovery может оно? -- С уважением, Гнатына Александр. В сообщении от 4 февраля 2011 12:41:47 автор Василий Рябов написал: > Я это и подразумевал под "парсингом исходника". > Думал, может есть модуль какой, который с RSS работает, ну и среди > прочего такое делает. > Ну, нет - да и ладно :) > > On 02/04/2011 12:38 PM, Andrei wrote: > > Да, есть. Достаточно парсить заголовок исходника (секцию ) на > > предмет наличия тегов link, описывающий RSS страницы. ;) > > > > 4 февраля 2011 г. 10:23 пользователь Василий Рябов > > > > написал: > > Всем привет > > > > У меня задача: по урлу определять, есть ли на сайте RSS-лента и, > > если есть, получать ее адрес. Понятно, что можно это сделать, > > распарсив исходник. Но может быть есть какой-нибудь более элегантный > > способ, о котором я не догадываюсь? > > > > Заранее спасибо! > > -- > > Василий Рябов, > > me на ryvasy.net > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > -- > > Andrei Protasovitski > > < andrei[dot]protasovitski[at]gmail[dot]com > > > Diemen, Netherlands > > > > > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org From andy на shitov.ru Fri Feb 4 01:45:00 2011 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 4 Feb 2011 10:45:00 +0100 Subject: [Moscow.pm] =?utf-8?b?0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQsNC00YA=?= =?utf-8?b?0LXRgdCwIFJTUyDQu9C10L3RgtGL?= In-Reply-To: <201102041244.12974.gnatyna@ya.ru> References: <4D4BC576.3040304@ryvasy.net> <4D4BC9DB.2050109@ryvasy.net> <201102041244.12974.gnatyna@ya.ru> Message-ID: my @feeds = XML::Feed->find_feeds('http://example.com/'); 2011/2/4 Гнатына Александр : > Ну модули видимо так и делают, HTML::RSSAutodiscovery  может оно? > -- > С уважением, Гнатына Александр. > В сообщении от 4 февраля 2011 12:41:47 автор Василий Рябов написал: >> Я это и подразумевал под "парсингом исходника". >> Думал, может есть модуль какой, который с RSS работает, ну и среди >> прочего такое делает. >> Ну, нет - да и ладно :) >> >> On 02/04/2011 12:38 PM, Andrei wrote: >> > Да, есть. Достаточно парсить заголовок исходника (секцию ) на >> > предмет наличия тегов link, описывающий RSS страницы. ;) >> > >> > 4 февраля 2011 г. 10:23 пользователь Василий Рябов > > >> > > написал: >> >     Всем привет >> > >> >     У меня задача: по урлу определять, есть ли на сайте RSS-лента и, >> >     если есть, получать ее адрес. Понятно, что можно это сделать, >> >     распарсив исходник. Но может быть есть какой-нибудь более элегантный >> >     способ, о котором я не догадываюсь? >> > >> >     Заранее спасибо! >> >     -- >> >     Василий Рябов, >> >     me на ryvasy.net >> >     -- >> >     Moscow.pm mailing list >> >     moscow-pm на pm.org | http://moscow.pm.org >> > >> > -- >> > Andrei Protasovitski >> > < andrei[dot]protasovitski[at]gmail[dot]com > >> > Diemen, Netherlands >> > >> > >> > >> > -- >> > Moscow.pm mailing list >> > moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From me на ryvasy.net Fri Feb 4 01:58:05 2011 From: me на ryvasy.net (=?KOI8-R?Q?=F7=C1=D3=C9=CC=C9=CA_=F2=D1=C2=CF=D7?=) Date: Fri, 04 Feb 2011 12:58:05 +0300 Subject: [Moscow.pm] =?koi8-r?b?z9DSxcTFzMXOycUgwcTSxdPBIFJTUyDMxc7U2Q==?= In-Reply-To: References: <4D4BC576.3040304@ryvasy.net> <4D4BC9DB.2050109@ryvasy.net> <201102041244.12974.gnatyna@ya.ru> Message-ID: <4D4BCDAD.3010006@ryvasy.net> Во, XML::Feed - то, что нужно. Спасибо! On 02/04/2011 12:45 PM, Andrew Shitov wrote: > my @feeds = XML::Feed->find_feeds('http://example.com/'); > > > > 2011/2/4 Гнатына Александр: >> Ну модули видимо так и делают, HTML::RSSAutodiscovery может оно? >> -- >> С уважением, Гнатына Александр. >> В сообщении от 4 февраля 2011 12:41:47 автор Василий Рябов написал: >>> Я это и подразумевал под "парсингом исходника". >>> Думал, может есть модуль какой, который с RSS работает, ну и среди >>> прочего такое делает. >>> Ну, нет - да и ладно :) >>> >>> On 02/04/2011 12:38 PM, Andrei wrote: >>>> Да, есть. Достаточно парсить заголовок исходника (секцию) на >>>> предмет наличия тегов link, описывающий RSS страницы. ;) >>>> >>>> 4 февраля 2011 г. 10:23 пользователь Василий Рябов>>> >>>> > написал: >>>> Всем привет >>>> >>>> У меня задача: по урлу определять, есть ли на сайте RSS-лента и, >>>> если есть, получать ее адрес. Понятно, что можно это сделать, >>>> распарсив исходник. Но может быть есть какой-нибудь более элегантный >>>> способ, о котором я не догадываюсь? >>>> >>>> Заранее спасибо! >>>> -- >>>> Василий Рябов, >>>> me на ryvasy.net >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | http://moscow.pm.org >>>> >>>> -- >>>> Andrei Protasovitski >>>> < andrei[dot]protasovitski[at]gmail[dot]com> >>>> Diemen, Netherlands >>>> >>>> >>>> >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | http://moscow.pm.org >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > -- Василий Рябов, me на ryvasy.net From dsimonov на gmail.com Fri Feb 4 02:07:22 2011 From: dsimonov на gmail.com (Dmitry Simonov) Date: Fri, 4 Feb 2011 13:07:22 +0300 Subject: [Moscow.pm] =?utf-8?b?0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQsNC00YA=?= =?utf-8?b?0LXRgdCwIFJTUyDQu9C10L3RgtGL?= In-Reply-To: <4D4BCDAD.3010006@ryvasy.net> References: <4D4BC576.3040304@ryvasy.net> <4D4BC9DB.2050109@ryvasy.net> <201102041244.12974.gnatyna@ya.ru> <4D4BCDAD.3010006@ryvasy.net> Message-ID: Вообще XML::Feed делает вот так: sub find_feeds { my $class = shift; my($uri) = @_; my @feeds = Feed::Find->find($uri) or return $class->error(Feed::Find->errstr); @feeds; } Идём в Feed::Find и видим: use HTML::Parser; Скажу честно. Лучше напиши свои регэкспы, - подтягивать HTML::Parser имеет смысл если только юзаешь его по полной программе и во все дырки. Тебе нужно переписать на более простое использование sub _find_links { ... } Собственно и всё. --- С искр. ув. Д.Симонов 2011/2/4 Василий Рябов : > Во, XML::Feed - то, что нужно. Спасибо! > > On 02/04/2011 12:45 PM, Andrew Shitov wrote: >> >> my @feeds = XML::Feed->find_feeds('http://example.com/'); >> >> >> >> 2011/2/4 Гнатына Александр: >>> >>> Ну модули видимо так и делают, HTML::RSSAutodiscovery  может оно? >>> -- >>> С уважением, Гнатына Александр. >>> В сообщении от 4 февраля 2011 12:41:47 автор Василий Рябов написал: >>>> >>>> Я это и подразумевал под "парсингом исходника". >>>> Думал, может есть модуль какой, который с RSS работает, ну и среди >>>> прочего такое делает. >>>> Ну, нет - да и ладно :) >>>> >>>> On 02/04/2011 12:38 PM, Andrei wrote: >>>>> >>>>> Да, есть. Достаточно парсить заголовок исходника (секцию) на >>>>> предмет наличия тегов link, описывающий RSS страницы. ;) >>>>> >>>>> 4 февраля 2011 г. 10:23 пользователь Василий Рябов>>>> >>>>> >  написал: >>>>>     Всем привет >>>>> >>>>>     У меня задача: по урлу определять, есть ли на сайте RSS-лента и, >>>>>     если есть, получать ее адрес. Понятно, что можно это сделать, >>>>>     распарсив исходник. Но может быть есть какой-нибудь более >>>>> элегантный >>>>>     способ, о котором я не догадываюсь? >>>>> >>>>>     Заранее спасибо! >>>>>     -- >>>>>     Василий Рябов, >>>>>     me на ryvasy.net >>>>>     -- >>>>>     Moscow.pm mailing list >>>>>     moscow-pm на pm.org  | http://moscow.pm.org >>>>> >>>>> -- >>>>> Andrei Protasovitski >>>>> <  andrei[dot]protasovitski[at]gmail[dot]com> >>>>> Diemen, Netherlands >>>>> >>>>> >>>>> >>>>> -- >>>>> Moscow.pm mailing list >>>>> moscow-pm на pm.org | http://moscow.pm.org >>> >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >> >> >> > > -- > Василий Рябов, > me на ryvasy.net > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From andrey на kostenko.name Fri Feb 4 02:19:31 2011 From: andrey на kostenko.name (Andrii Kostenko) Date: Fri, 4 Feb 2011 13:19:31 +0300 Subject: [Moscow.pm] =?utf-8?b?0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQsNC00YA=?= =?utf-8?b?0LXRgdCwIFJTUyDQu9C10L3RgtGL?= In-Reply-To: <4D4BC576.3040304@ryvasy.net> References: <4D4BC576.3040304@ryvasy.net> Message-ID: WWW::Mechanize::Meta On Feb 4, 2011, at 12:23 PM, Василий Рябов wrote: > Всем привет > > У меня задача: по урлу определять, есть ли на сайте RSS-лента и, если есть, получать ее адрес. Понятно, что можно это сделать, распарсив исходник. Но может быть есть какой-нибудь более элегантный способ, о котором я не догадываюсь? > > Заранее спасибо! > -- > Василий Рябов, > me на ryvasy.net > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From andy на shitov.ru Fri Feb 4 02:22:43 2011 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 4 Feb 2011 11:22:43 +0100 Subject: [Moscow.pm] =?utf-8?b?0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQsNC00YA=?= =?utf-8?b?0LXRgdCwIFJTUyDQu9C10L3RgtGL?= In-Reply-To: References: <4D4BC576.3040304@ryvasy.net> <4D4BC9DB.2050109@ryvasy.net> <201102041244.12974.gnatyna@ya.ru> <4D4BCDAD.3010006@ryvasy.net> Message-ID: 2011/2/4 Dmitry Simonov : > Скажу честно. Лучше напиши свои регэкспы, А потом и свой парсер RSS? :-) -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From dsimonov на gmail.com Fri Feb 4 02:53:10 2011 From: dsimonov на gmail.com (Dmitry Simonov) Date: Fri, 4 Feb 2011 13:53:10 +0300 Subject: [Moscow.pm] =?utf-8?b?0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQsNC00YA=?= =?utf-8?b?0LXRgdCwIFJTUyDQu9C10L3RgtGL?= In-Reply-To: References: <4D4BC576.3040304@ryvasy.net> <4D4BC9DB.2050109@ryvasy.net> <201102041244.12974.gnatyna@ya.ru> <4D4BCDAD.3010006@ryvasy.net> Message-ID: Не передёргивай :) Парсер XML-потоков - это отдельный поток задач, требующий готового решения. Распарсить же html-ку на поиск нескольких ссылок - это как раз то самое, для чего pure-перл подходит лучше всего. Я занимался задачей полноценного вынимания ссылок из большого объёма html-документов (русскоязычный сегмент) - до нескольких миллионов страниц в сутки как раз с использование HTML::Parser-а, так что знаю о чём говорю. Это ужас-ужас просто. Когда смотришь на результаты того, что попадает под парсинг, - берёт оторопь. --- С искр. ув. Д.Симонов 2011/2/4 Andrew Shitov : > 2011/2/4 Dmitry Simonov : >> Скажу честно. Лучше напиши свои регэкспы, > > А потом и свой парсер RSS? :-) > > -- > Andrew Shitov > ______________________________________________________________________ > andy на shitov.ru | http://shitov.ru > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From dsimonov на gmail.com Fri Feb 4 04:00:07 2011 From: dsimonov на gmail.com (Dmitry Simonov) Date: Fri, 4 Feb 2011 15:00:07 +0300 Subject: [Moscow.pm] mongodb & other non-sql dbs Message-ID: Привет! На днях увидел сравнительную характеристику no-sql баз с указанием наиболее удобных сфер применения. CouchDB (Erlang) -------------- Удобнее использовать для накопления и нечастого изменения данных с заранее определёнными выборками (predefined queries), когда версифицирование данных имеет очень высокое значение. Например CRM и CMS. Масштабированию способствует встроенная возможность репликации по схеме мастер-мастер. Redis (C/C++) -------------- Удобнее использовать для хранения постоянно и часто изменяемых данных с небольшим суммарным объёмом (до размером оперативной памяти). Например биржевые котировки, аналитика, сбор данных и коммуникации в режиме реального времени. MongoDB (C++) -------------- Удобнее использовать для большого объёмы динамических запросов, для использования индексов, а не map/reduce функций. Если требуется хорошая производительность на больших объёма. Если вы хотите CouchDB, но изменения данных слишком много и они перестают помешаться на дисках. Например все задачи, которые бы вы хотели сделать с использование MySQL или PostgreSQL, будь у них динамически определяемые колонки :) Cassandra (Java) -------------- Лучше всего использовать: Когда вы пишете больше, чем вы читали (лесозаготовки). Если все компоненты системы должны быть в Java. ("Никто не увольняют по выбору материала Apache.") Удобнее использовать, когда вы больше пишете, чем читаете (логирование). Ну и разумеется когда все используемые компоненты должны быть на Java. ("No one gets fired for choosing Apache's stuff.") Например, банковский и финансовый сектор (необязательно для финансовых транзакций, так как эти сектора раскинули свои щупальца вообще всюду). Cassandra пишет быстрее, чем читает, что обеспечивает естесственную нишу real-time обработки данных. Riak (Erlang & C, чуть-чуть Javascript) -------------- Удобнее использовать если вы хотите что-то типа Cassandra, но без наворотов. Если требуется простая масштабируемость, доступность и отказоустойчивость для одного сервиса, но вы готовы заплатить и за мульти-сервисную репликацию. Например для точек продаж, а также контроля заводской деятельности, где даже секунды простоя являются фейлом. HBase (Java) -------------- Удобнее использовать, если вы любите BigTable :) А также когда требуется случайное чтение-запись в режиме реального времени для доступа к вашему BigData. Например Facebook Messaging Database (другие большие примеры ожидаются...) Оригинал: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis Там же есть подробности из чего состоят базы. --- С искр. ув. Д.Симонов From inthrax на gmail.com Fri Feb 4 04:20:56 2011 From: inthrax на gmail.com (Mons Anderson) Date: Fri, 4 Feb 2011 15:20:56 +0300 Subject: [Moscow.pm] =?windows-1251?b?WFMg6uDqIO/l8OXo7OXt7uLg8vwg7O7k8+v8?= =?windows-1251?q?=3F?= In-Reply-To: References: Message-ID: <201102041520.56419.inthrax@gmail.com> On Friday 04 February 2011 09:51:21 Ivan Petrov wrote: > ща пришли к такому варианту перезапуска: >  * пишем свой tcp_server (поскольку Марк в AE отказался подобавлять > каллбеки): нужно чтобы он мог пуститься с готовым сокетом, а так же > "спрашивал разрешения" на accept. > * в определенный момент машина перестает > делать accept'ы (клиенты копятся в очереди) > * как только все соединения > обработаны делаем fcntl на сокет чтобы он мог пережить exec * делаем exec > на самого себя и запускаем tcp_server с открытым сокетом. > > по идее клиенты должны "заметить" разве что некоторый простой на периоде > установления соединения. Посмотрите на реализацию AnyEvent::HTTP::Server (https://github.com/Mons/AnyEvent-HTTP-Server) там у меня как-раз и реализован запуск с готовым сокетом а вот тут: https://github.com/Mons/Daemond/blob/master/lib/test-shared.pl реализован пример AE tcp сервера с префорком т.е. запускаем нужное кол-во процессов (по кол-ву ядер) при достижении определенного размера по vsize (see Proc::Vsize ;)) перестаем в чайлде делать accept, завершаем обработку текущих соединений и выходим. мастер процесс перезапускает чайлда. И еще было-бы интересно все-таки взглнуть на вашу реализацию. -- Vladimir Perepelitsa aka Mons Anderson / #99779956 From ali на ali.org.ua Tue Feb 8 07:04:45 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Tue, 08 Feb 2011 17:04:45 +0200 Subject: [Moscow.pm] unpack H Message-ID: <4D515B8D.3060306@ali.org.ua> Привет, внезапно вопрос: всегда ли unpack('H*', ...) возвращает lower-case строку? В случае sprintf мы можем заказать шестнадцатеричные цифры как в upper-case, та и в lower-case (ключиками %X и %x), а вот unpack, похоже, всегда возвращает lower-case. Но нигде в документации не могу найти на это внятного указания. Даже не могу найти, является ли регистр символов в результате неопределенным, не говоря уже о том, чтобы lower-case был прибит гвоздями. Нагуглить тоже ничего не удалось. Кто-нибудь знает правду? ;) -- Олег Алистратов From akzhan.abdulin на gmail.com Tue Feb 8 07:31:23 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Tue, 8 Feb 2011 18:31:23 +0300 Subject: [Moscow.pm] unpack H In-Reply-To: <4D515B8D.3060306@ali.org.ua> References: <4D515B8D.3060306@ali.org.ua> Message-ID: Поскольку это не документировано, а реализаций ruby много, то лучше считать регистр неопределённым. 8 февраля 2011 г. 18:04 пользователь Oleg Alistratov написал: > Привет, > > внезапно вопрос: всегда ли unpack('H*', ...) возвращает > lower-case строку? > > В случае sprintf мы можем заказать шестнадцатеричные цифры > как в upper-case, та и в lower-case (ключиками %X и %x), > а вот unpack, похоже, всегда возвращает lower-case. > > Но нигде в документации не могу найти на это внятного указания. > Даже не могу найти, является ли регистр символов в результате > неопределенным, не говоря уже о том, чтобы lower-case был прибит > гвоздями. > > Нагуглить тоже ничего не удалось. Кто-нибудь знает правду? ;) > > -- > Олег Алистратов > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Tue Feb 8 07:45:01 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Tue, 08 Feb 2011 17:45:01 +0200 Subject: [Moscow.pm] unpack H In-Reply-To: References: <4D515B8D.3060306@ali.org.ua> Message-ID: <4D5164FD.3050708@ali.org.ua> On 08.02.2011 17:31, Akzhan Abdulin wrote: > Поскольку это не документировано, а реализаций ruby много, то лучше > считать регистр неопределённым. Руби ? он такой, да :) Глянул по реализации (perlvars.h, pp_pack.c) ? да, там lower-case. Для себя решил на lc() сэкономить, а на случай резких изменений покрыть такой случай тестами. -- Олег Алистратов From worldmind на mail.ru Thu Feb 10 01:01:49 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Thu, 10 Feb 2011 12:01:49 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= Message-ID: <1297328509.3521.29.camel@host> Всем привет, решил тут покрасивше сделать обработку исключений, бегло глянул - полно модулей которые делают джаваподобный синтаксис, но честно говоря нет желания глубоко в них вникать, предполагаю что у всех у них могут быть проблемы как например у Error.pm - появляются замыкания там где их никто не ждёт http://axkit.org/docs/presentations/tpc2001/exceptions.axp/a.pdf понятное дело что он работает в куче проектов, справляются как-то, но нет желания выискивать проблемы возникшие из-за подобных вещей (хотя Try::Tiny возможно неплохой вариант - юзал кто?). Поэтому решил использовать чисто перловый синтаксис и нарисовал такую конструкцию: use strict; use feature ':5.10'; use Carp; use ExceptionTest; my $obj = new ExceptionTest(); eval { $obj->function1(); 1; } or do { given( $@ ) { when ( $_->isa('Exception::XML') ) { say 'XML error'; } when ( $_->isa('Exception::HTTP') ) { say 'HTTP error'; } default { croak 'Unknown error: '.$_ } }} в методе function1 исключения генерятся так (объекты исключений самописные для примера) die new Exception::HTTP( code => 404, message => 'Not Found' ); В многопоточной среде видимо нужно ещё в один блок заворачивать и локализовать в нём $@, но тогда совсем уродливо будет С точки зрения синтаксиса не идеально, к сожалению не работает без do т.е. хотелось бы иметь вместо } or do { given( $@ ) } or given( $@ ) тогда синтаксил был бы чище, но не получается, получаю синтаксическую ошибку - не понимаю почему, может кто знает? From worldmind на mail.ru Thu Feb 10 01:09:18 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Thu, 10 Feb 2011 12:09:18 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <1297328509.3521.29.camel@host> References: <1297328509.3521.29.camel@host> Message-ID: <1297328958.3521.30.camel@host> On Чт., 2011-02-10 at 12:01 +0300, Alexey Shrub wrote: > В многопоточной среде видимо нужно ещё в один блок заворачивать и > локализовать в нём $@, но тогда совсем уродливо будет хотя совсем не уверен что это нужно From meettya на gmail.com Thu Feb 10 01:17:14 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Thu, 10 Feb 2011 12:17:14 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7QsdGA0LDQsdC+0YLQutCwINC40YHQutC70Y4=?= =?utf-8?b?0YfQtdC90LjQuQ==?= In-Reply-To: <1297328509.3521.29.camel@host> References: <1297328509.3521.29.camel@host> Message-ID: <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> Я вот собираюсь смотреть в сторону AOP для таких вещей, как раз чтобы не закидывать код кучей эвалов. Мухи отдельно, котлеты отдельно. Явцы до того же дошли, кстати. Докладец был на Питерской конференции, запись есть в онлайне и куча инфы на IBM-овском сайте про AOP как парадигму и принципы использования. On Feb 10, 2011, at 12:01 PM, Alexey Shrub wrote: > Всем привет, > решил тут покрасивше сделать обработку исключений, бегло глянул - полно > модулей которые делают джаваподобный синтаксис, но честно говоря нет > желания глубоко в них вникать, предполагаю что у всех у них могут быть > проблемы как например у Error.pm - появляются замыкания там где их никто > не ждёт > http://axkit.org/docs/presentations/tpc2001/exceptions.axp/a.pdf > понятное дело что он работает в куче проектов, справляются как-то, но > нет желания выискивать проблемы возникшие из-за подобных вещей (хотя > Try::Tiny возможно неплохой вариант - юзал кто?). > Поэтому решил использовать чисто перловый синтаксис и нарисовал такую > конструкцию: > > use strict; > use feature ':5.10'; > use Carp; > use ExceptionTest; > > > my $obj = new ExceptionTest(); > > eval { > $obj->function1(); > 1; > } or do { given( $@ ) { > when ( $_->isa('Exception::XML') ) { > say 'XML error'; > } > when ( $_->isa('Exception::HTTP') ) { > say 'HTTP error'; > } > default { croak 'Unknown error: '.$_ } > }} > > в методе function1 исключения генерятся так (объекты исключений > самописные для примера) > die new Exception::HTTP( code => 404, message => 'Not Found' ); > В многопоточной среде видимо нужно ещё в один блок заворачивать и > локализовать в нём $@, но тогда совсем уродливо будет > > С точки зрения синтаксиса не идеально, к сожалению не работает без do > т.е. хотелось бы иметь вместо > } or do { given( $@ ) > } or given( $@ ) > > тогда синтаксил был бы чище, но не получается, получаю синтаксическую > ошибку - не понимаю почему, может кто знает? > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From worldmind на mail.ru Thu Feb 10 03:27:59 2011 From: worldmind на mail.ru (Alexey Shrub) Date: Thu, 10 Feb 2011 14:27:59 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> Message-ID: <1297337279.3521.31.camel@host> On Чт., 2011-02-10 at 12:17 +0300, Dmitry Karpich wrote: > Я вот собираюсь смотреть в сторону AOP для таких вещей, как раз чтобы не закидывать код кучей эвалов. > Мухи отдельно, котлеты отдельно. > Явцы до того же дошли, кстати. > Докладец был на Питерской конференции, запись есть в онлайне и куча инфы на IBM-овском сайте про AOP как парадигму и принципы использования. Идея то отличная, а кто-нибудь реально пользовал этот Aspect.pm ? From ali на ali.org.ua Thu Feb 10 04:15:56 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 14:15:56 +0200 Subject: [Moscow.pm] =?utf-8?b?0J7QsdGA0LDQsdC+0YLQutCwINC40YHQutC70Y4=?= =?utf-8?b?0YfQtdC90LjQuQ==?= In-Reply-To: <1297337279.3521.31.camel@host> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> Message-ID: <4D53D6FC.2070401@ali.org.ua> > хотя Try::Tiny возможно неплохой вариант - юзал кто? Я его применяю давно. Недавно с bacek'ом про него говорили: http://alienator.ya.ru/replies.xml?item_no=3823 Замечу, что применить атрибуты для прояснения синтаксиса не удалось ? не годятся они в таком виде. >> Я вот собираюсь смотреть в сторону AOP для таких вещей, как раз чтобы не закидывать код кучей эвалов. >> Мухи отдельно, котлеты отдельно. >> Явцы до того же дошли, кстати. >> Докладец был на Питерской конференции, запись есть в онлайне и куча инфы на IBM-овском сайте про AOP как парадигму и принципы использования. > > Идея то отличная, а кто-нибудь реально пользовал этот Aspect.pm ? Я его использовал, но не потому, что надо было, а чтобы посмотреть, что оно такое. Впечатление сложилось такое, что оно хорошо годится для рефакторинга крупных проектов. Может быть также, стоит смотреть на него, приступая к новому проекту. Но вот так, чтобы в хорошей, годной системе был повод взять и решить ?а теперь будем писать аспектно? ? то вряд ли. -- Олег Алистратов From i.petro.77.00 на gmail.com Thu Feb 10 04:52:14 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 10 Feb 2011 15:52:14 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <4D53D6FC.2070401@ali.org.ua> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> Message-ID: > Впечатление сложилось такое, что оно хорошо годится для рефакторинга > крупных проектов. Может быть также, стоит смотреть на него, приступая > к новому проекту. > > Но вот так, чтобы в хорошей, годной системе был повод взять и решить > <<а теперь будем писать аспектно>> -- то вряд ли. > если посмотреть во внутЫрь кучи сипановских модулей, то в чуть более чем половине из них можно увидеть нечто вроде if($DEBUG_VARIABLE) { print "we are here!\n" } юзая Aspect можно смело вынести этот мусор из постоянного рантайма на чисто тестовую площадку ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Thu Feb 10 04:57:53 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 14:57:53 +0200 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> Message-ID: <4D53E0D1.500@ali.org.ua> On 10.02.2011 14:52, Ivan Petrov wrote: > if($DEBUG_VARIABLE) { > print "we are here!\n" > } > > юзая Aspect можно смело вынести этот мусор из постоянного рантайма на > чисто тестовую площадку А для этого я бы зело рекомендовал use Filter -- Али From i.petro.77.00 на gmail.com Thu Feb 10 05:00:40 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 10 Feb 2011 16:00:40 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <4D53E0D1.500@ali.org.ua> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> Message-ID: 10 февраля 2011 г. 15:57 пользователь Oleg Alistratov написал: > > > On 10.02.2011 14:52, Ivan Petrov wrote: > >> if($DEBUG_VARIABLE) { >> print "we are here!\n" >> } >> >> юзая Aspect можно смело вынести этот мусор из постоянного рантайма на >> чисто тестовую площадку >> > > А для этого я бы зело рекомендовал use Filter > > Filter это как раз не "из рантайма выкинуть" а наоборот "в рантайме оставить" ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Thu Feb 10 05:03:37 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 15:03:37 +0200 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> Message-ID: <4D53E229.2050405@ali.org.ua> On 10.02.2011 15:00, Ivan Petrov wrote: > Filter это как раз не "из рантайма выкинуть" а наоборот "в рантайме > оставить" Чего? Это чтоб даже из компайл-тайма выкинуть. -- Али From i.petro.77.00 на gmail.com Thu Feb 10 05:17:01 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 10 Feb 2011 16:17:01 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <4D53E229.2050405@ali.org.ua> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> <4D53E229.2050405@ali.org.ua> Message-ID: 10 февраля 2011 г. 16:03 пользователь Oleg Alistratov написал: > > > On 10.02.2011 15:00, Ivan Petrov wrote: > > Filter это как раз не "из рантайма выкинуть" а наоборот "в рантайме >> оставить" >> > > > Чего? Это чтоб даже из компайл-тайма выкинуть. > > "выкинуть" это в смысле заменить простой иф по константе на обработку текста программы регулярником. тут еще оченно спорный вопрос выкидывание ли это лишней работы из рантайма или добавление ее ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Thu Feb 10 05:21:25 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 15:21:25 +0200 Subject: [Moscow.pm] =?utf-8?b?0J7QsdGA0LDQsdC+0YLQutCwINC40YHQutC70Y4=?= =?utf-8?b?0YfQtdC90LjQuQ==?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> <4D53E229.2050405@ali.org.ua> Message-ID: <4D53E655.10109@ali.org.ua> On 10.02.2011 15:17, Ivan Petrov wrote: > "выкинуть" это в смысле заменить простой иф по константе на обработку > текста программы регулярником. тут еще оченно спорный вопрос выкидывание > ли это лишней работы из рантайма или добавление ее Ну да. Если это разовый скриптец, то скорее добавление. Если какой fastcgi хандлер ? то выкидывание. Брать и мерять. В любом случае, когда вопросы эффективности if ($DEBUG) ... начинают волновать, то значит, уже со спидометром к коду подобрались :) -- Али From meettya на gmail.com Thu Feb 10 05:28:34 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Thu, 10 Feb 2011 16:28:34 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7QsdGA0LDQsdC+0YLQutCwINC40YHQutC70Y4=?= =?utf-8?b?0YfQtdC90LjQuQ==?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> <4D53E229.2050405@ali.org.ua> Message-ID: On Feb 10, 2011, at 4:17 PM, Ivan Petrov wrote: > > > 10 февраля 2011 г. 16:03 пользователь Oleg Alistratov написал: > > > On 10.02.2011 15:00, Ivan Petrov wrote: > > Filter это как раз не "из рантайма выкинуть" а наоборот "в рантайме > оставить" > > > Чего? Это чтоб даже из компайл-тайма выкинуть. > > > "выкинуть" это в смысле заменить простой иф по константе на обработку текста программы регулярником. тут еще оченно спорный вопрос выкидывание ли это лишней работы из рантайма или добавление ее Ну тогда ifdef, он как раз с другой стороны ноги отращивает. Правда не уверен, что на сложных вещах будет работать. Но модули тестировать вроде бы можно. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Thu Feb 10 05:40:00 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 10 Feb 2011 16:40:00 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <4D53E655.10109@ali.org.ua> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> <4D53E229.2050405@ali.org.ua> <4D53E655.10109@ali.org.ua> Message-ID: 10 февраля 2011 г. 16:21 пользователь Oleg Alistratov написал: > > > On 10.02.2011 15:17, Ivan Petrov wrote: > > "выкинуть" это в смысле заменить простой иф по константе на обработку >> текста программы регулярником. тут еще оченно спорный вопрос выкидывание >> ли это лишней работы из рантайма или добавление ее >> > > Ну да. Если это разовый скриптец, то скорее добавление. > Если какой fastcgi хандлер -- то выкидывание. > > Брать и мерять. В любом случае, когда вопросы эффективности > > if ($DEBUG) ... > > начинают волновать, то значит, уже со спидометром к коду подобрались :) > > > кроме спидометра (подход с Aspect всяко выиграет ибо отсутствующий код работает всегда быстрее имеющегося) тут еще есть такой аспект (сорри за каламбур): код мусором не загромождается. то есть можно отладочные вещи держать в модуле/скрипте который используется только во время отладки ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Thu Feb 10 05:58:56 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 15:58:56 +0200 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> <4D53E229.2050405@ali.org.ua> <4D53E655.10109@ali.org.ua> Message-ID: <4D53EF20.1040304@ali.org.ua> On 10.02.2011 15:40, Ivan Petrov wrote: > кроме спидометра (подход с Aspect всяко выиграет ибо отсутствующий код > работает всегда быстрее имеющегося) Да где ж он тут отсутствующий? Сплошные врапперы, на каждый call полдесятка сравнений (и по регэкспу, если надо, и с вызовом кастомных функций). > тут еще есть такой аспект (сорри за > каламбур): код мусором не загромождается. то есть можно отладочные вещи > держать в модуле/скрипте который используется только во время отладки Это хороший аргумент, точно. -- Али From alexeydemidov на gmail.com Thu Feb 10 06:04:06 2011 From: alexeydemidov на gmail.com (Alex L. Demidov) Date: Thu, 10 Feb 2011 17:04:06 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> Message-ID: <20110210140405.GA7827@tahiti.vinf.ru> On Thu, Feb 10, 2011 at 03:52:14PM +0300, Ivan Petrov wrote: > > Впечатление сложилось такое, что оно хорошо годится для рефакторинга > > крупных проектов. Может быть также, стоит смотреть на него, приступая > > к новому проекту. > > > > Но вот так, чтобы в хорошей, годной системе был повод взять и решить > > <<а теперь будем писать аспектно>> -- то вряд ли. > > > > если посмотреть во внутЫрь кучи сипановских модулей, то в чуть более чем > половине из них можно увидеть нечто вроде > > if($DEBUG_VARIABLE) { > print "we are here!\n" > } > > юзая Aspect можно смело вынести этот мусор из постоянного рантайма на чисто > тестовую площадку Мне для выдачи отладочной информации приглянулся http://search.cpan.org/dist/Smart-Comments/ -- Alex L. Demidov (ALD9-RIPE). http://alexeydemidov.com/ Freelance Consulting. From ali на ali.org.ua Thu Feb 10 06:12:37 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 16:12:37 +0200 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <20110210140405.GA7827@tahiti.vinf.ru> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> Message-ID: <4D53F255.2000507@ali.org.ua> On 10.02.2011 16:04, Alex L. Demidov wrote: > Мне для выдачи отладочной информации приглянулся > http://search.cpan.org/dist/Smart-Comments/ Это все use Filter. С прогрессбарам круто придумано :) -- Али From evdokimov.denis на gmail.com Thu Feb 10 06:24:59 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Thu, 10 Feb 2011 17:24:59 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <4D53F255.2000507@ali.org.ua> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> Message-ID: > В любом случае, когда вопросы эффективности > > if ($DEBUG) ... > > начинают волновать, то значит, уже со спидометром к коду подобрались :) Если подобраться со спидометром, то можно заметить, что на эти десятки миллионов лишних проверок if ($DEBUG) тратятся миллисекунды(на все) From i.petro.77.00 на gmail.com Thu Feb 10 06:29:39 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 10 Feb 2011 17:29:39 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <4D53EF20.1040304@ali.org.ua> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> <4D53E229.2050405@ali.org.ua> <4D53E655.10109@ali.org.ua> <4D53EF20.1040304@ali.org.ua> Message-ID: > On 10.02.2011 15:40, Ivan Petrov wrote: > > кроме спидометра (подход с Aspect всяко выиграет ибо отсутствующий код >> работает всегда быстрее имеющегося) >> > > Да где ж он тут отсутствующий? > в модуле. > Сплошные врапперы, на каждый call полдесятка сравнений (и по регэкспу, > если надо, и с вызовом кастомных функций). > > а это присутствует только в тесте. есть разница между "тест дольше компилится" и "продакшен дольше компилится" не правда ли? > > тут еще есть такой аспект (сорри за >> каламбур): код мусором не загромождается. то есть можно отладочные вещи >> держать в модуле/скрипте который используется только во время отладки >> > > Это хороший аргумент, точно. > > :) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Thu Feb 10 06:30:49 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 10 Feb 2011 17:30:49 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> Message-ID: > Если подобраться со спидометром, то можно заметить, что на эти десятки > миллионов лишних проверок if ($DEBUG) > тратятся миллисекунды(на все) > > правило старого туриста "если ты перед походом не считал граммы, то во время похода ты будешь *тащить* на своих плечах лишние килограммы" работает практически везде ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Thu Feb 10 06:35:55 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 16:35:55 +0200 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <4D53E0D1.500@ali.org.ua> <4D53E229.2050405@ali.org.ua> <4D53E655.10109@ali.org.ua> <4D53EF20.1040304@ali.org.ua> Message-ID: <4D53F7CB.7090003@ali.org.ua> On 10.02.2011 16:29, Ivan Petrov wrote: > есть разница между "тест дольше компилится" и "продакшен дольше > компилится" не правда ли? О, теперь до мну, тупого, дошло. Да, такое применение будет самое смачное, и без всяких затрат. -- Али From shafiev на gmail.com Thu Feb 10 06:39:11 2011 From: shafiev на gmail.com (Naim Shafiev) Date: Thu, 10 Feb 2011 17:39:11 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> Message-ID: 10.02.11, Ivan Petrov написал(а): >> Если подобраться со спидометром, то можно заметить, что на эти десятки >> миллионов лишних проверок if ($DEBUG) >> тратятся миллисекунды(на все) >> >> правило старого туриста "если ты перед походом не считал граммы, то во > время похода ты будешь *тащить* на своих плечах лишние килограммы" > Тут все занимает миллисекунды так что это милли граммы.Так что киллограмм не надо тащить. + Я сам покаместь if $debug использую .Все никак не могу на другие способы перелесть,кроме этого и проблем хватает (: Хотя Aspect и Filter-based решения - очень неплохи > работает практически везде > From i.petro.77.00 на gmail.com Thu Feb 10 06:47:25 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Thu, 10 Feb 2011 17:47:25 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> Message-ID: 10 февраля 2011 г. 17:39 пользователь Naim Shafiev написал: > 10.02.11, Ivan Petrov написал(а): > >> Если подобраться со спидометром, то можно заметить, что на эти десятки > >> миллионов лишних проверок if ($DEBUG) > >> тратятся миллисекунды(на все) > >> > >> правило старого туриста "если ты перед походом не считал граммы, то во > > время похода ты будешь *тащить* на своих плечах лишние килограммы" > > > Тут все занимает миллисекунды так что это милли граммы.Так что > киллограмм не надо тащить. > + Я сам покаместь if $debug использую .Все никак не могу на другие > способы перелесть,кроме этого и проблем хватает (: > Хотя Aspect и Filter-based решения - очень неплохи > > > работает практически везде > > > я вот прямо сейчас с Aspect пишу интересные хитрые тесты. допустим мы пишем клиента сетевого. он коннектится к серверу, получает ответ, затем что-то там делает. как написать тест имитирующий обрыв коннекта посредине этого процесса? потестить результаты работы - просто, а вот симитировать "внешний фактор"? перехватили *в тесте* функцию объекта, которая читает ответ и закрыли открытый объектом сокет. чтение нарвалось на ошибку - программа прошла по веткам их обработки. по моему изящнее и придумать в данной ситуации врядли что можно, нежели Aspect :) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Thu Feb 10 06:49:53 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Thu, 10 Feb 2011 17:49:53 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> Message-ID: > Тут все занимает миллисекунды так что это милли граммы.Так что > киллограмм не надо тащить. > + Я сам покаместь if $debug использую Как я уже говорил в "Экономим на спичках", что если хотите экономить, то вместо if($debug) if(DEBUG) # константа From sergle.ua на gmail.com Thu Feb 10 07:12:21 2011 From: sergle.ua на gmail.com (Sergey Leschenko) Date: Thu, 10 Feb 2011 17:12:21 +0200 Subject: [Moscow.pm] =?utf-8?b?0J7QsdGA0LDQsdC+0YLQutCwINC40YHQutC70Y4=?= =?utf-8?b?0YfQtdC90LjQuQ==?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> Message-ID: 2011/2/10 Denis Evdokimov : >> + Я сам покаместь if $debug использую > > Как я уже говорил в "Экономим на спичках", что если хотите экономить, то вместо >  if($debug) > >  if(DEBUG) # константа Если use constant DEBUG => 1; то DEBUG это у нас code-ref, где экономия? -- Sergey From ali на ali.org.ua Thu Feb 10 07:16:19 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 17:16:19 +0200 Subject: [Moscow.pm] =?utf-8?b?0J7QsdGA0LDQsdC+0YLQutCwINC40YHQutC70Y4=?= =?utf-8?b?0YfQtdC90LjQuQ==?= In-Reply-To: References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> Message-ID: <4D540143.2070409@ali.org.ua> On 10.02.2011 17:12, Sergey Leschenko wrote: >>> + Я сам покаместь if $debug использую >> >> Как я уже говорил в "Экономим на спичках", что если хотите экономить, то вместо >> if($debug) >> >> if(DEBUG) # константа > > Если > use constant DEBUG => 1; > то DEBUG это у нас code-ref, где экономия? coderef в этом случае (константное возвращаемое значение) будет inline заменен на литерал, так что экономия есть. Вопрос в другом; и там и там у нас этот DEBUG откуда-то приезжает (если он устанавливается не на один модуль), то есть присутствует или импорт, или вызов в магике %ENV Впрочем, это действительно спички, дешевле, чем if (something) ? ?я так думаю? (с) -- Али From ali на ali.org.ua Thu Feb 10 07:18:01 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 10 Feb 2011 17:18:01 +0200 Subject: [Moscow.pm] =?utf-8?b?0J7QsdGA0LDQsdC+0YLQutCwINC40YHQutC70Y4=?= =?utf-8?b?0YfQtdC90LjQuQ==?= In-Reply-To: <4D540143.2070409@ali.org.ua> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> <4D540143.2070409@ali.org.ua> Message-ID: <4D5401A9.3030202@ali.org.ua> On 10.02.2011 17:16, Oleg Alistratov wrote: > Впрочем, это действительно спички, дешевле, чем if (something) ? > ?я так думаю? (с) ...в предположении, что if (something) встречается в модуле сильно больше одного раза. -- Али From evdokimov.denis на gmail.com Thu Feb 10 07:19:55 2011 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Thu, 10 Feb 2011 18:19:55 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <4D5401A9.3030202@ali.org.ua> References: <1297328509.3521.29.camel@host> <34455A12-BA1A-41A0-A1CB-8797D2CBF4A4@gmail.com> <1297337279.3521.31.camel@host> <4D53D6FC.2070401@ali.org.ua> <20110210140405.GA7827@tahiti.vinf.ru> <4D53F255.2000507@ali.org.ua> <4D540143.2070409@ali.org.ua> <4D5401A9.3030202@ali.org.ua> Message-ID: http://search.cpan.org/~green/constant-our-0.01/lib/constant/our.pm#DESCRIPTION From worldmind на mail.ru Thu Feb 10 09:54:03 2011 From: worldmind на mail.ru (worldmind) Date: Thu, 10 Feb 2011 20:54:03 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: <1297328509.3521.29.camel@host> References: <1297328509.3521.29.camel@host> Message-ID: <1297360443.2183.0.camel@host> В Чт., 10/02/2011 в 12:01 +0300, Alexey Shrub пишет: > в методе function1 исключения генерятся так (объекты исключений > самописные для примера) > die new Exception::HTTP( code => 404, message => 'Not Found' ); И ещё вопрос - есть ли готовая иерархия классов исключений? From mons на cpan.org Thu Feb 10 09:55:48 2011 From: mons на cpan.org (Mons Anderson) Date: Thu, 10 Feb 2011 20:55:48 +0300 Subject: [Moscow.pm] =?koi8-r?b?78LSwcLP1MvBIMnTy8zA3sXOyco=?= In-Reply-To: References: <1297328509.3521.29.camel@host> <4D5401A9.3030202@ali.org.ua> Message-ID: <201102102055.48259.mons@cpan.org> On Thursday 10 February 2011 18:19:55 Denis Evdokimov wrote: > http://search.cpan.org/~green/constant-our-0.01/lib/constant/our.pm#DESCRIP >TION -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org http://search.cpan.org/~mons/constant-def-0.01/lib/constant/def.pm ;) -- Mons Anderson aka Vladimir Perepelitsa / #99779956 / quanth на irc.freenode.net From i.petro.77.00 на gmail.com Thu Feb 10 22:31:46 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Fri, 11 Feb 2011 09:31:46 +0300 Subject: [Moscow.pm] =?koi8-r?b?Q1BBTiBUZXN0ZXJzIERhaWx5IFN1bW1hcnkgUmVw?= =?koi8-r?b?b3J0OiDXz9DSz9M=?= Message-ID: имеется некий модуль, имеется набор тестов к нему. один из тестов содержит в себе 6 тестов. перед выгрузкой на cpan делаем make test и убеждаемся что все 89 тестов модуля проходят. затем приходит письмо с сабжем и ссылокй на лог, в логе написано нечто вроде следующего: t/01.t ....... ok t/02.t ....... ok ... t/08.t ....... All 6 subtests passed t/09.t ....... ok ... и итоговый репорт: t/08.t (Wstat: 139 Tests: 6 Failed: 0) Non-zero wait status: 139 Files=10, Tests=89, 15 wallclock secs ( 0.09 usr 0.02 sys + 2.58 cusr 0.30 csys = 2.99 CPU) Result: FAIL и как понять в чем проблема? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Thu Feb 10 22:53:09 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Fri, 11 Feb 2011 08:53:09 +0200 Subject: [Moscow.pm] =?koi8-r?b?Q1BBTiBUZXN0ZXJzIERhaWx5IFN1bW1hcnkgUmVw?= =?koi8-r?b?b3J0OiDXz9DSz9M=?= In-Reply-To: References: Message-ID: <4D54DCD5.1050304@ali.org.ua> On 11.02.2011 08:31, Ivan Petrov wrote: > Non-zero wait status: 139 SIGSEGV. Что-то вы страшное наделали :) > и как понять в чем проблема? Посмотрите, что там за система. Я бы для начала попробовал поднять (на виртуалочке, например) такую же OS и версию перла. -- Али From i.petro.77.00 на gmail.com Thu Feb 10 23:03:55 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Fri, 11 Feb 2011 10:03:55 +0300 Subject: [Moscow.pm] =?koi8-r?b?Q1BBTiBUZXN0ZXJzIERhaWx5IFN1bW1hcnkgUmVw?= =?koi8-r?b?b3J0OiDXz9DSz9M=?= In-Reply-To: <4D54DCD5.1050304@ali.org.ua> References: <4D54DCD5.1050304@ali.org.ua> Message-ID: 11 февраля 2011 г. 9:53 пользователь Oleg Alistratov написал: > > > On 11.02.2011 08:31, Ivan Petrov wrote: > > Non-zero wait status: 139 >> > > SIGSEGV. Что-то вы страшное наделали :) > но там все тесты прошли. последняя строка теста ok $value, "name"; деструкторов вроде никаких нигде нет чтобы в END'ах код исполнялся > > > и как понять в чем проблема? >> > > Посмотрите, что там за система. > Я бы для начала попробовал поднять (на виртуалочке, например) > такую же OS и версию перла. > везде где такая проблема - BSD или ее производные. да видимо придется поставить в виртуалке, поглядеть что не так ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From inthrax на gmail.com Fri Feb 11 04:04:01 2011 From: inthrax на gmail.com (Mons Anderson) Date: Fri, 11 Feb 2011 15:04:01 +0300 Subject: [Moscow.pm] =?windows-1251?q?CPAN_Testers_Daily_Summary_Report=3A?= =?windows-1251?b?IOLu7/Du8Q==?= In-Reply-To: References: <4D54DCD5.1050304@ali.org.ua> Message-ID: <201102111504.01128.inthrax@gmail.com> On Friday 11 February 2011 10:03:55 Ivan Petrov wrote: > 11 февраля 2011 г. 9:53 пользователь Oleg Alistratov написал: > > On 11.02.2011 08:31, Ivan Petrov wrote: > > > > Non-zero wait status: 139 > > > > > > SIGSEGV. Что-то вы страшное наделали :) > > но там все тесты прошли. последняя строка теста ok $value, "name"; > > деструкторов вроде никаких нигде нет чтобы в END'ах код исполнялся > > > и как понять в чем проблема? > > > > > > Посмотрите, что там за система. > > Я бы для начала попробовал поднять (на виртуалочке, например) > > такую же OS и версию перла. > > везде где такая проблема - BSD или ее производные. > > да видимо придется поставить в виртуалке, поглядеть что не так А что у вас там используется? А то например XML::LibXML любит сегфолтиться при выходе при определенных условиях... -- Vladimir Perepelitsa aka Mons Anderson / #99779956 From i.petro.77.00 на gmail.com Fri Feb 11 06:00:07 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Fri, 11 Feb 2011 17:00:07 +0300 Subject: [Moscow.pm] =?koi8-r?b?Q1BBTiBUZXN0ZXJzIERhaWx5IFN1bW1hcnkgUmVw?= =?koi8-r?b?b3J0OiDXz9DSz9M=?= In-Reply-To: <201102111504.01128.inthrax@gmail.com> References: <4D54DCD5.1050304@ali.org.ua> <201102111504.01128.inthrax@gmail.com> Message-ID: > А что у вас там используется? > А то например XML::LibXML любит сегфолтиться при выходе при определенных > условиях... > > AnyEvent используется. я сейчас пытаюсь понять где крешится, похоже что остается какой-то зарегистрированный callback, который на момент STOP'а машины еще не выполнился. там тест выглядел примерно так: $cv = condvar AnyEvent; AE::idle sub { # тут набрасываем объектов AnyEvent, дергающих наши каллбеки ... # в одном из каллбеков (когда тест можем считать пройденным по статистике) $cv -> send if $count > какое-то число; } $cv->recv; и дальше по результатам работы всех каллбеков и прочего вызовы функции 'ok' а дальше просто выход. и вот именно на BSD это падает, сейчас пока остановил наброс объектов на стадии обработчика idle, ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From inthrax на gmail.com Fri Feb 11 07:13:28 2011 From: inthrax на gmail.com (Mons Anderson) Date: Fri, 11 Feb 2011 18:13:28 +0300 Subject: [Moscow.pm] =?windows-1251?q?CPAN_Testers_Daily_Summary_Report=3A?= =?windows-1251?b?IOLu7/Du8Q==?= In-Reply-To: References: <201102111504.01128.inthrax@gmail.com> Message-ID: <201102111813.28142.inthrax@gmail.com> On Friday 11 February 2011 17:00:07 Ivan Petrov wrote: > > А что у вас там используется? > > А то например XML::LibXML любит сегфолтиться при выходе при определенных > > условиях... > > > > AnyEvent используется. я сейчас пытаюсь понять где крешится, похоже что > > остается какой-то зарегистрированный callback, который на момент STOP'а > машины еще не выполнился. В начате теста - use AnyEvent::Impl::Perl крешится скорее всего EV; > > там тест выглядел примерно так: > > $cv = condvar AnyEvent; > > AE::idle sub { > # тут набрасываем объектов AnyEvent, дергающих наши каллбеки > ... > # в одном из каллбеков (когда тест можем считать пройденным по > статистике) > $cv -> send if $count > какое-то число; > } > > $cv->recv; > > и дальше по результатам работы всех каллбеков и прочего вызовы функции 'ok' > а дальше просто выход. > > и вот именно на BSD это падает, > сейчас пока остановил наброс объектов на стадии обработчика idle, очень похоже на вызов собития на стадии Global Destruction из EV -- Vladimir Perepelitsa aka Mons Anderson / #99779956 From i.petro.77.00 на gmail.com Sun Feb 13 00:14:52 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 13 Feb 2011 08:14:52 +0000 Subject: [Moscow.pm] =?koi8-r?b?y8/N0MnM0cPJ0SBYUyDOwSBCU0Q=?= Message-ID: есть XS код switch(SvTYPE(SvRV(obj))) { case SVt_PV: .... case SVt_NV: .... case SVt_IV: .... case SVt_RV: .... } на BSD cpan testers шлют репорты с ошибкой компиляции про то что "duplicate case value" третьем case. а на четвертом case говорит "previously used here". я чет подустал бороться с этой BSD все у нее не так как у людей. можно ли модуль как-то пометить что он "не для BSD"? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vovkasm на gmail.com Sun Feb 13 00:59:48 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Sun, 13 Feb 2011 11:59:48 +0300 Subject: [Moscow.pm] =?utf-8?b?0LrQvtC80L/QuNC70Y/RhtC40Y8gWFMg0L3QsCBC?= =?utf-8?q?SD?= In-Reply-To: References: Message-ID: 2011/2/13 Ivan Petrov : > есть XS код > > switch(SvTYPE(SvRV(obj))) { > >       case SVt_PV: >          .... > >       case SVt_NV: >          .... > >       case SVt_IV: >          .... > >       case SVt_RV: >          .... > } > > на BSD cpan testers шлют репорты с ошибкой компиляции про то что  "duplicate > case value" третьем case. > а на четвертом case говорит "previously used here". И правильно делают, это не в BSD проблема, это зависит от версии перла (а ошибки, вероятно от версии gcc, подробно не разбирался). Дело в том, что начиная с 5.12 (может еще в 5.11.*) RV и IV флаги были объединены в один. * http://perl5.git.perl.org/perl.git/blob/maint-5.10:/sv.h * http://perl5.git.perl.org/perl.git/blob/maint-5.12:/sv.h Соответственно (даже если ошибки не возникает при компиляции), ваш модуль очень вероятно работает неправильно (это конечно сильно зависит, от того что именно делается под case...). > > я чет подустал бороться с этой BSD все у нее не так как у людей. можно ли > модуль как-то пометить что он "не для BSD"? В Makefile.PL всегда можно написать: die "Only for Linux, because i am lazy to support other OSes" unless ($^O eq 'linux'); > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Vladimir Timofeev From i.petro.77.00 на gmail.com Sun Feb 13 01:30:31 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 13 Feb 2011 09:30:31 +0000 Subject: [Moscow.pm] =?koi8-r?b?y8/N0MnM0cPJ0SBYUyDOwSBCU0Q=?= In-Reply-To: References: Message-ID: И правильно делают, это не в BSD проблема, это зависит от версии перла > (а ошибки, вероятно от версии gcc, подробно не разбирался). > Дело в том, что начиная с 5.12 (может еще в 5.11.*) RV и IV флаги были > объединены в один. > * http://perl5.git.perl.org/perl.git/blob/maint-5.10:/sv.h > * http://perl5.git.perl.org/perl.git/blob/maint-5.12:/sv.h > и как теперь в XS можно отличить ссылку (REF) от всего остального (SCALAR/HASH/ARRAY)? если RV объединили с IV? > Соответственно (даже если ошибки не возникает при компиляции), ваш > модуль очень вероятно работает неправильно (это конечно сильно > зависит, от того что именно делается под case...). > под case в зависимости от типа ссылки делаются соответствующие действия. например в случаях IV и NV просто берется значение, а в случаях AV делался проход по массиву и так далее. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vovkasm на gmail.com Sun Feb 13 01:36:37 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Sun, 13 Feb 2011 12:36:37 +0300 Subject: [Moscow.pm] =?utf-8?b?0LrQvtC80L/QuNC70Y/RhtC40Y8gWFMg0L3QsCBC?= =?utf-8?q?SD?= In-Reply-To: References: Message-ID: 2011/2/13 Ivan Petrov : > И правильно делают, это не в BSD проблема, это зависит от версии перла >> >> (а ошибки, вероятно от версии gcc, подробно не разбирался). >> Дело в том, что начиная с 5.12 (может еще в 5.11.*) RV и IV флаги были >> объединены в один. >> * http://perl5.git.perl.org/perl.git/blob/maint-5.10:/sv.h >> * http://perl5.git.perl.org/perl.git/blob/maint-5.12:/sv.h > > и как теперь в XS можно отличить ссылку (REF) от всего остального > (SCALAR/HASH/ARRAY)? если RV объединили с IV? SvROK > > >> >> Соответственно (даже если ошибки не возникает при компиляции), ваш >> модуль очень вероятно работает неправильно (это конечно сильно >> зависит, от того что именно делается под case...). > > под case в зависимости от типа ссылки делаются соответствующие действия. > например в случаях IV и NV просто берется значение, а в случаях AV делался > проход по массиву и так далее. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Vladimir Timofeev From i.petro.77.00 на gmail.com Sun Feb 13 01:44:46 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 13 Feb 2011 09:44:46 +0000 Subject: [Moscow.pm] =?koi8-r?b?y8/N0MnM0cPJ0SBYUyDOwSBCU0Q=?= In-Reply-To: References: Message-ID: > >> > >> (а ошибки, вероятно от версии gcc, подробно не разбирался). > >> Дело в том, что начиная с 5.12 (может еще в 5.11.*) RV и IV флаги были > >> объединены в один. > >> * http://perl5.git.perl.org/perl.git/blob/maint-5.10:/sv.h > >> * http://perl5.git.perl.org/perl.git/blob/maint-5.12:/sv.h > > > > и как теперь в XS можно отличить ссылку (REF) от всего остального > > (SCALAR/HASH/ARRAY)? если RV объединили с IV? > SvROK > SvROK скажет что это ссылка и на то что будет SVt_IV тоже соответствовать то есть теперь чтобы вычислить в XS что это ссылка на ссылку надо пройти по всем 15 вариантам SVt_*, я правильно понимаю? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Sun Feb 13 01:50:44 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 13 Feb 2011 09:50:44 +0000 Subject: [Moscow.pm] =?koi8-r?b?y8/N0MnM0cPJ0SBYUyDOwSBCU0Q=?= In-Reply-To: References: Message-ID: > > >> >> >> (а ошибки, вероятно от версии gcc, подробно не разбирался). >> >> Дело в том, что начиная с 5.12 (может еще в 5.11.*) RV и IV флаги были >> >> объединены в один. >> >> * http://perl5.git.perl.org/perl.git/blob/maint-5.10:/sv.h >> >> * http://perl5.git.perl.org/perl.git/blob/maint-5.12:/sv.h >> > >> > и как теперь в XS можно отличить ссылку (REF) от всего остального >> > (SCALAR/HASH/ARRAY)? если RV объединили с IV? >> SvROK >> > > SvROK скажет что это ссылка и на то что будет SVt_IV тоже соответствовать > > то есть теперь чтобы вычислить в XS что это ссылка на ссылку надо пройти > по всем 15 вариантам SVt_*, я правильно понимаю? > Хгм. а как в XS отличать версии Perl? если раньше для определения ссылки на ссылку можно было использовать SVt_RV, а теперь это может быть и ссылка на просто скаляр с IV-значением, то получается надо какой-то ifdef городить типо "если перл версия < 5.12 то так, а иначе эдак ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vovkasm на gmail.com Sun Feb 13 02:01:01 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Sun, 13 Feb 2011 13:01:01 +0300 Subject: [Moscow.pm] =?utf-8?b?0LrQvtC80L/QuNC70Y/RhtC40Y8gWFMg0L3QsCBC?= =?utf-8?q?SD?= In-Reply-To: References: Message-ID: 2011/2/13 Ivan Petrov : > >> >> >> >> (а ошибки, вероятно от версии gcc, подробно не разбирался). >> >> Дело в том, что начиная с 5.12 (может еще в 5.11.*) RV и IV флаги были >> >> объединены в один. >> >> * http://perl5.git.perl.org/perl.git/blob/maint-5.10:/sv.h >> >> * http://perl5.git.perl.org/perl.git/blob/maint-5.12:/sv.h >> > >> > и как теперь в XS можно отличить ссылку (REF) от всего остального >> > (SCALAR/HASH/ARRAY)? если RV объединили с IV? >> SvROK > > SvROK скажет что это ссылка и на то что будет SVt_IV тоже соответствовать > > то есть теперь чтобы вычислить в  XS что это ссылка на ссылку надо пройти по > всем 15 вариантам SVt_*, я правильно понимаю? Нет, не правильно. Посмотрите как макрос SvROK определен ;-) > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Vladimir Timofeev From i.petro.77.00 на gmail.com Sun Feb 13 02:08:00 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 13 Feb 2011 10:08:00 +0000 Subject: [Moscow.pm] =?koi8-r?b?y8/N0MnM0cPJ0SBYUyDOwSBCU0Q=?= In-Reply-To: References: Message-ID: > > то есть теперь чтобы вычислить в XS что это ссылка на ссылку надо пройти > по > > всем 15 вариантам SVt_*, я правильно понимаю? > Нет, не правильно. > Посмотрите как макрос SvROK определен ;-) > > эмм а какая разница как он определен? в документации написано "чтобы определить является ли данный скаляр ссылкой, используйте SvROK, а чтобы определить на какой тип ссылается данная ссылка используйте SvTYPE(SvRV(SV*))" поскольку "ссылку на ссылку" приравняли к "ссылке на IV", то чтобы отделить "ссылку на скаляр с интом" от "ссылки на ссылку на массив" теперь надо как-то извращаться. причем непонятно как это сделать обратно совместимо ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vovkasm на gmail.com Sun Feb 13 02:31:47 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Sun, 13 Feb 2011 13:31:47 +0300 Subject: [Moscow.pm] =?utf-8?b?0LrQvtC80L/QuNC70Y/RhtC40Y8gWFMg0L3QsCBC?= =?utf-8?q?SD?= In-Reply-To: References: Message-ID: 2011/2/13 Ivan Petrov : > >> > то есть теперь чтобы вычислить в  XS что это ссылка на ссылку надо >> > пройти по >> > всем 15 вариантам SVt_*, я правильно понимаю? >> Нет, не правильно. >> Посмотрите как макрос SvROK определен ;-) >> > эмм а какая разница как он определен? в документации написано "чтобы > определить является ли данный скаляр ссылкой, используйте SvROK, а чтобы > определить на какой тип ссылается данная ссылка используйте > SvTYPE(SvRV(SV*))" > > поскольку "ссылку на ссылку" приравняли к "ссылке на IV", то чтобы отделить > "ссылку на скаляр с интом" от "ссылки на ссылку на массив" теперь надо > как-то извращаться. причем непонятно как это сделать обратно совместимо допустим у нас есть SV *sv; // $val = \\5; тогда: SvROK(sv) == true SvIOK(sv) == false SvROK(SvRV(sv)) == true SvIOK(SvRV(sv)) == false SvIOK(SvRV(SvRV(sv))) == true SvROK(SvRV(SvRV(sv))) == false Ни раньше, ни сейчас извращаться не надо. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Vladimir Timofeev From i.petro.77.00 на gmail.com Sun Feb 13 03:02:18 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 13 Feb 2011 11:02:18 +0000 Subject: [Moscow.pm] =?koi8-r?b?y8/N0MnM0cPJ0SBYUyDOwSBCU0Q=?= In-Reply-To: References: Message-ID: допустим у нас есть SV *sv; // $val = \\5; > тогда: > SvROK(sv) == true > SvIOK(sv) == false > SvROK(SvRV(sv)) == true > SvIOK(SvRV(sv)) == false > SvIOK(SvRV(SvRV(sv))) == true > SvROK(SvRV(SvRV(sv))) == false > Ни раньше, ни сейчас извращаться не надо. > > c этими макросами-то все ясно, речь-то шла о других, об SvTYPE, а с ним теперь будет SVt_IV == SvTYPE(SvRV(sv))) и SVt_IV == SvTYPE(SvRV(SvRV(sv)))) это приводит к тому что надо switch заменять на if'ы или окружать это ifdef'ами, если мы хотим в switch отделять "ссылку на ссылку" от "ссылки на int" а замена switch на многострочный if - else if это именно извращение. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vovkasm на gmail.com Sun Feb 13 03:12:50 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Sun, 13 Feb 2011 14:12:50 +0300 Subject: [Moscow.pm] =?utf-8?b?0LrQvtC80L/QuNC70Y/RhtC40Y8gWFMg0L3QsCBC?= =?utf-8?q?SD?= In-Reply-To: References: Message-ID: 2011/2/13 Ivan Petrov : > допустим у нас есть SV *sv; // $val = \\5; >> >> тогда: >> SvROK(sv) == true >> SvIOK(sv) == false >> SvROK(SvRV(sv)) == true >> SvIOK(SvRV(sv)) == false >> SvIOK(SvRV(SvRV(sv))) == true >> SvROK(SvRV(SvRV(sv))) == false >> Ни раньше, ни сейчас извращаться не надо. >> > > c этими макросами-то все ясно, речь-то шла о других, об SvTYPE, а с ним > теперь будет > > SVt_IV == SvTYPE(SvRV(sv))) и SVt_IV == SvTYPE(SvRV(SvRV(sv)))) > > это приводит к тому что надо switch заменять на if'ы или окружать это > ifdef'ами, если мы хотим в switch отделять "ссылку на ссылку" от "ссылки на > int" > > а замена switch на многострочный if - else if это именно извращение. Ну... не я эти макароны писал )) Просто в данном случае SvTYPE говорит, не о том "что содержится в SV", а о том какя "у SV внутренняя структура" (это мое предположение). Т.е. в частности, где лежит значение и какие еще поля доступны... А за то, как этим значением можно воспользоваться отвечают флаги, типа SVf_ROK. Но это философия, в общем... я бы в коде очень упрощенно использовал что-то вроде: если пусто: ... если RV: разобраться с объектами, магией и рекурсия по ссылке иначе: все остальное Конечно все очень сильно зависит от того, что надо в итоге получить... допустим Storable должен знать о внутренностях и зеркалировать всю структуру, чтобы иметь возможность восстановить назад, а JSON этого делать не обязан, ему достаточно знать, что если не RV, то если можно получить NV или IV, то выкинуть чило, а если нельзя, то взять строку... > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Vladimir Timofeev From ruz на bestpractical.com Sun Feb 13 14:01:28 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Mon, 14 Feb 2011 01:01:28 +0300 Subject: [Moscow.pm] =?utf-8?b?0LrQvtC80L/QuNC70Y/RhtC40Y8gWFMg0L3QsCBC?= =?utf-8?q?SD?= In-Reply-To: References: Message-ID: 2011/2/13 Ivan Petrov : > >> >> >> >> (а ошибки, вероятно от версии gcc, подробно не разбирался). >> >> Дело в том, что начиная с 5.12 (может еще в 5.11.*) RV и IV флаги были >> >> объединены в один. >> >> * http://perl5.git.perl.org/perl.git/blob/maint-5.10:/sv.h >> >> * http://perl5.git.perl.org/perl.git/blob/maint-5.12:/sv.h >> > >> > и как теперь в XS можно отличить ссылку (REF) от всего остального >> > (SCALAR/HASH/ARRAY)? если RV объединили с IV? >> SvROK > > SvROK скажет что это ссылка и на то что будет SVt_IV тоже соответствовать > > то есть теперь чтобы вычислить в  XS что это ссылка на ссылку надо пройти по > всем 15 вариантам SVt_*, я правильно понимаю? Нет. Неправильно. Я на это уже раньше напарывался. Неправильно подразумевать, что SVt_* определяет хранимое значение. Просто потому что у вас может сначала хранится magic, потом глоб, потом инт, а потом еще что-то в обном скаляре. Он в время присвоения upgrade'иться, но не downgrade'иться. Пример: perl -MDevel::Peek -e 'my $x = 10; Dump($x); $x.=""; Dump($x); $x = bless { }, "foo"; Dump($x); $x = 10; Dump($x)' SV = IV(0x10082d630) at 0x100801500 REFCNT = 1 FLAGS = (PADBUSY,PADMY,IOK,pIOK) IV = 10 SV = PVIV(0x1008032c0) at 0x100801500 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK) IV = 10 PV = 0x1002021c0 "10"\0 CUR = 2 LEN = 8 SV = PVIV(0x1008032c0) at 0x100801500 REFCNT = 1 FLAGS = (PADBUSY,PADMY,ROK) IV = 10 RV = 0x100801410 .... PV = 0x100801410 "" CUR = 0 LEN = 0 SV = PVIV(0x1008032c0) at 0x100801500 REFCNT = 1 FLAGS = (PADBUSY,PADMY,IOK,pIOK) IV = 10 PV = 0 Был IV, стал PVIV для int+str, достаточно для RV - остался PVIV, далее так и остался PVIV. Нужно использовать SvROK для проверки, что это ссылка. Соответственно SvIOK для инта и так далее. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Best regards, Ruslan. From ruz на bestpractical.com Sun Feb 13 14:03:05 2011 From: ruz на bestpractical.com (Ruslan Zakirov) Date: Mon, 14 Feb 2011 01:03:05 +0300 Subject: [Moscow.pm] =?utf-8?b?0LrQvtC80L/QuNC70Y/RhtC40Y8gWFMg0L3QsCBC?= =?utf-8?q?SD?= In-Reply-To: References: Message-ID: 2011/2/13 Ivan Petrov : [snip] > SVt_IV == SvTYPE(SvRV(sv))) и SVt_IV == SvTYPE(SvRV(SvRV(sv)))) > > это приводит к тому что надо switch заменять на if'ы или окружать это > ifdef'ами, если мы хотим в switch отделять "ссылку на ссылку" от "ссылки на > int" > > а замена switch на многострочный if - else if это именно извращение. Нужно одуматься пока не поздно и переделать код. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Best regards, Ruslan. From skv на protey.ru Mon Feb 14 11:02:09 2011 From: skv на protey.ru (Sergey Skvortsov) Date: Mon, 14 Feb 2011 22:02:09 +0300 Subject: [Moscow.pm] =?utf-8?b?0LLQsNC60LDQvdGB0LjRjzogUGVybCAvIFdlYiA=?= =?utf-8?b?0YDQsNC30YDQsNCx0L7RgtGH0LjQug==?= Message-ID: <4D597C31.5000709@protey.ru> Приветствую. Ищется умный и продвинутый разработчик. Или ещё пока не продвинутый, но желающий учиться и профессионально расти в отличной команде. Актуальный текст вакансии всегда тут: http://moikrug.ru/vacancies/359591952/ Компания: Openstat (SpyLOG) www.openstat.ru Требования: * знание и опыт работы от 2-х лет в программировании web-приложений под Unix * знание Perl 5.10 / 5.12 * умение формулировать свои мысли, общаться, и, главное, думать * понимать принципы MVC, ORM * знание Moose и прочих де-факто стандартных модулей * знание Catalyst, шаблонных систем; понимание принципов верстки * хорошее знание веб-технологий: HTML / CSS / JavaScript / AJAX; как работает HTTP и т.д. * программирование приложений, использующих БД (PostgreSQL) - т.е. хорошее знание SQL * знание систем контроля версий (как минимум Subversion) Желательно: * знание всяких там Mojolicious * опыт работы с FreeBSD * опыт администрирования Unix-серверов, в т.ч. администрирование web-сервера Apache / nginx или иных (администрировать не придётся, но понимать принципы работы и идеологию - надо) * опыт программирования C / XS * математическая / алгоритмическая подготовка * участие в разработке высоконагруженных систем Условия: * заработная плата: в зависимости от квалификации, 40_000 .. 100_000 и выше (всё индивидуально) * офис: Москва, ул. Покровка (м. ?Китай-город?, ?Чистые пруды?, ?Курская?) * график: полный рабочий день Писать мне в личную почту - с резюме, в идеале сразу с показательными примерами кода (ссылки на ваши модули в CPAN особенно приветствуются), и/ли сделанных проектов. -- Sergey Skvortsov mailto: skv на protey.ru From i.petro.77.00 на gmail.com Tue Feb 15 13:28:41 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 15 Feb 2011 21:28:41 +0000 Subject: [Moscow.pm] =?koi8-r?b?4SDL1M8g0M/T1MfSydMgydPQz8zY2tXF1CDXINDS?= =?koi8-r?b?z8TBy9vFzsU/?= Message-ID: какие драйвера (DBD::Pg) используете? версии я имею ввиду. из последних версий там 1. ноябрьская 2. апрельская обе с мемори ликами вот такой код течет мегабайт в секунду где-то: #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use DBI; my $dbh = DBI->connect('dbi:Pg:dbname=Database;host=localhost', login => 'XXXX'); $dbh->do('CREATE TEMPORARY TABLE tbl (id SERIAL PRIMARY KEY, val INTEGER[])'); our $cnt; sub _flush_data { my ($array) = @_; my $sql = sprintf "INSERT INTO tbl (val) VALUES %s", join ",", map '(?)', @$array; $dbh->do($sql, undef, @$array); printf "saved: %d\n", scalar @$array; } while(1) { my @ary; push @ary, [ 0 .. int rand 10] for 0 .. int rand 50; _flush_data(\@ary); } Пошел я отписаться в их багтрекере, а там еще кроме моего куча багов и тоже про мемори лики и причем в других местах. я тут было по результатам тестов и ощущений хотел было новый проект на постгрисе замутить вместо mysql, но ситуация с DBD::Pg крайне удручает. если почти год лежит версия с утечками памяти и фиксов нету, то как ее использовать? она уже даже в Debian/stable блин попала... ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nikita-aznaourian на yandex.ru Wed Feb 16 06:30:24 2011 From: nikita-aznaourian на yandex.ru (Nikita Aznauryan) Date: Wed, 16 Feb 2011 17:30:24 +0300 Subject: [Moscow.pm] =?koi8-r?b?98/Q0s/TINDSzyBDb3JvIMkgQ29ybzo6QW55RXZl?= =?koi8-r?b?bnQ=?= Message-ID: <1137231297866624@web153.yandex.ru> Для переключения между потоками использую переопределенную функцию sleep use Coro::AnyEvent; BEGIN { *CORE::GLOBAL::sleep = \&Coro::AnyEvent::sleep; }; Далее определяю несколько async async { while() { sleep 1; ... } } async { while() { sleep 1; ... } } async { while() { sleep 1; ... } } каждый из которых в свою очередь создает свои async - и и запускаю все это while () { sleep 0; } Вопрос в том, что не понятно в какой последовательности будут запускаться эти потоки. Есть ли какой-то алгоритм запуска потоков или они могут запускаться в любой последовательности? From nikita-aznaourian на yandex.ru Wed Feb 16 06:30:46 2011 From: nikita-aznaourian на yandex.ru (Nikita Aznauryan) Date: Wed, 16 Feb 2011 17:30:46 +0300 Subject: [Moscow.pm] =?koi8-r?b?98/Q0s/TINDSzyBDb3JvIMkgQ29ybzo6QW55RXZl?= =?koi8-r?b?bnQ=?= Message-ID: <1137431297866646@web153.yandex.ru> Для переключения между потоками использую переопределенную функцию sleep use Coro::AnyEvent; BEGIN { *CORE::GLOBAL::sleep = \&Coro::AnyEvent::sleep; }; Далее определяю несколько async async { while() { sleep 1; ... } } async { while() { sleep 1; ... } } async { while() { sleep 1; ... } } каждый из которых в свою очередь создает свои async - и и запускаю все это while () { sleep 0; } Вопрос в том, что не понятно в какой последовательности будут запускаться эти потоки. Есть ли какой-то алгоритм запуска потоков или они могут запускаться в любой последовательности? From nikita-aznaourian на yandex.ru Wed Feb 16 06:31:14 2011 From: nikita-aznaourian на yandex.ru (Nikita Aznauryan) Date: Wed, 16 Feb 2011 17:31:14 +0300 Subject: [Moscow.pm] =?koi8-r?b?98/Q0s/TINDSzyBDb3JvIMkgQ29ybzo6QW55RXZl?= =?koi8-r?b?bnQ=?= Message-ID: <1137801297866674@web153.yandex.ru> Для переключения между потоками использую переопределенную функцию sleep use Coro::AnyEvent; BEGIN { *CORE::GLOBAL::sleep = \&Coro::AnyEvent::sleep; }; Далее определяю несколько async async { while() { sleep 1; ... } } async { while() { sleep 1; ... } } async { while() { sleep 1; ... } } каждый из которых в свою очередь создает свои async - и и запускаю все это while () { sleep 0; } Вопрос в том, что не понятно в какой последовательности будут запускаться эти потоки. Есть ли какой-то алгоритм запуска потоков или они могут запускаться в любой последовательности? From nikita-aznaourian на yandex.ru Wed Feb 16 06:34:39 2011 From: nikita-aznaourian на yandex.ru (Nikita Aznauryan) Date: Wed, 16 Feb 2011 17:34:39 +0300 Subject: [Moscow.pm] =?koi8-r?b?98/Q0s/TINDSzyBDb3JvIMkgQ29ybzo6QW55RXZl?= =?koi8-r?b?bnQ=?= Message-ID: <30801297866879@web138.yandex.ru> Для переключения между потоками использую переопределенную функцию sleep use Coro::AnyEvent; BEGIN { *CORE::GLOBAL::sleep = \&Coro::AnyEvent::sleep; }; Далее определяю несколько async async { while() { sleep 1; ... } } async { while() { sleep 1; ... } } async { while() { sleep 1; ... } } каждый из которых в свою очередь создает свои async - и и запускаю все это while () { sleep 0; } Вопрос в том, что не понятно в какой последовательности будут запускаться эти потоки. Есть ли какой-то алгоритм запуска потоков или они могут запускаться в любой последовательности? From cub.uanic на gmail.com Wed Feb 16 08:30:36 2011 From: cub.uanic на gmail.com (Oleg Kostyuk) Date: Wed, 16 Feb 2011 18:30:36 +0200 Subject: [Moscow.pm] =?utf-8?b?0JLQvtC/0YDQvtGBINC/0YDQviBDb3JvINC4IENv?= =?utf-8?q?ro=3A=3AAnyEvent?= In-Reply-To: <30801297866879@web138.yandex.ru> References: <30801297866879@web138.yandex.ru> Message-ID: Вопрос, повторенный четырежды, звучит понятнее? Вопрос, повторенный четырежды, звучит понятнее? Вопрос, повторенный четырежды, звучит понятнее? Вопрос, повторенный четырежды, звучит понятнее? :) 16 февраля 2011 г. 16:34 пользователь Nikita Aznauryan написал: > Для переключения между потоками использую переопределенную функцию sleep > > use Coro::AnyEvent; BEGIN { *CORE::GLOBAL::sleep = \&Coro::AnyEvent::sleep; }; > > Далее определяю несколько async > > async { >   while() { >       sleep 1; >       ... >   } > } > > async { >   while() { >       sleep 1; >       ... >   } > } > > async { >   while() { >       sleep 1; >       ... >   } > } > > каждый из которых в свою очередь создает свои async - и > > и запускаю все это > >    while () { >        sleep 0; >    } > > Вопрос в том, что не понятно в какой последовательности будут запускаться эти потоки.  Есть ли какой-то алгоритм запуска потоков или они могут запускаться в любой последовательности? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) From nikita-aznaourian на yandex.ru Wed Feb 16 08:34:41 2011 From: nikita-aznaourian на yandex.ru (Nikita Aznauryan) Date: Wed, 16 Feb 2011 19:34:41 +0300 Subject: [Moscow.pm] =?koi8-r?b?98/Q0s/TINDSzyBDb3JvIMkgQ29ybzo6QW55RXZl?= =?koi8-r?b?bnQ=?= In-Reply-To: References: <30801297866879@web138.yandex.ru> Message-ID: <1051651297874081@web4.yandex.ru> Видимо не для всех, раз ответа нет ;) Но, вообще-то, очевидно, что это глюк яндекса) 16.02.2011, 19:30, "Oleg Kostyuk" : > Вопрос, повторенный четырежды, звучит понятнее? > Вопрос, повторенный четырежды, звучит понятнее? > Вопрос, повторенный четырежды, звучит понятнее? > Вопрос, повторенный четырежды, звучит понятнее? > > :) > > 16 февраля 2011 г. 16:34 пользователь Nikita Aznauryan > ; написал: > >>  Для переключения между потоками использую переопределенную функцию sleep >> >>  use Coro::AnyEvent; BEGIN { *CORE::GLOBAL::sleep = \&Coro::AnyEvent::sleep; }; >> >>  Далее определяю несколько async >> >>  async { >>    while() { >>        sleep 1; >>        ... >>    } >>  } >> >>  async { >>    while() { >>        sleep 1; >>        ... >>    } >>  } >> >>  async { >>    while() { >>        sleep 1; >>        ... >>    } >>  } >> >>  каждый из которых в свою очередь создает свои async - и >> >>  и запускаю все это >> >>     while () { >>         sleep 0; >>     } >> >>  Вопрос в том, что не понятно в какой последовательности будут запускаться эти потоки.  Есть ли какой-то алгоритм запуска потоков или они могут запускаться в любой последовательности? >>  -- >>  Moscow.pm mailing list >>  moscow-pm на pm.org | http://moscow.pm.org > -- > Sincerely yours, > Oleg Kostyuk (CUB-UANIC) From ali на ali.org.ua Wed Feb 16 08:42:24 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Wed, 16 Feb 2011 18:42:24 +0200 Subject: [Moscow.pm] =?koi8-r?b?98/Q0s/TINDSzyBDb3JvIMkgQ29ybzo6QW55RXZl?= =?koi8-r?b?bnQ=?= In-Reply-To: References: <30801297866879@web138.yandex.ru> Message-ID: <4D5BFE70.9030803@ali.org.ua> On 16.02.2011 18:30, Oleg Kostyuk wrote: > Вопрос, повторенный четырежды, звучит понятнее? Ну так известная метода. - Ну и группа мне попалась тупая! Объясняю теорему - не понимают. Объясняю второй раз. Не понимают! В третий раз объясняю. Сам уже понял. А они не понимают! По существу: Если приоритет у потоков одинаковый, то в очередь на выполнение они становятся в порядке их инициализации. Но не думаю, что это прибито гвоздями, и если порядок важен, то я указал бы явно приоритеты. -- Олег Алистратов From nikita-aznaourian на yandex.ru Wed Feb 16 09:14:33 2011 From: nikita-aznaourian на yandex.ru (Nikita Aznauryan) Date: Wed, 16 Feb 2011 20:14:33 +0300 Subject: [Moscow.pm] =?koi8-r?b?98/Q0s/TINDSzyBDb3JvIMkgQ29ybzo6QW55RXZl?= =?koi8-r?b?bnQ=?= In-Reply-To: <4D5BFE70.9030803@ali.org.ua> References: <30801297866879@web138.yandex.ru> <4D5BFE70.9030803@ali.org.ua> Message-ID: <178871297876473@web130.yandex.ru> Я как раз проверил, что это не прибито гвоздями. Потоки начинают выполняться в любом порядке( Приоритеты мне тоже не помогут, мне нужно, чтобы потокам передавалось управление "кругу", ну то есть в порядке инициализации. При условии, что эти потоки могут порождать другие потоки. Если же я укажу большой приоритет потоку, который крутится в цикле, то остальные потоки вообще выполняться не будут. 16.02.2011, 19:42, "Oleg Alistratov" : > On 16.02.2011 18:30, Oleg Kostyuk wrote: > > > По существу: > > Если приоритет у потоков одинаковый, то в очередь на выполнение они > становятся в порядке их инициализации. > > Но не думаю, что это прибито гвоздями, и если порядок важен, то я указал > бы явно приоритеты. > > -- > Олег Алистратов > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From sergle.ua на gmail.com Wed Feb 16 15:00:29 2011 From: sergle.ua на gmail.com (Sergey Leschenko) Date: Thu, 17 Feb 2011 01:00:29 +0200 Subject: [Moscow.pm] =?utf-8?b?0JLQvtC/0YDQvtGBINC/0YDQviBDb3JvINC4IENv?= =?utf-8?q?ro=3A=3AAnyEvent?= In-Reply-To: References: <30801297866879@web138.yandex.ru> Message-ID: 2011/2/16 Oleg Kostyuk : > Вопрос, повторенный четырежды, звучит понятнее? > ... > :) Вы увидели многопоточность в действии :) По теме вопроса - а для чего затевается эта карусель передачи управления? -- Sergey From konstantinov.dmitry на gmail.com Sat Feb 19 00:53:53 2011 From: konstantinov.dmitry на gmail.com (Dmitry Konstantinov) Date: Sat, 19 Feb 2011 11:53:53 +0300 Subject: [Moscow.pm] =?koi8-r?b?4SDL1M8g0M/T1MfSydMgydPQz8zY2tXF1CDXINDS?= =?koi8-r?b?z8TBy9vFzsU/?= In-Reply-To: References: Message-ID: У меня готовится к продакшну проект на постгрисе 8.3.12 таких диких (и не диких) ликов не вижу. Сейчас аптайм 10 дней, ведется активная разработка и тестирование, все процессы постгриса занимают < 20 метров 16 февраля 2011 г. 0:28 пользователь Ivan Petrov написал: > какие драйвера (DBD::Pg) используете? версии я имею ввиду. > > из последних версий там > 1. ноябрьская > 2. апрельская > > обе с мемори ликами > > вот такой код течет мегабайт в секунду где-то: > > #!/usr/bin/perl > > use strict; > use warnings; > use Data::Dumper; > use DBI; > > my $dbh = DBI->connect('dbi:Pg:dbname=Database;host=localhost', > login => 'XXXX'); > > $dbh->do('CREATE TEMPORARY TABLE tbl (id SERIAL PRIMARY KEY, val > INTEGER[])'); > > our $cnt; > sub _flush_data > { > my ($array) = @_; > > my $sql = sprintf "INSERT INTO tbl (val) VALUES %s", > join ",", map '(?)', @$array; > > $dbh->do($sql, undef, @$array); > printf "saved: %d\n", scalar @$array; > } > > > while(1) { > my @ary; > push @ary, [ 0 .. int rand 10] for 0 .. int rand 50; > _flush_data(\@ary); > } > > > Пошел я отписаться в их багтрекере, а там еще кроме моего куча багов и тоже > про мемори лики и причем в других местах. > я тут было по результатам тестов и ощущений хотел было новый проект на > постгрисе замутить вместо mysql, но ситуация с DBD::Pg крайне удручает. если > почти год лежит версия с утечками памяти и фиксов нету, то как ее > использовать? она уже даже в Debian/stable блин попала... > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением, Дмитрий ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From konstantinov.dmitry на gmail.com Sat Feb 19 02:15:20 2011 From: konstantinov.dmitry на gmail.com (Dmitry Konstantinov) Date: Sat, 19 Feb 2011 13:15:20 +0300 Subject: [Moscow.pm] =?koi8-r?b?4SDL1M8g0M/T1MfSydMgydPQz8zY2tXF1CDXINDS?= =?koi8-r?b?z8TBy9vFzsU/?= In-Reply-To: References: Message-ID: Кстати очень забавно получается. На проекте таких проблем нет, но после запуска приведенного кода явно идут лики. Начал копать и обнаружил, что если val INTEGER[] заменить на val INTEGER ну и массив на одномерный, то от ликов не остается и следа :) В проекте векторами не пользуюсь, поэтому видимо и не наблюдаю подобного у себя. 19 февраля 2011 г. 11:53 пользователь Dmitry Konstantinov < konstantinov.dmitry на gmail.com> написал: > У меня готовится к продакшну проект на постгрисе 8.3.12 таких диких (и не > диких) ликов не вижу. Сейчас аптайм 10 дней, ведется активная разработка и > тестирование, все процессы постгриса занимают < 20 метров > > -- С уважением, Дмитрий ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From dmitry на karasik.eu.org Sat Feb 19 03:03:55 2011 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Sat, 19 Feb 2011 12:03:55 +0100 Subject: [Moscow.pm] =?koi8-r?b?4SDL1M8g0M/T1MfSydMgydPQz8zY2tXF1CDXINDS?= =?koi8-r?b?z8TBy9vFzsU/?= In-Reply-To: References: Message-ID: <20110219110355.GA19103@tetsuo.karasik.eu.org> постгресовый перл интерфейс текучий уж сколько лет, не одно так другое, это плохо... с другой стороны, патчи они оперативно вставляют, это хорошо ) /dk On Sat, Feb 19, 2011 at 11:53:53AM +0300, Dmitry Konstantinov wrote: > У меня готовится к продакшну проект на постгрисе 8.3.12 таких диких (и не > диких) ликов не вижу. Сейчас аптайм 10 дней, ведется активная разработка и > тестирование, все процессы постгриса занимают < 20 метров > > 16 февраля 2011 г. 0:28 пользователь Ivan Petrov > написал: > > > какие драйвера (DBD::Pg) используете? версии я имею ввиду. > > > > из последних версий там > > 1. ноябрьская > > 2. апрельская > > > > обе с мемори ликами > > > > вот такой код течет мегабайт в секунду где-то: > > > > #!/usr/bin/perl > > > > use strict; > > use warnings; > > use Data::Dumper; > > use DBI; > > > > my $dbh = DBI->connect('dbi:Pg:dbname=Database;host=localhost', > > login => 'XXXX'); > > > > $dbh->do('CREATE TEMPORARY TABLE tbl (id SERIAL PRIMARY KEY, val > > INTEGER[])'); > > > > our $cnt; > > sub _flush_data > > { > > my ($array) = @_; > > > > my $sql = sprintf "INSERT INTO tbl (val) VALUES %s", > > join ",", map '(?)', @$array; > > > > $dbh->do($sql, undef, @$array); > > printf "saved: %d\n", scalar @$array; > > } > > > > > > while(1) { > > my @ary; > > push @ary, [ 0 .. int rand 10] for 0 .. int rand 50; > > _flush_data(\@ary); > > } > > > > > > Пошел я отписаться в их багтрекере, а там еще кроме моего куча багов и тоже > > про мемори лики и причем в других местах. > > я тут было по результатам тестов и ощущений хотел было новый проект на > > постгрисе замутить вместо mysql, но ситуация с DBD::Pg крайне удручает. если > > почти год лежит версия с утечками памяти и фиксов нету, то как ее > > использовать? она уже даже в Debian/stable блин попала... > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > > -- > С уважением, > Дмитрий > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Sincerely, Dmitry Karasik From i.petro.77.00 на gmail.com Sat Feb 19 04:09:15 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sat, 19 Feb 2011 12:09:15 +0000 Subject: [Moscow.pm] =?koi8-r?b?4SDL1M8g0M/T1MfSydMgydPQz8zY2tXF1CDXINDS?= =?koi8-r?b?z8TBy9vFzsU/?= In-Reply-To: References: Message-ID: 19 февраля 2011 г. 10:15 пользователь Dmitry Konstantinov < konstantinov.dmitry на gmail.com> написал: > Кстати очень забавно получается. На проекте таких проблем нет, но после > запуска приведенного кода явно идут лики. Начал копать и обнаружил, что > если > > val INTEGER[] > > заменить на > > val INTEGER > > ну дык бага в cpan так и сформулирована "если используются массивы, то течет" > ну и массив на одномерный, то от ликов не остается и следа :) В проекте > векторами не пользуюсь, поэтому видимо и не наблюдаю подобного у себя. > > если массивы не использовать, то там еще как минимум пара багов написано про другие места с мемориликами. некоторые имеют даже патчи. так что можно наткнуться и на них :) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Sat Feb 19 04:15:07 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sat, 19 Feb 2011 12:15:07 +0000 Subject: [Moscow.pm] =?koi8-r?b?4SDL1M8g0M/T1MfSydMgydPQz8zY2tXF1CDXINDS?= =?koi8-r?b?z8TBy9vFzsU/?= In-Reply-To: <20110219110355.GA19103@tetsuo.karasik.eu.org> References: <20110219110355.GA19103@tetsuo.karasik.eu.org> Message-ID: > с другой стороны, патчи они оперативно вставляют, это хорошо ) > вот как раз никакая оперативность и удручает. три бага про leak'и открыто, два имеют патч и возраст более трех месяцев. а новой версии на cpan нет. спасибо авторам патча сказали и так же написали "ждите следующей версии" и три месяца ее нет ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Sun Feb 20 13:03:05 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 20 Feb 2011 21:03:05 +0000 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= Message-ID: Планируется тут один проект, в котором в частности будет сайт со всяким юзерским мусором. прямо так и подмывает попробовать сваять прямо вебсервер на AE и перед ним поставить nginx на раздачу статики... только чую огребу я трабел на этой дороге, но если получится должен быть проект который держит хорошую нагрузку... или всеж лучше Mojo взять и не парить мозги? если проект будет развиваться так как планируется, то нагрузка на сайт будет очень большой в перспективе ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From makarov.e.g на gmail.com Sun Feb 20 13:25:11 2011 From: makarov.e.g на gmail.com (Egor Makarov) Date: Mon, 21 Feb 2011 00:25:11 +0300 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: References: Message-ID: положу тут на всякий случай, не разбирался, просто наткнулся в твитерах: From makarov.e.g на gmail.com Sun Feb 20 13:25:55 2011 From: makarov.e.g на gmail.com (Egor Makarov) Date: Mon, 21 Feb 2011 00:25:55 +0300 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: References: Message-ID: упс. https://github.com/bfg/anyevent-mojolicious From shafiev на gmail.com Sun Feb 20 13:25:56 2011 From: shafiev на gmail.com (Naim Shafiev) Date: Mon, 21 Feb 2011 00:25:56 +0300 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: References: Message-ID: 21 февраля 2011 г. 0:03 пользователь Ivan Petrov написал: > Планируется тут один проект, в котором в частности будет сайт со всяким > юзерским мусором. прямо так и подмывает попробовать сваять прямо вебсервер > на AE и перед ним поставить nginx на раздачу статики... > Все упирается во время сколько ты на написание отличного от стандартного AnyEvent::HTTPD затратишь. Я советую использовать фреймворк типа Mojo или catalyst и уже конечное приложение запустить через сервер Starman > только чую огребу я трабел на этой дороге, но если получится должен быть > проект который держит хорошую нагрузку... > > или всеж лучше Mojo взять и не парить мозги? > если проект будет развиваться так как планируется, то нагрузка на сайт > будет очень большой в перспективе > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Sun Feb 20 13:30:40 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 20 Feb 2011 21:30:40 +0000 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: References: Message-ID: я просил поотговаривать, а не поуговаривать :) 20 февраля 2011 г. 21:25 пользователь Egor Makarov написал: > упс. https://github.com/bfg/anyevent-mojolicious > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From yu.pats на gmail.com Sun Feb 20 13:44:58 2011 From: yu.pats на gmail.com (Yuri Pats) Date: Sun, 20 Feb 2011 23:44:58 +0200 Subject: [Moscow.pm] =?utf-8?b?QW55RXZlbnQg0L/QvtC+0LTQs9C+0LLQsNGA0Lg=?= =?utf-8?b?0LLQsNC50YLQtSDQvNC10L3Rjw==?= In-Reply-To: References: Message-ID: Привет. Посмотри, что уже можно использовать из готового для "всяческого юзерского мусора", и если большую часть придется писать заново, то пиши заново хоть на ассемблере. 2011/2/20 Ivan Petrov : > Планируется тут один проект, в котором в частности будет сайт со всяким > юзерским мусором. прямо так и подмывает попробовать сваять прямо вебсервер > на AE и перед ним поставить nginx на раздачу статики... > только чую огребу я трабел на этой дороге, но если получится должен быть > проект который держит хорошую нагрузку... > > или всеж лучше Mojo взять и не парить мозги? > если проект будет развиваться так как планируется, то нагрузка на сайт будет > очень большой в перспективе > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- WBR, Yuri Pats skype: yuripats cellular: +375 (29) 5870723 From shafiev на gmail.com Sun Feb 20 13:47:29 2011 From: shafiev на gmail.com (Naim Shafiev) Date: Mon, 21 Feb 2011 00:47:29 +0300 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: References: Message-ID: 21 февраля 2011 г. 0:44 пользователь Yuri Pats написал: > Привет. > > Посмотри, что уже можно использовать из готового для "всяческого > юзерского мусора", и если большую часть придется писать заново, то > пиши заново хоть на ассемблере. > Да не надо велосипедов с квадратными колесами. Пошурши на модули на github, там есть много чего нету в cpan.org. Да и по AnyEvent можешь и напрямую и Марка лемманна спросить.Я по крайней мере так и делаю,и узнаю много чего :) > > 2011/2/20 Ivan Petrov : > > Планируется тут один проект, в котором в частности будет сайт со всяким > > юзерским мусором. прямо так и подмывает попробовать сваять прямо > вебсервер > > на AE и перед ним поставить nginx на раздачу статики... > > только чую огребу я трабел на этой дороге, но если получится должен быть > > проект который держит хорошую нагрузку... > > > > или всеж лучше Mojo взять и не парить мозги? > > если проект будет развиваться так как планируется, то нагрузка на сайт > будет > > очень большой в перспективе > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > > > -- > WBR, Yuri Pats > skype: yuripats > cellular: +375 (29) 5870723 > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From postmaster на softsearch.ru Sun Feb 20 13:56:40 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Mon, 21 Feb 2011 00:56:40 +0300 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: References: Message-ID: <217463266.20110221005640@softsearch.ru> Здравствуйте, Иван. А почему бы тогда на EV не писать? Возможностей больше. -- С уважением, Михаил Монашёв mailto:postmaster на softsearch.ru ICQ# 166233339 http://michael.mindmix.ru/ Без бэкапа по жизни. From sharifulin на gmail.com Sun Feb 20 22:10:33 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Mon, 21 Feb 2011 09:10:33 +0300 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: <217463266.20110221005640@softsearch.ru> References: <217463266.20110221005640@softsearch.ru> Message-ID: Если вам нужно делать что-то неблокирующее, то пишите на анивенте, если тупо работа с бд, рендер шаблонов, то асинхронность вам здесь не нужна, префорк модель самое то. On Monday, February 21, 2011, Михаил Монашёв wrote: > Здравствуйте, Иван. > > А почему бы тогда на EV не писать? Возможностей больше. > > -- > > С уважением, > Михаил Монашёв > mailto:postmaster на softsearch.ru > ICQ# 166233339 > http://michael.mindmix.ru/ > Без бэкапа по жизни. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Анатолий Шарифулин. From i.petro.77.00 на gmail.com Sun Feb 20 22:53:33 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Mon, 21 Feb 2011 09:53:33 +0300 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: References: Message-ID: > Да и по AnyEvent можешь и напрямую и Марка лемманна спросить.Я по крайней > мере так и делаю,и узнаю много чего :) > с Марком я тоже общаюсь :) вот он мне буквально вчера прислал багу на мой модуль :) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Sun Feb 20 22:55:56 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Mon, 21 Feb 2011 09:55:56 +0300 Subject: [Moscow.pm] =?koi8-r?b?QW55RXZlbnQg0M/PxMfP18HSydfBytTFIM3FztE=?= In-Reply-To: References: <217463266.20110221005640@softsearch.ru> Message-ID: > Если вам нужно делать что-то неблокирующее, то пишите на анивенте, > если тупо работа с бд, рендер шаблонов, то асинхронность вам здесь не > нужна, префорк модель самое то. > > есть проект node.js. там уже и рендеров шаблонов неблокирующих наделали и вроде по тестам которые они же публикуют у них получается очень впечатляющие результаты, соответственно интересно попробовать такую технологию но на перле :) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Mon Feb 21 01:37:09 2011 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Mon, 21 Feb 2011 12:37:09 +0300 Subject: [Moscow.pm] unpack H In-Reply-To: <4D5164FD.3050708@ali.org.ua> References: <4D515B8D.3060306@ali.org.ua> <4D5164FD.3050708@ali.org.ua> Message-ID: <413091298281030@web92.yandex.ru> Извините, но расскажите, пожалуйста, какая связь между unpack и ruby в контексте perl-а :) 08.02.2011, 18:45, "Oleg Alistratov" : > On 08.02.2011 17:31, Akzhan Abdulin wrote: > >>  Поскольку это не документировано, а реализаций ruby много, то лучше >>  считать регистр неопределённым. > > Руби ? он такой, да :) > > Глянул по реализации (perlvars.h, pp_pack.c) ? да, там lower-case. > Для себя решил на lc() сэкономить, а на случай резких изменений > покрыть такой случай тестами. > > -- > Олег Алистратов > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From akzhan.abdulin на gmail.com Mon Feb 21 01:48:36 2011 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Mon, 21 Feb 2011 12:48:36 +0300 Subject: [Moscow.pm] unpack H In-Reply-To: <413091298281030@web92.yandex.ru> References: <4D515B8D.3060306@ali.org.ua> <4D5164FD.3050708@ali.org.ua> <413091298281030@web92.yandex.ru> Message-ID: Это я уже попутал чутка пару конференций :) 21 февраля 2011 г. 12:37 пользователь Orlovsky Alexander < nordicdyno на yandex.ru> написал: > Извините, но расскажите, пожалуйста, какая связь между unpack и ruby в > контексте perl-а :) > > 08.02.2011, 18:45, "Oleg Alistratov" : > > On 08.02.2011 17:31, Akzhan Abdulin wrote: > > > >> Поскольку это не документировано, а реализаций ruby много, то лучше > >> считать регистр неопределённым. > > > > Руби ? он такой, да :) > > > > Глянул по реализации (perlvars.h, pp_pack.c) ? да, там lower-case. > > Для себя решил на lc() сэкономить, а на случай резких изменений > > покрыть такой случай тестами. > > > > -- > > Олег Алистратов > > -- > > 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 Andrei.Fedorov на sup.com Mon Feb 21 02:00:41 2011 From: Andrei.Fedorov на sup.com (Andrei Fedorov) Date: Mon, 21 Feb 2011 13:00:41 +0300 Subject: [Moscow.pm] =?koi8-r?b?4SDL1M8g0M/T1MfSydMgydPQz8zY2tXF1CDXINDS?= =?koi8-r?b?z8TBy9vFzsU/?= In-Reply-To: References: Message-ID: <8E15F377-B3A8-4894-8CED-0E4549BA510E@sup.com> DBD::Pg 2.11.5 На сервере запущено много различных сервисов, работающих с потоком новых постов, комментариев и событий в ЖЖ. Большинство сервисов используют постгрес. Никаких проблем с утечкой памяти нет. up 401 days. С уважением, Андрей Федоров Feb 16, 2011, в 12:28 AM, Ivan Petrov написал(а): > какие драйвера (DBD::Pg) используете? версии я имею ввиду. > > из последних версий там > 1. ноябрьская > 2. апрельская > > обе с мемори ликами > > вот такой код течет мегабайт в секунду где-то: > > #!/usr/bin/perl > > use strict; > use warnings; > use Data::Dumper; > use DBI; > > my $dbh = DBI->connect('dbi:Pg:dbname=Database;host=localhost', > login => 'XXXX'); > > $dbh->do('CREATE TEMPORARY TABLE tbl (id SERIAL PRIMARY KEY, val INTEGER[])'); > > our $cnt; > sub _flush_data > { > my ($array) = @_; > > my $sql = sprintf "INSERT INTO tbl (val) VALUES %s", > join ",", map '(?)', @$array; > > $dbh->do($sql, undef, @$array); > printf "saved: %d\n", scalar @$array; > } > > > while(1) { > my @ary; > push @ary, [ 0 .. int rand 10] for 0 .. int rand 50; > _flush_data(\@ary); > } > > > Пошел я отписаться в их багтрекере, а там еще кроме моего куча багов и тоже про мемори лики и причем в других местах. > я тут было по результатам тестов и ощущений хотел было новый проект на постгрисе замутить вместо mysql, но ситуация с DBD::Pg крайне удручает. если почти год лежит версия с утечками памяти и фиксов нету, то как ее использовать? она уже даже в Debian/stable блин попала... > From i.petro.77.00 на gmail.com Mon Feb 21 02:09:17 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Mon, 21 Feb 2011 13:09:17 +0300 Subject: [Moscow.pm] =?koi8-r?b?4SDL1M8g0M/T1MfSydMgydPQz8zY2tXF1CDXINDS?= =?koi8-r?b?z8TBy9vFzsU/?= In-Reply-To: <8E15F377-B3A8-4894-8CED-0E4549BA510E@sup.com> References: <8E15F377-B3A8-4894-8CED-0E4549BA510E@sup.com> Message-ID: 21 февраля 2011 г. 13:00 пользователь Andrei Fedorov написал: > DBD::Pg 2.11.5 > > спасибо за информацию, попробую эту версию > На сервере запущено много различных сервисов, работающих с потоком новых > постов, комментариев и событий в ЖЖ. Большинство сервисов используют > постгрес. Никаких проблем с утечкой памяти нет. > up 401 days. > > а приведенный тест не могли бы Вы запустить, посмотреть течет или нет? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zhecka на gmail.com Tue Feb 22 10:37:25 2011 From: zhecka на gmail.com (Eugene Kaltashkin) Date: Tue, 22 Feb 2011 21:37:25 +0300 Subject: [Moscow.pm] Redmine Message-ID: Доброе время суток. Отцы, а никто не писал модулей для работы с Redmine API ? Интерессует работа с wiki в автоматическом режиме. Или может кто сталкивался ? -- Best Regards ZHECKA-RIPN From i.petro.77.00 на gmail.com Wed Feb 23 01:07:26 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 23 Feb 2011 09:07:26 +0000 Subject: [Moscow.pm] =?koi8-r?b?4dXUxc7UycbJy8HDydEvwdfUz9LJ2sHDydE=?= Message-ID: В рамках технологии "подписать выставленные куки" возникает соблазн не проверять сабж делая запросы в БД, а чисто используя информацию из куков (ну а в критических случаях, разумеется перепроверять). Пользователи сайта часто просто кликают по страничкам и бОльшая часть траффика - чтение а не запись, так что в сочетании с кешированием можно снизить нагрузку на сервер. заводим на пользователя секретный ключ, считаем md5/sha от выставленных ему кук и ключа и вкладываем в куки же (так работает например Mojo). до тех пор пока пользователь выполняет действия "чтение/просмотр" считаем что авторизация/аутентификация им пройдена если имеется валидный кук с его id. а кто что думает по этому поводу? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From meettya на gmail.com Wed Feb 23 01:23:51 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Wed, 23 Feb 2011 12:23:51 +0300 Subject: [Moscow.pm] =?utf-8?b?0JDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjRjy8=?= =?utf-8?b?0LDQstGC0L7RgNC40LfQsNGG0LjRjw==?= In-Reply-To: References: Message-ID: Ну, ebay делает примерно так же. Узнает тебя при заходе, но при совершении ставок или ковырянии в настройках требует авторизоваться. Типа длинной сессии и короткой сессии на одом пользователе. Вопрос-то в чем :) ? Митяй. On Feb 23, 2011, at 12:07 PM, Ivan Petrov wrote: > В рамках технологии "подписать выставленные куки" возникает соблазн не проверять сабж делая запросы в БД, а чисто используя информацию из куков (ну а в критических случаях, разумеется перепроверять). Пользователи сайта часто просто кликают по страничкам и бОльшая часть траффика - чтение а не запись, так что в сочетании с кешированием можно снизить нагрузку на сервер. > > заводим на пользователя секретный ключ, считаем md5/sha от выставленных ему кук и ключа и вкладываем в куки же (так работает например Mojo). > до тех пор пока пользователь выполняет действия "чтение/просмотр" считаем что авторизация/аутентификация им пройдена если имеется валидный кук с его id. > > а кто что думает по этому поводу? > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From i.petro.77.00 на gmail.com Wed Feb 23 01:27:17 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 23 Feb 2011 09:27:17 +0000 Subject: [Moscow.pm] =?koi8-r?b?4dXUxc7UycbJy8HDydEvwdfUz9LJ2sHDydE=?= In-Reply-To: References: Message-ID: > Ну, ebay делает примерно так же. Узнает тебя при заходе, но при совершении > ставок или ковырянии в настройках требует авторизоваться. > Типа длинной сессии и короткой сессии на одом пользователе. > Вопрос-то в чем :) ? > вопрос как раз в том насколько такой схеме можно доверять и где таковая применяется :) за пример ebay спасибо ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sharifulin на gmail.com Wed Feb 23 01:49:54 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Wed, 23 Feb 2011 12:49:54 +0300 Subject: [Moscow.pm] =?koi8-r?b?4dXUxc7UycbJy8HDydEvwdfUz9LJ2sHDydE=?= In-Reply-To: References: Message-ID: Использую на проекте Frodio с октября, работает. Проблемы всего три могут быть: обновление данных в такой куке, следить за длинной куки (4 кб) и удаление таких кук. Пока все решаемо :) On Wednesday, February 23, 2011, Ivan Petrov wrote: > > Ну, ebay делает примерно так же. Узнает тебя при заходе, но при совершении ставок или ковырянии в настройках требует авторизоваться. > Типа длинной сессии и короткой сессии на одом пользователе. > Вопрос-то в чем :) ? > > вопрос как раз в том насколько такой схеме можно доверять и где таковая применяется :) > > за пример ebay спасибо > -- С уважением, Анатолий Шарифулин. From i.petro.77.00 на gmail.com Wed Feb 23 02:04:08 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 23 Feb 2011 10:04:08 +0000 Subject: [Moscow.pm] =?koi8-r?b?4dXUxc7UycbJy8HDydEvwdfUz9LJ2sHDydE=?= In-Reply-To: References: Message-ID: 23 февраля 2011 г. 9:49 пользователь Анатолий Шарифулин < sharifulin на gmail.com> написал: > Использую на проекте Frodio с октября, работает. Проблемы всего три > могут быть: обновление данных в такой куке, следить за длинной куки (4 > кб) и удаление таких кук. Пока все решаемо :) > > а еще там есть такая проблема: если доступ к какому-то ресурсу прекращается не по инициативе пользователя, а скажем по инициативе администратора итп, то получается эту ситуацию разрешить относительно непросто. либо просто через таймаут таки перепроверять авторизацию? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From onokonem на gmail.com Wed Feb 23 02:05:44 2011 From: onokonem на gmail.com (Daniel Podolsky) Date: Wed, 23 Feb 2011 13:05:44 +0300 Subject: [Moscow.pm] =?koi8-r?b?4dXUxc7UycbJy8HDydEvwdfUz9LJ2sHDydE=?= In-Reply-To: References: Message-ID: я именно такой схемой пользуюсь, только в куку зашито еще время жизни. кука при каждом запросе обновляется-пересчитывается на фронтенде. 2011/2/23 Ivan Petrov : > В рамках технологии "подписать выставленные куки" возникает соблазн не > проверять сабж делая запросы в БД, а чисто используя информацию из куков (ну > а в критических случаях, разумеется перепроверять). Пользователи сайта часто > просто кликают по страничкам и бОльшая часть траффика - чтение а не запись, > так что в сочетании с кешированием можно снизить нагрузку на сервер. > > заводим на пользователя секретный ключ, считаем  md5/sha от выставленных ему > кук и ключа и вкладываем в куки же (так работает например Mojo). > до тех пор пока пользователь выполняет действия "чтение/просмотр" считаем > что авторизация/аутентификация им пройдена если имеется валидный кук с его > id. > > а кто что думает по этому поводу? > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > From sekret на hackerdom.ru Wed Feb 23 03:09:06 2011 From: sekret на hackerdom.ru (=?KOI8-R?B?5dfHxc7J0SDr0snXz9vFxdfB?=) Date: Wed, 23 Feb 2011 16:09:06 +0500 Subject: [Moscow.pm] =?koi8-r?b?8NLB2sTOycsh?= Message-ID: С 23 февраля, дорогие мужчины! Хоть Вы не носите мундира, Но знаем мы, что в трудный час Вы так же, как и все солдаты, Спасете Родину и нас. -- Евгения From sharifulin на gmail.com Wed Feb 23 03:41:25 2011 From: sharifulin на gmail.com (=?KOI8-R?B?4c7B1M/Mycog+8HSycbVzMnO?=) Date: Wed, 23 Feb 2011 14:41:25 +0300 Subject: [Moscow.pm] =?koi8-r?b?4dXUxc7UycbJy8HDydEvwdfUz9LJ2sHDydE=?= In-Reply-To: References: Message-ID: И что? Проверка куки все равно в коде есть, там можно и бан добавить :) Я пользуюсь только временем жизни самой куки On Wednesday, February 23, 2011, Ivan Petrov wrote: > > > 23 февраля 2011 г. 9:49 пользователь Анатолий Шарифулин написал: > > Использую на проекте Frodio с октября, работает. Проблемы всего три > могут быть: обновление данных в такой куке, следить за длинной куки (4 > кб) и удаление таких кук. Пока все решаемо :) > > а еще там есть такая проблема: если доступ к какому-то ресурсу прекращается не по инициативе пользователя, а скажем по инициативе администратора итп, то получается эту ситуацию разрешить относительно непросто. либо просто через таймаут таки перепроверять авторизацию? > -- С уважением, Анатолий Шарифулин. From timur на myakinin.com Wed Feb 23 05:27:24 2011 From: timur на myakinin.com (Timur Myakinin) Date: Wed, 23 Feb 2011 16:27:24 +0300 Subject: [Moscow.pm] =?koi8-r?b?8NLB2sTOycsh?= In-Reply-To: References: Message-ID: <53F220EB-063B-4B3D-8A66-330A7FB417A8@myakinin.com> Спасибо!&) 23.02.2011, в 14:09, Евгения Кривошеева написал(а): > С 23 февраля, дорогие мужчины! > > Хоть Вы не носите мундира, > Но знаем мы, что в трудный час > Вы так же, как и все солдаты, > Спасете Родину и нас. > > > -- > Евгения > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From chesnokov.ilya на gmail.com Wed Feb 23 23:36:19 2011 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Thu, 24 Feb 2011 10:36:19 +0300 Subject: [Moscow.pm] =?utf-8?b?0JDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjRjy8=?= =?utf-8?b?0LDQstGC0L7RgNC40LfQsNGG0LjRjw==?= In-Reply-To: References: Message-ID: 23 февраля 2011 г. 12:07 пользователь Ivan Petrov написал: > а кто что думает по этому поводу? Собственно, на эту тему Каппа делал доклад на встрече Moscow.pm: kapranoff.ru/nosessions -- Ilya Chesnokov From ali на ali.org.ua Thu Feb 24 03:23:40 2011 From: ali на ali.org.ua (Oleg Alistratov) Date: Thu, 24 Feb 2011 13:23:40 +0200 Subject: [Moscow.pm] =?utf-8?b?0JDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjRjy8=?= =?utf-8?b?0LDQstGC0L7RgNC40LfQsNGG0LjRjw==?= In-Reply-To: References: Message-ID: <4D663FBC.8070507@ali.org.ua> On 23.02.2011 11:27, Ivan Petrov wrote: > Ну, ebay делает примерно так же. Узнает тебя при заходе, но при > совершении ставок или ковырянии в настройках требует авторизоваться. > Типа длинной сессии и короткой сессии на одом пользователе. > Вопрос-то в чем :) ? > > > вопрос как раз в том насколько такой схеме можно доверять и где таковая > применяется :) > > за пример ebay спасибо Как раз ebay и особливо amazon жутко бесят своим интерфейсом авторизации. Хочется взять и это самое. Основной проблемой сессий на клиенте считаю невозможность сделать logout everywhere -> отсюда необходимость делать куки быстро протухаемыми -> отсюда постоянные запросы на авторизацию. Ну и трафик лишний, да. Причем местами значительный, и тогда надо начинать пляску вокруг доменов и path. Ну и все равно все что надо для жизни на клиента обычно не положишь ? всегда есть что хранить на сервере для залогиненного посетителя, а то смысл тогда логинить его. Через это не люблю я клиентские сессии. -- Олег Алистратов From postmaster на softsearch.ru Thu Feb 24 09:53:00 2011 From: postmaster на softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Thu, 24 Feb 2011 20:53:00 +0300 Subject: [Moscow.pm] =?koi8-r?b?4dXUxc7UycbJy8HDydEvwdfUz9LJ2sHDydE=?= In-Reply-To: References: Message-ID: <84068438.20110224205300@softsearch.ru> Здравствуйте, Иван. IP> В рамках технологии "подписать выставленные куки" возникает IP> соблазн не проверять сабж делая запросы в БД, а чисто используя IP> информацию из куков (ну а в критических случаях, разумеется IP> перепроверять). Пользователи сайта часто просто кликают по IP> страничкам и бОльшая часть траффика - чтение а не запись, так что IP> в сочетании с кешированием можно снизить нагрузку на сервер. IP> заводим на пользователя секретный ключ, считаем  md5/sha от IP> выставленных ему кук и ключа и вкладываем в куки же (так работает IP> например Mojo). IP> до тех пор пока пользователь выполняет действия IP> "чтение/просмотр" считаем что авторизация/аутентификация им IP> пройдена если имеется валидный кук с его id. А как предполагается авторизировать юзера, когда он что-то пишет в БД? -- С уважением, Михаил Монашёв mailto:postmaster на softsearch.ru ICQ# 166233339 http://michael.mindmix.ru/ Без бэкапа по жизни. From meettya на gmail.com Fri Feb 25 08:12:53 2011 From: meettya на gmail.com (Dmitry Karpich) Date: Fri, 25 Feb 2011 19:12:53 +0300 Subject: [Moscow.pm] =?utf-8?b?0J3QtSDQvNC+0LPRgyDQv9C+0L3Rj9GC0Ywg0LA=?= =?utf-8?b?0YHQuNC90YXRgNC+0L3QvdC+0YHRgtGMIChNb2pvWDo6UmVkaXMgLSDQutCw?= =?utf-8?b?0Log0L7RgtCy0LXRgi3RgtC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjD8p?= Message-ID: <6D71818F-2393-4BF6-9AD5-E18FF5AB6207@gmail.com> Господа, можно какой-то ликбез или хорошую ссылку на работу с асинхронными вариантами? Вопрос применительно к такой ситуации - есть некий степ (страница) в Mojolicious, на котором мне нужно, положим, сходить в 2 разные базы, ну или пару разных запросов сделать - не суть. Вот есть дока, по MojoX::Redis, в которой все очень просто $redis->get(key => sub { my ($redis, $res) = @_; print "Value of ' key ' is $res->[0]\n"; }) Оно, конечно же, работает и печатает. Только смысла для меня в этом никакого, мне же данные нужно в скрипт получить. Как до них добраться-то? Или может я как-то глобально не так понимаю концепцию? Заранее всем спасибо. Митяй. From konstantinov.dmitry на gmail.com Fri Feb 25 22:57:39 2011 From: konstantinov.dmitry на gmail.com (Dmitry Konstantinov) Date: Sat, 26 Feb 2011 09:57:39 +0300 Subject: [Moscow.pm] =?koi8-r?b?7sUgzc/H1SDQz87R1NggwdPJzsjSz87Oz9PU2CAo?= =?koi8-r?b?TW9qb1g6OlJlZGlzIC0gy8HLIM/U18XULdTPIMnT0M/M2NrP18HU?= =?koi8-r?b?2D8p?= In-Reply-To: <6D71818F-2393-4BF6-9AD5-E18FF5AB6207@gmail.com> References: <6D71818F-2393-4BF6-9AD5-E18FF5AB6207@gmail.com> Message-ID: Привет! Я не уловил в чем суть проблемы с передачей данных в скрипт? Что мешает в сабе работать с переменными скрипта? 25 февраля 2011 г. 19:12 пользователь Dmitry Karpich написал: > Господа, можно какой-то ликбез или хорошую ссылку на работу с асинхронными >> вариантами? > > >> Вопрос применительно к такой ситуации - > > есть некий степ (страница) в Mojolicious, на котором мне нужно, положим, >> сходить в 2 разные базы, ну или пару разных запросов сделать - не суть. > > > Вот есть дока, по MojoX::Redis, в которой все очень просто > > $redis->get(key => sub { > my ($redis, $res) = @_; > > print "Value of ' key ' is $res->[0]\n"; > }) > Оно, конечно же, работает и печатает. Только смысла для меня в этом > никакого, мне же данные нужно в скрипт получить. Как до них добраться-то? > > -- С уважением, Дмитрий ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Sat Feb 26 08:04:17 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sat, 26 Feb 2011 16:04:17 +0000 Subject: [Moscow.pm] =?koi8-r?b?z9DSxcTFzMnU2CBibGVzc2VkIM/C38XL1A==?= Message-ID: а как определить на перле что вот эта данная ссылка есть bless'еd объект? пока определяю так: if ("$obj" =~ /=/) то есть приводим к строке, дальше ее по сути парсим. на XS это делается легко, но XS использовать не хочется, от регулярных выражений так же хочется отказаться, а так же надо бы и тот случай в котором привод к строке (overload) прописан тоже распознавать как-то. как сделать сабж? брать ref и сравнивать его со всеми допустимыми вариантами не blessed ссылок? то есть если ref !~ /^(SCALAR|ARRAY|HASH|CODE|REF|GLOB|Regexp|VSTRING|IO)$/ изящнее вариант есть? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evgeniy на kosov.su Sat Feb 26 08:06:11 2011 From: evgeniy на kosov.su (Evgeniy Kosov) Date: Sat, 26 Feb 2011 19:06:11 +0300 Subject: [Moscow.pm] =?koi8-r?b?z9DSxcTFzMnU2CBibGVzc2VkIM/C38XL1A==?= In-Reply-To: References: Message-ID: <4D6924F3.502@kosov.su> On 26.02.2011 19:04, Ivan Petrov wrote: > а как определить на перле что вот эта данная ссылка есть bless'еd объект? >[...] > изящнее вариант есть? Есть: use Scalar::Util 'blessed'; if( blessed $ref ) { # ... } -- BR, Evgeniy Kosov From i.petro.77.00 на gmail.com Sat Feb 26 08:09:40 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sat, 26 Feb 2011 16:09:40 +0000 Subject: [Moscow.pm] =?koi8-r?b?z9DSxcTFzMnU2CBibGVzc2VkIM/C38XL1A==?= In-Reply-To: <4D6924F3.502@kosov.su> References: <4D6924F3.502@kosov.su> Message-ID: > use Scalar::Util 'blessed'; > > if( blessed $ref ) { > # ... > } > о, спасибо, про Scalar::Util я знал, но чет blessed в нем посмотреть забыл :) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From greyhard на gmail.com Sun Feb 27 05:32:40 2011 From: greyhard на gmail.com (=?KOI8-R?B?5MXOydMg6czYyc7ZyA==?=) Date: Sun, 27 Feb 2011 16:32:40 +0300 Subject: [Moscow.pm] =?koi8-r?b?8M/E08vB1snUxSDLwcsg19nUwd3J1NggwdTUwd7J?= =?koi8-r?b?IMnaINDJ09jNwQ==?= Message-ID: Подскажите есть ли Модуль для сохранения аттачей из письма. допустим есть письмо с аттачами file.png и file.rar делаем вызов @files = module->save_attachments($msg); и получаем список файлов для дальнейшей работы с ними ... или чтото похожее.. тело сообщения вида. ------==--bound.207.web143.yandex.ru Content-Transfer-Encoding: 7bit Content-Type: text/plain asdasd ------==--bound.207.web143.yandex.ru Content-Disposition: attachment; filename="=?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0LfQsNC/0YDQvtGB0L7Qsi5yYXI=?=" Content-Transfer-Encoding: base64 Content-Type: application/rar; name="=?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0LfQsNC/0YDQvtGB0L7Qsi5yYXI=?=" UmFyIRoHAM+QcwAADQAAAAAAAABaa3QgklQA3AsAAAA4AAAC6ttq3GG6fD0dMy8AIAAAAJHioOKo /**/ H8ff/EDEPXsAQAcA ------==--bound.207.web143.yandex.ru-- Спасибо ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From aml на rulezz.ru Sun Feb 27 05:46:00 2011 From: aml на rulezz.ru (Alexander Lourier) Date: Sun, 27 Feb 2011 16:46:00 +0300 Subject: [Moscow.pm] =?windows-1251?b?z+7k8erg5ujy5SDq4Oog4vvy4Pno8vwg4PLy?= =?windows-1251?b?4PfoIOjnIO/o8fzs4A==?= In-Reply-To: References: Message-ID: <201102271646.00292.aml@rulezz.ru> В сообщении от Воскресенье 27 февраля 2011 16:32:40 автор Денис Ильиных написал: > Подскажите есть ли Модуль для сохранения аттачей из письма. > > допустим есть письмо с аттачами file.png и file.rar > делаем вызов @files = module->save_attachments($msg); > > и получаем список файлов для дальнейшей работы с ними ... или чтото > похожее.. Посмотрите MIME::Parser и MIME::Parser::Filer From andrei.protasovitski на gmail.com Sun Feb 27 05:47:27 2011 From: andrei.protasovitski на gmail.com (Andrei) Date: Sun, 27 Feb 2011 14:47:27 +0100 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC00YHQutCw0LbQuNGC0LUg0LrQsNC6INCy?= =?utf-8?b?0YvRgtCw0YnQuNGC0Ywg0LDRgtGC0LDRh9C4INC40Lcg0L/QuNGB0Yw=?= =?utf-8?b?0LzQsA==?= In-Reply-To: References: Message-ID: Email::MIME, например. Там есть метод parts и метод subparts, которые достают части письма. Каждая часть имеет Content-Type. Можно считать, что всё, что text/plain и text/html само письмо, остальное -- приложения. Учитывая, что многие популярные почтовики на приборе вертели RFC, такого подхода должно быть достаточно в большинстве случаев. Для более правильного вынимания приложений нужно быдет попотеть. 27 февраля 2011 г. 14:32 пользователь Денис Ильиных написал: > Подскажите есть ли Модуль для сохранения аттачей из письма. > > допустим есть письмо с аттачами file.png и file.rar > делаем вызов @files = module->save_attachments($msg); > > и получаем список файлов для дальнейшей работы с ними ... или чтото > похожее.. > > тело сообщения вида. > > ------==--bound.207.web143.yandex.ru > Content-Transfer-Encoding: 7bit > Content-Type: text/plain > > asdasd > ------==--bound.207.web143.yandex.ru > Content-Disposition: attachment; > > filename="=?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0LfQsNC/0YDQvtGB0L7Qsi5yYXI=?=" > Content-Transfer-Encoding: base64 > Content-Type: application/rar; > > name="=?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0LfQsNC/0YDQvtGB0L7Qsi5yYXI=?=" > > > UmFyIRoHAM+QcwAADQAAAAAAAABaa3QgklQA3AsAAAA4AAAC6ttq3GG6fD0dMy8AIAAAAJHioOKo > /**/ > H8ff/EDEPXsAQAcA > ------==--bound.207.web143.yandex.ru-- > > > Спасибо > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Andrei Protasovitski < andrei[dot]protasovitski[at]gmail[dot]com > Diemen, Netherlands ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Sun Feb 27 13:49:41 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Sun, 27 Feb 2011 21:49:41 +0000 Subject: [Moscow.pm] =?koi8-r?b?d2Vha2VuIHdpdGggxtXOy8PJyQ==?= Message-ID: некий код: sub method { my $self = shift; ... $self->{handle} = AnyEvent::Handle fh => $fh, on_error => sub { $self->{error} = $! }; ... } получается что каллбек цепляет ссылку на $self и из за него деструктор вызван не может быть до тех пор пока handle не уничтожится. в случае с просто ссылками - понятно: weaken на них. а здесь куда можно weaken натравить чтобы деструктор у такого объекта работал? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From aml на rulezz.ru Sun Feb 27 22:11:20 2011 From: aml на rulezz.ru (Alexander Lourier) Date: Mon, 28 Feb 2011 09:11:20 +0300 Subject: [Moscow.pm] =?windows-1251?b?d2Vha2VuIHdpdGgg9PPt6vbo6A==?= In-Reply-To: References: Message-ID: <201102280911.20701.aml@rulezz.ru> В письме Monday 28 February 2011 00:49:41 Ivan Petrov написал: > некий код: > > sub method > { > my $self = shift; > ... > $self->{handle} = AnyEvent::Handle fh => $fh, on_error => sub { > $self->{error} = $! }; > ... > } > > получается что каллбек цепляет ссылку на $self и из за него деструктор > вызван не может быть до тех пор пока handle не уничтожится. > в случае с просто ссылками - понятно: weaken на них. а здесь куда можно > weaken натравить чтобы деструктор у такого объекта работал? После $self = shift; добавить weaken($self); -- Alexander Lourier, http://aml.rulezz.ru/ From i.petro.77.00 на gmail.com Sun Feb 27 22:49:51 2011 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Mon, 28 Feb 2011 09:49:51 +0300 Subject: [Moscow.pm] =?koi8-r?b?d2Vha2VuIHdpdGggxtXOy8PJyQ==?= In-Reply-To: <201102280911.20701.aml@rulezz.ru> References: <201102280911.20701.aml@rulezz.ru> Message-ID: > > некий код: > > > > sub method > > { > > my $self = shift; > > ... > > $self->{handle} = AnyEvent::Handle fh => $fh, on_error => sub { > > $self->{error} = $! }; > > ... > > } > > > > получается что каллбек цепляет ссылку на $self и из за него деструктор > > вызван не может быть до тех пор пока handle не уничтожится. > > в случае с просто ссылками - понятно: weaken на них. а здесь куда можно > > weaken натравить чтобы деструктор у такого объекта работал? > > После $self = shift; добавить weaken($self); > В этом случае если эта работа делается внутри конструктора, то добавление такого weaken приводит к тому что вместо указателя на объект возвращается какая-то ахинея. вот такой тест: #!/usr/bin/perl use warnings; use strict; use utf8; use open qw(:std :utf8); package TestW; use AnyEvent::Handle; use Scalar::Util qw(weaken); sub new { my ($class, $fh) = @_; my $self = bless { } => $class; # weaken $self; $self->{handle} = new AnyEvent::Handle fh => $fh, on_error => sub { $self->{error} = $! }; return $self; } package main; use Data::Dumper; my $o = new TestW(\*STDIN); print Dumper $o; печатает на выходе следующее: $VAR1 = bless( { 'handle' => bless( { '_activity' => '1298875336.78856', '_ractivity' => '1298875336.78856', '_wactivity' => '1298875336.78856', 'fh' => \*::STDIN, 'oobinline' => 1, 'on_error' => sub { "DUMMY" } }, 'AnyEvent::Handle' ) }, 'TestW' ); теперь если раскоментировать weaken, то объект превратится в простой хеш: $VAR1 = { 'handle' => bless( { '_activity' => '1298875430.28919', '_ractivity' => '1298875430.28919', '_wactivity' => '1298875430.28919', 'fh' => \*::STDIN, 'oobinline' => 1, 'on_error' => sub { "DUMMY" } }, 'AnyEvent::Handle' ) }; и как быть? Perl 5.10.1 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vovkasm на gmail.com Sun Feb 27 23:39:29 2011 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Mon, 28 Feb 2011 10:39:29 +0300 Subject: [Moscow.pm] =?utf-8?b?d2Vha2VuIHdpdGgg0YTRg9C90LrRhtC40Lg=?= In-Reply-To: References: <201102280911.20701.aml@rulezz.ru> Message-ID: 2011/2/28 Ivan Petrov : > >> > некий код: >> > >> > sub method >> > { >> >    my $self = shift; >> >    ... >> >    $self->{handle} = AnyEvent::Handle fh => $fh, on_error => sub { >> > $self->{error} = $! }; >> >    ... >> > } >> > >> > получается что каллбек цепляет ссылку на $self и из за него деструктор >> > вызван не может быть до тех пор пока handle не уничтожится. >> > в случае с просто ссылками - понятно: weaken на них. а здесь куда можно >> > weaken натравить чтобы деструктор у такого объекта работал? >> >> После $self = shift; добавить weaken($self); > > В этом случае если эта работа делается внутри конструктора, то добавление > такого weaken приводит к тому что вместо указателя на объект возвращается > какая-то ахинея. > > вот такой тест: > > #!/usr/bin/perl > > use warnings; > use strict; > > use utf8; > use open qw(:std :utf8); > > package TestW; > use AnyEvent::Handle; > use Scalar::Util qw(weaken); > > > sub new { >     my ($class, $fh) = @_; > >     my $self = bless {  } => $class; > #     weaken $self; >     $self->{handle} = new AnyEvent::Handle >         fh => $fh, >         on_error => sub { $self->{error} = $! }; >     return $self; > } > > package main; > use Data::Dumper; > > my $o = new TestW(\*STDIN); > print Dumper $o; > > печатает на выходе следующее: > > $VAR1 = bless( { >                  'handle' => bless( { >                                     '_activity' => '1298875336.78856', >                                     '_ractivity' => '1298875336.78856', >                                     '_wactivity' => '1298875336.78856', >                                     'fh' => \*::STDIN, >                                     'oobinline' => 1, >                                     'on_error' => sub { "DUMMY" } >                                   }, 'AnyEvent::Handle' ) >                }, 'TestW' ); > > теперь если раскоментировать weaken, то объект превратится в простой хеш: > > $VAR1 = { >           'handle' => bless( { >                              '_activity' => '1298875430.28919', >                              '_ractivity' => '1298875430.28919', >                              '_wactivity' => '1298875430.28919', >                              'fh' => \*::STDIN, >                              'oobinline' => 1, >                              'on_error' => sub { "DUMMY" } >                            }, 'AnyEvent::Handle' ) >         }; > > и как быть? Я бы так делал: sub new { my ($class, $fh) = @_; my $self = bless( {}, $class); my $me = $self; weaken $me; $self->{handle} = AnyEvent::Handle->new( fh => $fh, on_error => sub { return unless $me; $me->{error} = $! } ); return $self; } Просто когда вы делаете weaken на ссылку на объект, на который ссылок нет больше, то этот объект естественно уничтожается сразу. > Perl 5.10.1 > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Vladimir Timofeev From aml на rulezz.ru Mon Feb 28 00:48:02 2011 From: aml на rulezz.ru (Alexander Lourier) Date: Mon, 28 Feb 2011 11:48:02 +0300 Subject: [Moscow.pm] =?windows-1251?b?d2Vha2VuIHdpdGgg9PPt6vbo6A==?= In-Reply-To: References: <201102280911.20701.aml@rulezz.ru> Message-ID: <201102281148.03941.aml@rulezz.ru> В письме Monday 28 February 2011 09:49:51 Ivan Petrov написал: > > > получается что каллбек цепляет ссылку на $self и из за него деструктор > > > вызван не может быть до тех пор пока handle не уничтожится. > > > в случае с просто ссылками - понятно: weaken на них. а здесь куда можно > > > weaken натравить чтобы деструктор у такого объекта работал? > > > > После $self = shift; добавить weaken($self); > > В этом случае если эта работа делается внутри конструктора, то добавление > такого weaken приводит к тому что вместо указателя на объект возвращается > какая-то ахинея. У вас объект уничтожается раньше, чем вы его присвоить успеваете. Такое может быть и не в конструкторе (даже в примере, который вы приводили), если использовать класс так: "YourClass->new()->method()". Тогда и внутри не конструктора объект уничтожится. Решение с my $self2 = $self; weaken($self2); рядом уже предложили. -- Alexander Lourier, http://aml.rulezz.ru/ From a.bovanenko на gmail.com Mon Feb 28 01:51:00 2011 From: a.bovanenko на gmail.com (Alexey Bovanenko) Date: Mon, 28 Feb 2011 01:51:00 -0800 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC00YHQutCw0LbQuNGC0LUg0LrQsNC6INCy?= =?utf-8?b?0YvRgtCw0YnQuNGC0Ywg0LDRgtGC0LDRh9C4INC40Lcg0L/QuNGB0Yw=?= =?utf-8?b?0LzQsA==?= In-Reply-To: References: Message-ID: Сам использую MIME::Parser. Работает очень неплохо. 2011/2/27 Andrei > Email::MIME, например. Там есть метод parts и метод subparts, которые > достают части письма. Каждая часть имеет Content-Type. Можно считать, что > всё, что text/plain и text/html само письмо, остальное -- приложения. > > Учитывая, что многие популярные почтовики на приборе вертели RFC, такого > подхода должно быть достаточно в большинстве случаев. Для более правильного > вынимания приложений нужно быдет попотеть. > > 27 февраля 2011 г. 14:32 пользователь Денис Ильиных написал: > >> Подскажите есть ли Модуль для сохранения аттачей из письма. >> >> допустим есть письмо с аттачами file.png и file.rar >> делаем вызов @files = module->save_attachments($msg); >> >> и получаем список файлов для дальнейшей работы с ними ... или чтото >> похожее.. >> >> тело сообщения вида. >> >> ------==--bound.207.web143.yandex.ru >> Content-Transfer-Encoding: 7bit >> Content-Type: text/plain >> >> asdasd >> ------==--bound.207.web143.yandex.ru >> Content-Disposition: attachment; >> >> filename="=?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0LfQsNC/0YDQvtGB0L7Qsi5yYXI=?=" >> Content-Transfer-Encoding: base64 >> Content-Type: application/rar; >> >> name="=?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0LfQsNC/0YDQvtGB0L7Qsi5yYXI=?=" >> >> >> UmFyIRoHAM+QcwAADQAAAAAAAABaa3QgklQA3AsAAAA4AAAC6ttq3GG6fD0dMy8AIAAAAJHioOKo >> /**/ >> H8ff/EDEPXsAQAcA >> ------==--bound.207.web143.yandex.ru-- >> >> >> Спасибо >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> > > > -- > Andrei Protasovitski > < andrei[dot]protasovitski[at]gmail[dot]com > > Diemen, Netherlands > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- With regards, Alexei Bovanenko ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From Kostya на yandex.ru Mon Feb 28 03:06:42 2011 From: Kostya на yandex.ru (=?koi8-r?B?68/T1NEg9MXO?=) Date: Mon, 28 Feb 2011 14:06:42 +0300 Subject: [Moscow.pm] =?koi8-r?b?8M/E08vB1snUxSDLwcsg19nUwd3J1NggwdTUwd7J?= =?koi8-r?b?IMnaINDJ09jNwQ==?= In-Reply-To: References: Message-ID: <173241298891202@web11.yandex.ru> http://search.cpan.org/~makler/MIME-Fast-1.6/Fast.pod 28.02.2011, 12:51, "Alexey Bovanenko" : > Сам использую MIME::Parser. Работает очень неплохо. > > 2011/2/27 Andrei >> Email::MIME, например. Там есть метод parts и метод subparts, которые достают части письма. Каждая часть имеет Content-Type. Можно считать, что всё, что text/plain и text/html само письмо, остальное -- приложения. >> >> Учитывая, что многие популярные почтовики на приборе вертели RFC, такого подхода должно быть достаточно в большинстве случаев. Для более правильного вынимания приложений нужно быдет попотеть. >> >> 27 февраля 2011 г. 14:32 пользователь Денис Ильиных написал: >>> Подскажите есть ли Модуль для сохранения аттачей из письма. >>> >>> допустим есть письмо с аттачами file.png и file.rar >>> делаем вызов @files  = module->save_attachments($msg); >>> >>> и получаем список файлов для дальнейшей работы с ними ... или чтото похожее.. >>> >>> тело сообщения вида. >>> >>> ------==--bound.207.web143.yandex.ru >>> Content-Transfer-Encoding: 7bit >>> Content-Type: text/plain >>> >>> asdasd >>> ------==--bound.207.web143.yandex.ru >>> Content-Disposition: attachment; >>>         filename="=?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0LfQsNC/0YDQvtGB0L7Qsi5yYXI=?=" >>> Content-Transfer-Encoding: base64 >>> Content-Type: application/rar; >>>         name="=?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0LfQsNC/0YDQvtGB0L7Qsi5yYXI=?=" >>> >>> UmFyIRoHAM+QcwAADQAAAAAAAABaa3QgklQA3AsAAAA4AAAC6ttq3GG6fD0dMy8AIAAAAJHioOKo >>> /**/ >>> H8ff/EDEPXsAQAcA >>> ------==--bound.207.web143.yandex.ru-- >>> >>> Спасибо >>> >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >> >> -- >> Andrei Protasovitski >> < andrei[dot]protasovitski[at]gmail[dot]com > >> Diemen, Netherlands >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- > With regards, > Alexei Bovanenko > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Костя Тен