[Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?
День добрый. Локализация $DB::single работает без проблем, но если брать ссылку на неё, то возникают проблемы: The localization of $DB::single works fine, but the reference to it does not work: { $DB::single = 7; my $x = \$DB::single; print "Before: ". \$DB::single ." <<$x $$x\n"; local $DB::single = 0; print "After: ". \$DB::single ." <<$x $$x\n"; } The output/Вывод Before: SCALAR(0x10f8310) <
Re: [Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?
>И уж совсем не понятно, что же вы пытались сделать, что в итоге такой кусок кода получился ))) Хотел положить ссылки на $DB::single в массив, чтобы можно было управлять значениями, в которые будет восстановлено $DB::single при выходе из блока. Это удобно, когда мы хотим выйти из текущей функции на n уровней вверх, при дебаге. -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?
>Мне-то кажется, что именно этот метод и есть правильный, но навязывать ничего >не хочу ))) Получилось сделать локализацию вручную с помощью модуля Hook::Scope. Но дополнительно выкинул из него код 'use optimizer 'sub-detect' => \' потому, что модуль уж совсем старый и некорректно работает с новыми версиями perl. use Hook::Scope; sub sub_returns { # если стек есть... if( defined $DB::deep ) { # когда функции ещё не вызывались, то $DB::deep == undef $#DB::stack = $DB::deep; $DB::single = $DB::stack[-1]{ single }; } } sub sub { if( $DB::sub eq 'DB::sub_returns' ) { # предотвращаем segfault return &$DB::sub; } # register hook to restore value when out of scope Hook::Scope::POST( \_returns ); # relocate space and save value $#DB::stack = $DB::deep; $DB::stack[-1] = { single => $DB::single }; local $DB::deep = $DB::deep +1; return &$DB::sub; } 07.01.2016, 01:56, "Vladimir Timofeev" <vovk...@gmail.com>: > 2016-01-07 6:19 GMT+03:00 Eugen Konkov <kes-...@yandex.ru>: >> Спасибо! Очень много интересной информации вы мне дали. Пойду изучать... >> Не могли бы вы мне подсказать файл, в котором перл генерирует обком для >> goto? > > Ну это просто. Все OP в файлах op*.c, так что ack 'pp_goto' op*.c и > получаем... > pp_ctl.c:2768 OP(pp_goto) > > А вот дальше... текст там забавный ))) > >>> Во втором случае никакой local работать не будет, вернее будет... >> local $DB::single = $DB::single +0; работал и работает отлично и в дебаг >> режиме тоже (см. ниже) > > Ух ты, я и не знал )) > Интересно почему, но быстрый просмотр показал, что чтобы понять, > придётся много времени потратить, которого нет... > По идее магия для DB::single get/set очень простая, просто сохраняет > значения ещё и в глобальном массивчике PL_DBcontrol (там для каждой > переменной single, trace... по слоту). Хендлеры в конце mg.c, функции > Perl_magic_setdebugvar и Perl_magic_getdebugvar. > >>> Мне кажется, что для хранения текущего состояния в своём дебаггере >> Как раз не текущее состояние было нужно, а n фреймов назад... >> >> У меня в дебагере что-то наподобие: >> sub sub { >> local $DB::single = $DB::single +0; # без 0 не работает :? >> return &$DB::sub; >> } >> >> Где-то внутри вызываемой функции с именем "$DB::sub" я делаю $DB::single = >> 0 и автоматом останавливаюсь на первом операторе вне этой функции. Т.е. для >> кода: >> sub t{ $DB::single = 0; } >> t(); >> $x++; <<< останавливаюсь тут >> >> Останавливаюсь потому, что после того как отработает 'return &$DB::sub' >> перл восстановит старое локализированное значение $DB::single в TRUE >> и вызовется DB::DB на первом опкоде после возврата, те. '$x++' >> >> Но если бы мы хотели выйти на 2 фрейма вверх? >> То нам нужно, чтобы старое локализированное значение $DB::single >> восстановилось в FALSE >> >> Как поменять старое локализированное значение? - Взять ссылку на него... >> Получается примерно такое: >> sub sub { >> $#DB::stack = $DB::deep; >> $DB::stack[-1] = { single => \$DB::single }; >> >> local $DB::single = $DB::single +0; >> local $DB::deep = $DB::deep +1; >> return &$DB::sub; >> } >> >> sub t1 { $DB::stack[-1]{ single } = 0; $DB::single = 0; } #DEEP 2 >> sub t2 { t1(); $y++; } # DEEP 1 >> t2(); #DEEP 0 >> $x++; >> >> Если бы мы шли в функцию t1 пошагово, то было бы локализировано 2 значения >> $DB::single, это единицы. >> [ >> { single => \1 } >> { single => \1 } >> ] >> >> после выполнения t1 стэк выгледел был бы так: >> [ >> { single => \1 } >> { single => \0 } >> ] >> >> Соответственно после выхода из t1 перл бы востанавливал в $DB::single не в >> единицу, а в 0, а это бы позволило нам выйти из t2 тоже и остановиться на >> $x++ >> >> И теперь мне понятно (благодаря вашему объяснению), что из-за магии >> $DB::single, когда мы делаем ${ $DB::stack[-1]{single} } = 0, то меняются >> все значения в стеке, а не только указанное, т.е. получаем: >> [ >> { single => \0 } >> { single => \0 } >> ] >> >> соответственно вываливаемся полностью из программы... > > А не может ли быть того, что просто нет никакого стека там (в месте, > где хранится реальное значение и куда дебаггер смотрит) в слоте > PL_DBControl? ;-) > >> Я предпологаю, что должна
Re: [Moscow.pm] Вакансия Perl разработчик Санкт-Петербург
День добрый Требования: >• уверенное знание Perl; 10+ >• умение работать с любым из популярных шаблонизаторов (HTML::Template, TT, >CTPP и т.д); сталкивался, работал >• умение работать с PostgreSQL или Mysql; Без проблем >• умение работать с большим объемом данных, опыт в hbase будет большим плюсом; Отсутствует >• знание JavaScript, HTML, CSS будет существенным плюсом; Без проблем >• ответственность, инициативность, исполнительность. Имеется Вот мой профиль: https://moikrug.ru/konkov-e На данный момент делаю дебаггер для Perl: https://github.com/KES777/Devel-DebugHooks/tree/develop Готов работать удалённо. К кому и когда можно обратиться, чтобы пройти собеседование? с Ув. Евгений Коньков Мои контакты Skype: konkov-e e-mail: kes-...@yandex.ru 05.04.2016, 21:27, "Alex Chistyakov" <alexcl...@gmail.com>: > Коллеги! > > Есть вот такая вакансия: > > Обязанности: > • разработка проекта компании; > • различные интеграционные решения; > • тесная работа с фронт-енд программистом > > Требования: > • уверенное знание Perl; > • умение работать с любым из популярных шаблонизаторов (HTML::Template, TT, > CTPP и т.д); > • умение работать с PostgreSQL или Mysql; > • умение работать с большим объемом данных, опыт в hbase будет большим плюсом; > • знание JavaScript, HTML, CSS будет существенным плюсом; > • ответственность, инициативность, исполнительность. > > Условия: > • офис ст. метро Горьковская в пешей доступности; > • гибкий график работы, возможность работать удаленно; > • работа в крупной российской компании (успешный прибыльный проект); > • зарплата от 100 000 рублей, по результатам собеседования. > > Тип занятости: > • Полная занятость, полный день. > > Резюме присылайте мне. > > Спасибо, > > -- > SY, > Alex > ,-- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Вакансия, удаленка (мопед мой)
День добрый. Зовут меня Коньков Евгений. Перл занимаюсь более 10лет. В основном для собственный целей: была собственная фирма. Предоставлял услуги интерент. Писал для себя биллинг, процессинг платежей (были собственные терминалы). Работал в reg.ru, потом ушел во фриланс. Сейчас перевожу сайт Mason -> Mojo. Также пишу собственный дебаггер для Perl скриптов: https://github.com/KES777/Devel-DebugHooks/tree/develop , на данный момент наполняю проект тестами (см. модуль t/Devel::DbInteract и t/2?-*.t) Вот мой профиль: https://moikrug.ru/konkov-e По требованиям: mod_perl, Go, Cassandra - не сталкивался. Проблем в изучении новых технологий не испытываю. Например для изучения и уверенной работы с Mojo мне понадобилась одна неделя. Готов пройти собеседование. Мои контакты Skype: konkov-e 05.04.2016, 21:27, "Daniel Podolsky": > компания: Setup.Ru (Москва, Россия) > должность: backend разработчик > занятость: полная, удаленная работа > потолок ЗП: 150,000 р/мес > необходимые навыки: Perl (mod_perl, Mojo), SQL (MySQL, PostgreSQL), Go > желательные навыки: NoSQL (Cassandra), JS (Web GUI) > что делать: поддерживать perl-код на плаву, переписывать его на go. > обязательные требования: проактивность (на данный момент на проекте > нет никого, кто мог бы поставить конкретную задачу в терминах > системного анализа) > куда слать CV: onoko...@gmail.com > примечание: обязательно приложить ссылку на GitHub со своим кодом, на > Perl и/или Go > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Вакансия Perl разработчик Санкт-Петербург
Да, сорри, кого побеспокоил "спамом" )). Видимо ещё не проснулся с утра ((( Зато родилась идея по улучшению интерфейса Яндекс.Почта. Напишу им очередное письмо... пусть добавляют задачу в таск лист ) 06.04.2016, 09:54, "Akzhan Abdulin" <akzhan.abdu...@gmail.com>: > Мне кажется, что в данном случае надо выбирать при составлении ответа > получателем автора исходного письма. > > Но вообще интересно было почитать. > > 6 апреля 2016 г., 9:42 пользователь KES <kes-...@yandex.ru> написал: >> День добрый >> >> Требования: >>>• уверенное знание Perl; >> 10+ >>>• умение работать с любым из популярных шаблонизаторов (HTML::Template, TT, >>>CTPP и т.д); сталкивался, работал >>>• умение работать с PostgreSQL или Mysql; >> Без проблем >>>• умение работать с большим объемом данных, опыт в hbase будет большим >>>плюсом; >> Отсутствует >>>• знание JavaScript, HTML, CSS будет существенным плюсом; >> Без проблем >>>• ответственность, инициативность, исполнительность. >> Имеется >> >> Вот мой профиль: https://moikrug.ru/konkov-e >> На данный момент делаю дебаггер для Perl: >> https://github.com/KES777/Devel-DebugHooks/tree/develop >> >> Готов работать удалённо. К кому и когда можно обратиться, чтобы пройти >> собеседование? >> >> с Ув. Евгений Коньков >> Мои контакты >> Skype: konkov-e >> e-mail: kes-...@yandex.ru >> >> 05.04.2016, 21:27, "Alex Chistyakov" <alexcl...@gmail.com>: >> >>> Коллеги! >>> >>> Есть вот такая вакансия: >>> >>> Обязанности: >>> • разработка проекта компании; >>> • различные интеграционные решения; >>> • тесная работа с фронт-енд программистом >>> >>> Требования: >>> • уверенное знание Perl; >>> • умение работать с любым из популярных шаблонизаторов (HTML::Template, TT, >>> CTPP и т.д); >>> • умение работать с PostgreSQL или Mysql; >>> • умение работать с большим объемом данных, опыт в hbase будет большим >>> плюсом; >>> • знание JavaScript, HTML, CSS будет существенным плюсом; >>> • ответственность, инициативность, исполнительность. >>> >>> Условия: >>> • офис ст. метро Горьковская в пешей доступности; >>> • гибкий график работы, возможность работать удаленно; >>> • работа в крупной российской компании (успешный прибыльный проект); >>> • зарплата от 100 000 рублей, по результатам собеседования. >>> >>> Тип занятости: >>> • Полная занятость, полный день. >>> >>> Резюме присылайте мне. >>> >>> Спасибо, >>> >>> -- >>> SY, >>> Alex >> >>> ,-- >> >>> Moscow.pm mailing list >>> moscow-pm@pm.org | http://moscow.pm.org >> -- >> Moscow.pm mailing list >> moscow-pm@pm.org | http://moscow.pm.org > > ,-- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Дебаггер
Дев. консоли браузеров не покажут содержимое сессии ;-) Не покажут логи сервера Не покажут статистику используемой памяти и тд. 29.03.2016, 16:25, "Anatoly Y" <iskhart...@gmail.com>: > так это же всё есть в обычных девконсолях браузеров. > > 2016-03-29 18:36 GMT+06:00 KES <kes-...@yandex.ru>: >> Вот ещё очень удобная штука, если нужно смотреть, запрос/ответ >> https://metacpan.org/pod/Plack::Middleware::Debug >> >> Загружаешь страничку, а справа панель. Смотришь нужный раздел или скрываешь >> панель вообще. >> >> Вот как это выглядит >> http://i.piccy.info/i9/71fbd33f348335d919bf6f16b7100f01/1459254938/138655/1019526/del_.png >> >> -- >> Moscow.pm mailing list >> moscow-pm@pm.org | http://moscow.pm.org > > ,-- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Дебаггер
Вот ещё очень удобная штука, если нужно смотреть, запрос/ответ https://metacpan.org/pod/Plack::Middleware::Debug Загружаешь страничку, а справа панель. Смотришь нужный раздел или скрываешь панель вообще. Вот как это выглядит http://i.piccy.info/i9/71fbd33f348335d919bf6f16b7100f01/1459254938/138655/1019526/del_.png -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Нужна подсказка по отладке отправки почты через NET::SMTP
так запустить вручную, не через крон и прогнать программу пошагово. Если что, пиши в irc, который указан на metacpan модуля. я там буду завтра в канале. Или в личку письмо пиши, я тебе помогу с дебаггером 13.07.2016, 18:42, "Александр Фролов" <alexan...@frolov.pp.ru>: > Так ведь оно по крону должно запускаться каждую минуту, и писать > автоматически в журнал, для каких адресов и какие ошибки появляются. > Пока не могу придумать ничего другого, как патчить Net::SMTP... > > -Original Message- > From: Moscow-pm [mailto:moscow-pm-bounces+alexandre=frolov.pp...@pm.org] On > Behalf Of KES > Sent: Wednesday, July 13, 2016 6:36 PM > To: Moscow.pm group <moscow-pm@pm.org> > Subject: Re: [Moscow.pm] Нужна подсказка по отладке отправки почты через > NET::SMTP > > https://github.com/KES777/Devel-DebugHooks > https://metacpan.org/release/Devel-DebugHooks > > или стандартный дебаггер перла: > perl -d script.pl > > 13.07.2016, 18:25, "Александр Фролов" <alexan...@frolov.pp.ru>: >> Здравствуйте! >> Отправляю почту с помощью Net::SMTP в несколько потоков через AnyEvent из >> крона: >> >> $smtp= Net::SMTP->new( >> Hello => $host->get_hello(), Host => $host->get_host_name(), Timeout >> => 10, >> Debug => $this->{ 1 }, >> >> Флаг Debug отправляет отладочную информацию на консоль. >> Хочется из программы как-то перехватить диагностическую выдачу, >> проанализировать и записать ошибки в журнал. >> Подскажите, пожалуйста, как это можно сделать? >> Спасибо! >> >> С уважением, >> Александр Фролов >> --- >> Пожалуйста, при ответе сохраняйте историю переписки. >> >> ,-- >> Moscow.pm mailing list >> moscow-pm@pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org > ,-- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Нужна подсказка по отладке отправки почты через NET::SMTP
https://github.com/KES777/Devel-DebugHooks https://metacpan.org/release/Devel-DebugHooks или стандартный дебаггер перла: perl -d script.pl 13.07.2016, 18:25, "Александр Фролов": > Здравствуйте! > Отправляю почту с помощью Net::SMTP в несколько потоков через AnyEvent из > крона: > > $smtp= Net::SMTP->new( > Hello => $host->get_hello(), Host => $host->get_host_name(), Timeout > => 10, > Debug => $this->{ 1 }, > > Флаг Debug отправляет отладочную информацию на консоль. > Хочется из программы как-то перехватить диагностическую выдачу, > проанализировать и записать ошибки в журнал. > Подскажите, пожалуйста, как это можно сделать? > Спасибо! > > С уважением, > Александр Фролов > --- > Пожалуйста, при ответе сохраняйте историю переписки. > > ,-- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] подскажите наиболее лучший способ интеграции CGI приложение в Mojolicious
А что с Mojo не так пошло? 01.09.2016, 22:50, "Akzhan Abdulin": > Шаблонизаторы (2-3 шт.) сменили на Mojo, но увы, скоро опять сполная смена, > на Jade (лень помнить текущее название). > > 1 сентября 2016 г., 22:48 пользователь Akzhan Abdulin > написал: >> Попутно выпилили 2 ORM из 4 в проекте, и еще кучу всего... >> >> 1 сентября 2016 г., 22:45 пользователь Akzhan Abdulin >> написал: >> >>> 4 месяца назад у нас был Apache :) 3 месяца назад у нас был проприетарный >>> Ontico, тогда же мы пережли с grunt на gulp >>> Нынче переезжаем на webpack... рефакторинг необходим, чтобы глаза горели. >>> >>> 1 сентября 2016 г., 21:10 пользователь Alexey Shrub >>> написал: >>> Уверен что подавляющее большинство вам завидует. On Чт, сен 1, 2016 в 8:53 , Akzhan Abdulin wrote: > А мы при таких переходах просто тратим один-два спринта на полный переход > на новый стек, что на фронте, что на бэке. -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org > > ,-- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Potracheno: wasted time tracker
Вот хорошая штука https://wakatime.com , чтобы смотреть в каких приложениях потратилось время. Как по мне, очень хорошая интеграция с редакторами и браузерами: https://wakatime.com/editors 03.10.2016, 19:23, "Alexey Shrub": > On Пн, окт 3, 2016 в 4:01 , Konstantin S. Uvarin > wrote: >> Давно мечтал запилить трекер для >> учёта времени, продолбанного на >> борьбу с техническим долгом. И вот - >> выдалась минутка... > > Идея шикарная, хотя требует > привычки/дисциплины от разработчика. > Но не уверен насчёт отдельной тулзы, > получается надо и в обычную таску > время вписать и в тикет просраченного > времени - дублирование, нарушение DRY. > В идеале надо конфигурить/плагинить > популярные таск-трекеры (redmine какой) > так, чтобы можно было при вписывании > времени указать тип - просраченное, а > потом глядеть в отчёте по затраченному > времени сколько полезной активности > было, а сколько не очень. > Плюс надо привязывать просраченное > время к компоненту и виновному > разработчику, чтобы потом по > статистике видеть кого в первую > очередь рефакторить. > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Encode: danko gay, все геи - вредители!
>20.10.2016, 10:04, "Alexey Shrub": >2. Не видел исследований на тему связи сексуальной ориентации и каких-то иных качеств вроде навыков программирования или проектирования и сомневаюсь что такие есть, а если нет, то нет смысла этот вопрос обмусоливать в технической рассылке. По исследованиям британских ученых злостные нарушители пдд склонны к гомосексуализму (или являются таковыми). Думаю просто никто технарей не проверял ещё. Но ввиду темы, задуматься стоит :D -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Encode: danko gay, все геи - вредители!
>$dbh->selectrow_hashref('/* получим юзера */ SELECT * FROM users WHERE id = 1') А как вас называет за такое? :D Есть проблема - открываете issue. Горит??? Делаете pull request. В чём проблема? -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Perl vs Python
Раз уж эта тема 'vs Python', прошу уточнить что из этого списка есть в Python 26.10.2016, 14:09, "Daniel Podolsky": >> И за столько лет ты умудрился узнать Перл всего-то процентов на 5-10 (судя >> по постам - не больше) ? > > в 21-ом веке про perl надо знать только самое важное, а не тьму > унижающих его подробностей: > > 1. в perl vm нет поддержки многопоточности > 2. в perl vm нет поддержки JIT > 3. для perl vm нет семплирующего профайлера > 4. ничего этого в перл не будет уже никогда, потому как на perl vm нет > и не будет никогда спецификации. > > rest in peace, дорогой язык, мы тебя не забудем. > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Perl vs Python
Можно я отвечу на вопрос абстрактно?Не спрорьте с дурамами, они опустят вас до своего уровня и победят за счёт опыта :D26.10.2016, 14:55, "Alex Chistyakov":2016-10-26 14:47 GMT+03:00 Naim Sh :Коллеги , плиз не засоряйте эфир , не грызытесь между собой,все таки рассылку должна быть приятной и продуктивной для чтения.У меня к уважаемому сообществу вопрос следующего характера в рамках установления, так сказать, объективной истины - сколько тут еще специалистов уровня Ивана.Как так получилось, что Иван работает в MRG, я не спрашиваю, плавали-знаем.А приятным и продуктивным для чтения пусть будет журнал Playboy.Нет, правда, "не грызитесь между собой" - это просьба уровня хабра.Давайте сперва прекратим нести хуйню в технических темах. On 10/26/2016 03:39 PM, Ivan Petrov wrote: в сад, срочно! т.е. в книжу Ларри Уолла. глава 18: Компиляция. То есть, наличие у интерпретатора стадии компиляции делает интерпретатор компилятором? во видишь, читать начал. скоро до понимания добираться начнешь, научный работник. поскольку есть стадия компиляции, то говорить об интерпретаторе как-то неуместно чтоли. а поскольку об интерпретаторе говорить неуместно, то и JIT получается не нужен, ибо JIT это как раз попытки исправить недостатки интепретаторов, коих у Perl нет. -- -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org ,-- Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Когда уже будет встреча Moscow.pm?
Я бы рассказал про дебаг скриптов, но к вам ехать далеко ((25.10.2016, 22:27, "warst...@list.ru": Мы как раз сегодня на кухне холиварили на тему того - что писать в корпоративный блог на Хабре или "почему его у нас нету"... Ни к чему не пришли, но мое мнение - что рассказывать не о чем... Вот из относительно интересного - я поюзал магию перловскую для АБ-тестирования. Но делать доклад "смотрите, я написал 5кб Си кода с 2мя вызовами коллбеков" - это бред, ИМХО. Идите и читайте perlguts / perlapi и исходники перла... Делать доклад на тему "почему кодогенерация через наследование и прекеш перед форком - это тру" - тоже не сильно имеет смысл, ИМХО. А больше-то и нету тем. Вторник, 25 октября 2016, 16:53 +03:00 от Dmitry Kopytov : On Mon, Oct 24, 2016 at 01:44:17PM +0300, Evgeniy Vansevich wrote: > А что? - есть идеи докладов?) Да идеи всегда есть и у всех, просто почему-то не хотят делиться. В рассылке очень много крутых гуру-перловиков, почему не хотите делиться своими наработками и опытом? Жадничаете чтоли? Уверен, что масса людей с удовольствием бы вас послушала! Где вы все?? -- Dmitry Kopytov -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org ,-- Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Perl vs Python
Любители переходить на личности, если у вас возникло желание написать "ТЫ" бла-бла-бля, то лучше не пишите. Не хотелось бы нагружать спам фильтр лишними правилами с вашми мейлом26.10.2016, 13:59, "Павел Борисов":>>Во-вторых, я начал писать на Perl курсе на 4-м - это какой, то бишь, год был на дворе, 1997-й?И за столько лет ты умудрился узнать Перл всего-то процентов на 5-10 (судя по постам - не больше) ?Так может быть всёж-таки ебаната и макаку ты каждый день в зеркале наблюдаешь, а не в окружающем мире ?26 октября 2016 г., 13:48 пользователь Alex Chistyakov написал:2016-10-26 13:46 GMT+03:00 Ivan Petrov :> что Perl - довольно сильное говно Еще раз повторю вопрос: что ТЫ делаешь в ЭТОЙ рассылке?Во-первых, я, как и Диоген, ищу человека.Во-вторых, я начал писать на Perl курсе на 4-м - это какой, то бишь, год был на дворе, 1997-й?То есть - "если не я, то кто же?" -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org -- --С уважением,Борисов ПавелпрограммистООО "Ф-Лайн Софтвер" ,-- Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Perl vs Python
+1 Кроме "Ответить всем" есть такая кнопка "Ответить" И все будут щастливы. 26.10.2016, 14:49, "Naim Sh": > Коллеги , плиз не засоряйте эфир , не грызытесь между собой,все таки > рассылку должна быть приятной и продуктивной для чтения. > > On 10/26/2016 03:39 PM, Ivan Petrov wrote: в сад, срочно! т.е. в книжу Ларри Уолла. глава 18: Компиляция. >>> То есть, наличие у интерпретатора стадии компиляции делает интерпретатор >>> компилятором? >> во видишь, читать начал. скоро до понимания добираться начнешь, >> научный работник. >> >> поскольку есть стадия компиляции, то говорить об интерпретаторе как-то >> неуместно чтоли. >> >> а поскольку об интерпретаторе говорить неуместно, то и JIT получается >> не нужен, ибо JIT это как раз попытки исправить недостатки >> интепретаторов, коих у Perl нет. > > -- > > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Темы докладов на Moscow.pm
Попробуйте вот этот дебаггер: https://www.youtube.com/watch?v=OUhQCz5iB68Devel::DebugHooks27.10.2016, 09:16, "TheAthlete via Moscow-pm":+1От себя добавлю: Mojo::IOLoop, Marpa parser, websockets, написание и оптимизация сложных регулярных выражений, отладка с помощью Devel::Trepan, gdb, strace (скриптов и веб приложений) Отправлено с моего телефона на Windows 10 От: Evgeniy Vansevich via Moscow-pmОтправлено: 26 октября 2016 г. в 20:17Кому: Moscow.pm groupКопия: Evgeniy VansevichТема: Re: [Moscow.pm] Темы докладов на Moscow.pm Давно пора. В прошлый раз я это говорил, не увенчалось успехом)Пока наброшу кейвордов для докладов интересных лично мне: AnyEvent, Coro, JIT, peephole(Интересные кейсы оптимизации, и возможности, например оптимизация кейса ref $arrayref eq 'ARRAY' - до простой проверки бита.), XS 26.10.2016, 20:08, "Павел Купцов via Moscow-pm" :Коллеги, а может нам лучше не скидывать Павлу темы своих докладов, а пойти от обратного и накидать сюда то что каждый хотел бы послушать? Вдруг интересы одних пересекаются с возможностями других?Я вот готов завтра накинуть немного тем, которые с удовольствием бы послушал. Сегодня просто предлагаю всем подумать об этом и написать по мере появления мыслей.Что скажете?,-- Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org ,-- Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Темы докладов на Moscow.pm
>Мы начинали делать магазины на Perl еще в 2001 году Вот за что люблю перл: один раз написал и работает годами. 28.10.2016, 14:14, "Александр Фролов via Moscow-pm": > Всем привет! > > Будет ли интересна тема доклада не про сам Perl, а про кейс его применения на > нашем SAAS-сервисе интернет-магазинов? > Мы начинали делать магазины на Perl еще в 2001 году, и до сих пор все > компоненты нашего сервиса написаны на этом языке. > Предполагаемые тезисы: > > - Почему Perl, а не PHP или ASP? > - Откуда мы берем программистов Perl и куда они потом деваются? > - Как мы клонировали магазины и обрабатывали заявки вручную. > - Состав компонентов и сервисов: > -- Система клонирования и обновления магазинов > -- Биллинг, он же CRM > -- Клондайк (база знаний, информационная система) > -- Перловка (не каша, наш репозиторий модулей Perl) > -- Демоны и демонятник > -- MailProxy для массовых рассылок почты интернет-магазинов > -- Сервис уведомлений о заказах через протокол WebSocket > -- Резервное копирование данных > -- Мониторинг серверов и сервисов с помощью Zabbix > > С уважением, > Управляющий директор ООО "АйТи-Матрикс" > Александр Фролов > > +7 (495) 545-4921 > +7 (495) 589-0759 > supp...@itmatrix.ru > www.shop2you.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
Re: [Moscow.pm] Регулярные выражения. Помогите понять, почему так.
Вопрос после * или + - это флаг, который указывает какой алгоритм будет работать: жадный или не жадный. Например для строки: "bla " регулярка /(bla\s*)/ вернет "bla" и все пробелы, в то время как /(bla\s*?)/ вернет только "bla". Аналогично /(bla\s+)/ вернет "bla" и все пробелы. в то время как /(bla\s+?)/ вернет "bla" с одним пробелом. В обоих случаях один пробел после "bla" обязателен.29.10.2016, 11:14, "Динар Жамалиев via Moscow-pm":Ясно изъясняться не моя фишка. Под сутью я имел другое. Для примера в контексте строки вида "bla bla bla" шаблоны вида /bla\s*?/ и /bla\s+?/ иидентичны в том смысле, что подстрока "bla " все равно будет найдена, не так ли?29 октября 2016 г., 2:41 пользователь Loginoff Nick via Moscow-pm написал:\s* != \s+ - так что это очень сильно меняет суть шаблона. В данном контексте пробела может и не быть... Так что это не решает проблему 28.10.2016, 21:44, "Динар Жамалиев via Moscow-pm" :Если везде заменить \s* на \s+, что не меняет сути шаблона, результат будет мгновенным, так как квантификатор +? не отступает назад, захват либо есть максимально возможный, либо нет. В то время как *? сначала захватывает все, затем отступает Каждый дополнительный * значительно увеличивает число комбинаций. В твоем случае 16й элемент приводит к экспоненциальному увеличению возможных комбинаций 28 октября 2016 г., 22:30 пользователь Artem Zhuravlev via Moscow-pm написал:Тут скорее дело в Захвате и построение обратных ссылок для них, на 16+ явно замедляется Вот переменная без захватом отработает быстроmy $regexp16 = qr('(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:3\s*?(?:[^a-z]\s*?)+?r)|(?:2\s*?(?:[^a-z]\s*?)+?r)');Так что думаю стоит уменьшить количество захватов.Ну или как в книге пишут если можно то вместо /a|b/ пишите /a/ || /b/ --Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org ,--Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org -- С Уважением, Login|off Nick или STork. -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org ,-- Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] [OFFTOPIC] Ищется информация
>С Go вот какая беда - нет пока массового опыта реально больших проектов на нем. Я думаю врятли будет. GO без поддержки гугла ничего не будет стоить, а гугл, похоже, будет поддерживать swift Пруф: http://itc.ua/news/po-sluham-google-hochet-sdelat-apple-swift-pervoklassnyim-yazyikom-programmirovaniya-dlya-android/ 28.11.2016, 10:27, "Daniel Podolsky via Moscow-pm": >> А Go? Там же зеленые треды, как в Java, Haskell, Erlang... Или для Go >> другая причина? > > в java нет зеленых тредов. > > С Go вот какая беда - нет пока массового опыта реально больших проектов на > нем. > > ни положительного, ни отрицательного. > > я вот ввязался, потому что я то ли глупый, то ли смелый. > > а Акжан вот осторожничает, потому что то ли умный, то ли трусливый :) > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Технический долг
Выделять день на то, чтобы работать над тех. долгом.А назойливые чатики и звонки по ночам просто будут служить поводом задуматься о месте работы. ИМХО. И нужно иметь картину того, что пилим и для чего. А не потому, что есть такая задача.03.03.2017, 12:09, "Dmitry via Moscow-pm":Хочется услышать мнение коллег тимлидов, РМ-ов и прочих *М-ов, технических директоров и т.п. Вот допустим, у вас есть команда, состоящая из X разработчиков, Y тестировщиков и Z всех остальных, к кому есть непосредственный доступ через багтрекер. В этом самом багтрекере есть некоторый неизбежный технический долг, который накапливается за каждым из участников вашей замечательной команды. Как вы решаете задачу напоминания о том, что с техническим долгом надо что-то делать? * Делаете дополнительные почтовые рассылки, плюс к тем, которые и так делает багтрекер? * Создаете назойливые чатики в IRC/Skype/Jabber/WhatsApp/Telegram? * Звоните по ночам и страшным голосом ревете в трубку "Должо-о-о-о-ок!!!" * Ваш вариант-- WBR, Dmitry. mailto: mescalito...@gmail.comskype: mescalito_genesysphone: +38 067 974 7812phone: +7 915 382 2412 ,-- Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
[Moscow.pm] Soft call operator (Оператор мягкого вызова): ~>
Привет. А у меня вот давно витает идея "мягкого вызова". Даже ещё когда писал на ассемблере всегда раздражали исключения при `CALL 0` ну вот снова вернулся к этой теме. 1. Что не так? Очень часто приходится писать следующий код: my $x; my $y; if( ($x = $obj->method) && $y = $x->another_method ) { $y = ...; } Пример из жизни: if( $db->query( ... )->hash->{ value } ) { ... } if( $db->resultset( 'table' )->search( ... )->related_resultset( 'table2' ) { ... } тут если запрос вернул пустой результат, то код упадёт. А если использовать оператор мягкого вызова, то можно будет не бояться исключений и код станет проще: use pragma 'soft_call'; if( my $x = $obj->method~>another_method ) { ... } if( $db->query( ... )~>hash->{ value } ) { ... } if( $db->resultset( 'table' )->search( ... )~>related_resultset( 'table2' ) { ... } И вроде как всё выразительно получается. Даже сама реализация прагмы в десяток строк: 1. делаем плагин для keyword, Наподобие Syntax::Keyword::Try 2. цепляемся на http://perldoc.perl.org/perlguts.html#Pluggable-runops 3. Псевдокод: sub soft_call_operator { my( $left_operand, $right_operand ) = @_; return undefif !defined $left_operand; '->'( $left_operand, $right_operand ); # делаем обычную обработку вызова функции } Комментарии wellcome -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Валидация шаблонов Mojo::Template
Все хелперы в Mojolicious работают через AUTOLOAD Просто перегрузите в своём коде Mojolicious::Controller::AUTOLOAD sub Mojolicious::Controller::AUTOLOAD { '' } и все вызовы к хелперам пройдут успешно, за исключением когда хелпер возвращает объект $c->some_helper->object_method для этих случаев можете попробовать dispatch табличку my $table = { method_name => sub { 'вернуть нужный объект тут' }, method_name2 => sub { ... } } sub Mojolicious::Controller::AUTOLOAD { return $table->{ $AUTOLOAD }->() } 15.06.2017, 16:19, "Alexander M. Pravkin via Moscow-pm": > Уважаемые почитатели Mojolicious, помогите с такой проблемой. > > Есть некоторое число проектов, которые благополучно работают на perl > 5.16-5.20, но на свежем валятся, ибо там повсеместно используются > конструкции, не рекомендованные к использованию. Собственно, встала > задача исправить это безобразие. > > С самим кодом проблем нет, проблемы есть с embedded-perl-шаблонами Mojo. > Если бы их была пара штук или хотя бы пара десятков, можно было бы и > вручную обойти. Но их около сотни только в одном проекте. > > В общем, понадобилась автоматическая валидация, хотя бы по синтаксису. > На просторах, увы, не нашёл ничего, решил попробовать сам. > > Простые шаблоны нормально обрабатываются вот таким скриптом: > > use strict; > use open qw(:std :utf8); > use Mojo::Template; > > my $file = $ARGV[0] > or die "Usage: $0 mojo-template.ep\n"; > > my $mt = Mojo::Template->new(vars => 1); > > my $res; > # Проход первый: ищем необъявленные переменные > { > local $SIG{__WARN__} = sub {}; > $res = $mt->render_file($file) > or die "render_file $file returned nothing\n"; > } > > # Если ошибок не было -- всё OK > ref $res and $res->isa('Mojo::Exception') > or exit 0; > > # Ищем все переменные, используемые шаблоном > # Считаем, что автор кода тоже передаёт render'у все нужные > my $errors = "$res"; > my %stash = map { $_ => undef } > ($errors =~ /Global symbol "\$(\w+)" requires explicit package name/g); > delete $stash{_O}; # подставная переменная Mojo::Template > > print "+++ $file variables: ", join(' ', sort keys %stash), "\n"; > > # Проход второй, настоящие ошибки > $res = $mt->render_file($file, \%stash); > if (ref $res and $res->isa('Mojo::Exception')) { > die "\n--- $file has errors:\n$res\n"; > } > > Но он, как минимум, не понимает helper'ов от всяких плагинов (layout, > include и прочие form_for). Присобачить использование плагинов к > одинокому Mojo::Template я ниасилил. Кто-нибудь может подсказать? > > -- > Правкин Александр > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] JSON::XS, mod_perl, boolean
А дампа исходного запроса нет, где словили null? 28.11.2017, 14:24, "Pavel Zabolotniy via Moscow-pm": 28.11.2017 14:57, Толян II via Moscow-pm пишет:Прямо с такой нет, но boolean несколько граблей было собрано, и мне пришлось заменить JSON::true и JSON::false на \0, и \1 в конфигурации \(my $s=1) и \(my $s=0).Возможно тебе это поможет. А у тебя такая проблема возникла или ты просто спрашиваешь? Да, такая проблема воникла.Там, где могли, заменили на \0, и \1.Есть часть данных, которые приходят от сторонних источников (чужое АПИ). Для этих данных делается decode, после чего они встраиваются в наши данные "as is". Среди "чужих" данных есть boolean. В какой-то момент начинаем ловить null в наших ответах вместо true/false. 2017-11-28 12:34 GMT+03:00 Pavel Zabolotniy via Moscow-pm :Привет, moscow-pm!Кто-нибудь сталкивался с проблемой http://www.perlmonks.org/?node_id=1021294 ?Как ее решали?Спасибо!--#!/usr/bin/Regards,Pavel Zabolotniyemail: t...@myrz.ru--Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org -- #!/usr/bin/Regards, Pavel Zabolotniy email: t...@myrz.ru,--Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] JSON::XS, mod_perl, boolean
JSON запрос, который пришел и в котором возникла указанная ошибка28.11.2017, 15:30, "Pavel Zabolotniy" <t...@myrz.ru>: 28.11.2017 16:04, KES пишет: А дампа исходного запроса нет, где словили null? Что подразумевается под дампом? Может сможем сделать. 28.11.2017, 14:24, "Pavel Zabolotniy via Moscow-pm" <moscow-pm@pm.org>: 28.11.2017 14:57, Толян II via Moscow-pm пишет: Прямо с такой нет, но boolean несколько граблей было собрано, и мне пришлось заменить JSON::true и JSON::false на \0, и \1 в конфигурации \(my $s=1) и \(my $s=0). Возможно тебе это поможет. А у тебя такая проблема возникла или ты просто спрашиваешь? Да, такая проблема воникла. Там, где могли, заменили на \0, и \1. Есть часть данных, которые приходят от сторонних источников (чужое АПИ). Для этих данных делается decode, после чего они встраиваются в наши данные "as is". Среди "чужих" данных есть boolean. В какой-то момент начинаем ловить null в наших ответах вместо true/false. 2017-11-28 12:34 GMT+03:00 Pavel Zabolotniy via Moscow-pm <moscow-pm@pm.org>: Привет, moscow-pm! Кто-нибудь сталкивался с проблемой http://www.perlmonks.org/?node_id=1021294 ? Как ее решали? Спасибо! -- #!/usr/bin/Regards, Pavel Zabolotniy email: t...@myrz.ru -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org -- #!/usr/bin/Regards, Pavel Zabolotniy email: t...@myrz.ru ,-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org -- #!/usr/bin/Regards, Pavel Zabolotniy email: t...@myrz.ru -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Генерация анонимных typeglob в xs
Совсем не XS, но возможно даст кое какие идеи как генерировать: https://metacpan.org/source/SHAY/perl-5.26.1/lib/Symbol.pm#L100 22.11.2017, 22:21, "Толян II via Moscow-pm":То, что надо. С несущественными изменениями полет нормальный :) SV* gv = newSV(0); gv_init_pvn(gv, gv_stashpvn("OK", 0, 0), "VICTORY", 7, GV_ADDMULTI); 22 ноября 2017 г., 18:53 пользователь Sergey Aleynikov via Moscow-pm написал:Добрый день,22 ноября 2017 г., 16:30 пользователь Толян II via Moscow-pm написал:> Понадобилось в perlxs генерировать анонимные typeglob.Минимальный код выглядит примерно так, SV* gv = newSV(0); gv_init_pvn(gv, gv_stashpvn("main", 4, 0), "test", 4, GV_ADDMULTI);Но, в зависимости от того, как будете использовать результат, он можетзначительно измениться - т.к. какие-то функции ждут валидного EGV ит.д.Best regards,Sergey Aleynikov--Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org,--Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org
Re: [Moscow.pm] Mojo::Log и UTF8
ссылка по теме: https://stackoverflow.com/questions/6162484/why-does-modern-perl-avoid-utf-8-by-default возможно пригодится07.10.2018, 10:57, "Alex Povolotsky via Moscow-pm" : По итогам: use utf8::all; binmode STDERR; Для вывода в stderr дают нормальную работу. То, что пишется в файлы, видимым образом не страдает 06.10.2018 17:33, Ксения Боброва пишет: А куда он пишет, в STDERR или STDOUT? Не пробовали binmode(STDERR, ":utf8") и binmode(STDOUT, ":utf8") ? сб, 6 окт. 2018 г. в 15:45, Alex Povolotsky via Moscow-pm: Добрый день Обнаружил, что Mojo::Log у меня не пишет русские буквы === cut mojolog === #!/usr/bin/env perl use strict; use utf8; use Mojo::Log; my $log = new Mojo::Log; print "Просто принт\n"; $log->info('тест лога'); === cut mojolog === % perl mojolog Просто принт [Sat Oct 6 15:22:43 2018] [info] ÑеÑÑ Ð»Ð¾Ð³Ð° В попытках разобраться, обнаружил, что на трех других серверах этот скрипт работает адекватно. Версия ОС везде FreeBSD 11.1 или 11.2. Perl 5.26. Mojolicous 8.00 или 7.88. LANG везде ru_RU.UTF-8. Что это может быть? Попробовал на проблемной машине обновить перл, пересобрал все модули с бинарниками, эффекта никакого. -- Alex -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org -- Ksenia Bobrova ,-- Moscow.pm mailing listmoscow-pm@pm.org | http://moscow.pm.org-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org