gentoo.ru
Общение на окологентушные темы
gentoo@conference.gentoo.ru
Суббота, 3 января 2015< ^ >
winterheart установил(а) тему: Gentoo Linux || FAQ: http://www.gentoo.ru/faq || Вставки более 3 строк → app-text/wgetpaste || Логи: http://gentoo.ru/jabber/logs/ || Языками чешут в talks@conference.gentoo.ru ||  Фортунки http://fortunes.gentoo.ru || Gentoo.RU переехал целиком на Yandex || Gentoo Iron Penguin
Конфигурация комнаты
Участники комнаты

GMT+3
[00:02:59] ruda вышел(а) из комнаты
[00:13:55] hitecnologys вышел(а) из комнаты
[00:24:37] Night Nord вышел(а) из комнаты
[00:29:27] slepnoga вышел(а) из комнаты
[01:56:38] evadim вышел(а) из комнаты
[01:59:49] CarelessChaser вошёл(а) в комнату
[02:11:26] ruda вошёл(а) в комнату
[02:18:55] conformist вышел(а) из комнаты
[02:33:35] bober2000 вышел(а) из комнаты
[02:34:28] conformist вошёл(а) в комнату
[02:40:26] conformist вышел(а) из комнаты
[02:56:21] conformist вошёл(а) в комнату
[03:43:54] 0xd34df00d вышел(а) из комнаты: Клиент ушел спать
[03:44:12] 0xd34df00d вошёл(а) в комнату
[03:44:22] 0xd34df00d вышел(а) из комнаты: Клиент ушел спать
[03:49:37] beelzebubbie вышел(а) из комнаты
[04:10:46] 0xd34df00d вошёл(а) в комнату
[05:07:56] fsteinel вышел(а) из комнаты: Disconnected: closed
[05:09:17] ruda вышел(а) из комнаты
[05:32:08] 0xd34df00d вышел(а) из комнаты: Клиент ушел спать
[05:43:10] 0xd34df00d вошёл(а) в комнату
[06:36:46] 0xd34df00d вышел(а) из комнаты: Клиент ушел спать
[06:39:16] Vurtatoo вошёл(а) в комнату
[07:20:32] 0xd34df00d вошёл(а) в комнату
[08:58:41] fsteinel вошёл(а) в комнату
[09:05:32] maxggxam вышел(а) из комнаты
[09:11:09] 0xd34df00d вышел(а) из комнаты: Клиент ушел спать
[09:58:48] Vurtatoo вышел(а) из комнаты
[10:00:40] beelzebubbie вошёл(а) в комнату
[10:23:02] Vurtatoo вошёл(а) в комнату
[10:35:22] krigstask вышел(а) из комнаты
[10:39:52] maxggxam вошёл(а) в комнату
[10:46:32] nis вошёл(а) в комнату
[10:49:28] ruda вошёл(а) в комнату
[11:22:42] <nis> Civilian: я вот недавно нашёл одну шляпу и удивляюсь как она прошла мимо ЛОРа
[11:22:52] <nis> Civilian: http://www.scaner-vs.ru/
[12:12:57] bober2000 вошёл(а) в комнату
[12:25:28] evadim вошёл(а) в комнату
[12:31:45] hitecnologys вошёл(а) в комнату
[13:13:33] maxggxam вышел(а) из комнаты
[13:21:36] maxggxam вошёл(а) в комнату
[13:25:10] <Civilian> nis: спасибо, поржал
[13:26:01] <nis> Civilian: ты если загуглишь презентацию вообще долго ржать будешь
[13:26:13] <nis> там одна фраза - сканируй меня нежно
[13:26:15] <nis> чего стоит
[13:28:24] <Civilian> nis: я поржал с того, что они предлагают еще и "контрольные суммы" посчитать, указывая что у конкурентов "обычный рассчет контрольных сумм" )
[13:32:14] <nis> ну это то да
[13:32:32] <nis> там вообще весь сайт походу составлен людьми которые не в теме
[13:32:49] <Civilian> nis: почему же?
[13:32:58] <Civilian> вполне в теме того как пилить бабло
[13:33:01] <Civilian> что они и делают
[13:33:09] <Civilian> взяли дебиан 5.0
[13:33:15] <Civilian> и на его базе сваяли дистрибутив
[13:33:45] <nis> если дебъян
[13:33:52] <nis> есть инфа что это мсвс
[13:34:21] <nis> т.к. мсвс это едиственный дистриб у которого был сертификат на момент создания сего чуда
[13:35:05] <nis> Civilian: - @Linux (МСВС, Linux XP, Astra Linux и др.). @
[13:36:04] <nis> Civilian: и кстати доки тоже прикольные - "По мнению журнала PC Magazine (http://www.pcmag.com/, 2010) ниже
приведены самыe популярные пароли с их Lm-хэшами:"
[13:36:47] <nis> Civilian: http://www.scaner-vs.ru/data/description_sca.pdf
[13:37:06] <nis> этот документ проливает свет на все вопросы
[13:37:08] <Civilian> nis: может и МСВС конечно, просто по версиям софта оно похоже на дебиан 6.0 )
[13:37:11] <Civilian> *5.0
[13:37:15] CarelessChaser вышел(а) из комнаты
[13:37:36] <Civilian> nis: дык ты 10 страницу открой
[13:38:02] <Civilian> и посмотри "Система управления и основной состав пакетов"
[13:38:08] <Civilian> там тебе ответ будет
[13:39:01] <nis> на 11 странице описано куда это ставиться
[13:40:07] <Civilian> nis: я к тому что на 10 странице черным по белому указано что это дебиан 5
[13:40:15] <nis> хм
[13:49:24] ruda вышел(а) из комнаты
[13:53:04] evadim вышел(а) из комнаты
[13:55:20] conformist вышел(а) из комнаты
[13:57:51] <nis> Civilian: а если бы python был бы реализован не методом кучи малы - его бы скорость отличалась от жабы или нет?
[14:01:29] conformist вошёл(а) в комнату
[14:28:39] Night Nord вошёл(а) в комнату
[14:34:45] bober2000 вышел(а) из комнаты
[14:39:14] magog вошёл(а) в комнату
[14:48:47] magog вышел(а) из комнаты: Replaced by new connection
[14:48:57] magog вошёл(а) в комнату
[15:02:05] hitecnologys вошёл(а) в комнату
[15:04:26] hitecnologys вышел(а) из комнаты
[15:08:57] magog вышел(а) из комнаты
[15:53:11] Desu вошёл(а) в комнату
[15:55:06] CarelessChaser вошёл(а) в комнату
[16:06:19] krigstask вошёл(а) в комнату
[16:51:11] magog вошёл(а) в комнату
[16:54:18] Vurtatoo вышел(а) из комнаты
[17:01:22] <Civilian> nis: эм... не понял вопрос
[17:05:09] <nis> вопрос был в следующем - если навсести порядок в питоне насколько возрастёт произоводительность?
[17:06:22] ruda вошёл(а) в комнату
[17:16:54] <Civilian> nis: что значит "навести порядок"?
[17:18:47] <Civilian> nis: у питона очень много чего влияет на производительность
[17:18:55] <Civilian> и еще надо понимать какую реализацию счатить
[17:18:57] <Civilian> *считать
[17:24:53] Vurtatoo вошёл(а) в комнату
[17:25:21] <nis> тут сложный вопрос
[17:26:52] <Civilian> nis: вот как ответишь - так и можно будет сказать )
[17:27:12] <Civilian> nis: просто если без ущерба функционалу и совместимости, то я боюсь лучшее что можно сделать это pypy + убрать gil
[17:27:26] <Civilian> ну даже если не лучшее, то одно из
[17:27:26] <nis> частный случай - затраты на вызов функций класса, членов класса
[17:27:47] <nis> второе - итераторы
[17:28:04] <nis> третье - непосредственный поиск имён в пространстве
[17:28:09] <Civilian> nis: тот же pypy достаточно сильно оптимизирует работу питона
[17:28:15] <Civilian> помимо jit'а
[17:28:39] <nis> Civilian: PyPy не совместим с большиством библиотек написанных на классическом питоне
[17:28:42] <nis> это раз
[17:28:54] <Civilian> nis: ваще это уже не так
[17:28:54] <nis> во вторых потерян как таковой Си интерфейс
[17:29:04] <Civilian> nis: и это тоже уже не так
[17:30:01] <Civilian> nis: у них есть и libpypy для встраивания pypy в C/C++ код и CTypes на месте и CFFI
[17:30:29] <Civilian> там есть ряд проблем с этим, например что CFFI лучше чем CTypes а CTypes может быть медленее чем в Python2.7
[17:32:07] <nis> ну и да 2.7 это не 3.х
[17:32:16] <nis> в общем бардак
[17:32:24] <Civilian> nis: так есть pypy3 :)
[17:32:38] <nis> Владимир, ты это запукал?
[17:32:48] <Civilian> nis: да
[17:32:57] <Civilian> nis: pypy2 я в одном месте юзаю
[17:32:59] <nis> на реальных либах
[17:33:02] <Civilian> nis: да
[17:33:05] <nis> и фреймворках
[17:33:09] <Civilian> nis: и еще раз да
[17:33:13] <nis> у меня жанга тогда так и не взлетела
[17:33:16] <Civilian> nis: Twisted, Django, Flask
[17:33:19] CarelessChaser вышел(а) из комнаты
[17:33:25] <Civilian> и при этом дерганьше cairo-cffi
[17:33:27] <nis> поделишься секретом?
[17:33:37] <Civilian> nis: не знаю, взял и оно просто заработало
[17:33:47] <Civilian> готовое опенсорсное приложение притом, целиком
[17:33:57] <Civilian> пришлось две строки кода поправить в cairo-cffi
[17:34:11] <Civilian> и багу в апстрим отправить
[17:34:13] <nis> ты уже рассказывал про это
[17:34:27] <Civilian> nis: оно с тех пор работает и для того проекта очень стабильно
[17:34:42] <nis> Civilian: проблема в том что классический питон очень жалок даже на а8
[17:34:48] <nis> не говоря про арм9
[17:34:54] <Civilian> nis: а, это
[17:34:57] <Civilian> ну что сказать
[17:35:11] <Civilian> nis: pypy вообще хорошо работать начинает на системах у которых не меньше 8ГБ рамы
[17:35:12] <nis> на а9 в принципе терпимо
[17:35:19] <Civilian> т.к. потребление памяти возрастает на 30-40%
[17:37:31] <nis> т.е. проблему решили экстенсивным способом?
[17:37:44] <Civilian> nis: просто это особенность JIT'а
[17:38:03] <nis> это фейл
[17:38:08] <Civilian> nis: получаешь 3-4x скорости ценой 30-40% рамы - не много
[17:38:08] <nis> я считаю
[17:38:18] <Civilian> в смысле рамы не много, а к скорости - очень даже
[17:38:43] <Civilian> nis: почему фейл? jit он такой
[17:38:59] <nis> Civilian: это не jit такой, это не правильная его готовка
[17:39:15] <Civilian> nis: ну их цель - сделать совместимо сначала
[17:39:18] <nis> т.к. jit должен сокращать издержки
[17:39:18] <Civilian> а потом уже оптимизировать
[17:39:27] <nis> а не увеличивать их
[17:39:40] <Civilian> nis:ну они по скорости выигрывают очень хорошо
[17:39:48] <nis> а в итоге получается что альтернативы нету
[17:40:40] <nis> Civilian: как думаешь почему жаба машина влезает даже на cortex-m3?
[17:40:50] conformist вышел(а) из комнаты
[17:40:55] <nis> и при желании на AVR
[17:41:01] <Civilian> nis: в целом они говорят что некоторые задачи жрут меньше памяти, чем на pypy :)
[17:41:09] <Civilian> чем на python в смысле
[17:41:13] <Civilian> но очень задаче-зависимо
[17:41:18] <nis> вот
[17:41:34] <nis> т.е. архитектура текущей машины наложила своих косяков
[17:41:53] <nis> таких как отсутствие полноценной потоко независимой модели
[17:43:09] <Civilian> nis: язык под другое делался
[17:43:28] <nis> тут ты прав
[17:43:44] <nis> т.к. не существует нормального решения этой задачи
[17:43:54] <nis> это как многопроцессорность и ядро линукс
[17:44:27] <Civilian> nis: кстати у pypy есть прогресс по работе с STM
[17:44:40] <nis> да неужели?
[17:44:45] <nis> линк?
[17:45:11] <Civilian> https://pypy.readthedocs.org/en/latest/stm.html
[17:45:18] <Civilian> nis: ты можешь собрать pypy без GIL
[17:45:24] <Civilian> используя STM
[17:46:41] <nis> надо посмотреть
[17:47:10] <Civilian> nis: это ранний прототип, там указано в caveats его проблемы
[17:47:15] <Civilian> там с GC не все гладко
[17:47:22] <Civilian> со скоростью работы однопоточных приложений
[17:48:37] <nis> я эксперементатор и практик, меня подобные замечания не пугают
[17:48:44] <nis> я уже их видел
[17:52:03] <nis> если механизм работает, его просто необходимо отладить
[17:52:23] <nis> меня прожорство PyPy смущает
[17:52:58] <nis> и ставит крест на использование его как основного интерпретатора
[17:56:30] conformist вошёл(а) в комнату
[18:01:33] <Civilian> nis: а у тебя много вечно живущего софта на питоне?
[18:01:35] conformist вышел(а) из комнаты
[18:03:07] <Civilian> или много performance critical софта на нем?
[18:05:38] <Civilian> nis: подмножество питона кстати на Cortex-M запускается вполне нормально )
[18:05:40] <nis> первого не очень - т.к. постоянно переписываю с одного языка на другой
[18:05:54] <Civilian> nis: я про демона, скорее
[18:06:09] <nis> Civilian: подможество питона запускающегося на cortex-m3 очень старое
[18:06:26] <nis> а про performance critical - были случаи
[18:06:36] <nis> причём они очень сложные
[18:06:45] <Civilian> на питоне?
[18:07:05] <nis> да
[18:07:22] <Civilian> НАФИГА?
[18:07:33] <nis> потому что так исторически сложилось
[18:08:04] <nis> я очень часто работаю с кодом который был унаследован
[18:08:33] <Civilian> nis: если у тебя в одном предложении Performance и Python то значит пришло время или выносить участки кода в сишные библиотеки
[18:08:42] <Civilian> или убивать автора этого поделия
[18:08:59] <nis> автора убивать было бесполезно
[18:09:10] <Civilian> nis: а почему прожерливость по памяти тебя волнует?
[18:09:20] <Civilian> нынче поставить 16-32ГБ оперативы - дешево
[18:09:42] <nis> есть места куда установить ещё 100500 МБ рамы не так и просто
[18:09:51] <Civilian> nis: вторую железку в параллель
[18:09:54] <nis> да и цена обслуживания возрастает квадратоично
[18:09:56] <Civilian> и часть нагрузки перевесить
[18:09:58] <nis> квадратично
[18:10:02] <Civilian> nis: ну да, и что?
[18:10:12] <Civilian> дешвле чем переписать код с нуля
[18:10:27] <nis> дешевле но до определённой границы
[18:10:48] <Civilian> nis: само собой - пока дешевле - бизнесу проще не заморачиваться
[18:11:01] <nis> вот
[18:11:19] <nis> поэтому и появляется код на питоне который в прототипе худо бедно отрабатывал
[18:11:42] <nis> а на продакшене валится не хуже связки пхп + друпал(или хуже того мажента)
[18:11:45] <Civilian> nis: ну когда встает вопрос "оптимизировать код на питоне" то в этот момент проще все переписать
[18:12:11] <nis> да если лидер проекта не против
[18:12:47] <Civilian> nis: если лидер против - в задницу такой проект
[18:13:02] <nis> что я и сделал в прошлый раз
[18:13:41] <Civilian> nis: магии не бывает, можно иногда код и оптимизировать, но если код был хорош то ты 2-3 кратного прироста скорости уже не получишь из него
[18:16:58] conformist вошёл(а) в комнату
[18:18:45] <nis> это да
[18:19:16] <nis> иногда проще переосмыслить код, а точнее алгоритм
[18:22:51] <Civilian> nis: ну да, но часто переосмысливать нечего
[18:25:38] ruda вышел(а) из комнаты
[18:51:46] Vurtatoo вышел(а) из комнаты
[19:38:31] <nis> не знаю
[19:38:38] <nis> я с таким пока не сталкивался
[19:38:52] <nis> чтобы был алгоритм который нельзя оптимизировать
[19:43:40] 0xd34df00d вошёл(а) в комнату
[19:48:11] <Civilian> nis: полно простых алгоритмов )
[19:50:08] <nis> это если задача относительно проста
[19:50:31] <nis> хотя я пока не услышал критерия простоты
[19:53:01] <Civilian> nis: мне везет больше - чаще встречается. Пример с теми же графиками - тормозят функции выдающие сумму чисел, тормозят потому что к ним сотни запросов и нужно суммировать многие тысячи точек и все это на питоне
[19:54:06] <nis> вот тебе самый явный пример
[19:54:19] <nis> относительной простоты
[19:54:34] <nis> т.к. в твою случае неправильно выбрано использование питона
[19:55:07] <Magistr> Civilian: мне тут недавно задали вопрос, а что было до графита ? т.е существуют ли аналоги ?
[19:55:30] <Civilian> Magistr: полно
[19:55:35] <nis> вернее неправильное использование питона в качестве мат-аппарата
[19:55:45] <Civilian> nis: алгоритм суммирования - простая штука
[19:55:49] <nis> простая
[19:55:58] <Civilian> поэтому алгоритмически там нечего оптимизировать
[19:56:04] <nis> с точки зрения логики
[19:56:12] <Civilian> и единственный способ оптимизации - замена ЯП
[19:56:20] <Civilian> Magistr: rrd были, и есть
[19:56:21] <nis> а вот с точки зрения математики там очень много чего можно оптимизировать
[19:56:31] <Civilian> collectd, munin'ы всякие, cacti для отображений
[19:57:27] <Civilian> nis: тебе нужно отобразить сумму всех однотипных входных данных. Это тысяча массивов по тысяче элементов в каждом
[19:58:37] <nis> Civilian: и как ты представляешь этот массив?
[19:58:55] <Civilian> nis: в смысле как? Обычный массив
[19:59:07] <nis> обычный массив какого языка?
[19:59:14] <Civilian> nis: того, на котором пишешь
[19:59:26] <nis> в твоём случае это питон
[19:59:29] <nis> что уже не верно
[19:59:38] <Civilian> nis: ты скажи что алгоритмически можно улучшить, не касаясь языка
[20:00:06] <nis> есть библиотеки которые работают с многомерными массивами
[20:00:17] <Civilian> nis: это 1000 одномерных массивов
[20:00:21] <nis> ну
[20:00:34] <nis> представь как двумерный
[20:00:37] <nis> и нумпи
[20:00:38] <Civilian> nis: так еще раз - тебе нужна поэлементная сумма массивов. Что ты предлагаешь как алгоритм?
[20:01:07] <nis> Civilian: есть такая библиотека как numpy
[20:01:13] <Civilian> nis: не касаясь языка
[20:01:14] <Civilian> вообще
[20:01:17] <nis> она оптимизированна под такие цели
[20:01:42] <nis> Civilian: ты складываешь массивы простым перебором?
[20:01:57] <Civilian> nis: ну не я, а тот код делает примерно такое, да
[20:02:04] <Civilian> попутно проверяя числа на NaN'ы
[20:02:30] <nis> просто ужас какой-то
[20:03:00] <Civilian> nis: ну ты предложи алгоритм, который сделает лучше
[20:03:06] <Civilian> не касаясь языка
[20:03:21] <nis> это нельзя сделать не касаясь языка
[20:03:24] <Civilian> т.к. изначально постановка вопроса была именно про абстрактный язык
[20:03:39] <nis> и да где эта была постановка
[20:04:21] <nis> т.е. ты предлагаешь чтобы я выдвинул абстрактное решение для конкретной проблемы
[20:04:40] <Civilian> nis: я привел пример места, которое достаточно простое чтобы алгоритмически в нем ничего было изменить нельзя
[20:05:02] <nis> я не видел всего алгоритма поэтому не стал бы так говорить
[20:05:05] <Civilian> и фактически все улучшения какие можно сделать - это переписывать куски на другой язык
[20:05:15] <Civilian> nis: я на гитхаб давал ссылку давно
[20:05:34] <Civilian> nis: обычно суммирование n одномерных массивов (в случаи питона соответственно list'ов)
[20:05:50] <nis> я не помню то что было давно в плане кода - т.к. я не машина
[20:05:50] <Civilian> из особенностей что nan'ы выкидываются из суммирования
[20:06:13] <nis> оперировать индесными листами это первая ошибка для математики
[20:06:25] <Civilian> nis: в питоне это самое близкое к массиву
[20:06:29] <Civilian> по скорости тоже
[20:06:34] <nis> не совсем
[20:06:40] <nis> это не вектор
[20:06:42] <Civilian> nis: а что ближе?
[20:06:51] <nis> ближе это математические либы
[20:07:00] <nis> которые определяют свои типы
[20:07:47] <Civilian> nis: математические либы - да, но оно уже так написано и переписывать его на использование numpy.array вместо list'а - по времени и силам сопоставимо с написанием нового правильного решения
[20:08:14] <Civilian> nis: ибо на конвертации list -> numpy.array -> list ты потеряешь больше чем выиграешь
[20:08:20] <Civilian> поэтому или замена везде, или нигде
[20:09:21] <nis> основное преимущество питона в том что ты один тип можеш заменить на другой
[20:09:31] <Civilian> nis: не везде
[20:09:42] <nis> если в вашей программе это не возможно, то следует подумать о её правильности
[20:09:55] <Civilian> nis: numpy - не предоставляет list-совместимых типов
[20:10:19] <nis> Civilian: можешь ещё раз продемострировать код
[20:10:41] <Civilian> nis: https://github.com/brutasse/graphite-api да пожалуйста, вот веб-морда
[20:13:09] <Civilian> nis: проблема в том, что от базы оно ожидает объект типа TimeSeires (https://github.com/brutasse/graphite-api/blob/master/graphite_api/render/datalib.py)
[20:13:21] <Civilian> который наследуется от list'а, но обладает парой расширений
[20:13:51] <Civilian> это надо будет переписывать
[20:14:07] <Civilian> плюс в самом коде где-то были предположения что тип - TimeSeries или List
[20:14:29] <nis> жесть местами
[20:14:38] <nis> особенно всякие двойные листы
[20:14:39] <Civilian> nis: ага
[20:14:48] <nis> вложенные циклы
[20:14:59] <nis> переопределение встроенных функций
[20:15:06] <Civilian> nis: где переопределения?
[20:15:13] <nis> sum к примеру
[20:15:25] <nis> используется как переменная
[20:15:37] <nis> чего делать ну вообще не рекомендуется
[20:15:40] <Civilian> а, это бывает
[20:15:52] <Civilian> nis: там legacy code местами от graphite-web где все еще хуже
[20:16:06] <nis> потом такие плюшки как if v is not None аж вызывают пичаль
[20:16:18] <Civilian> nis: почему?
[20:16:28] <nis> поэтому, что это ошибка проектирования
[20:16:36] <Civilian> nis: где?
[20:16:39] <nis> об этом ещё гвидо писал
[20:16:46] <Civilian> nis: None - валидное число для графика
[20:16:49] <Civilian> трансформируется в дырку
[20:16:50] <nis> открой файл functions.py
[20:16:54] <Civilian> оно же "нет данных"
[20:17:10] <Civilian> nis: ну открыл
[20:17:25] <nis> когда ты проверяешь данные на None это говорит о том что ты что-то сделал не так
[20:17:31] <Civilian> nis: почему?
[20:17:42] <Civilian> nis: как ты предлагаешь иначе?
[20:18:13] <Civilian> nis: None/NaN - валидная штука с точки зрения графика - означает что в этом месте нет данных
[20:18:25] <Civilian> но при этом для мат. функций - special case который надо обрабатывать
[20:18:40] <nis> я ещё раз говорю что это ошибки уровня проектирования - я не могу без вида архитектуры сказать как бы поступил в данном случае
[20:18:48] 0xd34df00d вышел(а) из комнаты: Клиент ушел спать
[20:18:49] <nis> тут не математика
[20:18:54] <nis> тут проблемы с логикой
[20:19:06] <Civilian> nis: я тебя давно спрашивал "как правильно"
[20:19:27] <nis> строить код так чтобы не возникало нулевых объектов
[20:19:45] <Civilian> nis: а как быть с графиком где 0 и No Data - разные понятия?
[20:20:01] <nis> ты не понял
[20:20:16] <nis> нулевые значения и нулевые объекты это разные понятия
[20:20:34] <Civilian> nis: так я спросил как хранить "отсутсвие данных"?
[20:20:54] <nis> статус актуальности
[20:21:24] <nis> for series in seriesList:        newname = '.'.join(map(lambda x: x[1],                               filter(lambda i: i[0] not in positions,                                      enumerate(series.name.split('.')))))
[20:21:34] <nis> вот такой ужас
[20:22:08] <nis> лямбда увеличивает время выполнения, т.к. постоянно создаётся и удаляется из текущего контекста
[20:22:23] <Civilian> nis: статус актуальности - ты теряешь по памяти столько же, сколько у тебя данных
[20:22:50] <nis> Civilian: ты в любом случае расходуешь память
[20:23:12] <Civilian> nis: храня None - меньше чем храня для каждого значения - флаг
[20:23:32] <nis> это сложный вопрос т.к. нода у нас тоже что-то весит
[20:24:09] <nis> по этой куче бы профайлером пройтись
[20:25:28] <nis> т.е. наличие конструкций типа - isinstance говорит об ошибка той же архитектуры
[20:25:51] <nis> это как switch из typeid в С++
[20:26:57] <nis> Civilian: и да когда ты объекту говоришь None ты должен логику строить так что те кто с ним работают никогда не будут знать о None
[20:50:14] olegon вышел(а) из комнаты
[20:52:05] olegon вошёл(а) в комнату
[21:28:30] Civilian вышел(а) из комнаты: Replaced by new connection
[21:28:40] Civilian вошёл(а) в комнату
[21:54:38] hitecnologys вышел(а) из комнаты
[22:01:11] <Civilian> nis: кому должен?
[22:04:59] conformist вошёл(а) в комнату
[22:05:09] conformist вышел(а) из комнаты
[22:12:56] edgbla вышел(а) из комнаты
[22:15:37] 0xd34df00d вошёл(а) в комнату
[22:17:38] <nis> коду своему
[22:24:42] <Civilian> nis: зачем?
[22:30:30] <Civilian> nis: предложи вариант, как обойтись без введения null'евых элементов
[22:37:00] Civilian вышел(а) из комнаты
[22:39:08] Civilian вошёл(а) в комнату
[22:40:09] Vurtatoo вошёл(а) в комнату
[22:43:27] Desu вышел(а) из комнаты
[22:52:50] <Civilian> nis: http://speed.pypy.org/
[22:53:40] <Civilian> nis: они автоматом гоняют ряд тестов на каждый коммит
[22:54:17] <nis> Civilian: ещё раз повторю, каждая методика владения зависит от необходимых условий
[22:54:28] <nis> в твоём случае мы просто не обновляем данные
[22:54:33] <Civilian> nis: конкретно тут все None'ы - это Not a value значения
[22:54:39] <Civilian> nis: а если это дырка? )
[22:54:47] <nis> не бывает дырок
[22:54:51] <Civilian> nis: да ты шо
[22:54:58] <nis> дырка в голове от пули
[22:54:59] <Civilian> nis: ок, был сервер
[22:55:00] <Civilian> он сдох
[22:55:02] <nis> или в бублике
[22:55:04] <Civilian> данных не было
[22:55:06] <Civilian> потом он ожил
[22:55:08] <Civilian> данные появились
[22:55:15] <Civilian> между "жил" и "жил" - дырка
[22:55:23] <Civilian> которая как раз тут и представляется None'ами
[22:55:36] <Civilian> т.к. важно отличать дырку от 0
[22:55:54] <nis> нету дырки
[22:56:03] <nis> есть отсутствие данных
[22:56:11] <Civilian> nis: это одно и то же
[22:56:16] <nis> неа
[22:56:21] <Civilian> nis: почему неа?
[22:56:40] <nis> да потому что твой умный алгоритм говорит что это нули
[22:56:49] <nis> что сводит на нет статистику
[22:57:44] <nis> какой смысл делать объект нулевым если потом делается кучу костылей и оверхида
[22:57:54] <nis> чтобы обойти это явление
[23:00:24] <nis> я пока не услышал от тебя действительно внятного объяснения той горы кода
[23:01:32] <nis> мышиная возня это то явление которое не избежал пока ещё ни один проект
[23:01:45] <nis> просто надо не отрицать ошибки а пытаться их исправить
[23:01:59] <0xd34df00d> Оче плохо.
[23:02:11] <0xd34df00d> Плохо, что массив интов не может быть индексом для массива :(
[23:02:25] <Civilian> nis: ну ты код почитай еще
[23:02:27] <Civilian> и поймешь
[23:03:47] <nis> Civilian: код ужасен
[23:03:53] <Civilian> nis: бывает хуже )
[23:04:17] <nis> Civilian: http://stackoverflow.com/questions/7816363/if-a-vs-if-a-is-not-none
[23:04:53] <Civilian> nis: это да
[23:05:04] <nis> вот
[23:05:09] <nis> это только первая беда
[23:05:22] <nis> которая породила столько кода что даже трудно представить
[23:05:23] <Civilian> nis: но там тоже споры о скорости этой операции
[23:05:48] <nis> дело в том что ты можешь попасться на неочевидные грабли
[23:06:21] <0xd34df00d> > should return False or True, or their integer equivalents 0 or 1
[23:06:27] <0xd34df00d> Неявные преобразования
!
[23:06:30] <0xd34df00d> Смерть смерть СМЕРТЬ
[23:06:32] <Civilian> 0xd34df00d: дык питон
[23:06:36] <0xd34df00d> Гроб кладбище путин.
[23:07:10] <nis> Civilian: даже в питоне есть правила, которые авторы сего поделия нарушили
[23:07:16] <nis> чем и поплатились
[23:07:48] <0xd34df00d> Civilian: но в питоне же вроде строгая динамическая типизация.
[23:07:52] <0xd34df00d> Т. е. никаких коершенов в рантайме.
[23:08:00] <0xd34df00d> Но вообще бедон дно и не нужен канеш.
[23:08:46] <0xd34df00d> http://dump.bitcheese.net/images/usamute/screenshot.png
[23:08:47] <0xd34df00d> Хм.
[23:09:08] <nis> Civilian: а насчёт по другому нельзя - я в продакшене ещё и не так косячил - работает и ладно
[23:09:45] <nis> 0xd34df00d: завтра буду великий и ужасны собирать
[23:09:49] <0xd34df00d> А, ну же https://pp.vk.me/c617723/v617723604/131db/NJ6yOzbsmcU.jpg
[23:09:49] <Civilian> nis: ну нарушает иногда не просто так
[23:09:53] <0xd34df00d> nis: а чего там собирать.
[23:09:55] <0xd34df00d> emerge, и всё.
[23:10:08] <nis> а оно клангом будет?
[23:10:14] <Civilian> nis: ты сам кинул ссылку, там есть вполне четкие кейсы когда if A is not None быстрее чем if A
[23:10:19] <0xd34df00d> nis: оно только клангом на 100% и собирается.
[23:10:23] <0xd34df00d> гцц пару модулей не осиливает.
[23:10:35] <nis> Civilian: быстрее не значит правильней
[23:10:44] <nis> ты тему не переводи
[23:11:17] <nis> выигрывая мс на сравнении с нулевым объектом ты теряешь тем что условия эти повсюду
[23:11:53] <nis> в общем я пошёл спать
[23:16:13] <Civilian> nis: там много кода - тупая копипаста из graphite-web, который еще хуже
[23:16:21] ASM вышел(а) из комнаты
[23:16:23] ASM вошёл(а) в комнату
[23:17:01] <Civilian> nis: ну и в общем не надо доказывать мне что код графита плох, я знаю места которые еще хуже
[23:20:46] <Civilian> nis: просто в опенсорсе нет систем с похожими возможностями, которые были бы лучше
[23:22:13] Vurtatoo вышел(а) из комнаты
[23:22:16] Civilian вышел(а) из комнаты
[23:22:26] Civilian вошёл(а) в комнату
[23:33:58] <nis> на безрыбье и рак рыба
[23:34:32] <nis> или от добра добра не ищут
[23:36:41] nis вышел(а) из комнаты
[23:37:44] 0xd34df00d вышел(а) из комнаты: Клиент ушел спать
[23:57:15] Celt вошёл(а) в комнату
[23:57:24] <Celt> all:
[23:57:31] <Celt> вечер
[23:58:05] <Celt> не у кого не было проблем с xorg module path ?
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!