gentoo.ru
python
python@conference.gentoo.ru
Понедельник, 5 декабря 2011< ^ >
maksbotan установил(а) тему: ЯП Python || https://gist.github.com/289467 || Логи: http://tinyurl.com/gentoo-py-logs || "Python's a drop-in replacement for BASIC in the sense that Optimus Prime is a drop-in replacement for a truck." || Создан список рассылки python@lists.gentoo.org
Конфигурация комнаты
Участники комнаты

GMT+4
[00:03:50] lk4d4 вышел(а) из комнаты
[01:19:17] lk4d4 вошёл(а) в комнату
[01:26:31] <lk4d4> maksbotan: шаришь в timeit?
[01:27:01] <maksbotan> ну там вполне понятная дока
[01:27:10] <maksbotan> я по ней сделал мерялку ваших генераторов
[01:27:21] <maksbotan> а что?
[01:27:35] <lk4d4> у меня почему-то не все модули видит
[01:27:45] <maksbotan> то есть?
[01:27:47] <lk4d4> itertools видит, а random и operator нет почему-то
[01:28:35] <maksbotan> я правильно понимаю, что ты их в init импортируешь?
[01:29:04] <lk4d4> черт его знает, я делал как ты показывал)
[01:29:53] <lk4d4> действительно если в init заимпортировать, то норм
[01:30:01] <maksbotan> а как ты делал? о_О
[01:30:03] <lk4d4> странно почему itertools и так работает
[01:30:25] <lk4d4> просто в самом верху import
[01:30:39] <maksbotan> странно
[01:32:54] <lk4d4> а ты где доку читал? в library ничего вообще про иниты
[01:33:47] <maksbotan> http://docs.python.org/library/timeit.html
[01:33:49] <maksbotan> да вот здесь
[01:34:02] <maksbotan> только я init'ом нечаянно setup обозвал
[01:34:09] <maksbotan> класс TImer
[01:36:13] <lk4d4> set когда-нибудь использовал?
[01:36:55] <maksbotan> пару раз
[01:37:06] <maksbotan> для удаления дубликатов вроде
[01:38:04] <lk4d4> он сволочь сортирует последовательность как только в первый раз дубликат находит
[01:38:42] <maksbotan> то есть?
[01:38:56] <lk4d4> ща пример приведу
[01:39:38] <lk4d4> нет, я не понимаю
[01:39:44] <lk4d4> он иногда сортирует, иногда нет
[01:40:56] <lk4d4> >>> set(random.randint(0,100) for _ in xrange(10))
set([39, 76, 77, 87, 88, 26, 60, 29, 95])
>>> set(random.randint(0,100) for _ in xrange(50))
set([1, 7, 14, 19, 21, 22, 23, 27, 29, 30, 31, 33, 35, 38, 41, 43, 44, 50, 56, 57, 59, 60, 61, 62, 63, 66, 67, 75, 77, 79, 81, 83, 89, 95, 96, 97, 99, 100])
[01:41:52] <maksbotan> а если не генератор а включение использовать то же будет?
[01:42:12] <lk4d4> ага
[01:42:29] <lk4d4> в данном случае ровно на xrange(26) он начинает сортировать
[01:42:44] <maksbotan> ересь какая-то
[01:42:50] <maksbotan> крига надо
[01:48:19] <lk4d4> самое смешное, что в интернете есть вопросы как сделать orderedset
[01:48:30] <lk4d4> интересно как сделать unordered
[01:52:06] <lk4d4> прям какой-то кошмар
[01:53:36] <maksbotan> а зачем тебе анордеред?
[01:53:53] <maksbotan> сет это же просто множество, оно не завязано на сортировку
[01:53:56] <maksbotan> как словарь
[01:54:03] <maksbotan> порядок ключей не гарантируется
[01:54:49] <lk4d4> ну смотри ка не завязано
[01:54:54] <lk4d4> почто же он сортирует?
[01:55:24] <lk4d4> он мне в 99% случаев гарантирует сортированную последовательность
[01:55:32] <lk4d4> а я хочу в порядке появления
[01:56:08] <lk4d4> ну и согласись поведение странное
[01:56:51] <maksbotan> странное, согласен
[01:57:25] <maksbotan> но зачем ты используешь структуру с негарантированным порядком если нужен как раз гарантированный?
[01:59:03] <lk4d4> потому что в ней in за O(1) и нужно быстро удалять дублированные элементы
[02:00:05] <lk4d4> вообще получается хеш-последовательностей нет с гарантированным порядком
[02:00:19] <lk4d4> и нельзя быстро удалять одинаковые сохраняя порядок
[02:00:38] <maksbotan> а как ты себе представляешь хеш-последовательность с гарантированным порядком?
[02:00:56] <maksbotan> в любом случае элементы linked list появятся
[02:00:57] <maksbotan> или я тупой
[02:01:14] <lk4d4> какие еще linked list
[02:01:28] <maksbotan> обычные
[02:01:52] <maksbotan> порядок же только с помощью списков или массивов можно гарантировать
[02:05:16] <lk4d4> короче ясно все с этими сетами
[02:07:16] <maksbotan> разобрался или забил?
[02:08:33] <lk4d4> да а чего разбираться, что хотят, то воротят
[02:08:39] <maksbotan> ясно
[02:10:38] <lk4d4> и строки тоже сортирует
[02:11:05] <lk4d4> сейчас на stackoverflow спрошу, у них как раз за океаном разгар рабочего дня
[02:12:52] <maksbotan> расскажешь потом что как
[02:13:18] <lk4d4> ага
[02:14:35] <maksbotan> пожалуй я пойду спать
[02:14:36] <maksbotan> ночи
[02:15:20] <lk4d4> спокойной
[02:31:35] maksbotan вышел(а) из комнаты
[03:50:52] lk4d4 вышел(а) из комнаты
[09:13:21] krigstask вошёл(а) в комнату
[11:55:10] maksbotan вошёл(а) в комнату
[14:16:58] lk4d4 вошёл(а) в комнату
[14:55:08] <lk4d4> maksbotan: mapreduce не смотрел?
[14:55:14] <maksbotan> не-а
[14:55:16] <maksbotan> я не понял что это
[14:57:09] <lk4d4> вот и я никак не пойму в чем профит
[14:58:38] <maksbotan> почитал ещё раз, не въехал
[14:58:50] <maksbotan> lk4d4: как там твой вопрос на стековерфлоу?
[14:58:54] <lk4d4> везде приводят пример про подсчет слов и я вообще не понимаю зачем там такие сложности
[14:59:01] <lk4d4> я заснул пока писал
[14:59:41] <maksbotan> мде
[14:59:46] <maksbotan> я этот пример ничерта не понял
[15:00:28] <maksbotan> вот пишут что можно петабайт данных отсортировать за полтора часа
[15:01:46] <lk4d4> ну в теории можно
[15:01:46] <lk4d4> только непонятно зачем в задаче про подсчет слов что-то сортировать
[15:03:54] <lk4d4> наверное хреновый это пример
[15:04:44] <maksbotan> скажи-ка мне, lk4d4
[15:04:51] <maksbotan> чем QuickSort лучше MergeSort?
[15:06:00] <lk4d4> сложностью?
[15:06:33] <maksbotan> ну вроде у квик сорта есть деградации до O(n^2), а у мержа нет
[15:07:29] <lk4d4> я не уверен, но вроде у мержа операция слияния тяжелая
[15:07:39] <lk4d4> и он только для небольших массивов
[15:08:46] <maksbotan> ну ладно
[15:08:52] <maksbotan> пойду я макароны сварю
[15:08:56] <maksbotan> весь день не ел
[15:09:30] <lk4d4> по-мужски
[15:17:08] <krigstask> Не есть весь день — это как раз по-женски
[15:24:02] <lk4d4> krigstask: видел там парень на хаскеле решил задачку?
[15:24:16] <krigstask> Какую?
[15:24:26] <lk4d4> ну про числа и арифметику
[15:25:06] <krigstask> Сейчас гляну
[15:28:00] <krigstask> Тю, лох я
[15:28:26] <krigstask> 6/(1-(5/7))
[15:28:49] <krigstask> Теперь надо писать (-:Е
[15:40:25] <maksbotan> черт
[15:40:28] <maksbotan> я посолить забыл :(
[15:40:57] <lk4d4> соль вредно
[15:41:46] <maksbotan> а без неё не вкусно
[15:41:53] <maksbotan> предлагаешь мне с голоду помирать?
[16:24:39] <lk4d4> krigstask: а ты mapreduce видал?
[16:30:26] <krigstask> Не уверен
[17:03:07] lk4d4 вышел(а) из комнаты: Replaced by new connection
[17:03:17] lk4d4 вошёл(а) в комнату
[18:45:49] <lk4d4> господа
[18:46:09] <lk4d4> http://clouddbs.blogspot.com/2010/10/googles-mapreduce-in-98-lines-of-python.html
[18:46:23] <lk4d4> взгляните на SynchronizedDict
[18:46:41] <lk4d4> зачем вообще нужна синхронизация, если у нас GIL?
[20:39:43] <lk4d4> бесит меня этот mapreduce
[21:25:06] <maksbotan> а зачем тебе оно?
[21:31:25] <lk4d4> в яндекс опять пойду на собеседование
[21:32:15] <maksbotan> и там это нужно?
[21:33:39] <lk4d4> по ходу да
[21:38:53] <lk4d4> maksbotan: юзал multiprocessing.Queue?
[21:39:02] <maksbotan> вроде да
[21:39:08] <maksbotan> могу даже примеры своего кода поискать
[21:40:04] <lk4d4> давай, что-то я не могу обработать ее пустоту
[21:40:12] <lk4d4> никакого исключения - просто висит
[21:41:26] <maksbotan> https://github.com/maksbotan/mandelgrid/blob/master/worker.py#L78 вот тут покопайся
[21:41:42] <maksbotan> я уже не очень помню как именно оно работает, но всё же
[21:42:14] <maksbotan> скорее даже строка 72
[21:42:56] <lk4d4> спасибо
[21:43:15] <maksbotan> заодно оцени этот код :)
[21:43:25] <lk4d4> угу, ты и не ждешь исключения
[21:43:44] <maksbotan> а они и не должны его кидать
[21:43:53] <maksbotan> суть очереди что она лочит поток когда пуста
[21:43:53] <lk4d4> как это
[21:44:14] <maksbotan> и когда в неё что-то пихают в другом потоке, разлочивает ждущие чтения
[21:44:19] <lk4d4> а, да
[21:44:26] <lk4d4> я таймаут-то и не поставил
[21:44:28] <lk4d4> а надо
[21:45:17] <maksbotan> ну вот
[21:45:31] <maksbotan> а я для определения конца None использовал
[21:45:35] <maksbotan> потому что мало-ли что
[21:45:42] <maksbotan> таймаут и случайно может сработать
[21:46:54] <lk4d4> ловкач
[21:47:26] <lk4d4> while not q.empty(): а пустость все равно проверял
[21:48:07] <maksbotan> это очередь в сторону от мастера к воркеру
[21:48:11] <maksbotan> а обратная как раз с None
[21:48:28] <maksbotan> потому что если эта первая кончилась, то точно воркер может закрываться
[21:48:37] <maksbotan> а если обратная кончилась, значит все ещё работают
[21:58:24] <lk4d4> у Pool отстойная функциональность
[21:59:27] <maksbotan> почему?
[22:03:38] <lk4d4> нельзя несколько аргументов в функцию ему передать
[22:08:00] <lk4d4> for p in map_procs:
[22:08:08] <lk4d4> p.join()
[22:08:10] <maksbotan> ну так тупл передавай, в чем проблема
[22:08:14] <lk4d4> можно так делать?
[22:08:34] <lk4d4> да я знаю, что тупл, проблема в том, что все равно там ерунда какая-то
[22:08:49] <maksbotan> тупл иммютебл, наверно можно
[22:08:54] <maksbotan> я так много с этим не работал
[22:09:44] <lk4d4> не срабатывает почему-то join, а почему черт его знает
[22:09:54] <lk4d4> с одним процессом срабатывает, а с двумя уже нет
[22:10:22] <maksbotan> там что-то пишут что надо terminate() перед join() использовать
[22:11:33] <lk4d4> а если я его жахну до того как он сделает все
[22:12:08] <maksbotan> по-моему терминейт вызывается в каждом процессе чтобы показать что он завершился
[22:13:53] <lk4d4> просто Process.terminate() чтоле?
[22:14:12] <lk4d4> http://paste.pocoo.org/show/516731/
[22:14:21] <lk4d4> вот посмотри у меня там с цикломи
[22:16:21] <maksbotan> ничего я в этом не понимаю
[22:16:58] <lk4d4> и я
[22:16:59] <maksbotan> у меня кстати 38.5 температура, ничего уже не соображаю
[22:17:39] <lk4d4> пффф, ну ложись спать, че засел-то за компом
[22:17:58] <maksbotan> сериальчики смотрю =)
[22:18:06] <maksbotan> я спал сегодня очень много
[22:18:08] <maksbotan> не могу больше
[22:18:19] <maksbotan> к тому же парацетамол принял, жду эффекта
[22:21:18] <lk4d4> не поймешь тредсейф
[22:21:24] <lk4d4> или не тредсейф
[22:24:13] <lk4d4> while not input_q.empty() не всегда катит такая штука
[22:24:32] <lk4d4> успевает процесс подрезать последний объект из очереди
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!