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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
#2 #656107
Вы уверены?
>>656113
396 Кб, 452x680
#3 #656113
Репост из прошлого треда #4 #656133
Здрям, аноний. Впервые в этом уютном тредике, и сразу выкачу хуйню.
Джанга охуенна своей моделью моделей, админкой и сообществом. Но при этом всё, что в ней касается собсно фронтэнда (все эти формы, хтмл-шаблоны и прочее дерьмо) - на грани устаревания. Всем нынче подавай динамику дохуя, асинхронность, чтобы ни одного релоада страницы за многочасовую сессию - ну, я конечно преувеличиваю немного, но общая тенденция всё же именно такова. Через пять лет это уже будет ожидаться от сайта по дефолту и джанга начнёт подсасывать. Не сосать, конечно, потому что модели, админка и сообщество - тащат.
Так вот. Я уже и сам с этим столкнулся, в итоге взял для бэкэнда джангу + рест фреймворк, а на фронтэнд накатил эмбер (который явно создавался под влиянием и джанги в том числе). Это всё вместе работает очень даже неплохо, если бы не одно но. Даже, скорее, НО.
Блядский, триждывовседырыразъёбанный, охуевающий в своей промудопиздяцкой уёбосущности жабаскрипт, без которого о современном фронтэнде ты даже и думать можешь забыть. Да, разумеется, я юзаю кофескрипт - но это сродни попытке отрешиться от того, что ты ебёшь насквозь прогнивший и разваливающийся прямо на члене труп, нарядив его в кружевное бельё, оторвав всякие лишние детали да чуток полив сверху эмалью.
А ведь всего лишь на другой стороне коннекшена у меня крутится прекрасный няшка-питон, который в последней его, 3.5, ипостаси УЖЕ гораздо лучше подойдёт для любой фронтэндерщины, нежели этот выблядок сей с лиспом родом из девяностых.
Проблема, конечно, очевидна - ебучие браузеры нихуя не понимают нашу любимую змею. Есть вонючая кучка трансляторов py->js, но все они как-то внешне больше похожи на трупы, да и async/await, жизненно необходимые для фронтэнда, они все как один игнорируют, уёбушки.
В связи с этими печальными обстоятельствами у меня баттхёрт, что опять же очевидно. Ну и ещё какие-то смутные планы по запиливанию своего транслятора py->js, разработки под него собственного фронтэнд-фреймворка лайк э эмбер и далее, чем чёрт не шутит, запихивание поддержки питона в браузеры, благо хромиум и лиса открыты, так что теоретическая возможность есть.
Разумеется, я понимаю что я баттхёртящий долбоёб и влажный мечтатель, ниасиливший js. Просто захотелось поделиться этим самым баттхёртом и влажными мечтами, вдруг это действительно нужно кому-то, кроме меня.
Репост из прошлого треда #4 #656133
Здрям, аноний. Впервые в этом уютном тредике, и сразу выкачу хуйню.
Джанга охуенна своей моделью моделей, админкой и сообществом. Но при этом всё, что в ней касается собсно фронтэнда (все эти формы, хтмл-шаблоны и прочее дерьмо) - на грани устаревания. Всем нынче подавай динамику дохуя, асинхронность, чтобы ни одного релоада страницы за многочасовую сессию - ну, я конечно преувеличиваю немного, но общая тенденция всё же именно такова. Через пять лет это уже будет ожидаться от сайта по дефолту и джанга начнёт подсасывать. Не сосать, конечно, потому что модели, админка и сообщество - тащат.
Так вот. Я уже и сам с этим столкнулся, в итоге взял для бэкэнда джангу + рест фреймворк, а на фронтэнд накатил эмбер (который явно создавался под влиянием и джанги в том числе). Это всё вместе работает очень даже неплохо, если бы не одно но. Даже, скорее, НО.
Блядский, триждывовседырыразъёбанный, охуевающий в своей промудопиздяцкой уёбосущности жабаскрипт, без которого о современном фронтэнде ты даже и думать можешь забыть. Да, разумеется, я юзаю кофескрипт - но это сродни попытке отрешиться от того, что ты ебёшь насквозь прогнивший и разваливающийся прямо на члене труп, нарядив его в кружевное бельё, оторвав всякие лишние детали да чуток полив сверху эмалью.
А ведь всего лишь на другой стороне коннекшена у меня крутится прекрасный няшка-питон, который в последней его, 3.5, ипостаси УЖЕ гораздо лучше подойдёт для любой фронтэндерщины, нежели этот выблядок сей с лиспом родом из девяностых.
Проблема, конечно, очевидна - ебучие браузеры нихуя не понимают нашу любимую змею. Есть вонючая кучка трансляторов py->js, но все они как-то внешне больше похожи на трупы, да и async/await, жизненно необходимые для фронтэнда, они все как один игнорируют, уёбушки.
В связи с этими печальными обстоятельствами у меня баттхёрт, что опять же очевидно. Ну и ещё какие-то смутные планы по запиливанию своего транслятора py->js, разработки под него собственного фронтэнд-фреймворка лайк э эмбер и далее, чем чёрт не шутит, запихивание поддержки питона в браузеры, благо хромиум и лиса открыты, так что теоретическая возможность есть.
Разумеется, я понимаю что я баттхёртящий долбоёб и влажный мечтатель, ниасиливший js. Просто захотелось поделиться этим самым баттхёртом и влажными мечтами, вдруг это действительно нужно кому-то, кроме меня.
#5 #656139
>>656075
Ну а тебе скажу что программирования я учил традиционно, бейсики-плюсы-асмы-шарпы. Да и в js я могу, там нет ничего эдакого, не считая конечно что это куча дерьма, которую постоянно подпирают костылями.
>>656256
#6 #656197
>>656133
Смотрите внимательно, дети. Если вы будете начинать учить программирование с питона или раби, то станете такими же неосиляторами, не способными в изучение других языков, в которых нет примитивного синтаксиса для школьников и домохозяек. Этот экземпляр не может освоить даже JS - что уж говорить о C++/C#, Java и других языках, на которых есть работа.
>>656213>>656256
#7 #656213
>>656197

>ставить JS в один ряд с языками программирования

>>656224
#8 #656224
>>656213
Если это не язык программирования, почему ты не смог его осилить?
>>656228
#9 #656228
>>656224

>ты


>подразумевать, что в треде только ты и твой оппонент

#10 #656231
ЖС-блядь унижает питонистов в их собственном треде.
#11 #656256
>>656197
Смотри >>656139.
Тащемта, я нигде не говорил что его сложно осилить. Меня просто дико раздражает необходимость писать на хреново спроектированном языке - и особенно остро, прямо вот как шило в булке, эта недоспроектированность ощущается когда ты переключаешься между вкладками идешки с питоном и js. Когда в одном файлике у тебя полный порядок, всё разложено по полочкам отступов, линейно и вообще по дзену, а в соседнем - сошедшая с ума подсветка, потому что слишком много функций с таким названием наговнокодили джсники, а про импорты сжалившиеся соседи им рассказали только пару лет назад. И лесенка промизов вместо асинков. И для нормальной работы с датами, которые вроде как почти примитивы - либу скачай и потом не забывай все "нативные" даты в вызов оборачивать. И про перегрузку операторов забудь, пожалуйста, у тебя ведь методы есть, хуле ещё надо? И именованные параметры давай-ка явно словарём передавай и потом чекай вручную. И ещё тонна всяких мелких хуёвин, которые все вместе вызывают желание блевануть и забыть про этот пиздец как про страшный сон... Но хуй тебе! Нет альтернатив, поэтому вот тебе надкусанный кактус, вот платочек, и давай, давай, ам-ам, плак-плак. Неосилятор!
#12 #656263
Чёрт, да если вдумчиво засесть за расписывание недостатков жабоскрипта, можно накатать второй "Фрактал плохого дизайна", не меньше. Символично, как по мне, два пиздеца веба - пыха и джс - столь тесно связаны... Наверно, это заразно. И хоть я очень не люблю пыху, ей во всяком случае есть нормальные альтернативы, поэтому она у меня такого бомбления не вызывает. Но стоит спуститься с сияющих небес бэкэнда на бренную землю браузеров...
>>656275>>656357
#13 #656275
>>656256
>>656263
Нульчую.
#14 #656277
Тут вот https://habrahabr.ru/post/215777/ кто-то попытался объять необъятое, но не могу сказать что получилось. Слишком это отсосный фрактал, чуть копнёшь - и затянет.
#15 #656283
>>656256

>лесенка промизов вместо асинков


Что тебе мешает сделать цепочку. Лесенками пишут только долбоёбы.
#16 #656284
Пишу на питоне и жаваскрипте, оба языка нравятся. Что я делаю не так?
>>657143
#17 #656291
>>656283

>что тебе мешает сделать цепочку


Кстати да. Если человек ноет про колбекхелл или лесенки, то это отличный детектор дебила, который городит сам себе сложности, а потом винит язык. Причём так практически со всеми жалобами - копни глубже и окажется, что виноват кодер, а не язык.
#18 #656298
>>656291

>виноват кодер, а не язык


https://www.destroyallsoftware.com/talks/wat
>>656423
sage #19 #656357
>>656263
js != dom, заебали
#20 #656423
>>656298
до слез, аххах
#21 #656459
>>656283>>656291
О, пошла хуйня. Ну-ка, и как же вы развернёте обычную лесенку вида
getSomeShit(1).then((a) ->
getAnotherShit(2).then((b) ->
sendAllShitToServer(a, b, 3);
)
)
?
Напомню что в нормальных языках это делается как-то так:
a = await getSomeShit(1)
b = await getAnotherShit(2)
await sendAllShitToServer(a, b, 3)
45 Кб, 448x403
#22 #656537
>>656459
Внимание на пикрилейтед. Снизу - цепочка промисов здорового человека. Сверху - лесенка дегенерата. Специально для тупых написал и заскринил.
#23 #656539
>>656283>>656291
Ну и замечу что вы как-то тактично промолчали про остальные приведённые косячки js, это показательно.

В общем, не думаю что у кого-то возникают особые сомнения в том, что питон куда лучше жабаскрипта справится с ролью языка для фронтэнда. Каким бы образом ещё приблизить это царствие питонье на браузерах, блядь.
#24 #656545
>>656537
Спаси и сохрани святой асинк, блядь. Не, ну ты сейчас серьёзно? Ты считаешь что нижнее говно лучше верхнего говна?
>>656586
#25 #656551
>>656459
>>656537
Погодите, срач - это замечательно, но хочется спросить: можно ли эту лесенку написать через Promise.all() ?
>>656562
#26 #656562
>>656551
В моём варианте из >>656459 - да, можно, я не сцепил getAnotherShit с результатом getSomeShit. В варианте >>656537 - уже нет, они там все друг на друга завязаны.
>>656570
#27 #656564
>>656459 >>656537
Иногда в C# заебывает для каждого действия с await заводить отдельную переменную.
Особенно если она нужна только следующему вызову.

мимо-c#-девелопер
#28 #656570
>>656562
Понял.
#29 #656582
Весьма показательно.
Сначала было это:
>>656291

>копни глубже и окажется, что виноват кодер, а не язык


Но дебилов, не читающих документацию это не остановило - они стали упираться. После того, как их тыкнули лицом в их обосрамс - они тут же съехали на другие темы.

Мораль: прежде чем обвинять во всём язык потрудитесь открыть документацию. В 99% в вашем говнокоде виноваты вы сами, а не плохой язык.
>>656587
#30 #656586
>>656545
Ты серьезно считаешь, что заводить десяток переменных ради одного вызова - это нормальная практика?
>>656589
#31 #656587
>>656582
Ты хоть про что говоришь-то? Где здесь кто незнание документации показал?
>>656618
#32 #656589
>>656586
То есть, значит, городить десяток функций ради этого - лучше?
>>656619
#33 #656592
Поясните ньюфагу за компиляцию. Хочу написать среднего размера оконное приложение, стоит выбор между python+pyqt и винформсами. Склоняюсь в сторону первого, но всегда использовал питон исключительно чтобы какую-нибудь хуйню быстренько посчитать/проверить в idle. Есть риски что по причинам моей жопорукости в итоге нихуя не скомпилится как надо? И вообще что посоветуете накатить для этой цели, гугл советует pypy, подойдет?
>>656603
#34 #656603
>>656592
Дотнет по скорости разработки может быть, пожалуй, и побыстрее, ежели в студии мышкой элементы по фасту накидаешь и обработчики всякоразные напишешь.
#35 #656618
>>656587
Ты же перед использованием промисов читал стандарт по ним? Или хотя бы инструкцию? Как можно было читать и пропустить часть про построение цепочек?
>>656632
#36 #656619
>>656589
Это стандартная цепочка на лямбдах. Что не так?
>>656645
#37 #656632
>>656618
Нет, не читал. Я тебе больше скажу, "стандарты" ЯПов я вовсе никогда не читал. Ты же имеешь в виду спеки, верно? Мне как-то не приходилось заглядывать в предназначенные для разработчиков компиляторов/интерпретаторов вещи, потому как я таковым не являюсь. По этой причине я вполне довольствуюсь найденной документацией, как, например, здесь https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise
По ссылке никаких особых инструкций по сцеплению не находится. Кстати, полюбопытствовав, я всё же заглянул по приведённой там ссылке на те самые стандарты, вот сюда http://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects
Ты предполагаешь что перед использованием js я должен был прочитать всю эту портянку?
>>656776
#38 #656645
>>656619
Мне десяток переменных импонирует больше чем десяток функций. Да, я знаю что под капотом async/await городят всё те же коллбэки, но ты же не будешь отрицать что код существенно упрощается для чтения когда вот эти мерзкие кишки асинхронности не размазаны по нему тонким слоем?
>>657234
#39 #656695
Съебите в жс-тред.
#40 #656776
>>656632

>Ты предполагаешь что перед использованием js я должен был прочитать всю эту портянку?


Не знаю как ты, а я когда начинаю изучать любой новый язык, то сразу после получения базовых знаний лезу читать спеки, чтобы потом не городить хуйни и не винить во всём плохой язык.
#41 #656819
django
Есть модель, в которой есть tags = models.CharField(max_length = 200)
Выглядит как строка '#tag1 #tag2 #tag3'
Как мне получить id модели, в tags которой есть #tag2 ?
Подскажите пожалуста, не могу додуматься.
>>657267>>657275
#42 #656851
>>656084 (OP)
Нубский вопрос. Вот, скажем, есть у меня игрушка, в игрушке есть персонажи, у каждого персонажа есть положение, скорость, здоровье, текущее оружие, состояние горит/не горит и так далее, и тому подобное. Мне было бы удобно описывать персонажа словарем (персонаж={положение:[10.0,50.5], скорость:[2,0], здоровье:70, оружие:'bazooka', горит:False и так далее}), но не будет ли обращение к такому словарю сильно медленнее, чем к списку?
>>656889
#43 #656879
Где взять питон кукбук? Гуглю и нахожу одну хуйню
>>657148
#44 #656889
>>656851
timeit в помощь. Пайтоновские списки не такие уж и быстрые, алсо.
>>656941
#45 #656941
>>656889
Спасибо.
#46 #657123
Работаю манаджером по продажам и консультантом по бизнес-хуете изредка. Имею свой бизнес и иногда кручусь и чего-то даже зарабатываю.
Три месяца назад сел учить питон. Особо необходимости не было, просто ностальгировал как десять лет назад меня с прикмата универа выгнали, ну и обстановка признаться сами знаете какая, может через пяток лет кодингом хоть на хлеб заработаю, если остальные варианты совсем сдуются. Но тем не менее учить начал не ради вката в айти и прочей хуйни, а от скуки и интереса.
Вот и учу с тех пор. Каждый день что-то читаю, кодю, перекодил всё подряд что в голову пришло, сейчас играюсь семантическим анализом и всякими приблудами к нему, не сказать что всё понимаю - но мне нравится. А реальные вещи, типа сайта на джанге для бизнеса - такое делать не нравится, мне оно скучно и там ещё надо же хтмл-жс использовать, жуть!!!
Вот и вопрос собственно в чём мой: веб это и для вас сплошная предсказуемая банальщина? или это я проецирую ненароком, или наоборот слишком праздно подхожу? Ну и куда бы двигаться порекомендовали дальше с питоном, не обязательно в коммерческие сферы, хоть примерно какой вектор у меня возможен? Анализ данных + машинное обучение по моей косналтинговой специальности как бы в планах имеется, но как его реализовывать нету даже примерного представления, да и не опаздываю
>>657156>>657256
#47 #657143
>>656284
Пишешь на жаваскрипте.
#48 #657148
>>656879
google: it ebooks.
>>657161
#49 #657156
>>657123
После первой строчки ожидал увидеть спам на флешлайты и фингербоксы. Менеджер.
#50 #657161
>>657148
Спасибо большое!
#51 #657234
>>656645
Async/await еше и лечит порядок всплытия эксепшенов по стеку, который с цепочной лямбд превращается в лютый пиздец
>>657240
#52 #657235
cx_freeze

Флажок

copyDependentFiles=True

должен копировать всякую мишуру, типа использованных в скрипте текстовых и медиафайлов и тд?

Или единственный способ - это впихивать их в итоговую папку ручками или перечислять в build поименно каждый?
>>657311
#53 #657240
>>657234
Ты ещё один раз обосрался. Добавляешь в конце .catch(err => обработка ошибки); и всё.
>>657241>>657242
#54 #657241
>>657240
Нахуй нужны велосипедные catch, если в ЯП _уже_ есть конструкции для контроля исключений?
sage #55 #657242
>>657240
А вообще, обоссал агрессивного хуйлана, На работе поясняй, кто где обосрался. Блядь, и эти люди зовут себя инженерами
#56 #657256
>>657123

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


machine learning, data science, reverse engineering.
Интересней ничего не завезли.
#57 #657262
>>656133
Вот этому вот господину, два чая, пожалуйста.
#58 #657267
>>656819
Боже, ну кто так делает теги. Создай уже отдельную модель для тегов и юзай m2m relationshps.
>>657275>>657969
#59 #657275
>>656819
Удваиваю >>657267
Ну или юзай Post.objects.filter(tags__icontains='#tag2 '), обрати внимание на пробел в конце - он нужен чтобы тебе не выбрались ещё и посты с тегами, только начинающимися с #tag2 (например, #tag2хуйняёбаная).
>>657306
#60 #657306
>>657275
Или используй постгресс, а теги храни в JSONB поле в виде массива. Проиндексируй через GIN, вхождения тегов ищи соответствующими операторами.
#61 #657311
>>657235
pyinstaller
#62 #657360
>>651031
Конечно, все сделал как в видосе до makemigrations, только он не работает.
#63 #657376
>>656084 (OP)
20летний экономист хочет делать модельки процессов, анализировать статочку и че-нить еще по надобности мудрить в питоне.

Стоит ли начинать с питона?
(совсем на айтишник)
#64 #657380
Стоит. Можешь еще на язык R посмотреть, может он тебе больше подойдет.
(Совсем не экономист)
>>657386
#65 #657386
>>657380
Зачем R если в питоне все есть все? Не нужен.
>>657890
44 Кб, 522x274
#66 #657396
>>656084 (OP)
Почему submit сохроняет страницу вместо того что бы отсылать в скрипт post ом
>>657475
#67 #657455
Аноны, подскажите с записью значений в таблицу SQLite. Записываю 13 значений. Одно передаю одной переменной, а 12 других хочу передать в виде списка:

cur.execute('INSERT INTO ' + model_table + '''
(
date_id,
val1, val2,
val3, val4,
val5, val6,
val7, val8,
val9, val10,
val11, val12
)
VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )''',
( date_id, prices ) )

prices - как раз этот список, правильного размера. Но при запуске скрипта получаю ошибку:
"sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 13, and there are 2 supplied."

Как правильно это сделать?
>>657465>>657475
#68 #657465
>>657455
Подозреваю, что тебе нужно распаковать список посредством звездочки предворяющей этот самый список.
>>657686
#69 #657475
>>657396
Потому что настрой сервер нормально, тормоз.

>>657455
Не знаю, как в питоне, но в Ruby тебе нужно было бы звёздочку перед prices поставить.
>>657686
#70 #657523
>>656037
Единственный 100% рабочий способ - это сделать asm.js полную сборку с питоном. Весит правда дохуя, работает не так быстро, но совместимость 100%. Конечно же для рядовых сайтов это не подходит.
>>657525>>657849
#71 #657525
#72 #657540
Анон, помоги с haystack + solr, вроде бы все работает, но ищет только а) полные совпадения б) только по заголовкам (ну то есть полю тайтл, моей модели объявления).
>>657571
#73 #657571
>>657540
Впрочем я его уже снес и буду заново пердолиться с эластиксёрчем.
#74 #657686
>>657465
>>657475

Возможно это так и есть. Но так и не получается разобраться. Запись в SQLite вызываю через функцию, в нее и передаю список prices. Если распаковать, поставить перед prices звездочку, в вывозе функции - она не вызовется, потому что в ней определено другое количество аргументов. Если распаковать prices прямо в sql-запросе, то там вообще syntax error.
1 Кб, 196x73
#75 #657697
Анан, я начал постепенно обмазываться пистоном. Вроде всё просто и понятно. Но у меня возник вопрос. Собсна пикрилейтед. Как, блять, это происходит? Почему с точки зрения математики эквивалентные выражения дают разные результаты? И вообще интересен механизм работы питона с большими числами. Реально БОЛЬШИМИ. Из серии расчета факториала числа? Каким образом питон крутит на хую ограничение типов классических языков. Такой карнавал твориться только при работе с дробными числами? На сколько приведенные результаты малы?inb4: иди уроки делай
>>657710
#77 #657730
>>657745
#78 #657733
Поможет кто-нибудь с поиском, пожалуйста? Не могу врубиться как сделать поиск по частям слов. В документацию вникаю с трудом.
>>657736
#79 #657736
>>657733
s = 'string'
'stri' in s

>> True


Что тебе там еще то надо?
>>657742
#80 #657742
>>657736
Я про хейстак и эластиксерч.
#81 #657745
>>657710
>>657730
Да. Вроде понятно. Спасибо, схоронил.
#82 #657849
>>657523
pypyjs.org есть. Ладно, скажем похуй что там либа грузится дохуя - 2.5 МБ в сжатом виде не так уж много по современным меркам, учитывая кеш. Даже на отсутствие третьего питона можно чуток подзабить, там вроде автор пишет на гитхабе что всё не так уж плохо и запилить можно.
Но он пиздец какой медленный -_-
#83 #657890
>>657386
R каноничен. А со скайпаем ещё повозится придётся(там отдельный интерпретатор или надстройка или оболочка- я хз, ipython. Там данные немного по другому устроены нежели в классическом Питоне (pandas вроде как R и копирует)
>>657916>>658682
#84 #657916
>>657890
А то с R повозиться не придется. Тем более под винду. Зато у питона еще применений миллион, и дергать-парсить дату им удобней. А R это так, полуживой язык одного фреймворка для одного применения.

>pandas вроде как R и копирует


Как что-то плохое.
#85 #657950
Помогите анончики.
>>657955
#86 #657955
>>657950
Мы бы помогли, но ты бы хоть один лотерейный билет купил!
6 Кб, 241x168
#87 #657969
>>657267
Благодарю за ответ. Вроде бы сделал как надо.
Подскажите пожалуйста как теперь вывести теги к статье на главной странице. Если бы была одна статья то я бы сделал article.tags.all(), но я передаю много статей сразу. Если в шаблоне просто вывести теги, как у меня раньше было, то в html появляется "qa.Tag.None " Или же я неправильно построил м2м связь?
>>658024
#88 #658024
>>657969
article.tags.all в джиндже заработало. Расходимся.
#89 #658266
Посоны, необходимо сделать что-то типа шедулера/эвент-лупа, который будет периодически выполнять какие-то действие. Действия, как и периоды, задаются пользвателем.

Но нет возможности использовать какие-либо библиотеки, в распоряжении есть только системные часики.

Как бы это всё правильно организовать? Что почитать? Кроме сорцов каких-нибудь пиглетов.
>>658269
#90 #658269
>>658278
#91 #658278
>>658269
Что cron? я не могу использовать никакие библиотеки, мне в скрипте нужно накостылять простенькую версию. И вообще не на питоне даже.
>>658290
#92 #658290
>>658278
Впрочем, загялнул в пиглет, и оказалось то, что и ожидал:
на каждом тике проверятется if: current_time() > item.time: item.func(); item.time += item.interval.
Никакой магии, однако...
>>658299
#93 #658299
>>658290
держи ещё time sleep(..)
#94 #658301
Вопрос тупой как двэри:
md5hash = os.popen('md5sum ' + filename).read().split(' ')[0]

эта магия запускает в sh

>On Ubuntu, /bin/sh is dash, a shell designed for fast startup and execution with only standard features.


А у меня как раз убунту

Как мне в баше-то тогда запустить?
>>658321
#95 #658308
>>656084 (OP)
Ребзя, пожелайте удачи. Нашел наконец-то удаленку на джангу. Сегодня первый рабочий день на новой работе. Хоть уже и не в первый раз, но все равно ссыкотно.
>>658318
#96 #658318
>>658308
Удачи бро
Будет нужен джунодебил - дай знать!
>>658346
#97 #658321
>>658301
Ты не мог перефразировать вопрос? Непонятно чего именно ты хочешь.
Если запускать в bash, то
md5sum file
>>658324
#98 #658324
>>658321
Я случайно забыл что гугл есть.
Нашёл уже: http://stackoverflow.com/questions/33502652/how-can-os-popen-be-set-to-use-bash

В двух словах культурная особенность убунты, что ос.попен - это запуск сш, а не баша
Запускать баш можно через субпроцесс:
md5hash = subprocess.check_output(('md5sum ' + filename), shell=True, executable='/bin/bash')
>>658325>>658339
#99 #658325
>>658324

>запускать из-под питона команду в баше, а не сше


selffix
#100 #658339
>>658324
Там написано, что os.open перекочевала в subprocess.
И какая тебе разница в чем запускать? И почему не использовать hashlib какой-нибудь?
>>658343>>658344
#101 #658343
>>658339
Никакой вовсе, но sh в скрипт где-то хуйню находит:

>sh: 1: Syntax error: "(" unexpected


а в bash - нет и нормально работает
#102 #658344
>>658339

>hashlib


кстати спасибо, наверное с ней и сделаю
#103 #658346
>>658318
Мне нужен друг-дебил, чтобы вместе джанго-дебилить.
>>658368>>658410
#104 #658368
>>658346
Тульпа - твой лучший друг.
>>658375
#105 #658375
>>658368
Не хочу тульпу, надоело.
#106 #658410
>>658346
Бида в том что я не особо в джанго вообще врубаюсь, и не особо вникал. Всё ещё считаю что моего левела недостаточно.
Потому пока я больше по просто говноскриптам, всякие парсеры-хуярсеры-сам себе эксель-спамер реплаями на годные вакансии на хедхантер-и т д
>>658418
#107 #658418
>>658410
Да и я не врубаюсь ни в питон ни в джанго, полгода уже превозмогаю с переменным успехом.
#108 #658589
Так, товарищи джангодебилы, подскажите мне, почему у меня из шелла метод модельки вызывается и отрабатывает корректно, а из шаблона посылает нахуй?
Разумеется, аргументов метод не требует, из шаблона вызывается не через .method(), а как __method, бочка сделана, хуйцы пососаны.
>>658595
#109 #658595
>>658589
Я даже не знаю что такое метод модельки, аргументы, блядь, какие-то.
мимо джангодебил
>>658596
#110 #658596
>>658595
Ну ты какой-то совсем дебил :\
>>658599
#111 #658599
>>658596
Все недебилы работают, тут только поехавшие бездельники сидят.
>>658601
#112 #658600
Разговоры джангогоспод жпг
#113 #658601
>>658599
Ну так может, тут есть бездельники поумнее меня, а то я совсем голову сломал уже
>>658602
#114 #658602
>>658601
Код и посылание нахуй покажешь или так и будем шуточки шутить?
>>658606>>658621
#115 #658606
>>658602
Шуточки шутить все же веселее, чем вдруг обнаружить у него в шаблоне где-то незакрытый {% for %}
>>658621
#116 #658608
Раз уж нас тут собралось трое, а то и больше, воспользуюсь случаем и спрошу: МОЖЕТ МНЕ КТО-НИБУДЬ ПОМОЧЬ С ПОИСКОМ ПО ЧАСТЯМ СЛОВА ПРИ ИСПОЛЬЗОВАНИИ DJANGO-HAYSTACK И ELASTICSEARCH Поиск работает, но только по полным совпадениям, то есть, например, ЗАЛУПА, он найдет во всех полях где есть ЗАЛУПА, а ЗАЛУП уже не найдет. С автозаполнением тоже разобраться не могу, доки весь день читал, нихуя не вычитал.
>>658616>>659295
#117 #658616
>>658608
Года 2 назад все настраивал по тьюториалу. Сейчас лень смотреть как там че.
>>658628
#118 #658621
>>658602
Посылает, не выполняя метод вообще. И не выводя ничего. Код метода:
`def retqausers(self):
ql = self.qauser_set.all().values('user_name')
rl=[]
for i in ql:
rl.append(i['user_name'])
return rl`
>>658606
нет, незакрытых тегов нет.
>>658628>>658635
#119 #658626
Иногда мне кажется, что джанго — болезнь пифона
не-использовал-джанго-никогда
>>658646>>659918
#120 #658628
>>658616
Делал все по докам, куда-то проебал половину функционала.
>>658621
Ты что, шизический? Никто даже разбираться не будет в этих каракулях. Запости в пастохранилище с подсветкой кода и не забудь показать что тебе в окне БРОУЗОРА написали.
>>658632
#121 #658632
>>658628
Там кода с гулькин хуй, ну ладно http://pastebin.com/W5LUBAkg
В браузере, повторяю, ничего от слова совсем.
sage #122 #658635
>>658621
return [x.user_name for x in self.qauser_set.all()]
>>658637
#123 #658637
>>658635
Да неважно. Факт в том, что не работает из шаблона.
>>658638>>658639
#124 #658638
>>658637
Так шаблон, блядь покажи.
>>658644
#125 #658639
>>658637
я у себя через точку делал, без скобок все работает
>>658644
#126 #658644
>>658638
Ты странный. Я просто вызваю метод.
Т.е. %объектнейм%__retqausers
>>658639
Методы же не через точку вызываются, емнип.
Сука, заработало. Ну блядская дока, еб ее мать.
>>658648
#127 #658646
>>658626
В чем-то ты прав. Магия с вечно протекающими абстракциями. Нужно понимать, что и как под капотом, тогда он охуенен.
>>658650
#128 #658648
>>658644
Емнип, через два двоеточия методы для лукапа использутся в фильтрах, например.
>>658653
#129 #658650
>>658646

>понимать, что и как под капотом


Вот это вообще для меня недостижимая штука.
#130 #658653
>>658648

>два двоеточия


ну ты понел, подчеркивания
#131 #658682
>>657890
Разобрался с пайтоном: scipy и pandas освоить труда не составит. ipython дико удобен, работать с ним одно удовольствие, начиная с запуска файлов прямо в оболочке до его магических функций. По данным хз, но массивы из numpy гораздо быстрей стандартных списков тех же питона.
#132 #658902
Программировал на nodejs довольно долгое время и привык к шаблонизатору jade. Отказываться от столь годного инструмента тяжко. Но в связи с обстоятельствами необходимо было перейти на питон, выбрал фрейм фласк.
#133 #658906
>>658902
Да вот шаблонизатор jinja2 совсем не котируется. Собственно можно ли писать писать шаблону под питон на jade?
>>658917
#134 #658917
>>658906

> jinja2 совсем не котируется


/0
>>658927
#135 #658927
>>658917
Может и не понимаю чего. Питон учу не так много, от чего же такая реакция?
#136 #658929
>>658902
Кстати удваиваю. Синтаксис Jade - это же питон в чистом виде. Почему он используется в ноде с совершенно иным синтаксисом, а в питоне опять же шаблонизатор с непитоновским синтаксисом?
>>658933
#137 #658932
>>658902
трудно погуглить jade python?
>>658936
#138 #658933
>>658929
Потому что автор платформы node, тот же что jade. Интересует как довести все до автоматизма, с интеграцией jinja труда не составило, только с написанием
#139 #658936
>>658932
Прогуглил. Нашел несколько решений, но хотелось узнать мнение тех, кто так работал или предложение о более лучшей альтернативе
sage #140 #659250
Привет, анон. Второй день пытаюсь учить Питон по книге и уже столкнулся с проблемой. Не гоните ссаными тряпками в гугл, там я уже искал, но в силу узколобости не смог найти ответ. Почему скрипт из командной строки запускается, а из питона выдает ошибку SyntaxError: invalid syntax и указывает на двоеточие в пути к файлу? Что с ним не так? Почему выдает такую же ошибку при вводе % python script.py? При этом указывая на знак процента? Пожалуйста помогите разобраться.
>>659251>>659274
#141 #659251
>>659250
Прошу прощения за сажу.
>>659265
#142 #659265
>>659251

> Прошу прощения


Ты поехавший? %пшёл нахуй отсюда%
>>659269>>659350
#143 #659269
>>659265

>%мам, смотри, я олдфаг%


Пиздуй отсюда, чухан.
>>659273
74 Кб, 736x736
#144 #659273
>>659269
ПРОЩУ ПРОЩЕНИЯ
>>659276
#145 #659274
>>659250
Откуда ты этот процент вообще взял?
http://stackoverflow.com/questions/1027714/how-to-execute-a-file-within-the-python-interpreter

Но это явно не то, что тебе нужно. Точнее, ты делаешь совсем не то, что тебе нужно. Или тебе нужно не то, что ты делаешь.

Вот три нормальных способа.

Файл должен быть либо в той же директории, либо в PYTHONPATH:
1. import module
2. from module import *

Из соснольки:
3. python3 -i file.py
>>659277>>659481
#146 #659276
>>659273
Ну извини, не хотел тебя обидеть.
#147 #659277
>>659274

>3. python3 -i file.py


Это выполнит файл и оставить тебя в интерактивном интерпретаторе, со всеми переменными.
#148 #659295
>>658608
Поставил Solr, все работает как надо.
#149 #659313
>>656084 (OP)
Нужно задеплоить апликуху на django на удаленный сервер. Возникла проблема при настройке связки nginx uwsgi. Суть в том что uwsgi при любом раскладе не хочет использовать виртуальное окружение. Пример настроек

[uwsgi]

plugins = python3
home = /home/user/www/app/.env
virtualenv = /home/user/www/app/.env
chdir = /home/user/www/app/app
pythonpath = ..
env = DJANGO_SETTINGS_MODULE=app.settings
module = wsgi:application

Т.е. должен использовать окружение с 3м питоном, а использует 2й. Файл настроек правильный. Открыв его в виме могу перейти в директорию просто gf, т.е. она тоже указана правильно. Но в чем проблема не могу понять.
#150 #659350
>>659265
тест
>>659351
#151 #659351
>>659350
Ах ты ж ебаный ты нахуй, ТЕСТ БЛЯДЬ
#152 #659388
>>656084 (OP)
Анон. Я немного упоролся и прошу совета. Как ТОЧНО посчитать кол во ТОЛЬКО месяцев, ТОЛЬКО лет до определённой даты. С учётом високосных годов и различия месяцев по кол-ву дней. Не смог найти ничего подобного в datetime, хотя не исключаю возможности, что долблюсь в глаза. В общем, реквестирую помощь.
>>659391
#153 #659391
>>659388

>Не смог найти ничего подобного в datetime


Найдй подобное в timedelta
>>659394
#154 #659394
>>659391
Оно вывыодит результат только в миллисекундах, секундах и днях. Как мне выводить разницу в месяцах и годах?
>>659399
#155 #659399
>>659394
тогда как-то так:

>>> a = datetime.date(2011,3,22)


>>> b = datetime.date(2016,2,19)


>>> months = (b.year - a.year) * 12 + b.month - a.month


>>> months


59
>>659407>>659409
#156 #659407
>>659399
Спасибо
#157 #659409
>>659399
Правда, нихуя не правильно.
>>659410
#158 #659410
>>659409
С днями сам подкрути как тебе правильно
>>659412>>659413
#159 #659412
>>659410
Между этими датами будет 58, а не 59 месяцев.
>>659419
#160 #659413
>>659410
Ну охуеть. Обратился, чтобы не писать костыль - предложили написать костыль. 10 из 10, господи.
>>659416
#161 #659416
>>659413
Ну хорошо, не пиши велосипед, вместо функции на 3 строчки возьми либу https://pypi.python.org/pypi/MonthDelta
>>659418
#162 #659418
>>659416
Неужели в вашем охуенном питоне нет стандартной либы для расчёта подобной фигни?
#163 #659419
>>659412
Это почему это 58? Или тебе только полных месяцев нужно? Тогда можно

>months -= int(b.day < a.day)


добавить.
#164 #659420
>>659419
Патамушта он дурачек с некорректной постановкой задачи
#165 #659422
>>659419
А при подсчёте времени бывают какие то другие месяцы?
>>659444
#166 #659423
>>659419

>months -= int(b.day < a.day)


А потом он прибежит со сравнением 30, 31, 28, и 29 в разных месяцах и начнет швыряться говном. Я ему уже посоветовал допилить под свое видение задачи
#167 #659426
Ты мне посоветовал написать костыль. Мне не нужны костыли. Мне нужна нормальная библиотека. Желательно, из стандартного набора.
#168 #659444
>>659422
Например, при определении числа отработынных месяцев по российскому ТК, действует правило округления. У тебя нихрена не написано, что именно ты задумал получить. Какой вопрос - такой ответ.
>>659446
#169 #659446
>>659444
Мне нужно досчитать от текущего числа до конкретной даты в будущем. Считать я хочу как в обычном формате: "Осталось 20 лет 10 месяцев 24 дня", так и по отдельности:"Осталось 250 месяцев" etc. Так чуть понятнее? И в догонку вопрос. Есть ли в стандартной библиотеки что-то, что может выдать русские названия едениц измерения времени в соответствии с их кол-вом. Например 4 года, но 10 лет.
>>659455
#170 #659455
>>659446

>Например 4 года, но 10 лет.


http://man7.org/linux/man-pages/man3/ngettext.3.html

Не знаю, есть ли какие-то готовые решения, я всегда делал через ngettxext и .po файлики
>>659457
18 Кб, 837x372
#171 #659457
>>659455
Спасибо. Попробуй что то с этим наклепать. Пока что подобное действо возложено на костыль, но выглядит он весьма мерзко.
>>659475
#172 #659475
>>659457
If a in (a1, a2....):
....
>>660748
#173 #659481
>>659274
На счет процента не могу сказать, я просто делаю как написано в книге, а именно:

> Сохранив этот текстовый файл, вы сможете предложить интерпретатору Python выполнить его, указав полное имя файла в качестве первого аргумента команды python, введя следующую строку в системной командной строке:



% python script1.py

Вот значение переменной PATH: C:\Python31;C:\Python31\Scripts;C:\Python31\lib\site-packages\django\bin

Файл находится в папке питона, и делая по третьему пункту опять выдает SyntaxError: invalid syntax. Я пробовал писать python31 и python3, и все равно безрезультатно. Почему это происходит?
>>659490>>659641
#174 #659490
>>659481
Процент подразумевает запуск из командной строки. Его вводить не надо.
>>659500
#175 #659500
>>659490
Я его не вводил. Просто ввел python script1.py и все, хотя из командной строки все получается, но если вводить полный путь к файлу.
>>660379
#176 #659641
>>659481

>python


Чо ты делаешь нахуй? Это ж виндоус, нужно python.exe писать.
>>659643>>659736
#177 #659643
>>659641
Где писать? В командной строке или где? Я же не шарю.
>>659729
#178 #659729
>>659643
В тред пиши
#179 #659736
>>659641
пишу на вин10 в cmd python
все работает брат жив
>>659744
#180 #659744
>>659736
Такая же хуйня.
#181 #659779
Питонач, хочу в Дженге сделать проверку емейла на валидность. И тут (https://github.com/django/django/blob/master/django/contrib/auth/tokens.py), что получается, .check_token() (1) проверяет когда был сделан токен, (2) и отсюда следует что он шифрует дату в токене, и (3) отсюда следует, что не нужно делать таблицу с полями токен, дата и юзер, писать проверку и сборщик мусора?

И ваще ненужно делать таблицы для реализации вот этого так как всё будет зашифровано в токене?
>>660415
#182 #659918
>>658626
Да, в джанге масса недостатков. Зато охуенная админка.
#183 #659940
Анон, как насчет Flask? Начал копаться в нем, но обнаружил что последняя версия 2013 года. Он вообще развивается?
>>659979
#184 #659979
>>659940
Нет, фласк - хуй.
#185 #659995

>659779


Помогите ньюфажине, пидоры.
>>659998
#186 #659998
>>659995
помог.
43 Кб, 436x600
#187 #660108
Сап, питоняшки. Помогите нубасу, кому не лень. Как создать сразу несколько переменных с одним значением? То есть, допустим, мне нужно создать переменные а1, а2, а3 и а4, и чтобы все они содержали строку, со словом "хуй".
#188 #660125
>>660108
a1=a2=a3=a4='хуй'
>>660167>>660189
#189 #660152
>>660108
ne blagodari
a1, a2, a3, a4 = [z for z in ['xyz']*4]
>>660167>>660189
#190 #660167
>>660125
Спасибо.
>>660152
horosho, ne budu
#191 #660189
>>660152
yoba, zachem lishniy cikl?
a1, a2, a3, a4 = ['xyz']*4

a1, a2, a3, a4 = itertools.repeat('xyz')

no kruche koneshno kak tut >>660125
>>660216
#192 #660216
>>660189
tak zagadochney
#193 #660379
>>659500
Почитай про current dir и по какой схеме шындошс и питон ищут файлы.
#194 #660415
>>659779
В теории, должно работать. Надо будет попробовать завтра.
>>660789
#195 #660475
>>660108
Создание n переменных https://ideone.com/aLfcAM
>>660478
#196 #660478
>>660475
globals().update
не делай так
>>660480
#197 #660480
>>660478
Чем чревато?
>>660492
#198 #660492
>>660480
Во-первых глобальных перменных надо избегать вообще http://stackoverflow.com/questions/19158339/why-are-global-variables-evil
А locals() - read-only и вообще с ним какие-то проблемы, его не рекомендуют использовать для записи.
>>660497>>660732
#199 #660497
>>660492
А, я думал что-то новенькое узнаю. Это же джаст фо лулз пример. Хотя, знаю один случай, где globals() упростили работу с пачкой конфигов в виде .py файлов, которые должны были импортироваться друг в дружку и в проект определенным образом. В каждом таком файле кроме "глобальных" констант больше ничего и не было.
>>660501
#200 #660501
>>660497
И зачем для этого globals()?
>>660512
#201 #660512
>>660501
import some_lib внутри функции не делает определенные в some_lib константы доступными вне этой функции, а они там нужны.
>>660516
#202 #660516
>>660512
Почему просто не сделать from somelib import *
Не внутри функции, а на уровне модуля?
>>660519
#203 #660519
>>660516
Потому, что есть еще 2nd_some_lib, 3rd_some_lib и т.д. с одноименными константами, но с разными значениями. И в функции определяется, какой из модулей надо импортировать.
>>660528
397 Кб, 955x718
#204 #660528
>>660536>>660550
#205 #660536
>>660528
Решение не самое изящное, не спорю, но работает и занимает две строчки, по одной на импортируемый и на целевой модуль.
#206 #660550
>>660528
Алсо, если ты предложишь лучшее решение этой задачи, я буду только рад.
>>660560
#207 #660560
>>660550
Если ты сформулируешь задачу, я буду только рад.
>>660571
#208 #660568
Ощущаю небольшой творческий кризис.
Расскажите что самое интересное и волнующее с вами происходило при работе с питоном? Может закодили какую-нибудь крутую хуйню и она вас впёрла что вы пританцовывали до конца дня, или после нубовелосипедов со словарями вы открыли для себя дефолтдикт, например?
>>660585
#209 #660571
>>660560
У тебя есть три конфига с одинаковым набором констант, но с разными значениями. И есть некий обширный скрипт, который эти константы использует. Как мне указать с каким конфигом скрипту работать, не модифицируя каждый раз скрипт?
>>660584>>660589
#210 #660584
>>660571
def get_setting('file1')
например
>>660608
#211 #660585
>>660568
Дофига всего. И defaultdict-like открытия и что-то крутое типа asyncio, micropython, написание своей либы и пост на pypi, travis, coverage. Боты для онлайн игр (когда добиваешься их правильной работы) и много-много другого.
#212 #660589
>>660571
Передавать имя конфига как аргумент скрипту. Использовать json для хранения конфигов, например.
#213 #660595
>>660589

> json для хранения конфигов


Нахуя? Есть ini файлы. Есть yaml. Да блин на самом питоне конфиги наиболее гибкие.
>>660616
#214 #660608
>>660584
Это built-in функция? Что у ней внутре?

>>660589
Забыл упомянуть, что этот скрипт сам в виде аргумента передается в куда надо.
>>660619>>660728
#215 #660616
>>660595
Написал же "например". Конфиги на питоне это говно. Конфиги должны быть только данными, вся гибкость должна быть в приложении.
>>660730
#216 #660619
>>660608
Куда надо это куда? Попахивает говно-архитектурой. Можешь конечно передавать два аргумента: "этот скрипт" и "вон тот конфиг".
#217 #660654
Есть JSON файл. Как можно изменить значение одного или нескольких параметров в нём, избежав открытия-записи-сохранения? Может есть какая нибудь команда вроде сделать значение свойства test равным 12?
>>660729
#218 #660728
>>660589

>Передавать имя конфига как аргумент скрипту


Малаца, один из немногих правильных джангистов. Не надо городить хуйню в settings.py со всякими globals и трахом с черезжопными импортами, надо сделать другой x_settings.py в который импортируется базовый.

>>660608

>скрипт сам в виде аргумента передается


Использовать envvars например.
#219 #660729
>>660654
Niqaque.
#220 #660730
>>660616

>Конфиги на питоне это говно


Не всегда. По части поддержки питонных структур более-менее близок наверное только yaml. Ну и дополнительные синтаксисы/особенности держать в голове не надо, просто нужно стараться придерживаться правила: никакого кода в конфиге, только данные. Хотя я не фанат драконовских ограничений, всё же допускаю простые скрипты в конфигах если например нужно автоматически выставить дохуя каких-то значений, но по правде говоря мне таких случаев ещё не встречалось.
>>660768
#221 #660732
>>660492
Есть ещё vars(), я много раз использовал, в том числе и на запись. Например это единственный способ динамически создать свойства класса до отработки наследованных метаклассов, в джанге например.
#222 #660748
>>659475
Разве можно итерировать по строкам?
>>660782
#223 #660768
>>660730
О каких структурах речь? В json-е есть список, словарь, число и строка. Чего ещё не хватает?
#224 #660782
>>660748
А почему нет? https://repl.it/Bo8L
#225 #660789
>>660415
Уже написал, это работает. Но хуй знает как.
#226 #661019
Анон, где можно почитать чужой хороший код на питоне?
>>661034>>661035
#227 #661034
>>661019
На гитхабе, епт.
>>661053
#228 #661035
>>661019
В стандартной библиотеке. Шутка, там говнокода полно.
#229 #661053
>>661034
Я им вообще не умею пользоваться, я даже херово представляю что такое этот ваш гит. Только начал учиться кодить. Просто зарегистрироваться и искать по тегу "python"?
#230 #661055
>>661053
Регистрироваться не обязательно
#231 #661057
>>661053
Не забывай ставить классы и подписываться.
#232 #661062
>>661053
http://pypi-ranking.info/alltime вбиваешь названия популярных пакетов в гугол, одна из первых ссылок будет на гитхаб. Идешь туда и лазишь по кладке code.
#233 #661075
>>661053
Ищи по той штуке которую пишешь.

Но нахуя тебе читать чужой говнокод? Если ты что-то пишешь и у тебя не получается, гугли вопрос словами, с начало на русском и если нет ответа, то на энглише. Из гугла попадешь на блоги/ сервисы ответов, там или будет пример решения твоей проблемы, или ссылка на документацию. Открываешь три-четыре вкладки с примерными решениями, немного воображения, чуть творчества и хопа у тебя работающий говнокод. Когда он есть и у тебя есть время, и тебе за это время платят, ты задаешься вопросом, а можно ли сделать твое говно лучше. И проходишь заново все пункт, но с целью уже улучшения твоего кода. И так годами.
>>661080
sage #234 #661080
>>661075

> с начало на русском


> с начало


Вот из-за этого и я гуглю сразу на английском.
мимо
>>661088
#235 #661088
>>661080
Из-за ошибок прочитавший себе палец не отрежет. Я смысл передал, ты смысл понял. Остальное выебоны снобистов.
>>661115
sage #236 #661115
>>661088
Очевидно, что ты смысла не понял.
Я говорил о тупых школьниках. Зачем мне советы тупых школьников, которые даже не в состоянии понять <...>. Такая вот рекурсия.
>>661121
#237 #661121
>>661115
Хули ты такой выебистый то, а? Ты считаешь, что в России, отвечают на форумах и сервисах, не образованное быдло? Ошибаешься.
>>661144>>661150
#238 #661144
>>661121

> Ты считаешь, что в России, отвечают на форумах и сервисах, не образованное быдло?


Да так и есть ващет.
>>661149
#239 #661149
>>661144
Но ты ведь тоже отвечаешь на форуме.
>>661160
sage #240 #661150
>>661121
В голос с безграмотного быдлана.
>>661185
#241 #661160
>>661149
Не вижу противоречия.
#242 #661185
>>661150
Высокомерный уебок :-)
#243 #661187
Нужны ли модули нюфане, который совсем недавно познакомился с циклами?
>>661200
#244 #661200
>>661187
Если бы ты учил историю античных времен, но возник вопрос по первой мировой - оно бы тебе помешало?
>>661204
#245 #661204
>>661200
Если бы ты сосал хуй, но пришлось облизать яйца - оно бы тебе помешало?
>>661205
#246 #661205
>>661204
Ну да, яйца то волосатые
>>661206>>661207
#247 #661206
>>661205
А я брею.
#248 #661207
>>661205
Нет, не волосатые
>>661208
#249 #661208
>>661207
школьник детектед
>>661209
#250 #661209
>>661208
Починил детектор наконец? Молодец
>>661210
#251 #661210
>>661209
Скрываю тебя.
>>661211
#252 #661211
>>661210
Хорошо
#253 #661248
Ну и зачем, спрашивается, вот эта ебала с рабочей субботой? Все пришли и пинали хуи целый день. Включая не успевшее протрезветь начальство. Сделали бы уж нормальный праздник, а то переносят-переносят, геморрой один. И режим мой весь поехал. Ненависть.
#254 #661261
Я бы вообще все праздники упразднил, прибавив соответствующее количество дней к отпускам. Нет ни единого сраного повода всей страной впадать в анабиоз хоть через новый год, хоть через такую хрень как 1-2 мая
>>661591
#255 #661311
Анчоусы, использую django-filter чтобы фильтровать и сортировать запросы, но выходит какая та ебола когда пытаюсь сортировать, например посты по последнему комментарию, так как посты комментарии относятся к посту по m2m связи, грубо говоря я получаю список комментариев. Дальше я использую order_by('comment__date') и пытаюсь использовать distinct('id') чтобы у меня остались только уникальные посты, но джанго жалуется на то что нарушен порядок запроса. Можно как то оставить только уникальные посты?
#256 #661321
Какие преимущества у PyCharm перед редакторами типа Atom/Brackets/саблайм?
>>661366
#257 #661323
Как вы учили Python?
>>661367
#258 #661366
>>661321
Тем что оно иде, а не редактор для начала
Ну а проще если:
10/10 Автокомплит
Другие плюшки можешь посмотреть вот тут http://blog.jetbrains.com/pycharm/2016/01/introducing-getting-started-with-pycharm-video-tutorials/?utmsource=feedburner&utmmedium=feed&utm_campaign=Feed
#259 #661367
>>661323
Кодекадеми - Укус питона - Синк Пайтон
#260 #661369
Нормально будет теребить змеюку для геймдева?
#261 #661378
Ананас, какой svn используешь, может быть у тебя bitbucket или еще какое-то говно?
#262 #661382
>>661369
Для геймдева рекомендую сразу поискать более распространённый в сфере язык программирования
#263 #661441
>>656256

Очевидно нужен пистонобраузер с поддержкой питоноскриптов из коробки.
>>661442
#265 #661449
>>661369
Нет. Сможешь только мелкую пиксель-арт индюшню писать. Есть только два нормальных, полноценных движка для игр любых жанров.

Unreal Engine 4 - C++
Unity - C#/JS
>>661452>>661455
#266 #661452
>>661449
Даже арт-индюшня будет с душком - рогалики вон и те на плюсах восновном пишут. Под питон есть библиотека, конечно, но она это просто прослойка к плюсовой.
>>661566
#267 #661455
>>661449
Питон можно использовать как скриптовой язык на котором вся игровая логика, кроме движка самого. Правда вроде в геймдеве в ходу lua больше.
Но вот например цивилизация 4 на питоне.
Или для написание сервера если это онлайн игра.
>>661461
#268 #661461
>>661455
Троллейбус из хлеба
Да и интересовались на счёт змейки для вкатывания в гейм дев - это не звучит как ХА ХА ДАВАЙТЕ ПИСАТЬ СЕРВЕРА НА ПИТОНЕ
>>661464
#269 #661464
>>661461

> Троллейбус из хлеба


Скриптовый язык нужен, не будешь же всю игровую логику на плюсах фигачить.
>>661476>>661512
#270 #661476
>>661464
Чем обсуждать сферического коня в вакууме лучше ответь на >>661369 более полно, качественно и тд чем уже ответившие господа. И посмотрим насколько будет принципиальным отличие.
#271 #661512
>>661464

>не будешь же всю игровую логику на плюсах фигачить


В UE именно так, поэтому он и непопулярен, хотя там можно слепить самый реалистичный графон. А скриптовые языки лучше использовать только встроенные, без анальных компиляторов.
>>661514>>661553
#272 #661514
>>661512

> именно так


Что мешает прикрутить сбоку какой-нить встраевыемый скриптовый язык?
#273 #661553
>>661512

>UE


>непопулярен


/0
>>661562
#274 #661562
>>661553
Мы сейчас говорим не о студиях, а о диванных разработчиках, которые хотят что то слепить на коленке.
#275 #661566
>>661452
Это ты про какую?
>>661570
#276 #661570
>>661566
Очевидный FIFE.
>>661571
#277 #661571
>>661570
Впервые слышу вообще. Есть ещё вот такая, http://rlgclub.ru/forum/viewforum.php?f=26&sid=88d49c78fa82a3ca67fde83477a83071 но она тоже к питону врапперами прикручена, да.
#278 #661591
>>661261
Я бы вообще все праздники упразднил, и выходные, и отпуска. И рабочий день сделал бы часов 14. А зарплату выдавал бы карточками, которые ты бы мог тратить только в лавке при мануфактуре, к которой прикреплён.
ВОТ ТОГДА ЗАЖИВЁМ!
#279 #661596
>>661369
Ой ну смотри короче. Значит есть скорость, это всякое байтоёбство, компиляции и использования хардвари. А есть просто чистое программирование, где нужно как можно быстрее описать задачу, составить рабочий алгоритм минимальными усилиями.

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

В большинстве случаев геймдеверам западло копротивляться системе и они просто учат подходящий язык и этот единственный фреймворк. Поэтому количество инструментов часто скудное. Вообще на инструментах для геймдева делаются бешеные бабки, и движки это далеко не самая денежная тема, 3д редакторы очень дорогие, специализированный софт, мокапы, скульптинг, риггинг, вся хуйня. Услуги по созданию контента дохуя дорогие.

Снова отвлёкся. Вернёмся к нашим удавам. Можно в принципе всё. Никто за руки не держит, запретить не сможет. Берёшь как Линус и хуяришь софт. Вот только чтобы стать Линусом нужно захуярить нечто полезное и вовремя. А учитывая как геймдев комьюнити не хочет вкладывать в переизобретение колёс десятилетия времени, то Линусом тут можно стать только работая в какой-нибудь нвидии. Все шойдеры ты где-нибудь спиздишь, все архитектурки ты где-нибудь прочитаешь и подсмотришь у Кармака.

Блядь, снова отвлёкся. Ну короче питон. Питон сука удобный, но сука медленный. Написать пасьянс - самое то. Написать по-быстрому тулзу, которая что-то сделает с контентом - заебись. Да хоть сделать его скриптовым языком движка - окей, embedding guide тебе в помощь. Некоторые умудряются на питоне писать трёхмерные игры, и они работают и даже не тормозят, потому что вся игра это сплошной рендер на гпу и почти никакой работы/внешняя сишная работа на цпу. Я бы ещё посоветовал на питоне делать прототипы, когда абслютно похуй производительность, главное увидеть/попробовать результат. Если понадобится можно перекатать в сишечку (ну или что там у вас, не суть).

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

Короче. Конечно рейтрейсинги и софтварные рендеры на питоне писать дурно, ибо можно состариться пока оно выдаст первый кадр. А вот писать на питоне некритичные к скорости 80% кода вполне можно. Сейчас много игр на жабе/дуднетах делают особо не запариваясь с потреблением памяти и сборками мусора. Берёшь сразу какие-нибудь pypy/cython/cffi и понеслась.
#279 #661596
>>661369
Ой ну смотри короче. Значит есть скорость, это всякое байтоёбство, компиляции и использования хардвари. А есть просто чистое программирование, где нужно как можно быстрее описать задачу, составить рабочий алгоритм минимальными усилиями.

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

В большинстве случаев геймдеверам западло копротивляться системе и они просто учат подходящий язык и этот единственный фреймворк. Поэтому количество инструментов часто скудное. Вообще на инструментах для геймдева делаются бешеные бабки, и движки это далеко не самая денежная тема, 3д редакторы очень дорогие, специализированный софт, мокапы, скульптинг, риггинг, вся хуйня. Услуги по созданию контента дохуя дорогие.

Снова отвлёкся. Вернёмся к нашим удавам. Можно в принципе всё. Никто за руки не держит, запретить не сможет. Берёшь как Линус и хуяришь софт. Вот только чтобы стать Линусом нужно захуярить нечто полезное и вовремя. А учитывая как геймдев комьюнити не хочет вкладывать в переизобретение колёс десятилетия времени, то Линусом тут можно стать только работая в какой-нибудь нвидии. Все шойдеры ты где-нибудь спиздишь, все архитектурки ты где-нибудь прочитаешь и подсмотришь у Кармака.

Блядь, снова отвлёкся. Ну короче питон. Питон сука удобный, но сука медленный. Написать пасьянс - самое то. Написать по-быстрому тулзу, которая что-то сделает с контентом - заебись. Да хоть сделать его скриптовым языком движка - окей, embedding guide тебе в помощь. Некоторые умудряются на питоне писать трёхмерные игры, и они работают и даже не тормозят, потому что вся игра это сплошной рендер на гпу и почти никакой работы/внешняя сишная работа на цпу. Я бы ещё посоветовал на питоне делать прототипы, когда абслютно похуй производительность, главное увидеть/попробовать результат. Если понадобится можно перекатать в сишечку (ну или что там у вас, не суть).

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

Короче. Конечно рейтрейсинги и софтварные рендеры на питоне писать дурно, ибо можно состариться пока оно выдаст первый кадр. А вот писать на питоне некритичные к скорости 80% кода вполне можно. Сейчас много игр на жабе/дуднетах делают особо не запариваясь с потреблением памяти и сборками мусора. Берёшь сразу какие-нибудь pypy/cython/cffi и понеслась.
>>661624
#280 #661624
>>661596
То есть на питоне можно пилить только маленькие игры, не напрягающие комп? Мне переползти отсюда в тред жавы или C#?
#281 #661627
Что нужно выучить недоразвитому школьнику, чтобы запилить чатек?
>>661632
#282 #661632
>>661627
как минимум сокеты
мимо-другой-школьник-пилящий-чатик
>>661635
#283 #661634
Какой минимум должен знать человек, если хочет вкатиться на джуна? Есть шансы попасть с меньшим или чуть-меньшим багажом знаний чем надо хотя бы за еду и опыт? Кайнд оф стажировка существует в каких конторах?
#284 #661635
>>661632
А что это такое?
#285 #661638
Изучаю змея с ведра, я даун?
>>662241
#286 #661639
>>661624
Погугли что хочешь написать, и на чём подобное пишут и туда и ползни
Иначе будешь в жопе без возможности тупо загуглить на стаковерфлоу ответ по каждой элементарной хуете
>>661640
#287 #661640
>>661639
Типа "на каком языке пилят %прога_нейм%"?
>>661643>>661647
#288 #661641
>>661624
У WoT движок на пайтоне.
>>661643>>661646
#289 #661643
>>661640
"как написать прога_нейм на язык_нейм пример|туториал"

>>661641
Только UI, емнип. И, кстати, wot один из самых показательных примеров хуевой производительности.
>>661648>>661658
#290 #661646
>>661641
А танки разве не на юнити?
>>661665
#291 #661647
>>661640
Ты программировать вообще умеешь? Что-нибудь когда-нибудь учил в данной сфере?
Алгоритм следующий примерно: геймдев сайты - там смотришь туториалы всякие, проекты, гитхабы если есть, получаешь представление - пиздуешь уже целенаправленно учить технологию ххххх и по мере необходимости доучивать сопутствующее
Ни в одном гейм проекте питон не является так сказать ОСНОВНОЙ ТЕХНОЛОГИЕЙ
>>661661
#292 #661648
>>661643
Спасибо, так и поищу.
#293 #661658
>>661643
Как пилить шарарам на питоне?
#294 #661661
>>661647

>программировать умеешь?


Нет.
>>661666
#295 #661665
>>661646

>А танки разве не на юнити?


Не,там корейское говно Big World.
#296 #661666
>>661661
Если есть 1-2 года времени для полноценного вкатывания можешь начать с питона, потом плюсы/шарп-жаву-ватеэвер
Если хочешь быстрее - шуруй в Unity, только там дохуя всяких мануалов и готового кода можно деребанить
>>661670
#297 #661669
>>661634
бамп вопроса
#298 #661670
>>661666
Как раз до девятого класса два года есть.
#299 #661730
дайте одну годную книгу по сабжу на русском! По версии 2,7, с навигацией и содержанием. В справке заблудился, примеры из инета не работают
>>661742>>661750
#300 #661742
>>661730

>2.7


>на русском


Просто все ненужности в одном посте собрал.
#301 #661750
>>661730
Какую книгу?
Полный справочник? - Лутц
Длинный самоучитель для совсем нубов - Доусон
Для тех кто прежде кодил? - Укус питона
Для тех кто туда-сюда понял как работает всё, и гадает где применять - Синк Пайтон http://forum.ubuntu.ru/index.php?topic=218329.0

Все эти книги и так под 2.7 с содержанием, обложкой и мать её политуркой
#302 #661755
>>661750

> Длинный самоучитель


Не такой уж и длинный.
#303 #661756
>>661750

>Для тех кто туда-сюда понял как работает всё, и гадает где применять


Отлично, то что нужно, а то я прочитал Доусона и не очень знал что делать.
Что лучше, think python или программируем на python Лутца?
>>661758
#304 #661758
>>661756
Мне Синк доставил больше чем все прочие книги что я читал.
#305 #661762
>>661750
спасибо! После других языков возникают трудности в элементарных вещах: вывод в строку без переноса, объединение строк, счётчики, "самые необходимые" функции. Укус питона - похоже, то что надо!
#306 #661794
Ну параша ваш пистон, самая настоящая параша. Ну вот как в нем вообще можно что-то сделать, я не понимаю. Разберем на простом примере:
1) поставил http://peterwittek.github.io/somoclu/ sudo pip install somoclu В терминале все вроде нормально:
Successfully installed somoclu matplotlib python-dateutil pytz cycler pyparsing
Cleaning up...
2) Далее пример использования http://somoclu.readthedocs.org/en/stable/example.html
Первые же строки:
import numpy as np
import matplotlib.pyplot as plt
import somoclu
%matplotlib inline
Вводим их в пистоне:
$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import numpy as np


>>> import matplotlib.pyplot as plt


/usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')

>>> import somoclu


>>> %matplotlib inline


File "<stdin>", line 1
%matplotlib inline
^
SyntaxError: invalid syntax
3) вот и все, параша просто не работает, ничего не поделать.
>>661796
#307 #661796
>>661794

> %matplotlib inline


Думаю это в ipython notebook надо вводить
>>661800>>661803
#308 #661800
>>661796
Как его поставить?
>>661802>>661806
#309 #661802
>>661800
sudo apt-get install ipython-notebook
>>661831
#311 #661804
Поясните ньюфагу за PyQT и потоки.

Вот у меня на кнопку pushButton_2 законнекчена функция self.startDownload(), которая состоит из двух инструкций в следующем порядке:
self.pushButton_2.setEnabled(False)
self.mythread.start()

Но по итогу pushButton_2 отрубается только после окончания потока, а не перед его началом. ЧЯДНТ?
>>661823>>662040
#312 #661806
>>661800
хуярь сразу юпитер оно охуенное
>>661831
#313 #661809
Нигер требует JS? Или и так можно запердолить сайт на чистом удаве?
#314 #661812
Вот чот пригорел маленько. Сам существую в Украшке, учу питончик, ничего такого вроде бы, да вот незадача - посмотрел таки на количество вакансий - на всю мухосрань десяток, да и те требуют, блять, опыта не менее 2-3 лет. Сука, да где ж мне их взять то?
Зато на JS, блять, их тысячи.
И забрасывать на половине пути ж не хочется, да и что делать тоже хуй знает.
Еще раз сорян, ребятки, накипело.
#315 #661813
Какие есть библиотеки для геймдева на питоне? Кроме PyGame есть что-то ещё?
>>662042>>662050
#316 #661814
>>661812
Шалом тебе из вильного днр, где вакансий нет вообще кроме автоматчика, но не мешает мне учить питончик с перспективой хуячить вяло где-нибудь на удалёнке
>>661816
#317 #661816
>>661812
А JS выучить к питону не судьба?
>>661814
Вакансия особиста/инквизитора есть? Яб приехал.
#318 #661818
>>661812
Езжай в Киев или Одессу или Харьков там. Или удаленно работай вообще.
А так - что ты хотел. Это хорошо ещё что хоть js вакансии есть, обычно в мухосрянях только эникейщики нужны или какие-нить 1С/VBA кодеры.
#319 #661820
>>661634
И снова бамп.
#320 #661821
>>661812
А ты кодинг учишь не для того ли случайно что бы из мухосрани своей съебать? Вот и съёбывай
#321 #661823
>>661804
Более того, перенес pushButton_2.setEnabled(False) в начало mythread.start() и все равно кнопка отключается только после окончания остальных действий в потоке.
>>661835
#322 #661828
>>661634
Джунам любят задавать не заковыристые вопросы по языку, их он может не знать, а всякое говно типа логических задачек, сложности алгоритмов(О-нотация и т.п.).
Не хочу пиарить этих уебков, но можешь вот посмотреть https://www.youtube.com/watch?v=BZulLbzf0uA https://www.youtube.com/watch?v=M4WW8-9GwRA
30 Кб, 647x303
#323 #661831
>>661802
>>661806
Висит уже минут 10, ничего не происходит.
>>661837>>661841
#324 #661835
>>661823
Незнаю, как в qt, в gtk можно дернуть gtk.main_iteration_do() чтобы перерисовать окно вручную.
Но это хреновая практика, у тя как-то неправильно треды организованы, в одном треде должен быть интерфейс, в другом действия и запускаться они где-то отдельно в main(). Вообще в qt есть какие-то свои треды.
>>662040
#325 #661837
>>661831
А что ты ожидал?
>>661839
#326 #661839
>>661837
Вводил и остальные строки из примера http://somoclu.readthedocs.org/en/stable/example.html Ожидал, ну не знаю, наверное, то что показано в примере. Я многого хочу?
#327 #661841
>>661831
Устанавливай ipython / jupiter
Устанавливай virtualenv
Запускай virtualenv
Устанавливай этот Сомоклу через pip install -посмотри-как-там-оно-называется-официально
Запускай ipython / jupiter, импортируй библиотеки ( что ты и сделал на своём скрине)
Открывай свой туториал тот и делай что пишут. Потом жми контрол + энтер и смотри графики или что там оно хочет выводить.
>>661848
154 Кб, 1440x900
#328 #661848
>>661841

>жми контрол + энтер


Ох, лол. Вот оно в чем дело, просто ендер не канает, надо с контролом. Пиздец. Однако, спасибо за информацию :3
#329 #661865
Прочитал книжку, разобрался с синтаксисом питона на пре-базовом уровне. А что дальше? Как получать опыт программирования?
>>661867>>661892
#330 #661867
>>661865
Программировать, очевидно.
>>661870
#331 #661870
>>661867
А что, блин программировать то? Опыта для игры мне не хватает, всевозможные какуляторы и дайсроллеры я уже писал. Вот бывает же такое, фантазия исчезла.
>>661874>>661956
#332 #661874
>>661870
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
>>661876>>661903
#333 #661876
>>661874
Где-то я уже это читал, только там была Scala. Ну можно попробовать написать борду, но... Блять, серьёзно, нахуя?
>>661891>>661897
#334 #661891
>>661876
прост
#335 #661892
>>661865
Ты это я, по уровню знаний. Ну и стою перед той же самой проблемой - не знаю что писать.
Не хочешь скооперироваться и вместе ставить задачи и запиливать что-нибудь? Вместе вроде как интересней.
>>661902
#336 #661897
>>661876
у меня скала тормозит в иде
>>661900
#337 #661900
>>661897
Потому что нужен свежий mbp
>>661907
#338 #661901
вчера какой-то анон залил эту пасту:
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.

Прочитал и решил выучить этот язык. Это мой первый опыт в программирование, не посылайте нахуй, лучше помогите. Я не совсем понял автора и хотел бы, чтобы какой-нибудь умный анон мне ответил на мои вопросы. Но не хотелось бы тут об этом говорить, потому что много вопросов.
#339 #661902
>>661892
Ты того, этого, на мой анус даже не смотри, садомит!
#340 #661903
>>661901
>>661874
и тут эта паста
#341 #661907
>>661900
типа того, только не мбп
#342 #661931
Поясните за вставку видео и фото пользователем на джанго. Разрешить вставлять только ссылки в обычный charfield, а потом рендерить в шаблоне?
>>662055
#344 #661966
>>661901

>какой-нибудь умный анон мне ответил на мои вопросы. Но не хотелось бы тут об этом говорить, потому что много вопросов.


Спрашивай итт, хули ты. А так время на ответы мимопроходилу никто тратить не будет, инфа 100%
#345 #661971
>>661901
Только если ты няшный трапик или тян.
#346 #662040
>>661804
>>661835 всё верно говорит. В qt свои треды и с ними всё заебись. Либо ты их не исользуешь, либо используешь неправильно.
#347 #662042
>>661813
kivy, pyglet
#348 #662050
>>661813
Есть биндинги всякие https://wiki.python.org/moin/PythonGameLibraries
К ogre например.
#349 #662055
>>661931
URLField, ImageField
>>662062
#350 #662062
>>662055
Разобрался, спасибо :3
#351 #662232
Ананасы, как настроить свое рабочее место так чтобы приложение джанги можно было тестировать в инторнете. Чтобы закоммитил и одной кнопкой обновил сборку на сервере. Что вы используете? Фтп, git pull? И на чем лучше запускать, на пайтонэнивер или на хероку?
31 Кб, 556x235
#352 #662239
>>662232
Код заливаешь через git/hg
Через http://www.fabfile.org/ дергаешь всякие команды на сервере в нужной последовательности типа
hg pull
manage.py syncdb/migrate/collectstatic
и перезапуск сервера.

Но вообще подобных средств миллион.
>>662244
112 Кб, 1080x1920
#353 #662241
>>661638
Да! И я тоже.
#354 #662242
>>662232
sshfs, потому что я ленивый.
#355 #662244
>>662239
Значит буду заливать на pythonanywhere, там даже консоли есть, а в качестве бд использовать хероку.
>>662253
#356 #662253
>>662244

> там даже консоли есть


И как с этим работать?
>>662297
#357 #662259
>>661624
Ох Кармаки, вы таки и правда решили написать движок за один день? Поучись на питоне треугольники рендерить для начала, чем дальше в си тем дороже код (то есть дольше делать).
>>662261
#358 #662261
>>662259
Все через это проходят. Не дергайся, дай нюфаку пострадать.
#359 #662269
>>662232
Тебе нужен сервис Continuous Integration (CI). Каждый раз, когда ты будешь делать git push на сервере CI будет подниматься виртуалка, выполняться все заданные тобой команды (тесты) и при успехе развертка на сервере. Таких сервисов куча. Рекомендую SemaphoreCI, но это уже вкусовщина, они все почти одинаковые.
>>662297
#360 #662297
>>662253
Берешь и без задней мысли работаешь. Такая же консоль как и на твоем компьтере.
>>662269
Спасибо, возьму на заметку
>>662308
#361 #662308
>>662297
Тьфу я прочитал как "там даже консоли нет".
#362 #662349
>>662232
Я шелскрипт использую. Требуется только голый sshd. Естественно в нём тебе нужно переписать тысячу мелочей вроде перезапуска сервера, но зато на самом серваке ничего для деплоев ставить не надо, даже гит.

https://gist.github.com/kctier/2a62a4db195692979d38
>>662495>>662696
#363 #662488
Анон, простейший кальлкулятор, как на кнопку типа

def initUI(self):

....button = QtWidgets.QPushButton("button", self)
....button.move(170, 110)
....button.resize(35, 30)
....button.clicked.connect(self.Button)

подцепить сигнал клавиатуры через keyPressEvent?
>>662513
#364 #662495
>>662349
Так в обычных сервисах CI тоже ничего ставить не надо. Пишешь кастомный скрипт для подключения по ssh к серверу и деплоя. Хотя можно вместо кастомного скрипта использовать готовые сервисы деплоя типа Капистрано, но это для быдла.
>>662512
#365 #662512
>>662495
Мне кажется что CI как таковой в джанге бесполезен. Скриптец мне только аккуратно заливает всё "в одно нажатие". Конечно это больше для запиливаний в соло, для группы я бы поставил центральный bare гит и пару хуков на автотесты если есть, сборку проекта и залив.
sage #366 #662513
>>662488
через installEventFilter наверно или наследовать от кнопки и переписать его keyPressEvent
#367 #662514
антисажа блядь
#368 #662571
Привет всем.

Есть какие-нибудь нормальные квизы по питону?
Немного поискав нашел только какой-то один не очень сложный квиз + вопросы там повторялись.

Суть в том, что не знаю, как оценить какой у меня уровень владения питона + технологии.

Спасибо.
>>662574>>662575
#369 #662574
>>662571
В дополнение:

есть где ресурс для коллаборации на добровольческих условиях? Хочу какой-нибудь нормальный проект сделать, а одному ппц как лень и забью наверняка.

Спасибо еще раз.
>>662930>>662936
#370 #662575
>>662571
http://pyobject.ru/blog/2010/02/04/python-quiz/ старый довольно.
http://www.mypythonquiz.com/ тут вроде простые вопросы хотя дальше идут сложные
https://alexbers.com/python_quiz/
кто-то тут постил сложный квиз, но такие вопросы никто не задаст. ссылку я потерял.
>>662578
#371 #662578
>>662575
во-во, как раз второй и нашел в гугле.
#372 #662696
>>662349
Какой у тебя захватывающий гитхаб.
#373 #662751
Правда что при изучении змеиного языка первой программой пишут змейку?
>>662758
#374 #662758
>>662751
Нет, имиджборду.
33 Кб, 488x613
#375 #662794
Дайте питоноскрипт на слотмашину, плекс.
>>662818
#376 #662818
>>662794
if random.randint(1, 223) == 153: print("Jackpot!")
>>662820>>662838
#377 #662820
>>662818

>223


223
>>662821
#378 #662821
>>662822
#379 #662822
>>662821
Пофиксили, что ли, возможность через [ b ] здезда [ / b ] писать?

22 в кубе, кароч.
#380 #662838
>>662818
Мне нужно чтобы с барабанами крутящимися, арты я правда свои вставлю для кнопок и гуй свой будет.
>>662866
#381 #662866
>>662838

>арты я правда свои вставлю для кнопок и гуй свой будет.


Если ты в состоянии гуи сделать (и анимация барабанов туда, я так понимаю, входит), то в чём проблема написать десятистрочный скрипт? Делаешь три рандома, получаешь конечное состояние каждого барабана и запускаешь его. По полученной комбинации считаешь выигрышь/проигрышь.
>>662872
#382 #662872
>>662866
Нет же просто слотмашина будет элементом всего лишь одним из, я просто хотел узнать есть ли библиотеки с готовыми пресетами.
>>662876
#383 #662876
>>662872
Так что тебе конкретно-то нужно? Какими пресетами? С выпадающими символами или что? Вводи в гугл и ищи. http://www.gamedev.net/topic/618976-python-3-slot-machine/
#384 #662879
Антоны, как вы управляете m2m связями в шаблонах джанги. Если например нужно отбразить все теги для каждого поста и чтобы на каждый пост не делалось по несколько sql запросов.
>>662893>>662920
#385 #662893
>>662879
Да у тебя же ПРЕДЖЕВРЕМЕННАЯ ЭЯКУЛЯЦИЯ ОПТИМИЗАЦИЯ.
У тебя рабочий код есть, срезультатом профилировщика, который показывает что у тебя куча скуль-запросов идёт? Если нет, то не еби себе мозг и сделай сначала его.
>>662901
35 Кб, 952x495
REGEX #386 #662896
Аноны, поясните ньюфагу, какой python регэксп нужно вставить в ебаный LinkChecker(использую через консоль на винде), чтобы он игнорировал все URL содержашие в себе текст "gif" ?
Пишу в коммандную строку linkchecker.exe --ignore-url=gif, но URL нихуя не игнорируются, хотя на приклейтед потестил этот простейший паттерн и он вроде бы всё матчит.
Линк на ман - http://linkchecker.sourceforge.net/man1/linkchecker.1.html
#387 #662898
>>662896
А без регулярки нельзя разве?
>>662904
#388 #662901
>>662893
У меня вообще изначально было примерно 50 sql запросов на 9 постов лол. Потом я при помощи select_related, annotate и {% with %} сократил до 24. Только что добавил prefetch_related и количество запросов сократилось до 16. Сейчас думаю смогу отрубить еще 8 запросов, но все же, в какой момент стоит задуматься об оптимизации запросов?
>>662923>>662924
#389 #662904
>>662898
Хз, в мане написано --ignore-url=REGEX. URLs matching the given regular expression will be ignored and not checked.
#390 #662908
>>662896
.gif. попробуй
>>662911
#391 #662911
>>662908
Блядь.
.<STAR>gif.<STAR>
<STAR> замени на звёздочку только.
#392 #662912
>>662896
Обычно знак '^' перед выражением используется для этого.
#393 #662920
>>662879
select_related, prefetch_related
#394 #662923
>>662901
Ну так ты сразу всё и пиши, не телепаты жи. Эти запросы только на посты с комментами или ещё что-то на странице есть?
>>662949
#395 #662924
>>662901
Откуда у тебя вообще 50 запросов взялось? Наследование (one-to-one) слишком сильно используешь? Сколько моделей дергается на этой странице?
>>662949
#396 #662930
>>662574
Пожалуйста.
#397 #662936
>>662574
На все вопросы вида "чо с кем попилить" нынче ответ один - гитхаб.

Смотришь трендинг, ищешь проекты по каким-то интересным тебе кейвордам, мониторишь https://www.reddit.com/r/python - там часто мелкие и интересные поделки проскакивают, можно еще на официальный ирк-канал питона вкатиться.

Раньше еще на сорсфордже был(?) интересный раздел 'help wanted' но сорсфордж какбе рип.
#398 #662949
>>662923
Только на посты и пара запросов для получения сессии.
В посте у меня кроме названия, описания, автора и категории выводятся теги, которые получаю префетчем, время последнего комментария, которое я получаю при помощи аннотации и картинки(если есть картинка, выводит первую, а если нет, то выводит стандартную для категории). Стандартную для категории вывожу благодаря селект релейтед, а обычную приходится для каждого поста делать проверку в шаблоне есть ли картинка или нет, поэтому выходит так много запросов. Видимо придется добавить в модель Постов связь с картинками, потому что сейчас у меня связь не задана.

>>662924
Нет, просто я, например, когда проверял наличие наличие картинки, в случае если он есть я еще раз делал запрос на эту же картинку. (не использовал with)
#399 #663017
>>656256
Попробуй elm: http://elm-lang.org
>>663304
#400 #663304
>>663017
Ну язык-то я может и попробую, а функциональность фреймворков там есть? Тот же эмбер позволяет мне по минимуму с js соприкасаться, половина кода - декларативная, вторая - простые свойства. Что-то посложнее встречается только в паре мест, где самую-самую базовую функциональность нужно для себя переопределять (у меня это, например, authenticator и autorizer). Модели с кешированием и автовытягиванием с апи и завязанные на них шаблоны с двусторонним связыванием - это дохуя, без этого жить сложно.
#401 #663319
>>656084 (OP)
Напомните, как с помощью Popen принимать stout программы, с учетом того, что программа будет работать демоном.
Например, запускаю vlc скриптом и хочу принимать от vlc его stdout, stderr конструкцией stdout=subprocess.PIPE и и process.communicate()[0] и тут же их обрабатывать, а сейчас хотя бы отправлять в print или logging, но что-то не взлетает. Выполнение скрипта висит и ожидает окончания работы программы.
#402 #663505
Как лучше всего работать с формами? Сейчас использую django-crispy-forms, но для составления нестандартных форм он не годится и работает нормально только с бутстрапом.
>>663512
#403 #663512
>>663505
Тебя что конкретно интересует-то? Что ты под нестандартными формами понимаешь?
>>663529
#404 #663529
>>663512
https://jsfiddle.net/bLLbd2ra/
Что то такого вида. криспи оборачивает все формы в свои враперы, поэтому у меня не получается сделать форму первого типа + мне нужно убрать лейбл для первых трех форм, а для последней оставить.
>>663537>>663538
#406 #663538
>>663529
Как-то использовал django-bootstrap, там всё то же самое, только без мазохизма, все параметры бутстрап-полей выведены в параметры темплейттега.
#407 #663558
Посоветуйте фреймворк с красивым названием, чтобы приятно звучало. Суть не важна.
>>663559>>663562
#408 #663559
>>663558
whoresmustdie
#409 #663562
>>663558
pillow
153 Кб, 1075x342
#410 #663615
Напоминаю(из видео pycon 2015)
>>663628>>663719
#411 #663628
>>663615
Я вот как майнтейнер пары пакаджей могу сказать что портировали только то что используется хотя бы тремя с половиной калеками. Остальное просто валяется мёртвым грузом.
>>663629
#412 #663629
>>663628

>fabric


>6600+ звезд на гитхабе


>до сих пор не портирован

>>663638
#413 #663638
>>663629
Вместо него есть invoke http://www.pyinvoke.org/ , переписанный с нуля теми же ребятами фабрик. Но ты ниасилел почитать документацию и выбрал двойку для нового проекта. Ха-ха, лузер!
50 Кб, 441x523
#414 #663679
Няши, объясните начинающему на пальцах, для чего нужны и что делают всякие джанги и фласки? Вот например, у меня есть скрипт, который нужно включать с сайта по нажатию кнопочки. Мне нужно обернуть скрипт в этом фреймворк чтобы он дергал его и ставил запросы в очередь? А если я напишу бесконечный скрипт, который тоже будет дергать веб-морду, это тоже будет в принипе то же самое?
Что-то я совсем запутался.
#415 #663680
>>663679

>бесконечный цикл


Извините.
#416 #663683
>>663679

>для чего нужны и что делают всякие джанги и фласки


Это библиотеки для создания HTTP/WSGI/FastCGI/uWSGI-серверов.

>нужно включать с сайта по нажатию кнопочки


HTTP-сервер должен принять запрос от кнопки (либо через форму, либо кнопку ссылкой сделать, либо аякс), затем выполнить твой скрипт. Сложность в том, что архитектуры HTTP-серверов за много лет эволюционировали и сейчас это очень плохой тон загружать веб-сервер посторонней длительной работой, нужно чтобы страница вернулась сразу же, появилась какая-нибудь загрузка итд. Поэтому обычно поднимают celery, который автономно работает за веб-сервером. Веб-серверу остаётся только передать ему задание. Celery берёт задания и распределяет их между нодами-выполнителями, получается всякие отсылки смс и емайлов не убивают производительность веб-сервера и тихо себе без ограничений по времени выполняются в фоне.

Если тебе это нужно для себя на локалхосте, то можно не заморачиваться с селери, а вставить запуск скрипта прямо в код вьюхи. Естественно браузер будет ожидать ответа сервера пока скрипт не выполнится.

>бесконечный скрипт, который тоже будет дергать веб-морду


Это уже совсем другая задача. Для неё бери requests.
>>663699
#417 #663690
>>663679
Если совсем на пальцах, то все эти джанги и фласки есть набор скриптов с набором необходимых для веб-приложения функций, и со своей жесткой структурой(видимо, потому и называют "framework").
По поводу кнопочки и бесконечного скрипта не совсем понятно, что ты имеешь в виду, и кто кого там у тебя дергает.
>>663699
#418 #663699
>>663683
>>663690
Вроде стало чуть ясно, но всё равно не понятно. То есть фреймворки должны ускорять работу всяких скриптов на сервере? Но как они это делают, если скрипт всё равно должен выполняться по своей независимой логике? Вот, отсылаю я апи-ссылку на сервер, он обрабатывает её, выполняется скрипт мой, например, выполняющий какие-то вычисления и дергающий базу данных, а потом отдает мне ответ на веб-форму. Почему с этими фреймворками должно быть быстрее?
>>663702>>663706
#419 #663702
>>663699
Фреймворки ускоряют разработку, а не выполнение.
>>663703
#420 #663703
>>663702
А, тогда понятно. Значит можно не беспокоиться за привычные скрипты, их не надо будет потом переписывать, просто подставить вместо нужных сетевых операций эти джанговские и всё? И всё на сайтах так и работает, когда делаешь запрос, выполняется настоящий скрипт, и быстродействие сервера, выходит, зависит от цп и сложности этих самых скриптов?
>>663711>>663731
#421 #663706
>>663699
Как анон выше написал, фреймворки экономят тебе время на разработку. Например, ты хочешь, чтобы запускался скрипт при получении запроса на некоторый url("апи-ссылку", как ты это назвал). Во фреймворке уже есть обработчик запросов, и тебе всего лишь нужно будет указать при запросе на такой-то url запускать такой-то скрипт. (Это всё очень грубое описание)
>>663708
#422 #663708
>>663706
Хорошо, спасибо. Пойду наверное книжки почитаю по этой теме.
#423 #663711
>>663703
Задача джанги это согласно протоколу HTTP вынуть из пришедшего потока данных информацию о запросе, запустить функцию с твоим кодом (вьюху) и отправить назад результа. Очень часто в подобных делах нужно отдавать содержимое некоторой базы данных, поэтому джанга предоставляет ORM, чтобы было удобнее шлёпать круды. В целом никто не ограничивает тебя в том, что будет в коде обработчика, можно целиком и полностью игнорировать предоставленный ORM. Но нужно осознавать особенности работы браузера и HTTP как такового. Например пользователь может обновить страницу - вьюха выполнится ещё раз. В идеале задача вьюхи - высрать HTML страницу и ничего больше.

Я бы тебе посоветовал посмотреть на консольные утилиты (argparse поможет сделать это легко).

python tool.py --api-url http://example.com/

запускаешь, оно делает что тебе надо и выдаёт куда-нибудь результат, да хоть прямо в эту же консоль или в файл. Веб-сервера обычно поднимают когда в этом есть обоснованная необходимость.
#424 #663717
Как выполнять рутину на Python?
#425 #663719
>>663615
90% из которых всеми забытое легаси говно, как и сам питон 2.
#426 #663731
>>663703
Ты неправильно понимаешь фреймворки. Фреймворк - это не библиотека: библиотеку ТЫ вызываешь, а фреймворк ТЕБЯ вызывает. Фреймворк - это готовый скелет приложения, пустоты в котором ты дозаполняешь нужными тебе функциями.
>>664533
#427 #663732
Нубский вопрос.

Как передавать переменные между методами в классе?
>>663866
#428 #663751
Почему в джанге вьюхами называют контроллеры, а не вьюхи?
#429 #663754
>>663751
Потому что.. хуй его знает. Вот почему.
#430 #663755
>>663751
Потому что вьюха звучит как хуй.
#431 #663759
>>663751
Возможно, потому что Django MTV, а не MVC.
#433 #663761
Эй, начинающие змееводы, курс на кодакадеми хоть какую-то ценность имеет? Или там только самые-самые азы?
>>663778
#434 #663778
>>663761
кодакадеми в принципе для самых самых нюфень расчитан
#435 #663787
>>663751
Потому что в джанге нет контроллеров.
#436 #663866
>>663732
Либо параметрами метода, либо атрибутами класса
>>663930
#437 #663930
>>663866

Хотя я наверно неправильно спросил. Мне нужно подцепить нажатие клавиши.

def keyPressEvent(self, e):
....if e.key() == QtCore.Qt.Key_1:
........return one.clicked.connect(self.Nums) # Вот не пойму как правильно вызвать. Так не работает

на вызов функции

def Nums(self):
....global num
....global newNum
....global opVar

....sender = self.sender()

....newNum = int(sender.text())
....setNum = str(newNum)

....if opVar == False:
........self.line.setText(self.line.text() + setNum)

....else:
........self.line.setText(setNum)
........opVar = False

с параметрами из

def initUI(self):
....one = QtWidgets.QPushButton("1", self)

....nums = [zero,one,two,three,four,five,six,seven,eight,nine]
....for i in nums:
........ i.clicked.connect(self.Nums)

Алсо PyQt5.

Тот анон допиливающий калькулятор
#437 #663930
>>663866

Хотя я наверно неправильно спросил. Мне нужно подцепить нажатие клавиши.

def keyPressEvent(self, e):
....if e.key() == QtCore.Qt.Key_1:
........return one.clicked.connect(self.Nums) # Вот не пойму как правильно вызвать. Так не работает

на вызов функции

def Nums(self):
....global num
....global newNum
....global opVar

....sender = self.sender()

....newNum = int(sender.text())
....setNum = str(newNum)

....if opVar == False:
........self.line.setText(self.line.text() + setNum)

....else:
........self.line.setText(setNum)
........opVar = False

с параметрами из

def initUI(self):
....one = QtWidgets.QPushButton("1", self)

....nums = [zero,one,two,three,four,five,six,seven,eight,nine]
....for i in nums:
........ i.clicked.connect(self.Nums)

Алсо PyQt5.

Тот анон допиливающий калькулятор
#438 #664071
Посоны, как должен выглядеть скрипт миграции в джанго, который дропает все существующие таблицы в базе?
>>664098>>664120
#439 #664089
>>663679
Нет просто cgi скрипт сделать
#440 #664098
>>664071
Все, не надо - дропнул через dbshell.
#441 #664112
Анон, подскажи, пожалуйста, годный онлайн ресурс для управления домашним бюджетом.

Я что-то гуглю и все как-то не очень.

Если ничего не найду, буду сам пилить, поэтому тут и пишу. До этого писал в /s/ там молчок.
#442 #664120
>>664071
Ну на будущее просто убери все модели (закомментируй там, или из __init__ убери импорты) и makemigrations
>>664126
#443 #664126
>>664120
Так я только свои модели дропнуть смогу, а мне нужно было еще дефолтные джанговские сбросить.
>>664128
#444 #664128
>>664126
А. Ну легче базу всю дропнуть нафиг.
>>664140
#445 #664140
>>664128
Базу не рискнул, она удаленная и у меня нет прав на создание новой в облаке, а вот дропнуть постгрес public schema и создать ее заново удалось.
#446 #664174
Что нужно знать знать джанге для выполнения DELETE запроса черех AJAX кроме csrfmiddlewaretoken? ПОСТ запрос выполняет, а для DELETE выдает ошибку 403. На данный момент у меня в аджаксе указан type, url и
data: {csrfmiddlewaretoken: csrftoken}
>>664179>>664193
#447 #664179
>>664174
Use csrf_exempt.
>>664191
#448 #664191
>>664179
Это же не безопасно.
#449 #664193
>>664174
Разве там не надо header передавать? X-CSRFToken

function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
>>664202
#450 #664202
>>664193
POST без хедера работает. Ладно, придется читать документацию лол.
>>664204
#451 #664204
>>664202
Ты откуда запрос делаешь? Если через бразуер и через аякс то хеадер нужен, потому что браузер выставит хедер что это аякс запрос
>>664275
#452 #664231
Смотрю сейчас видео по ruby. Как же я был слеп. Ruby на голову выше.
#453 #664249
>>664231

Предлагаешь пистоногосподам стать рубиблядями?
>>664251
#454 #664251
>>664269
#455 #664269
>>664251

Посмотрел видео, выучил руби, стал успешным альфой с далларами, ебу пистононищенок.
#456 #664275
>>664204
Да. Где хедер задавать нужно?
>>664282
#457 #664282
>>664275
Я же тебе написал пример js кода. Скопипастил его из документации кстати
https://docs.djangoproject.com/en/1.7/ref/contrib/csrf/#ajax
#458 #664427
Анончики, принято ли использовать бесконечный цикл со слипами, если нужно выполнять циклические задачи, или есть какой-то другой способ? По нагрузке цп вроде не проседает, но мало ли.
#459 #664432
#460 #664437
>>664427
Может лучше крон?
>>664439
#461 #664439
>>664437
Не, с кроном только запутаешься.
#462 #664444
>>664427

> По нагрузке цп вроде не проседает


И не должен, пока процесс в слипе он никакой нагрузки не создает.
#463 #664445
>>664427
А других способов полно celery например.
>>664462
#464 #664462
>>664445
Это не просто библиотечка? Погуглил, обертка выглядит здорово, но как оно подключается и работает - как то мутно написано, похоже надо демон запускать, который крон же и задействует, не?
>>664468
#465 #664468
>>664462
Демон надо запускать. Это тяжелая библиотека, зависит от твоей задачи. Если что-то простое пользуйся просто while/sleep
#466 #664470
>>664231
Опять фанбой из рабитреда вытек.
#467 #664478
>>664231
А как же Go?
>>664479
#468 #664479
>>664478
go - говняшка.
>>664484
#469 #664484
>>664479
Сам ты говняшка, бака.
>>664494
#470 #664494
>>664484
Многие кто сначала поддался хайпу начали плеваться.
http://yager.io/programming/go.html
#471 #664520
>>664231
Если можно, короткую выдержку, почему руби на голову выше.
>>664531>>664539
#472 #664531
>>664520
1) в отличии от питона, руби не ассоциируется со школьниками и домохозяйками, а вызывает в памяти образ успешного и самодостаточного мужчины
2) на руби ты может сделать твиттер за три часа, а на питоне за три месяца
3) у руби есть свой стиль и сильной коммьюнити, чего нет и не было у питона
21 Кб, 741x235
#473 #664533
>>663731
я не он, но у меня тоже вопрос про то что такое фреймворк

что такое библиотека я понимаю и люблю - набор функций, для удобства вызова сгруппированный по какому-то признаку в отдельный файл (модуль)

пикрелейтед, вики описание отличий фреймворка от библиотеки тоже понимаю. Но что такое фреймворк? Где он начинается и где заканчивается?

Я так понимаю что это должно быть какое-то приложение (причем не обязательно на том же языке на котором и я пишу), которое ожидает получить корректный набор файлов с моим кодом, да?
Корректный -- значит структуру определяет фреймворк и надо следовать его правилам.

А что происходит потом? Фреймворк интерпретирует мои исходники и выполняет их?
Еще подумал что это похоже на написание расширения, плагина для приложения, в том случае если само приложение без плагина почти ничего не делает -- но не осилил аналогию
>>664551>>664557
#474 #664539
>>664520
Реальсы. Охуенная экосистема - rake, chef, puppet, всякое такое. Тысячи gem`ов для рельс.
Много способов сделать одно и тоже, можно делать DSL(этим активно пользуются), можно менять поведение даже встроенных типов, всё - объект, метапрограммирование на высоте.
Дохуя работы на рельсах в интересных проектах, где дадут macbook.
>>664543
#475 #664541
>>664531

>у руби есть свой стиль и сильной коммьюнити, чего нет и не было у питона


Лол.
>>664553
#476 #664543
>>664531
>>664539
Ну понятно. Как пхп, только лучше. numpy хоть есть?
>>664545
#477 #664545
>>664543
Мне скорее perl напомнило всякими unless и множеством способов делать одну вещь и гибкостью.
Нет, руби для веб в основном.
#478 #664551
>>664533
Фрекмворк это набор библиотек, которые позволяют тебе решать какую-то задачу. Как правило, ставит тебя какие-то рамки - определенная типовая структура проекта, способ конфигурации.
>>664555
#479 #664553
>>664541
Это так. У руби всё сосредоточено вокруг рельс, библиотек для них, стандартных утилит, которыми пользуется все(типа bundler, rake, rack, etc).
У питон каждый пишет свой велосипед, многие вообще не на тему веба, а каких-то поделок.
>>664569
#480 #664555
>>664551
Хорошо, спасибо.
Как доберусь до них и потрогаю, думаю понятнее станет. Мне пока так просто, на будущее..
#481 #664557
>>664533

Фреймворк - это набор готовых скриптов-решений низкоуровневых бытовых задач. Благодаря ним ты можешь запилить свитор >>664531 на питоне за 3 месяца, а не три года.

Ты хочешь написать сайт. Если делать с нуля - придется писать свой велосипед с HTTP запросами, проверками безопасности и защитой от атак, обращениями к БД и т.д. Но велосипед уже изобрели до тебя - берешь Джанго, с готовой системой MVC, хуяк-хуяк и в продакшен. Скрипты крутятся, даллары мутятся.
>>664560>>664575
#482 #664560
>>664557
За 3 месяца можно и фреймворк свой запилить и свитор, даже не используя готовые библиотеки.
>>664566
#483 #664566
>>664560

Ну я образно говорю.
>>664572
#484 #664569
>>664553
Хз, меня больше в проектах на питоне смущал собственно сам говнокод проекта, когда пишут файлы в несколько килострок без достаточной декомпозиции. Как-то утилиты легко все поддавались, я даже не замечал. Кроме ебанутых миграций. У меня даже на пхп как-то было поделие круче, которое вычисляло diff между существующей схемой БД и заданной, и выполняла всё это.
>>664577
#485 #664572
>>664566
Вообще мне кажется неправильно брать фреймворк и на нем что-то делать, не понимая что там внутри происходит. Начинать нужно с чего-то типа cgi скриптов, потом завилить свой велосипедный фреймворк и уже потом можно это всё выбросить и перейти на готовый )
>>664585>>664586
#486 #664575
>>664557
Библиотека это типа сайлонец, знающий что он сайлонец
А фреймворк это сайлонец, думающий что он человек
56 Кб, 748x425
#487 #664577
>>664569

> файлы в несколько килострок


пикрел. И всё засунуто в один класс)) Который вообще не класс а синглетон)) 211 методов в нем
>>664648>>664657
#488 #664585
>>664572
Ой, это прям мой путь. В инете даже есть сайт с относительно активной посещалкой на моём велосипеде. Но если честно, я бы нюфань обучал иначе. Надо отделять что такое ORM, что такое роутинг, темплейты и прочее. Сначала им лучше чуть парсингом позаниматься чтобы посмотреть протокол, все эти хедеры, немного в идеологию REST поглядеть. Затем освоить чистый SQL, можно даже без джойнов, foreign key/1-1/1-M/M-M понять уже хватит. Затем попробовать ORM (причём тупо импортировать и играть, прям как в туториале), понять что в большинстве крудошлёпских случаев с ним меньше писанины. Потом роутинг (знание HTTP протокола позволит понять нахуя оно вообще). Потом темплейты, тоже отдельно, какой-нибудь jinja2, оно всё равно очень на джангу похоже. А потом уже писать бложик на джанге и можно уже твёрдым таким джуном устраиваться. Уложиться можно в месяца три.
>>664594
#489 #664586
>>664572

Ну я бы не сказал, что неправильно. Чтобы водить автомобиль не обязательно знать как рассчитывается процесс сгорания топлива в двигателе и теорию поворота, хотя для общего развития и понимая процессов в автомобиле не помешает. Ты используешь чужой опыт, и избегаешь пройденных ошибок - в этом нет ничего плохого. А использовать велосипеды в продакшене я бы не стал. Так и программы можно с перфокарт начать изучать.
#490 #664594
>>664585
Я когда-то и ORM свою велосипедил(и не одну лол, последний раз делал просную обертку над sqlite). И движок темплейтов какой-то.
А всякие http заголовки я знал ещё до того как сайты начал пилить - потому что делал утилитки для выдерания чего-то с сайтов или постинга, нормальных высокоуровневых библиотек не было(или я про них не знал) и делал это всё на winsock`е.
Да и работа со всякими консольными клиентами ftp помогает(протокол похож немного)
#491 #664606
Я смотрю некоторые люди в 2016 начинают изучать php. Пиздец.
php стал популярен, потому что альтернативы были в лице perl, костылей на си и asp(только под винду).
А сейчас.. В php даже fastcgi не трушный, всякие вебсервисы на нем через жопу будут, поддержка вебсокетов вряд ли нормальная возможна.
>>664619
#492 #664619
>>664606

Потому что Wordpress. Сделайте Wordpress на питоне/руби с установкой в три клика, туда укатятся.
>>664642>>664663
#493 #664642
>>664619
Вроде бы делали уже тыщу раз. У вордпресса кучи тем есть, вот если ещё и автоимпорт темы запилить, то вероятно самые прогрессивные начнут юзать.
>>664647
#494 #664647
>>664642

Да нужно, чтобы искаропки все было.
#495 #664648
>>664577

> test <> 127


Syntax error.
>>664658
#496 #664657
>>664577
Ох. Это да это же мираж. Там да, редкостный говнокод.
#497 #664658
>>664648
Это второй питон. <> это аналог !=(взято из бейсика).
В третьем это убрали.
>>664675
#498 #664663
>>664619
Даже если запилить, для поднятия сайта на питоне/руби нужны какие-то базовые знания линакса.
На php же ты просто по ftp заливаешь файлики на shared хостинг.
>>664668
#499 #664668
>>664663

Нужна поддержка хостингом питона/руби искаропки.
>>664672
#500 #664672
>>664668
Ну где-то такое было. Но это не универсально, а хостинго-специфично.
Да и кто будет заморачиваться если есть проверенный временем wordpress с кучей тем и кучей школьников готовых его настраивать/допиливать за еду.
#501 #664675
>>664658
Лолд, даже не знал такого. В глаза бросилось моментально.
>>664680
#502 #664680
>>664675
Никогда на бейсике не писал чтоли?
Вообще в питоне это единственный раз когда я видел, чтобы этим пользовались. Видимо автор mirage любитель бейсика(это многое объясняет)
>>664898
#503 #664696
Посоны, а не слишком извращенно будет пилить ГУИ на PyQt через WebView с помощью CSS и HTML?
Или дайте какой нибудь годный туториал по PyQt, не могу я на нем ничего делать. Кажется слишком перегруженным в отличие от вебгуи.
>>664700
#504 #664700
>>664696
Гуи на куте обычно работают быстрее. Если хочется пилить на вебстеке, то electron бери. Под мобилки наверное лучше ionic.
>>664711
#505 #664711
>>664700
На ionic'е делал, но у меня вся логика написана на питоне. Я с этим гуи очень сильно терзаюсь. Не хочууууу его делать.
>>664723>>664900
#506 #664723
#507 #664731
Сейчас перекат сделаю.
>>664734
#508 #664734
>>664731
Где перекот?
>>664737
#510 #664740
>>664737
Вообще охуеть, мой радикулит заныл просто глядя на это.
#511 #664793
А можно в питоне как-нибудь добиться реального возвращения нескольких значений из функций или хотя бы игнорирования непрошенных элементов тупла? Шоб как в луа - http://ideone.com/JrWWw3 (таки очень удобная фича оказалась)
>>664796
#512 #664796
>>664793
def func(): return 1,2,3,4,5
a,b,rest = func()
a,b,c,d,e,
rest = func()
>>664797>>664865
#513 #664797
>>664796
блин. перед rest звездочка
>>664802
#514 #664802
>>664807
#515 #664807
>>664802
Ну и? Можешь rest этот не использовать. Вообще непонятно зачем такое нужно и это unpythonic.
Это как в javascript с аргументами функций.
#516 #664808
>>664849
#517 #664827
>>656084 (OP)
Вопрос из квиза http://pyobject.ru/blog/2010/02/04/python-quiz/
"Функции" п.3
Хуля мой высер не пашет?
возвращает лист с копиями одной и той же функции.

def addition(*args):

def add(b):
return b+a

list_of_functions=[]
for a in args:
list_of_functions.append(add)
print(list_of_functions)
return list_of_functions
>>664831>>664832
#518 #664831
>>664827
Запости на dpaste.de
>>664845
#519 #664832
>>664827
from operator import add
from functools import partial
def funcs(f, t): return [partial(add, i) for i in range(f,t+1)]
>>664845
#520 #664845
>>664831
https://dpaste.de/Q11w
>>664832
задача несколько иная, не?
>>664848>>664852
#521 #664848
>>664845

> задача несколько иная, не?


В каком смысле? Результат тот же.
>>664876
#522 #664849
>>664808
С мобилки читать твою ссылку сплошное страдание. Постоянно на полэкрана баннер появляется. Страница сама по себе весит дохуя и периодически перезагружается. И чет я нихуя не узнал толком нового. Как про сорта говна почитал.
>>664861
#523 #664852
>>664862
#524 #664861
>>664849
getpocket.com
>>664867
#525 #664862
>>664852
ок, спс.
Такой тогда небольшой вопрос по теории https://dpaste.de/YrzJ
Пардон за лексику, на то есть объяснение
>>664866
#526 #664865
>>664796
Так это всё равно нужно предполагать, что функция возвращает больше одного. А так как у меня функция 2 возвращала, а использовать я хотел 1, то разницы между x, y и x, *y Для меня нет.
Впрочем, может потом пригодится, спасибо. (Я оператор развёртки не туда пихать пытался.)
21 Кб, 472x286
#527 #664866
>>664862
Это называется замыкание. Почитай про них.
Увидеть можно как-то так
>>664876
#528 #664867
>>664861
У меня фуррифокс синк для этого. Статья всё равно ниочем. Клоны клонов с чуть разным синтаксисом. Ну не приспособлены реляционные БД под такое. Нужен всего-то хороший класс для конструирования запросов и миграции.
>>664869
#529 #664869
>>664867

> не приспособлены реляционные БД под такое.


Под какое? sqlalchemy офигенна, можно какой угодно запрос построить, поддерживаются какие угодно типы полей.
#530 #664876
>>664866
както по кульхацкерски ты подошел к просмотру.

альзо, как сделать так, чтобы инстанс класса понимал лексику class_instance(argument), ну т.е чтобы вел себя фактически как функция в деле приема аргументов? Наверное можно от чегото унаследовать и следать override но не придумал от чего.

>>664848

>В каком смысле? Результат тот же


но я же нихера не понял, лол
>>664879
10 Кб, 397x172
#531 #664879
>>664876
Ничего не надо наследовать, просто определяешь метод __call__

> но я же нихера не понял, лол


partial и делает карринг. т.е. она связывает функцию с аргументом
>>664883
#532 #664880
Посоны, подскажите как в джанго сделать:
есть пользователь, который делает Посты, есть модель поста, в поле этой author этой модели указан пользователь через форейн кей. Как мне в профайле пользователя показать все его посты?
>>664882
#533 #664882
>>664880
User.post_set.all()
>>664884
#534 #664883
>>664879
А, ну точно. Я то с __setattr дрочился и еще с чем то, про __call и забыл.
про partial я и не сомневался что работает, просто образовательная ценность подхода сомнительна.
Пойду спать, спасибо за ответы
>>664884
#535 #664884
>>664882
Имеется ввиду конкретный инстанс юзера конечно, а не сама модель т.е. userobject.post_set.all()
И предполагается что модель поста называется Post
>>664883
partial вообще редко нужен имхо
>>664892>>664980
#536 #664892
>>664884
Я сходу не смог разобраться, но спасибо!
>>664980
#537 #664898
>>664680
В школе писал, но уже забыл его операторы.
>>664901
#538 #664900
>>664711
Есть ещё remi.
#539 #664901
>>664898
В SQL тоже <>
>>664902
#540 #664902
>>664901
sql не пользовался с лаб универских, сарян.
#541 #664944
Учитель по информатике говорит, что лучше мне сразу C++ или Жабу учить, у питона, мол, синтаксис сложный.
>>664947>>664961
#542 #664947
>>664944
Си/плюсы учить беспроигрышный вариант во все времена, вне зависимости от его забулжений на счёт питона. Так что можешь смело следовать совету, да.
#543 #664961
>>664944
Твой учитель по информатике не знает питон. Да я удивлюсь если он плюсы или жабу знает.
44 Кб, 450x709
#544 #664962
>>656084 (OP)
Анон, как на 'tkinter', используя 'askopenfile' или 'askopenfilename' вывести имя файла?
#545 #664980
>>664892
>>664884
В общем надо мне get_context_data переопределить
#546 #664984
Аноны, подскажите пожалуйста какую-нибудь несложную питоновскую приблуду, которая может загружать сайты с джаваскриптом и выполнять что-то в них. Только не селениум.
>>664985>>664986
#547 #664985
>>664984
По-моему кроме селениума просто ничего не существует такого
#548 #664986
>>664984
ghost.py
>>664994
#549 #664989
Перекат пилите.
>>664995
#550 #664994
>>664986

>This method returns a tuple of main resource (web page) and all loaded resources (such as CSS files, javascripts, images...).


Хм, а оно именно исполняет и выводит готовую страницу, или просто выдает отдельно содержимое скриптов и ксс?
>>665001
#551 #664995
>>664989
Сам пили, ёпту!
#552 #665001
>>664994
Угадай с трёх раз.
#554 #665529
>>656084 (OP)
http://pyobject.ru/blog/2010/02/04/python-quiz/
"Классы" п1

Я не понял, что можно в объекте класса переменные(атрибуты) на ходу добавлять?
Или предлагают инициализировать переменные которые я создал в классе?
#555 #665896
Значит так блять, я четвертый день учу питон и в скором времени к хуям положу ебаный сосач(с помощью моего хитрого скрипта). И что бы этого не произошло, вы должны выполнить мои условия :

> a = "Анон сосет мой хуй! "


> b = "Платите выкуп и я не трону двач!"


> c = "Сумма выкупа:"


> d = 500000 + 500000


> e =('даларов')


> f = "P.S. ваш Кулхацкер2004"


> print(a)


> print(b)


> print(c,d,e)


> print(f)

#556 #666966
>>652531
Пытался поставить пакет(или как это зовется) анакондас, выбивало ошибки, типо не может добавить в путь и еще что-то, питон поставился - а оболочка ipython - нет. Имя у меня кириллицей. Может ли это быть причиной? Или же я не могу найти ipython? Как мне переименовать и не проебать все установленное?

Подскажете?
8 Кб, 318x244
#557 #667642
у меня тут вопрос по соглашению по именованию переменных
есть ли какая-то рекомендация, как лучше называть переменные которые потом возвращаются из функции?
PEP8 Naming Conventions прочитал, не нашел
сам называю их out или res (out больше нравится), но это сцуко 3 символа ведь. использовал бы О, но PEP8 запрещает
>>667728
#558 #667728
>>667642
Да ты бы переменные пробелом именовал, если б разрешили.
Тред утонул или удален.
Это копия, сохраненная 15 марта 2016 года.

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

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