From khedin на gmail.com Thu Nov 3 03:20:43 2016 From: khedin на gmail.com (Konstantin S. Uvarin) Date: Thu, 3 Nov 2016 12:20:43 +0200 Subject: [Moscow.pm] Potracheno: wasted time tracker In-Reply-To: References: Message-ID: Всем добрый день. Выпущена новая версия. Изменения: * Причёсан внешний вид (спасибо Павел Купцов); * Добавлен markdown и редактирование тикетов (пока не версионное); * Добавлена справка; * Можно следить за тикетами; * Добавлен отчёт по тикетам, у которых предложенное решение дешевле, чем потраченное на них время; * Добавлены теги как на стековерфлоу Планируется: * OAuth; * Поддержка e-mail (опциональная); * Запуск на Windows; * Версионное редактирование; * Дальнейшее улучшение внешнего вида и юзабилити. Попробовать http://potracheno.shln.ru/ Сорцы https://github.com/dallaylaen/potracheno 2016-10-03 16:01 GMT+03:00 Konstantin S. Uvarin : > Приветствую. > > Давно мечтал запилить трекер для учёта времени, продолбанного на борьбу > с техническим долгом. И вот - выдалась минутка... > > В чём суть: для любой проблемы типа "кеш долго перегружается" или "надо > каждый раз обходить грабли" или "сложный код сложно модифицировать" > заводится задача (как и в обычном багтрекере). Затем можно логировать > время, потраченное на вот это вот (вместо, конечно же, действительно > полезной работы). Можно также комментить и предлагать решения (типа "я > пофикшу эту проблему за 4 часа"). > > (Предполагается, что по мере превышения продолбанного времени над > оценкой для решения можно будет их конвертировать в обычные таски.) > > Планируется: маркдаун, редактирование постов, улучшенные репорты и поиск > (сейчас он очень тупой). И ещё пластическая операция, ибо оно страшное, как > моя жизнь. > > Для не убоявшихся: > > Попробовать http://potracheno.shln.ru/ > Сорцы https://github.com/dallaylaen/potracheno > > -- > Konstantin S. Uvarin > jabber: see > skype: kuvarin > http://github.com/dallaylaen > -- Konstantin S. Uvarin jabber: see skype: kuvarin http://github.com/dallaylaen ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From shafiev на gmail.com Thu Nov 3 05:09:43 2016 From: shafiev на gmail.com (Naim Sh) Date: Thu, 3 Nov 2016 16:09:43 +0400 Subject: [Moscow.pm] Potracheno: wasted time tracker In-Reply-To: References: Message-ID: <5087dcb7-f0b5-4aa5-00b4-9e87347fc899@gmail.com> Советую, об этом софте на LORе и на opennet.ru разместить . Из потоков говнокомментариев можно найти и очень хорошие ИМХО On 11/03/2016 02:20 PM, Konstantin S. Uvarin via Moscow-pm wrote: > Всем добрый день. > > Выпущена новая версия. Изменения: > * Причёсан внешний вид (спасибо Павел Купцов); > * Добавлен markdown и редактирование тикетов (пока не версионное); > * Добавлена справка; > * Можно следить за тикетами; > * Добавлен отчёт по тикетам, у которых предложенное решение дешевле, > чем потраченное на них время; > * Добавлены теги как на стековерфлоу > > Планируется: > * OAuth; > * Поддержка e-mail (опциональная); > * Запуск на Windows; > * Версионное редактирование; > * Дальнейшее улучшение внешнего вида и юзабилити. > > Попробовать http://potracheno.shln.ru/ > Сорцы https://github.com/dallaylaen/potracheno > > > 2016-10-03 16:01 GMT+03:00 Konstantin S. Uvarin >: > > Приветствую. > > Давно мечтал запилить трекер для учёта времени, продолбанного на > борьбу с техническим долгом. И вот - выдалась минутка... > > В чём суть: для любой проблемы типа "кеш долго перегружается" > или "надо каждый раз обходить грабли" или "сложный код сложно > модифицировать" заводится задача (как и в обычном багтрекере). > Затем можно логировать время, потраченное на вот это вот (вместо, > конечно же, действительно полезной работы). Можно также комментить > и предлагать решения (типа "я пофикшу эту проблему за 4 часа"). > > (Предполагается, что по мере превышения продолбанного времени > над оценкой для решения можно будет их конвертировать в обычные > таски.) > > Планируется: маркдаун, редактирование постов, улучшенные репорты > и поиск (сейчас он очень тупой). И ещё пластическая операция, ибо > оно страшное, как моя жизнь. > > Для не убоявшихся: > > Попробовать http://potracheno.shln.ru/ > Сорцы https://github.com/dallaylaen/potracheno > > > -- > Konstantin S. Uvarin > jabber: see > skype: kuvarin > http://github.com/dallaylaen > > > > > -- > Konstantin S. Uvarin > jabber: see > skype: kuvarin > http://github.com/dallaylaen > > -- ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From paul.vlasov на gmail.com Fri Nov 4 02:20:33 2016 From: paul.vlasov на gmail.com (Pavel Vlasov) Date: Fri, 4 Nov 2016 12:20:33 +0300 Subject: [Moscow.pm] =?utf-8?b?0JLQsNC60LDQvdGB0LjRjyDRg9C00LDQu9GR0L0=?= =?utf-8?b?0L3QsNGPINGA0LDQsdC+0YLQsA==?= Message-ID: Ищем *Perl-разработчика* на фул-тайм удалённую работу в команду *AppFollow.io * Основные задачи: парсинг и хранение данных, реализация алгоритмов работы с приложениями в App Store и Google Play, доработка внутренних API, интеграции с популярными сервисами Intercom, Segment и ProductHunt, а также разработка ботов для Slack и Telegram. Полное описание вакансии: https://perljobs.ru/job/74 За подробностями пишите на: hi на appfollow.io -- Pavel Vlasov – CTO & Co-founder, AppFollow.io ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vaneska.ru на gmail.com Wed Nov 9 12:03:47 2016 From: vaneska.ru на gmail.com (=?UTF-8?B?0JjQstCw0L0g0KHQvtC60L7Qu9C+0LI=?=) Date: Wed, 9 Nov 2016 23:03:47 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQvtCz0LTQsCDRg9C20LUg0LHRg9C00LXRgiA=?= =?utf-8?b?0LLRgdGC0YDQtdGH0LAgTW9zY293LnBtPw==?= In-Reply-To: References: <20161024102057.GA24517@pavilion> <4290961477305857@web25g.yandex.ru> <20161025135327.GA9370@pavilion> <1477423250.134948002@f131.i.mail.ru> <20161026125405.GA13020@pavilion> Message-ID: Если интересно, могу попробовать соорудить доклад-обсуждение на тему монолит vs микросервисы. Много очень вопросов у меня, хотелось бы пообсуждать 27 октября 2016 г., 0:17 пользователь Nikolay Poletaev via Moscow-pm < moscow-pm на pm.org> написал: > Это было пару лет назад, думаю если еще раз рассказать хуже не будет ;) > > On Wed, 26 Oct 2016 22:48 Victor Efimov, wrote: > >> я уже делал пару лет назад >> https://www.youtube.com/watch?v=43vDtaKl71c >> http://www.slideshare.net/ssuser129a4e/unicode-perl-yapc-russia-2014 >> а чего ещё про юникод то надо? >> >> 26 октября 2016 г., 19:22 пользователь Nikolay Poletaev via Moscow-pm >> написал: >> > я очень прошу Ефимова сделать доклад про unicode/utf8 >> > >> > ср, 26 окт. 2016 г. в 15:54, Dmitry Kopytov : >> >> >> >> On Tue, Oct 25, 2016 at 10:20:50PM +0300, Warstone на list.ru wrote: >> >> > Мы как раз сегодня на кухне холиварили на тему того - что писать в >> >> > корпоративный блог на Хабре или "почему его у нас нету"... Ни к чему >> >> > не пришли, но мое мнение - что рассказывать не о чем... Вот из >> >> > относительно интересного - я поюзал магию перловскую для >> >> > АБ-тестирования. Но делать доклад "смотрите, я написал 5кб Си кода с >> >> > 2мя вызовами коллбеков" - это бред, ИМХО. Идите и читайте perlguts / >> >> > perlapi и исходники перла... Делать доклад на тему "почему >> >> > кодогенерация через наследование и прекеш перед форком - это тру" - >> >> > тоже не сильно имеет смысл, ИМХО. А больше-то и нету тем. >> >> >> >> Я не думаю, что возможно написать доклад, который был бы интересен и >> >> полезен вообще всем. И то что лично вам не был бы интересен доклад на >> >> какую-то тему, вовсе не означает, что он вообще никому не будет >> >> интересен. Нужно допускать, в Perl-сообществе находятся не только >> >> тру-мега-эксперты, но и среднего уровня программисты, и новички. >> Поэтому >> >> темы докладов могут быть самые разные. >> >> >> >> Сами по себе встречи Moscow.pm сплочают наше сообщество, без них >> интерес >> >> к Perl-у увядает, потому что без встреч неизбежно возникает ощущение, >> >> что сообщество мертво. Вспомните, например, 2013-2014 год: были и >> >> встречи каждый месяц и Pragmatic Perl постоянно выходил, было круто, >> >> весело и интересно, ощущался драйв. Сейчас этого нет, но только от нас >> >> зависит, в каком состоянии будет сообщество и каким будет отношение к >> >> Perl-у. Нужно, чтобы каждый задал себе вопрос: «Каким вкладом я могу >> >> быть в сообщество программистов и в развитии интереса к Perl-у? С каким >> >> докладом я могу выступить, чтобы создать этот интерес?» Уверен, что >> >> нам всем небезразлична судьба Perl-а, так что давайте все вместе >> >> создавать интерес и двигать вперёд Perl! Избавьтесь от стеснения, >> >> присылайте Паше свои темы для докладов, ведь только от вас зависит >> >> судьба сообщества и Perl-а! >> >> >> >> -- >> >> Dmitry Kopytov >> >> >> >> -- >> >> Moscow.pm mailing list >> >> moscow-pm на pm.org | http://moscow.pm.org >> > >> > >> > -- >> > Moscow.pm mailing list >> > moscow-pm на pm.org | http://moscow.pm.org >> > >> > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением, Иван ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Thu Nov 10 03:13:19 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Thu, 10 Nov 2016 14:13:19 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQvtCz0LTQsCDRg9C20LUg0LHRg9C00LXRgiA=?= =?utf-8?b?0LLRgdGC0YDQtdGH0LAgTW9zY293LnBtPw==?= In-Reply-To: References: <20161024102057.GA24517@pavilion> <4290961477305857@web25g.yandex.ru> <20161025135327.GA9370@pavilion> <1477423250.134948002@f131.i.mail.ru> <20161026125405.GA13020@pavilion> Message-ID: http://microservices.io/patterns/monolithic.html http://danluu.com/monorepo/ и так далее. Мне лично сейчас более всего нравится идея держать множество сервисов для внутреннего приложения в одном репозитории, разделенных архитектурно. Ну и вырезать в отдельные репозитории только по необходимости (git filter branch) - например, когда надо выполнить отчуждение кода. Это с одной стороны. С другой стороны, фронт и бэк (и иные слои) могут лежать в разных репозиториях, даже для одного приложения. Причина - фронту обычно не нужен бэк для разработки (используются заглушки и т.п.). То есть - удобно делить код по репозиториям по слоям архитектуры, и удобно выделять в репозитории отчуждаемые компоненты. Дальнейшее дробление для небольшой команды не вполне эффективно. Причем это не мешает использованию микросервисов. Этот подход оправдан при небольшой кодовой базе. Когда любой разработчик способен модифицировать поведение кода в любой части репозитория, в котором он работает (имеет соотв. компетенцию). 9 ноября 2016 г., 23:03 пользователь Иван Соколов via Moscow-pm < moscow-pm на pm.org> написал: > Если интересно, могу попробовать соорудить доклад-обсуждение на тему > монолит vs микросервисы. > Много очень вопросов у меня, хотелось бы пообсуждать > > 27 октября 2016 г., 0:17 пользователь Nikolay Poletaev via Moscow-pm < > moscow-pm на pm.org> написал: > > Это было пару лет назад, думаю если еще раз рассказать хуже не будет ;) >> >> On Wed, 26 Oct 2016 22:48 Victor Efimov, wrote: >> >>> я уже делал пару лет назад >>> https://www.youtube.com/watch?v=43vDtaKl71c >>> http://www.slideshare.net/ssuser129a4e/unicode-perl-yapc-russia-2014 >>> а чего ещё про юникод то надо? >>> >>> 26 октября 2016 г., 19:22 пользователь Nikolay Poletaev via Moscow-pm >>> написал: >>> > я очень прошу Ефимова сделать доклад про unicode/utf8 >>> > >>> > ср, 26 окт. 2016 г. в 15:54, Dmitry Kopytov : >>> >> >>> >> On Tue, Oct 25, 2016 at 10:20:50PM +0300, Warstone на list.ru wrote: >>> >> > Мы как раз сегодня на кухне холиварили на тему того - что писать в >>> >> > корпоративный блог на Хабре или "почему его у нас нету"... Ни к чему >>> >> > не пришли, но мое мнение - что рассказывать не о чем... Вот из >>> >> > относительно интересного - я поюзал магию перловскую для >>> >> > АБ-тестирования. Но делать доклад "смотрите, я написал 5кб Си кода с >>> >> > 2мя вызовами коллбеков" - это бред, ИМХО. Идите и читайте perlguts / >>> >> > perlapi и исходники перла... Делать доклад на тему "почему >>> >> > кодогенерация через наследование и прекеш перед форком - это тру" - >>> >> > тоже не сильно имеет смысл, ИМХО. А больше-то и нету тем. >>> >> >>> >> Я не думаю, что возможно написать доклад, который был бы интересен и >>> >> полезен вообще всем. И то что лично вам не был бы интересен доклад на >>> >> какую-то тему, вовсе не означает, что он вообще никому не будет >>> >> интересен. Нужно допускать, в Perl-сообществе находятся не только >>> >> тру-мега-эксперты, но и среднего уровня программисты, и новички. >>> Поэтому >>> >> темы докладов могут быть самые разные. >>> >> >>> >> Сами по себе встречи Moscow.pm сплочают наше сообщество, без них >>> интерес >>> >> к Perl-у увядает, потому что без встреч неизбежно возникает ощущение, >>> >> что сообщество мертво. Вспомните, например, 2013-2014 год: были и >>> >> встречи каждый месяц и Pragmatic Perl постоянно выходил, было круто, >>> >> весело и интересно, ощущался драйв. Сейчас этого нет, но только от нас >>> >> зависит, в каком состоянии будет сообщество и каким будет отношение к >>> >> Perl-у. Нужно, чтобы каждый задал себе вопрос: «Каким вкладом я могу >>> >> быть в сообщество программистов и в развитии интереса к Perl-у? С >>> каким >>> >> докладом я могу выступить, чтобы создать этот интерес?» Уверен, что >>> >> нам всем небезразлична судьба Perl-а, так что давайте все вместе >>> >> создавать интерес и двигать вперёд Perl! Избавьтесь от стеснения, >>> >> присылайте Паше свои темы для докладов, ведь только от вас зависит >>> >> судьба сообщества и Perl-а! >>> >> >>> >> -- >>> >> Dmitry Kopytov >>> >> >>> >> -- >>> >> 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 > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vaneska.ru на gmail.com Thu Nov 10 05:17:39 2016 From: vaneska.ru на gmail.com (=?UTF-8?B?0JjQstCw0L0g0KHQvtC60L7Qu9C+0LI=?=) Date: Thu, 10 Nov 2016 16:17:39 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQvtCz0LTQsCDRg9C20LUg0LHRg9C00LXRgiA=?= =?utf-8?b?0LLRgdGC0YDQtdGH0LAgTW9zY293LnBtPw==?= In-Reply-To: References: <20161024102057.GA24517@pavilion> <4290961477305857@web25g.yandex.ru> <20161025135327.GA9370@pavilion> <1477423250.134948002@f131.i.mail.ru> <20161026125405.GA13020@pavilion> Message-ID: Спасибо за ссылки. Очень интересно. 10 ноября 2016 г., 14:13 пользователь Akzhan Abdulin < akzhan.abdulin на gmail.com> написал: > http://microservices.io/patterns/monolithic.html > http://danluu.com/monorepo/ > > и так далее. Мне лично сейчас более всего нравится идея держать множество > сервисов для внутреннего приложения в одном репозитории, разделенных > архитектурно. > Ну и вырезать в отдельные репозитории только по необходимости (git filter > branch) - например, когда надо выполнить отчуждение кода. > > Это с одной стороны. > > С другой стороны, фронт и бэк (и иные слои) могут лежать в разных > репозиториях, даже для одного приложения. Причина - фронту обычно не нужен > бэк для разработки (используются заглушки и т.п.). > > То есть - удобно делить код по репозиториям по слоям архитектуры, и удобно > выделять в репозитории отчуждаемые компоненты. Дальнейшее дробление для > небольшой команды не вполне эффективно. > > Причем это не мешает использованию микросервисов. > > Этот подход оправдан при небольшой кодовой базе. Когда любой разработчик > способен модифицировать поведение кода в любой части репозитория, в котором > он работает (имеет соотв. компетенцию). > > > 9 ноября 2016 г., 23:03 пользователь Иван Соколов via Moscow-pm < > moscow-pm на pm.org> написал: > > Если интересно, могу попробовать соорудить доклад-обсуждение на тему >> монолит vs микросервисы. >> Много очень вопросов у меня, хотелось бы пообсуждать >> >> 27 октября 2016 г., 0:17 пользователь Nikolay Poletaev via Moscow-pm < >> moscow-pm на pm.org> написал: >> >> Это было пару лет назад, думаю если еще раз рассказать хуже не будет ;) >>> >>> On Wed, 26 Oct 2016 22:48 Victor Efimov, wrote: >>> >>>> я уже делал пару лет назад >>>> https://www.youtube.com/watch?v=43vDtaKl71c >>>> http://www.slideshare.net/ssuser129a4e/unicode-perl-yapc-russia-2014 >>>> а чего ещё про юникод то надо? >>>> >>>> 26 октября 2016 г., 19:22 пользователь Nikolay Poletaev via Moscow-pm >>>> написал: >>>> > я очень прошу Ефимова сделать доклад про unicode/utf8 >>>> > >>>> > ср, 26 окт. 2016 г. в 15:54, Dmitry Kopytov : >>>> >> >>>> >> On Tue, Oct 25, 2016 at 10:20:50PM +0300, Warstone на list.ru wrote: >>>> >> > Мы как раз сегодня на кухне холиварили на тему того - что писать в >>>> >> > корпоративный блог на Хабре или "почему его у нас нету"... Ни к >>>> чему >>>> >> > не пришли, но мое мнение - что рассказывать не о чем... Вот из >>>> >> > относительно интересного - я поюзал магию перловскую для >>>> >> > АБ-тестирования. Но делать доклад "смотрите, я написал 5кб Си кода >>>> с >>>> >> > 2мя вызовами коллбеков" - это бред, ИМХО. Идите и читайте perlguts >>>> / >>>> >> > perlapi и исходники перла... Делать доклад на тему "почему >>>> >> > кодогенерация через наследование и прекеш перед форком - это тру" - >>>> >> > тоже не сильно имеет смысл, ИМХО. А больше-то и нету тем. >>>> >> >>>> >> Я не думаю, что возможно написать доклад, который был бы интересен и >>>> >> полезен вообще всем. И то что лично вам не был бы интересен доклад на >>>> >> какую-то тему, вовсе не означает, что он вообще никому не будет >>>> >> интересен. Нужно допускать, в Perl-сообществе находятся не только >>>> >> тру-мега-эксперты, но и среднего уровня программисты, и новички. >>>> Поэтому >>>> >> темы докладов могут быть самые разные. >>>> >> >>>> >> Сами по себе встречи Moscow.pm сплочают наше сообщество, без них >>>> интерес >>>> >> к Perl-у увядает, потому что без встреч неизбежно возникает ощущение, >>>> >> что сообщество мертво. Вспомните, например, 2013-2014 год: были и >>>> >> встречи каждый месяц и Pragmatic Perl постоянно выходил, было круто, >>>> >> весело и интересно, ощущался драйв. Сейчас этого нет, но только от >>>> нас >>>> >> зависит, в каком состоянии будет сообщество и каким будет отношение к >>>> >> Perl-у. Нужно, чтобы каждый задал себе вопрос: «Каким вкладом я могу >>>> >> быть в сообщество программистов и в развитии интереса к Perl-у? С >>>> каким >>>> >> докладом я могу выступить, чтобы создать этот интерес?» Уверен, что >>>> >> нам всем небезразлична судьба Perl-а, так что давайте все вместе >>>> >> создавать интерес и двигать вперёд Perl! Избавьтесь от стеснения, >>>> >> присылайте Паше свои темы для докладов, ведь только от вас зависит >>>> >> судьба сообщества и Perl-а! >>>> >> >>>> >> -- >>>> >> Dmitry Kopytov >>>> >> >>>> >> -- >>>> >> 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 >> >> > -- С уважением, Иван ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ponizovsky на gmail.com Tue Nov 15 08:24:50 2016 From: ponizovsky на gmail.com (Eugene Ponizovsky) Date: Tue, 15 Nov 2016 19:24:50 +0300 Subject: [Moscow.pm] =?utf-8?b?0J3QtdCx0LvQvtC60LjRgNGD0Y7RidC40LkgU1RP?= =?utf-8?b?TVAg0LrQu9C40LXQvdGC?= Message-ID: Добрый день, коллеги. Сделал свой неблокирующий STOMP клиент AnyEvent::Stomper, так как ИМХО существующие имеют очень неудобный интерфейс. Клиент поддерживает STOMP протокол версий: 1.0, 1.1, 1.2, поддерживает heart-beating и умеет автоматически восстанавливать соединение после сбоя. Также в комплекте с клиентом идет модуль AnyEvent::Stomper::Pool для работы с кластером или множеством STOMP серверов. Клиент протестирован на RabbitMQ и ActiveMQ. Возможно, кому-то такой клиент нужен прямо сейчас :) https://metacpan.org/pod/AnyEvent::Stomper From iskhartakh на gmail.com Tue Nov 15 18:48:50 2016 From: iskhartakh на gmail.com (Anatoly Y) Date: Wed, 16 Nov 2016 09:48:50 +0700 Subject: [Moscow.pm] =?utf-8?b?0J3QtdCx0LvQvtC60LjRgNGD0Y7RidC40LkgU1RP?= =?utf-8?b?TVAg0LrQu9C40LXQvdGC?= In-Reply-To: References: Message-ID: Спасибо! 2016-11-15 23:24 GMT+07:00 Eugene Ponizovsky via Moscow-pm : > Добрый день, коллеги. > > Сделал свой неблокирующий STOMP клиент AnyEvent::Stomper, так как ИМХО > существующие имеют очень неудобный интерфейс. Клиент поддерживает STOMP > протокол версий: 1.0, 1.1, 1.2, поддерживает heart-beating и умеет > автоматически восстанавливать соединение после сбоя. Также в комплекте с > клиентом идет модуль AnyEvent::Stomper::Pool для работы с кластером или > множеством STOMP серверов. Клиент протестирован на RabbitMQ и ActiveMQ. > > Возможно, кому-то такой клиент нужен прямо сейчас :) > > https://metacpan.org/pod/AnyEvent::Stomper > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mshogin на gmail.com Wed Nov 23 03:05:02 2016 From: mshogin на gmail.com (=?UTF-8?B?0JzQuNGF0LDQuNC7INCo0L7Qs9C40L0=?=) Date: Wed, 23 Nov 2016 14:05:02 +0300 Subject: [Moscow.pm] SOS! Python developers are needed Message-ID: Привет всем! Сразу прошу прощения за то, что вакансия про не Perl. Но нам прям оч нужны люди, которые могут python. Я сам раньше делал perl, но вот уже 2 года как делаю python. Так что если кто хочет, прям велкам-велкам! формальное описание вакансии https://hh.ru/vacancy/17710119 реально: python Django Django rest framework TDD По деньгам все как обычно, вы говорите сколько хотите, мы говорим осилим или нет. Главный минус - фултайм, в офисе на Шаболовке. Гражданство значения не имеет. -- С уважением Михаил Шогин. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From agrishaev на gmail.com Wed Nov 23 03:34:56 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Wed, 23 Nov 2016 14:34:56 +0300 Subject: [Moscow.pm] SOS! Python developers are needed In-Reply-To: References: Message-ID: А Вы берете перловиков, которые только месяц назад выучили django? Типа приложение Hello World на вебсокетах? 23 ноября 2016 г., 14:05 пользователь Михаил Шогин via Moscow-pm < moscow-pm на pm.org> написал: > Привет всем! > > Сразу прошу прощения за то, что вакансия про не Perl. > Но нам прям оч нужны люди, которые могут python. > Я сам раньше делал perl, но вот уже 2 года как делаю python. > Так что если кто хочет, прям велкам-велкам! > > формальное описание вакансии https://hh.ru/vacancy/17710119 > > реально: > python > Django > Django rest framework > TDD > > По деньгам все как обычно, вы говорите сколько хотите, мы говорим осилим > или нет. > > Главный минус - фултайм, в офисе на Шаболовке. > Гражданство значения не имеет. > > -- > С уважением > Михаил Шогин. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ksvs1996 на ymail.com Thu Nov 24 02:14:49 2016 From: ksvs1996 на ymail.com (ksvs) Date: Thu, 24 Nov 2016 10:14:49 +0000 (UTC) Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> Message-ID: <1561510714.1691756.1479982489422@mail.yahoo.com> Привет. На какой-то perl конференции, была упомянута информация, об одном перловике, котрому понравился Go, но после года использования он его "проклял". А почему он это сделал никто не запомнил? Интересно ведь! Можно в личку ответить... From andrey на kopeyko.ru Thu Nov 24 08:47:32 2016 From: andrey на kopeyko.ru (Andrey Kopeyko) Date: Thu, 24 Nov 2016 19:47:32 +0300 (MSK) Subject: [Moscow.pm] =?koi8-r?b?W09GRlRPUElDXSDp3cXU09Egyc7Gz9LNwcPJ0Q==?= In-Reply-To: <1561510714.1691756.1479982489422@mail.yahoo.com> References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> Message-ID: On Thu, 24 Nov 2016, ksvs via Moscow-pm wrote: > Привет. > На какой-то perl конференции, была упомянута информация, об одном > перловике, котрому понравился Go, но после года использования он его > "проклял". А почему он это сделал никто не запомнил? Интересно ведь! Можно > в личку ответить... Не надо в личку - общественность должна знать такие подробности! -- Best regards, Andrey Kopeyko From akzhan.abdulin на gmail.com Thu Nov 24 09:42:19 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Thu, 24 Nov 2016 20:42:19 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> Message-ID: Всему своё место. Для простых вещей, которые должны работать быстро и надежно, Golang подходит. А что-то большое я бы на нём делать побоялся, разве что используя концепцию микросервисов. 24 ноября 2016 г., 19:47 пользователь Andrey Kopeyko via Moscow-pm < moscow-pm на pm.org> написал: > On Thu, 24 Nov 2016, ksvs via Moscow-pm wrote: > > Привет. >> > > На какой-то perl конференции, была упомянута информация, об одном >> перловике, котрому понравился Go, но после года использования он его >> "проклял". А почему он это сделал никто не запомнил? Интересно ведь! Можно >> в личку ответить... >> > > Не надо в личку - общественность должна знать такие подробности! > > > -- > Best regards, > Andrey Kopeyko > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From theathlet на yandex.ru Thu Nov 24 10:13:13 2016 From: theathlet на yandex.ru (=?utf-8?B?0JrQvtCy0LDQu9GMINCS0Y/Rh9C10YHQu9Cw0LI=?=) Date: Thu, 24 Nov 2016 18:13:13 +0000 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: <1561510714.1691756.1479982489422@mail.yahoo.com> References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> Message-ID: <4003651480011193@web30j.yandex.ru> Вложение в формате HTML было извлечено… URL: From onokonem на gmail.com Thu Nov 24 11:13:57 2016 From: onokonem на gmail.com (Daniel Podolsky) Date: Thu, 24 Nov 2016 22:13:57 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> Message-ID: > А что-то большое я бы на нём делать побоялся, разве что используя концепцию > микросервисов. +1, в общем-то. но делать что-то большое на перле я боюсь с использованием любой концепции... From nordicdyno на yandex.ru Thu Nov 24 12:13:49 2016 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 24 Nov 2016 23:13:49 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> Message-ID: <4440761480018429@web19m.yandex.ru> Вложение в формате HTML было извлечено… URL: From agrishaev на gmail.com Thu Nov 24 22:27:40 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Fri, 25 Nov 2016 09:27:40 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: <4440761480018429@web19m.yandex.ru> References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <4440761480018429@web19m.yandex.ru> Message-ID: Дык, большое же получается из маленького, а когда оно работает уже и не страшно. Проектов, которые изначально большие, микроскопическое же колво, или как? 24 ноября 2016 г., 23:13 пользователь Orlovsky Alexander via Moscow-pm < moscow-pm на pm.org> написал: > 24.11.2016, 22:14, "Daniel Podolsky via Moscow-pm" : > > А что-то большое я бы на нём делать побоялся, разве что используя > концепцию > микросервисов. > > > +1, в общем-то. > > но делать что-то большое на перле я боюсь с использованием любой > концепции... > > > что то большое делать вообще страшно, а так зажмурился – и вперед! > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Thu Nov 24 22:58:49 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Fri, 25 Nov 2016 09:58:49 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> Message-ID: "я не трус, но я боюсь" :) Хорошо, что другие не боятся. 24 ноября 2016 г., 22:13 пользователь Daniel Podolsky via Moscow-pm < moscow-pm на pm.org> написал: > > А что-то большое я бы на нём делать побоялся, разве что используя > концепцию > > микросервисов. > > +1, в общем-то. > > но делать что-то большое на перле я боюсь с использованием любой > концепции... > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From agrishaev на gmail.com Fri Nov 25 01:46:39 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Fri, 25 Nov 2016 12:46:39 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= Message-ID: Доброго времени суток. Есть асинхронный HTTP/HTTPS прокси в виде скрипта + модули. Производительность около 1000 запросов в секунду т.е. очень хорошо. поддерживает HTTP/1.1 --- в том числе постоянные соединения. В работе используется уже года три. Думаю дооформить и выложить на cpan или github. 1) Нужна ли кому-либо такая штука? 2) Какой интерфейс лучше сделать, чтобы и был простой и функциональный? 3) Куда лучше выложить cpan или github? Сейчас он транслирует запросы практически как есть и чтобы преобразовывать запросы, нужно лезть в код, и это единственный минус, который я знаю. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From unknown.vagrant на gmail.com Fri Nov 25 02:39:05 2016 From: unknown.vagrant на gmail.com (Nikolay Poletaev) Date: Fri, 25 Nov 2016 10:39:05 +0000 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= In-Reply-To: References: Message-ID: я думаю cpan и github, темболее на гит выложить пару минут пт, 25 нояб. 2016 г. в 12:46, Толян II via Moscow-pm : > Доброго времени суток. > > Есть асинхронный HTTP/HTTPS прокси в виде скрипта + модули. > Производительность около 1000 запросов в секунду т.е. очень хорошо. > поддерживает HTTP/1.1 --- в том числе постоянные соединения. > В работе используется уже года три. > > Думаю дооформить и выложить на cpan или github. > > 1) Нужна ли кому-либо такая штука? > 2) Какой интерфейс лучше сделать, чтобы и был простой и функциональный? > 3) Куда лучше выложить cpan или github? > > Сейчас он транслирует запросы практически как есть и чтобы преобразовывать > запросы, нужно лезть в код, и это единственный минус, который я знаю. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From shafiev на gmail.com Fri Nov 25 03:00:48 2016 From: shafiev на gmail.com (Naim Sh) Date: Fri, 25 Nov 2016 15:00:48 +0400 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw?= =?utf-8?b?0YHRgdC40LLQtQ==?= Message-ID: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Коллеги, столкнулся с тем что код такого вида , используемый для поиска свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается под 5 секунд версия с map : my %ips = map { $_ => 1 } @ips; if (not exists($ips{$iponly} )) { return $iponly; } и с grep(sic!) ~2 секунду : if ( ! ( grep {$iponly eq $_ } @ips ) ) # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast , avg 34µs/call # spent 9.56ms making 814 calls to NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268] , avg 12µs/call { return $iponly; } Еще трабла в том что легендарный List::Util отдает быстро но почему не тот же результат( пробовал first , none ) что и grep? коллеги это нормально на более-менее среднем сервачке ? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sergle.ua на gmail.com Fri Nov 25 03:26:07 2016 From: sergle.ua на gmail.com (Sergey Leschenko) Date: Fri, 25 Nov 2016 13:26:07 +0200 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Message-ID: > под 5 секунд версия с map обычно же map строят заранее. В таком варианте grep будет быстрее. 2016-11-25 13:00 GMT+02:00 Naim Sh via Moscow-pm : > Коллеги, столкнулся с тем что код такого вида , используемый для поиска > свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается под 5 > секунд версия с map : > > my %ips = map { $_ => 1 } @ips; > if (not exists($ips{$iponly} )) > { > return $iponly; > } > > > и с grep(sic!) ~2 секунду : > > if ( ! ( grep {$iponly eq $_ } @ips ) ) > # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast > , > avg 34µs/call > # spent 9.56ms making 814 calls to NetAddr::IP::Lite::__ANON__[ > NetAddr/IP/Lite.pm:268] > , > avg 12µs/call > { > return $iponly; > } > > Еще трабла в том что легендарный List::Util отдает быстро но почему не тот > же результат( пробовал first , none ) что и grep? > > коллеги это нормально на более-менее среднем сервачке ? > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- Sergey ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From agrishaev на gmail.com Fri Nov 25 03:27:50 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Fri, 25 Nov 2016 14:27:50 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Message-ID: Выглядит не реально, можешь код с данными выложить тем более (500-1000) элементов это ~ 8кб всего. Тестовый пример: ====================== use Time::HiRes qw(time); my @ips = (1..1001); for my $i (0..4){ my $iponly = 995 + $i; my $s = time (); my %ips = map { $_ => 1 } @ips; my $r1 = (not exists $ips{$iponly}); my $time1 = time - $s; $s = time (); my $r2 = grep $_ eq $iponly, @ips; my $time2 = time - $s; printf ("i=$i\tmap=%4.3fms grep=%4.3fms\n", $time1 * 1000, $time2 * 1000); } ======================= i=0 map=0.660ms grep=0.116ms i=1 map=0.515ms grep=0.070ms i=2 map=0.471ms grep=0.070ms i=3 map=0.529ms grep=0.071ms i=4 map=0.385ms grep=0.051ms ======================== Конечно map медленнее, но до двух секунд ему далеко(разница в три порядка) Нужно смотреть на код и данные, может там есть магия. 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm < moscow-pm на pm.org> написал: > Коллеги, столкнулся с тем что код такого вида , используемый для поиска > свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается под 5 > секунд версия с map : > > my %ips = map { $_ => 1 } @ips; > if (not exists($ips{$iponly} )) > { > return $iponly; > } > > > и с grep(sic!) ~2 секунду : > > if ( ! ( grep {$iponly eq $_ } @ips ) ) > # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast > , > avg 34µs/call > # spent 9.56ms making 814 calls to NetAddr::IP::Lite::__ANON__[ > NetAddr/IP/Lite.pm:268] > , > avg 12µs/call > { > return $iponly; > } > > Еще трабла в том что легендарный List::Util отдает быстро но почему не тот > же результат( пробовал first , none ) что и grep? > > коллеги это нормально на более-менее среднем сервачке ? > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sergey.aleynikov на gmail.com Fri Nov 25 03:29:07 2016 From: sergey.aleynikov на gmail.com (Sergey Aleynikov) Date: Fri, 25 Nov 2016 14:29:07 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Message-ID: Добрый день, map будет быстрее только если поисков по одному и тому же исходному массиву @ips будет несколько - т.к. операция построения хэша дорогая. Одноразовый поиск - греп быстрее. first возвращает другое (по смыслу) значение, чем греп (элемент, а не количество), но логически для этой задачи разницы быть не должно. PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = map { $_ => 1 } @ips; Best regards, Sergey Aleynikov 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm написал: > Коллеги, столкнулся с тем что код такого вида , используемый для поиска > свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается под 5 > секунд версия с map : > > my %ips = map { $_ => 1 } @ips; > if (not exists($ips{$iponly} )) > { > return $iponly; > } > > > и с grep(sic!) ~2 секунду : > > if ( ! ( grep {$iponly eq $_ } @ips ) ) > # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast, avg > 34µs/call > # spent 9.56ms making 814 calls to > NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], avg 12µs/call > { > return $iponly; > } > > Еще трабла в том что легендарный List::Util отдает быстро но почему не тот > же результат( пробовал first , none ) что и grep? > > коллеги это нормально на более-менее среднем сервачке ? > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From shafiev на gmail.com Fri Nov 25 03:38:36 2016 From: shafiev на gmail.com (Naim Sh) Date: Fri, 25 Nov 2016 15:38:36 +0400 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw?= =?utf-8?b?0YHRgdC40LLQtQ==?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Message-ID: Оки и какой вариант быстрее того же map будет . код имеет такой вид ( точнее его кусок который больше всего времени и ест ) массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, 10.135.8.23 , 10.135.22.43 и тд и тп . my $ipn = NetAddr::IP->new("$first_ip/$netmask"); while( $ipn < $ipn->broadcast ) { my $iponly = (split '/', $ipn++)[0]; #get if ( ! ( grep {$iponly eq $_} @ips ) ) { return $iponly; } } first отдает не то что мне нужно из под этой сети адрес в данном случае 10.135.x.y а 10.56.x.y хотя да он первый пустой, но grep выдает то что нужно. Вроде tie переменных и т.д нету On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: > Добрый день, > > map будет быстрее только если поисков по одному и тому же исходному > массиву @ips будет несколько - т.к. операция построения хэша дорогая. > Одноразовый поиск - греп быстрее. first возвращает другое (по смыслу) > значение, чем греп (элемент, а не количество), но логически для этой > задачи разницы быть не должно. > > PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = map { $_ => 1 } @ips; > > Best regards, > Sergey Aleynikov > > > 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm > написал: >> Коллеги, столкнулся с тем что код такого вида , используемый для поиска >> свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается под 5 >> секунд версия с map : >> >> my %ips = map { $_ => 1 } @ips; >> if (not exists($ips{$iponly} )) >> { >> return $iponly; >> } >> >> >> и с grep(sic!) ~2 секунду : >> >> if ( ! ( grep {$iponly eq $_ } @ips ) ) >> # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast, avg >> 34µs/call >> # spent 9.56ms making 814 calls to >> NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], avg 12µs/call >> { >> return $iponly; >> } >> >> Еще трабла в том что легендарный List::Util отдает быстро но почему не тот >> же результат( пробовал first , none ) что и grep? >> >> коллеги это нормально на более-менее среднем сервачке ? >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> -- From zhecka на gmail.com Fri Nov 25 03:47:25 2016 From: zhecka на gmail.com (zhecka) Date: Fri, 25 Nov 2016 14:47:25 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw?= =?utf-8?b?0YHRgdC40LLQtQ==?= In-Reply-To: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Message-ID: <58ec289e-86c2-d40a-012e-7cf0e50794a7@gmail.com> Привет берем Net::Patricia и переписываем код на неё. Radix Tree рулит! On 25.11.2016 14:00, Naim Sh via Moscow-pm wrote: > Коллеги, столкнулся с тем что код такого вида , используемый для > поиска свободных ip v4 адресов на размерах 500-1000 элементов > отрабатывается под 5 секунд версия с map : > > my %ips = map { $_ => 1 } @ips; > if (not exists($ips{$iponly} )) > { > return $iponly; > } > > > и с grep(sic!) ~2 секунду : > > if ( ! ( grep {$iponly eq $_ } @ips ) ) > # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast > , > avg 34µs/call > # spent 9.56ms making 814 calls to > NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268] > , > avg 12µs/call > { > return $iponly; > } > > Еще трабла в том что легендарный List::Util отдает быстро но почему не > тот же результат( пробовал first , none ) что и grep? > > коллеги это нормально на более-менее среднем сервачке ? > > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From tzirulnicov на mail.ru Fri Nov 25 01:50:11 2016 From: tzirulnicov на mail.ru (=?UTF-8?B?0KbRi9GA0YPQu9GM0L3QuNC60L7QsiDQktCw0LTQuNC8?=) Date: Fri, 25 Nov 2016 12:50:11 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= In-Reply-To: References: Message-ID: <1480067411.784006539@f339.i.mail.ru> Будет полезна, на cpan. >Пятница, 25 ноября 2016, 12:46 +03:00 от Толян II via Moscow-pm : > >Доброго времени суток. > >Есть асинхронный HTTP/HTTPS прокси в виде скрипта + модули. >Производительность около 1000 запросов в секунду т.е. очень хорошо. >поддерживает HTTP/1.1 --- в том числе постоянные соединения. >В работе используется уже года три. > >Думаю дооформить и выложить на cpan или github. > >1) Нужна ли кому-либо такая штука? >2) Какой интерфейс лучше сделать, чтобы и был простой и функциональный? >3) Куда лучше выложить cpan или github? > >Сейчас он транслирует запросы практически как есть и чтобы преобразовывать запросы, нужно лезть в код, и это единственный минус, который я знаю. >-- >Moscow.pm mailing list >moscow-pm на pm.org | http://moscow.pm.org С уважением, Вадим Цырульников tzirulnicov на mail.ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From agrishaev на gmail.com Fri Nov 25 03:50:37 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Fri, 25 Nov 2016 14:50:37 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Message-ID: У тебя может быть overload в нескольких местах: 1) В массиве @ips 2) while( $ipn < $ipn->broadcast ) --- вызов метода + overload 3) my $iponly = (split '/', $ipn++)[0]; #get --- overload в чистом виде + преобразование в строку. 25 ноября 2016 г., 14:38 пользователь Naim Sh via Moscow-pm < moscow-pm на pm.org> написал: > Оки и какой вариант быстрее того же map будет . > код имеет такой вид ( точнее его кусок который больше всего времени и ест ) > > массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, 10.135.8.23 , > 10.135.22.43 и тд и тп . > > my $ipn = NetAddr::IP->new("$first_ip/$netmask"); > > while( $ipn < $ipn->broadcast ) > { > my $iponly = (split '/', $ipn++)[0]; #get > > if ( ! ( grep {$iponly eq $_} @ips ) ) > { > return $iponly; > } > > } > > first отдает не то что мне нужно из под этой сети адрес в данном случае > 10.135.x.y а 10.56.x.y хотя да он первый пустой, но grep выдает то что > нужно. > > Вроде tie переменных и т.д нету > > > > On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: > >> Добрый день, >> >> map будет быстрее только если поисков по одному и тому же исходному >> массиву @ips будет несколько - т.к. операция построения хэша дорогая. >> Одноразовый поиск - греп быстрее. first возвращает другое (по смыслу) >> значение, чем греп (элемент, а не количество), но логически для этой >> задачи разницы быть не должно. >> >> PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = map { $_ => 1 } >> @ips; >> >> Best regards, >> Sergey Aleynikov >> >> >> 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm >> написал: >> >>> Коллеги, столкнулся с тем что код такого вида , используемый для поиска >>> свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается >>> под 5 >>> секунд версия с map : >>> >>> my %ips = map { $_ => 1 } @ips; >>> if (not exists($ips{$iponly} )) >>> { >>> return $iponly; >>> } >>> >>> >>> и с grep(sic!) ~2 секунду : >>> >>> if ( ! ( grep {$iponly eq $_ } @ips ) ) >>> # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast, avg >>> 34µs/call >>> # spent 9.56ms making 814 calls to >>> NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], avg 12µs/call >>> { >>> return $iponly; >>> } >>> >>> Еще трабла в том что легендарный List::Util отдает быстро но почему не >>> тот >>> же результат( пробовал first , none ) что и grep? >>> >>> коллеги это нормально на более-менее среднем сервачке ? >>> >>> >>> -- >>> 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 shafiev на gmail.com Fri Nov 25 03:54:38 2016 From: shafiev на gmail.com (Naim Sh) Date: Fri, 25 Nov 2016 15:54:38 +0400 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw?= =?utf-8?b?0YHRgdC40LLQtQ==?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Message-ID: <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> да кроме 2 и 3 его нету . Кстати как я понял Net::Patricia не очень мне подходит(удобен) ведь мне надо найти адрес которого нет в массиве This module uses a Patricia Trie data structure to quickly perform IP address prefix matching for applications such as IP subnet, network or routing table lookups ? On 11/25/2016 03:50 PM, Толян II via Moscow-pm wrote: > У тебя может быть overload в нескольких местах: > 1) В массиве @ips > 2) while( $ipn < $ipn->broadcast ) --- вызов метода + > overload > 3) my $iponly = (split '/', $ipn++)[0]; #get --- overload в чистом > виде + преобразование в строку. > > > > > 25 ноября 2016 г., 14:38 пользователь Naim Sh via Moscow-pm > > написал: > > Оки и какой вариант быстрее того же map будет . > код имеет такой вид ( точнее его кусок который больше всего > времени и ест ) > > массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, > 10.135.8.23 , 10.135.22.43 и тд и тп . > > my $ipn = NetAddr::IP->new("$first_ip/$netmask"); > > while( $ipn < $ipn->broadcast ) > { > my $iponly = (split '/', $ipn++)[0]; #get > > if ( ! ( grep {$iponly eq $_} @ips ) ) > { > return $iponly; > } > > } > > first отдает не то что мне нужно из под этой сети адрес в данном > случае 10.135.x.y а 10.56.x.y хотя да он первый пустой, но grep > выдает то что нужно. > > Вроде tie переменных и т.д нету > > > > On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: > > Добрый день, > > map будет быстрее только если поисков по одному и тому же > исходному > массиву @ips будет несколько - т.к. операция построения хэша > дорогая. > Одноразовый поиск - греп быстрее. first возвращает другое (по > смыслу) > значение, чем греп (элемент, а не количество), но логически > для этой > задачи разницы быть не должно. > > PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = map { $_ > => 1 } @ips; > > Best regards, > Sergey Aleynikov > > > 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm > > написал: > > Коллеги, столкнулся с тем что код такого вида , > используемый для поиска > свободных ip v4 адресов на размерах 500-1000 элементов > отрабатывается под 5 > секунд версия с map : > > my %ips = map { $_ => 1 } @ips; > if (not exists($ips{$iponly} )) > { > return $iponly; > } > > > и с grep(sic!) ~2 секунду : > > if ( ! ( grep {$iponly eq $_ } @ips ) ) > # spent 27.4ms making 814 calls to > NetAddr::IP::Lite::broadcast, avg > 34µs/call > # spent 9.56ms making 814 calls to > NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], avg > 12µs/call > { > return $iponly; > } > > Еще трабла в том что легендарный List::Util отдает быстро > но почему не тот > же результат( пробовал first , none ) что и grep? > > коллеги это нормально на более-менее среднем сервачке ? > > > -- > 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 zhecka на gmail.com Fri Nov 25 04:07:16 2016 From: zhecka на gmail.com (zhecka) Date: Fri, 25 Nov 2016 15:07:16 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw?= =?utf-8?b?0YHRgdC40LLQtQ==?= In-Reply-To: <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> Message-ID: ну я бы не сказал. $banned = new Net::Patricia; if(!$banned->match_string($banip)) { $banned->add_string($banip); } просто заполняешь базу Patricia когда тебе нужно и матчишь что есть и чего нет. On 25.11.2016 14:54, Naim Sh via Moscow-pm wrote: > > да кроме 2 и 3 его нету . > > Кстати как я понял Net::Patricia не очень мне подходит(удобен) ведь > мне надо найти адрес которого нет в массиве > > This module uses a Patricia Trie data structure to quickly perform IP > address prefix matching for applications such as IP subnet, network or > routing table lookups ? > > On 11/25/2016 03:50 PM, Толян II via Moscow-pm wrote: >> У тебя может быть overload в нескольких местах: >> 1) В массиве @ips >> 2) while( $ipn < $ipn->broadcast ) --- вызов метода + >> overload >> 3) my $iponly = (split '/', $ipn++)[0]; #get --- overload в >> чистом виде + преобразование в строку. >> >> >> >> >> 25 ноября 2016 г., 14:38 пользователь Naim Sh via Moscow-pm >> написал: >> >> Оки и какой вариант быстрее того же map будет . >> код имеет такой вид ( точнее его кусок который больше всего >> времени и ест ) >> >> массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, >> 10.135.8.23 , 10.135.22.43 и тд и тп . >> >> my $ipn = NetAddr::IP->new("$first_ip/$netmask"); >> >> while( $ipn < $ipn->broadcast ) >> { >> my $iponly = (split '/', $ipn++)[0]; #get >> >> if ( ! ( grep {$iponly eq $_} @ips ) ) >> { >> return $iponly; >> } >> >> } >> >> first отдает не то что мне нужно из под этой сети адрес в данном >> случае 10.135.x.y а 10.56.x.y хотя да он первый пустой, но grep >> выдает то что нужно. >> >> Вроде tie переменных и т.д нету >> >> >> >> On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: >> >> Добрый день, >> >> map будет быстрее только если поисков по одному и тому же >> исходному >> массиву @ips будет несколько - т.к. операция построения хэша >> дорогая. >> Одноразовый поиск - греп быстрее. first возвращает другое (по >> смыслу) >> значение, чем греп (элемент, а не количество), но логически >> для этой >> задачи разницы быть не должно. >> >> PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = map { $_ >> => 1 } @ips; >> >> Best regards, >> Sergey Aleynikov >> >> >> 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm >> > написал: >> >> Коллеги, столкнулся с тем что код такого вида , >> используемый для поиска >> свободных ip v4 адресов на размерах 500-1000 элементов >> отрабатывается под 5 >> секунд версия с map : >> >> my %ips = map { $_ => 1 } @ips; >> if (not exists($ips{$iponly} )) >> { >> return $iponly; >> } >> >> >> и с grep(sic!) ~2 секунду : >> >> if ( ! ( grep {$iponly eq $_ } @ips ) ) >> # spent 27.4ms making 814 calls to >> NetAddr::IP::Lite::broadcast, avg >> 34µs/call >> # spent 9.56ms making 814 calls to >> NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], avg >> 12µs/call >> { >> return $iponly; >> } >> >> Еще трабла в том что легендарный List::Util отдает быстро >> но почему не тот >> же результат( пробовал first , none ) что и grep? >> >> коллеги это нормально на более-менее среднем сервачке ? >> >> >> -- >> 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 shafiev на gmail.com Fri Nov 25 04:10:37 2016 From: shafiev на gmail.com (Naim Sh) Date: Fri, 25 Nov 2016 16:10:37 +0400 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw?= =?utf-8?b?0YHRgdC40LLQtQ==?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> Message-ID: <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> Оки, я просто думаю щас затестить не весь модуль NetAddr::IP а его lite версию ( хотя как я предполагаю выигрыш будет маленький) + щас переустановил точнее пересобрал его xs стало лучше . + надо затестить как она будет с broadcast и subnet-zero сетками пахать . On 11/25/2016 04:07 PM, zhecka via Moscow-pm wrote: > ну я бы не сказал. > > $banned = new Net::Patricia; > if(!$banned->match_string($banip)) > { > $banned->add_string($banip); > } > > просто заполняешь базу Patricia когда тебе нужно и матчишь что есть и > чего нет. > > > > On 25.11.2016 14:54, Naim Sh via Moscow-pm wrote: >> >> да кроме 2 и 3 его нету . >> >> Кстати как я понял Net::Patricia не очень мне подходит(удобен) ведь >> мне надо найти адрес которого нет в массиве >> >> This module uses a Patricia Trie data structure to quickly perform IP >> address prefix matching for applications such as IP subnet, network >> or routing table lookups ? >> >> On 11/25/2016 03:50 PM, Толян II via Moscow-pm wrote: >>> У тебя может быть overload в нескольких местах: >>> 1) В массиве @ips >>> 2) while( $ipn < $ipn->broadcast ) --- вызов метода + >>> overload >>> 3) my $iponly = (split '/', $ipn++)[0]; #get --- overload в >>> чистом виде + преобразование в строку. >>> >>> >>> >>> >>> 25 ноября 2016 г., 14:38 пользователь Naim Sh via Moscow-pm >>> написал: >>> >>> Оки и какой вариант быстрее того же map будет . >>> код имеет такой вид ( точнее его кусок который больше всего >>> времени и ест ) >>> >>> массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, >>> 10.135.8.23 , 10.135.22.43 и тд и тп . >>> >>> my $ipn = NetAddr::IP->new("$first_ip/$netmask"); >>> >>> while( $ipn < $ipn->broadcast ) >>> { >>> my $iponly = (split '/', $ipn++)[0]; #get >>> >>> if ( ! ( grep {$iponly eq $_} @ips ) ) >>> { >>> return $iponly; >>> } >>> >>> } >>> >>> first отдает не то что мне нужно из под этой сети адрес в данном >>> случае 10.135.x.y а 10.56.x.y хотя да он первый пустой, но grep >>> выдает то что нужно. >>> >>> Вроде tie переменных и т.д нету >>> >>> >>> >>> On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: >>> >>> Добрый день, >>> >>> map будет быстрее только если поисков по одному и тому же >>> исходному >>> массиву @ips будет несколько - т.к. операция построения хэша >>> дорогая. >>> Одноразовый поиск - греп быстрее. first возвращает другое >>> (по смыслу) >>> значение, чем греп (элемент, а не количество), но логически >>> для этой >>> задачи разницы быть не должно. >>> >>> PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = map { >>> $_ => 1 } @ips; >>> >>> Best regards, >>> Sergey Aleynikov >>> >>> >>> 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm >>> > написал: >>> >>> Коллеги, столкнулся с тем что код такого вида , >>> используемый для поиска >>> свободных ip v4 адресов на размерах 500-1000 элементов >>> отрабатывается под 5 >>> секунд версия с map : >>> >>> my %ips = map { $_ => 1 } @ips; >>> if (not exists($ips{$iponly} )) >>> { >>> return $iponly; >>> } >>> >>> >>> и с grep(sic!) ~2 секунду : >>> >>> if ( ! ( grep {$iponly eq $_ } @ips ) ) >>> # spent 27.4ms making 814 calls to >>> NetAddr::IP::Lite::broadcast, avg >>> 34µs/call >>> # spent 9.56ms making 814 calls to >>> NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], avg >>> 12µs/call >>> { >>> return $iponly; >>> } >>> >>> Еще трабла в том что легендарный List::Util отдает >>> быстро но почему не тот >>> же результат( пробовал first , none ) что и grep? >>> >>> коллеги это нормально на более-менее среднем сервачке ? >>> >>> >>> -- >>> 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 agrishaev на gmail.com Fri Nov 25 04:16:23 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Fri, 25 Nov 2016 15:16:23 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> Message-ID: У тебя сам цикл тормозит, а не grep ================================================================================== use Time::HiRes qw(time); use NetAddr::IP; my @ips = ( map("172.16.1.".$_, 1..254 ), map("172.16.2.".$_, 1..254 ), map("172.16.3.".$_, 1..254 ), map("172.16.4.".$_, 1..254 ), ); for my $i ( 0 .. 4 ) { my $iponly = 995 + $i; my $s = time(); my %ips = map { $_ => 1 } @ips; my $r1 = ( not exists $ips{$iponly} ); my $time1 = time - $s; $s = time(); my $r2 = grep $_ eq $iponly, @ips; my $time2 = time - $s; $s = time(); my $ipn = NetAddr::IP->new("172.16.1.1/16"); while($ipn < $ipn->broadcast){ my $iponly = (split "/", $ipn++)[0]; } my $time3 = time - $s; printf( "i=$i\tmap=%4.3fms grep=%4.3fms while=%4.3fms\n", $time1 * 1000, $time2 * 1000, $time3 * 1000 ); } ================================================================================= i=0 map=0.572ms grep=0.136ms while=1726.824ms i=1 map=0.407ms grep=0.052ms while=1752.693ms i=2 map=0.394ms grep=0.048ms while=1701.981ms i=3 map=0.507ms grep=0.063ms while=1786.335ms i=4 map=0.823ms grep=0.053ms while=1704.208ms ================================================================================== А если в @ ips еще overloaded ip, то и 10 секунд легко может быть В твоем куске не видно как они получаются. 25 ноября 2016 г., 15:10 пользователь Naim Sh via Moscow-pm < moscow-pm на pm.org> написал: > Оки, я просто думаю щас затестить не весь модуль NetAddr::IP а его lite > версию ( хотя как я предполагаю выигрыш будет маленький) + щас > переустановил точнее пересобрал его xs стало лучше . > + надо затестить как она будет с broadcast и subnet-zero сетками пахать . > > On 11/25/2016 04:07 PM, zhecka via Moscow-pm wrote: > > ну я бы не сказал. > > $banned = new Net::Patricia; > if(!$banned->match_string($banip)) > { > $banned->add_string($banip); > } > > просто заполняешь базу Patricia когда тебе нужно и матчишь что есть и чего > нет. > > > > On 25.11.2016 14:54, Naim Sh via Moscow-pm wrote: > > да кроме 2 и 3 его нету . > Кстати как я понял Net::Patricia не очень мне подходит(удобен) ведь мне > надо найти адрес которого нет в массиве > > This module uses a Patricia Trie data structure to quickly perform IP > address prefix matching for applications such as IP subnet, network or > routing table lookups ? > > On 11/25/2016 03:50 PM, Толян II via Moscow-pm wrote: > > У тебя может быть overload в нескольких местах: > 1) В массиве @ips > 2) while( $ipn < $ipn->broadcast ) --- вызов метода + > overload > 3) my $iponly = (split '/', $ipn++)[0]; #get --- overload в чистом > виде + преобразование в строку. > > > > > 25 ноября 2016 г., 14:38 пользователь Naim Sh via Moscow-pm < > moscow-pm на pm.org> написал: > >> Оки и какой вариант быстрее того же map будет . >> код имеет такой вид ( точнее его кусок который больше всего времени и ест >> ) >> >> массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, 10.135.8.23 , >> 10.135.22.43 и тд и тп . >> >> my $ipn = NetAddr::IP->new("$first_ip/$netmask"); >> >> while( $ipn < $ipn->broadcast ) >> { >> my $iponly = (split '/', $ipn++)[0]; #get >> >> if ( ! ( grep {$iponly eq $_} @ips ) ) >> { >> return $iponly; >> } >> >> } >> >> first отдает не то что мне нужно из под этой сети адрес в данном случае >> 10.135.x.y а 10.56.x.y хотя да он первый пустой, но grep выдает то что >> нужно. >> >> Вроде tie переменных и т.д нету >> >> >> >> On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: >> >>> Добрый день, >>> >>> map будет быстрее только если поисков по одному и тому же исходному >>> массиву @ips будет несколько - т.к. операция построения хэша дорогая. >>> Одноразовый поиск - греп быстрее. first возвращает другое (по смыслу) >>> значение, чем греп (элемент, а не количество), но логически для этой >>> задачи разницы быть не должно. >>> >>> PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = map { $_ => 1 } >>> @ips; >>> >>> Best regards, >>> Sergey Aleynikov >>> >>> >>> 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm >>> написал: >>> >>>> Коллеги, столкнулся с тем что код такого вида , используемый для поиска >>>> свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается >>>> под 5 >>>> секунд версия с map : >>>> >>>> my %ips = map { $_ => 1 } @ips; >>>> if (not exists($ips{$iponly} )) >>>> { >>>> return $iponly; >>>> } >>>> >>>> >>>> и с grep(sic!) ~2 секунду : >>>> >>>> if ( ! ( grep {$iponly eq $_ } @ips ) ) >>>> # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast, avg >>>> 34µs/call >>>> # spent 9.56ms making 814 calls to >>>> NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], avg 12µs/call >>>> { >>>> return $iponly; >>>> } >>>> >>>> Еще трабла в том что легендарный List::Util отдает быстро но почему не >>>> тот >>>> же результат( пробовал first , none ) что и grep? >>>> >>>> коллеги это нормально на более-менее среднем сервачке ? >>>> >>>> >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | http://moscow.pm.org >>>> >>>> >> -- >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > > -- > > > > > > > > > -- > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From shafiev на gmail.com Fri Nov 25 04:36:35 2016 From: shafiev на gmail.com (Naim Sh) Date: Fri, 25 Nov 2016 16:36:35 +0400 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw?= =?utf-8?b?0YHRgdC40LLQtQ==?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> Message-ID: <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> @ips даже этим относительно медленным способом while (my $ip = $sql->fetchrow_array) { push @ips,$ip; } дает максимум десятки ms задержок и потом уже код который я отсылал . On 11/25/2016 04:16 PM, Толян II via Moscow-pm wrote: > У тебя сам цикл тормозит, а не grep > ================================================================================== > use Time::HiRes qw(time); > use NetAddr::IP; > > my @ips = ( > map("172.16.1.".$_, 1..254 ), > map("172.16.2.".$_, 1..254 ), > map("172.16.3.".$_, 1..254 ), > map("172.16.4.".$_, 1..254 ), > ); > > for my $i ( 0 .. 4 ) { > my $iponly = 995 + $i; > my $s = time(); > my %ips = map { $_ => 1 } @ips; > my $r1 = ( not exists $ips{$iponly} ); > my $time1 = time - $s; > > $s = time(); > my $r2 = grep $_ eq $iponly, @ips; > my $time2 = time - $s; > > $s = time(); > my $ipn = NetAddr::IP->new("172.16.1.1/16 > "); > while($ipn < $ipn->broadcast){ > my $iponly = (split "/", $ipn++)[0]; > } > > my $time3 = time - $s; > > printf( "i=$i\tmap=%4.3fms grep=%4.3fms while=%4.3fms\n", > $time1 * 1000, $time2 * 1000, $time3 * 1000 ); > } > ================================================================================= > > > i=0 map=0.572ms grep=0.136ms while=1726.824ms > i=1 map=0.407ms grep=0.052ms while=1752.693ms > i=2 map=0.394ms grep=0.048ms while=1701.981ms > i=3 map=0.507ms grep=0.063ms while=1786.335ms > i=4 map=0.823ms grep=0.053ms while=1704.208ms > > ================================================================================== > > > А если в @ ips еще overloaded ip, то и 10 секунд легко может быть > > В твоем куске не видно как они получаются. > > > > 25 ноября 2016 г., 15:10 пользователь Naim Sh via Moscow-pm > > написал: > > Оки, я просто думаю щас затестить не весь модуль NetAddr::IP а его > lite версию ( хотя как я предполагаю выигрыш будет маленький) + > щас переустановил точнее пересобрал его xs стало лучше . > > + надо затестить как она будет с broadcast и subnet-zero сетками > пахать . > > On 11/25/2016 04:07 PM, zhecka via Moscow-pm wrote: >> ну я бы не сказал. >> >> $banned = new Net::Patricia; >> if(!$banned->match_string($banip)) >> { >> $banned->add_string($banip); >> } >> >> просто заполняешь базу Patricia когда тебе нужно и матчишь что >> есть и чего нет. >> >> >> >> On 25.11.2016 14:54, Naim Sh via Moscow-pm wrote: >>> >>> да кроме 2 и 3 его нету . >>> >>> Кстати как я понял Net::Patricia не очень мне подходит(удобен) >>> ведь мне надо найти адрес которого нет в массиве >>> >>> This module uses a Patricia Trie data structure to quickly >>> perform IP address prefix matching for applications such as IP >>> subnet, network or routing table lookups ? >>> >>> On 11/25/2016 03:50 PM, Толян II via Moscow-pm wrote: >>>> У тебя может быть overload в нескольких местах: >>>> 1) В массиве @ips >>>> 2) while( $ipn < $ipn->broadcast ) --- вызов >>>> метода + overload >>>> 3) my $iponly = (split '/', $ipn++)[0]; #get--- overload в >>>> чистом виде + преобразование в строку. >>>> >>>> >>>> >>>> >>>> 25 ноября 2016 г., 14:38 пользователь Naim Sh via Moscow-pm >>>> > написал: >>>> >>>> Оки и какой вариант быстрее того же map будет . >>>> код имеет такой вид ( точнее его кусок который больше всего >>>> времени и ест ) >>>> >>>> массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, >>>> 10.135.8.23 , 10.135.22.43 и тд и тп . >>>> >>>> my $ipn = NetAddr::IP->new("$first_ip/$netmask"); >>>> >>>> while( $ipn < $ipn->broadcast ) >>>> { >>>> my $iponly = (split '/', $ipn++)[0]; #get >>>> >>>> if ( ! ( grep {$iponly eq $_} @ips ) ) >>>> { >>>> return $iponly; >>>> } >>>> >>>> } >>>> >>>> first отдает не то что мне нужно из под этой сети адрес в >>>> данном случае 10.135.x.y а 10.56.x.y хотя да он первый >>>> пустой, но grep выдает то что нужно. >>>> >>>> Вроде tie переменных и т.д нету >>>> >>>> >>>> >>>> On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: >>>> >>>> Добрый день, >>>> >>>> map будет быстрее только если поисков по одному и тому >>>> же исходному >>>> массиву @ips будет несколько - т.к. операция построения >>>> хэша дорогая. >>>> Одноразовый поиск - греп быстрее. first возвращает >>>> другое (по смыслу) >>>> значение, чем греп (элемент, а не количество), но >>>> логически для этой >>>> задачи разницы быть не должно. >>>> >>>> PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = >>>> map { $_ => 1 } @ips; >>>> >>>> Best regards, >>>> Sergey Aleynikov >>>> >>>> >>>> 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm >>>> > написал: >>>> >>>> Коллеги, столкнулся с тем что код такого вида , >>>> используемый для поиска >>>> свободных ip v4 адресов на размерах 500-1000 >>>> элементов отрабатывается под 5 >>>> секунд версия с map : >>>> >>>> my %ips = map { $_ => 1 } @ips; >>>> if (not exists($ips{$iponly} )) >>>> { >>>> return $iponly; >>>> } >>>> >>>> >>>> и с grep(sic!) ~2 секунду : >>>> >>>> if ( ! ( grep {$iponly eq $_ } @ips ) ) >>>> # spent 27.4ms making 814 calls to >>>> NetAddr::IP::Lite::broadcast, avg >>>> 34µs/call >>>> # spent 9.56ms making 814 calls to >>>> NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], >>>> avg 12µs/call >>>> { >>>> return $iponly; >>>> } >>>> >>>> Еще трабла в том что легендарный List::Util отдает >>>> быстро но почему не тот >>>> же результат( пробовал first , none ) что и grep? >>>> >>>> коллеги это нормально на более-менее среднем сервачке ? >>>> >>>> >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | >>>> http://moscow.pm.org >>>> >>>> >>>> -- >>>> >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | >>>> http://moscow.pm.org >>>> >>>> >>>> >>>> >>> >>> -- >>> >>> >>> >> >> >> > > -- > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > > -- ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Fri Nov 25 04:37:06 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Fri, 25 Nov 2016 15:37:06 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> Message-ID: Тут нужен только List::Util qw( any ). Just fit. 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm < moscow-pm на pm.org> написал: > Коллеги, столкнулся с тем что код такого вида , используемый для поиска > свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается под 5 > секунд версия с map : > > my %ips = map { $_ => 1 } @ips; > if (not exists($ips{$iponly} )) > { > return $iponly; > } > > > и с grep(sic!) ~2 секунду : > > if ( ! ( grep {$iponly eq $_ } @ips ) ) > # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast > , > avg 34µs/call > # spent 9.56ms making 814 calls to NetAddr::IP::Lite::__ANON__[ > NetAddr/IP/Lite.pm:268] > , > avg 12µs/call > { > return $iponly; > } > > Еще трабла в том что легендарный List::Util отдает быстро но почему не тот > же результат( пробовал first , none ) что и grep? > > коллеги это нормально на более-менее среднем сервачке ? > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zhecka на gmail.com Fri Nov 25 04:41:46 2016 From: zhecka на gmail.com (zhecka) Date: Fri, 25 Nov 2016 15:41:46 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw?= =?utf-8?b?0YHRgdC40LLQtQ==?= In-Reply-To: <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> Message-ID: <83eb540b-95dd-4439-f1d1-fb68e89c0cd2@gmail.com> по сути лучше не использовать ip адреса в виде scalar string переведи адреса в integer и будет много быстрее. Плюс вместо цикла перебора и поиска можно уйти на Cache::FastMmap и работать через ключи. выборка будет быстрее чем поиск по массиву. On 25.11.2016 15:36, Naim Sh via Moscow-pm wrote: > > @ips даже этим относительно медленным способом > > > while (my $ip = $sql->fetchrow_array) > { > push @ips,$ip; > } > > дает максимум десятки ms задержок и потом уже код который я отсылал . > > On 11/25/2016 04:16 PM, Толян II via Moscow-pm wrote: >> У тебя сам цикл тормозит, а не grep >> ================================================================================== >> use Time::HiRes qw(time); >> use NetAddr::IP; >> >> my @ips = ( >> map("172.16.1.".$_, 1..254 ), >> map("172.16.2.".$_, 1..254 ), >> map("172.16.3.".$_, 1..254 ), >> map("172.16.4.".$_, 1..254 ), >> ); >> >> for my $i ( 0 .. 4 ) { >> my $iponly = 995 + $i; >> my $s = time(); >> my %ips = map { $_ => 1 } @ips; >> my $r1 = ( not exists $ips{$iponly} ); >> my $time1 = time - $s; >> >> $s = time(); >> my $r2 = grep $_ eq $iponly, @ips; >> my $time2 = time - $s; >> >> $s = time(); >> my $ipn = NetAddr::IP->new("172.16.1.1/16 >> "); >> while($ipn < $ipn->broadcast){ >> my $iponly = (split "/", $ipn++)[0]; >> } >> >> my $time3 = time - $s; >> >> printf( "i=$i\tmap=%4.3fms grep=%4.3fms while=%4.3fms\n", >> $time1 * 1000, $time2 * 1000, $time3 * 1000 ); >> } >> ================================================================================= >> >> >> i=0 map=0.572ms grep=0.136ms while=1726.824ms >> i=1 map=0.407ms grep=0.052ms while=1752.693ms >> i=2 map=0.394ms grep=0.048ms while=1701.981ms >> i=3 map=0.507ms grep=0.063ms while=1786.335ms >> i=4 map=0.823ms grep=0.053ms while=1704.208ms >> >> ================================================================================== >> >> >> А если в @ ips еще overloaded ip, то и 10 секунд легко может быть >> >> В твоем куске не видно как они получаются. >> >> >> >> 25 ноября 2016 г., 15:10 пользователь Naim Sh via Moscow-pm >> написал: >> >> Оки, я просто думаю щас затестить не весь модуль NetAddr::IP а >> его lite версию ( хотя как я предполагаю выигрыш будет >> маленький) + щас переустановил точнее пересобрал его xs стало >> лучше . >> >> + надо затестить как она будет с broadcast и subnet-zero сетками >> пахать . >> >> On 11/25/2016 04:07 PM, zhecka via Moscow-pm wrote: >>> ну я бы не сказал. >>> >>> $banned = new Net::Patricia; >>> if(!$banned->match_string($banip)) >>> { >>> $banned->add_string($banip); >>> } >>> >>> просто заполняешь базу Patricia когда тебе нужно и матчишь что >>> есть и чего нет. >>> >>> >>> >>> On 25.11.2016 14:54, Naim Sh via Moscow-pm wrote: >>>> >>>> да кроме 2 и 3 его нету . >>>> >>>> Кстати как я понял Net::Patricia не очень мне подходит(удобен) >>>> ведь мне надо найти адрес которого нет в массиве >>>> >>>> This module uses a Patricia Trie data structure to quickly >>>> perform IP address prefix matching for applications such as IP >>>> subnet, network or routing table lookups ? >>>> >>>> On 11/25/2016 03:50 PM, Толян II via Moscow-pm wrote: >>>>> У тебя может быть overload в нескольких местах: >>>>> 1) В массиве @ips >>>>> 2) while( $ipn < $ipn->broadcast ) --- вызов >>>>> метода + overload >>>>> 3) my $iponly = (split '/', $ipn++)[0]; #get--- overload в >>>>> чистом виде + преобразование в строку. >>>>> >>>>> >>>>> >>>>> >>>>> 25 ноября 2016 г., 14:38 пользователь Naim Sh via Moscow-pm >>>>> > написал: >>>>> >>>>> Оки и какой вариант быстрее того же map будет . >>>>> код имеет такой вид ( точнее его кусок который больше >>>>> всего времени и ест ) >>>>> >>>>> массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, >>>>> 10.135.8.23 , 10.135.22.43 и тд и тп . >>>>> >>>>> my $ipn = NetAddr::IP->new("$first_ip/$netmask"); >>>>> >>>>> while( $ipn < $ipn->broadcast ) >>>>> { >>>>> my $iponly = (split '/', $ipn++)[0]; #get >>>>> >>>>> if ( ! ( grep {$iponly eq $_} @ips ) ) >>>>> { >>>>> return $iponly; >>>>> } >>>>> >>>>> } >>>>> >>>>> first отдает не то что мне нужно из под этой сети адрес в >>>>> данном случае 10.135.x.y а 10.56.x.y хотя да он первый >>>>> пустой, но grep выдает то что нужно. >>>>> >>>>> Вроде tie переменных и т.д нету >>>>> >>>>> >>>>> >>>>> On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: >>>>> >>>>> Добрый день, >>>>> >>>>> map будет быстрее только если поисков по одному и тому >>>>> же исходному >>>>> массиву @ips будет несколько - т.к. операция >>>>> построения хэша дорогая. >>>>> Одноразовый поиск - греп быстрее. first возвращает >>>>> другое (по смыслу) >>>>> значение, чем греп (элемент, а не количество), но >>>>> логически для этой >>>>> задачи разницы быть не должно. >>>>> >>>>> PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = >>>>> map { $_ => 1 } @ips; >>>>> >>>>> Best regards, >>>>> Sergey Aleynikov >>>>> >>>>> >>>>> 25 ноября 2016 г., 14:00 пользователь Naim Sh via >>>>> Moscow-pm >>>>> > написал: >>>>> >>>>> Коллеги, столкнулся с тем что код такого вида , >>>>> используемый для поиска >>>>> свободных ip v4 адресов на размерах 500-1000 >>>>> элементов отрабатывается под 5 >>>>> секунд версия с map : >>>>> >>>>> my %ips = map { $_ => 1 } @ips; >>>>> if (not exists($ips{$iponly} )) >>>>> { >>>>> return $iponly; >>>>> } >>>>> >>>>> >>>>> и с grep(sic!) ~2 секунду : >>>>> >>>>> if ( ! ( grep {$iponly eq $_ } @ips ) ) >>>>> # spent 27.4ms making 814 calls to >>>>> NetAddr::IP::Lite::broadcast, avg >>>>> 34µs/call >>>>> # spent 9.56ms making 814 calls to >>>>> NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], >>>>> avg 12µs/call >>>>> { >>>>> return $iponly; >>>>> } >>>>> >>>>> Еще трабла в том что легендарный List::Util отдает >>>>> быстро но почему не тот >>>>> же результат( пробовал first , none ) что и grep? >>>>> >>>>> коллеги это нормально на более-менее среднем >>>>> сервачке ? >>>>> >>>>> >>>>> -- >>>>> Moscow.pm mailing list >>>>> moscow-pm на pm.org | >>>>> http://moscow.pm.org >>>>> ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Fri Nov 25 04:40:56 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Fri, 25 Nov 2016 15:40:56 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= In-Reply-To: References: Message-ID: github, Dist::Zilla, cpan. Пример оформления: https://github.com/regru/Locale-Babelfish Не факт, что оптимальный, но вроде все просто. 25 ноября 2016 г., 12:46 пользователь Толян II via Moscow-pm < moscow-pm на pm.org> написал: > Доброго времени суток. > > Есть асинхронный HTTP/HTTPS прокси в виде скрипта + модули. > Производительность около 1000 запросов в секунду т.е. очень хорошо. > поддерживает HTTP/1.1 --- в том числе постоянные соединения. > В работе используется уже года три. > > Думаю дооформить и выложить на cpan или github. > > 1) Нужна ли кому-либо такая штука? > 2) Какой интерфейс лучше сделать, чтобы и был простой и функциональный? > 3) Куда лучше выложить cpan или github? > > Сейчас он транслирует запросы практически как есть и чтобы преобразовывать > запросы, нужно лезть в код, и это единственный минус, который я знаю. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Fri Nov 25 04:55:33 2016 From: worldmind на mail.ru (Alexey Shrub) Date: Fri, 25 Nov 2016 15:55:33 +0300 Subject: [Moscow.pm] =?koi8-r?b?68HLIM/Gz9LNydTYIM3PxNXM2C4=?= In-Reply-To: References: Message-ID: <1480078533.1773.2@smtp.mail.ru> On Пт, ноя 25, 2016 в 12:46 , Толян II via Moscow-pm wrote: > Есть асинхронный HTTP/HTTPS прокси в виде > скрипта + модули. > Производительность около 1000 запросов > в секунду т.е. очень хорошо. > поддерживает HTTP/1.1 --- в том числе > постоянные соединения. > В работе используется уже года три. А чём отличие от существующих прокси? Что заставило написать свой? From agrishaev на gmail.com Fri Nov 25 05:45:07 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Fri, 25 Nov 2016 16:45:07 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= In-Reply-To: <1480078533.1773.2@smtp.mail.ru> References: <1480078533.1773.2@smtp.mail.ru> Message-ID: Существующие обрывают соединение после запроса или вообще делают fork на каждый запрос. Поэтому, если хочется посмотреть сайт во Вьетнаме со Вьетнамским ip, то с существующими проксями бывает очень долго и муторно (пинг ~1 секунда). Может минуту загружаться или больше, а чаще вообще не загружается. Конечно Вьетнам это крайний случай, но торможение можно наблюдать даже по России. Во вторых хотелось переписывать запросы и ответы, т.е. сишные прокси не самый удачный вариант. В третьих нужен было простое единое состояние для всех запросов и соединений (через базу или файлы обмениваться не хочется, что приходиться с fork/join делать) В четвертых иногда нужно исходящие ip ротировать. В пятых https трафик перехватывать. Самое главное было производительность + https, остальное до кучи. 25 ноября 2016 г., 15:55 пользователь Alexey Shrub via Moscow-pm < moscow-pm на pm.org> написал: > On Пт, ноя 25, 2016 в 12:46 , Толян II via Moscow-pm > wrote: > >> Есть асинхронный HTTP/HTTPS прокси в виде скрипта + модули. >> Производительность около 1000 запросов в секунду т.е. очень хорошо. >> поддерживает HTTP/1.1 --- в том числе постоянные соединения. >> В работе используется уже года три. >> > > А чём отличие от существующих прокси? Что заставило написать свой? > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From agrishaev на gmail.com Fri Nov 25 06:28:17 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Fri, 25 Nov 2016 17:28:17 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> Message-ID: 25 ноября 2016 г., 15:36 пользователь Naim Sh via Moscow-pm < moscow-pm на pm.org> написал: > @ips даже этим относительно медленным способом > > > while (my $ip = $sql->fetchrow_array) > { > push @ips,$ip; > } > > дает максимум десятки ms задержок и потом уже код который я отсылал . > В том и дело, что если в @ips обычные скаляры, то map или grep выполняются за 0.5 миллисек, но не 2 сек и тем более не 5 сек. А если там не обычные скаляры, либо @ipc tied, то что-то надо переписывать. Либо проблема в цикле. > > On 11/25/2016 04:16 PM, Толян II via Moscow-pm wrote: > > У тебя сам цикл тормозит, а не grep > ============================================================ > ====================== > use Time::HiRes qw(time); > use NetAddr::IP; > > my @ips = ( > map("172.16.1.".$_, 1..254 ), > map("172.16.2.".$_, 1..254 ), > map("172.16.3.".$_, 1..254 ), > map("172.16.4.".$_, 1..254 ), > ); > > for my $i ( 0 .. 4 ) { > my $iponly = 995 + $i; > my $s = time(); > my %ips = map { $_ => 1 } @ips; > my $r1 = ( not exists $ips{$iponly} ); > my $time1 = time - $s; > > $s = time(); > my $r2 = grep $_ eq $iponly, @ips; > my $time2 = time - $s; > > $s = time(); > my $ipn = NetAddr::IP->new("172.16.1.1/16"); > while($ipn < $ipn->broadcast){ > my $iponly = (split "/", $ipn++)[0]; > } > > my $time3 = time - $s; > > printf( "i=$i\tmap=%4.3fms grep=%4.3fms while=%4.3fms\n", $time1 * > 1000, $time2 * 1000, $time3 * 1000 ); > } > ============================================================ > ===================== > > > i=0 map=0.572ms grep=0.136ms while=1726.824ms > i=1 map=0.407ms grep=0.052ms while=1752.693ms > i=2 map=0.394ms grep=0.048ms while=1701.981ms > i=3 map=0.507ms grep=0.063ms while=1786.335ms > i=4 map=0.823ms grep=0.053ms while=1704.208ms > > ============================================================ > ====================== > > > А если в @ ips еще overloaded ip, то и 10 секунд легко может быть > > В твоем куске не видно как они получаются. > > > > 25 ноября 2016 г., 15:10 пользователь Naim Sh via Moscow-pm < > moscow-pm на pm.org> написал: > >> Оки, я просто думаю щас затестить не весь модуль NetAddr::IP а его lite >> версию ( хотя как я предполагаю выигрыш будет маленький) + щас >> переустановил точнее пересобрал его xs стало лучше . >> + надо затестить как она будет с broadcast и subnet-zero сетками пахать . >> >> On 11/25/2016 04:07 PM, zhecka via Moscow-pm wrote: >> >> ну я бы не сказал. >> >> $banned = new Net::Patricia; >> if(!$banned->match_string($banip)) >> { >> $banned->add_string($banip); >> } >> >> просто заполняешь базу Patricia когда тебе нужно и матчишь что есть и >> чего нет. >> >> >> >> On 25.11.2016 14:54, Naim Sh via Moscow-pm wrote: >> >> да кроме 2 и 3 его нету . >> Кстати как я понял Net::Patricia не очень мне подходит(удобен) ведь мне >> надо найти адрес которого нет в массиве >> >> This module uses a Patricia Trie data structure to quickly perform IP >> address prefix matching for applications such as IP subnet, network or >> routing table lookups ? >> >> On 11/25/2016 03:50 PM, Толян II via Moscow-pm wrote: >> >> У тебя может быть overload в нескольких местах: >> 1) В массиве @ips >> 2) while( $ipn < $ipn->broadcast ) --- вызов метода + >> overload >> 3) my $iponly = (split '/', $ipn++)[0]; #get --- overload в чистом >> виде + преобразование в строку. >> >> >> >> >> 25 ноября 2016 г., 14:38 пользователь Naim Sh via Moscow-pm < >> moscow-pm на pm.org> написал: >> >>> Оки и какой вариант быстрее того же map будет . >>> код имеет такой вид ( точнее его кусок который больше всего времени и >>> ест ) >>> >>> массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2, 10.135.8.23 , >>> 10.135.22.43 и тд и тп . >>> >>> my $ipn = NetAddr::IP->new("$first_ip/$netmask"); >>> >>> while( $ipn < $ipn->broadcast ) >>> { >>> my $iponly = (split '/', $ipn++)[0]; #get >>> >>> if ( ! ( grep {$iponly eq $_} @ips ) ) >>> { >>> return $iponly; >>> } >>> >>> } >>> >>> first отдает не то что мне нужно из под этой сети адрес в данном случае >>> 10.135.x.y а 10.56.x.y хотя да он первый пустой, но grep выдает то что >>> нужно. >>> >>> Вроде tie переменных и т.д нету >>> >>> >>> >>> On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm wrote: >>> >>>> Добрый день, >>>> >>>> map будет быстрее только если поисков по одному и тому же исходному >>>> массиву @ips будет несколько - т.к. операция построения хэша дорогая. >>>> Одноразовый поиск - греп быстрее. first возвращает другое (по смыслу) >>>> значение, чем греп (элемент, а не количество), но логически для этой >>>> задачи разницы быть не должно. >>>> >>>> PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips = map { $_ => 1 } >>>> @ips; >>>> >>>> Best regards, >>>> Sergey Aleynikov >>>> >>>> >>>> 25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm >>>> написал: >>>> >>>>> Коллеги, столкнулся с тем что код такого вида , используемый для поиска >>>>> свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается >>>>> под 5 >>>>> секунд версия с map : >>>>> >>>>> my %ips = map { $_ => 1 } @ips; >>>>> if (not exists($ips{$iponly} )) >>>>> { >>>>> return $iponly; >>>>> } >>>>> >>>>> >>>>> и с grep(sic!) ~2 секунду : >>>>> >>>>> if ( ! ( grep {$iponly eq $_ } @ips ) ) >>>>> # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast, avg >>>>> 34µs/call >>>>> # spent 9.56ms making 814 calls to >>>>> NetAddr::IP::Lite::__ANON__[NetAddr/IP/Lite.pm:268], avg 12µs/call >>>>> { >>>>> return $iponly; >>>>> } >>>>> >>>>> Еще трабла в том что легендарный List::Util отдает быстро но почему не >>>>> тот >>>>> же результат( пробовал first , none ) что и grep? >>>>> >>>>> коллеги это нормально на более-менее среднем сервачке ? >>>>> >>>>> >>>>> -- >>>>> 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 > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Fri Nov 25 09:17:06 2016 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Sat, 26 Nov 2016 00:17:06 +0700 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> Message-ID: Данных катастрофически не хватает. Судя по первому письму профайлер запускался, но только на версии с grep. Предположу, что map-версия выглядит примерно так: foreach my $iponly (@bla_bla_bla) { my %ips = map { $_ => 1 } @ips; if (not exists($ips{$iponly} )) { return $iponly; } } тогда её нужно переписать так: my %ips = map { $_ => 1 } @ips; foreach my $iponly (@bla_bla_bla) { if (not exists($ips{$iponly} )) { return $iponly; } } ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From msk-pm на sadok.spb.ru Fri Nov 25 09:24:52 2016 From: msk-pm на sadok.spb.ru (Dmitry Ivanov) Date: Fri, 25 Nov 2016 20:24:52 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= In-Reply-To: References: <1480078533.1773.2@smtp.mail.ru> Message-ID: <94627451.20161125202452@sadok.spb.ru> Здравствуйте, Толян. Вы писали 25 ноября 2016 г., 16:45:07: > Существующие обрывают соединение после запроса или вообще делают fork на каждый запрос. > Поэтому, если хочется посмотреть сайт во Вьетнаме со Вьетнамским > ip, то с существующими проксями бывает очень долго и муторно (пинг ~1 секунда). > Может минуту загружаться или больше, а чаще вообще не загружается. > Конечно Вьетнам это крайний случай, но торможение можно наблюдать даже по России. > Во вторых хотелось переписывать запросы и ответы, т.е. сишные прокси не самый удачный вариант. > В третьих нужен было простое единое состояние для всех запросов и > соединений (через базу или файлы обмениваться не хочется, что приходиться с fork/join делать) > В четвертых иногда нужно исходящие ip ротировать. > В пятых https трафик перехватывать. > Самое главное было производительность + https, остальное до кучи. Nginx на коленке? > 25 ноября 2016 г., 15:55 пользователь Alexey Shrub via Moscow-pm написал: > On Пт, ноя 25, 2016 в 12:46 , Толян II via Moscow-pm wrote: > > Есть асинхронный HTTP/HTTPS прокси в виде скрипта + модули. > Производительность около 1000 запросов в секунду т.е. очень хорошо. > поддерживает HTTP/1.1 --- в том числе постоянные соединения. > В работе используется уже года три. > > > А чём отличие от существующих прокси? Что заставило написать свой? > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- С уважением, Dmitry mailto:sadok на mail.ru From shafiev на gmail.com Fri Nov 25 10:09:43 2016 From: shafiev на gmail.com (Naim Shafiev) Date: Fri, 25 Nov 2016 22:09:43 +0400 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> Message-ID: да только на версии с grep, но там в modern perl telegram чате петрусевич побольше чем я занялся ускорение . вот результаты Anton Petrusevich: грубо говоря так: когда while( $ipn < $ipn->broadcast ), то вайл занимает 2.2сек; когда my $bc = $ipn->broadcast; while ($ipn < $bc) {, то 1.3сек; когда без модуля, чисто use Socket/inet_ntoa/inet_aton, то ... 0.293ms On Nov 25, 2016 9:17 PM, "Denis Evdokimov via Moscow-pm" wrote: > Данных катастрофически не хватает. > Судя по первому письму профайлер запускался, но только на версии с grep. > > Предположу, что map-версия выглядит примерно так: > foreach my $iponly (@bla_bla_bla) > { > my %ips = map { $_ => 1 } @ips; > if (not exists($ips{$iponly} )) > { > return $iponly; > } > } > > > тогда её нужно переписать так: > my %ips = map { $_ => 1 } @ips; > foreach my $iponly (@bla_bla_bla) > { > if (not exists($ips{$iponly} )) > { > return $iponly; > } > } > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From victor на vsespb.ru Fri Nov 25 10:27:17 2016 From: victor на vsespb.ru (Victor Efimov) Date: Fri, 25 Nov 2016 21:27:17 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> Message-ID: столько писем в треде и ни одного нормального PoC тест-кейза, где показывается как оно тормозит 5 сек, без всяких cpan модулей и с ip адресами нагенерированными в этом же кейзе. 25 ноября 2016 г., 21:09 пользователь Naim Shafiev via Moscow-pm написал: > да только на версии с grep, но там в modern perl telegram чате петрусевич > побольше чем я занялся ускорение . > вот результаты > Anton Petrusevich: > грубо говоря так: когда while( $ipn < $ipn->broadcast ), то вайл занимает > 2.2сек; когда my $bc = $ipn->broadcast; while ($ipn < $bc) {, то 1.3сек; > когда без модуля, чисто use Socket/inet_ntoa/inet_aton, то ... 0.293ms > > > On Nov 25, 2016 9:17 PM, "Denis Evdokimov via Moscow-pm" > wrote: >> >> Данных катастрофически не хватает. >> Судя по первому письму профайлер запускался, но только на версии с grep. >> >> Предположу, что map-версия выглядит примерно так: >> foreach my $iponly (@bla_bla_bla) >> { >> my %ips = map { $_ => 1 } @ips; >> if (not exists($ips{$iponly} )) >> { >> return $iponly; >> } >> } >> >> >> тогда её нужно переписать так: >> my %ips = map { $_ => 1 } @ips; >> foreach my $iponly (@bla_bla_bla) >> { >> if (not exists($ips{$iponly} )) >> { >> return $iponly; >> } >> } >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From zhecka на gmail.com Fri Nov 25 10:29:40 2016 From: zhecka на gmail.com (Eugene Kaltashkin) Date: Fri, 25 Nov 2016 21:29:40 +0300 Subject: [Moscow.pm] =?utf-8?b?0J7Rh9C10L3RjCDQvNC10LTQu9C10L3QvdC+0LUg?= =?utf-8?b?0L3QsNGF0L7QttC00LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQsiA=?= =?utf-8?b?0LzQsNGB0YHQuNCy0LU=?= In-Reply-To: References: <9d2e29d5-e247-91cd-c875-130ab710af27@gmail.com> <39e43571-744e-faf4-0c76-359957ce8531@gmail.com> <21d8cd05-3775-c139-e1dd-be69a055bb5b@gmail.com> <48fb29f0-6e65-ed8f-732a-c3d86973ae24@gmail.com> Message-ID: Етить. А Casus то тут каким боком :) 25 нояб. 2016 г. 9:10 PM пользователь "Naim Shafiev via Moscow-pm" < moscow-pm на pm.org> написал: > да только на версии с grep, но там в modern perl telegram чате петрусевич > побольше чем я занялся ускорение . > вот результаты > Anton Petrusevich: > грубо говоря так: когда while( $ipn < $ipn->broadcast ), то вайл занимает > 2.2сек; когда my $bc = $ipn->broadcast; while ($ipn < $bc) {, то 1.3сек; > когда без модуля, чисто use Socket/inet_ntoa/inet_aton, то ... 0.293ms > > On Nov 25, 2016 9:17 PM, "Denis Evdokimov via Moscow-pm" > wrote: > >> Данных катастрофически не хватает. >> Судя по первому письму профайлер запускался, но только на версии с grep. >> >> Предположу, что map-версия выглядит примерно так: >> foreach my $iponly (@bla_bla_bla) >> { >> my %ips = map { $_ => 1 } @ips; >> if (not exists($ips{$iponly} )) >> { >> return $iponly; >> } >> } >> >> >> тогда её нужно переписать так: >> my %ips = map { $_ => 1 } @ips; >> foreach my $iponly (@bla_bla_bla) >> { >> if (not exists($ips{$iponly} )) >> { >> return $iponly; >> } >> } >> >> >> -- >> 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 ksvs1996 на ymail.com Sat Nov 26 08:16:31 2016 From: ksvs1996 на ymail.com (ksvs) Date: Sat, 26 Nov 2016 16:16:31 +0000 (UTC) Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> Message-ID: <764572584.1526255.1480176991401@mail.yahoo.com> А почему? On Thursday, 24 November 2016, 21:14, Daniel Podolsky via Moscow-pm wrote: > А что-то большое я бы на нём делать побоялся, разве что используя концепцию > микросервисов. +1, в общем-то. но делать что-то большое на перле я боюсь с использованием любой концепции... -- Moscow.pm mailing list moscow-pm на pm.org | http://moscow.pm.org From an.gorohovski на gmail.com Sat Nov 26 08:55:26 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Sat, 26 Nov 2016 19:55:26 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: <764572584.1526255.1480176991401@mail.yahoo.com> References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <764572584.1526255.1480176991401@mail.yahoo.com> Message-ID: Может потому что: * смелость города берёт * волков бояться-в лес не ходить * кто не рискует, тот не пьет шампанское * у страха глаза велики etc. 26 ноября 2016 г., 19:16 пользователь ksvs via Moscow-pm написал: > А почему? > > > > > > On Thursday, 24 November 2016, 21:14, Daniel Podolsky via Moscow-pm < > moscow-pm на pm.org> wrote: > > А что-то большое я бы на нём делать побоялся, разве что используя > концепцию > > микросервисов. > > +1, в общем-то. > > но делать что-то большое на перле я боюсь с использованием любой > концепции... > > -- > 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 akzhan.abdulin на gmail.com Sat Nov 26 10:07:55 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Sat, 26 Nov 2016 21:07:55 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: <764572584.1526255.1480176991401@mail.yahoo.com> References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <764572584.1526255.1480176991401@mail.yahoo.com> Message-ID: У всех по-разному. Лично я считаю опасным реализовывать бизнес-логику с помощью асинхронщины любого рода. То есть - писать биллинг, например, на Node, на Go или на Coro - по мне так стрелять в ногу. В остальном - как удобнее, и надежнее, и быстрее - так и пишу. 26 ноября 2016 г., 19:16 пользователь ksvs написал: > А почему? > > > > > > On Thursday, 24 November 2016, 21:14, Daniel Podolsky via Moscow-pm < > moscow-pm на pm.org> wrote: > > А что-то большое я бы на нём делать побоялся, разве что используя > концепцию > > микросервисов. > > +1, в общем-то. > > но делать что-то большое на перле я боюсь с использованием любой > концепции... > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ksvs1996 на ymail.com Mon Nov 28 00:04:18 2016 From: ksvs1996 на ymail.com (ksvs) Date: Mon, 28 Nov 2016 08:04:18 +0000 (UTC) Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <764572584.1526255.1480176991401@mail.yahoo.com> Message-ID: <706134748.2634594.1480320258943@mail.yahoo.com> Про Node - понятно: там все на коллбеках. Сoro - там что-то с совместимостью. А Go? Там же зеленые треды, как в Java, Haskell, Erlang... Или для Go другая причина? On Saturday, 26 November 2016, 20:07, Akzhan Abdulin wrote: У всех по-разному. Лично я считаю опасным реализовывать бизнес-логику с помощью асинхронщины любого рода. То есть - писать биллинг, например, на Node, на Go или на Coro - по мне так стрелять в ногу. В остальном - как удобнее, и надежнее, и быстрее - так и пишу. 26 ноября 2016 г., 19:16 пользователь ksvs написал: А почему? > > > > > > >On Thursday, 24 November 2016, 21:14, Daniel Podolsky via Moscow-pm wrote: >> А что-то большое я бы на нём делать побоялся, разве что используя концепцию >> микросервисов. > >+1, в общем-то. > >но делать что-то большое на перле я боюсь с использованием любой концепции... > > >-- >Moscow.pm mailing list >moscow-pm на pm.org | http://moscow.pm.org > From onokonem на gmail.com Mon Nov 28 00:26:41 2016 From: onokonem на gmail.com (Daniel Podolsky) Date: Mon, 28 Nov 2016 11:26:41 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: <706134748.2634594.1480320258943@mail.yahoo.com> References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <764572584.1526255.1480176991401@mail.yahoo.com> <706134748.2634594.1480320258943@mail.yahoo.com> Message-ID: > А Go? Там же зеленые треды, как в Java, Haskell, Erlang... Или для Go другая причина? в java нет зеленых тредов. С Go вот какая беда - нет пока массового опыта реально больших проектов на нем. ни положительного, ни отрицательного. я вот ввязался, потому что я то ли глупый, то ли смелый. а Акжан вот осторожничает, потому что то ли умный, то ли трусливый :) From agrishaev на gmail.com Mon Nov 28 03:03:49 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Mon, 28 Nov 2016 14:03:49 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <764572584.1526255.1480176991401@mail.yahoo.com> <706134748.2634594.1480320258943@mail.yahoo.com> Message-ID: 28 ноября 2016 г., 11:26 пользователь Daniel Podolsky via Moscow-pm < moscow-pm на pm.org> написал: > > > я вот ввязался, потому что я то ли глупый, то ли смелый. > > а Акжан вот осторожничает, потому что то ли умный, то ли трусливый :) > Либо умный, либо не договаривает :) Кмк, можно смещивать бизнес-логику и очереди(тоже ведь асинхрощина), асинхронщину,которая на колбэках, тоже можно использовать, если: 1) требования меняют не часто, 2) требования абсолютно простые и конечный (код | автомат) будет простой и обозримый. 3) у разработчика есть опыт и дисциплина не превратить код в нечто лапшеобразное 4) есть время на отладку и эксперименты А для бизлогики справедливо, как правило следующее: 1) меняется часто 2) довольно сложная 3) пишут все доступные программисты 4) нужно сделать "вчера" Т.е. бизнес логика и асинхронщина должны быть разделены как минимум файлами, может языком, и может быть программистами(кому-то доступно, а кому-то нет). Иначе есть большие риски получить адскую смесь. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vaneska.ru на gmail.com Mon Nov 28 03:43:03 2016 From: vaneska.ru на gmail.com (=?UTF-8?B?0JjQstCw0L0g0KHQvtC60L7Qu9C+0LI=?=) Date: Mon, 28 Nov 2016 14:43:03 +0300 Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <764572584.1526255.1480176991401@mail.yahoo.com> <706134748.2634594.1480320258943@mail.yahoo.com> Message-ID: Асинхронность, точнее параллельность, с бизнес логикой прекрасно уживаются. у нас есть один механизм, который без параллельности вообще не получился бы и изменяют его много народу. Хотя если вы говорите именно про событийную машину, то на ней писать бизнес логику и врагу не пожелаешь. 28 Ноя 2016 г. 14:04 пользователь "Толян II via Moscow-pm" написал: > > > 28 ноября 2016 г., 11:26 пользователь Daniel Podolsky via Moscow-pm < > moscow-pm на pm.org> написал: > >> >> >> я вот ввязался, потому что я то ли глупый, то ли смелый. >> >> а Акжан вот осторожничает, потому что то ли умный, то ли трусливый :) >> > > Либо умный, либо не договаривает :) > > Кмк, можно смещивать бизнес-логику и очереди(тоже ведь асинхрощина), > > асинхронщину,которая на колбэках, тоже можно использовать, если: > 1) требования меняют не часто, > 2) требования абсолютно простые и конечный (код | автомат) будет простой и > обозримый. > 3) у разработчика есть опыт и дисциплина не превратить код в нечто > лапшеобразное > 4) есть время на отладку и эксперименты > > А для бизлогики справедливо, как правило следующее: > 1) меняется часто > 2) довольно сложная > 3) пишут все доступные программисты > 4) нужно сделать "вчера" > > > Т.е. бизнес логика и асинхронщина должны быть разделены как минимум > файлами, может языком, и может > быть программистами(кому-то доступно, а кому-то нет). > > Иначе есть большие риски получить адскую смесь. > > > >> -- >> 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 ksvs1996 на ymail.com Mon Nov 28 03:51:02 2016 From: ksvs1996 на ymail.com (ksvs) Date: Mon, 28 Nov 2016 11:51:02 +0000 (UTC) Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: <4003651480011193@web30j.yandex.ru> References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <4003651480011193@web30j.yandex.ru> Message-ID: <24893614.2977244.1480333862833@mail.yahoo.com> Спасибо. On Thursday, 24 November 2016, 20:13, Коваль Вячеслав via Moscow-pm wrote: https://www.youtube.com/watch?v=PpHYtSoYZr8 на 12-й минуте 24.11.2016, 10:16, "ksvs via Moscow-pm" : Привет. >На какой-то 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 From ksvs1996 на ymail.com Mon Nov 28 03:51:27 2016 From: ksvs1996 на ymail.com (ksvs) Date: Mon, 28 Nov 2016 11:51:27 +0000 (UTC) Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: <1820044879.2957984.1480333805789@mail.yahoo.com> References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <764572584.1526255.1480176991401@mail.yahoo.com> <706134748.2634594.1480320258943@mail.yahoo.com> <1820044879.2957984.1480333805789@mail.yahoo.com> Message-ID: <241828560.3013652.1480333887793@mail.yahoo.com> On Monday, 28 November 2016, 13:50, ksvs wrote: Ой, точно давно выпилили из java зеленые... Тогда не понимаю историю из http://event.yapcrussia.org/ryazan2016/talk/373С AnyEvent переписали на Kotlin. Получается, что из аснхроного на синхронный переписали код. On Monday, 28 November 2016, 10:26, Daniel Podolsky wrote: > А Go? Там же зеленые треды, как в Java, Haskell, Erlang... Или для Go другая причина? в java нет зеленых тредов. С Go вот какая беда - нет пока массового опыта реально больших проектов на нем. ни положительного, ни отрицательного. я вот ввязался, потому что я то ли глупый, то ли смелый. а Акжан вот осторожничает, потому что то ли умный, то ли трусливый :) From ksvs1996 на ymail.com Mon Nov 28 03:50:05 2016 From: ksvs1996 на ymail.com (ksvs) Date: Mon, 28 Nov 2016 11:50:05 +0000 (UTC) Subject: [Moscow.pm] =?utf-8?b?W09GRlRPUElDXSDQmNGJ0LXRgtGB0Y8g0LjQvdGE?= =?utf-8?b?0L7RgNC80LDRhtC40Y8=?= In-Reply-To: References: <1561510714.1691756.1479982489422.ref@mail.yahoo.com> <1561510714.1691756.1479982489422@mail.yahoo.com> <764572584.1526255.1480176991401@mail.yahoo.com> <706134748.2634594.1480320258943@mail.yahoo.com> Message-ID: <1820044879.2957984.1480333805789@mail.yahoo.com> Ой, точно давно выпилили из java зеленые... Тогда не понимаю историю из http://event.yapcrussia.org/ryazan2016/talk/373С AnyEvent переписали на Kotlin. Получается, что из аснхроного на синхронный переписали код. On Monday, 28 November 2016, 10:26, Daniel Podolsky wrote: > А Go? Там же зеленые треды, как в Java, Haskell, Erlang... Или для Go другая причина? в java нет зеленых тредов. С Go вот какая беда - нет пока массового опыта реально больших проектов на нем. ни положительного, ни отрицательного. я вот ввязался, потому что я то ли глупый, то ли смелый. а Акжан вот осторожничает, потому что то ли умный, то ли трусливый :) From agrishaev на gmail.com Tue Nov 29 00:14:01 2016 From: agrishaev на gmail.com (=?UTF-8?B?0KLQvtC70Y/QvSBJSQ==?=) Date: Tue, 29 Nov 2016 11:14:01 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= In-Reply-To: <94627451.20161125202452@sadok.spb.ru> References: <1480078533.1773.2@smtp.mail.ru> <94627451.20161125202452@sadok.spb.ru> Message-ID: > Nginx на коленке? По сути это так же специализированный веб сервер. но с заточкой на перехват и модификацию трафика наружу. В отличие от Nginx: 1) умеет использовать динамические сертификаты 2) хорошо скриптуется 3) исходящие ip умеет ротировать из коробки 4) на перле написан. 25 ноября 2016 г., 20:24 пользователь Dmitry Ivanov via Moscow-pm < moscow-pm на pm.org> написал: > Здравствуйте, Толян. > > Вы писали 25 ноября 2016 г., 16:45:07: > > > Существующие обрывают соединение после запроса или вообще делают fork на > каждый запрос. > > > > Поэтому, если хочется посмотреть сайт во Вьетнаме со Вьетнамским > > ip, то с существующими проксями бывает очень долго и муторно (пинг ~1 > секунда). > > Может минуту загружаться или больше, а чаще вообще не загружается. > > Конечно Вьетнам это крайний случай, но торможение можно наблюдать даже > по России. > > > Во вторых хотелось переписывать запросы и ответы, т.е. сишные прокси не > самый удачный вариант. > > В третьих нужен было простое единое состояние для всех запросов и > > соединений (через базу или файлы обмениваться не хочется, что > приходиться с fork/join делать) > > В четвертых иногда нужно исходящие ip ротировать. > > В пятых https трафик перехватывать. > > > > Самое главное было производительность + https, остальное до кучи. > > > > > > > Nginx на коленке? > > > 25 ноября 2016 г., 15:55 пользователь Alexey Shrub via Moscow-pm < > moscow-pm на pm.org> написал: > > > On Пт, ноя 25, 2016 в 12:46 , Толян II via Moscow-pm > wrote: > > > > Есть асинхронный HTTP/HTTPS прокси в виде скрипта + модули. > > Производительность около 1000 запросов в секунду т.е. очень хорошо. > > поддерживает HTTP/1.1 --- в том числе постоянные соединения. > > В работе используется уже года три. > > > > > > А чём отличие от существующих прокси? Что заставило написать свой? > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > > -- > С уважением, > Dmitry mailto:sadok на mail.ru > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ali на ali.org.ua Wed Nov 30 04:57:17 2016 From: ali на ali.org.ua (Oleg Alistratov) Date: Wed, 30 Nov 2016 14:57:17 +0200 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= In-Reply-To: References: <1480078533.1773.2@smtp.mail.ru> <94627451.20161125202452@sadok.spb.ru> Message-ID: <388151480510637@web26m.yandex.ru> Вложение в формате HTML было извлечено… URL: From theathlet на yandex.ru Wed Nov 30 11:34:44 2016 From: theathlet на yandex.ru (theathlet на yandex.ru) Date: Wed, 30 Nov 2016 22:34:44 +0300 Subject: [Moscow.pm] =?utf-8?b?0JrQsNC6INC+0YTQvtGA0LzQuNGC0Ywg0LzQvtC0?= =?utf-8?b?0YPQu9GMLg==?= In-Reply-To: <388151480510637@web26m.yandex.ru> References: <1480078533.1773.2@smtp.mail.ru> <94627451.20161125202452@sadok.spb.ru> <388151480510637@web26m.yandex.ru> Message-ID: <20161130223443.Yhs0DGUf@smtp3h.mail.yandex.net> На CPAN + GitHub От: Oleg Alistratov via Moscow-pm Отправлено: 30 ноября 2016 г. в 16:00 Кому: Moscow.pm group Копия: Oleg Alistratov Тема: Re: [Moscow.pm] Как оформить модуль. О, как раз такой же нужен, только попроще, собирался на новогодних каникулах написать. Так что очень кстати, буду благодарен. На CPAN с сорцами на гитхабе — самое оно, конечно.   29.11.2016, 10:14, "Толян II via Moscow-pm" : > Nginx на коленке? По сути это так же специализированный веб сервер. но с заточкой на перехват и модификацию трафика наружу. В отличие от Nginx: 1) умеет использовать динамические сертификаты 2) хорошо скриптуется 3) исходящие ip умеет ротировать из коробки 4) на перле написан. 25 ноября 2016 г., 20:24 пользователь Dmitry Ivanov via Moscow-pm написал: Здравствуйте, Толян. Вы писали 25 ноября 2016 г., 16:45:07: > Существующие обрывают соединение после запроса или вообще делают fork на каждый запрос. > Поэтому, если хочется посмотреть сайт во Вьетнаме со Вьетнамским > ip, то с существующими проксями бывает очень долго и муторно (пинг ~1 секунда). > Может минуту загружаться или больше, а чаще вообще не загружается. > Конечно Вьетнам это крайний случай, но торможение можно наблюдать даже по России. > Во вторых хотелось переписывать запросы и ответы, т.е. сишные прокси не самый удачный вариант. > В третьих нужен было простое единое состояние для всех запросов и > соединений (через базу или файлы обмениваться не хочется, что приходиться с fork/join делать) > В четвертых иногда нужно исходящие ip ротировать. > В пятых https трафик перехватывать. > Самое главное было производительность + https, остальное до кучи. Nginx на коленке? > 25 ноября 2016 г., 15:55 пользователь Alexey Shrub via Moscow-pm написал: > On Пт, ноя 25, 2016 в 12:46 , Толян II via Moscow-pm wrote: > >  Есть асинхронный HTTP/HTTPS прокси в виде скрипта + модули. >  Производительность около 1000 запросов в секунду т.е. очень хорошо. >  поддерживает HTTP/1.1 --- в том числе постоянные соединения. >  В работе используется уже года три. > > >  А чём отличие от существующих прокси? Что заставило написать свой? >  -- >  Moscow.pm mailing list >  moscow-pm на pm.org | http://moscow.pm.org > -- С уважением,  Dmitry                          mailto:sadok на mail.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     -- Oleg Alistratov   ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: