Этого треда уже нет.
Это копия, сохраненная 5 апреля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
183 Кб, 2000x2000
Python Python #677889 В конец треда | Веб
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Прошлый: >>671902 (OP)

2.х или 3.х: 3
>>683880
140 Кб, 1920x1080
#2 #677892
2.x или 3.x: ruby
>>677894>>679151
#3 #677893
heroku или openshift
#4 #677894
>>677892
Рабидаун, спешите видеть. Как там мамкины борщи?
>>677903
#5 #677903
>>677894
Красные и несъедобные. Как раби.
#6 #677920
https://github.com/andrewgodwin/channels/

Анонасы, после введения channels в джангу сможем ли мы использовать ее для полноценного риалтайма?
>>677939>>678036
#7 #677939
>>677920
Какие выгоды перед например раздельным использованием aiohttp?
#8 #678036
>>677920
Хм я что-то такое видел тыщу лет назад для джанги.
Выглядит как костыль. Но посмотрим.
#9 #678402
Как проверить был ли запущен цикл? Я сначала понадеялся на
for x in l:
..pass
else:
..print('empty')

Но else в for совсем другое делает, наоборот выполняясь только когда цикл завершился без break.
>>678416
#10 #678416
>>678402
for x in l:
....print('Внимание! Цикл в работе!')
А если серьезно, то непонятно чего ты хочешь.
>>678426
#11 #678426
>>678416
Мне нужно совершить действие если цикл не прошелся по списку ни разу. Можно конечно сделать (в случае с пустым списком)
if l:
..for x in l
else:
..print('empty')
Но нет ли чего более питоничного?
>>678454>>678460
#12 #678454
>>678426
и так питонично у тебя

>Explicit is better than implicit.


не забывай
>>678456
#13 #678456
>>678454
Не хочу лишнюю строчку с ифом.
>>678475
#14 #678460
>>678426
Прочитай уже документацию по foreach дибилушка
>>678468
#15 #678468
>>678460
Нахуй путешествуй.
#16 #678475
>>678456
То есть лишняя строчка с else тебе не беспокоит, а if not i: print(empty) неприятна. Не понимаю я этой неприязни к if.
>>678477
#17 #678477
>>678475
Если бы for else выполнялся при неудачном for, а не наоборот, то было бы всего 2 дополнительных строки - сам else и действие. А так еще if добавляется. Целых три.
>>678480
#18 #678480
>>678477
if l: print('empty')
for x in l:
....pass

И зачем тут else?
#19 #678483
>>678480

>if not l


Вот так, вернее.
#20 #678505
>>678480
А, ну да. Ты прав.
#21 #678628
Чем вы пишете GUI?
>>678675
34 Кб, 1009x856
#22 #678636
Ебать вы тут треды быстро перекатываете.
Ребята, правильно делаю, что ебашу конспект с кодакадеми ?
Решил начать учить с кодакадеми, а то я не понял первую же задачку из книги укус питона
>>679193>>679278
890 Кб, 3111x2489
#23 #678640
Почему модуль 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, то там выделяются все строчки с файлами.
Таки где я наебался?
>>679102>>679160
#24 #678653
Реквестирую интерактивный отладчик с гуём.
>>678711
#25 #678675
>>678730
55 Кб, 797x581
#26 #678711
>>678653
pyscripter
>>678713>>678717
#27 #678713
>>678711
+совмещенный с блокнотом, да
#28 #678717
>>678711
Пользовался им когда только начинал в питоне, лет 6 назад. Постоянно сталкивался с какими-то проблемами в кодировке, в итоге перешёл на Geany. Да и плюс ко всему он только для винды.
#29 #678730
>>678675
А почему не PyQt?
>>678750
#30 #678750
>>678730
Потому что я только под прыщи гуй пишу и использовать монструозный и уродливый куте смысла не вижу, но если речь о кросплатформе то кроме pyqt вариантов нету.
#31 #678786
Сейчас пилю на PyQt. Все достаточно мило выглядит. И несложно делать.
>>678801
#32 #678801
>>678786
Кути - убогое, раздутое наследие крестов, пользователи которых без кутей как без костылей. Там и qstring и qbytearray и qint и qlist и qwebkit и qopengl и qnetwork и qsql и qsky и qallah. Собственно от байтослесарей форс этих костылей и идет. В нормальном языке кути не дают абсолютно ничего кроме раздувания проекта до уровня жабы. И что самое забавное - это пустая вонь и хайп, примерно как от руби. Большинство софта все равно пишут на gtk.
#33 #678850
>>678801
Интересно.
#34 #678902
>>678801
Может ты и прав. А на чем писать gtk?
59 Кб, 597x595
Объясняйтесь давайте #35 #679022
Вот я и нашел вас, суки! Хули вы мне пиздели, что ваш Питон годен для всего? Ну вот изучил я его базовый синтаксис, чтобы накидать себе небольшой скриптик. И что же я вижу? А то, что эта хуета обрабатывает мне 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 МБайт/с). Пиздец. У меня микроконтроллер на Си быстрее бы эту хуйню посчитал.
#36 #679026
>>679022
Весь код давай, ёпта. По этим кускам ничего не скажешь, это раз. И никто вот так
inputFile.read(2)
не делает. Читаешь весь файл в строку и работаешь с ней. Ещё бы не 8 минут оно читало, по два байта то.
>>679032
#37 #679027
Как смотреть время выполнения скрипта?
>>679029
#38 #679029
>>679027
time ./script.py
>>679041
#40 #679032
>>679026

>Читаешь весь файл в строку и работаешь с ней


Охуеть. А если у меня там 10-ти гиговый файл? Алсо, там буферизованный ввод/вывод должен быть по дефолту, судя по докам.

>>679026

>Весь код давай, ёпта.


Ну ладно: http://pastebin.com/MrduVd9M
#41 #679041
>>679029
спс
#42 #679051
>>679032
Ты бы на каждой строчке ещё try напихал. Применение его там, где не нужно - очень плохая практика. В блоке try-except оставь только операции открытия/создания файлов, а всё остальное вынеси наружу.
>>679057>>679111
#43 #679054
>>679031

>This module performs conversions between Python values and C structs represented as Python bytes objects


Но мне на биты надо разбивать, а там про это нет ничего или я просто в глаза долблюсь.
#44 #679057
>>679051

>Применение его там, где не нужно


Но мне оно нужно там! Без try мне пришлось бы городить двухуровневый if, плюс при использовании try, блок finally закроет мне все файлы, если я внезапно решу выбросить ошибку где-нибудь уже после открытия файлов.
>>679060>>679283
#45 #679060
>>679057

>Но мне оно нужно там!


Зачем?

>Без try мне пришлось бы городить двухуровневый if


Зачем?

>блок finally закроет мне все файлы, если я внезапно решу выбросить ошибку где-нибудь уже после открытия файлов


Если перепишешь нормально, то ничего не выбросит.
>>679065
#46 #679065
>>679060

>>Без try мне пришлось бы городить двухуровневый if


>Зачем?


Затем, что там происходит две проверки: на правильный аргумент и на правильную длину файла. Если понадобиться проверить что-то еще, то будет и третий и четвертый уровни. Блоки try тащемта для того и придумали, чтобы не городить вложенность.

>>679060

>Если перепишешь нормально, то ничего не выбросит.


1. write/read может выбросить ошибку. В нормальныхдругих языках io-функции вообще вне try-блоков вызывать нельзя.
2. Я сам в будущем могу решить добавить какую-либо проверку и хочу быть уверен, что произойдет закрытие файлов в случае ее не выполнения.

Алсо, напомню, что проблема сейчас заключается в скорости, а не корректности обработки ошибок.
>>679068
#47 #679068
>>679065
Блоки try придумали, чтобы возникшие ощибки обработать, а не чтобы заменять ими ifы, которые могли бы эти ошибки предотвратить. Не хочешь убирать try - страдай, или переписывай на крестах.
>>679076>>679117
#48 #679072
Байтослесари не могут в программирование. Впрочем, ничего нового.
#49 #679076
>>679068

>Не хочешь убирать try - страдай


А какое собсно отношение try имеет к скорости выполнения программы? Если исключение не выбрасывается в каждой второй строчке а у меня оно не выбрасывается, то и снижения производительности из-за исключений быть не может.
#51 #679107
>>678480

>И зачем тут else?


вообще то много раз слыхал что проверять ситуацию ДО действия это не питонично. Мол, надо делать, а там уже куда кривая американской мечты.
В этом случае for-else выглядит будто Гвидо сам начертал
>>679110
#52 #679110
>>679107

>вообще то много раз слыхал что проверять ситуацию ДО действия это не питонично.


Есть такое, типа экспешн обрабатывайте лучше, а не проверки на всё возможно делайте, но лично мне это не нравится, например.
Однако, for-else для совсем другого сделан.
#53 #679111
>>679102

>https://docs.python.org/2/library/re.html#re.match


нахуй пошел
>>679051

>ы бы на каждой строчке ещё try напихал. Применение его там, где не нужно - очень плохая практика.


ты должен это пруфануть или обосновать.
>>679112
#54 #679112
>>679111

>нахуй пошел


Кек, насколько зол, что уже видишь плохо? Этот пост был адресован анону с регэксп-проблемой.
>>679118
#55 #679117
>>679068

>Блоки try придумали, чтобы возникшие ощибки обработать, а не чтобы заменять ими ifы, которые могли бы эти ошибки предотвратить


Ровно блять наоборот.
#56 #679118
>>679112

>Кек, насколько зол, что уже видишь плохо? Этот пост был адресован анону с регэксп-проблемой.


Ну, я когда скролю и вижу ответы с тупой отсылкой в доки/гугл то рвусь. Даже не глядел на контекст.
>>679122>>679252
#57 #679122
>>679118
Ну и дурашка.
#58 #679138
>>679032

>Охуеть. А если у меня там 10-ти гиговый файл?


А в чёс проблема делать десятигиговый на маленькие 30-мегабайтовые?

В любом случае, чтения не такая проблема - у меня за 10-20 секунд по два байта читается 32мб файл (ультраслоу компьютер)

Оптимизируй свои операции по выискиванию нужных битов. Например, задействуй видео-карту, она как раз любит миллионы одинаковых и независимых действий - https://mathema.tician.de/software/pyopencl/
>>679338
#59 #679151
>>677892

Haskell.
#60 #679153
Котики подскажите, а как у питона дела с разработкой мобильных приложений? Удобно ли?
>>680064
#61 #679160
>>678640
1. Тебе нужно findall использовать
2. Зачем такой ебанутый регэксп? Неужели проще нельзя? Если не IMG.#\.jpg, то уж хотя бы (.#?: )(.#?\.jpg) [# - это звёздочка]
#62 #679193
>>678636
Можешь (и наверное это и лучше всего) параллельно кодекадеми просто Луца читать по темам - этот сучёнок разжуёт так что не понять невозможно
>>679194
#63 #679194
>>679193
Спасибо, хоть кто-то ответил
21 Кб, 409x316
#64 #679252
>>679118
Да, ведь твой pront вместо print или неверное использование функции это ахуеть проблема, и обязательно нужно править именно твой код, ведь ты, долбоеб, не удосужился почитать что пишут в доках/выдает гугл.
>>679594
#65 #679264
А что там насчет работы с многопоточными брутами 500-1000 потоков? Если есть мысли как такое сделать на питоне (кроме костылей с 30 процессами по 30 потоков), с удовольствием выслушаю
>>679267
#66 #679266
>>678801
Ну, можно не использовать 90% qt. Только окошки, виджеты, модели-вьюхи. Остальное-то в пифоне заебись. Или твой бомбинг из-за размера бинарников? Тогда вообще странный аргумент.
#67 #679267
>>679264
Это не костыли, это GIL. В гениальном раби так же, например.
>>679271
#68 #679271
>>679267
Не, ну а как например в С/С++ можно сделать, без костылей этих?
>>679275
#69 #679275
>>679271
Если один твой брут не жрет по минуте процессорного времени а зависит от io, то делается легко с помощью asyncio. Если надо что-то считать с труЪ многопоточностью то мультипроцессинг.
#70 #679278
>>678636
Зачем ты учишь устаревшую версию? Ты что, ебанутый?
>>679280
#71 #679280
>>679278
А где и какая новая ?
>>679381
#72 #679283
>>679057
Конструкция with..as сама закроет. Нужно лишь прочитать весь файл целиком.
>>679338
#73 #679288
>>679032
Похоже на типичную ошибку join'а строк.
>>679306>>679338
#74 #679306
>>679288
Что за ошибка?
#75 #679335
Хочу выучить питон, неплохо знаю джаву, поэтому посоветуйте с какой книги стоит начать?
>>679341
27 Кб, 400x322
#76 #679338
>>679283

>Конструкция with..as сама закроет


А 16 файлов для записи она мне тоже закроет в случае какой-либо ошибки?

>>679288

>на типичную ошибку join'а строк


Но я их не джоиню миллионами, а пишу сразу в файл. Или ты про singleChannelSample + '\n'? Ну дак даже если эту строчку закомментить, то все-равно жве минуты процесс идет.

>>679138

>А в чёс проблема делать десятигиговый на маленькие 30-мегабайтовые?


В том что нахуй такое делоть, когда там буферизованный ввод/вывод итак есть.

>>679138

>Например, задействуй видео-карту


Пиздос. Мне просто по порядку надо байт на биты разбить, а он мне видеокарту предлагает. Походу придется на нормальном яп переписывать...
>>679362
#77 #679341
>>679335
Для начала посмотри вот это презентацию http://legacy.python.org/doc/essays/ppt/sd99east/index.htm Она хоть и старая, но эти основные моменты языка не изменились, кроме print. А потом какую-нибудь книжку параллельно с заданиями. НАсчёт книги не подскажу, сам не читал, но вроде Укус питона неплох. А задания на checkio.org
>>679344
#78 #679344
>>679341
Добра анон.
#79 #679362
>>679338
Ты похоже просто потралить зашел, намеренно игнорируешь все ответы и придумываешь какие-то маняотмазки, постоянно упоминая про НОРМАЛЬНЫЕ ЯП. Нахуй путешествуй.
>>679368
#80 #679368
>>679362

>Ты похоже просто потралить зашел


Нет. Давай разбираться вместе:
1. Дело не в блоках try. Вот пруф: http://stackoverflow.com/questions/3929837/python-if-vs-try-except
2. Дело не в записи/чтении, ибо если все io операции убрать, то все-равно затрачивается жве минуты.
В чем тогда может быть дело? Вангую, что в разборе на биты. Тогда возникает вопрос, как это сделать более эффективно, но без видеокарты, ибо это - явный овекилл.
>>679386>>679456
#81 #679378
https://www.shoop.io/en/

Кстати, может кому надо интернет магазин на джанго - так вот есть штука новая какая-то. Выглядит модно, что внутри не знаю. Сегодня буду разбираться.
#82 #679381
>>679280
python 3.5
>>679383
#83 #679383
>>679381
А я какую учу ?
В кодакадеми получается старый питон ? А где нвоый можно выучить ?
>>681681
#84 #679386
>>679368
Прогони каким-нибудь профайлером, тысячи их.
>>679459
#85 #679456
>>679368
Ну так запили синтетический тест, прогони разборку пару тысяч раз и замерь времяю
>>679459
#86 #679459
>>679456
>>679386
Хорошо, попробую сейчас. Алсо, я тут уже ускорил работу в два раза заменив тестовую запись на бинарную.

Вот вы мне скажите, а вашем питоне компилить скрипты можно, чтобы получить выигрыш в производительности или у вас там итак JIT и вся хуйня?
#87 #679460
>>679459
Можно скомпилять сразу в байткод .pyc, но скорость работы это не увеличит, только скорость запуска.
#88 #679466
>>679459
http://pastebin.com/Q7C8rALx
Что это значит, посоны?
#89 #679468
>>679466
Это значит, что больше всего времени у тебя заняло ожидание input
>>679476
#90 #679472
Кто-то проходил курсы на codeschool? Хватит ли месяца, чтобы научиться чему-то большему, чем на codecademy? Думаю взять аккаунт на месяц по скидке, но не уверен, что научусь чему-то большему, чем на codecademy.
>>679572
#91 #679476
>>679468
Лол, это я убрать забыл прост))
А так? http://pastebin.com/Bh8gSgzA

>{built-in method builtins.exec}


Что это такое?
>>679481>>679485
#92 #679479
>>679466
Ест line_profiler, показывает затраченное время построчно. Возможно тебе с ним понятней будет. Но в целом у тебя там в io упирается.
>>679491>>679495
#93 #679481
>>679466
>>679476
В общем, прогнал я твой скриптик на файле 333 Мб, и основное время занимает твой getBit из-за большого количества вызовов. Как решение, вижу только сокращение количества вызовов, больше ничего придумать пока не в силах.
>>679491
#94 #679485
>>679476

>Что это такое?


Запуск скрипта, видимо.
Смотри tottime - суммарное время выполнения.
#95 #679491
>>679481

>основное время занимает твой getBit


Я его убрал в последней версии, заменив однострочником: http://pastebin.com/6CFzXKFb
Уменьшить вызовы никак, ибо надо каждый байт обработать. А нет у вас в Питоне более быстрых способов битоёбства?

>>679479

>Но в целом у тебя там в io упирается


Как же io, когда там это

>1 0.000 0.000 8.952 8.952 {built-in method builtins.exec}


больше всего гадит?
>>679495
#96 #679495
>>679491

>>1 0.000 0.000 8.952 8.952 {built-in method builtins.exec}


>больше всего гадит?


Вру. Гадят внутренности скрипта. Т. е. >>679479 прав, надо построчно прогнать.
>>679504
27 Кб, 643x506
#97 #679504
>>679495
Запихнув в однострочник, ты ничего не изменил.
Вот что у меня получилось в одном из тестов.
>>679514
28 Кб, 343x256
#98 #679507
По питону существуют вообще годные книжки с задачами после каждой главы и послойным изучением материала?
>>679615
#99 #679510
Откуда там вообще exec берётся?
#100 #679514
>>679504
А getBit почему у тебя там тогда? Я же убрал его совсем.
>>679527
#101 #679527
>>679514
Это старый скрипт. Тут лучше видно просто, а суть не меняется, битовые операции никуда не делись.
>>679535
#102 #679535
>>679527

>битовые операции никуда не делись


Конечно, ведь они нужны мне. Может есть более эффективный способ разобрать байт на биты?
>>679564
#103 #679564
>>679535

Не по одному вытаскивать, а сразу все
>>679581
#104 #679572
>>679472
могу дать акк с активированной подпиской на месяц
>>679573>>679575
#105 #679573
>>679572
хотя на кодакадемии попроще, там не видео а текстом
#106 #679575
>>679572
Давай.
>>679611
#107 #679581
>>679564

>сразу все


Как так? Мне их надо по разным файлам растащить же.
>>679589
#108 #679589
>>679581
for i in f.read():
int(bin(i)[j])
>>679658
#109 #679590
>>679459
Вроде jira как раз для этого компилирования
#110 #679594
>>679252

>Да, ведь твой pront вместо print или неверное использование функции это ахуеть проблема, и обязательно нужно править именно твой код, ведь ты, долбоеб, не удосужился почитать что пишут в доках/выдает гугл.


После "твой" можно было бы и не читать, аутист ебаный.
Но интересно узнать, однако, насколько ты был доволен собой кинув ссылочку на гугл? Почуствовал что помог анону?
#111 #679611
>>679575
мыло давай
>>679613
#112 #679613
>>679611
b14lZa78911ANUStrb@sKvnPUNCTUMcL=Com
>>679642
#113 #679615
>>679507
Dowson, Think Python, Core Python programming
>>679617
#114 #679617
>>679615
Пробовал. Рассказывает, как писать свой сервер. Нахуй надо.
>>679620>>679633
#115 #679620
>>679617
Остальные две попробуй тогда
#116 #679633
>>679617
Кто рассказывает как сервер писать, Доусон? Разве он не на примере игр учит?
>>679639
16 Кб, 750x415
#117 #679635
>>679642
#118 #679639
>>679633
Core programming
>>679672
#119 #679642
>>679613
>>679635
какой злой анон шалит.

я выслал.(brovko)
>>679643
#120 #679643
>>679642
Есть. Спасибо.
>>679645
#121 #679645
>>679643
1 месяц остался там
>>679648
#122 #679648
>>679645
Вижу. Сейчас начну надрачивать питон. Спасибо, Анон.
>>679656
#123 #679656
>>679648
Не за что. Развивайся и познавай.
#124 #679658
>>679589

>int(bin(i)[j])


Ты хочешь сказать, что конвертирование байта в бинарную строку и извлечение отдельных символов будет быстрее чем битовые операции с целыми числами?
>>679702>>679727
#125 #679672
>>679639
Стоит читать или она для совсем новичков?
>>679785
#126 #679702
>>679658
Ща проверю
#128 #679739
>>679727

>for j in bin(i)[2:]


Всегда ли bin выдает 8 знаков? Я имею ввиду, если я подам ей на вход 1, то она выдаст мне 0b00000001 или же 0b1?
>>679744
#129 #679744
>>679739

>Всегда ли bin выдает 8 знаков


Нет. Делай что-нибудь типа
b=bin(a)
for channel_number, value in enumerate(b[::-1][:-2]):
channels[channel_number] = value
>>679747>>679753
#130 #679747
>>679744

>Нет.


Тогда понятно почему там побитовые операции проигрывают.

>>679744

>Делай что-нибудь типа


Не мог бы ты вкратце пояснить суть этого?
>>679750>>679753
#131 #679750
>>679747
bin выдаёт запись вида 0b10101010101. Т.к. тебе нужны атомы в порядке возрастания, ты переворачиваешь строку через [::-1], а потом тебе нужно избавиться от оставшихся 0b, т.е. ты делаешь [:-2].
>>679759>>679977
#132 #679753
>>679744
>>679747
Я попробовал делать как-то так
multiChannelSample = inputFile.read(1000)
bits = bin(int(multiChannelSample.hex(), 16)).lstrip('0b')
if multiChannelSample == b'':
....break
for i in bits:
....singleChannelSample = '+1' if (bool(i)) else '-1'
И знаете, прирост есть, но совсем маленький. Думаю, и ваш вариант много пользы не принесёт.
>>679756
#133 #679756
>>679753
if multiChannelSample == b'':
....break
перенеси в условие цикла, а
....singleChannelSample = '+1' if (bool(i)) else '-1'
замени на
....singleChannelSample = i and '+1' or '-1'
ну и в bits у тебя порядок будет старший->младший
>>679764
57 Кб, 640x426
#134 #679759
>>679750
Тогда bin еще нулями дополнить надо. Алсо, зачем переворачивать, когда можно просто с обратной стороны циклом пройти. К тому же, я по прежнему не уверен, что текстовые манипуляции окажутся эффективнее.

В общем вы не обижайтесь посоны, но я наверно обратно на свой петушиный сисярп перекачусь или даже на си. Не дорос я до вашего питона, видимо.
#135 #679764
>>679756
Да толку-то, проще это время потратить на ожидание выполнение старого скрипта, попивая чай, чем пытаться эти секунды выиграть. Я так, из любопытства, пытаюсь помочь в меру сил.
>>680057
#136 #679765
>>679759

>Тогда bin еще нулями дополнить


Можно, но не обязательно

>зачем переворачивать


Затем, что так гораздо удобнее

>К тому же, я по прежнему не уверен, что текстовые манипуляции окажутся эффективнее


Так проверил бы у себя. Я ж тебе даже результаты кидал.
>>679775
#137 #679775
>>679765

>Я ж тебе даже результаты кидал


Ты об этом >>679727? Если да, то я как раз и указал на их некорректность вопросом про bin. То, что он не всегда дает на выходе 8 символов, позволяет ему выиграть во времени из-за меньшего числа итераций в for j in bin(i)[2:]. На реальных же данных 1 и 0 будут встречаться с одинаковой частотой, поэтому строки будут почти всегда длинной в 8 символов и такого выигрыша не получится.
268 Кб, 1254x978
299 Кб, 1263x983
417 Кб, 1256x977
354 Кб, 1256x978
#138 #679785
>>679672
Сам только начал читать, пока доставляет. У меня проблема была что я питон за 3 месяца выучил, кодить могу шоугодно, а что именно кодить - не знаю. Понимаю о чём базарят итт почти полностью например, а самому ни единой идеи где такое применять.
Ладно, по книжке: совсем элементарщину не рассказывают, примеров кода я так понимаю каноничного, правильного - достаточно. На всякий случай объясняется, но без деталей, в двух словах.
>>679787>>679896
#139 #679787
>>679785
Полным нубасам не пойдет? До питона знал что-то?
>>679791
#140 #679791
>>679787
Лет 15 назад кодил на делфи5, лет 8 назад - на пехопе. Без классов, ооп и прочего, на уровне echo '<p>hello</p>'
Для полных нубасов думаю в самый раз 1) кодекадеми+лутц 2) доусон / укус 3) думай, питон! (think python)
а остальное уже опциональное и сам разберёшься надо-не надо
>>679795>>679796
#141 #679795
>>679791
Главное начать, а знания по необходимости уже можно нагуглить.
#142 #679796
>>679791
Лутц пиздец скучное говно. Доусон поинтерейсней, но примеры на ИГРАХ ВИСИЛИЦА ПОКЕР - это пиздец. Попахивает старым пердежом. Единственная годнота - кодакадеми и укус. Думай, питон! не читал.
>>679798
#143 #679798
>>679796
Лутц это справочник, блин. От вас никто этого не скрывает включая лутца. Поиграл на кодекадеми по теме "работа со строками" - полистал Луца. Не вызубрил, не скопировал всё написанное, а полистал.

Читни думательного питона, я так до сих пор из овер 10 книжечек считаю его лучшей (ну или во всяком случае мне больше всего именно она помогла)
>>679820
#144 #679820
>>679798
Ну вот закончу курс на codeschool от доброАнона, который выше акком поделился и читну. Спасибо.
>>679869
#145 #679869
>>679820
re.search('^yyy', 'xxx') == re.match('yyy', 'xxx') ?
#146 #679896
>>679785
Как она на русском называется?
>>679897
#147 #679897
>>679896
PYTHON СОЗДАНИЕ ПРИЛОЖЕНИЙ
УЭСЛИ ДЖ. ЧАН
>>679907
#148 #679907
>>679897
спс, перевод не кривой, все термины на даются на инглише?
>>679911
#149 #679911
>>679907
Вроде норм.
#150 #679929
А как регулярками сделать разбивку типа
(запятая с пробелом) или (пробел если после него 5 цифр или 2 большие буквы)?

вот ету хуету сделал - не пашет
re.split(', |(?= (?:\d{5}|[A-Z]{2}))', var)
18 Кб, 466x359
#151 #679935
Хватит ли мне функционала 'tkinter', чтобы запилить простенький Windows Manager под прыщи на древних ПК?
>>679946
#152 #679946
>>679935
2й гном
но вообще если уж питона хочешь - расковыряй i3 - оно я слышал как раз на нём
>>679954>>679956
#153 #679949
>>679759
убери функцию getBit, в питоне оверхед большой на вызов функции (делай проверку в ифе прям) это ускорит процентов на 15 ну и врайт оптимизируй. А вообще такие вещи делаются на golang за 10 минут и работать будет с приемлимой скоростью
>>679981
24 Кб, 480x480
#154 #679954
>>679946
Гном и GTK не перевариваю, хотя один виджет написан на нём.

i3 не подойдёт, т.к. пилю это для масс -- для студентов.
>>679957>>679959
#155 #679956
>>679946
Ебу дал? i3 на си, там только апи питоном дергать позволяют, но даже до интеграции уровня awesome/lua далеко.
>>679959
#156 #679957
>>679954
Ты ебанутый какой-то.
#157 #679959
>>679956

>я слышал


бро, моё дело подсказать что сам помню - а там пойдёт-не пойдёт человек уже сам для себя решит. не реагируй так резко на всё, тебе с этими нервными клетками ещё жить.

>>679954
Минута в гугле: qtile, pywm, tinywm
>>679961>>679962
#158 #679961
>>679959
Я слышал как в /b/ твою мамку ебали, крики аж до /pr/ доносились.
10 Кб, 233x203
#159 #679962
>>679959
Ну а хуле. Нормально будет, если совмещу 'tk', а другую часть (с той, что не справится 'tk') на GTK/QT?
>>679963
#160 #679963
>>679962
Просто пиши на GTK, заебал. tkinter это мертвое днище. Ничего на нем писать не надо.
>>679964
#161 #679964
>>679963
Ну ок.
#162 #679976
Посоны, а как лучше всего в

>2016


делать интернет магазин? Брать какой-то фреймворк типа оскара или самую простую функциональньость запилить самому, а для сложных вещей брать готовые приложения типа django_robokassa для оплаты? Какие вообще подводные камни то в екомерс системах? Вот я как написал выше начал ковыртять shoop, но он какой-то странный. Сделали свою админку, например, а он такая неудобная как по мне..
>>679991
#163 #679977
>>679750

>bin выдаёт запись вида 0b10101010101. Т.к. тебе нужны атомы в порядке возрастания, ты переворачиваешь строку через [::-1], а потом тебе нужно избавиться от оставшихся 0b, т.е. ты делаешь [:-2].


Тогда тут нужен не bin, а format(arg, 'b') - он без префиксов результат возвращает.
>>679980
#164 #679980
>>679977
Ну, луче тогда уж str.format("{:0>8b}", byte). Не вникал в проблемы байтослесаря, но лучше использовать сдвиги (как он вроде и делал). На производительность в пифоне можно положить.
#165 #679981
>>679949

>убери функцию getBit


Убрал уже давно. Лучше не стало.

>>679949

>golang


В чем профиты по сравнению с Си?
>>679985>>680719
#166 #679983
>>679759
Ты заходи, как запилишь, было бы интересно производительность сравнить.
>>679999
#167 #679985
>>679981

>В чем профиты по сравнению с Си?


Сможешь себе подцепить какого-нибудь хипстера.
>>679999
#168 #679988
А можете по-быстрому объяснить зачем появляется файл apps.py в джанге после startapp?
>>679998
#169 #679991
>>679976

>Какие вообще подводные камни то в екомерс системах?


Главный камень - заказчик.
"А нам вот надо чтобы скидка зависела от города, если это город-герой и начинается на Ж, то скидка рассчитывается в процентах от прошлой корзины этого покупателя, а если нет, то пусть менеджер каждую неделю выставляет через админку."
Короче, составь список фич и, смотря на него, думай. Если хотя бы по паре пунктов есть сомнения, как сделать - бери что-нибудь готовое.
Иначе будешь ездить на велосипедах по граблям.
>>679994
#170 #679994
>>679991
Да по сути заказ - маленький локальный магазин. Я точно не знаю, но вряд ли он за пределы даже своей области выйдет.
Пока что я вижу - mptt для категорий, да и все, честно говоря. Фронт на ангуляре сделаю. Оплату тоже подключу какую нибудь, если вообще надо будет. Админка обычная пойдет. Какие вообще стандартные задачи у магазина то есть?
>>680006
#171 #679998
>>680000
#172 #679999
>>679985
Нахуй>>679983

>Ты заходи, как запилишь,


Тут не долго так-то... Но мне влом пока. Хотя возможно интерес возьмет верх.
#173 #680000
>>679998
Я потому тут и спрашиваю, что мне влом документацию читать.
>>680014
#174 #680006
>>679994
В чем фишка mptt для категорий и в чем профит вообще его использовать?
>>680008>>680011
#175 #680008
>>680006
Структура дерева в базе данных. Удобно для всяких данных, которые надо делить на категории и подкатегории. Одним запросом из бд можно вынуть почти всю нужную инфу - предков, потомков и т.д.
#176 #680011
>>680006
Дешевый SELECT - все дерево выбирается одним запросом.
Дорогой INSERT|UPDATE - надо выставить значения не только для ноды, но и для её потомков и предков.
Поскольку 99% запросов это селекты, профит налицо.
#177 #680014
>>680000
В apps.py обычно лежит класс
class MySuperAppConfig(AppConfig)
у которого есть всякие вкусные свойства и методы. Например, verbose_name - в админке можно показывать название приложения с выебонами "OLOLO ~Super App~ by Vasyan". Или метод ready - в котором регистрируют сигналы и т.п.
>>680015
#178 #680015
>>680014
А. Ну понятно. Круто. Спасибо!
#179 #680032
Посоны, а обязательно ли использовать bcrypt в джанге? Или в 2016 это уже не так актуально?
А то я в каком-то году проходил курс по веб программированию на юдасити, и там очень его рекомендовали.
>>680037
#180 #680037
>>680032
Это просто стандартная хэш функция для джанги. Если нужно, можешь хоть кузнечика использовать.
>>680038
#181 #680038
>>680037
Не, бикрипт не стандартная же. Надо специально включать. Просто говорили что бикрипт медленнее, зато непробиваемый.
#182 #680039
django-channels через пару недель должен достигнуть версии 1.0 и, соответственно, быть внедрен в джангу. Можно уже начинать разбираться в том, как это работает.
>>680040>>680325
#183 #680040
>>680039
Там прямо можно нормально вебсокеты замутить или что? Или это костыли над запросом-ответом?
>>680044
#184 #680044
>>680040
По идее да. Но, как я понял, для вебсокетов нужно обязателно использовать ASGI вместе с WSGI. Единственный минус который я вижу - это отсутствие гарантии того что сообщение дойдет до клиента. http://channels.readthedocs.org/en/latest/concepts.html
>>680046
#185 #680046
>>680044
Ах, ну и походу они хотят в 1.10 сделать asgi стандартом, но оставить возможность использовать wsgi
#186 #680057
Я, похоже, опоздал, но всё же не зря вечер сидел, так что запощу.

>>679759
Питон, всё-таки, не для байтоёбства, ну и 33 миллиона операций это, всё же, много.
Поигрался как мог и частный случай сократил до ~1 минуты (твой оригинальный код у меня за 4.5 выполнялся). (возможно, на 3 байта ещё потянет, но сомневаюсь).
Писал в один файл, но в лупе 16 раз, поэтому не должно сильно влиять. Да и, в любом случае, ~70% времени сжирает генератор и конкатенация байтов.
Размер буфера между 64-512 мало влияет, а если больше - становится медленнее, причём оче сильно (4096 в четыре раза медленнее 512-и). http://pastebin.com/byA5AkNy

А вот о мультипроцессинге, кстати, можно и задуматься, ведь ограничивает не io (3 процесса):
real 0m30.024s
user 1m22.070s
sys 0m1.683s

Ну и плюс потом объединить 16 групп файлов нужно, но это мелочи, наверное.

Наговнокодил тут на плюсах (http://pastebin.com/RpdtNpnY):
length: 33554432
Read samples: 16777216
Elapsed time: 80.289 seconds.

без os.write, однако, всего 5 секунд. Так что пили c-extension, который будет биты считать, а читай-пиши питоном, лол. (Где я обосрался-то с записью, кроме того, что по одному байту пишу? (В питоне я с побайтовым письмом двух минут добился))

>>679764
Так там не секунды, а минуты и часы, если действительно много данных. Поэтому борьба за 5-10% (а я тут ~90% времени сократил, если на трёх тредах i5 4300M делать) вполне себе оправдана, я считаю. Хотя-таки да, такое лучше на нормальном языке делать.

анон, в шутку советовавший использовать видео-карту
>>680124>>681213
45 Кб, 600x600
#187 #680064
>>679153
Ответьте, ну пожалуйста.
>>680217
773 Кб, 977x602
#188 #680093
Привет всем, скачал ваш путхон, но чета когда запустил произошел пикрилейтед казус (у меня 32-битный проц, качал для него естессна). Если что, я полный дебил в ваших компутерах (примерно на уровне вашей мамы).
#189 #680104
>>680093
А от нас чего хочешь? Открывай люги, устанавливай апдейты, веселись.
>>680106
94 Кб, 960x645
#190 #680105
>>680093
Там английским по белому написано, что для установки этой версии питона тебе нужна Win7 sp1.
>>680108
#191 #680106
>>680104
Я уже примерно понял в чем проблема именно в этот раз, но разобравшись с ней, я мало что решу, на самом деле. Что меня беспокоит, так это то, что я абсолютно не шарю в компах. Совсем. Обновлял шиндовс, скачивал пиратские игры, убирал винлок все детские годы (мне сейчас 17, еще пиздюк) не я, а мой старший брат, который сейчас живет в другом городе (в ДС учится). Я решил изучать python, но оказалось, что у меня даже базовых знаний о компьютере нет. Короче, реквестирую гайды, как перестать быть кретином в этой сфере, так чтобы батя сказал "погромист растет".
P.S. Написал сумбурно, наверное, извиняйте.
>>680108
#192 #680108
>>680105
Я не знаю как ее установить, не скачав при этом всякие "зонды" шиндовса. Эта проблема вытекает из общей неграмотности во всей сфере >>680106.
>>680119
#193 #680115
Сосоны. ЧЯНДНТ? http://pastebin.com/u4RpJdhV хочу ассемблерный исходник собирать для dll in the middle
>>680230>>680294
#194 #680119
>>680108

>Я не знаю как ее установить, не скачав при этом всякие "зонды" шиндовса.


Control Panel -> windows update. От зондов не скроешься.
#195 #680124
>>680057
Заменил тупл на лист, поигрался с буфером (256 самый лучший), в итоге добил до 42 секунд так и 20 с четырьмя процессами.
Сижу ломаю голову, как же по-другому вообще алгоритм построить, чтобы не пришлось по 16 раз проходить по одному и тому же списку с туплами (больше половины времени туда уходит).
Должен быть способ сделать это красиво и быстро, надо математику задействовать, наверное.
>>680150
#196 #680147
>>680093
У мну питон 3.5 тоже ругался при установке (не помню по какой причине). В итоге я просто поставил версию 3.4 и счастливо живу.
#197 #680150
>>680124
Файл какого размера-то?
И зачем проходить, почему pop() не сделать?
>>680186
#198 #680186
>>680150
32 мегабайта, как было изначально аноном заявлено (>>679022).
Зачем pop?
У меня список вида:
[(1,0,1,..),(1,1,0,..),(0,0,1,...)]
для каждой пары байт. Затем я собираю все первые элементы каждого тупла (первый "канал"), потом вторые, потом третьи и т.д.
Грубо говоря, нужно это как-то в матрицу перевести и транспонировать, но с нампи получается либо медленнее, либо так же (если из вышеуказанного списка делать np.matrix(...).transpose().tolist() и иметь 16 строк на каждый канал, которые мы спокойно затем джоиним).

Вот код - http://pastebin.com/bmqxcNAk

С нампи, правда. можно иметь гораздо больший "буфер" и реше писать в файл. Толку от этого никакого, правда.

Я пытался вчера сразу с нампиевского массива/матрицы начинать, но там добавлять строки/столбцы проблемно - каждый раз новый создаётся. В итоге прироста не заметил и идею забросил.
#199 #680190
>>680186
Каждый тупл - это поибтовое представление short'а. Всё-таки, комбинаций 65к, а семплов - 16 миллионов, поэтому пришла идея лишь один раз всё посчитать.

Хотелось бы, конечно, ебануть словарь 16^16, чтобы все возможные комбинации 16-значных строк каждого "канала" иметь и влёгкую их писать в файл, без необходимости ничего соединять, но...
#200 #680216
>>680186

>собираю все первые элементы каждого тупла


Ну так и я говорю, зачем каждый раз пробегать, если можно пробежать один раз распихивая биты по 16 буферам?
#201 #680217
#202 #680230
>>680115
халп сосоны, мне надо успеть за сегодня доделать
#203 #680283
http://pastebin.com/TTDEh64C

Не слишком ли запарная модель для хранения адресов пользователей?

Как обычно вообще делают?
#204 #680294
>>680115
Попробуй вместо массива использовать многострочную строку через """.
"""один
Два
Три"""
#205 #680325
>>680039
Я так понимаю,эта приблуда отправляет полученные данные консумеру, только для http.request есть дефолтный консумер, который делает из полученных данных обычный request и скармливает вьюхе? Т.е. HTTP все равно синхронно?
#206 #680344
>>680186

>np.matrix(...).transpose().tolist()


А не проще сделать zip(*samples)? Всегда так "транспонирую", зависимость есть.
>>680345>>681205
#207 #680345
>>680186
>>680344

>>np.matrix(...).transpose().tolist()


Вам целое число на биты разобрать надо, а вы тут устроили...
>>680428>>681205
#208 #680377
>>680186
Олсо, зачем тебе
out_list = [out_file]*CHANNELS ?
Это же список из 16 ссылок на один и тот же объект?
>>681205
57 Кб, 543x604
#209 #680428
>>680526
#210 #680526
>>680428
Это когда йоба-проекты пилишь такое происходит. А когда кода на 50 строк, то такой хуйни быть не должно.
239 Кб, 983x254
#211 #680547
Что это за хуйня? По дате видно же, что первый и третий инстансы в выборке не один и тот же объект.
>>680635
#212 #680597
Парни, только скачал питон, гуглю уроки, как вдруг столкнулся с проблемой отсутствия панели инструментов. Как ее вкрутить обратно?
>>680605>>680632
#213 #680605
>>680597
Нажми alt.
#214 #680632
>>680597
Хули тебе в notepad++ не пишется, м?
#215 #680635
>>680547
all() не сортирует выборку. чтобы норм работало: models.objects.all().order_by('id')
>>680641>>680691
#216 #680641
>>680635
Я уже понял, спасибо. Все последующие операции с выборкой давали ожидаемый результат, значит, я проебался с порядком.
>>680691
#217 #680691
>>680635
>>680641
Чтобы не сломать порядок, если забыл .order_by, советую взять за правило прописывать ordering в метадате модели.
#218 #680719
>>679981

> В чем профиты по сравнению с Си?


если С хорошо знаешь и задачи типа твоей, то нет профитов.
А так на нем быстрее (чем на С) разрабатывать всякую ебалу типа твоей задачи + компилится в один бинарник и никакой ебли с линкованием
#219 #680765
А где можно надыбать json со всеми городами / областями / странами СНГ?
>>680770
#220 #680768
Почему вот это:
{x 2 for x in [1, 2, 3, 4]}
выводит это:
{16, 1, 4, 9}
а не это:
{1, 4, 9, 16}
?
>>680771>>680773
#221 #680770
>>680765
А, нашел.
#222 #680771
>>680768
Потому что set не упорядочен.
>>680778
#223 #680773
>>680768
потому что set неупорядочен.
#224 #680778
>>680771
Но тогда почему эта строка всегда выводит именно в таком порядке? Вроде бы должна же в случайном.
>>680779
#225 #680779
>>680778
Ну вот такю
#226 #680878
А на винде через cygwin питона кто гонял? как оно вообще?
Хочу ноут под винду точенный купить
>>680888
#227 #680888
>>680878
Извращений захотелось? Если уж в так не хочешь линукс на своем железе - Виртуалка или впс.
>>680891
5 Кб, 142x116
#228 #680889
Господа! Подскажите, пожалуйста, существует ли сколь нибудь достойный перевод книги "Learn Python the Hard Way" или же она так и осталась исключительно в оригинале?
>>680894
#229 #680891
>>680888
https://www.asus.com/uk/Notebooks/E403SA/
В нём поди и биос ебанутый будет, наглухо к винде привинченный.
Виртуалку можно, только на 4 гб это какой вагрант кастрированный будет. Тогда уж легче гонять по ссш на серваке.

Но смысл в другом был, для путешевсвтий и прочих коммандировок ноут вин как мне кажется, а питониться в дороге мне только для фана, а не необходимости. Потому поставить кигвин который из коробки пашет - охуенно, а ебаться с деплоями на хероку всякие или в 4 гб озу виртуалку с убунту минимал пихать - уже гемор.
>>680900
#230 #680894
>>680889
Говно твой лёрн зе хард вей
Прочитал от корки до корки. Состоит из превозмоганий "ДЕЛАЙ УПРАЖНЕНИЕ2 ЧЕГО БЫ НЕ СТОИЛО ИЛИ НЕ ПАЦАН", истерик "ЕСЛИ ТАКОЙ УМНЫЙ ХУЛИ ЧИТАЕШЬ ЕТУ КНИГУ ИДИ ПО ЛИСПУ ЧИТАЙ!!!!111" и маняоправданий "Я НЕ ВНИКАЮ В ПОДРОБНОСТИ А ТУПО МОТИВИРУЮ ВАС ХУЯРИТЬ А ТЕПЕРЬ БЫСТРО ИФ РУМ = АРЕНА ЗЕН ПРИНТ ТРОЛЛ ФАЙТС Ю!!!" и рекламы не то платных курсов, не то видосиков если ничего не путаю
Мой вердикт - для дебилов. Распиарена потому что в забугорном интернете пиздить не принято, а только это дерьмо собачье бесплатное.

Пойди наверни нормальных книжек, их же дохуя и больше
>>680898>>680920
#231 #680895
Herokuapp или Openshift? Никаких особых изысков не требуется.
#232 #680896
Как правильно парсить курсы валют/акций? С самой биржи брать или с сайтов?
#233 #680898
>>680894
Отвечая всё же на вопрос:
Ввиду анальных ограничений её никто не переводил и не будет.
>>680899
#234 #680899
>>680898
А что за ограничения?
>>680901
#235 #680900
>>680891

>для путешевсвтий и прочих коммандировок ноут вин как мне кажется


Зачем? Вафля везде одна. Имею зенбук UX31A с дебианом на борту для разъездов, никогда проблем не было. Вот прибито не прибито хуй знает, но я еще не видел ноутов куда нельзя было воткнуть линуксы.
61 Кб, 317x372
#236 #680901
>>680899
Ну для чувака книга - реклама платных видосиков где он гнусавым базарит как пикрелейтед
Нахуй его после этого переводить? Эта книга не продукт в каноничном понимании.
>>680903>>680920
#237 #680903
>>680901
Понял. Спасибо за информацию! Пойду тогда лучше укус читну.
#238 #680920
>>680901
>>680894
Лолшто? Проиграл с тебя адово. Говнокниги с оценкой 3 на амазоне это как раз Лутц какой-нибудь, которые в своей говнокниге ещё и курсы свои рекламирует, сам притом нихуя не работая, а только теоретизируя.
Зед охуенный программист, книга его бесплатная, видео и курсы лолшто, это как курсы от Линуса он не продает, они служат бонусом за фактический "донат" за книгу, а за те 29 баксов ты покупаешь поддержку и можешь задать ему свои тупые вопросы по непонятным местам, если даже после видео ты их нихуя не понел.

Только в зк можно так проиграть от тупости местных.
#239 #680923
>>680920

>гы мам тупые сматри гыгы! ну тупые! мам!


ясно-понятно
выучись по нему и возвращайся
>>680932
#240 #680925
>>680920
Держи бесплатную тру годноту, которую тут половина читала и подтвердит:

http://greenteapress.com/wp/think-python/
www.obeythetestinggoat.com

Теперь будешь хоть знать как оно выглядит
>>680932
#241 #680932
>>680923
Выучился и работаю, даже уже стак сменил. Проблемы, борщехлёб?

>>680925

>когда тебе рассказывают о чем, что ты читал несколько лет назад, типа СМАРИ ГАДНАТА


Приятное чувство. Но нет, "книга" Зеда это аналог кодеакадеми для быстрого входа, которая читается за вечер под пивас.
#242 #680983
Такс такс что тут у нас
https://github.com/Microsoft/Pyjion
>>681021
#243 #681021
>>680983
В чем фишка и чем отличается от пайпай? И что то он почти не разрабатывается и хайпа нет вокруг.
>>681026>>681027
#244 #681026
>>681021

> отличается от пайпай?


Там в ридми написано

> хайпа нет вокруг.


Вокруг - это где?
Мне сегодня на подкаст "talk python" прилетело про это, ещё не слушал.
#245 #681027
>>681021

>хайпа нет вокруг


Тебе не хватает реализаций питона? Богу реализаций языка нужно больше реализаций! Питон это наиболее многократно реализованный язык программирования имхо. Javascript и тот где-то на 2-3 ничем принципиально не отличающихся движках по большому счёту зиждется. А тут тебе и под дотнет, и под жвм, и под жаваскрипт даже неоднократно делали (однако гвида нерекомендуе, ибо гарантированно будет тормозить, гвида говорит кофе юзайте).
>>681029>>681030
#246 #681029
>>681027
Эта штука добавляет jit в обычный cpython, это не отдельная реализация.

> Питон это наиболее многократно реализованный язык программирования


Да ну, глупости, других языков реализаций тысячи, особенно старых всяких.
#247 #681030
>>681027

> ибо гарантированно будет тормозить


Когда будет вебассембли сделают нормальную реализацию без тормозов.
>>681032
#248 #681032
>>681030
Уже зделоли. Подводный камень в том что рантайм питона весит много. Это вам не жуквери подключить.
>>681036
#249 #681036
>>681032
хуе мое пусть вставят в браузеры как сделали с ес6.
>>681038
#250 #681038
>>681036
Это пытались сделать ещё начиная с 1991 года. Но не взлетело. Гвида сдался в 1995.

Вот тебе сцылочка кстати.
http://pypyjs.org/
>>681042>>681047
#251 #681042
>>681038
http://www.brython.info/tests/console.html?lang=en намного быстрее грузится
>>681044
#252 #681044
>>681042
Да, но намного медленнее выполняется.
#253 #681047
>>681038
Я знаю что долго пытались вставить в браузеры разные языки, в том числе питон, но я не совсем понимаю почему этого не делают большие браузеры. Дело в отсутствии хорошего JIT? Или может у питона по факту хуевый перформанс с отсутствием мультитрединга? Или дело в ебле с версиями? А может просто никому не нужен еще один язык на фронтенде?
>>681049>>681051
#254 #681049
>>681047

>просто никому не нужен еще один язык на фронтенд


Тоталли зис. Ты учти что эти жаваскрипты там гвоздями прибиты к дому. Просто вставить рантайм не получится.
#255 #681051
>>681047

> с отсутствием мультитрединга


А у яваскрипта мультитрединг чтоли?
>>681072
#256 #681068
Есть нормальный гайд по киви?
#257 #681072
>>681051
Нахуя мультитрединг на фронте? На ноде на бэке для этого кластеры используют. А зачем в браузере то?
#258 #681075
>>681072
Чтобы было.
#259 #681076
>>681072
Майнить биткоины
#260 #681084
>>681072

>2016 год


>программы до сих пор не умеют в многоядерность


>дваядратригига стоят без дела


>пока ссаная косынка на жаваскрипте страшно лагает



Из разряда 640кбайт хватит всем.
>>681086
#261 #681086
>>681084
Вот ещё не хватало чтобы яваскрипты все ядра отжирали.
>>681093
#262 #681093
>>681086
Уже. Webworker.
>>681100
#263 #681096
>>680920
Пиздец, живой адепт зеда.
>>681596
#264 #681099

>Zed A. Shaw is a software developer most commonly known for creating the Mongrel web server for Ruby web applications

#265 #681100
>>681093
Это где-нить используется?
>>681101
#266 #681101
>>681100
Ну если ты не используешь, значит хуета и нинужно. Пусть удоляют. Это нужно чтобы страница не зависала во время тяжёлого рассчёта к примеру.
#267 #681114
Хочу сделать гуевую оберточку для mpv, пытаюсь сделать вывод через opengl, нарыл пример на сях - http://pastebin.com/qn6rDTxr (как и положено выводит "failed to initialize mpv GL context"), переписал на пистон - http://pastebin.com/Mc2qk7Ac, но во время вызова mpv_opengl_cb_init_gl программа сегфолтится, в чем может быть проблема не умею в С/ctypes?
>>681165
#268 #681165
>>681114

>CFUNCTYPE(None


void возвращает? Должна же адрес вернуть.
>>681221
#269 #681167
Сосоны, халп. Хули у меня не работает replace?
codesec.replace('[changeme]', call_iat)
Суть в том, что там есть большие куски кода, в которых надо менять определенную часть данными, которые есть в переменной. Но нихуя не происходит вообще. Выдает шаблон + [changeme]
>>681168
#270 #681168
>>681167
Небось inplace пытаешься заменить? Строки в питоне иммутабельны.
#271 #681205
>>680344
И правда. Что-то я о зипе совсем забыл. Почти в два раза ускорилось. Ещё убрал проверку на длину списка (профайлер показывал, что туда чуть ли не 8% времени уходило), добавил просто инкрементирующую переменную. В итоге - 22 секунды (9 с четырьмя процессами).
24% - слайсинг и получений тупла битов
23% - джоин тупла с битами
10% - аппенд к листу
5% - запись в файлы
10% - подготовка словаря с туплами
26% - остальная часть функции.
(оставшиеся проценты на всякую мелочь типа чтения файла)

Осталось совсем чуть-чуть. Первый и последний пункты, наверное, можно ещё как-то оптимизировать.

>>680345
Ну так ты предложи быстрый способ это сделать, раз всё так просто. Нужно весь большой файл на биты разобрать и каждый 1-16-ый бит в свой файл записать.

>>680377
Это эмуляция записи в 16 разных файлов, которые анону требовались.

>>679022
Зачем ты сюда с этим пришёл, столько времени у меня отнимаешь...
На с#-то переписал уже?
742 Кб, 245x300
#272 #681213
>>679022
>>680186
>>680057

Хуле вы тут намудрили, уёбы?

http://pastebin.com/hUHDFNDM
>>681223
#273 #681217
Программисты, поясните зачем первую часть регэкспа обрачивать в скобки и обратные слеши, такой пример в книге, не сам такое написал:

import re

print(
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
>>681219
#274 #681219
>>681217
Скобки с обратными слешами означают сами символы скобок.
>>681258
#275 #681221
>>681165
ебаный_стыд.jpeg, совсем объебался, спасибо, анон.
#276 #681223
>>681213
Заебись, а чего дальше с этими битами делать предлагаешь? По одной штуке писать в файл? Аппендить к какой-то строке миллионы раз? Время-то замерял?

До напиевского fromfile я уже добрался, однако на первый взгляд было медленнее (аж в два раза). Заменил словарь vals на лист - 17 секунд!

Почему доступ к int'овым ключам словаря насколько медленнее, чем к байтовым? http://ideone.com/cAWzu4
#277 #681224
>>681223
Оригинал постер срал этими битами в файлы текстом. Хуй знает для чего оно ему.
#278 #681233
>>681223
Ну на тебе аскибайты, которые можно tofile
http://pastebin.com/pea0nbMS
Но опять же, мне кажется там должна быть какая-то нагрузка и писать биты текстом дебилизм.
>>681252
#279 #681252
>>681233
Блин, не честно так. Не знал, что нампи и битовые операции может к массиву так легко и быстро применять.

>там должна быть какая-то нагрузка и писать биты текстом дебилизм.


Ну мало ли, псевдошифратор ЦП какой-нибудь, где прочитав потом заново эти раздельные биты получаешь 16 картинок.
Вообще, только сейчас, блин дошло, что это банальный interleaver получается, надо было его имплементации в интернетике и искать.

Я только так смог http://pastebin.com/EwrGGS13 :
real 0m10.025s
user 0m26.737s
sys 0m2.135s

Твоё же, считай, мгновенно (меньше секунды). С другой стороны, использовать нампи это считай использовать C extension'ы.
>>681270
#280 #681258
>>681219
Ну а почему остальные не надо так делать, и зачем вообще две пары скобок там?
>>681262>>681270
517 Кб, 1224x1632
#281 #681260
Доктор говорит чтобы я без каски на улицу не выходил.
А мама говорит что я очень умный и каска мне идет.
>>681270>>681636
#282 #681262
>>681258
Скобки без слешей - это группировка найденного. Со слешем - просто символ, который ищешь в тексте, как любая буква.
#283 #681270
>>681252
Numpy это очень хорошая вещь. Покрывает 90% возможного байтоёбства на уровне си. Сам питон конечно же медленный, зато на нём просто написать прототип, что-то вроде minimum viable product.

>>681258
Скобки могут значить очень разные вещи в регексах. Обычно это группы соответствия. У тебя там несколько именнованных групп соответствия, которые работают только в питоне, поэтому там префикс (?P<..>). Со слешами скобки идут как обычные символы (точно так же \+ \. \? и прочее). То есть твой код города должен находиться внутри скобок в тексте.

>>681260
Ну ты прям фанат. Программы-то где? Нахуй нам твоя мода
#284 #681287
>>681270
Да не, я так-то нампи люблю и уважаю, а тут что-т ума не хватило правильно впихнуть, поэтому пошёл длинным путём (хотя тоже, по-моему, не так плохо, по сравнению с топорным вариантом).
#285 #681292
Вот есть пакет, он установлен. Я его хочу его форкнуть. Клонировал репозиторий. Как мне его теперь заюзать, чтобы он импортировался вместо установленного?
>>681296
#286 #681296
>>681292
Симлинк поставить. Пердон ищет модули сначала в текущем каталоге. Либо pip install https://github.com/.../.../zipball/master
>>681301
#287 #681301
>>681296
Нихрена не понял. Как вообще модули разрабатываются? Сильно сомневаюсь, что разрабы их переустанавливают после каждого коммита. Также сильно сомневаюсь, что нужно возиться с симлинками и менять что-то в папке с модулями. У меня есть файл, для которого нужна ещё не реализованная в модуле функциональность. Я клонирую модуль в подпапку, что дальше?
>>681306
#288 #681306
>>681301
Допустим у тебя есть app зависящий от module.

ls app_dir:
app/ setup.py README

ls module_dir:
module/ setup.py README

cd app_dir
ln -s module_dir/module/ module

Теперь у тебя при запуске питона из app_dir можно импортировать и app и module. Причём изменения в module становятся доступны сразу же.
>>681406
#289 #681315
>>681270

>>681270
А понял. Поиск идёт со скобками, но в именованную группу запишутся только цифры так как группа внутри этих скобок
#290 #681389
Как ускорить загрузку страниц в виде хтмл?
Я юзаю requests, там просто делаю s = reqyests.Session()
Можно ли еще как ускорить работу?
>>681392
#291 #681392
>>681389
В каком смысле ускорить?
>>681395
#292 #681395
>>681392
Уменьшить время на загрузку хтмл
Даже в 20 потоков на все уйдет около 2 дней
>>681401
#293 #681401
>>681395
Купить хороший интернет с большой скоростью и малым пингом.
Найти всех пользователей сайта и перерезать им кабели с интернетами.
Помочь мейнтейнеру сайта сделать его быстрее.
Accept encoding gzip попробовать. Хз
#294 #681406
>>681306
Ясно, спасибо, сработало.
Теперь другой вопрос. В один файл автор свалил кучу классов. Я это попытался растащить по подпапкам (1 класс - один файл), но получилось дерьмо: при импорте файла сначала приходится писать имя файла, а потом имя класса. Как сделать так, чтобы класс шёл в модуль минуя имя файла? И как сделать, чтобы при написании import имя папки я получил импортированными все классы из файлов в этой папке в пространство имён с именем папки, а также класс из файла папкой выше - суперкласс всех классов в папке.
>>681414
#295 #681414
>>681406
module/--init--.py:

from .file1 import Class1
from .file2 import Class2
from .file3 import Class3

Теперь

from module import Class3
>>681507
#296 #681507
>>681414
спасибо, сделал
#297 #681516
Requests иногда загружает html иногда как <html class='mobile'> , а иногда как <html class="desktop">
Как сделать так чтобы скачивался только desktop?
>>681523
#298 #681523
>>681516
Лол. Реквестс здесь не при делах. User agent разве что установить можно. Так-то угадывать надо как сайтец это определяет, куки может какие-то надо ставить.
#299 #681565
Парни, объясните одну вещь. Я программирую на С++ и достиг неплохого уровня, недавно ради расширения кругозора начал изучать скриптовые языки. Пока что прошел обзорные курсы на CodeCademy по JS, Ruby, Python, PHP. Судя по первым комментариям в этой теме, программисты Ruby и Python'a недолюбливают друг друга, верно? Сразу оговорюсь, я спрашиваю не для того, чтобы спровоцировать перепалку, а интересны мнения более опытных людей. Поэтому прошу: если отвечаете, то отвечайте по сути. И пусть другие комментарии будут просто мнением, а не объявлением войны.

Также мне интересно, насколько совпадают языки и их библиотеки по задачам, которые они призваны выполнять. То есть, степень: сильно совпадают, вполне совпадают, почти не совпадают и так далее. Лично мне более выразительным и красивым показался именно Ruby, но это впечатление сложилось у меня после знакомства с основами. Разбираться я все равно буду в обоих, чтобы составить окончательное мнение. В него я включу и мнения со стороны.

Заранее всем спасибо за ответы, и еще раз прошу воздержаться от бессмысленной ругани.
#301 #681568
>>681565
Добро пожаловать на харкач, тут все недолюбливают всех по любому поводу. А если повода нет - он создается искусственно. Но в целом руби - умирающий язык одного фреймворка (рельс), без применений хоть где-нибудь вне веба. И работы на нем даже меньше чем на питоне.
>>681580
#302 #681574
>>681565

> программисты Ruby и Python'a недолюбливают друг друга,


Нет. Это похожие языки и многие владеют обеими. Есть фанатики(в основнои среди рубистов, кстати) которые пытаются доказать как их болото лучше соседнего, в основном от незнания что в соседнем языке все аналогичные штуки есть, отличается только синтаксис немного(коко отступы и т.п.)
#303 #681580
>>681568

> без применений хоть где-нибудь вне веба


Неправда, на нем ещё есть всякие тулзы типа chef, puppet и т.п.

> И работы на нем даже меньше чем на питоне.


Это видимо зависит от региона, в прибалтике RoR относительно популярен, хотя там почти везде php.
Слышал от хохлов жалобы что не могут найти работу на джанго, лучше бы учили RoR(хотя подозреваю они бы и на RoR работу не нашли).
>>681565
У питона область пременения намного больше. Кластеры-фигастеры, наука, системное администрирование, десктопные приложения, сетевые серверы.
На руби почти сплошной веб.
>>681587>>681659
#304 #681587
>>681580

> chef, puppet


Которые выкидывают на помойку и заменяют в пользу ansible. Теперь давай еще homebrew вспомним и, и, и... все. Раби без рельс не представляет из себя никакого интереса. Да и вообще, когда не язык тащит за собой фреймворк а фреймворк тащит язык - с этим языком что-то не так.
>>681590
#305 #681590
>>681587
Ещё у них дофига несовместимостей между даже минорными версиями. И интерпретатор был тормозной, но сейчас вроде допилили.
#306 #681591

>раби


>end


>end


>end


Не, спасибо.
#307 #681596
>>681096
Я люблю Зеда потому, что он не лицемерит когда говорит что некая хуйня являет собою адовое говно, чем страдает половина разработчиков на конференциях. Каждый раз смотря конференции охуеваю как людям говно в уши заливают А они и рады.
В этом плане он похож на Линуса и Мартина.
15 Кб, 358x604
#308 #681605
>>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.
>>681608
#309 #681608
>>681605

> php


Но это pain in the ass. Разве что сайты - визитки клепать.

> django и flask откровенно НИОЧЕНЬ на фоне RoR


Обоснуй
>>681613
#310 #681613
>>681608

>Но это pain in the ass. Разве что сайты - визитки клепать.


Я об этом и написал

>а если уж хочется вебдева, то тут лидеры php + js с огромным отрывом, но вот как раз их круг задач очень ограничен этим вебдевом



>Обоснуй


Декларативный подход рельсов с магией против более императивного джанговского, где большее количество вещей надо делать ручками.
Явно? - Да.
Разработка при знании инструмента медленнее? - Да.
Заказчик хочет быстрее и чтобы всё работало? - Да.
Такие дела. RoR мощнее Django заметно.

Flask - копия Sinatra, но развит меньше ввиду того, что всё таки Python не является языком который взлетел из-за вебразработки в отличии от Ruby.
Тащемта, достаточно открыть любые сайты с ремоут работой, даже тот же апворк, последний раз когда я смотрел - число вакансий для веб-питона кроме парсеров всяких было значительно ниже, тоже самое с remoteok и weworkremotely.

Может что-то поменялось конечно, но скорее просто Ruby вытеснили JS-ом.
>>681624>>681628
#311 #681622
Ребзя, спасибо за ответы. Я планирую освоить оба языка, уже писал. Но вы помогли сориентироваться дальше. В веб-разработку я вряд ли буду углубляться, мне это не сильно интересно. Отходить от С++ тоже не собираюсь, эти языки я буду использовать в качестве дополнительных. Как здесь уже упоминали, для задач прототипирования, для работы с текстом, большими массивами данных - словом, там, где это удобно.

Вообще, если судить по основам, то рейтинг этих четырех языков я бы оформил так:
1. Ruby. Мне понравился больше всего с точки зрения ООП. Можно писать очень лаконично, что меня привлекает.
2. Python. Не понравилось то, что тут есть примеси в ООП. Например, чтобы высчитать количество элементов в списке, нужно передать его в функцию, а не вызвать метод этого списка. Я люблю, чтобы все было единообразно. Но в целом язык понравился, и я буду изучать его и дальше.
3. JavaScript. Не произвел особого впечатления, но в будущем все равно в нем разберусь. Пригодится знание такого инструмента. Из дополнительных средств попробовал jQuery - громоздкая ерунда. Хотя, может, я ее неправильно готовил?
4. PHP. Не понравился совершенно. На этом мое знакомство с ним закончено.

Все это вкусовщина.
>>682130
#312 #681624
>>681613

> большее количество вещей надо делать ручками.


Ты конкретные примеры можешь привести?
В джанго очень много делается по дефолту, та же админка делается двумя строчками, писать больше надо только если какое-то поведение сильно отличное от дефолтных возможностей нужно.

> но развит меньше


В каком месте? Каких-то библиотек не хватает? Их миллион и очень мощные - шаблонизаторы, orm, всё что хочешь.

> Flask - копия Sinatra


> не является языком который взлетел из-за вебразработки


Тем не менее тот же wsgi появился сначала в питоне, а в рубе его содрали.
>>681628>>681646
#313 #681626
Рабе из дед, не трогайте труп.
>>681627
#314 #681627
>>681626
Кстати, мочу-рабиста пидорнули же, теперь рабитред вахтерить некому. Можно набигать и щитпостить.
>>681632
#315 #681628
>>681613
>>681624

Парни, призываю вас остановиться. Не хочу, чтобы мой вопрос вылился в ковровое говнометание. Оно кому-нибудь надо?
>>681631
32 Кб, 500x375
#316 #681631
>>681628

>Парни


>Ребзя


>Парни

#317 #681632
>>681627

> мочу-рабиста пидорнули же


с чего ты взял?
>>681635
#318 #681635
>>681632
С того что зк некоторое время не модерировался вообще, потом Абу объявил набор в модераторы, потом был перепилен прикрепленный ньюфаг-тред. Оттуда выкинули форс раби и воткнули жабу.

>В: Хочу стать программистом, какой язык учить?


>О: Английский + Java


Смекаешь?
>>681637
#319 #681636
>>681260
Что из этого стоит почитать на досуге?
#320 #681637
>>681635
Не предполагаешь, что один и тот же человек может форсить то джаву, то руби?
>>681644
#321 #681638
>>681636
ничего
240 Кб, 1298x1695
#322 #681642
>>681636
пикрел почитай, там на питоне всё. есть в переводе на русский.
>>681645>>681926
#323 #681644
>>681637

>В: Хочу стать программистом, какой язык учить?


>O: Python/Ruby + Английский. По руби читать то-то, по питону вот книжка какая-то, я питон не знаю.


Руби там висел слишком долго чтобы просто так исчезнуть. До питона/руби там был просто питон + английский. Алсо, раньше вбросы в рубитред вида gem install rabota удалялись а постер банился. Сейчас они висят и агрят купившихся на рубихайп дураков.
#324 #681645
>>681642
про что там? в двух словах плес
>>681654
#325 #681646
>>681624

>Ты конкретные примеры можешь привести?


Мне лениво тратить на это время в интернете полно сравнений, даже на хабре, можешь считать что я только пиздеть горазд, всё равно я уже давно прототипированием и крудошлепством на скриптоязыках не занимаюсь.
>>681661
#326 #681651
>>681644

> До питона/руби там был просто питон + английский


И что? Тогда руби-модера не было по-твоему?

> купившихся на рубихайп дураков.


ну ты-то не такой, это хорошо.
>>681652
#327 #681652
>>681651
Рубисту неприятно.
>>681653
#328 #681653
>>681644

> по питону вот книжка какая-то, я питон не знаю.


кстати это я писал, тред был, где мы вместе фак создавали.
>>681652
лол
#329 #681654
>>681645
Ну вот например ты делаешь интернет-магазин книжек или ютуб и хочешь давать "рекомендации" на основе предпочтений других пользователей с похожими вкусами.
Там про алгоритмы для всякого такого.
>>681655
#330 #681655
>>681654
Интересно. Спасибо.
#331 #681656
>>681644

> рубихайп


Помойму он закончился лет 7 назад.
>>681658
#332 #681658
>>681656
Эта страна всегда немного отставала.
#333 #681659
>>681580

>Неправда, на нем ещё есть всякие тулзы типа chef, puppet и т.п.


...о которых не знает никто, кроме парочки фанбоев.
>>681667
#334 #681661
>>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.
#335 #681667
>>681659
Нет, они популярны среди одминов, которые и руби то не знают.
>>681670
#336 #681670
>>681667
Среди админов популярен ansible, очень удобно иметь платформу оркестровки и собственно свои скрипты на одном языке.
>>681671
#337 #681671
>>681670
ансимбл тоже популярен успокойся.
#338 #681681
>>679383
бамп
>>681684
#339 #681684
>>681681
Ты учишь второй, он уже не развивается и прекратит поддерживаться через 4 года.
>>681690
#340 #681690
>>681684
Я другой анон, просто тоже интересно.
Есть вообще что-то вроде кодекадеми, с третьим питоном?
653 Кб, 1106x924
#341 #681763
>>681270

>Программы-то где?


Ты уровень моих книжек видел? Какие программы ты ожидаешь. Хотя, пару уже постил. Но в основном итт спрашиваю.

>>681636

>то из этого стоит почитать на досуге?


Если ты нуп, то Automating Boring Stuff - оче хороша. Да и остальные, несмотря на начальный уровень содержать примеры разносторонних проектов дающие как минимум представление "как бывает"
28 Кб, 580x387
#342 #681795
Как в ёбанном 'gtk/pygtk' изменить положение/позицию виджета, чтобы он был вверху экрана?
>>681800
#343 #681800
>>681795
Экрана? Или окна?
>>681806
#344 #681806
>>681800
Экрана/монитора
>>681809
#345 #681809
>>681806
Но ты виджеты рисуешь на окне, а не на экране.
Ты хочешь сделать что-то типа панели оконного менеджера?
>>681812
6 Кб, 680x436
#346 #681812
>>681809
Чтобы главный виджет был вверху ёбанного экрана/монитора.
>>681815
#347 #681815
>>681812
window.set_decorated(False)
window.move(0,0)
window.resize(gtk.gdk.screen_get_default().get_width(), 22)
>>681816>>681830
#348 #681816
>>681815
Ну и always on top сделай его наверное
#349 #681830
>>681815
Спасибо, анончик.
#350 #681843
Анончик, подкинь ссыль на гитхаб с готовой Django - user.registration. Желательно с "раздолбленой" model.User.
А то чем, дальше тем непонятней.
#352 #681915
Анончик, объясни, пожалуйста, когда использовать map? Могу ли я забить на абсолютно всё хуй, использовать map вместо циклов и ебенить функциональщину везде где только можно?
#353 #681917
>>681915
Скорее всего говнокод получиться.
Да и вместо map удобней list comprehension использовать чаще всего, если ты не готовую функцию в map подсовываешь. Иначе лямбды придется городить да и в list comprehension можно сразу filter заебенить или 2 и более for
#354 #681926
>>681642
Цвет обложки именно такой должен быть? Нашёл только с зелёной рамкой. 2008 года как я понял.
>>681931
#355 #681931
>>681926
хз а автор тот же?
>>681939
#356 #681939
>>681931
Тоби Сегаран 2008 год
>>681943
#357 #681943
>>681939
Ну да та же. У меня была такая с пингвинами на обложке..
#358 #681967
>>681915
map нынче генерит итераторы вместо списков, что далеко не всегда удобно. решай сам.
>>682091
#359 #682091
>>681967
Лолд. Вот ето икспертиза. или ето тролленг?
>>682101>>682679
#360 #682101
>>682091
Чёт мне нравится как хохлы ехидничают. Чего стоит только одно ДА ТЫ ШО на одесситский манер.
>>682120
#361 #682120
>>682101

> ТА ТЫ ШО


фикс
#362 #682130
>>681622
Руби силён в том что может строить DSL.
Питон силён в том что всё явно и просто.
Руби силён рельсами, хотя джанга уже почти доросла.
Питон силён numpy/научными пакаджами.

Оба языка в принципе те же сорта говнаповидла. Что в лоб, что по лбу. Основные отличия я тебе перечислил.
>>682131
#363 #682131
>>682130

> уже почти


Вы заебали, что такого есть в рельсах чего нет в джанге, можете ответить? Конкретно.
>>682146>>682148
#364 #682146
#365 #682148
>>682131
Много самоцветиков. Под джангу меньше и половина спизжена из рельс. В целом объективно мне похуй конкретные различия. Но то что рельсы это законодатель мод в вебе, по крайней мере прошлых лет, у меня сомнений нет. В принципе оно и понятно почему всё так. Руби более гибкий. Для вебразработки это важнее чем надёжность и ясность кода.

Например sass/haml сделаны изначально под рельсы, в джанге до недавних пор все ебались со всякими тормозными ломающимися джангакомпрессорами и до сих пор ебутся с кастрированной версией jinja. Кофескрипт похож на руби. Вот тебе например пакет для рельс: https://github.com/thoughtbot/factory_girl и его клон для джанги https://factoryboy.readthedocs.org/en/latest/ Ещё мне страшно не нравится south который вшили в джангу, работает как пиздец, DROP DATABASE становится любимой командой. Ещё блядь агрегация в джанго орм это сука отдельное шаманство, часто уже и SQL про себя написал и сидишь гуглишь как это сделать через annotate.
20 Кб, 312x236
37 Кб, 306x370
#366 #682155
>>682148
sqlobject в рельсах тоже примитивный вроде как. в джанге можно алхимию с боку присобачить или raw sql написать.

> рельсы это законодатель мод


Они одновременно с джангой вышли

В руби тоже из мира питона тащат то то удачно вышло, это работает в обе стороны.
#367 #682160
>>682148
Насчет миграций - я вообще проблемы не понимаю. Их надо просматривать и править руками конечно, но это всегда так. Плохой API для этого? Да вроде норм.
>>682167
#368 #682161
>>682148
Я до того как впилили south использовал какие-то другие миграции, попроще, мне больше нравилось. Только их штуки 3 было альтернативных библиотеки для этого.
#369 #682167
Ох. Сейчас я вам исчо накатаю про джангу.

Роутинг через регексы.. Ну хуй с ним, пусть живёт, хотя регексы могут легко пересекаться и для скоупа мне приходится их копировать по многу раз. Страшнее другая хуитка: джангисты привыкли задавать алиас названию вьюхи, заместо 'myapp.views.login' они обязательно сделают алиас 'myapp:login' хотя он по сути нахуй не всрался.

Меня бесит подключать staticurl в темплейты. Сука просто нахуй бесит.

Тайтлы моделей не могут в словоформы кроме английских. 2 ПРОДУКТОВ ДОБАВЛЕНО

Джангомодуль не работает без файла с моделями. Вот хоть пустой но надо.

Никто толком не умеет использовать DJANGO_SETTINGS_MODULE, все ебутся с import local_settings.

Меня трисёт от того что я не могу примитивы админки просто импортировать в своё приложение и использовать.

>>682160
Плохой конечно. Лучше всего это вычисление diff между желаемой схемой и существующей в БД, и применение минимального пути модификаций. А так мне надо коммитить твоё говно из migrations, заставлять людей ждать по полдня чтобы все миграции выполнились, самому периодически нахуй сносить все эти миграции когда их становится много, починять это срань когда модели нестандартные (вроде mptt всяких). САМИ ЖРИТЕ СВОЁ ГОВНО. НЕТ НЕТ НЕТ!
>>682175
#370 #682172
Кстати spaceless тег страшно тормозной. Он блядь регексами постобработку хтмла каждый раз делает. Охуеть.
>>682179
#371 #682175
>>682167

> Никто толком не умеет использовать DJANGO_SETTINGS_MODULE


Неправда. Многие умеют. local_settings - устаревшая практика, раньше так делали, да.

> мне приходится их копировать по многу раз.


Что? Зачем?

> периодически нахуй сносить все эти миграции когда их становится много


Зачем?

> diff между желаемой схемой и существующей в БД


И как ты угадаешь что там и как менялось? Магически? Если ты например вынес что-то в другую модель и т.п. А миграция данных как будет проходить, которая часто нужна иначе данные потеряются или вообще всё сломается.

Вообще на реальных проектах с кучей данных ты alter table хрен зделаешь без остановки всего надолго. Это другая проблема.
>>682183
#372 #682176
Алсо, я совсем нихуя не понимаю зачем в корку вводят сущность Site. Такое же говно было в мадженте. Блядь, нахуя оно? Я нигде не видел чтобы его использовали.
>>682178
#373 #682178
>>682176
Оно тебе мешает чтоли? Может пригодиться.
>>682183
#374 #682179
>>682172
Не используй его. Нафиг он вообще нужен, тем более, если ты gzip`ом страницу жмешь это бесмысленно.
>>682183
#375 #682183
>>682175
Мне насрать на данные. Я разрабатывать хочу быстро. Я хочу syncdb и не ебать себе мозг. На продакшене это всё конечно же руками будут делать. Да и к тому же автоматика может показать какие данные проебутся, а вот блядская миграция всё молча дропнет.

>И как ты угадаешь что там


Интроспекция, йоба. БД показывают свои схемы. Соответственно набор необходимых альтеров можно вычислить.

>>682178
Так почему бы ему не съебать в отдельный пакадж?

>>682179
Он должен отрабатывать compile-time, а не каждый раз потом.
>>682205
#376 #682205
>>682183

> Он должен отрабатывать compile-time


Ну так запили так. Можешь потом патч прислать им.

> Интроспекция, йоба. БД показывают свои схемы.


Это понятно. Непонятно - ты переименовал и перенес какие-то колонки, вынес данные из одной модели в отдельную, как она узнает какие и куда?
>>682223
#377 #682223
>>682205
Никак не узнает. На локалхосте это нинужно. Новых данных набьёшь. Во всяком случае я сомневаюсь что админы продакшена будут запускать миграции джанги на живом серваке. Это такая глупая попытка переложить ответственность на разработчиков. Разработчики в свою очередь забивают хуй в пользу автоматики south. В итоге получаем ненадёжный мусор вместо ясного плана миграции.

Diff же может стать не просто кнопочкой сделать хорошо, а ещё и тулсетом-анализатором. В итоге админы могут например автоматически проверить все data loss/coercion на живых данных. South же просто разок спрашивает "ви таки уверены д/н", и разработчики на отъебись жмут да.
>>682230
#378 #682230
>>682223
Ну была библиотека которая типа diff делала как ты хочешь. Вот
https://github.com/beanbaginc/django-evolution
Вот тут ещё какие-то есть не пробовал
https://www.djangopackages.com/grids/g/database-migration/
>>682233
#379 #682233
>>682230
Да не, ок. Я даже сам такое делал. Удобно пиздец. Просто тот факт что в джангу вшили south означает что 99% проектов будут использовать south, и всегда найдётся куча ОДЕПТОВ которые будут меня критиковать за то что НИСТАНДАРТНО.
>>682236>>682237
#380 #682236
>>682233
Ещё до того как её вшили большинство использовало south.
>>682240
#381 #682237
>>682233
И вшили его туда по просьбам трудящихся.
>>682240
#382 #682240
>>682236
>>682237
Ну вот и трудитесь, няши. Удачки.
#383 #682414
Посоны, как сделать так, чтобы поток ожидал снятия блокировки (threading.Lock) и только потом выполнял код?
>>682418
#384 #682418
>>682414
lock.acquire() будет блокировать поток пока этот lock не освободится
http://www.bogotobogo.com/python/Multithread/python_multithreading_Using_Locks_with_statement_Context_Manager.php
>>682420
#385 #682420
>>682418
Или просто with statement используй как по ссылке.
#386 #682422
Спасибо!
#387 #682430
popen как то кеширует данные в pipe?
Мне нужно перегнать несколько Gb данных через него и не словить OutOfMemmory
>>682442
#388 #682442
>>682430
Ну какбе пайп сам по себе это такой буфер, ОС ограничивает его размер. То есть send на передающей стороне в случае чего заблокируется.
#389 #682522
from subprocess import Popen, PIPE, STDOUT
import json
import sys

ps = 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



Почему не работает?
>>682654
#390 #682556
>>681223

>Почему доступ к int'овым ключам словаря насколько медленнее, чем к байтовым? http://ideone.com/cAWzu4


Бамп вопросу. Я в теории кампутер саенса не шарю, как там это хеширование происходит конкретно.
#391 #682636
Товарищи, выручайте. Не могу завести python-magic на венде. Дллки скачаны и прописаны в %PATH%, magic.mime и magic.mgc скачаны и прописаны в %MAGIC%, мэджик их ВИДИТ, но ругается длинным списком на каждую строку файла magic.mgc чем-то вроде "Warning: 'blabla' type invalid!". Олсо, большинство этих строк в консоли отображается кракозябрами, мб с кодировкой чего не так (хотя при этом другие строки вполне нормально указывают какие-то типы MIME).
Все уже перетыкал, что на stackoverflow нашел.
>>682654
#392 #682654
>>682636

>на венде


Дальше не читал.

>>682522
Надо: proc = Popen(['grep', 'grep'], stdin = ps.stdout, stdout = PIPE)
Почему? Потому что ты делаешь proc =, т.е. пытаешься получить вывод в питоне. А STDOUT выводит напрямую в терминал. Питон в данном случае последний элемент пайпа и для захвата вывода ему надо выводить на пайп.
>>682704>>682722
#393 #682669
>>681915
List comprehension > map > for
Но все зависит от задачи, лямбды медленней фора, если не ошибаюсь. Читал у Лутца.
#394 #682679
>>682091
А что не так?
#395 #682704
>>682654

>Дальше не читал.


Пошел ты нахуй красноглазик
питон и на венде работает, а ты собака.
>>682707>>682756
576 Кб, 280x223
#396 #682707
>>682709
#397 #682709
>>682707
Хорошо, что ты прекрасно справился с самоидентификацией.
#398 #682722
>>682654

>Потому что ты делаешь proc =


Я делаю proc = потому, что питона не знаю.
Мне не нужно обрабатывать вывод в скрипте, мне надо сразу напрямую в терминал
>>682726
1 Кб, 489x91
#399 #682726
>>682744
40 Кб, 1032x901
#400 #682735
Анончик, как в 'pygtk' сделать список с кнопками, чтобы ещё и прокручивался по горизонтали?
#401 #682740
>>682735
Зачем ты пикрелейтишь такое
двач же забанят
>>682741>>682742
#402 #682741
>>682740

>Зачем ты пикрелейтишь такое


Учи мемесы чтобы не быть батхертом.
>>682748
#403 #682742
>>682740
Прикрепил по ошибке. Каюсь.
#404 #682744
>>682726
Понятно, благодарю.
#405 #682748
#406 #682756
>>682704
Это сложно назвать "работает". Так, подрабатывает. Ты же сам вот пишешь, какая это боль. На никсах или яблоке всё в два клика команды делается и чинится почти всегда.
>>682785
37 Кб, 885x275
#407 #682779
>>682735
Как-то так по-идее
>>682804
#408 #682783
Всё пизда пацаны. Роботы победили.
https://www.youtube.com/watch?v=l-GsfyVCBu0
>>682784
#409 #682784
>>682783
Да который раз уже. Только игру сменили. Ничего нового.
>>682786>>682794
#410 #682785
>>682756

>Ты же сам вот пишешь, какая это боль


Маняфантазии. Скрываю тебя
#411 #682786
>>682784
До сих пор не могли создать программу, которая выигравала бы в го. Даже не у самых сильных игроков.
Был даже приз в миллион долларов для того кто такой алгоритм создаст.
#412 #682788
Какой агрессивный и одновременно безрукий виндузятник.
>>682790
#413 #682790
>>682788
Маняфантазии
#414 #682794
>>682784
Как считается, сложность го для компьютера (по сравнению, например, с шахматами) вызвана двумя основными факторами:
Большое число вариантов ходов[57]. В шахматах в начальной позиции существует 20 разных ходов, в го — 55, с учётом симметрии доски, но после нескольких первых ходов позиция утрачивает симметрию и далее число возможных ходов становится практически равным числу оставшихся свободных пунктов. Дерево вариантов при попытке просчитать партию вперёд на несколько ходов растёт существенно быстрее: если в шахматах после четвёртого полухода может возникнуть порядка ста тысяч позиций, то в го их число превышает шестнадцать миллиардов. Такие масштабы полностью исключают возможность «механического» перебора позиций, которым, в значительной мере, берут нынешние шахматные программы.
Сложность формализованной оценки позиции. В шахматах давно и достаточно точно выработаны формальные критерии оценки позиции и определена сравнительная ценность фигур, а в го оценка позиции алгоритмизируется плохо. Компьютеру доступны пока только простейшие критерии качества позиции, что и определяет его возможности.
С 1987 года фонд Инга (Ing Foundation) проводит ежегодный турнир среди компьютерных программ, победители которого получают денежные призы. Самое известное предложение фонда: «The Ing Challenge» — 40 миллионов тайваньских долларов (около миллиона евро) за программу, способную победить чемпиона среди тайваньских любителей. Пока приз остаётся невыплаченным.
22 Кб, 281x280
#415 #682804
>>682779
Да, только кнопки должны быть в горизонтальном скролле.
>>682807>>682809
#416 #682807
>>682804
Ну я vbox создал, а ты hbox создай. без разницы
>>682808
#417 #682808
>>682807
Скинешь исходники?
>>682811>>682813
55 Кб, 856x506
#418 #682809
#419 #682811
>>682808
Какие исходники? Я просто в glade форму набросал.
Ну собственно без glade создаешь ScrolledWindow, внтурь добавляешь ViewPort, а в него hbox. На hbox pack_start/pack_end кнопки
>>682939
50 Кб, 756x499
#420 #682813
>>682814>>682816
29 Кб, 567x334
#421 #682814
>>682813
Убрать вертикальный скролл тоже можно
>>682816
#422 #682816
>>682813
>>682814
Спасибо.
#423 #682861
Всем привет! Вопрос такой: три года на питоне, ушел из php. Недавно подкинули жирный заказ на сайтик, срок месяц. Хочу попробовать себя на джанге, но не знаю, осилю ли? Верстка и дизайн уже готовы. Стоит ли браться за джангу? Есть опыт с торнадо, если это хоть как-то улучшит ситуацию
>>682871
#424 #682871
>>682861
Ну ты когда-нить с mvc фреймворками работал?
Вообще не вижу проблемы, возьми и почитай туториал по джанге это пол часа занимает.
>>682893
#425 #682893
>>682871
Да конечно работал, codeigniter, kohana, yii... У меня есть шансы?)
Спасибо тебе, мил человек!)
>>682917
#426 #682917
>>682893
Ну там принципы такие же - шаблончики, модели, объекты request/response, сессии, orm, формы.
#427 #682939
>>682811

>ViewPort


не нужен же вроде. scrolledwindow + бокс внутри.
>>682946
56 Кб, 678x400
#428 #682946
#429 #682987
>>682735
Анон, а почему pygtk, а не qt?
>>682999>>683231
#430 #682999
>>682987
Вы заебали. Очень много советчиков qt, но софта почему на нем нихуя нет, особенно на pyqt/pyside. Вообще.
В тоже время на pygtk дофига известного софта - gajim, gwsmg, meld, mirage, deluge, exaile, pitivi и так далее
>>683006
#431 #683006
>>682999

Не бугурти так.
#432 #683058
Think Python есть на русском?
>>683077
#433 #683070
Анон, совсем затупил за день.
Как мне проще передать на сервер через socket два числа, чтобы с ними провести операции? Я их превращаю в строку и отправляю, но если их кодировать в байты то мой сервер постоянно выводит с ними в строке b'.
Как от него избавиться или как мне задачу проще сделать?шесть пар было, правда туплю уже сижу.
>>683075
#434 #683075
>>683070
import struct
#435 #683077
>>683058
да, гуглится на каком-то то линукс форуме в первой строке
#436 #683090
Такой, казалось, простой вопрос, но никак не соображу.
dict = {'k':'test'}
b = dict.get('k', None)

Теперь мне надо значение b перегнать в байты. При том что b может быть как строкой так и None. Как это сделать лаконично.
#437 #683091
>>683090

>Как это сделать лаконично.


Вопрос проебал. Нувыпонели.
#438 #683099
>>683090
if isistance(b, str): b.encode
Это не лаконично?
>>683104
#439 #683104
>>683099
Это лишняя строка.
#440 #683108
>>683090

>Теперь мне надо значение b перегнать в байты. При том что b может быть как строкой так и None. Как это сделать лаконично.


Нахуя ты сам себе яму выкопал, а теперь её перепрыгнуть пытаешься?
>>683111
#441 #683111
>>683108
Потому что это надо передавать в функцию, которая принимает только байты и None.
#442 #683134
Умеет ли Володя Питун под Питона кодировать?
>>683135
122 Кб, 600x300
#443 #683135
>>683134
На сосач быдло
>>683138
#444 #683138
>>683135
Электорату Володи Питуна неприятна.
#445 #683172
>>683090
b = d['k'].encode() if 'k' in d else None
В итоге так воткнул, и ни одной лишней строчки.
>>683175
#446 #683175
>>683172
Говнокод
>>683176
#447 #683176
>>683175
Дай вариант лучше.
>>683179
#448 #683179
>>683176
Все говно.
foo = dict.get('k', '').encode() or None
Тоже говно и семантика другая
>>683183
#449 #683183
>>683179
Выглядит чуть менее всрато. Взял твое, спасибо.
#450 #683215
Питонач, посоветуй днище vps под джангохостинг.
>>683232>>683235
266 Кб, 869x676
#451 #683231
>>682987
Анон, а почему тройка а не двойка?
#454 #683252
Аноны, с чего начать изучать kivy и какие есть гайды кроме того что на офф сайте?
#455 #683273
Анон, я выучу питон? Скажи, что выучу. Я же смогу.
>>683276
#456 #683276
>>683273
Зачем учить это бесполезное говно? учи сразу ruby или java. или с++
#457 #683278
>>683276
Зачем учить это бесполезное говно? учи сразу haskell.
>>683294
#458 #683280
>>683276

>ruby


>не бесполезное говно


Ты же понимаешь что даже если полезешь за фактами то жиденько обосрешься, верно? Как и тысячи рабифанатиков до тебя.
#459 #683282
Анон что мне выбрать двойку или тройку для новых проектов?
>>683287
#460 #683283
Анон, что лучше выбрать новичку: фласк или джанго? Поясните за плюсы и минусы каждого.
#461 #683286
Анон, как мне научиться гуглить и читать шапку?
#462 #683287
>>683282
Двойку конечно. Под тройку тупо нет библиотек и дохуя проблем.
>>683290
18 Кб, 500x500
#463 #683290
>>683287
Есть контакт.
>>683296
#464 #683294
>>683278

Двачую.
#465 #683296
>>683290
посмотри на pypi сколько библиотек поддерживают трешку.
>>683304
#466 #683303
>>683276
Не могу в джаву. Сложно. ruby не хочу.
#467 #683304
>>683296
Сколько депрекейтед говна было дропнуто с переходом на тройку. Говна, на которое забили не то что пользователи, но и авторы. А все что надо либо портировали, либо переписали.
>>683311
#468 #683311
>>683304
И новые библиотеки никто не парится бекпортить на устаревшую двойку.
>>683316
#469 #683312
>>683276
Есть только 2 нормальных языка программирования: лисп и ассемблер
#470 #683316
>>683311
Многие новые библиотеки выходят под двойку потому что тройка никому нахуй не впилась кроме студентов.
>>683323>>683334
112 Кб, 499x499
#471 #683323
#472 #683334
>>683316
На двойке продолжают сидеть вахтёры и нытики типа Ронахера.
>>683384
#473 #683384
>>683334
Ронахер со своим РУСТом ебанулся.
38 Кб, 800x600
#474 #683443
Вчера обращался на счёт 'pygtk' и 'ScrollWindow'. Вот.
Как можно сделать прокрутку списка с помощью кнопок? То есть, делаю кнопки, конекчу событие и список прокручивается.
>>683444
34 Кб, 586x497
#475 #683444
>>683443
У scrolledwindow
adj=sw.get_hadjustment()
adj.set_value(adj.get_value()+10)
Короче идею понял.
Вроде можно этот adjustment как-то привезять к каким-то другим контролам сразу лень щас смотреть, но ты можешь просто повесть вот эту хрень на события кнопки
#476 #683544
Изменение глобальной переменной всего одна на 3к строк из функции - зашквар или нет?
>>683547
#477 #683547
>>683544
Нет. Глобальные переменные это не всегда плохо, иногда это даже незаменимо. Сейчас набигут кукаретики которые всё оборачивают в классы, даже main, даже аллаха.
#478 #683548

>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.


Заживем.
>>683549
#479 #683549
>>683548
Нет/не для всего. Я уже пояснял почему.
>>683552
#480 #683552
>>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


Остальные языки тоже подтянутся. Или еще какие подводные камни есть?
>>683559
#481 #683559
>>683552
Понимаешь, сишечка-то она компилируемая. И в среде asm.js у неё практически нет рантайма (нет например printf, cout, fopen, iostream и прочего, если ты конечно сам не подключишь облегчайзеры жизни из emscripten). А у питона есть довольно жирный рантайм, который тебе каждый раз придётся скачивать чтобы взлететь.
#482 #683564
Хотя я на самом деле не знаю что будет если питон основательно обрезать до уровня интерпретатора. Но сомневаюсь что кто-то асилит. Ну по крайней мере pypyjs вроде как работают над этим.
>>683569
#483 #683569
>>683564
Есть micropython для микроконтроллеров, например. Если уж змея туда пролезла то в веб, где люди на каждый чих подгружают жквери и ангуляр, пролезет тем более.
>>683582
#484 #683582
>>683569
Ну знаешь ли, контроллеры тоже разные бывают. Я считаю что микропитон это скорее глупость чем полезность. Ну или способ помигать светодиодом совсем легко и быстро. Но в целом конечно вектор правильный, под asm.js лучше компилять вот такой вот минимальный рантайм.

Но во-первых нужно запилить систему импорта. Во-вторых вырезать/переделать всякие open/print и прочие билтины. В-третьих вырезать/переделать большую часть стандартной библиотеки. То есть даже с выходом полностью стабильного webassembly (хотя нахуя ждать ассембли если уже давно есть и работает emscripten+asm.js?) соответствующая реализация питона будет выходить ещё очень долго.
>>683754
#485 #683754
>>683582
Что глупого-то? Я вот на работе планирую его использовать.
>>683832
#486 #683832
>>683754
Под сишечкой микруху можно значительно дешевле брать для той же задачи. Вот почему.
>>684558
#487 #683880
>>677889 (OP)
Пацаны, у меня тупой вопрос нуба.

#!/bin/python
import sys,random
from time import sleep

def 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 не ругалось?
>>683914
#488 #683897
Смотри, анон, кокая годнота https://github.com/alexjc/neural-doodle
#489 #683914
>>683880
Все ОТСТУПЫ сломал, еблан, пастебин для кого придумали?
>>683915
#490 #683915
>>683936>>683943
#491 #683936
>>683915
И че ты хотел сделать?
Чтоб в функцию разное кол-во переменных передавалось, гугли args kwargs.
Если рабочую консольную утилиту, то гугли arg parser'ы всякие. https://docs.python.org/3/library/argparse.html
Или сорцы входящих в поставку утилит.
>>683962
#492 #683943
>>683915
''.join(random.choice('0123456789ABCDEF') for x in range(partlen)
Для этого есть random.sample
>>683965>>684399
#493 #683962
>>683936

>И че ты хотел сделать?


Хуевую консольную утилиту.

И таки разобрался. Скобку проебал.
>>683969
#494 #683965
>>683943
Сэмпл вернет список байтов а мне нужны строки.
>>683978
4 Кб, 420x158
#495 #683969
>>683962
проверку аргументов ещё заебашь.
#496 #683978
>>683965
Чего? Каких байтов, наркоман?
In [1]: s='0123456789ABCDEF'

In [2]: from random import sample as sam

In [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'
>>683982
#497 #683982
>>683978
Окей, в глазки надо меньше ебстись.
Сейчас переделаю с сэмплом.
#498 #683986
Как-то так вышло
http://pastebin.com/JHd6LYc7
#499 #683990
Нее, хуйня вышла
сэмпл ругается если я пытаюсь сделать комбинацию из 20 символов (больше 16 на самом деле)
>>684008
#500 #683999
>>683993
Да я ж нубло тупое в питоне. Пусть зубры пилят. А то впердолю хуйню в шапку и краснеть потом.
>>684001
#501 #684001
>>683999
Шапку не сложно сокипастить, ничего нового не надо. Ну и да, №500 пилит перекат.
#502 #684008
>>683990
А, ну значит он без повторов выбирает.
#503 #684009
>>684002

>NameError: name 'perecot' is not defined

#505 #684013
Сами напросились. Пили перекот да пили перекот бля.
#506 #684018
>>684011
да похуй вобще, оставь два for. Как осилишь итераторы, генераторы на них все перепишешь.
#507 #684391
https://corp.mail.ru/ru/press/events/189/
18 марта, в пятницу, приглашаем на MoscowPython Meetup 33 в офис компании Mail.Ru Group.
sage #508 #684396
>>684391
Нахуй иди.
#509 #684399
>>683943
random.sample это не тоже самое

> Chooses k unique random elements

#510 #684558
>>683832
Ты так говоришь будто из своего кармана платишь. Вон плисы все берут и похуй, что оверхед, главное быстро и гибко.
#511 #686872
Кто нибудь пользуется Ipython (консоль-редактор)? Чото я забался закрывать редактор, открывать коносоль, вводить алиас на выполнение. Есть туториал на русском7 Чо там как делать?
#512 #686878
>>684391
Возмите меня на Почту, я умею в sort()
#513 #686883
>>684391
Ты здесь? Ты из Почты? Запиши на телефон вот эту и выложи на ютуб: Лев Тонких, Rambler&Co «iPython & Jupyter: 4 fun & profit» На русском совсем нет инфы по ipython
#514 #691259
Посоны, прохожу питон на кодакадеми, довольно часто лезу в подсказки и чувствую себя мегатупым. Это нормально? Или я обречен? Самообразовываюсь после вьебинга на работе, может от усталости так хуево въезжаю? Вроде и орехи ем. Я расстроен, короче.
#515 #692471
Я пытаюсь скачать через requests html-текст с вот этого сайта http://www.goodreads.com/
Использую requests.Session
Но я не знаю какие headers передавать чтобы скачать именно mobile версию, а не desktop
Можете помочь?
715 Кб, 1952x3264
Аноним #516 #704155
>>679022
ой умри нахуй пидарас и мама твоя пусть умрет нахуй и твой отец пусть умрет нахуй, а твоего деда я ебал, понял?
Тред утонул или удален.
Это копия, сохраненная 5 апреля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски