[00:00:05] slav0nic: а что за сайт?)
[00:00:15] red-agent: прожекта одного
[00:00:22] slav0nic: секретный?)
[00:00:26] red-agent: пока да
[00:00:27] red-agent: =)
[00:01:29] slav0nic: кстати django-ads юзал кто? херь для рекламы, мне на сайте надо будет красиво рулить баннерами, но поделку ещё не глядел
[00:02:22] slav0nic: кстати разрабы satchmo советуют под джангу lighttp B)
[00:03:17] Лис: http://www.xakepy.ru/showthread.php?t=29558
[00:03:20] Лис: пиздец
[00:03:58] slav0nic: в чём именно?))
[00:04:07] slav0nic: /me по секрету соадмин вебхака
[00:04:37] Лис: так нахально вылезают упыри
[00:04:43] Лис: ботнетоводы
[00:04:53] Лис: там же и спамеры
[00:04:59] Лис: бляди
[00:05:07] slav0nic: года 3 назаб было немного не так)
[00:05:10] slav0nic: а сейчас...
[00:05:16] slav0nic: тогда было весело)
[00:05:31] slav0nic: были умные люди, а ща умные в тени, а ботоводы - те кто платят
[00:05:35] slav0nic: в основном
[00:06:18] slav0nic: ибо для ботнета нужен пак сплойтов под браузеры, траф(фтп и тп) + бот, + загрузщик + криптор
[00:06:24] slav0nic: а каждый пунтк стоит бабок)
[00:36:30] : This room is not anonymous
[00:36:30] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[00:55:09] red-agent: блядь
[00:55:18] red-agent: джанга слешь добавлять не хочет
[00:55:27] red-agent: несмотря на APPEND_SLASH = True
[00:59:13] xa4a: вроде помогать должно url middleware
[01:01:13] red-agent: 8\
[01:01:15] red-agent: ?
[01:01:22] red-agent: разме не common middleware?
[01:05:46] xa4a: http://hg.piranha.org.ua/byteflow/file/3113a9cae82b/apps/middleware/url.py
[01:05:51] xa4a: вот такое, например
[01:05:51] red-agent: все, глянул в сорс и разобрался
[01:07:15] red-agent: блядский urlresolve таки кривой пиздец
[01:07:21] red-agent: который реально мешает жить
[01:37:27] : This room is not anonymous
[01:37:27] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[02:07:38] : This room is not anonymous
[02:07:38] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[02:37:48] : This room is not anonymous
[02:37:48] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[03:07:57] : This room is not anonymous
[03:07:57] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[03:38:08] : This room is not anonymous
[03:38:08] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[04:08:18] : This room is not anonymous
[04:08:18] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[04:38:27] : This room is not anonymous
[04:38:27] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[05:03:25] red-agent: ох счит
[05:03:30] red-agent: я решил хуйню с sited
[05:03:34] red-agent: *sites
[05:33:38] : This room is not anonymous
[05:33:38] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[06:03:48] : This room is not anonymous
[06:03:48] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[06:33:57] : This room is not anonymous
[06:33:57] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[07:04:07] : This room is not anonymous
[07:04:07] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[07:34:18] : This room is not anonymous
[07:34:18] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[08:00:56] SerG: Народ подскажите, вот есть куча html`ок надо из каждой удалить определенный блок <div ...> ..... </div>. Как это реализовать, в смысле саму функцию парсинга и "вырезания" этого блока? ЗЫ Только начинаю изучать питон
[08:04:21] ffzema: SerG прочитай про строки
[08:04:30] ffzema: изучать все равно нужно
[08:04:36] ffzema: вот и потренируешься
[08:05:03] ffzema: подскажите функцию преобразования кортежа в список
[08:07:46] red-agent: list()
[08:08:07] Муркт: ffzema: тебе тоже изучать нужно :))
[08:08:18] ffzema: изучаю
[08:08:28] ffzema: лист это создание списка
[08:08:35] red-agent: Муркт: бля, дернул черт переделать всю ту херню с тегами на сигналах
[08:08:36] red-agent: ...
[08:08:50] Муркт: ffzema: вот ты попробуй как тебе сказали, а потом возмущайся.
[08:08:57] red-agent: в итоге - я все поломал, и разбираюсь какого черта ничерта не работает
[08:08:59] ffzema: я не возмущаюсь
[08:09:04] Муркт: :)
[08:09:13] Муркт: всё равно попробуй
[08:09:32] Муркт: red-agent: а зачем сигналы? Куда там сигналы?
[08:09:43] Муркт: Бритву Оккама не пытался применить? :)
[08:10:07] red-agent: ну захуярил в модель
entry_count = PositiveIntegerField(default=0, editable=False)
release_count = PositiveIntegerField(default=0, editable=False)
total_count = PositiveIntegerField(default=0, editable=False)
[08:10:14] red-agent: сделал хендлер
[08:10:16] Муркт: аа
[08:10:17] red-agent: для тестинга
[08:10:24] red-agent: и захуярил на pre/post save
[08:10:27] Муркт: денормализация =)
[08:10:28] red-agent: и обломился блять
[08:10:29] ffzema: Муркт работает спасибо
[08:10:32] red-agent: по полной программе
[08:10:51] Муркт: red-agent: а ты уже проснулся, или ещё не ложился?
[08:10:57] red-agent: еще не ложился
[08:11:00] red-agent: всю ночь ебался
[08:11:03] Муркт: маньяк >_<
[08:11:06] red-agent: угу
[08:11:14] Муркт: иди спать
[08:11:19] Муркт: проснёшься - найдёшь багу :)
[08:11:27] Муркт: а так тупо время просыраешь :)
[08:11:32] SerG: А "вырезание" как лучше сделать, создать нов файл, туда все скопировать кроме не нужного блока и заменить оригинальный?

[08:11:50] red-agent: Муркт: да тут тупо пиздец, а не мага
[08:11:51] red-agent: *б
[08:12:08] Муркт: там особая сигнальная магия
[08:12:16] red-agent: попробовал тупо сделать то же через шелл
[08:12:19] red-agent: воссоздать картину
[08:12:26] red-agent: ну, поле на 1 инкрементировалось
[08:12:27] red-agent: кгм
[08:12:30] ffzema: SerG ты мудришь
[08:12:33] red-agent: зато имя - тупо поставилось в null
[08:12:42] red-agent: бля, я просто в шоке
[08:12:59] red-agent: SerG: import re
[08:13:02] Муркт: SerG: если хтмлки не очень большие, то читаешь полностью в память, меняешь, и пишешь в тот же файлик.
[08:13:28] Муркт: ...хтмл большим не бывает.
[08:13:31] red-agent: задница кароче
[08:13:41] Муркт: гм
[08:13:45] SerG: Муркт: они разные могут быть, т.е. надо сначало узнать его размер, узнать скоко доступно памяти и выбирать способ, так

[08:13:53] Муркт: нет
[08:14:02] Муркт: у тебя там есть на пятьдесят мегабайт файлики?
[08:14:10] ffzema: SerG ищешь начало блока, размер блока знаешь, дальше домысли
[08:14:20] SerG: ну таких нет конечно
[08:14:21] Муркт: ffzema: и не так.
[08:14:52] ffzema: по всякому можно
[08:14:55] Муркт: SerG: регэкспы примени. Помощь в стандартном мануале по словам "re (standard module)"
[08:14:55] ffzema: я идею дал
[08:15:04] red-agent: ты хуйню дал =)
[08:15:05] ffzema: ну re конечно
[08:15:09] red-agent: сам сначала питон выучи
[08:15:25] Муркт: ffzema: откуда он знает размер блока?
[08:15:50] ffzema: а что он знает?
[08:16:01] ffzema: если он ищет определенный блок
[08:16:11] ffzema: то он и размер его знать должен
[08:16:26] Муркт: для меня определённый блок - id="special-cased"
[08:16:29] SerG: К примеру я нашел нужный блок, размер блока известен, теперь надо его "выкинуть" из файла, как это лучше реализовать?
[08:16:36] Муркт: SerG: а, даже так
[08:16:49] Муркт: он всегда один и тот же
[08:16:58] SerG: да
[08:18:08] ffzema: >>> text="qwdqwdqw<div>error</div>wdfw fqwef"
>>> pos=find("<div>error</div>")

[08:18:12] ffzema: >>> pos=text.find("<div>error</div>")
>>> text[:pos]
[08:18:17] ffzema: 'qwdqwdqw'
[08:18:27] ffzema: дальше соображай сам
[08:18:33] Муркт: block = """тут пишешь весь свой
блок с энтерами как есть
раз он везде одинаковый"""

result = original.replace(block, '')
[08:18:47] ffzema: :)
[08:18:52] ffzema: да так лучше
[08:19:03] SerG: ага, интересно... спасибо, буду пробовать
[08:19:07] Муркт: ffzema: в питоне не стоит применять сишные конструкции, это выглядит неестественно
[08:19:23] ffzema: ну я с Си++ и перешел недавно на питон
[08:19:30] Муркт: оно и заметно
[08:19:36] ffzema: пережитки прошлого
[08:19:45] ffzema: replace тоже из stl
[08:20:12] ffzema: так что насчет того что это питоновская тоже не согласе
[08:20:14] Муркт: просто в питоне никто не пытается с индексами что-то мутить.
[08:20:26] Муркт: я не говорю, что реплейса больше нигде нет
[08:20:28] ffzema: а с чем мутят
[08:20:46] ffzema: и что естественно
[08:20:57] Муркт: по возможности ни с чем не мутят, а делают всё прозрачно :D
[08:21:04] ffzema: логично
[08:21:10] ffzema: только я тебя не понял
[08:21:11] Муркт: ffzema: то что лучше читается, то и делают
[08:21:15] red-agent: хм, может база corrupted
[08:21:18] Муркт: индексы читаются хреново
[08:21:21] red-agent: ибо я тупо уже ничего не понимаю
[08:21:34] Муркт: red-agent: у тебя какие-то совершенно нетривиальные уже предположения
[08:21:53] Муркт: я один раз думал, какого чёрта у меня БД так долго работает на моих операциях
[08:21:55] red-agent: да я вобще в шоке, что за неведомая хуйня творится
[08:22:08] Муркт: а потом оказалось, что у меня за одну операцию по несколько тысяч запросов уходит.
[08:22:15] red-agent:
>>> from tags.models import Tag
>>> t = Tag(id=1)
>>> t
<Tag: >
>>> t.name
''

[08:22:17] red-agent: смотри
[08:22:20] red-agent: это из шелла
[08:22:23] Муркт: ты опять тупишь
[08:22:27] Муркт: .objects.get(
[08:22:29] red-agent: да ееееббб
[08:22:31] Муркт: а ты создаёшь
[08:22:39] red-agent: сцуко
[08:22:43] Муркт: я ж говорю - иди спать
[08:22:44] red-agent: нада идти спать
[08:22:59] Муркт: ну так прям счас и иди
[08:23:04] red-agent: ага
[08:23:05] Муркт: нечего ждать, лучше не станет :)
[08:23:08] red-agent: и потом тупо не проснусь
[08:23:14] red-agent: с помощи тех, кому прожект делаю
[08:23:15] red-agent: :D
[08:23:19] red-agent: потому, что я нахер все сломал
[08:23:24] red-agent: с этими тегами
[08:23:35] Муркт: оно что, на живом апдейтилось? :)
[08:23:40] red-agent: угу
[08:23:43] red-agent: прямо на живую
[08:23:49] Муркт: ССЗБ
[08:24:07] red-agent: ладно, вопить поздно
[08:24:09] red-agent: нада фиксить
[08:24:54] red-agent: так
[08:24:57] red-agent: с моделью все ок
[08:25:05] red-agent: значит загзвоздка с сигналами
[08:29:04] SerG: original = open("/home/scripts/tests/index.htm", "w") верно?
[08:29:12] Муркт: нет
[08:29:25] Муркт: ты ж его читаешь сначала, а не записываешь.
[08:30:39] SerG: угу
[08:31:10] red-agent: в греп мне логи...
[08:31:13] ffzema: вместо w r
[08:31:15] red-agent: что там за уличная магия
[08:31:20] red-agent: в этих сигналах
[08:31:29] Муркт: хз, намутил чего-то
[08:32:24] Муркт: чем можно сайтмапы проверить?
[08:32:37] Муркт: а то гугль говорит, что у меня в одном ошибка, а как её найти - хз
[08:38:36] red-agent: да мать твою за ногу...
[08:38:41] SerG: А в result = original.replace(block, ''), original эт что?
Лог:
result = original.replace(block, '')
AttributeError: 'file' object has no attribute 'replace'
[08:38:53] SerG: )
[08:38:59] Муркт: original.read().replace
[08:46:11] SerG: а чего не получается записать результат в др файл?
Код:
try:
original = open("/home/scripts/tests/index.htm", "rb")
except IOError, err:
print err.strerror

result = original.read().replace(block, '')
#result = original.replace(block, '')

myfile = open("/home/scripts/tests/index2.htm", "wb")
myfile.seek(0, 0)
myfile.write(result)
myfile.close()

Лог:
sys:1: DeprecationWarning: Non-ASCII character '\xd0' in file ./htmpars.py on line 13, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
[08:50:36] SerG: а, блин пишет все, сорь)
[08:51:18] SerG: но пишет все и не нужный блок тоже
[08:52:08] ffzema: а зачем b при открытии файла?
[08:52:17] ffzema: ты же пишешь в текстовом режиме
[08:52:55] ffzema: и при записи только w оставь
[08:53:39] SerG: да, но эт ща не так важно, важно что записывает с блоком
[08:54:27] Муркт: SerG: убери буквы b.
[08:54:40] Муркт: это может быть важно
[08:55:17] SerG: b - латинская б??
[08:55:26] Муркт: ну в режимах убери бинарный
[08:55:35] Муркт: если поможет, я объясню зачем
[08:55:37] SerG: а)) эт, убрал, тоже самое
[08:56:13] Муркт: разобрался, почему в сайтмапе ошибка была, спасибо ElementTree, который указывает и line, и column :-)
[08:57:13] Муркт: myfile.seek(0, 0) -- нафига вот это? На работоспособность не влияет, но нафига?
[08:57:26] ffzema: SerG твой код работает у меня только без b в режимах открытия
[08:57:57] ffzema: ты только block переменную правильно задай
[08:58:40] ffzema: myfile.seek(0, 0) позиционирует курсор в начало файла
[08:58:49] Муркт: ffzema: он и так в начале файла.
[08:59:57] SerG: хм, вот так у меня.
Код:
block="""
<div class="yandex-money">
.....
....
....
</div>
"""
try:
original = open("/home/scripts/tests/index.htm", "r")
except IOError, err:
print err.strerror

result = original.read().replace(block, '')
#result = original.replace(block, '')

myfile = open("/home/scripts/tests/index2.htm", "w")
myfile.seek(0, 0)
myfile.write(result)
myfile.close()

Все правильно?
[09:00:31] Муркт: SerG: да у тебя там с пробельчиками чо-нить намучено, вот оно и не может его найти :)
[09:01:36] ffzema: код работает
[09:01:44] ffzema: правильно блок определи
[09:01:52] Муркт: и вообще странно - в одном файле делаешь seek(), хоть он и бесполезный, а в другом нет. Один закрываешь, другой нет. Хот на работоспособность это и не влияет
[09:01:54] ffzema: а не выливай сюда свой код
[09:01:57] SerG: а че эт важно!? Надо их убрать (пробелы) или сделать точно так как в файле?
[09:02:02] Муркт: конечно
[09:02:07] Муркт: как в файле
[09:02:13] Муркт: *конечно важно
[09:02:41] ffzema: SerG ты на чем нибудь раньше программировал?
[09:02:42] SerG: млин, ясн
[09:02:49] SerG: паскакале)) дельфи
[09:02:53] ffzema: а долго?
[09:03:00] SerG: достаточно
[09:03:03] Муркт: незаметно
[09:03:07] ffzema: ага
[09:03:26] ffzema: от быдлокодирования совсем мозги думать перестают :)
[09:03:37] SerG: ну хз, как-то с файлами не особо много работал
[09:03:39] SerG: ))
[09:04:09] ffzema: старайся добиваться сам и спрашивай конкретные вопросы
[09:04:26] ffzema: а ты тут всех уже кодом закидал
[09:05:02] SerG: лан, сори)
[09:05:08] Муркт: а ещё можно топик читать
The topic is 'Python.SU | Код постить в dumpz.org |
[09:07:14] ffzema: SerG и если код хочешь вставить, то вставь его тут http://dumpz.org/ и кидай сыда ссылку
[09:07:49] SerG: ок
[09:07:51] red-agent: это не irc
[09:07:53] red-agent: это jabber
[09:07:58] red-agent: тут можна и сюда =)
[09:08:03] red-agent: если код не большой
[09:08:04] Муркт: не надо.
[09:08:06] ffzema: там читабельнее
[09:09:16] ffzema: http://dumpz.org/1598/
[09:09:20] ffzema: приятно посмотреть
[09:09:31] ffzema: разве не так?
[09:09:56] Муркт: Ох, хорошо!
[09:10:22] tek: :)
[09:10:51] SerG: да, я и кидал сюда что кода немного)
Ща проверил с кусочком поменьше, все работает...
[09:11:15] SerG: ffzema: да смотрится)
[09:21:40] SerG: а можно реализовать чтобы эт не зависело от табов и пробелов?
[09:22:17] SerG: больше от табов в начале каждой строки
[09:22:24] Муркт: можно попробовать с регэкспами извратнуться
[09:22:53] Муркт: а иначе - придётся с парсерами возиться
[09:23:04] SerG: а заменить все табы пробелами?
[09:23:30] Муркт: .replace('\t', ' '*4)
[09:23:58] SerG: ок
[09:39:02] SerG: блин в хтмлке в разных местах разная длина таба( похоже из-за этого не работает, себе копирую нужный блок текста, длинные табы заменяються несколькими обычными, почему так....?
[09:47:27] piranha: SerG: табы - зло
[09:51:44] SerG: согласен
[09:51:53] piranha: =)
[10:12:16] red-agent: ять
[10:12:22] Муркт: что ещё?
[10:12:23] red-agent: кто там теги на сигналах делал?
[10:12:32] red-agent: Муркт: да ппц
[10:12:36] red-agent: ща покажу
[10:13:20] red-agent: http://dumpz.org/1599/
[10:13:38] red-agent: old и new по-ходу оказываются одинаковыми
[10:14:07] Муркт: а почему б они были разными?
[10:14:20] red-agent: ну, занбиндено на pre_save
[10:14:30] red-agent: стало быть instance еще не сохранен в базу
[10:14:35] Муркт: red-agent: тэги - м2м?
[10:14:39] red-agent: да
[10:14:53] Муркт: вот.
[10:15:30] Муркт: они в другой момент сохраняются
[10:15:34] Муркт: смотри #5390
[10:15:46] Муркт: red-agent: они ведь в отдельной таблице
[10:15:57] red-agent: ммм
[10:16:12] red-agent: бля,, зря, зря я затеял всю эту херь
[10:16:16] Муркт: ага
[10:17:19] red-agent: ну, отступать тупо некуда =)
[10:17:22] red-agent: нада думать что делать
[10:21:02] ffzema: иногда лучше и отступить если поянтно что это херь
[10:21:52] piranha: ffzema: он не таков
[10:21:56] piranha: :)))
[10:22:16] Лис: ещё пару дней помучается :)
[10:22:46] piranha: http://bash.org.ru/quote/397705
[10:34:34] red-agent: гы
[10:34:36] red-agent: блядь
[10:34:45] red-agent: щас тупо буду пересчитывать все теги
[10:34:46] red-agent: ;D
[10:35:56] piranha: ооочень эффективное решение, ничо не скажешь
[10:36:03] piranha: red-agent: а нафига ты велосипедишь вообще?
[10:36:08] piranha: что в django-tagging не так?
[10:36:45] red-agent: да это прожект на 50% для получение экспириенса =)
[10:36:49] piranha: а
[10:38:34] piranha: 100000 loops, best of 3: 3.41 µs per loop

мю-секунды - это ж микросекунды?
[10:38:41] piranha: а то я шото туплю :\
[10:38:47] piranha: микро == милли/10?
[10:38:48] red-agent: это 10 в 6 кажется
[10:38:58] red-agent: а нано - 10 в 9
[10:39:01] red-agent: или наоборот
[10:39:03] piranha: а милли?
[10:39:04] piranha: 10 в 3?
[10:39:08] piranha: в -3
[10:39:43] xa4a: мили - -3 микро - -6
[10:39:57] piranha: ок, сенк
[10:40:26] xa4a: это по непроверенным данным :)
[10:41:11] piranha: питон:

>>> %timeit file('test').read()
100000 loops, best of 3: 9.4 µs per loop
>>> %timeit os.popen('cat test')
1000 loops, best of 3: 1.33 ms per loop

руби (http://github.com/blog/107-supercharged-ruby-git):

>> require 'benchmark'
>> `touch foo`
>> Benchmark.measure { 1000.times { `cat foo` } }.total
=> 4.51
>> Benchmark.measure { 1000.times { File.read('foo') } }.total
=> 0.04

получается, разница примерно в тыщу раз? o_O

[10:42:05] xa4a: а open('file').read()
[10:42:44] red-agent: piranha: есть предложение насчет более эффективного решения?
[10:42:46] red-agent: с сигналами
[10:42:53] mishok13: руби лох
[10:42:58] red-agent: ато мне нада всю эту херню пофиксить
[10:42:59] mishok13: в смысле скорости :)
[10:43:08] piranha: >>> %timeit open('test').read()
100000 loops, best of 3: 9.34 µs per loop

[10:43:12] piranha: xa4a: один хрен
[10:43:17] piranha: mishok13: ну и синтаксиса тоже
[10:43:29] piranha: red-agent: а я хз, что ты делаешь вообще в данный момент. :)
[10:43:48] mishok13: piranha, синтаксис хз, на любителя
[10:43:49] red-agent: в общем, 2 обьекта относятс к тегам через m2m
[10:43:52] mishok13: но по скорости точно лох
[10:43:56] red-agent: мне нужно считать их кол-во
[10:44:00] mishok13: и без JIT не исправится
[10:44:04] Муркт: piranha: в питоне - 9.41 микросекунды, а в руби - 40 микросекунд, где ты там тыщу раз увидел?
[10:44:05] red-agent: без obj_set.count
[10:44:05] piranha: угу
[10:44:14] red-agent: т.к. это нихуя не удобно и жрет кучу запросов
[10:44:19] piranha: Муркт: в руби - 40 миллисекунд, нет?
[10:44:28] piranha: микро - это ж 0.00009?
[10:44:32] Муркт: да
[10:44:34] piranha: ну
[10:44:42] Муркт: но в питоне написано per loop, а в руби - total
[10:44:50] piranha: Муркт: а бл, реально
[10:44:51] Муркт: подели время руби на тыщу, получишь per loop
[10:44:57] piranha: точно
[10:45:04] Муркт: и будет 4 раза
[10:45:04] red-agent: piranha:
[10:45:37] piranha: red-agent: хм, я могу показать штуку, которую недавно накатал, спецом для хранения количества в родительской модели
[10:45:41] piranha: мож ты её себе присобачишь
[10:45:43] piranha: штуку == филд
[10:45:48] mishok13: Муркт, 4 раза на чтении файла
[10:45:48] red-agent: покажи
[10:45:50] mishok13: вдумайся
[10:46:07] Муркт: да мне то что :)
[10:46:49] Муркт: piranha: ему надо для m2m
[10:47:18] piranha: ну а мне-то шо? Вдруг он чо придумает? )
[10:47:42] piranha: а то я шнягу так никуда и не применил - она требует изменений схемы, а я не уверен, шо хочу её применить
[10:47:55] piranha: а писал для байтфлоу, чтоб кол-во комментов и пингбеков хранить в модели поста
[10:47:58] piranha: http://dumpz.org/1600/
[10:48:38] mishok13: /me почитал про protocol buffers
[10:48:49] mishok13: кто там вчера ляпнул, что это аналог JSON?
[10:49:02] piranha: там правда, есть недоделка - я хотел бы, шоб можно было не только count, но и SUM, и AVG юзать
[10:49:11] piranha: типа, кастомный запрос надо разрисовать
[10:49:30] piranha: щас покажу как юзается
[10:49:40] Лис: mishok13, я сказал "свой json" придумали
[10:49:40] red-agent: да я понял
[10:49:44] piranha: comment_count = AggregateCacheField(CommentNode, generic=True, filter_cond={'approved': True})
pingback_count = AggregateCacheField(Pingback, generic=True)

[10:49:45] red-agent: как оно юзается
[10:49:56] piranha: ну, вдруг нипонял
[10:49:59] piranha: хрен тебя знает
[10:50:01] piranha: )
[10:50:07] mishok13: Лис, ну ты и хуйню ляпнул :)
[10:50:24] Лис: не похож формат на json скажеш?
[10:50:26] red-agent: кароче сигналы - это такая жопа, шо пездес
[10:50:37] mishok13: синтаксис и предназначение -- абсолютно разные вещи
[10:50:47] piranha: red-agent: =)
[10:51:07] mishok13: JSON -- метод сериализации, Protocol Buffers -- язык описания интерфейсов
[10:51:15] red-agent: пол ночи отлаживал всю хуйню - а щас до пизды
[10:51:58] Лис: Developer Guide
Welcome to the developer documentation for protocol buffers – a language-neutral, platform-neutral, extensible way of *serializing structured data*
[10:52:21] Лис: http://code.google.com/apis/protocolbuffers/docs/overview.html
[10:53:14] mishok13: Protocol buffers have many advantages over XML for serializing structured data. Protocol buffers:
...
* generate data access classes that are easier to use programmatically
[10:53:22] mishok13: что и есть IDL, по сути
[10:54:42] Лис: а по названию way of serializing data
[10:54:43] Лис: хихи
[10:54:45] Лис: :D
[11:03:25] red-agent: ну и где этот скотский падонак?
[11:03:33] red-agent: который заикнулся о сигналах
[11:04:31] red-agent: Муркт: а прямо из save() у меня не выйдет?
[11:04:34] red-agent: этот трик
[11:04:47] Муркт: не-а
[11:04:54] red-agent: мне какой-то уличной магией нада получить старые и новые теги
[11:05:35] Лис: red-agent, знаешь как? 1) взять django-tagging...
[11:05:39] Лис: :)
[11:06:18] red-agent: Лис: а кроме пиздежа - предложения есть? :)
[11:06:20] red-agent: здоровые
[11:06:34] piranha: а что значит старые и новые7
[11:07:08] red-agent: ну, это наверное лучше куском кода обьяснить
[11:07:12] red-agent: как я надеялся это сделать
[11:07:18] red-agent: http://dumpz.org/1599/
[11:07:25] red-agent: повесив вот это на pre_save
[11:07:40] red-agent: но как муркт просветил, m2m отношения сохранятся где-то в другом месте
[11:07:42] red-agent: пожже видимо
[11:07:51] Муркт: раньше :)
[11:07:58] red-agent: гммм
[11:08:00] red-agent: не может быть
[11:08:05] red-agent: т.к. я получаю старые теги
[11:08:10] red-agent: [<Tag: testtag1>, <Tag: testtag2>, <Tag: testtag3>]
[11:08:17] red-agent: они были сняты
[11:08:32] Муркт: хмм
[11:09:09] red-agent: хоть pre, хоть post - получаю старые теги
[11:09:32] Муркт: м2м сохраняется в момент изменения
[11:09:45] Муркт: а раньше это сейва, или позже - другой вопрос
[11:10:24] red-agent: ну щас еще попробую прямо из сейва
[11:10:39] red-agent: после super()
[11:11:56] red-agent: блядь
[11:11:59] red-agent: все равно старые
[11:12:31] Муркт: покажи откуда у тебя вызывается сейв, где м2м меняется
[11:12:39] red-agent: def save(self):
super(Entry, self).save()
print self.tags.all()
[11:12:49] red-agent: определено в модели, где tags = ManyToManyField(Tag, blank=True)
[11:12:51] Муркт: это сам сейв
[11:12:59] Муркт: откуда его вызываешь, говорю
[11:13:08] Муркт: где таги меняются
[11:13:19] red-agent: он при редактировании в админке вызывается
[11:13:25] Муркт: а
[11:15:00] Муркт: ну и кто тебе на сигналах посоветовал сделать?
[11:15:14] red-agent: да какая-то сволочь
[11:15:16] red-agent: упомянула
[11:18:15] red-agent: Муркт: я нашел
[11:18:16] red-agent: способ
[11:18:26] red-agent: в __init__ можна получить новые теги
[11:18:37] Муркт: в __инит__? о_О
[11:18:54] red-agent: ага
[11:19:01] red-agent: 8\\
[11:19:14] red-agent: правда я вот сомневаюсь, что там есть правильный entry_set у низ
[11:19:19] red-agent: посему - это бесполезно
[11:19:25] red-agent: видимо
[11:19:54] red-agent: щас попробуем забиндить на post_init
[11:20:02] Муркт: да нифига
[11:21:25] red-agent: кароче че-то получается
[11:21:32] red-agent: в плане просто биндинга
[11:21:45] red-agent: 4(!) раза получаю старые
[11:21:48] red-agent: и один раз новые
[11:26:14] red-agent: Муркт: в общем это без толку
[11:26:21] Муркт: ага
[11:26:51] red-agent: но мне нужно сделать подсчет на стадии сохранения
[11:27:06] red-agent: чтоб не жрать каждый раз queries при запросе
[11:27:38] Муркт: тикет 5390
[11:27:42] Муркт: других путей нет
[11:27:47] Муркт: я не знаю, по крайней мере
[11:54:18] Хрюндель (джангист): Опа, книжечка http://oreilly.com/catalog/9780596515829/
[11:56:55] slav0nic: бляяяяяяттьььььььь
[11:57:00] slav0nic: ненавижу mcedit сука
[11:57:11] slav0nic: скрипт ёбнулся=\ 0 байт мляяя
[11:58:32] plkjm: use vim
[11:59:25] slav0nic: бля по ходу места не было и он хитрожопо записывает
[11:59:49] slav0nic: plkjm, я вим могу юзать только со своими биндами
тыб поюзал вим на солярке и тп)
[12:00:44] mishok13: гы, тут чувак на фриноде исполняет, по поводу ABC :)
[12:01:01] mishok13: в стиле "мине нинужна, значед и вам нинужна"
[12:01:33] plkjm: slav0nic: никто не мешает конфиги перенести :) под солярой юзал
[12:01:50] slav0nic: plkjm, да, на каждый сервак + я там не один хожу
[12:04:13] plkjm: slav0nic: имхо, ставить mc только изза редактора не разумно, учитывая оличество его зависимостей на большинстве дистров
[12:04:14] piranha: slav0nic: и чо, у тебя юзера своего нету?
[12:05:11] plkjm: piranha: да, бывают конторы, где юзеров своих заводить нельзя, всем отделом ходили под одним акком. жесть была
[12:05:16] slav0nic: piranha, блять сильно жирно каждому по юзеру давать)
[12:05:26] piranha: гы
[12:05:27] piranha: лол
[12:05:35] slav0nic: нихуя не лол
[12:05:40] slav0nic: 300серверов больше 100 кодеров
[12:05:41] piranha: лол
[12:05:43] piranha: ржу
[12:05:44] slav0nic: каждому по юзеру?)
[12:05:56] piranha: а слово "лдап" чо, незнакомое?
[12:05:58] piranha: pam?
[12:06:00] piranha: =)
[12:06:16] Лис: видимо нет
[12:06:21] slav0nic: ну ляжет лдам и что)
[12:06:24] slav0nic: п
[12:06:32] Муркт: piranha: это ж приватбанк =)
[12:06:32] slav0nic: +настрой его на каждом серваке
+мне похуй)
[12:07:01] piranha: slav0nic: ну уволицо сотрудник, и шо? Будет знать все пароли нах
[12:07:10] slav0nic: севраки внутренние
[12:07:20] slav0nic: да тут не спорю. тут ваще с этим жопа
[12:07:32] Лис: писец
[12:07:52] slav0nic: ну ёп, мне похуй, еслиб за идеи платили...))
[12:07:57] slav0nic: а так всех всё устраивает)
[12:08:04] slav0nic: и никто не мешает мне кожить на питоне В)
[12:08:22] slav0nic: ёпт) кодить
[12:08:23] Лис: кожить :D
[12:08:37] mishok13: надо бы себе вим настроить, как вот тут -> http://blog.sontek.net/2008/05/11/python-with-a-modular-ide-vim/
[12:09:07] slav0nic: я натсроил)
[12:09:10] mishok13: /me думает, что сразу три едитора настроенные под себя было бы заебись
[12:09:17] slav0nic: только гвим достал тормозить
[12:09:25] mishok13: а то я только емакс начал в порядок приводить, для питона
[12:09:43] mishok13: ничего кроме окамля и схемы за последние 6 месяцев не трогал на нем :)
[12:09:49] xa4a: по линке дополнение не самое Ъ
[12:09:56] xa4a: самое - ropevim'ом
[12:09:57] mishok13: xa4a, а где самое тру?
[12:10:02] mishok13: окей, записал
[12:10:38] Хрюндель (джангист): блин, ещё одна книжка.. http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470259329.html?cid=RSS_WROX_ALLNEW
[12:11:03] piranha: xa4a: ropevim уже хорошо работаешь?
[12:11:05] piranha: *работает
[12:11:11] xa4a: хм.. от чего могут видеодрова так глючить: http://img180.imageshack.us/img180/1808/scrzw2.png
[12:11:22] Муркт: бга
[12:11:25] piranha: интересно, там уже всё заимплементили или ещё нет
[12:11:38] slav0nic: мапять сдохла?)
[12:11:47] slav0nic: блин)) память
[12:12:01] Лис: slav0nic, :)
[12:12:03] slav0nic: xa4a, а ты тоже из команды диванщиков?)
[12:12:15] xa4a: piranha: я только один раз сел его поосиливать. тогда сделал себе дополнение, посмотрел рефакторинговые фичи. вроде работают. сейчас только дополнение пользовал
[12:12:21] mishok13: а кто еще в комманде диванщиков?
[12:12:25] mishok13: кроме пираньи
[12:12:26] slav0nic: пиранья)
[12:12:33] xa4a: /me спалилсо =)
[12:12:42] piranha: )))
[12:13:03] slav0nic: не знаю, на конфе был ещё кто-то в футболке)
[12:13:05] xa4a: но что с дровами-таки сделать?
[12:13:27] Муркт: slav0nic: на шестом эксепшене было много
[12:13:31] piranha: slav0nic: на конфе несколько чуваков было
[12:13:34] Лис: вроде нормальный чувак Alexander Pugachev, а такую пургу гонит в django-rus
[12:17:11] mishok13: http://www.google.com/help/netneutrality_letter.html
[12:27:16] Лис: xa4a, а у тебя не nvidia случайно?
[12:27:27] Лис: а то тут недавно было порно с nvidia дровами
[12:27:39] xa4a: Лис: i810
[12:28:03] Лис: ну тогда наверно точно память подыхает
[12:29:29] mishok13: опача, пиранья статью на доу опубликовал
[12:30:45] Хрюндель (джангист): хде
[12:31:09] mishok13: developers.org.ua
[12:31:11] Лис: а чей проект http://webdev.org.ua/
[12:31:12] Лис: ?
[12:33:13] slav0nic: опять пиранья пор диваны написал))
[12:33:41] piranha: slav0nic: )
[12:33:59] piranha: у меня создаётся впечатление, что ты мне завидуешь
[12:34:10] piranha: непонятно только, по какому поводу )
[12:34:52] mishok13: славоник, наверное, диваны хочет продавать
[12:35:01] mishok13: а майдеко мешает этому грандиозному плану
[12:35:50] piranha: :)
[12:35:59] piranha: slav0nic: ни сцо, украина от них свободна будет ещё долго
[12:37:07] slav0nic: ))
[12:37:27] slav0nic: да если безё стёба то портал неплохой) написал бы сколько вас писал ои тп)
[12:37:42] piranha: а смысл? К меркуриалу отношение слабое :)
[12:37:59] slav0nic: от жеж) продался Ищенку негодяй?)) в блог напиши
[12:38:31] piranha: щас скажу, скока
[12:40:55] Лис: так шо, никто не знает чей webdev.org.ua?
[12:41:18] xa4a: Дмитрий Аркадиевич Маркелов
[12:41:25] slav0nic: не помню, надо порыть по вским конфереция и тп, там думаю там были их представители
[12:41:25] xa4a: его
[12:42:37] xa4a: "Вчера Роман Igrok Настенко, известный украинский блоггер и веб-девелопер, продал созданное им сообщество украинских веб-разработчиков Webdev.org.ua."
[12:42:43] xa4a: http://memoriz.info/2007/10/11/webdev-sold/
[12:43:10] slav0nic: бигмира сайтец по-моему
[12:43:21] slav0nic: там по-моему и капчакиллер тусуется
[12:43:27] Хрюндель (джангист): пойду в налоговую звякну
[12:46:01] mishok13: пилять
[12:46:15] mishok13: Роман Настенко, это ж мой бывший одногруппник
[12:46:18] mishok13: :/
[12:47:00] Хрюндель (джангист): хорошие знания Python или других высокоуровневых скриптовых языков (Perl/C)
[12:47:11] mishok13: гы
[12:47:12] Хрюндель (джангист): Си стал высокоуровневым
[12:47:13] mishok13: C
[12:47:18] mishok13: скриптовый
[12:47:35] Хрюндель (джангист): Век живи, век учись
[12:47:41] xa4a: Хрюндель (джангист): єто ті ни в майдеко вакансию смотришь? :)
[12:47:46] xa4a: *эы
[12:47:51] Хрюндель (джангист): http://webdev.org.ua/node/503
[12:48:01] xa4a: дадада)
[12:48:10] Хрюндель (джангист): xa4a, а это майдеко?
[12:48:23] piranha: ога
[12:48:41] Хрюндель (джангист): а, так вы все тут под одной крышей ходите
[12:48:56] Хрюндель (джангист): Кто ещё в майдеко работает, признавайтесь
[12:48:57] piranha: э?
[12:48:58] xa4a: Хрюндель (джангист): только ты остался..
[12:49:28] mishok13: пиздец, что ж веб то-так котируется
[12:49:35] mishok13: /me расстраивается
[12:49:50] Хрюндель (джангист): если я под вашу крышу пойду, крыша наебнётся сразу ))
[12:50:10] Хрюндель (джангист): я вам покажу что такое говнокод
[12:50:16] Лис: :D
[12:50:50] piranha: slav0nic: в хгшном репозитории сайта mydeco от 16 мая выходит около 40 уникальных чуваков
[12:50:57] Хрюндель (джангист): поиск у вас на сайте будет через icontains
[12:51:04] piranha: где-то 35 человек с количеством строк больше тыщи
[12:51:56] slav0nic: ого)
[12:52:03] Хрюндель (джангист): piranha, так реально с конфы кто у вас ещё работает?
[12:52:10] mishok13: никого
[12:52:13] mishok13: два человека только
[12:52:17] mishok13: так ведь?
[12:52:26] piranha: бля, один человек
[12:52:31] Хрюндель (джангист): и одни робот
[12:52:37] piranha: я ж не работаю там уже 1,5 месяца
[12:52:44] mishok13: piranha, как так?
[12:52:46] Хрюндель (джангист): piranha, а где ты работаешь теперь?
[12:52:54] Хрюндель (джангист): почему не в армии сцуко?
[12:52:57] piranha: плюс ещё посчитайте Севу, он же тоже работал там :)
[12:53:01] piranha: mishok13: уволился :)
[12:53:07] piranha: Хрюндель (джангист): а нигде не работаю =)
[12:53:34] Хрюндель (джангист): piranha, бизнес открыл свой гад.. и не позвал даже
[12:53:46] slav0nic: ))
[12:53:54] piranha: ха, позвал бы, и шо б было?
[12:54:00] piranha: поиск на icontains? =)
[12:54:04] mishok13: чо за lifeflow?
[12:54:06] Хрюндель (джангист): piranha, пиздец бы твоему бизнесу был бы
[12:54:10] piranha: Хрюндель (джангист): :D
[12:54:11] xa4a: piranha: поиск у вас на сайте будет через icontains
[12:54:13] xa4a: :D
[12:54:16] Лис: пипец
[12:54:16] piranha: xa4a: !
[12:54:17] Лис: http://groups.google.com/group/django-russian/browse_thread/thread/218ae20ddcbeb6ee
[12:54:32] Лис: похапэшнеги захватили django-russian
[12:54:49] Хрюндель (джангист): piranha, меня вон лориент в свою фирму устроил почти
[12:54:51] mishok13: http://lethain.com/projects/lifeflow/
[12:54:57] Хрюндель (джангист): piranha, тестовое задание тока надо сделать
[12:55:01] Лис: этож надо бля так
[12:55:07] mishok13: это форк байтфлоу, что-ли?
[12:55:07] slav0nic: mishok13, на пуюа прочёл?)
[12:55:11] mishok13: ага
[12:55:12] Лис: import socket
HOSTNAME = socket.gethostname()
if HOSTNAME == "peroksid-laptop":
MY_LOCAL_SETTINGS
[12:55:28] Лис: /me в полном ахуе
[12:55:49] piranha: ололололо
[12:55:57] piranha: mishok13: не-а, левый проект
[12:56:34] mishok13: странно
[12:57:28] piranha: кто такой Пугачёв?
[12:57:40] Лис: похапэшнег
[12:57:43] piranha: стопудово
[12:57:44] Лис: видимо
[12:57:51] Хрюндель (джангист): бывший или настоящий?
[12:57:58] Лис: это диверсант
[12:58:08] Лис: засланый для подрывной дейтельности в django-russian
[12:58:35] Хрюндель (джангист): ну я свои полномочия в этой группе сложил, меня бурый общеал убить
[12:58:42] Хрюндель (джангист): сцыкотно как то
[13:02:23] piranha: Хрюндель (джангист): гг, а шо ты сделал?
[13:03:36] Хрюндель (джангист): piranha, да вопросик спросил про локализацию.. пару раз так.. в пару местах.. под разными никами..
[13:03:45] piranha: "Сводный обновления напоминанием" - такая тема стоит у писем, которые напоминают
мне о том, что надо домен оплатить
[13:04:06] piranha: пробивает на ха-ха =)
[13:05:14] Лис: piranha, а ну ты задави там всех авторитетом
[13:05:19] Лис: а то мне не верят
[13:05:26] piranha: чему не верят? o_O
[13:05:32] piranha: я ваще отписался от django-russian :D
[13:05:34] slav0nic: работать иди)
[13:05:50] Хрюндель (джангист): piranha, внатуре.. нам тут безработные нахлебники не нужны
[13:05:57] Хрюндель (джангист): piranha, быстро на завод!
[13:05:59] piranha: Хрюндель (джангист): он не мне говорил )
[13:06:06] piranha: Хрюндель (джангист): а тебе, лентяй
[13:06:10] piranha: я и так работаю постоянно
[13:06:18] piranha: сча пойду поработаю над нектарином =)
[13:06:23] slav0nic: ))
[13:06:37] slav0nic: Эмо-*уэмо , готы-х*ты..заводы стоят! пи_дуйте работать
[13:06:52] Хрюндель (джангист): slav0nic, ))
[13:13:12] Лис: In [9]: str(Post.objects.filter(slug__in=['huis']).values('pk').query)
Out[9]: 'SELECT "blog_post"."id" FROM "blog_post" WHERE "blog_post"."slug" IN (huis) ORDER BY "blog_post"."pub_date" DESC'
[13:13:15] Лис: \m/
[13:13:43] Лис: супер-дупер глюк
[13:31:12] slav0nic: блин долбаный пайпал, вместо 32уе пеервёл 64 %) 2 раза 32
[13:35:52] Хрюндель (джангист): slav0nic, опять в блэкджек балуешься?
[13:36:03] slav0nic: хостинг)
[13:38:36] slav0nic: народ, как правильней раздать права на админку
надо чтоб юзер имел доступ только к своим объектам, например есть объект Блог, вот надо чтоб он видел только свои
по дефолту я так понимаю в джанге можно давать права только на объекты в целом
[13:39:44] Лис: никак
[13:39:51] Лис: не довереному народу в админке делать нечего
[13:39:55] Лис: вообще
[13:40:21] xa4a: slav0nic: nfa ?
[13:40:36] Melefaro: в одном учебникеесть пример функции.
def cena(rub, kop=0):
return "%i руб. %i коп." % (rub, kop)
print cena(8, 50)
print cena(7)
print cena(rub=23, kop=70)
почему не работает?
[13:40:44] Лис: xa4a, nfa такое умеет?!?!
[13:40:47] slav0nic: xa4a, а там можно?
[13:41:00] xa4a: вроде, как одна из фич
[13:41:04] slav0nic: Лис, не согласен, если грамотно раздать права то почему бы и нет
[13:41:20] Лис: slav0nic, скажи несогласен разрабам джанги
[13:41:24] Лис: это из слова
[13:41:41] mishok13: Melefaro, и мы магически узнаем, что именно не работает, так?
[13:41:51] mishok13: может подробнее о проблеме?
[13:42:06] slav0nic: rub=23
[13:42:21] mishok13: slav0nic, и чо?
[13:43:05] Melefaro: return "%i руб. %i коп." % (rub, kop)
^
IndentationError: expected an indented block
воот поподробней)
[13:43:14] slav0nic: тю ёб)
[13:43:20] slav0nic: пробел поставь
[13:43:32] Лис: 2
[13:43:33] slav0nic: не о том подумал
[13:43:40] slav0nic: а лучше 4
[13:43:54] Лис: я имел ввиду ещё два
[13:43:56] Лис: +2
[13:43:57] Лис: вот
[13:43:59] Лис: :)
[13:44:02] slav0nic: )
[13:44:26] Лис: Melefaro,
def cena(rub, kop=0):
return "%i руб. %i коп." % (rub, kop)
[13:44:32] Лис: вот так что б было
[13:45:00] Хрюндель (джангист): а лучше u"" не?
[13:45:22] slav0nic: в джанге да)
[13:45:53] Лис: у меня просото в консоле ругнулось про кодировку
[13:45:58] Лис: так шо наверно таки да
[13:45:59] xa4a: slav0nic: насчёт nfa: http://code.djangoproject.com/wiki/NewformsAdminBranch тут в Changed Admin.manager option to more flexible hook ¶
[13:46:04] xa4a: похоже оно
[13:46:18] Melefaro: Лис: посиб,так работает)))что значит %i ?
[13:46:32] slav0nic: ёп)
[13:46:41] slav0nic: xa4a, пасиб гляну
[13:47:02] Лис: Melefaro, http://docs.python.org/lib/typesseq-strings.html
[13:47:07] slav0nic: кстати после добавления нфа в джангу, старые будут работать?
[13:47:19] plkjm: старые сломаются
[13:47:21] Лис: slav0nic, нет :)
[13:47:30] slav0nic: э
[13:47:32] slav0nic: бля)
[13:47:40] plkjm: пиши под новые
[13:47:42] slav0nic: и никак чтоли?)
[13:47:48] slav0nic: лан потом переделаю)
[13:48:10] Лис: можеш мучатся типо если NFA то ведём себя так, else по другому
[13:48:12] Лис: :)
[13:48:21] slav0nic: ну вот я и думал что так будет В)
[13:48:33] slav0nic: типа как с ньюформс, старые ведь остались
[13:49:34] plkjm: slav0nic: админку с NFA сломали капитально
[13:56:24] xa4a: эгмгм.. http://twitter.com/xa4a
[13:56:28] xa4a: ужснах
[13:57:09] slav0nic: лол
[13:57:21] mishok13: http://www.xa4a.net/
[13:57:24] mishok13: ык
[13:58:17] xa4a: это, кстати, не я :)
[13:59:32] mishok13: а ты докажи, что ты не верблюд
[14:00:34] plkjm: http://twitter.com/xa4a хача какая-то
[14:02:05] xa4a: mishok13: оставить фото того, чего у неё определённо нет?
[14:03:21] mishok13: xa4a, фотки не доказательство
[14:03:32] mishok13: пришли свое ухо
[14:04:38] xa4a: ухо не доказательство
[14:05:12] mishok13: доказательство
[14:05:27] mishok13: а хотя да, лучше пришли много денег
[14:05:31] mishok13: пицот тыщ баксав
[14:05:38] mishok13: тогда я тебе поверю
[14:07:43] xa4a: давай email, куда отправлять 8)
[14:08:49] mishok13: bgates@microsoft.com
[14:10:36] xa4a: *пошёл подписал на китайскую порно-рассылку*
[14:13:14] mishok13: бедный гейтс
[14:13:45] plkjm: ему на пенсии надо чем-то заниматься
[14:42:35] ffzema: он себе шлюх за любые деньги купит
[15:06:31] gigimon: привет всем
[15:36:38] : This room is not anonymous
[15:36:38] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[16:06:49] : This room is not anonymous
[16:06:49] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[16:29:33] wing: доброго времени суток. есть вопрос. изложен вот тут: http://python.su/forum/viewtopic.php?id=2322
[16:29:49] wing: хочется услышать мнение веб-разработчиков
[16:30:09] wing: или у всех свои методы, которые никто никому не разглашает? :-)
[16:34:00] plkjm: не понятно, зачем os.chdir('../../') если вызываться будет code.py из корня и модули в него же импортироваться будут? достаточно из модуля from config import *
[16:34:57] wing: plkjm, да. это я уже разобрался. просто шелл питона запускал не из той директории
[16:35:08] plkjm: ))
[16:35:30] wing: отредактировал
[16:35:40] wing: а что по поводу самой структуры
[16:37:19] Лис: wing, тут мало кто имел дело с web.py
[16:37:32] Лис: но slav0nic вот точно имел :D
[16:37:36] wing: Лис, а что нынче популярно?
[16:37:39] Лис: так шо давай slav0nic, рассказывай
[16:37:45] Лис: wing, django
[16:37:46] Лис: :)
[16:37:47] plkjm: wing: php
[16:37:55] Лис: а, дада
[16:37:56] Лис: точно
[16:37:57] Лис: php
[16:38:01] wing: да что у гугла не спроси - кругом посты slav0nic )
[16:38:02] slav0nic: та пишу
[16:38:03] Лис: это я опечатался просто :))
[16:38:18] wing: жоте )
[16:38:33] plkjm: =0
[16:38:35] plkjm: =)
[16:39:39] wing: /me подумал "еще один замаскированный php-шник"
[16:40:02] Лис: окружают блин
[16:40:08] slav0nic: ну я ответил как я делал
[16:40:29] Лис: и в django-russian их уже больше чем самих джангистов :)
[16:40:50] Хрюндель (джангист): Ударим питончиком по говнокоду!
[16:40:55] slav0nic: ))
[16:41:01] plkjm: ура!!!
[16:41:23] mishok13: говнопитонокод тоже существует
[16:41:27] wing: slav0nic, thx!
[16:41:32] Хрюндель (джангист): mishok13, в моём лице ))
[16:41:39] wing: mishok13, говнопитонкод - это про меня )
[16:41:55] (ZioN,): +1
[16:41:55] wing: "but I'm trying, Ringo.. I'm trying so hard.."
[16:41:56] (ZioN,): =)
[16:42:04] slav0nic: wing, а вообще глянь код автора вебпи
[16:42:21] wing: slav0nic, например, какой? сам web.py?
[16:42:43] slav0nic: опенлиб, infoчёт там - вики типа
[16:42:48] slav0nic: я в блоге писал
[16:42:50] slav0nic: забыл
[16:43:11] wing: я infogami смотрел. чесно говоря ниасилил, но посмотрю еще раз )
[16:43:23] slav0nic: угу
[16:43:34] slav0nic: меня не прёт такой стиль
[16:45:52] Хрюндель (джангист): Ещё 1 час и 15 минут
[16:46:31] plkjm: Хрюндель (джангист): ты к чему?
[16:47:15] slav0nic: до конца раб дня)
[16:48:40] Хрюндель (джангист): до запуска большого адронного коллайдера..
[16:48:56] plkjm: наконец то!!
[16:48:59] Хрюндель (джангист): slav0nic, угу.. и завтра ещё денёк
[16:49:24] Хрюндель (джангист): а потом не море, бабы и пиво.. а тестовое задание от фирмы лориена ))
[16:49:34] slav0nic: )
[16:53:17] Лис: хохо
[16:53:18] Лис: http://www.opennet.ru/opennews/art.shtml?num=16881
[16:55:27] Хрюндель (джангист): Лис, це кто? Пираныч?
[16:55:34] Лис: угуг
[16:55:49] slav0nic: диваны?)
[16:57:51] slav0nic: шота он пропал, видать пошёл купаться в лучах славы)
[16:59:45] mishok13: ждем новости на лоре
[16:59:55] Лис: :D
[16:59:57] Муркт: зачем новость на лоре?
[16:59:59] Лис: тем обосрут
[17:00:14] Лис: как обычно впрочем
[17:00:21] mishok13: потому что там обсырают всё
[17:00:25] mishok13: кроме лиспа
[17:00:42] mishok13: и прочих маргинальных вещей
[17:00:49] mishok13: Inferno, к примеру
[17:01:09] Лис: меня слово лисп захайлайтило о_О
[17:01:15] mishok13: ыы
[17:02:00] Муркт: глист
[17:03:21] mishok13: лист
[17:03:26] mishok13: лисица
[17:03:47] Лис: тупой гаджим :(
[17:04:26] Большой Лис: а так никогда не хайлайтится, даже если ко мне обращаются
[17:04:28] Большой Лис: :/
[17:04:36] Муркт: жылис у бабуси, два-с весёлых гуси
[17:05:10] Муркт: Большой Лис: даже вот так?
[17:05:16] Муркт: тупой гаджим
[17:05:21] Большой Лис: неа, не зайлайтится
[17:05:30] Большой Лис: s/з/с/
[17:05:35] Большой Лис: блин
[17:05:39] Большой Лис: s/з/х/
[17:06:21] Хрюндель (джангист): Большой Лис, хайлайт это для лохов.. чоткие пацаны сразу секут когда им пишут
[17:15:22] Хрюндель (джангист): Большой Лис, кстати у тебя такое на винде?
[17:16:10] slav0nic: я вот не пойму, чего ДОУ не съедет с вордпресса?
[17:16:30] Хрюндель (джангист): ДОУ? Хто это?
[17:16:36] slav0nic: developers.org.ua
[17:16:43] slav0nic: а то и пилоны и рнр брр
[17:16:47] Муркт: slav0nic: не хватает программистов, чтоб съехать
[17:16:48] mishok13: наверное, еще не написали блог без фреймворков
[17:16:48] Муркт: ййй
[17:16:49] slav0nic: и джангу по-моему хотели
[17:16:53] Муркт: что тормозит
[17:16:59] mishok13: WSGI, все дела
[17:17:07] mishok13: фреймворки для лузиров
[17:17:08] Муркт: mishok13: блог без фреймворков - это не ДОУ, а Щетинин
[17:17:21] Муркт: Щетинин к ДОУ отношение имеет постольку поскольку
[17:17:21] slav0nic: дык, я не вижу сложности в минимально необходимом ф-ционале
[17:17:32] mishok13: Муркт, ай ноу, но цинично пошутить низзя что-ли?
[17:17:45] Муркт: mishok13: я думал, ты не в курсе :Р
[17:17:55] mishok13: славоник, есть, видимо, другие задачи
[17:17:57] mishok13: более важные
[17:18:01] Муркт: slav0nic: ну и что? Я тоже сложности не вижу. Но это время
[17:18:04] mishok13: вордпресс им не мешает
[17:18:05] Хрюндель (джангист): и глабльные
[17:18:09] Муркт: тормозит что-то у меня :-\
[17:18:30] Большой Лис: Хрюндель (джангист), чочо на винде?
[17:18:45] Хрюндель (джангист): Большой Лис, хайлайтинг не пашет на винде?
[17:18:53] Большой Лис: нет, в линуксе
[17:19:24] Хрюндель (джангист): Большой Лис, я пытаюсь вспомнить работает ли у меня хайлайтинг.. помню ведь когда то работал.. щас на работе в винде точно не пашет
[17:20:06] Большой Лис: если уберу пробел из ника
[17:20:08] Большой Лис: всё пашет
[17:20:21] Хрюндель (джангист): Так замени его на андерскор..
[17:20:32] Хрюндель (джангист): slug сделай из ника
[17:20:48] Большой Лис: сам ты...слаг
[17:20:51] Большой Лис: :D
[17:50:57] : This room is not anonymous
[17:50:57] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[18:21:08] : This room is not anonymous
[18:21:08] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[18:37:43] Boo: всем привет
[18:42:17] boo: забыл, подскажите, как URL отформатировать, чтобы юникод в урле стал процентами и цифрами?
[18:42:21] boo: срочно надо
[19:12:30] : This room is not anonymous
[19:12:30] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[19:42:38] : This room is not anonymous
[19:42:39] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[20:12:49] : This room is not anonymous
[20:12:49] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[20:18:30] red-agent: /me поспал
[20:18:46] red-agent: а теперь нужно фиксить тот бардак, который я вчера натворил
[20:19:00] Муркт: =)))))))))))))
[20:19:32] Муркт: red-agent: Special street magic to the rescue!
[20:19:47] red-agent: yuP!
[20:20:57] Муркт: red-agent: когда встретишь того, кто предложил тебе считать количество м2м связей с помощью сигналов - навешаешь ему люлей :)
[20:21:14] red-agent: угу
[20:21:20] red-agent: если я щас все это быстро не пофиксю
[20:21:23] red-agent: люлюей навешают мне
[20:21:25] red-agent: :D
[20:21:27] Муркт: . o O («- Ну навешай мне, навешай! - Говори точно, сколько вешать.»)
[20:21:33] red-agent: да таких, которых я еще видел
[20:21:38] Муркт: короче
[20:21:44] Муркт: джангу можешь патчить?
[20:21:53] red-agent: нет, трогать сорс не ваиант
[20:22:02] Муркт: там backwards-compatible
[20:22:08] Муркт: остальной код ничего не заметит
[20:22:18] red-agent: проблема не в этом
[20:22:26] Муркт: тогда всё плохо.
[20:22:44] Муркт: /me думает.
[20:23:12] Муркт: red-agent: а положить джангу рядом с самим проектом?
[20:23:21] red-agent: хм
[20:23:31] red-agent: а что за патч?
[20:23:33] red-agent: тот тикет?
[20:23:35] Муркт: 5390
[20:23:36] Муркт: да
[20:23:50] Муркт: он даёт сигналы для м2м
[20:24:30] Муркт: о.
[20:24:42] Муркт: red-agent: идея тупая, но тем не менее
[20:25:24] Муркт: red-agent: смари. Ловишь pre-save, и ставишь *_count в None
[20:25:54] Муркт: по первому доступу - если у тебя *_count == None, идёшь их считаешь и сохраняешь число.
[20:26:24] Муркт: red-agent: как тебе?
[20:26:41] red-agent: ну должно выглядит рабочим
[20:28:14] Муркт: red-agent: ничего лучше не придумывается, а реализуется легко и быстро :)
[20:28:35] Муркт: да и работать должно достаточно быстро, вроде.
[20:28:39] Муркт: бля
[20:28:47] Муркт: оно не будет работать
[20:29:04] red-agent: потому, что entry_set все еще не тот будет
[20:29:05] red-agent: =)
[20:29:05] Муркт: мы ж на каждом pre_save ставим в None.
[20:29:14] Муркт: вот херня >_<
[20:29:17] red-agent: у меня появилась еще одна идея
[20:29:23] red-agent: твоя мысль навела меня на нее
[20:29:26] red-agent: щас попробую
[20:29:34] Муркт: озвучь
[20:29:40] red-agent: тупо в пост_инит сохранить обьекту новые теги
[20:29:48] red-agent: а на пост сейве - пройтись по ним
[20:30:05] Муркт: чочо.
[20:30:16] red-agent: ну, в пост_инит можна получить новые теги
[20:30:24] red-agent: но там entry_set у них еще неправильный
[20:30:29] Муркт: red-agent: прикол в том, что м2м-связи через админку сохраняются после сейва.
[20:30:37] Муркт: насколько я понял
[20:30:42] red-agent: гмм
[20:30:52] red-agent: ну, попытка не попытка
[20:30:55] red-agent: щас попробую
[20:30:59] Муркт: попробуй
[20:31:06] Муркт: но я придумал, как зафиксить свою идею
[20:31:29] Муркт: когда выставляешь количество - то это совершенно определённый сейв, который только выставляет количетсво
[20:31:46] red-agent: угу
[20:31:54] Муркт: поэтому, можно поставить объекту какой-нибудь флаг типа _do_not_clear_count
[20:32:16] Муркт: а в pre-save, если этот флаг есть - просто его сносить (на всякий случай), но не выставлять количества в None
[20:32:51] red-agent: тоесть без патча тупо не вариант?
[20:33:01] Муркт: ну вот так как я написал - вариант
[20:33:15] red-agent: хмхм
[20:33:17] Муркт: с патчем работать будет не быстрее, просто красивее выглядеть будет
[20:33:41] red-agent: мне тут еще пришла в голову идея
[20:33:45] red-agent: а если не пересчитывать
[20:33:51] red-agent: а тупо инкрементом\декрементом
[20:33:53] red-agent: ?
[20:34:09] Муркт: а ты не знаешь, когда и что надо инкрементить/декрементить
[20:35:44] red-agent: ну я могу получить старые и новые теги
[20:35:52] red-agent: одни через инит - другие через пост_сейф
[20:36:02] Муркт: это гораздо более грязный хак
[20:36:09] red-agent: (правда те, которые в ините - я почему-то 4 раза получаю)
[20:36:11] Муркт: и ты потом не поймёшь чё это всё такое
[20:37:08] red-agent: ладно, попробуем твой вариант без патча
[20:37:17] red-agent: я правда слабо понял, в чем он заключется
[20:37:32] red-agent: точнее, в какой момент этот флаг сувать
[20:37:47] Муркт: red-agent: флаг суёшь, когда высчитываешь количество
[20:43:26] red-agent: дык количество-то я высчитываю на post_save
[20:43:39] Муркт: ты читал што я написал? :)
[20:44:00] red-agent: аа
[20:54:05] red-agent: Муркт: а когда я вот допустим меняю теги, на Tag .save() вызывается?
[20:54:13] red-agent: или там отношения как-то по-другому ставятся?
[20:54:17] Муркт: когда меняешь м2м?
[20:54:25] red-agent: да
[20:54:30] Муркт: нифига не вызывается
[20:54:40] red-agent: а что вызывается?
[20:54:52] Муркт: вот с 5390 - несколько сигналов есть на эту тему
[20:54:55] Хрюндель (джангист): http://www.sports.ru/docs/vacancy.html
[20:55:07] Муркт: а так - там внутри всё прокручивается
[20:55:12] Хрюндель (джангист): Опыт разработки php, python – как плюс.
[20:55:39] Хрюндель (джангист): хмм.. неплохо неплохо.. о питончеге знают
[20:57:22] red-agent: http://code.djangoproject.com/attachment/ticket/5390/related.field_name.diff
[20:57:29] red-agent: Муркт: вот это накладывать?
[20:58:02] Муркт: гмм, а не ошибсо ли я?
[20:58:10] Муркт: у меня не резолвицо
[20:58:17] Муркт: так что пока не могу сказать
[20:58:37] red-agent: ну по виду - судя то, сигналы те, что нада
[20:58:47] Муркт: значед оно
[20:59:33] red-agent: гм, а если переписать менедже?
[20:59:34] red-agent: m2m
[20:59:49] red-agent: и присобачить его к Tag
[20:59:51] red-agent: ?
[21:00:05] Муркт: шой-то ты такое говоришь...
[21:00:07] red-agent: тоесть к Entry
[21:00:08] Муркт: феерическое
[21:00:27] Муркт: теоретически можно, да.
[21:00:33] red-agent: ну, не переписать, а просто добавить к def _remove_items
[21:00:42] Муркт: ну если получится быстро - дерзай ;)
[21:01:05] Муркт: я переписывал один раз себе, но у меня гораздо больше изменений было.
[21:07:54] red-agent: а если взять этот патченный ManyRelatedManager, его можна прицепить к отдельному m2m полю?
[21:08:01] red-agent: тоесть сунуть себе в проект
[21:10:47] red-agent: Муркт:
[21:10:59] Муркт: читаю
[21:11:22] Муркт: ты можешь сделать сабкласс от поля, и ему подсунуть менеджера нужного
[21:11:34] Муркт: может по-другому и можно, я не знаю - я делал именно так
[21:11:45] Муркт: потому что мне всё равно нужен был сабкласс поля :)
[21:11:46] red-agent: это мне подходит
[21:12:10] red-agent: теперь как бы получить этот менеджер целиком
[21:12:12] red-agent: без патчинга
[21:12:15] red-agent: ато там только diff
[21:31:52] red-agent: Муркт: у тебя часом патченный не завалялся где-то?
[21:32:03] red-agent: хотя пофиг
[21:32:12] red-agent: вытяну и пропатчу
[21:33:18] Муркт: red-agent: завалялись
[21:33:25] Муркт: выложить на дампз?
[21:33:34] red-agent: ага
[21:33:35] red-agent: plz
[21:34:06] Муркт: http://dumpz.org/1604/
[21:35:32] Муркт: и http://dumpz.org/1605/
[21:36:27] red-agent: ога, 10х
[21:40:29] red-agent: ладно, щас пропатчу джангу
[21:40:33] red-agent: и будь что будет
[21:40:41] Муркт: :))
[21:41:12] red-agent: бля, какого черта этот тикет в trunk не мержнули?
[21:41:37] Муркт: без понятия
[21:42:54] red-agent: done
[21:43:04] Муркт: red-agent: я подымал этот вопрос в django-dev
[21:43:07] Муркт: но мне никто так и не ответил
[21:43:12] red-agent: сцуке
[21:43:27] Муркт: надо апдейтнуть патчик...
[21:43:29] red-agent: я приду и всем пропишу пропиздола
[21:43:44] Муркт: и добавить что-то типа ENABLE_M2M_SIGNALS в настройки
[21:43:47] red-agent: я требую кароче патч в транке
[21:43:54] red-agent: так
[21:43:58] red-agent: пропатчить я пропатчил
[21:44:01] Муркт: до 1.0 его там точно не будет
[21:44:15] red-agent: вешать теперь на сигналы?
[21:44:23] Муркт: да
[21:44:28] Муркт: теперь там всё честно :)(
[21:45:25] red-agent: 15 m2m_remove_items = object()
16 m2m_clear_items = object()
[21:45:30] red-agent: в чем разница?
[21:45:32] red-agent: Муркт:
[21:45:43] Муркт: clear сносит дедушке яичко
[21:45:47] Муркт: напрочь
[21:46:04] red-agent: тоесть мне на remove?
[21:46:06] red-agent: или на оба лучше
[21:46:07] Муркт: а remove - определённые, и передаёт список чего же оно конкретно сносит
[21:46:14] red-agent: ага
[21:46:17] Муркт: на оба
[21:48:46] Муркт: /me посмотрел сегодня на курс доллара
[21:48:51] red-agent: ггг
[21:48:59] red-agent: скорее то, что от него осталось
[21:49:01] Муркт: Хорошо что я договаривался на заказ в гривнах.
[21:49:30] Муркт: Теперь я "поддерживаю отечественного производителя"
[21:50:09] Муркт: гмм
[21:50:21] Муркт: отечественный деньгопечатный станок
[22:04:12] Патриот: cicero можно где-нибудь скачать?
[22:34:18] : This room is not anonymous
[22:34:18] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[22:39:15] Муркт: да, у маньяка
[23:09:18] : This room is not anonymous
[23:09:19] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[23:37:16] xa4a: хм.. пиранья на опеннете