Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/HatПрошлый: >>671902 (OP)2.х или 3.х: 3
2.x или 3.x: ruby
heroku или openshift
>>677892Рабидаун, спешите видеть. Как там мамкины борщи?
>>677894Красные и несъедобные. Как раби.
https://github.com/andrewgodwin/channels/Анонасы, после введения channels в джангу сможем ли мы использовать ее для полноценного риалтайма?
>>677920Какие выгоды перед например раздельным использованием aiohttp?
>>677920Хм я что-то такое видел тыщу лет назад для джанги.Выглядит как костыль. Но посмотрим.
Как проверить был ли запущен цикл? Я сначала понадеялся на for x in l:..passelse:..print('empty')Но else в for совсем другое делает, наоборот выполняясь только когда цикл завершился без break.
>>678402for x in l:....print('Внимание! Цикл в работе!')А если серьезно, то непонятно чего ты хочешь.
>>678416Мне нужно совершить действие если цикл не прошелся по списку ни разу. Можно конечно сделать (в случае с пустым списком)if l:..for x in lelse:..print('empty')Но нет ли чего более питоничного?
>>678426и так питонично у тебя>Explicit is better than implicit.не забывай
>>678454Не хочу лишнюю строчку с ифом.
>>678426Прочитай уже документацию по foreach дибилушка
>>678460Нахуй путешествуй.
>>678456То есть лишняя строчка с else тебе не беспокоит, а if not i: print(empty) неприятна. Не понимаю я этой неприязни к if.
>>678475Если бы for else выполнялся при неудачном for, а не наоборот, то было бы всего 2 дополнительных строки - сам else и действие. А так еще if добавляется. Целых три.
>>678477if l: print('empty')for x in l:....passИ зачем тут else?
>>678480>if not lВот так, вернее.
>>678480А, ну да. Ты прав.
Чем вы пишете GUI?
Ебать вы тут треды быстро перекатываете.Ребята, правильно делаю, что ебашу конспект с кодакадеми ?Решил начать учить с кодакадеми, а то я не понял первую же задачку из книги укус питона
Почему модуль re в питоне ведет себя так странно?Дело такое: есть файлики с кучами многострочных сообщений выдранных из ватсапа: 06.03.2016, 18:25 - ХУЙ1-: IMG-20160306-WA0252.jpg (файл в приложении) Скв 777. 18.05 06.03.2016, 18:25 - ХУЙ1-: IMG-20160306-WA0251.jpg (файл в приложении) Скв 777 18.10 06.03.2016, 18:54 - ХУЙ1-: IMG-20160306-WA0311.jpg (файл в приложении) Нет дороги на Скв 666 и 555. 18.50Выдираю имя файла и текст вот такой регуляркой:re.match(r'[0-9]{2}\.[0-9]{2}\.[0-9]{4}, [0-9]{2}:[0-9]{2} - .: IMG-([0-9]{8}-WA[0-9]{4})\.jpg \(.?\)\n(.*)?', text, flags=re.S).groups()Какого-то хуя питон 2.7 возвращает только последнюю строку. Если проверяю регулярку в sublime text, то там выделяются все строчки с файлами. Таки где я наебался?
Реквестирую интерактивный отладчик с гуём.
>>678628pygi
>>678653pyscripter
>>678711+совмещенный с блокнотом, да
>>678711Пользовался им когда только начинал в питоне, лет 6 назад. Постоянно сталкивался с какими-то проблемами в кодировке, в итоге перешёл на Geany. Да и плюс ко всему он только для винды.
>>678675А почему не PyQt?
>>678730Потому что я только под прыщи гуй пишу и использовать монструозный и уродливый куте смысла не вижу, но если речь о кросплатформе то кроме pyqt вариантов нету.
Сейчас пилю на PyQt. Все достаточно мило выглядит. И несложно делать.
>>678786Кути - убогое, раздутое наследие крестов, пользователи которых без кутей как без костылей. Там и qstring и qbytearray и qint и qlist и qwebkit и qopengl и qnetwork и qsql и qsky и qallah. Собственно от байтослесарей форс этих костылей и идет. В нормальном языке кути не дают абсолютно ничего кроме раздувания проекта до уровня жабы. И что самое забавное - это пустая вонь и хайп, примерно как от руби. Большинство софта все равно пишут на gtk.
>>678801Интересно.
>>678801Может ты и прав. А на чем писать gtk?
Вот я и нашел вас, суки! Хули вы мне пиздели, что ваш Питон годен для всего? Ну вот изучил я его базовый синтаксис, чтобы накидать себе небольшой скриптик. И что же я вижу? А то, что эта хуета обрабатывает мне 30 Мб файл аж 8 минут! 8 минут, Карл! Я сперва подумал, что зря я вызываю file.write() пару миллионов раз хотя там все-равно буферизация должна быть и закомментил все IO вызовы. Однако затраты времени уменьшились лишь до 2-х минут.Запостил вот главный цикл, чтобы вы взглянули, ибо допускаю, что сам дурак:- код с четением/записью в файл - http://pastebin.com/7JpCGRGr (8 минут, входной файл 30 Мб)- код без работы с файлами - http://pastebin.com/AB05yYhP (2 минуты)Если что, запускаю на ультрабучном i7 (2.5-3.1 ГГц), а пишу на SSD (r/w speed 1000/300 МБайт/с). Пиздец. У меня микроконтроллер на Си быстрее бы эту хуйню посчитал.
>>679022Весь код давай, ёпта. По этим кускам ничего не скажешь, это раз. И никто вот такinputFile.read(2)не делает. Читаешь весь файл в строку и работаешь с ней. Ещё бы не 8 минут оно читало, по два байта то.
Как смотреть время выполнения скрипта?
>>679027time ./script.py
>>679022https://docs.python.org/3.5/library/struct.html
>>679026>Читаешь весь файл в строку и работаешь с нейОхуеть. А если у меня там 10-ти гиговый файл? Алсо, там буферизованный ввод/вывод должен быть по дефолту, судя по докам.>>679026>Весь код давай, ёпта.Ну ладно: http://pastebin.com/MrduVd9M
>>679029спс
>>679032Ты бы на каждой строчке ещё try напихал. Применение его там, где не нужно - очень плохая практика. В блоке try-except оставь только операции открытия/создания файлов, а всё остальное вынеси наружу.
>>679031>This module performs conversions between Python values and C structs represented as Python bytes objectsНо мне на биты надо разбивать, а там про это нет ничего или я просто в глаза долблюсь.
>>679051>Применение его там, где не нужноНо мне оно нужно там! Без try мне пришлось бы городить двухуровневый if, плюс при использовании try, блок finally закроет мне все файлы, если я внезапно решу выбросить ошибку где-нибудь уже после открытия файлов.
>>679057>Но мне оно нужно там!Зачем?>Без try мне пришлось бы городить двухуровневый ifЗачем?>блок finally закроет мне все файлы, если я внезапно решу выбросить ошибку где-нибудь уже после открытия файловЕсли перепишешь нормально, то ничего не выбросит.
>>679060>>Без try мне пришлось бы городить двухуровневый if>Зачем?Затем, что там происходит две проверки: на правильный аргумент и на правильную длину файла. Если понадобиться проверить что-то еще, то будет и третий и четвертый уровни. Блоки try тащемта для того и придумали, чтобы не городить вложенность.>>679060>Если перепишешь нормально, то ничего не выбросит.1. write/read может выбросить ошибку. В нормальныхдругих языках io-функции вообще вне try-блоков вызывать нельзя.2. Я сам в будущем могу решить добавить какую-либо проверку и хочу быть уверен, что произойдет закрытие файлов в случае ее не выполнения.Алсо, напомню, что проблема сейчас заключается в скорости, а не корректности обработки ошибок.
>>679065Блоки try придумали, чтобы возникшие ощибки обработать, а не чтобы заменять ими ifы, которые могли бы эти ошибки предотвратить. Не хочешь убирать try - страдай, или переписывай на крестах.
Байтослесари не могут в программирование. Впрочем, ничего нового.
>>679068>Не хочешь убирать try - страдайА какое собсно отношение try имеет к скорости выполнения программы? Если исключение не выбрасывается в каждой второй строчке а у меня оно не выбрасывается, то и снижения производительности из-за исключений быть не может.
>>678640https://docs.python.org/2/library/re.html#re.match
>>678480>И зачем тут else?вообще то много раз слыхал что проверять ситуацию ДО действия это не питонично. Мол, надо делать, а там уже куда кривая американской мечты.В этом случае for-else выглядит будто Гвидо сам начертал
>>679107>вообще то много раз слыхал что проверять ситуацию ДО действия это не питонично.Есть такое, типа экспешн обрабатывайте лучше, а не проверки на всё возможно делайте, но лично мне это не нравится, например.Однако, for-else для совсем другого сделан.
>>679102>https://docs.python.org/2/library/re.html#re.matchнахуй пошел>>679051>ы бы на каждой строчке ещё try напихал. Применение его там, где не нужно - очень плохая практика.ты должен это пруфануть или обосновать.
>>679111>нахуй пошелКек, насколько зол, что уже видишь плохо? Этот пост был адресован анону с регэксп-проблемой.
>>679068>Блоки try придумали, чтобы возникшие ощибки обработать, а не чтобы заменять ими ifы, которые могли бы эти ошибки предотвратитьРовно блять наоборот.
>>679112>Кек, насколько зол, что уже видишь плохо? Этот пост был адресован анону с регэксп-проблемой.Ну, я когда скролю и вижу ответы с тупой отсылкой в доки/гугл то рвусь. Даже не глядел на контекст.
>>679118Ну и дурашка.
>>679032>Охуеть. А если у меня там 10-ти гиговый файл? А в чёс проблема делать десятигиговый на маленькие 30-мегабайтовые?В любом случае, чтения не такая проблема - у меня за 10-20 секунд по два байта читается 32мб файл (ультраслоу компьютер)Оптимизируй свои операции по выискиванию нужных битов. Например, задействуй видео-карту, она как раз любит миллионы одинаковых и независимых действий - https://mathema.tician.de/software/pyopencl/
>>677892Haskell.
Котики подскажите, а как у питона дела с разработкой мобильных приложений? Удобно ли?
>>6786401. Тебе нужно findall использовать2. Зачем такой ебанутый регэксп? Неужели проще нельзя? Если не IMG.#\.jpg, то уж хотя бы (.#?: )(.#?\.jpg) [# - это звёздочка]
>>678636Можешь (и наверное это и лучше всего) параллельно кодекадеми просто Луца читать по темам - этот сучёнок разжуёт так что не понять невозможно
>>679193Спасибо, хоть кто-то ответил
>>679118Да, ведь твой pront вместо print или неверное использование функции это ахуеть проблема, и обязательно нужно править именно твой код, ведь ты, долбоеб, не удосужился почитать что пишут в доках/выдает гугл.
А что там насчет работы с многопоточными брутами 500-1000 потоков? Если есть мысли как такое сделать на питоне (кроме костылей с 30 процессами по 30 потоков), с удовольствием выслушаю
>>678801Ну, можно не использовать 90% qt. Только окошки, виджеты, модели-вьюхи. Остальное-то в пифоне заебись. Или твой бомбинг из-за размера бинарников? Тогда вообще странный аргумент.
>>679264Это не костыли, это GIL. В гениальном раби так же, например.
>>679267Не, ну а как например в С/С++ можно сделать, без костылей этих?
>>679271Если один твой брут не жрет по минуте процессорного времени а зависит от io, то делается легко с помощью asyncio. Если надо что-то считать с труЪ многопоточностью то мультипроцессинг.
>>678636Зачем ты учишь устаревшую версию? Ты что, ебанутый?
>>679278А где и какая новая ?
>>679057Конструкция with..as сама закроет. Нужно лишь прочитать весь файл целиком.
>>679032Похоже на типичную ошибку join'а строк.
>>679288Что за ошибка?
Хочу выучить питон, неплохо знаю джаву, поэтому посоветуйте с какой книги стоит начать?
>>679283>Конструкция with..as сама закроетА 16 файлов для записи она мне тоже закроет в случае какой-либо ошибки?>>679288>на типичную ошибку join'а строкНо я их не джоиню миллионами, а пишу сразу в файл. Или ты про singleChannelSample + '\n'? Ну дак даже если эту строчку закомментить, то все-равно жве минуты процесс идет.>>679138>А в чёс проблема делать десятигиговый на маленькие 30-мегабайтовые?В том что нахуй такое делоть, когда там буферизованный ввод/вывод итак есть.>>679138>Например, задействуй видео-картуПиздос. Мне просто по порядку надо байт на биты разбить, а он мне видеокарту предлагает. Походу придется на нормальном яп переписывать...
>>679335Для начала посмотри вот это презентацию http://legacy.python.org/doc/essays/ppt/sd99east/index.htm Она хоть и старая, но эти основные моменты языка не изменились, кроме print. А потом какую-нибудь книжку параллельно с заданиями. НАсчёт книги не подскажу, сам не читал, но вроде Укус питона неплох. А задания на checkio.org
>>679341Добра анон.
>>679338Ты похоже просто потралить зашел, намеренно игнорируешь все ответы и придумываешь какие-то маняотмазки, постоянно упоминая про НОРМАЛЬНЫЕ ЯП. Нахуй путешествуй.
>>679362>Ты похоже просто потралить зашелНет. Давай разбираться вместе:1. Дело не в блоках try. Вот пруф: http://stackoverflow.com/questions/3929837/python-if-vs-try-except2. Дело не в записи/чтении, ибо если все io операции убрать, то все-равно затрачивается жве минуты.В чем тогда может быть дело? Вангую, что в разборе на биты. Тогда возникает вопрос, как это сделать более эффективно, но без видеокарты, ибо это - явный овекилл.
https://www.shoop.io/en/Кстати, может кому надо интернет магазин на джанго - так вот есть штука новая какая-то. Выглядит модно, что внутри не знаю. Сегодня буду разбираться.
>>679280python 3.5
>>679381А я какую учу ?В кодакадеми получается старый питон ? А где нвоый можно выучить ?
>>679368Прогони каким-нибудь профайлером, тысячи их.
>>679368Ну так запили синтетический тест, прогони разборку пару тысяч раз и замерь времяю
>>679456>>679386Хорошо, попробую сейчас. Алсо, я тут уже ускорил работу в два раза заменив тестовую запись на бинарную. Вот вы мне скажите, а вашем питоне компилить скрипты можно, чтобы получить выигрыш в производительности или у вас там итак JIT и вся хуйня?
>>679459Можно скомпилять сразу в байткод .pyc, но скорость работы это не увеличит, только скорость запуска.
>>679459http://pastebin.com/Q7C8rALxЧто это значит, посоны?
>>679466Это значит, что больше всего времени у тебя заняло ожидание input
Кто-то проходил курсы на codeschool? Хватит ли месяца, чтобы научиться чему-то большему, чем на codecademy? Думаю взять аккаунт на месяц по скидке, но не уверен, что научусь чему-то большему, чем на codecademy.
>>679468Лол, это я убрать забыл прост))А так? http://pastebin.com/Bh8gSgzA>{built-in method builtins.exec}Что это такое?
>>679466Ест line_profiler, показывает затраченное время построчно. Возможно тебе с ним понятней будет. Но в целом у тебя там в io упирается.
>>679466>>679476В общем, прогнал я твой скриптик на файле 333 Мб, и основное время занимает твой getBit из-за большого количества вызовов. Как решение, вижу только сокращение количества вызовов, больше ничего придумать пока не в силах.
>>679476>Что это такое?Запуск скрипта, видимо.Смотри tottime - суммарное время выполнения.
>>679481>основное время занимает твой getBitЯ его убрал в последней версии, заменив однострочником: http://pastebin.com/6CFzXKFbУменьшить вызовы никак, ибо надо каждый байт обработать. А нет у вас в Питоне более быстрых способов битоёбства?>>679479>Но в целом у тебя там в io упираетсяКак же io, когда там это>1 0.000 0.000 8.952 8.952 {built-in method builtins.exec}больше всего гадит?
>>679491>>1 0.000 0.000 8.952 8.952 {built-in method builtins.exec}>больше всего гадит?Вру. Гадят внутренности скрипта. Т. е. >>679479 прав, надо построчно прогнать.
>>679495Запихнув в однострочник, ты ничего не изменил.Вот что у меня получилось в одном из тестов.
По питону существуют вообще годные книжки с задачами после каждой главы и послойным изучением материала?
Откуда там вообще exec берётся?
>>679504А getBit почему у тебя там тогда? Я же убрал его совсем.
>>679514Это старый скрипт. Тут лучше видно просто, а суть не меняется, битовые операции никуда не делись.
>>679527>битовые операции никуда не делисьКонечно, ведь они нужны мне. Может есть более эффективный способ разобрать байт на биты?
>>679535Не по одному вытаскивать, а сразу все
>>679472могу дать акк с активированной подпиской на месяц
>>679572хотя на кодакадемии попроще, там не видео а текстом
>>679572Давай.
>>679564>сразу всеКак так? Мне их надо по разным файлам растащить же.
>>679581for i in f.read():int(bin(i)[j])
>>679459Вроде jira как раз для этого компилирования
>>679252>Да, ведь твой pront вместо print или неверное использование функции это ахуеть проблема, и обязательно нужно править именно твой код, ведь ты, долбоеб, не удосужился почитать что пишут в доках/выдает гугл.После "твой" можно было бы и не читать, аутист ебаный.Но интересно узнать, однако, насколько ты был доволен собой кинув ссылочку на гугл? Почуствовал что помог анону?
>>679575мыло давай
>>679611b1478911@trbvn.com
>>679507Dowson, Think Python, Core Python programming
>>679615Пробовал. Рассказывает, как писать свой сервер. Нахуй надо.
>>679617Остальные две попробуй тогда
>>679617Кто рассказывает как сервер писать, Доусон? Разве он не на примере игр учит?
>>679634
>>679633Core programming
>>679613>>679635какой злой анон шалит.я выслал.(brovko)
>>679642Есть. Спасибо.
>>6796431 месяц остался там
>>679645Вижу. Сейчас начну надрачивать питон. Спасибо, Анон.
>>679648Не за что. Развивайся и познавай.
>>679589>int(bin(i)[j])Ты хочешь сказать, что конвертирование байта в бинарную строку и извлечение отдельных символов будет быстрее чем битовые операции с целыми числами?
>>679639Стоит читать или она для совсем новичков?
>>679658Ща проверю
>>679658http://pastebin.com/KMmVM2RM
>>679727>for j in bin(i)[2:]Всегда ли bin выдает 8 знаков? Я имею ввиду, если я подам ей на вход 1, то она выдаст мне 0b00000001 или же 0b1?
>>679739>Всегда ли bin выдает 8 знаковНет. Делай что-нибудь типаb=bin(a)for channel_number, value in enumerate(b[::-1][:-2]):channels[channel_number] = value
>>679744>Нет.Тогда понятно почему там побитовые операции проигрывают.>>679744>Делай что-нибудь типаНе мог бы ты вкратце пояснить суть этого?
>>679747bin выдаёт запись вида 0b10101010101. Т.к. тебе нужны атомы в порядке возрастания, ты переворачиваешь строку через [::-1], а потом тебе нужно избавиться от оставшихся 0b, т.е. ты делаешь [:-2].
>>679744>>679747Я попробовал делать как-то такmultiChannelSample = inputFile.read(1000)bits = bin(int(multiChannelSample.hex(), 16)).lstrip('0b')if multiChannelSample == b'':....breakfor i in bits:....singleChannelSample = '+1' if (bool(i)) else '-1'И знаете, прирост есть, но совсем маленький. Думаю, и ваш вариант много пользы не принесёт.
>>679753if multiChannelSample == b'':....breakперенеси в условие цикла, а....singleChannelSample = '+1' if (bool(i)) else '-1'замени на....singleChannelSample = i and '+1' or '-1'ну и в bits у тебя порядок будет старший->младший
>>679750Тогда bin еще нулями дополнить надо. Алсо, зачем переворачивать, когда можно просто с обратной стороны циклом пройти. К тому же, я по прежнему не уверен, что текстовые манипуляции окажутся эффективнее.В общем вы не обижайтесь посоны, но я наверно обратно на свой петушиный сисярп перекачусь или даже на си. Не дорос я до вашего питона, видимо.
>>679756Да толку-то, проще это время потратить на ожидание выполнение старого скрипта, попивая чай, чем пытаться эти секунды выиграть. Я так, из любопытства, пытаюсь помочь в меру сил.
>>679759>Тогда bin еще нулями дополнитьМожно, но не обязательно>зачем переворачиватьЗатем, что так гораздо удобнее>К тому же, я по прежнему не уверен, что текстовые манипуляции окажутся эффективнееТак проверил бы у себя. Я ж тебе даже результаты кидал.
>>679765>Я ж тебе даже результаты кидалТы об этом >>679727? Если да, то я как раз и указал на их некорректность вопросом про bin. То, что он не всегда дает на выходе 8 символов, позволяет ему выиграть во времени из-за меньшего числа итераций в for j in bin(i)[2:]. На реальных же данных 1 и 0 будут встречаться с одинаковой частотой, поэтому строки будут почти всегда длинной в 8 символов и такого выигрыша не получится.
>>679672Сам только начал читать, пока доставляет. У меня проблема была что я питон за 3 месяца выучил, кодить могу шоугодно, а что именно кодить - не знаю. Понимаю о чём базарят итт почти полностью например, а самому ни единой идеи где такое применять. Ладно, по книжке: совсем элементарщину не рассказывают, примеров кода я так понимаю каноничного, правильного - достаточно. На всякий случай объясняется, но без деталей, в двух словах.
>>679785Полным нубасам не пойдет? До питона знал что-то?
>>679787Лет 15 назад кодил на делфи5, лет 8 назад - на пехопе. Без классов, ооп и прочего, на уровне echo '<p>hello</p>'Для полных нубасов думаю в самый раз 1) кодекадеми+лутц 2) доусон / укус 3) думай, питон! (think python)а остальное уже опциональное и сам разберёшься надо-не надо
>>679791Главное начать, а знания по необходимости уже можно нагуглить.
>>679791Лутц пиздец скучное говно. Доусон поинтерейсней, но примеры на ИГРАХ ВИСИЛИЦА ПОКЕР - это пиздец. Попахивает старым пердежом. Единственная годнота - кодакадеми и укус. Думай, питон! не читал.
>>679796Лутц это справочник, блин. От вас никто этого не скрывает включая лутца. Поиграл на кодекадеми по теме "работа со строками" - полистал Луца. Не вызубрил, не скопировал всё написанное, а полистал. Читни думательного питона, я так до сих пор из овер 10 книжечек считаю его лучшей (ну или во всяком случае мне больше всего именно она помогла)
>>679798Ну вот закончу курс на codeschool от доброАнона, который выше акком поделился и читну. Спасибо.
>>679820re.search('^yyy', 'xxx') == re.match('yyy', 'xxx') ?
>>679785Как она на русском называется?
>>679896PYTHON СОЗДАНИЕ ПРИЛОЖЕНИЙУЭСЛИ ДЖ. ЧАН
>>679897спс, перевод не кривой, все термины на даются на инглише?
>>679907Вроде норм.
А как регулярками сделать разбивку типа (запятая с пробелом) или (пробел если после него 5 цифр или 2 большие буквы)?вот ету хуету сделал - не пашетre.split(', |(?= (?:\d{5}|[A-Z]{2}))', var)
Хватит ли мне функционала 'tkinter', чтобы запилить простенький Windows Manager под прыщи на древних ПК?
>>6799352й гномно вообще если уж питона хочешь - расковыряй i3 - оно я слышал как раз на нём
>>679759убери функцию getBit, в питоне оверхед большой на вызов функции (делай проверку в ифе прям) это ускорит процентов на 15 ну и врайт оптимизируй. А вообще такие вещи делаются на golang за 10 минут и работать будет с приемлимой скоростью
>>679946Гном и GTK не перевариваю, хотя один виджет написан на нём.i3 не подойдёт, т.к. пилю это для масс -- для студентов.
>>679946Ебу дал? i3 на си, там только апи питоном дергать позволяют, но даже до интеграции уровня awesome/lua далеко.
>>679954Ты ебанутый какой-то.
>>679956>я слышалбро, моё дело подсказать что сам помню - а там пойдёт-не пойдёт человек уже сам для себя решит. не реагируй так резко на всё, тебе с этими нервными клетками ещё жить.>>679954Минута в гугле: qtile, pywm, tinywm
>>679959Я слышал как в /b/ твою мамку ебали, крики аж до /pr/ доносились.
>>679959Ну а хуле. Нормально будет, если совмещу 'tk', а другую часть (с той, что не справится 'tk') на GTK/QT?
>>679962Просто пиши на GTK, заебал. tkinter это мертвое днище. Ничего на нем писать не надо.
>>679963Ну ок.
Посоны, а как лучше всего в >2016делать интернет магазин? Брать какой-то фреймворк типа оскара или самую простую функциональньость запилить самому, а для сложных вещей брать готовые приложения типа django_robokassa для оплаты? Какие вообще подводные камни то в екомерс системах? Вот я как написал выше начал ковыртять shoop, но он какой-то странный. Сделали свою админку, например, а он такая неудобная как по мне..
>>679750>bin выдаёт запись вида 0b10101010101. Т.к. тебе нужны атомы в порядке возрастания, ты переворачиваешь строку через [::-1], а потом тебе нужно избавиться от оставшихся 0b, т.е. ты делаешь [:-2]. Тогда тут нужен не bin, а format(arg, 'b') - он без префиксов результат возвращает.
>>679977Ну, луче тогда уж str.format("{:0>8b}", byte). Не вникал в проблемы байтослесаря, но лучше использовать сдвиги (как он вроде и делал). На производительность в пифоне можно положить.
>>679949>убери функцию getBitУбрал уже давно. Лучше не стало.>>679949>golangВ чем профиты по сравнению с Си?
>>679759Ты заходи, как запилишь, было бы интересно производительность сравнить.
>>679981>В чем профиты по сравнению с Си? Сможешь себе подцепить какого-нибудь хипстера.
А можете по-быстрому объяснить зачем появляется файл apps.py в джанге после startapp?
>>679976>Какие вообще подводные камни то в екомерс системах?Главный камень - заказчик."А нам вот надо чтобы скидка зависела от города, если это город-герой и начинается на Ж, то скидка рассчитывается в процентах от прошлой корзины этого покупателя, а если нет, то пусть менеджер каждую неделю выставляет через админку."Короче, составь список фич и, смотря на него, думай. Если хотя бы по паре пунктов есть сомнения, как сделать - бери что-нибудь готовое. Иначе будешь ездить на велосипедах по граблям.
>>679991Да по сути заказ - маленький локальный магазин. Я точно не знаю, но вряд ли он за пределы даже своей области выйдет.Пока что я вижу - mptt для категорий, да и все, честно говоря. Фронт на ангуляре сделаю. Оплату тоже подключу какую нибудь, если вообще надо будет. Админка обычная пойдет. Какие вообще стандартные задачи у магазина то есть?
>>679988Для настройки приложения.https://docs.djangoproject.com/en/1.9/ref/applications/#initialization-process
>>679985Нахуй>>679983>Ты заходи, как запилишь,Тут не долго так-то... Но мне влом пока. Хотя возможно интерес возьмет верх.
>>679998Я потому тут и спрашиваю, что мне влом документацию читать.
>>679994В чем фишка mptt для категорий и в чем профит вообще его использовать?
>>680006Структура дерева в базе данных. Удобно для всяких данных, которые надо делить на категории и подкатегории. Одним запросом из бд можно вынуть почти всю нужную инфу - предков, потомков и т.д.
>>680006Дешевый SELECT - все дерево выбирается одним запросом.Дорогой INSERT|UPDATE - надо выставить значения не только для ноды, но и для её потомков и предков.Поскольку 99% запросов это селекты, профит налицо.
>>680000В apps.py обычно лежит классclass MySuperAppConfig(AppConfig)у которого есть всякие вкусные свойства и методы. Например, verbose_name - в админке можно показывать название приложения с выебонами "OLOLO ~Super App~ by Vasyan". Или метод ready - в котором регистрируют сигналы и т.п.
>>680014А. Ну понятно. Круто. Спасибо!
Посоны, а обязательно ли использовать bcrypt в джанге? Или в 2016 это уже не так актуально?А то я в каком-то году проходил курс по веб программированию на юдасити, и там очень его рекомендовали.
>>680032Это просто стандартная хэш функция для джанги. Если нужно, можешь хоть кузнечика использовать.
>>680037Не, бикрипт не стандартная же. Надо специально включать. Просто говорили что бикрипт медленнее, зато непробиваемый.
django-channels через пару недель должен достигнуть версии 1.0 и, соответственно, быть внедрен в джангу. Можно уже начинать разбираться в том, как это работает.
>>680039Там прямо можно нормально вебсокеты замутить или что? Или это костыли над запросом-ответом?
>>680040По идее да. Но, как я понял, для вебсокетов нужно обязателно использовать ASGI вместе с WSGI. Единственный минус который я вижу - это отсутствие гарантии того что сообщение дойдет до клиента. http://channels.readthedocs.org/en/latest/concepts.html
>>680044Ах, ну и походу они хотят в 1.10 сделать asgi стандартом, но оставить возможность использовать wsgi
Я, похоже, опоздал, но всё же не зря вечер сидел, так что запощу.>>679759Питон, всё-таки, не для байтоёбства, ну и 33 миллиона операций это, всё же, много.Поигрался как мог и частный случай сократил до ~1 минуты (твой оригинальный код у меня за 4.5 выполнялся). (возможно, на 3 байта ещё потянет, но сомневаюсь).Писал в один файл, но в лупе 16 раз, поэтому не должно сильно влиять. Да и, в любом случае, ~70% времени сжирает генератор и конкатенация байтов.Размер буфера между 64-512 мало влияет, а если больше - становится медленнее, причём оче сильно (4096 в четыре раза медленнее 512-и). http://pastebin.com/byA5AkNyА вот о мультипроцессинге, кстати, можно и задуматься, ведь ограничивает не io (3 процесса):real 0m30.024suser 1m22.070ssys 0m1.683sНу и плюс потом объединить 16 групп файлов нужно, но это мелочи, наверное.Наговнокодил тут на плюсах (http://pastebin.com/RpdtNpnY):length: 33554432Read samples: 16777216Elapsed time: 80.289 seconds.без os.write, однако, всего 5 секунд. Так что пили c-extension, который будет биты считать, а читай-пиши питоном, лол. (Где я обосрался-то с записью, кроме того, что по одному байту пишу? (В питоне я с побайтовым письмом двух минут добился))>>679764Так там не секунды, а минуты и часы, если действительно много данных. Поэтому борьба за 5-10% (а я тут ~90% времени сократил, если на трёх тредах i5 4300M делать) вполне себе оправдана, я считаю. Хотя-таки да, такое лучше на нормальном языке делать.анон, в шутку советовавший использовать видео-карту
>>679153Ответьте, ну пожалуйста.
Привет всем, скачал ваш путхон, но чета когда запустил произошел пикрилейтед казус (у меня 32-битный проц, качал для него естессна). Если что, я полный дебил в ваших компутерах (примерно на уровне вашей мамы).
>>680093А от нас чего хочешь? Открывай люги, устанавливай апдейты, веселись.
>>680093Там английским по белому написано, что для установки этой версии питона тебе нужна Win7 sp1.
>>680104Я уже примерно понял в чем проблема именно в этот раз, но разобравшись с ней, я мало что решу, на самом деле. Что меня беспокоит, так это то, что я абсолютно не шарю в компах. Совсем. Обновлял шиндовс, скачивал пиратские игры, убирал винлок все детские годы (мне сейчас 17, еще пиздюк) не я, а мой старший брат, который сейчас живет в другом городе (в ДС учится). Я решил изучать python, но оказалось, что у меня даже базовых знаний о компьютере нет. Короче, реквестирую гайды, как перестать быть кретином в этой сфере, так чтобы батя сказал "погромист растет".P.S. Написал сумбурно, наверное, извиняйте.
>>680105Я не знаю как ее установить, не скачав при этом всякие "зонды" шиндовса. Эта проблема вытекает из общей неграмотности во всей сфере >>680106.
Сосоны. ЧЯНДНТ? http://pastebin.com/u4RpJdhV хочу ассемблерный исходник собирать для dll in the middle
>>680108>Я не знаю как ее установить, не скачав при этом всякие "зонды" шиндовса.Control Panel -> windows update. От зондов не скроешься.
>>680057Заменил тупл на лист, поигрался с буфером (256 самый лучший), в итоге добил до 42 секунд так и 20 с четырьмя процессами.Сижу ломаю голову, как же по-другому вообще алгоритм построить, чтобы не пришлось по 16 раз проходить по одному и тому же списку с туплами (больше половины времени туда уходит).Должен быть способ сделать это красиво и быстро, надо математику задействовать, наверное.
>>680093У мну питон 3.5 тоже ругался при установке (не помню по какой причине). В итоге я просто поставил версию 3.4 и счастливо живу.
>>680124Файл какого размера-то?И зачем проходить, почему pop() не сделать?
>>68015032 мегабайта, как было изначально аноном заявлено (>>679022).Зачем pop?У меня список вида:[(1,0,1,..),(1,1,0,..),(0,0,1,...)]для каждой пары байт. Затем я собираю все первые элементы каждого тупла (первый "канал"), потом вторые, потом третьи и т.д.Грубо говоря, нужно это как-то в матрицу перевести и транспонировать, но с нампи получается либо медленнее, либо так же (если из вышеуказанного списка делать np.matrix(...).transpose().tolist() и иметь 16 строк на каждый канал, которые мы спокойно затем джоиним).Вот код - http://pastebin.com/bmqxcNAkС нампи, правда. можно иметь гораздо больший "буфер" и реше писать в файл. Толку от этого никакого, правда.Я пытался вчера сразу с нампиевского массива/матрицы начинать, но там добавлять строки/столбцы проблемно - каждый раз новый создаётся. В итоге прироста не заметил и идею забросил.
>>680186Каждый тупл - это поибтовое представление short'а. Всё-таки, комбинаций 65к, а семплов - 16 миллионов, поэтому пришла идея лишь один раз всё посчитать.Хотелось бы, конечно, ебануть словарь 16^16, чтобы все возможные комбинации 16-значных строк каждого "канала" иметь и влёгкую их писать в файл, без необходимости ничего соединять, но...
>>680186>собираю все первые элементы каждого туплаНу так и я говорю, зачем каждый раз пробегать, если можно пробежать один раз распихивая биты по 16 буферам?
>>680064kivy
>>680115халп сосоны, мне надо успеть за сегодня доделать
http://pastebin.com/TTDEh64CНе слишком ли запарная модель для хранения адресов пользователей?Как обычно вообще делают?
>>680115Попробуй вместо массива использовать многострочную строку через """."""одинДваТри"""
>>680039Я так понимаю,эта приблуда отправляет полученные данные консумеру, только для http.request есть дефолтный консумер, который делает из полученных данных обычный request и скармливает вьюхе? Т.е. HTTP все равно синхронно?
>>680186>np.matrix(...).transpose().tolist()А не проще сделать zip(*samples)? Всегда так "транспонирую", зависимость есть.
>>680186>>680344>>np.matrix(...).transpose().tolist()Вам целое число на биты разобрать надо, а вы тут устроили...
>>680186Олсо, зачем тебе out_list = [out_file]*CHANNELS ?Это же список из 16 ссылок на один и тот же объект?
>>680345
>>680428Это когда йоба-проекты пилишь такое происходит. А когда кода на 50 строк, то такой хуйни быть не должно.
Что это за хуйня? По дате видно же, что первый и третий инстансы в выборке не один и тот же объект.
Парни, только скачал питон, гуглю уроки, как вдруг столкнулся с проблемой отсутствия панели инструментов. Как ее вкрутить обратно?
>>680597Нажми alt.
>>680597Хули тебе в notepad++ не пишется, м?
>>680547all() не сортирует выборку. чтобы норм работало: models.objects.all().order_by('id')
>>680635Я уже понял, спасибо. Все последующие операции с выборкой давали ожидаемый результат, значит, я проебался с порядком.
>>680635>>680641Чтобы не сломать порядок, если забыл .order_by, советую взять за правило прописывать ordering в метадате модели.
>>679981> В чем профиты по сравнению с Си?если С хорошо знаешь и задачи типа твоей, то нет профитов.А так на нем быстрее (чем на С) разрабатывать всякую ебалу типа твоей задачи + компилится в один бинарник и никакой ебли с линкованием
А где можно надыбать json со всеми городами / областями / странами СНГ?
Почему вот это:{x 2 for x in [1, 2, 3, 4]}выводит это:{16, 1, 4, 9}а не это:{1, 4, 9, 16}?
>>680765А, нашел.
>>680768Потому что set не упорядочен.
>>680768потому что set неупорядочен.
>>680771Но тогда почему эта строка всегда выводит именно в таком порядке? Вроде бы должна же в случайном.
>>680778Ну вот такю
А на винде через cygwin питона кто гонял? как оно вообще? Хочу ноут под винду точенный купить
>>680878Извращений захотелось? Если уж в так не хочешь линукс на своем железе - Виртуалка или впс.
Господа! Подскажите, пожалуйста, существует ли сколь нибудь достойный перевод книги "Learn Python the Hard Way" или же она так и осталась исключительно в оригинале?
>>680888https://www.asus.com/uk/Notebooks/E403SA/В нём поди и биос ебанутый будет, наглухо к винде привинченный. Виртуалку можно, только на 4 гб это какой вагрант кастрированный будет. Тогда уж легче гонять по ссш на серваке. Но смысл в другом был, для путешевсвтий и прочих коммандировок ноут вин как мне кажется, а питониться в дороге мне только для фана, а не необходимости. Потому поставить кигвин который из коробки пашет - охуенно, а ебаться с деплоями на хероку всякие или в 4 гб озу виртуалку с убунту минимал пихать - уже гемор.
>>680889Говно твой лёрн зе хард вейПрочитал от корки до корки. Состоит из превозмоганий "ДЕЛАЙ УПРАЖНЕНИЕ2 ЧЕГО БЫ НЕ СТОИЛО ИЛИ НЕ ПАЦАН", истерик "ЕСЛИ ТАКОЙ УМНЫЙ ХУЛИ ЧИТАЕШЬ ЕТУ КНИГУ ИДИ ПО ЛИСПУ ЧИТАЙ!!!!111" и маняоправданий "Я НЕ ВНИКАЮ В ПОДРОБНОСТИ А ТУПО МОТИВИРУЮ ВАС ХУЯРИТЬ А ТЕПЕРЬ БЫСТРО ИФ РУМ = АРЕНА ЗЕН ПРИНТ ТРОЛЛ ФАЙТС Ю!!!" и рекламы не то платных курсов, не то видосиков если ничего не путаюМой вердикт - для дебилов. Распиарена потому что в забугорном интернете пиздить не принято, а только это дерьмо собачье бесплатное.Пойди наверни нормальных книжек, их же дохуя и больше
Herokuapp или Openshift? Никаких особых изысков не требуется.
Как правильно парсить курсы валют/акций? С самой биржи брать или с сайтов?
>>680894Отвечая всё же на вопрос: Ввиду анальных ограничений её никто не переводил и не будет.
>>680898А что за ограничения?
>>680891>для путешевсвтий и прочих коммандировок ноут вин как мне кажетсяЗачем? Вафля везде одна. Имею зенбук UX31A с дебианом на борту для разъездов, никогда проблем не было. Вот прибито не прибито хуй знает, но я еще не видел ноутов куда нельзя было воткнуть линуксы.
>>680899Ну для чувака книга - реклама платных видосиков где он гнусавым базарит как пикрелейтед Нахуй его после этого переводить? Эта книга не продукт в каноничном понимании.
>>680901Понял. Спасибо за информацию! Пойду тогда лучше укус читну.
>>680901>>680894Лолшто? Проиграл с тебя адово. Говнокниги с оценкой 3 на амазоне это как раз Лутц какой-нибудь, которые в своей говнокниге ещё и курсы свои рекламирует, сам притом нихуя не работая, а только теоретизируя.Зед охуенный программист, книга его бесплатная, видео и курсы лолшто, это как курсы от Линуса он не продает, они служат бонусом за фактический "донат" за книгу, а за те 29 баксов ты покупаешь поддержку и можешь задать ему свои тупые вопросы по непонятным местам, если даже после видео ты их нихуя не понел. Только в зк можно так проиграть от тупости местных.
>>680920>гы мам тупые сматри гыгы! ну тупые! мам! ясно-понятновыучись по нему и возвращайся
>>680920Держи бесплатную тру годноту, которую тут половина читала и подтвердит:http://greenteapress.com/wp/think-python/www.obeythetestinggoat.comТеперь будешь хоть знать как оно выглядит
>>680923Выучился и работаю, даже уже стак сменил. Проблемы, борщехлёб?>>680925>когда тебе рассказывают о чем, что ты читал несколько лет назад, типа СМАРИ ГАДНАТАПриятное чувство. Но нет, "книга" Зеда это аналог кодеакадеми для быстрого входа, которая читается за вечер под пивас.
Такс такс что тут у насhttps://github.com/Microsoft/Pyjion
>>680983В чем фишка и чем отличается от пайпай? И что то он почти не разрабатывается и хайпа нет вокруг.
>>681021> отличается от пайпай?Там в ридми написано> хайпа нет вокруг.Вокруг - это где?Мне сегодня на подкаст "talk python" прилетело про это, ещё не слушал.
>>681021>хайпа нет вокругТебе не хватает реализаций питона? Богу реализаций языка нужно больше реализаций! Питон это наиболее многократно реализованный язык программирования имхо. Javascript и тот где-то на 2-3 ничем принципиально не отличающихся движках по большому счёту зиждется. А тут тебе и под дотнет, и под жвм, и под жаваскрипт даже неоднократно делали (однако гвида нерекомендуе, ибо гарантированно будет тормозить, гвида говорит кофе юзайте).
>>681027Эта штука добавляет jit в обычный cpython, это не отдельная реализация.> Питон это наиболее многократно реализованный язык программированияДа ну, глупости, других языков реализаций тысячи, особенно старых всяких.
>>681027> ибо гарантированно будет тормозитьКогда будет вебассембли сделают нормальную реализацию без тормозов.
>>681030Уже зделоли. Подводный камень в том что рантайм питона весит много. Это вам не жуквери подключить.
>>681032хуе мое пусть вставят в браузеры как сделали с ес6.
>>681036Это пытались сделать ещё начиная с 1991 года. Но не взлетело. Гвида сдался в 1995.Вот тебе сцылочка кстати.http://pypyjs.org/
>>681038http://www.brython.info/tests/console.html?lang=en намного быстрее грузится
>>681042Да, но намного медленнее выполняется.
>>681038Я знаю что долго пытались вставить в браузеры разные языки, в том числе питон, но я не совсем понимаю почему этого не делают большие браузеры. Дело в отсутствии хорошего JIT? Или может у питона по факту хуевый перформанс с отсутствием мультитрединга? Или дело в ебле с версиями? А может просто никому не нужен еще один язык на фронтенде?
>>681047>просто никому не нужен еще один язык на фронтендТоталли зис. Ты учти что эти жаваскрипты там гвоздями прибиты к дому. Просто вставить рантайм не получится.
>>681047> с отсутствием мультитредингаА у яваскрипта мультитрединг чтоли?
Есть нормальный гайд по киви?
>>681051Нахуя мультитрединг на фронте? На ноде на бэке для этого кластеры используют. А зачем в браузере то?
>>681072Чтобы было.
>>681072Майнить биткоины
>>681072>2016 год>программы до сих пор не умеют в многоядерность>дваядратригига стоят без дела>пока ссаная косынка на жаваскрипте страшно лагаетИз разряда 640кбайт хватит всем.
>>681084Вот ещё не хватало чтобы яваскрипты все ядра отжирали.
>>681086Уже. Webworker.
>>680920Пиздец, живой адепт зеда.
>Zed A. Shaw is a software developer most commonly known for creating the Mongrel web server for Ruby web applications
>>681093Это где-нить используется?
>>681100Ну если ты не используешь, значит хуета и нинужно. Пусть удоляют. Это нужно чтобы страница не зависала во время тяжёлого рассчёта к примеру.
Хочу сделать гуевую оберточку для mpv, пытаюсь сделать вывод через opengl, нарыл пример на сях - http://pastebin.com/qn6rDTxr (как и положено выводит "failed to initialize mpv GL context"), переписал на пистон - http://pastebin.com/Mc2qk7Ac, но во время вызова mpv_opengl_cb_init_gl программа сегфолтится, в чем может быть проблема не умею в С/ctypes?
>>681114>CFUNCTYPE(Nonevoid возвращает? Должна же адрес вернуть.
Сосоны, халп. Хули у меня не работает replace?codesec.replace('[changeme]', call_iat) Суть в том, что там есть большие куски кода, в которых надо менять определенную часть данными, которые есть в переменной. Но нихуя не происходит вообще. Выдает шаблон + [changeme]
>>681167Небось inplace пытаешься заменить? Строки в питоне иммутабельны.
>>680344И правда. Что-то я о зипе совсем забыл. Почти в два раза ускорилось. Ещё убрал проверку на длину списка (профайлер показывал, что туда чуть ли не 8% времени уходило), добавил просто инкрементирующую переменную. В итоге - 22 секунды (9 с четырьмя процессами).24% - слайсинг и получений тупла битов23% - джоин тупла с битами10% - аппенд к листу5% - запись в файлы10% - подготовка словаря с туплами26% - остальная часть функции.(оставшиеся проценты на всякую мелочь типа чтения файла)Осталось совсем чуть-чуть. Первый и последний пункты, наверное, можно ещё как-то оптимизировать.>>680345Ну так ты предложи быстрый способ это сделать, раз всё так просто. Нужно весь большой файл на биты разобрать и каждый 1-16-ый бит в свой файл записать.>>680377Это эмуляция записи в 16 разных файлов, которые анону требовались.>>679022Зачем ты сюда с этим пришёл, столько времени у меня отнимаешь...На с#-то переписал уже?
>>679022>>680186>>680057Хуле вы тут намудрили, уёбы?http://pastebin.com/hUHDFNDM
Программисты, поясните зачем первую часть регэкспа обрачивать в скобки и обратные слеши, такой пример в книге, не сам такое написал:import reprint( re.search(r'''(?x) \((?P<kodgoroda>\d{3})\) # kod goroda [ ] # probel (?P<prefiks>\d{3}) # prefiks - # defis (?P<nomer>\d{4}) # nomer konechnoy tochki ''', '(800) 555-1212').groupdict())http://puu.sh/nA5Zz/4fca1701e4.png
>>681217Скобки с обратными слешами означают сами символы скобок.
>>681165ебаный_стыд.jpeg, совсем объебался, спасибо, анон.
>>681213Заебись, а чего дальше с этими битами делать предлагаешь? По одной штуке писать в файл? Аппендить к какой-то строке миллионы раз? Время-то замерял?До напиевского fromfile я уже добрался, однако на первый взгляд было медленнее (аж в два раза). Заменил словарь vals на лист - 17 секунд!Почему доступ к int'овым ключам словаря насколько медленнее, чем к байтовым? http://ideone.com/cAWzu4
>>681223Оригинал постер срал этими битами в файлы текстом. Хуй знает для чего оно ему.
>>681223Ну на тебе аскибайты, которые можно tofilehttp://pastebin.com/pea0nbMSНо опять же, мне кажется там должна быть какая-то нагрузка и писать биты текстом дебилизм.
>>681233Блин, не честно так. Не знал, что нампи и битовые операции может к массиву так легко и быстро применять.>там должна быть какая-то нагрузка и писать биты текстом дебилизм.Ну мало ли, псевдошифратор ЦП какой-нибудь, где прочитав потом заново эти раздельные биты получаешь 16 картинок.Вообще, только сейчас, блин дошло, что это банальный interleaver получается, надо было его имплементации в интернетике и искать.Я только так смог http://pastebin.com/EwrGGS13 :real 0m10.025suser 0m26.737ssys 0m2.135sТвоё же, считай, мгновенно (меньше секунды). С другой стороны, использовать нампи это считай использовать C extension'ы.
>>681219Ну а почему остальные не надо так делать, и зачем вообще две пары скобок там?
Доктор говорит чтобы я без каски на улицу не выходил.А мама говорит что я очень умный и каска мне идет.
>>681258Скобки без слешей - это группировка найденного. Со слешем - просто символ, который ищешь в тексте, как любая буква.
>>681252Numpy это очень хорошая вещь. Покрывает 90% возможного байтоёбства на уровне си. Сам питон конечно же медленный, зато на нём просто написать прототип, что-то вроде minimum viable product.>>681258Скобки могут значить очень разные вещи в регексах. Обычно это группы соответствия. У тебя там несколько именнованных групп соответствия, которые работают только в питоне, поэтому там префикс (?P<..>). Со слешами скобки идут как обычные символы (точно так же \+ \. \? и прочее). То есть твой код города должен находиться внутри скобок в тексте.>>681260Ну ты прям фанат. Программы-то где? Нахуй нам твоя мода
>>681270Да не, я так-то нампи люблю и уважаю, а тут что-т ума не хватило правильно впихнуть, поэтому пошёл длинным путём (хотя тоже, по-моему, не так плохо, по сравнению с топорным вариантом).
Вот есть пакет, он установлен. Я его хочу его форкнуть. Клонировал репозиторий. Как мне его теперь заюзать, чтобы он импортировался вместо установленного?
>>681292Симлинк поставить. Пердон ищет модули сначала в текущем каталоге. Либо pip install https://github.com/.../.../zipball/master
>>681296Нихрена не понял. Как вообще модули разрабатываются? Сильно сомневаюсь, что разрабы их переустанавливают после каждого коммита. Также сильно сомневаюсь, что нужно возиться с симлинками и менять что-то в папке с модулями. У меня есть файл, для которого нужна ещё не реализованная в модуле функциональность. Я клонирую модуль в подпапку, что дальше?
>>681301Допустим у тебя есть app зависящий от module.ls app_dir:app/ setup.py READMEls module_dir:module/ setup.py READMEcd app_dirln -s module_dir/module/ moduleТеперь у тебя при запуске питона из app_dir можно импортировать и app и module. Причём изменения в module становятся доступны сразу же.
>>681270>>681270А понял. Поиск идёт со скобками, но в именованную группу запишутся только цифры так как группа внутри этих скобок
Как ускорить загрузку страниц в виде хтмл?Я юзаю requests, там просто делаю s = reqyests.Session()Можно ли еще как ускорить работу?
>>681389В каком смысле ускорить?
>>681392Уменьшить время на загрузку хтмлДаже в 20 потоков на все уйдет около 2 дней
>>681395Купить хороший интернет с большой скоростью и малым пингом.Найти всех пользователей сайта и перерезать им кабели с интернетами.Помочь мейнтейнеру сайта сделать его быстрее.Accept encoding gzip попробовать. Хз
>>681306Ясно, спасибо, сработало.Теперь другой вопрос. В один файл автор свалил кучу классов. Я это попытался растащить по подпапкам (1 класс - один файл), но получилось дерьмо: при импорте файла сначала приходится писать имя файла, а потом имя класса. Как сделать так, чтобы класс шёл в модуль минуя имя файла? И как сделать, чтобы при написании import имя папки я получил импортированными все классы из файлов в этой папке в пространство имён с именем папки, а также класс из файла папкой выше - суперкласс всех классов в папке.
>>681406module/--init--.py:from .file1 import Class1from .file2 import Class2from .file3 import Class3Теперьfrom module import Class3
>>681414спасибо, сделал
Requests иногда загружает html иногда как <html class='mobile'> , а иногда как <html class="desktop"> Как сделать так чтобы скачивался только desktop?
>>681516Лол. Реквестс здесь не при делах. User agent разве что установить можно. Так-то угадывать надо как сайтец это определяет, куки может какие-то надо ставить.
Парни, объясните одну вещь. Я программирую на С++ и достиг неплохого уровня, недавно ради расширения кругозора начал изучать скриптовые языки. Пока что прошел обзорные курсы на CodeCademy по JS, Ruby, Python, PHP. Судя по первым комментариям в этой теме, программисты Ruby и Python'a недолюбливают друг друга, верно? Сразу оговорюсь, я спрашиваю не для того, чтобы спровоцировать перепалку, а интересны мнения более опытных людей. Поэтому прошу: если отвечаете, то отвечайте по сути. И пусть другие комментарии будут просто мнением, а не объявлением войны. Также мне интересно, насколько совпадают языки и их библиотеки по задачам, которые они призваны выполнять. То есть, степень: сильно совпадают, вполне совпадают, почти не совпадают и так далее. Лично мне более выразительным и красивым показался именно Ruby, но это впечатление сложилось у меня после знакомства с основами. Разбираться я все равно буду в обоих, чтобы составить окончательное мнение. В него я включу и мнения со стороны.Заранее всем спасибо за ответы, и еще раз прошу воздержаться от бессмысленной ругани.
>>681565https://habrahabr.ru/company/radmin/blog/137497/
>>681565Добро пожаловать на харкач, тут все недолюбливают всех по любому поводу. А если повода нет - он создается искусственно. Но в целом руби - умирающий язык одного фреймворка (рельс), без применений хоть где-нибудь вне веба. И работы на нем даже меньше чем на питоне.
>>681565> программисты Ruby и Python'a недолюбливают друг друга,Нет. Это похожие языки и многие владеют обеими. Есть фанатики(в основнои среди рубистов, кстати) которые пытаются доказать как их болото лучше соседнего, в основном от незнания что в соседнем языке все аналогичные штуки есть, отличается только синтаксис немного(коко отступы и т.п.)
>>681568> без применений хоть где-нибудь вне вебаНеправда, на нем ещё есть всякие тулзы типа chef, puppet и т.п.> И работы на нем даже меньше чем на питоне.Это видимо зависит от региона, в прибалтике RoR относительно популярен, хотя там почти везде php.Слышал от хохлов жалобы что не могут найти работу на джанго, лучше бы учили RoR(хотя подозреваю они бы и на RoR работу не нашли).>>681565У питона область пременения намного больше. Кластеры-фигастеры, наука, системное администрирование, десктопные приложения, сетевые серверы.На руби почти сплошной веб.
>>681580> chef, puppetКоторые выкидывают на помойку и заменяют в пользу ansible. Теперь давай еще homebrew вспомним и, и, и... все. Раби без рельс не представляет из себя никакого интереса. Да и вообще, когда не язык тащит за собой фреймворк а фреймворк тащит язык - с этим языком что-то не так.
>>681587Ещё у них дофига несовместимостей между даже минорными версиями. И интерпретатор был тормозной, но сейчас вроде допилили.
>раби>end>end>endНе, спасибо.
>>681096Я люблю Зеда потому, что он не лицемерит когда говорит что некая хуйня являет собою адовое говно, чем страдает половина разработчиков на конференциях. Каждый раз смотря конференции охуеваю как людям говно в уши заливают А они и рады. В этом плане он похож на Линуса и Мартина.
>>681565С моего дивана скажу следующее.Python стал lingua franca современного CS, 95% книг его используют как основы для объяснения всяких штук, начиная от машинлернинга и заканчивая всякой веб архитектурой и скриптопарашей уровня баша. Знать его стоит, даже если не планируешь на нём серьезную разработку, хотя для прототипирования и быстрых решений это пожалуй лучший выбор в наше время, но в некоторых нишах его может потеснить тот же Go сейчас.Про Ruby. Это отличный язык, но нишу Python ему уже не получить, а RoR сейчас заметно уступил рынок JS Meteor получил за пару лет 33к звезд на гитхабе, RoR за 10 лет получил 30к, нафф сэйд в плане быстрой разработки и решений, ну, реалии рынка поменялись, асинхронность, ультрамодульность, spa, изоморфность, всё такое.В целом, учить можно любой, но с практической точки зрения выбор Python был бы разумнее, а если уж хочется вебдева, то тут лидеры php + js с огромным отрывом, но вот как раз их круг задач очень ограничен этим вебдевом, если же хочешь и вебдев django и flask откровенно НИОЧЕНЬ на фоне RoR и Sinatra в сфере быстрой прототипной разработки, где их и юзают крудошлепства то можно и Ruby.
>>681605> phpНо это pain in the ass. Разве что сайты - визитки клепать.> django и flask откровенно НИОЧЕНЬ на фоне RoRОбоснуй
>>681608>Но это pain in the ass. Разве что сайты - визитки клепать.Я об этом и написал>а если уж хочется вебдева, то тут лидеры php + js с огромным отрывом, но вот как раз их круг задач очень ограничен этим вебдевом>ОбоснуйДекларативный подход рельсов с магией против более императивного джанговского, где большее количество вещей надо делать ручками. Явно? - Да. Разработка при знании инструмента медленнее? - Да.Заказчик хочет быстрее и чтобы всё работало? - Да.Такие дела. RoR мощнее Django заметно.Flask - копия Sinatra, но развит меньше ввиду того, что всё таки Python не является языком который взлетел из-за вебразработки в отличии от Ruby.Тащемта, достаточно открыть любые сайты с ремоут работой, даже тот же апворк, последний раз когда я смотрел - число вакансий для веб-питона кроме парсеров всяких было значительно ниже, тоже самое с remoteok и weworkremotely. Может что-то поменялось конечно, но скорее просто Ruby вытеснили JS-ом.
Ребзя, спасибо за ответы. Я планирую освоить оба языка, уже писал. Но вы помогли сориентироваться дальше. В веб-разработку я вряд ли буду углубляться, мне это не сильно интересно. Отходить от С++ тоже не собираюсь, эти языки я буду использовать в качестве дополнительных. Как здесь уже упоминали, для задач прототипирования, для работы с текстом, большими массивами данных - словом, там, где это удобно.Вообще, если судить по основам, то рейтинг этих четырех языков я бы оформил так:1. Ruby. Мне понравился больше всего с точки зрения ООП. Можно писать очень лаконично, что меня привлекает.2. Python. Не понравилось то, что тут есть примеси в ООП. Например, чтобы высчитать количество элементов в списке, нужно передать его в функцию, а не вызвать метод этого списка. Я люблю, чтобы все было единообразно. Но в целом язык понравился, и я буду изучать его и дальше.3. JavaScript. Не произвел особого впечатления, но в будущем все равно в нем разберусь. Пригодится знание такого инструмента. Из дополнительных средств попробовал jQuery - громоздкая ерунда. Хотя, может, я ее неправильно готовил?4. PHP. Не понравился совершенно. На этом мое знакомство с ним закончено.Все это вкусовщина.
>>681613> большее количество вещей надо делать ручками. Ты конкретные примеры можешь привести?В джанго очень много делается по дефолту, та же админка делается двумя строчками, писать больше надо только если какое-то поведение сильно отличное от дефолтных возможностей нужно.> но развит меньше В каком месте? Каких-то библиотек не хватает? Их миллион и очень мощные - шаблонизаторы, orm, всё что хочешь.> Flask - копия Sinatra> не является языком который взлетел из-за вебразработкиТем не менее тот же wsgi появился сначала в питоне, а в рубе его содрали.
Рабе из дед, не трогайте труп.
>>681626Кстати, мочу-рабиста пидорнули же, теперь рабитред вахтерить некому. Можно набигать и щитпостить.
>>681613>>681624Парни, призываю вас остановиться. Не хочу, чтобы мой вопрос вылился в ковровое говнометание. Оно кому-нибудь надо?
>>681628>Парни>Ребзя>Парни
>>681627> мочу-рабиста пидорнули жес чего ты взял?
>>681632С того что зк некоторое время не модерировался вообще, потом Абу объявил набор в модераторы, потом был перепилен прикрепленный ньюфаг-тред. Оттуда выкинули форс раби и воткнули жабу.>В: Хочу стать программистом, какой язык учить?>О: Английский + JavaСмекаешь?
>>681260Что из этого стоит почитать на досуге?
>>681635Не предполагаешь, что один и тот же человек может форсить то джаву, то руби?
>>681636ничего
>>681636пикрел почитай, там на питоне всё. есть в переводе на русский.
>>681637>В: Хочу стать программистом, какой язык учить?>O: Python/Ruby + Английский. По руби читать то-то, по питону вот книжка какая-то, я питон не знаю.Руби там висел слишком долго чтобы просто так исчезнуть. До питона/руби там был просто питон + английский. Алсо, раньше вбросы в рубитред вида gem install rabota удалялись а постер банился. Сейчас они висят и агрят купившихся на рубихайп дураков.
>>681642про что там? в двух словах плес
>>681624>Ты конкретные примеры можешь привести?Мне лениво тратить на это время в интернете полно сравнений, даже на хабре, можешь считать что я только пиздеть горазд, всё равно я уже давно прототипированием и крудошлепством на скриптоязыках не занимаюсь.
>>681644> До питона/руби там был просто питон + английскийИ что? Тогда руби-модера не было по-твоему?> купившихся на рубихайп дураков.ну ты-то не такой, это хорошо.
>>681651Рубисту неприятно.
>>681644> по питону вот книжка какая-то, я питон не знаю.кстати это я писал, тред был, где мы вместе фак создавали.>>681652лол
>>681645Ну вот например ты делаешь интернет-магазин книжек или ютуб и хочешь давать "рекомендации" на основе предпочтений других пользователей с похожими вкусами.Там про алгоритмы для всякого такого.
>>681654Интересно. Спасибо.
>>681644> рубихайпПомойму он закончился лет 7 назад.
>>681656Эта страна всегда немного отставала.
>>681580>Неправда, на нем ещё есть всякие тулзы типа chef, puppet и т.п....о которых не знает никто, кроме парочки фанбоев.
>>681646Я читал такие сравнение. Вот например первая ссылка в гугле https://bernardopires.com/2014/03/rails-vs-django-an-in-depth-technical-comparison/Вывод:Both Ruby on Rails and Django are outstanding frameworks for web development.You can not really go wrong by picking either one of them. My suggestion is always to try both and figure out which one you’re more confortable with. The decision may come down to which language you prefer or which principle you want to follow: convention-over-configuration or explicit is better than implicit. With CoC you get automatic imports, controller instance variables are automatically passed to the view and writing tests is convenient. With explicit is better than implicit, it’s always obvious what the code is doing, even for those not familiar with it.From my personal experience I prefer Django. I like Python’s explicitness and I love Django’s forms and the fact that the framework is more defensive (limited template language, null not enabled by default on model fields). I know however plenty of folks that can’t live without Rails’ magic and its superior testing environment.
>>681659Нет, они популярны среди одминов, которые и руби то не знают.
>>681667Среди админов популярен ansible, очень удобно иметь платформу оркестровки и собственно свои скрипты на одном языке.
>>681670ансимбл тоже популярен успокойся.
>>679383бамп
>>681681Ты учишь второй, он уже не развивается и прекратит поддерживаться через 4 года.
>>681684Я другой анон, просто тоже интересно.Есть вообще что-то вроде кодекадеми, с третьим питоном?
>>681270>Программы-то где?Ты уровень моих книжек видел? Какие программы ты ожидаешь. Хотя, пару уже постил. Но в основном итт спрашиваю.>>681636>то из этого стоит почитать на досуге?Если ты нуп, то Automating Boring Stuff - оче хороша. Да и остальные, несмотря на начальный уровень содержать примеры разносторонних проектов дающие как минимум представление "как бывает"
Как в ёбанном 'gtk/pygtk' изменить положение/позицию виджета, чтобы он был вверху экрана?
>>681795Экрана? Или окна?
>>681800Экрана/монитора
>>681806Но ты виджеты рисуешь на окне, а не на экране.Ты хочешь сделать что-то типа панели оконного менеджера?
>>681809Чтобы главный виджет был вверху ёбанного экрана/монитора.
>>681812window.set_decorated(False)window.move(0,0)window.resize(gtk.gdk.screen_get_default().get_width(), 22)
>>681815Ну и always on top сделай его наверное
>>681815Спасибо, анончик.
Анончик, подкинь ссыль на гитхаб с готовой Django - user.registration. Желательно с "раздолбленой" model.User.А то чем, дальше тем непонятней.
kek
Анончик, объясни, пожалуйста, когда использовать map? Могу ли я забить на абсолютно всё хуй, использовать map вместо циклов и ебенить функциональщину везде где только можно?
>>681915Скорее всего говнокод получиться.Да и вместо map удобней list comprehension использовать чаще всего, если ты не готовую функцию в map подсовываешь. Иначе лямбды придется городить да и в list comprehension можно сразу filter заебенить или 2 и более for
>>681642Цвет обложки именно такой должен быть? Нашёл только с зелёной рамкой. 2008 года как я понял.
>>681926хз а автор тот же?
>>681931Тоби Сегаран 2008 год
>>681939Ну да та же. У меня была такая с пингвинами на обложке..
>>681915map нынче генерит итераторы вместо списков, что далеко не всегда удобно. решай сам.
>>681967Лолд. Вот ето икспертиза. или ето тролленг?
>>682091Чёт мне нравится как хохлы ехидничают. Чего стоит только одно ДА ТЫ ШО на одесситский манер.
>>682101> ТА ТЫ ШОфикс
>>681622Руби силён в том что может строить DSL.Питон силён в том что всё явно и просто.Руби силён рельсами, хотя джанга уже почти доросла.Питон силён numpy/научными пакаджами.Оба языка в принципе те же сорта говнаповидла. Что в лоб, что по лбу. Основные отличия я тебе перечислил.
>>682130> уже почтиВы заебали, что такого есть в рельсах чего нет в джанге, можете ответить? Конкретно.
>>682131mvc
>>682131Много самоцветиков. Под джангу меньше и половина спизжена из рельс. В целом объективно мне похуй конкретные различия. Но то что рельсы это законодатель мод в вебе, по крайней мере прошлых лет, у меня сомнений нет. В принципе оно и понятно почему всё так. Руби более гибкий. Для вебразработки это важнее чем надёжность и ясность кода.Например sass/haml сделаны изначально под рельсы, в джанге до недавних пор все ебались со всякими тормозными ломающимися джангакомпрессорами и до сих пор ебутся с кастрированной версией jinja. Кофескрипт похож на руби. Вот тебе например пакет для рельс: https://github.com/thoughtbot/factory_girl и его клон для джанги https://factoryboy.readthedocs.org/en/latest/ Ещё мне страшно не нравится south который вшили в джангу, работает как пиздец, DROP DATABASE становится любимой командой. Ещё блядь агрегация в джанго орм это сука отдельное шаманство, часто уже и SQL про себя написал и сидишь гуглишь как это сделать через annotate.
>>682148sqlobject в рельсах тоже примитивный вроде как. в джанге можно алхимию с боку присобачить или raw sql написать.> рельсы это законодатель модОни одновременно с джангой вышлиВ руби тоже из мира питона тащат то то удачно вышло, это работает в обе стороны.
>>682148Насчет миграций - я вообще проблемы не понимаю. Их надо просматривать и править руками конечно, но это всегда так. Плохой API для этого? Да вроде норм.
>>682148Я до того как впилили south использовал какие-то другие миграции, попроще, мне больше нравилось. Только их штуки 3 было альтернативных библиотеки для этого.
Ох. Сейчас я вам исчо накатаю про джангу.Роутинг через регексы.. Ну хуй с ним, пусть живёт, хотя регексы могут легко пересекаться и для скоупа мне приходится их копировать по многу раз. Страшнее другая хуитка: джангисты привыкли задавать алиас названию вьюхи, заместо 'myapp.views.login' они обязательно сделают алиас 'myapp:login' хотя он по сути нахуй не всрался.Меня бесит подключать staticurl в темплейты. Сука просто нахуй бесит.Тайтлы моделей не могут в словоформы кроме английских. 2 ПРОДУКТОВ ДОБАВЛЕНОДжангомодуль не работает без файла с моделями. Вот хоть пустой но надо.Никто толком не умеет использовать DJANGO_SETTINGS_MODULE, все ебутся с import local_settings.Меня трисёт от того что я не могу примитивы админки просто импортировать в своё приложение и использовать.>>682160Плохой конечно. Лучше всего это вычисление diff между желаемой схемой и существующей в БД, и применение минимального пути модификаций. А так мне надо коммитить твоё говно из migrations, заставлять людей ждать по полдня чтобы все миграции выполнились, самому периодически нахуй сносить все эти миграции когда их становится много, починять это срань когда модели нестандартные (вроде mptt всяких). САМИ ЖРИТЕ СВОЁ ГОВНО. НЕТ НЕТ НЕТ!
Кстати spaceless тег страшно тормозной. Он блядь регексами постобработку хтмла каждый раз делает. Охуеть.
>>682167> Никто толком не умеет использовать DJANGO_SETTINGS_MODULEНеправда. Многие умеют. local_settings - устаревшая практика, раньше так делали, да.> мне приходится их копировать по многу раз.Что? Зачем?> периодически нахуй сносить все эти миграции когда их становится многоЗачем?> diff между желаемой схемой и существующей в БДИ как ты угадаешь что там и как менялось? Магически? Если ты например вынес что-то в другую модель и т.п. А миграция данных как будет проходить, которая часто нужна иначе данные потеряются или вообще всё сломается.Вообще на реальных проектах с кучей данных ты alter table хрен зделаешь без остановки всего надолго. Это другая проблема.
Алсо, я совсем нихуя не понимаю зачем в корку вводят сущность Site. Такое же говно было в мадженте. Блядь, нахуя оно? Я нигде не видел чтобы его использовали.
>>682176Оно тебе мешает чтоли? Может пригодиться.
>>682172Не используй его. Нафиг он вообще нужен, тем более, если ты gzip`ом страницу жмешь это бесмысленно.
>>682175Мне насрать на данные. Я разрабатывать хочу быстро. Я хочу syncdb и не ебать себе мозг. На продакшене это всё конечно же руками будут делать. Да и к тому же автоматика может показать какие данные проебутся, а вот блядская миграция всё молча дропнет.>И как ты угадаешь что тамИнтроспекция, йоба. БД показывают свои схемы. Соответственно набор необходимых альтеров можно вычислить.>>682178Так почему бы ему не съебать в отдельный пакадж?>>682179Он должен отрабатывать compile-time, а не каждый раз потом.
>>682183> Он должен отрабатывать compile-timeНу так запили так. Можешь потом патч прислать им.> Интроспекция, йоба. БД показывают свои схемы. Это понятно. Непонятно - ты переименовал и перенес какие-то колонки, вынес данные из одной модели в отдельную, как она узнает какие и куда?
>>682205Никак не узнает. На локалхосте это нинужно. Новых данных набьёшь. Во всяком случае я сомневаюсь что админы продакшена будут запускать миграции джанги на живом серваке. Это такая глупая попытка переложить ответственность на разработчиков. Разработчики в свою очередь забивают хуй в пользу автоматики south. В итоге получаем ненадёжный мусор вместо ясного плана миграции.Diff же может стать не просто кнопочкой сделать хорошо, а ещё и тулсетом-анализатором. В итоге админы могут например автоматически проверить все data loss/coercion на живых данных. South же просто разок спрашивает "ви таки уверены д/н", и разработчики на отъебись жмут да.
>>682223Ну была библиотека которая типа diff делала как ты хочешь. Вотhttps://github.com/beanbaginc/django-evolutionВот тут ещё какие-то есть не пробовалhttps://www.djangopackages.com/grids/g/database-migration/
>>682230Да не, ок. Я даже сам такое делал. Удобно пиздец. Просто тот факт что в джангу вшили south означает что 99% проектов будут использовать south, и всегда найдётся куча ОДЕПТОВ которые будут меня критиковать за то что НИСТАНДАРТНО.
>>682233Ещё до того как её вшили большинство использовало south.
>>682233И вшили его туда по просьбам трудящихся.
>>682236>>682237Ну вот и трудитесь, няши. Удачки.
Посоны, как сделать так, чтобы поток ожидал снятия блокировки (threading.Lock) и только потом выполнял код?
>>682414lock.acquire() будет блокировать поток пока этот lock не освободитсяhttp://www.bogotobogo.com/python/Multithread/python_multithreading_Using_Locks_with_statement_Context_Manager.php
>>682418Или просто with statement используй как по ссылке.
Спасибо!
popen как то кеширует данные в pipe?Мне нужно перегнать несколько Gb данных через него и не словить OutOfMemmory
>>682430Ну какбе пайп сам по себе это такой буфер, ОС ограничивает его размер. То есть send на передающей стороне в случае чего заблокируется.
from subprocess import Popen, PIPE, STDOUTimport jsonimport sysps = Popen(['ps', 'fax'], stdout = PIPE)proc = Popen (['grep', 'grep'], stdin = ps.stdout, stdout = STDOUT)proc.wait()input("PRESS ENTER TO CONTINUE.")>Traceback (most recent call last):> File "popen_test.py", line 6, in <module>> proc = Popen (['grep', 'grep'], stdin = ps.stdout, stdout >= STDOUT)> File "/usr/local/lib/python3.5/subprocess.py", line 950, >in __init__> restore_signals, start_new_session)> File "/usr/local/lib/python3.5/subprocess.py", line 1544, >in _execute_child> raise child_exception_type(errno_num, err_msg)>OSError: [Errno 9] Bad file descriptorПочему не работает?
>>681223>Почему доступ к int'овым ключам словаря насколько медленнее, чем к байтовым? http://ideone.com/cAWzu4Бамп вопросу. Я в теории кампутер саенса не шарю, как там это хеширование происходит конкретно.
Товарищи, выручайте. Не могу завести python-magic на венде. Дллки скачаны и прописаны в %PATH%, magic.mime и magic.mgc скачаны и прописаны в %MAGIC%, мэджик их ВИДИТ, но ругается длинным списком на каждую строку файла magic.mgc чем-то вроде "Warning: 'blabla' type invalid!". Олсо, большинство этих строк в консоли отображается кракозябрами, мб с кодировкой чего не так (хотя при этом другие строки вполне нормально указывают какие-то типы MIME).Все уже перетыкал, что на stackoverflow нашел.
>>682636>на вендеДальше не читал.>>682522Надо: proc = Popen(['grep', 'grep'], stdin = ps.stdout, stdout = PIPE)Почему? Потому что ты делаешь proc =, т.е. пытаешься получить вывод в питоне. А STDOUT выводит напрямую в терминал. Питон в данном случае последний элемент пайпа и для захвата вывода ему надо выводить на пайп.
>>681915List comprehension > map > forНо все зависит от задачи, лямбды медленней фора, если не ошибаюсь. Читал у Лутца.
>>682091А что не так?
>>682654>Дальше не читал.Пошел ты нахуй красноглазикпитон и на венде работает, а ты собака.
>>682704
>>682707Хорошо, что ты прекрасно справился с самоидентификацией.
>>682654>Потому что ты делаешь proc =Я делаю proc = потому, что питона не знаю.Мне не нужно обрабатывать вывод в скрипте, мне надо сразу напрямую в терминал
>>682722
Анончик, как в 'pygtk' сделать список с кнопками, чтобы ещё и прокручивался по горизонтали?
>>682735Зачем ты пикрелейтишь такоедвач же забанят
>>682740>Зачем ты пикрелейтишь такоеУчи мемесы чтобы не быть батхертом.
>>682740Прикрепил по ошибке. Каюсь.
>>682726Понятно, благодарю.
>>682741Ок
>>682704Это сложно назвать "работает". Так, подрабатывает. Ты же сам вот пишешь, какая это боль. На никсах или яблоке всё в два клика команды делается и чинится почти всегда.
>>682735Как-то так по-идее
Всё пизда пацаны. Роботы победили.https://www.youtube.com/watch?v=l-GsfyVCBu0
>>682783Да который раз уже. Только игру сменили. Ничего нового.
>>682756>Ты же сам вот пишешь, какая это больМаняфантазии. Скрываю тебя
>>682784До сих пор не могли создать программу, которая выигравала бы в го. Даже не у самых сильных игроков.Был даже приз в миллион долларов для того кто такой алгоритм создаст.
Какой агрессивный и одновременно безрукий виндузятник.
>>682788Маняфантазии
>>682784Как считается, сложность го для компьютера (по сравнению, например, с шахматами) вызвана двумя основными факторами:Большое число вариантов ходов[57]. В шахматах в начальной позиции существует 20 разных ходов, в го — 55, с учётом симметрии доски, но после нескольких первых ходов позиция утрачивает симметрию и далее число возможных ходов становится практически равным числу оставшихся свободных пунктов. Дерево вариантов при попытке просчитать партию вперёд на несколько ходов растёт существенно быстрее: если в шахматах после четвёртого полухода может возникнуть порядка ста тысяч позиций, то в го их число превышает шестнадцать миллиардов. Такие масштабы полностью исключают возможность «механического» перебора позиций, которым, в значительной мере, берут нынешние шахматные программы.Сложность формализованной оценки позиции. В шахматах давно и достаточно точно выработаны формальные критерии оценки позиции и определена сравнительная ценность фигур, а в го оценка позиции алгоритмизируется плохо. Компьютеру доступны пока только простейшие критерии качества позиции, что и определяет его возможности.С 1987 года фонд Инга (Ing Foundation) проводит ежегодный турнир среди компьютерных программ, победители которого получают денежные призы. Самое известное предложение фонда: «The Ing Challenge» — 40 миллионов тайваньских долларов (около миллиона евро) за программу, способную победить чемпиона среди тайваньских любителей. Пока приз остаётся невыплаченным.
>>682779Да, только кнопки должны быть в горизонтальном скролле.
>>682804Ну я vbox создал, а ты hbox создай. без разницы
>>682807Скинешь исходники?
>>682804
>>682808Какие исходники? Я просто в glade форму набросал.Ну собственно без glade создаешь ScrolledWindow, внтурь добавляешь ViewPort, а в него hbox. На hbox pack_start/pack_end кнопки
>>682808
>>682813Убрать вертикальный скролл тоже можно
>>682813>>682814Спасибо.
Всем привет! Вопрос такой: три года на питоне, ушел из php. Недавно подкинули жирный заказ на сайтик, срок месяц. Хочу попробовать себя на джанге, но не знаю, осилю ли? Верстка и дизайн уже готовы. Стоит ли браться за джангу? Есть опыт с торнадо, если это хоть как-то улучшит ситуацию
>>682861Ну ты когда-нить с mvc фреймворками работал?Вообще не вижу проблемы, возьми и почитай туториал по джанге это пол часа занимает.
>>682871Да конечно работал, codeigniter, kohana, yii... У меня есть шансы?)Спасибо тебе, мил человек!)
>>682893Ну там принципы такие же - шаблончики, модели, объекты request/response, сессии, orm, формы.
>>682811>ViewPortне нужен же вроде. scrolledwindow + бокс внутри.
>>682939
>>682735Анон, а почему pygtk, а не qt?
>>682987Вы заебали. Очень много советчиков qt, но софта почему на нем нихуя нет, особенно на pyqt/pyside. Вообще.В тоже время на pygtk дофига известного софта - gajim, gwsmg, meld, mirage, deluge, exaile, pitivi и так далее
>>682999Не бугурти так.
Think Python есть на русском?
Анон, совсем затупил за день.Как мне проще передать на сервер через socket два числа, чтобы с ними провести операции? Я их превращаю в строку и отправляю, но если их кодировать в байты то мой сервер постоянно выводит с ними в строке b'.Как от него избавиться или как мне задачу проще сделать?шесть пар было, правда туплю уже сижу.
>>683070import struct
>>683058да, гуглится на каком-то то линукс форуме в первой строке
Такой, казалось, простой вопрос, но никак не соображу. dict = {'k':'test'}b = dict.get('k', None)Теперь мне надо значение b перегнать в байты. При том что b может быть как строкой так и None. Как это сделать лаконично.
>>683090>Как это сделать лаконично.Вопрос проебал. Нувыпонели.
>>683090if isistance(b, str): b.encodeЭто не лаконично?
>>683099Это лишняя строка.
>>683090>Теперь мне надо значение b перегнать в байты. При том что b может быть как строкой так и None. Как это сделать лаконично.Нахуя ты сам себе яму выкопал, а теперь её перепрыгнуть пытаешься?
>>683108Потому что это надо передавать в функцию, которая принимает только байты и None.
Умеет ли Володя Питун под Питона кодировать?
>>683134На сосач быдло
>>683135Электорату Володи Питуна неприятна.
>>683090b = d['k'].encode() if 'k' in d else NoneВ итоге так воткнул, и ни одной лишней строчки.
>>683172Говнокод
>>683175Дай вариант лучше.
>>683176Все говно.foo = dict.get('k', '').encode() or NoneТоже говно и семантика другая
>>683179Выглядит чуть менее всрато. Взял твое, спасибо.
Питонач, посоветуй днище vps под джангохостинг.
>>682987Анон, а почему тройка а не двойка?
>>683215https://poiskvps.ru/
>>683215https://lowendbox.com/
Аноны, с чего начать изучать kivy и какие есть гайды кроме того что на офф сайте?
Анон, я выучу питон? Скажи, что выучу. Я же смогу.
>>683273Зачем учить это бесполезное говно? учи сразу ruby или java. или с++
>>683276Зачем учить это бесполезное говно? учи сразу haskell.
>>683276>ruby>не бесполезное говноТы же понимаешь что даже если полезешь за фактами то жиденько обосрешься, верно? Как и тысячи рабифанатиков до тебя.
Анон что мне выбрать двойку или тройку для новых проектов?
Анон, что лучше выбрать новичку: фласк или джанго? Поясните за плюсы и минусы каждого.
Анон, как мне научиться гуглить и читать шапку?
>>683282Двойку конечно. Под тройку тупо нет библиотек и дохуя проблем.
>>683287Есть контакт.
>>683278Двачую.
>>683290посмотри на pypi сколько библиотек поддерживают трешку.
>>683276Не могу в джаву. Сложно. ruby не хочу.
>>683296Сколько депрекейтед говна было дропнуто с переходом на тройку. Говна, на которое забили не то что пользователи, но и авторы. А все что надо либо портировали, либо переписали.
>>683304И новые библиотеки никто не парится бекпортить на устаревшую двойку.
>>683276Есть только 2 нормальных языка программирования: лисп и ассемблер
>>683311Многие новые библиотеки выходят под двойку потому что тройка никому нахуй не впилась кроме студентов.
>>683316
>>683316На двойке продолжают сидеть вахтёры и нытики типа Ронахера.
>>683334Ронахер со своим РУСТом ебанулся.
Вчера обращался на счёт 'pygtk' и 'ScrollWindow'. Вот.Как можно сделать прокрутку списка с помощью кнопок? То есть, делаю кнопки, конекчу событие и список прокручивается.
>>683443У scrolledwindowadj=sw.get_hadjustment()adj.set_value(adj.get_value()+10)Короче идею понял.Вроде можно этот adjustment как-то привезять к каким-то другим контролам сразу лень щас смотреть, но ты можешь просто повесть вот эту хрень на события кнопки
Изменение глобальной переменной всего одна на 3к строк из функции - зашквар или нет?
>>683544Нет. Глобальные переменные это не всегда плохо, иногда это даже незаменимо. Сейчас набигут кукаретики которые всё оборачивают в классы, даже main, даже аллаха.
>The WebAssembly project to improve the Web's performance now has experimental implementations in place for major browsers. In fact, WebAssembly could be ready this year on several browsers. Заживем.
>>683548Нет/не для всего. Я уже пояснял почему.
>>683549>As a first step, in the minimal viable product, the goal is to ensure that a C/C++ program can be compiled to WebAssembly and run within the browserОстальные языки тоже подтянутся. Или еще какие подводные камни есть?
>>683552Понимаешь, сишечка-то она компилируемая. И в среде asm.js у неё практически нет рантайма (нет например printf, cout, fopen, iostream и прочего, если ты конечно сам не подключишь облегчайзеры жизни из emscripten). А у питона есть довольно жирный рантайм, который тебе каждый раз придётся скачивать чтобы взлететь.
Хотя я на самом деле не знаю что будет если питон основательно обрезать до уровня интерпретатора. Но сомневаюсь что кто-то асилит. Ну по крайней мере pypyjs вроде как работают над этим.
>>683564Есть micropython для микроконтроллеров, например. Если уж змея туда пролезла то в веб, где люди на каждый чих подгружают жквери и ангуляр, пролезет тем более.
>>683569Ну знаешь ли, контроллеры тоже разные бывают. Я считаю что микропитон это скорее глупость чем полезность. Ну или способ помигать светодиодом совсем легко и быстро. Но в целом конечно вектор правильный, под asm.js лучше компилять вот такой вот минимальный рантайм.Но во-первых нужно запилить систему импорта. Во-вторых вырезать/переделать всякие open/print и прочие билтины. В-третьих вырезать/переделать большую часть стандартной библиотеки. То есть даже с выходом полностью стабильного webassembly (хотя нахуя ждать ассембли если уже давно есть и работает emscripten+asm.js?) соответствующая реализация питона будет выходить ещё очень долго.
>>683582Что глупого-то? Я вот на работе планирую его использовать.
>>683754Под сишечкой микруху можно значительно дешевле брать для той же задачи. Вот почему.
>>677889 (OP)Пацаны, у меня тупой вопрос нуба.#!/bin/pythonimport sys,randomfrom time import sleepdef GetRandString(parts,partlen,separator): return separator.join(''.join(random.choice('0123456789ABCDEF') for x in range(partlen) for y in range(parts));if len(sys.argv)==4: for rows_counter in range(0,int(sys.argv[3])): print(GetRandString(int(sys.argv[2]),int(sys.argv[1]),' ')) sleep(0.05)elif len(sys.argv)==3: try: while True: print(GetRandString(int(sys.argv[2]),int(sys.argv[1]),' ')) sleep(0.05) except KeyboardInterrupt: print('')Как правильно определить функцию чтобы потом на if не ругалось?
Смотри, анон, кокая годнота https://github.com/alexjc/neural-doodle
>>683880Все ОТСТУПЫ сломал, еблан, пастебин для кого придумали?
>>683914Вотhttp://pastebin.com/DFHqpjxK
>>683915И че ты хотел сделать?Чтоб в функцию разное кол-во переменных передавалось, гугли args kwargs.Если рабочую консольную утилиту, то гугли arg parser'ы всякие. https://docs.python.org/3/library/argparse.htmlИли сорцы входящих в поставку утилит.
>>683915''.join(random.choice('0123456789ABCDEF') for x in range(partlen)Для этого есть random.sample
>>683936>И че ты хотел сделать?Хуевую консольную утилиту.И таки разобрался. Скобку проебал.
>>683943Сэмпл вернет список байтов а мне нужны строки.
>>683962проверку аргументов ещё заебашь.
>>683965Чего? Каких байтов, наркоман?In [1]: s='0123456789ABCDEF'In [2]: from random import sample as samIn [3]: sam(s, 10)Out[3]: ['3', 'B', 'D', '8', '9', 'C', '5', 'E', '0', 'A']In [4]: ''.join(sam(s, 10))Out[4]: '6381AD25CB'
>>683978Окей, в глазки надо меньше ебстись.Сейчас переделаю с сэмплом.
Как-то так вышлоhttp://pastebin.com/JHd6LYc7
Нее, хуйня вышласэмпл ругается если я пытаюсь сделать комбинацию из 20 символов (больше 16 на самом деле)
>>683993Да я ж нубло тупое в питоне. Пусть зубры пилят. А то впердолю хуйню в шапку и краснеть потом.
>>683999Шапку не сложно сокипастить, ничего нового не надо. Ну и да, №500 пилит перекат.
>>683990А, ну значит он без повторов выбирает.
>>684002>NameError: name 'perecot' is not defined
>>684002Вотhttps://2ch.hk/pr/res/684010.html
Сами напросились. Пили перекот да пили перекот бля.
>>684011да похуй вобще, оставь два for. Как осилишь итераторы, генераторы на них все перепишешь.
https://corp.mail.ru/ru/press/events/189/18 марта, в пятницу, приглашаем на MoscowPython Meetup 33 в офис компании Mail.Ru Group.
>>684391Нахуй иди.
>>683943random.sample это не тоже самое> Chooses k unique random elements
>>683832Ты так говоришь будто из своего кармана платишь. Вон плисы все берут и похуй, что оверхед, главное быстро и гибко.
Кто нибудь пользуется Ipython (консоль-редактор)? Чото я забался закрывать редактор, открывать коносоль, вводить алиас на выполнение. Есть туториал на русском7 Чо там как делать?
>>684391Возмите меня на Почту, я умею в sort()
>>684391Ты здесь? Ты из Почты? Запиши на телефон вот эту и выложи на ютуб: Лев Тонких, Rambler&Co «iPython & Jupyter: 4 fun & profit» На русском совсем нет инфы по ipython
Посоны, прохожу питон на кодакадеми, довольно часто лезу в подсказки и чувствую себя мегатупым. Это нормально? Или я обречен? Самообразовываюсь после вьебинга на работе, может от усталости так хуево въезжаю? Вроде и орехи ем. Я расстроен, короче.
Я пытаюсь скачать через requests html-текст с вот этого сайта http://www.goodreads.com/Использую requests.SessionНо я не знаю какие headers передавать чтобы скачать именно mobile версию, а не desktopМожете помочь?
>>679022ой умри нахуй пидарас и мама твоя пусть умрет нахуй и твой отец пусть умрет нахуй, а твоего деда я ебал, понял?