Это копия, сохраненная 3 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
http://habrahabr.ru/post/150302/
Книги:
Марк Лутц - Изучаем Python, 4-е издание.
Марк Саммерфилд - Программирование на Python 3. Подробное руководство.
Марк Лутц - Программирование на Python.
Полезные ссылки:
http://pythondigest.ru/ - новости и так далее. Можно подписаться на их твитер.
http://pycoders.com/ - еще новости
http://habrahabr.ru/post/205944/ - полезные материалы для начального уровня.
http://pythonanywhere.com/ - бесплатный и простой хостинг для джанги, например.
Классные библиотеки:
http://kivy.org
Видео:
https://www.youtube.com/playlist?list=PLpTASIMYgCp8supkEmnnrYa5xi9g91ZPI – введение в джангу. Хотя если прошел официальный туториал то начало покажется затянутым и скучным.
http://rutracker.org/forum/viewtopic.php?t=4622868 Специалист Питон
Изучаю питончик с августа, делая не очень практические задачки, но стандартные для программирования. Буквально месяц назад потихоньку начал изучать джанго, хочу летом устроиться на первую работу питон джуниора/джанго джуниора.
Но все же возник вопрос по обучению. Кто что думает насчет этих курсов?
https://realpython.com/
http://learnpythonthehardway.org/
Стоит ли их проходить или же уже просто пытаться с нуля поднимать свои приложения, натыкаясь на грабли, утыкаясь в стены, и порой не понимая с чего начать? Кажется это самый годный способ действительно изучить что-то. Но и самый трудоемкий.
Потому что он утонул настолько глубоко, что мне лень было его доставать.
В следующем будет, няша, не волнуйся.
GIL всех беспокоит. Но от него никуда не деться. Гнидо, ломая совместимость py2 и py3, говорил что даже пытаться бессмысленно, и небольшие улучшения в этой части стоили ему охуенной боли. Нормальное решение - использовать несколько инстансов питона, общаясь между ними через сокеты, дубасы, каналы, аллаха и прочие IPC.
Я так вангую что он скорее запилит какой-нибудь метапитон, облегчающий подобное, чем осилит выкинуть GIL.
Еще можно юзать Jython или IronPython, в них GIL нет, но нутыпонел.
>>465972
>перечислил io-bound задачи
>авторитетно сказал что нужно несколько ядер
ясно.
>>465973
у тех кто спизданул и спрашивай, что они под ленивыми вычислениями подразумевают. хачкель-стайл чтоли?
>>466055
смотрите-ка, иксперт по многопоточному программированию вылез. ну-ка расскажи что ты будешь делать, если gil убрать? вон, в MRI он тоже есть, почему-то я не вижу никаких кукареков по поводу этого. а где его нет, там надо даже примитивные операции вроде добавления элемента в масив в блокировки оборачивать, иначе можно половину запросто проебать. да что там скриптопараша, в сишных приложениях при компиляции с поддержкой потоков malloc вообще в свой глобальный лок оборачивается, он же тоже не thread-safe. это потоки сломаны нахуй, а не gil.
Воу воу, что ты такой агрессивный? Я прост спросил.
Питоновский гил добавляет проблем. Иногда. А иногда наоборот, например с ним можно положить на memory-safe. Это оче спорная фишка, и срачи с него возникают збс. Вот анон выше уже возгорелся от его упоминания, лол. Каким-нибудь Го питону точно никогда не стать, но жить можно. Для мелочи - асинхронность, для остального - дополнительные инстансы. Рубисты так и делают.
Вот кстати кулстори по переходу с 100500 инстансов руби на каналы Го - https://sourcegraph.com/blog/live/gopherconindia/112656568167
Я думаю, проблеммы можно разрешить путем использования нескольких процессов и асинхронной очереди сообщений для коммуникации между ими
https://www.coursera.org/specialization/fundamentalscomputing2/37
Очень интересно курс построен для новичков.
В конце простая игруха из 80х пилится с использованием ООП
http://www.codeskulptor.org/#user39_JTLOqrjllS_117.py
Петушок, плиз!
Обычно это делается так: принимаем данные в одном потоке, используя асинхронный сокет. Данные обрабатываем в других потоках. А в питоне так получается, что я данные даже если получаю асинхронно, то толку от этого мало, потому что мне их обработать надо. И пока я обрабатываю один запрос, я не могу приступить к обработке второго, даже если он прилетел на сокет. Я если честно вообще не понимаю зачем нужна асинхронность в одном потоке. Объясните, аноны!
>> надо даже примитивные операции вроде добавления элемента в масив в блокировки оборачивать
да ну?! А я думал это атомарная операция
Где научиться использовать все эти техники? Многопоточность, мультипроцессорность и так далее.
Ну я имел в виду теорию почитать, посмотреть где чаще всего применяется, например.
Не знал что там такое есть.
Посоны, мы оказывается их категории "экзотические".
http://habrahabr.ru/company/ruward/blog/215629/
Правда 13 марта 2014. Интересно как за год изменилась ситуация.
спасибоу
Ну да, логан и всякая там приора это тоже очевидное говно, но только их продаётся на порядки больше, чем ауди и мерседесов. Обычное дело, не понимаю почему у тебя бомбит.
Ты хуй, а твоя мать шлюха, отец членодевка! Логан божественен, нет более выносливой и ремонтопригодной машины, а ещё он иномарка!
До меня дошло... Получается при асинхронной работе с сокетом в одном потоке, сокет освобождается после получения данных. И пока один поток в процессе обрабатывает запрос, другой процесс может захватить сокет. Всё правильно я сказал? Тогда мы упираемся в тяжесть процессов по сравнению с потоками. Кстати, макс количество процессов в линукс 65635 по умолчанию вроде бы
sysctl kernel.pid_max
Максимальное количество повысить можно. Но хуле толку, мы скорее наткнемся на OOM-killer из-за оверхеда по памяти, чем упремся в потолок процессов.
И зачем захватывать сокет? Не легче ли сделать один listener, который будет только получать, а на обработку передавать другим процессам?
> sysctl kernel.pid_max
спасибо
> мы скорее наткнемся на OOM-killer из-за оверхеда по памяти
дельное замечание
> Не легче ли сделать один listener, который будет только получать, а на обработку передавать другим процессам?
Ну, запрограммировать это сложнее.
> Не легче ли сделать один listener, который будет только получать, а на обработку передавать другим процессам?
Чем это легче-то? Опять эта ебля с IPC
Не надо ебаться с контролем над сокетом. Сорта говна на самом деле, но я был взял listener+IPC, чем футболил сокет туда-сюда. Как-то стройней штоле получается, и ближе к нормальной многопоточности.
Она на английском, да и из доков нихуя не понятно, какие-то модели, представления - о чем они?
есть же перевод
"DjangoBook на русском" гугли
Делай задания, там же есть примеры.
Первые 6 или 8 уроков
Например, даем line='abcd' и после набора line. должны выскакивать все методы.
PyCharm точно может, но он пипец какой тормозной.
Всякие легковесные блокнотики такое могут, только если точно указывать тип, например str., а имена они уже не понимают.
vim/emacs
amd64 — это название архитектуры, поэтому то что там у тебя не встало к этому не имеет никакого отношения.
тебе просто надо скачать 32-битный питон и не ебать себе и нам мозг. Он охуительно работает под 64-битной виндоус, прикинь!
bttn1["command"] = (lambda appMessage: appMessage = "100")
Хочу, чтобы по нажатию кнопки значение appMessage менялось, но не хочу для этого пилить отдельный метод. Объясните долбоёбу, как сделать, чтобы это работало.
http://pastebin.com/rXtmsERa
http://www.lfd.uci.edu/~gohlke/pythonlibs/
Пора бы эту ссылку закрепить в шапке для неосиляторов поиска.
Знаю, что проще было бы на голом Питоне сделать, но хочу попутно Джанго чуть-чуть изучить.
P.S. Лутца все рекомендуют, но никто не читает, лол.
пиздес, учи aiohttp , а не джанго
Не, ну логика и все такое - это круто, но я пту-кун и на знаниях полученых там if for print и классы далеко не уедешь, к сожалению.
Выбираешь задачу. Решаешь её на питоне. Отправляешь. Её тестят, если всё ок - дают немного экспы. Пару лвлапов и можно переходить к задачам посложнее. Ещё можно опубликовать свой способ решения и посмотреть как эту задачу решили другие (только после того как сам решишь, офк)
ofc можно. GUI будет в виде веб морды, потом requests для парсинга выдачи гугла и результаты запиливаешь в модель.
лучше попробуй сначала на чистом питоне решить хотябы часть задачи, чтобы понять что куда тебя надо пихать. А потом пробуй перенести на Django. (чуть выше описал самую тупую реализацию)
Сударь знает толк в извращениях
Я там попробовал порешать задачи. В итоге на какой-то нервы не выдержали. Каждый раз на ошибку указывал. На пека все решается, а там нет.
на пека у тебя всего пара проверок на тестовых данных, а когда отправляешь там на проверку, набор входных данных резко расширяется. Условия всегда указаны к задаче типа 1 < x < 10 000. Т.е. иксы у тебя будут от 1 до 10000, а не только те, что указаны в assert
Ебать. Действительно. Я даже не обращал на это внимания. Спасибо, пойду задрачивать эти острова. Лол.
эти острова норм подходят для людей, которые не в курсе что делать с if'ами, циклами и прочим, что они вычитали в книгах...
Hackerrank - хз что это...
Зайди да посмотри лучше сам и поймёшь, что тебе ближе.
(ссылку схороню)
Бля, ну вот я медленно тащусь по элементари. Все время какая-то хуйня. То тут не правильно, то там.
На рутрекере пошерсти в разделе видеоуроков. Там есть годные курсы.
+ Two Scoops of Django, Django Girls Tutorial, TDD with Python
>>466395
http://pastebin.com/q85zJ5sV
Наверное так должно быть.
По tkinter отлично, по русски, у Лутца, в Программируем на Python, расписано.
Если тебе в 3d это надо, то читай "Продвинутую анимацию" Джима Адамса, там про морфинг тебе всё расскажут. Но чтобы ее читать надо уже иметь какую-то базу по 3d-графике. Я сейчас читаю пикрелейтед, чтобы закрыть бреши в теме.
>>466392
Я юзаю в своем проекте Kivy. Всё устраивает. Тут можно глянуть примеры: http://kivy.org/#gallery
>>466424
Я читаю! Уже до перегрузки методов в классах дошел в "Изучаем Питон". Далее "Программируем на Питон" планирую прочесть. Читаю ради глубины знаний. На Python уже во всю лобаю.
Никак, страдай.
Python Курс лекций:
http://www.youtube.com/playlist?list=PLEl2mW_X5hhkgW_e7B_ukSwPm3Q28eSyt
Потому что ты дурак. Ты присваиваешь
hiBttn["command"] = setAppMessage()
результат функции. То бишь она выполняется. Смекаешь?
Спасибо тебе за книжки, но ты их в оригинале читаеш, аль ,может быть, где Русскую нашел?
Искать в JSON'ах.
Чего, блять?
>Does Kivy support Python 3.x?
>Yes! As of version 1.8.0 Kivy supports both Python >= 2.7 and Python >= 3.3 with the same codebase. However, be aware that while Kivy will run in Python 3.3+, packaging support is not yet complete. If you plan to create mobile apps for Android or iOS, you should use Python 2.7 for now.
>I’ve already started with Python 3.x! Is there anything I can do?
>Be patient. We’re working on it. :)
Давай, запусти мне kivy под третий питон на андроиде или айфоне.
Тоже самое в конце книги Доусона.
>Привет питонач! У меня есть задание сделать регулируемую модельку человека (высота, ширина в плечах, бедрах голове и т.д.) с эфектом морфинга - тобиш увеличив размер бедер - увеличивается область живота(в нормальных пропорциях) ну или типа того. Направь на путь истинный или подскажи книгу какую. Зарание благодарствую.
Ты даун? Пиздец, тебе нельзя в программирование, раз ты обычный if else и elseif осилить не можешь.
ты их по полгода собрался обрабатывать чтоли?
>Обычно это делается так: принимаем данные в одном потоке, используя асинхронный сокет. Данные обрабатываем в других потоках.
впервые такую хуйню слышу. чем это по-твоему лучше чтения сразу в нескольких потоках?
>>466160
думать ты можешь что хочешь. мысли твои никто не видит, а вот многопоточный говнокод с не поддающимися дебагу гонками да дедлоками на всеобщем обозрении лежит.
>>466285
>Получается при асинхронной работе с сокетом в одном потоке, сокет освобождается после получения данных. И пока один поток в процессе обрабатывает запрос, другой процесс может захватить сокет. Всё правильно я сказал?
нет. если ты открыл сокет и через fork какой-нибудь создал процесс, который тоже его держит, то оба могут пытаться читать одновременно. в какой именно процесс придут данные не определено. ну точнее какой шедулер первым поставит, тот и прочитает. на этом принципе например веб-серверы с кучей slave-процессов работают - открывают один сервер-сокет, форкают процессы, и в каждом делают accept на одном сокете, куда соединение прилетит там оно и будет обрабатываться.
>Тогда мы упираемся в тяжесть процессов по сравнению с потоками.
в современных ос процессы = потоки. отличаются только тем что под потоками мы подразумеваем процессы, которые держат одни и те же области памяти.
>Я если честно вообще не понимаю зачем нужна асинхронность в одном потоке. Объясните, аноны!
да, забыл собственно вот это объяснить. нужно это потому что экспериментальным путем было выяснено, что один поток с асихнронным вводом-выводом по производительности уделывает создание потока на каждый запрос. особенно хуево когда из-за количества соединений упираешься в предел потоков. (впрочем предел соединений тоже есть, эфемерные порты не бесконечные.) типичный пример это nginx и apache - один стал первым вебсервером способным держать 10к соединений, тем временем второй всасывает от slowloris.
тебя наебали, картинка не лучше тысячи слов.
Никакой дебил не будет создавать поток на каждый запрос. Апач вот например юзает пул потоков (на 256 потоков вроде по умолчанию). Другое дело что асинхронность в пределах одного потока (по сути кооперативная многозадачность, использовалась еще в windows 3.1) выигрывает у тру-многопоточности за счет отсутствия оверхеда на переключение контекста.
Прикольно
"Realtime Rendering" читаю в оригинале, на русском не видел. "Продвинутая анимация" у меня на русском в бумажном виде.
Я не знаю какие у тебя скиллы в 3d и что посоветовать читать. И ещё странно такие вещи в Python-треде обсуждать. Хотя, безусловно, тот же IronPython позволяет использовать движки на .Net.
ну ладно, спасибо. Буду копаться.
В словаре есть ключи с датой и временем. Пытаюсь целиком кодировать словарь в JSON через dumps и получаю ошибку TypeError: datetime.time() is not JSON serializable
Есть решение без горожения огорода?
> ты их по полгода собрался обрабатывать чтоли?
Ну, может минут 5, может я буду делать 100500запросов к БД, HTTP API.
>>Обычно это делается так: принимаем данные в одном потоке, используя асинхронный сокет. Данные обрабатываем в других потоках.
> впервые такую хуйню слышу. чем это по-твоему лучше чтения сразу в нескольких потоках?
Вон, тебе ананас снизу уже написал, что апач так делает. В c++ boost даже туториал есть, где создается пул потоков и поток, слушающий сокет
Другое дело, что в Питоне так делать бессмысленно
>> да ну?! А я думал это атомарная операция
> думать ты можешь что хочешь. мысли твои никто не видит, а вот многопоточный говнокод с не поддающимися дебагу гонками да дедлоками на всеобщем обозрении лежит.
Это все так, но где пруфы, что добавление в массив [элементарный, не контейнер] (изменение массива) это не атомарная операция?
> нет. если ты открыл сокет и через fork какой-нибудь создал процесс, который тоже его держит, то оба могут пытаться читать одновременно.
Хочешь сказать, что два процесса, которые запущены отдельно (не через fork) не могут одновременно ПЫТАТЬСЯ получить доступ к сокету? Пруфы есть?
>> в современных ос процессы = потоки.
да ну? Это в каких таких современных ОС?
Да, в Линукс потоки называются Light Weight Processes, но обычный процесс жрет больше памяти и дольше создается.
> уделывает создание потока на каждый запрос
а если у нас уже есть пул потоков?
> особенно хуево когда из-за количества соединений упираешься в предел потоков
Во-первых, пул потоков не бесконечный.
Во-вторых, предел количества потоков меньше предела количества потоков
> впрочем предел соединений тоже есть, эфемерные порты не бесконечные.
При чем здесь порты вообще? Один TCP сокет - один порт.
предел соединений есть, но он не зависит от того как ты создаешь сервер (с потоками или с процессами)
ты что-то совсем запизделся
Я забираю из БД. Если весь словать перебирать - это и так понятно, но это и есть огород.
Какой же ты грубый. Конечно в JSON нет такого формата, зато может быть фича/либа, которая данные словаря преобразовывает в JSON с учетом встречи даты. Ну нет и нет.
> Какой же ты грубый.
Это двач детка
А либа может и есть, но зачем, либо тоже будет в цикле перебирать, нет пути другого
А если хочешь что-то более менее реюзабельное написать, то вот, доки читай
https://docs.python.org/2/library/json.html#json.JSONEncoder
причем тут шедулится или нет
Ты одновременно можешь читать IO-устройство c нескольких потоков в любом языке?
НЕТ, значит кукаретник ты
ну допустим парсер с сайта, или допустим некая автоматизация действий с множества аккаунтов
Ну в этом смысле окей. Но давай объективно. Если ты собрался делать что-то серьезное, то пока ты закончишь, наверняка уже появится сборщик пакетов. А если ты для себя, то питоний проект с киви можно спокойно запустить в QPython3.
Не, не появится. У них длинная цепочка зависимостей, начиная с sdl и pygame и кончая всяким мелким мусором, и все это на py3+android/ios работает как жопа. А еще они хотят избавиться от pygame. Так что затянется надолго.
А еще, раз мы говорим объективно, кивишный гуй на мобилках откровенно тормозит. Это прямо по демкам видно. И android API само собой полностью не покрывает. Такшта делать что-то серьезное на киви идея не оче.
//Ты кстати видел что серьезное для мобилок на kivy?
конкуррентность != параллельность.
>>467392
>может я буду делать 100500запросов к БД, HTTP API.
для этого и придумали асинхронный ио, лалочка. пока ты там ждешь ответы на свои 100500 запросов, будешь обрабатывать что-нибудь еще. ты не поверишь, асинхронно читать можно сразу с кучи файлов (впрочем только с кучи файлов и можно, зачем асинхронно читать один поток?)
>Вон, тебе ананас снизу уже написал, что апач так делает.
апач не читает данные в одном потоке, он каждое соединение (= каждый сокет, ты ведь знаешь как tcp вообще работает?) обрабатывает в отдельном потоке обычным блокирующим ио.
>>467397
а никто и не говорит что атомарная. забывать обернуть в блокировку от этого никто не перестает, тебе ж компилятор не кукарекает "э хуйло я вижу у тебя тут лока нет, докажи что это атомарно". хочешь доказательств - пиши на агде.
>>467399
а как ты один сокет расшаришь между процессами? не, ну вроде в посиксе как-то можно было передавать файловые дескрипторы через ipc, но это все давно уже депрекатед. в 2015 году единственный способ расшарить файловый дескриптор - открыть его в общем процессе-родителе, и только после этого форкнуть сколько тебе нужно чего.
>>467404
во всех, лалочка. как вы меня заебали, каждый раз кукарекаете, а погуглить 3 секунды не можете. а потом появляются всякие го, где нет даже ебаных генериков, зато пок-пок горутины.
вот про прыщи, например: http://stackoverflow.com/questions/807506/threads-vs-processes-in-linux
>>467408
>а если у нас уже есть пул потоков?
то все хуево если у тебя больше соединений, чем потоков.
>При чем здесь порты вообще? Один TCP сокет - один порт.
именно. один сокет на котором ты делаешь bind, плюс по сокету на каждого клиента. и со стороны клиента тоже каждый сокет занимает один порт. порт, который используется для передачи данных, называется эфемерным - они открываются и закрываются незаметно для тебя и имеют номера где-то в районе от 15к до 63к.
>>467461
>Ты одновременно можешь читать IO-устройство c нескольких потоков
да запросто. другое дело что тогда хуй проссыш в какой из потоков придут какие данные. хотя в каком-нибудь udp это не критично например, датаграмы все равно в рандомном порядке могут придти.
конкуррентность != параллельность.
>>467392
>может я буду делать 100500запросов к БД, HTTP API.
для этого и придумали асинхронный ио, лалочка. пока ты там ждешь ответы на свои 100500 запросов, будешь обрабатывать что-нибудь еще. ты не поверишь, асинхронно читать можно сразу с кучи файлов (впрочем только с кучи файлов и можно, зачем асинхронно читать один поток?)
>Вон, тебе ананас снизу уже написал, что апач так делает.
апач не читает данные в одном потоке, он каждое соединение (= каждый сокет, ты ведь знаешь как tcp вообще работает?) обрабатывает в отдельном потоке обычным блокирующим ио.
>>467397
а никто и не говорит что атомарная. забывать обернуть в блокировку от этого никто не перестает, тебе ж компилятор не кукарекает "э хуйло я вижу у тебя тут лока нет, докажи что это атомарно". хочешь доказательств - пиши на агде.
>>467399
а как ты один сокет расшаришь между процессами? не, ну вроде в посиксе как-то можно было передавать файловые дескрипторы через ipc, но это все давно уже депрекатед. в 2015 году единственный способ расшарить файловый дескриптор - открыть его в общем процессе-родителе, и только после этого форкнуть сколько тебе нужно чего.
>>467404
во всех, лалочка. как вы меня заебали, каждый раз кукарекаете, а погуглить 3 секунды не можете. а потом появляются всякие го, где нет даже ебаных генериков, зато пок-пок горутины.
вот про прыщи, например: http://stackoverflow.com/questions/807506/threads-vs-processes-in-linux
>>467408
>а если у нас уже есть пул потоков?
то все хуево если у тебя больше соединений, чем потоков.
>При чем здесь порты вообще? Один TCP сокет - один порт.
именно. один сокет на котором ты делаешь bind, плюс по сокету на каждого клиента. и со стороны клиента тоже каждый сокет занимает один порт. порт, который используется для передачи данных, называется эфемерным - они открываются и закрываются незаметно для тебя и имеют номера где-то в районе от 15к до 63к.
>>467461
>Ты одновременно можешь читать IO-устройство c нескольких потоков
да запросто. другое дело что тогда хуй проссыш в какой из потоков придут какие данные. хотя в каком-нибудь udp это не критично например, датаграмы все равно в рандомном порядке могут придти.
def func():
if not condition1: return False
pass
if not condition2: return False
pass
if not condition3: return False
pass
if not condition4: return False
pass
return True
Вместо огромного количества отступов:
def func():
if condition1:
pass
if condition2:
pass
if condition3:
pass
if condition4:
pass
return True
return False
?
Да. Дзен питона, епта: flat is better than nested.
> Ты одновременно можешь читать IO-устройство c нескольких потоков?
Вопрос был
> Не могу понять, какой смысл использовать потоки, если они выполняются по очереди, а не параллельно. Получается я нихуя не выйграю в скорости, так?
Это будет работать как конкуррентность, но с тредами. Ожидание io в пифоне не блокирует GIL, так что блокировка будет только на обработке данных. Конкуррентность настоящая конечно же лучше.
Думаю влиться к каким-нибудь ребятам, чтобы вместе пилить какой-нибудь проект, только как их найти?
Это и есть настоящая конкуррентность. Конкуррентность это когда ты посмотрел что у тебя задача 1 выполнена на 25% и задача 2 тоже на 25%, через полчаса пришел, задача 1 выполнена на 75%, значит и задача 2 выполнена на 75%. Асинхронное ио (кооперативная многозадачность) это модель конкуррентности. Акторы это модель конкуррентности. Преемптивная многозадачность это модель конкуррентности. Ты говоришь про параллельность - когда в любой момент времени выполняются несколько инструкций одновременно. Это деталь реализации, которая только для ускорения нужна.
Да, обосрался я. Всегда понимал под конкуррентностью слегка другое. Вообще я хотел сказать, что в питоне лучше использовать асинхронное ио, нежели треды.
> для этого и придумали асинхронный ио
Не понимат. Ну, отправил я запрос к БД, когда придет ответ, вызовется callback. И я дальше могу что-то обрабатывать. Но я не знаю когда он (ответ от БД) придет, как я могу в этом же потоке что-то ещё обрабатывать? операция же прервется вызовом callback-функции? Пример для даунов ПЛИЗ
> он каждое соединение (= каждый сокет
Как TCP работает я знаю, но разве можно на одном компьютере открыть несколько сокетов, слушающих один и тот же адрес и порт?
> плюс по сокету на каждого клиента. и со стороны клиента тоже каждый сокет занимает один порт. порт, который используется для передачи данных, называется эфемерным - они открываются и закрываются незаметно для тебя и имеют номера где-то в районе от 15к до 63к.
Это понятно, но эти сокеты открываются на клиенте же. На сервере-то у меня один сокет, разве нет?
> да запросто. другое дело что тогда хуй проссыш в какой из потоков придут какие данные. хотя в каком-нибудь udp это не критично например, датаграмы все равно в рандомном порядке могут придти.
ты меня запутал вообще
Запросы и всякие чтения должны быть волшебными™. Есть луп, в нём все хотелки твоей программульки: базы, чтения, таймеры. Луп ждёт пока какое-нибудь нет, да случится. Ага, случилось? И хрясь возобновляет короутину. Т.е. это не совсем коллбек. Ты пишешь:
y = yield from yoba()
print(y)
И это можно читать так: "эй, луп, когда йоба появится разбуди..."
Да что же такое с сажей сегодня, родной пифон сагаю!
>Но я не знаю когда он (ответ от БД) придет, как я могу в этом же потоке что-то ещё обрабатывать? операция же прервется вызовом callback-функции?
Когда придет, event loop об этом узнает и при первой возможности (если что-то еще в этот момент обрабатывается - когда этот обработчик сам либо завершится, либо захочет чего-то подождать; если нет - прямо сейчас) вызовет твой калбак.
>Как TCP работает я знаю, но разве можно на одном компьютере открыть несколько сокетов, слушающих один и тот же адрес и порт?
Нет, но можно один, и потом через fork создать несколько процессов, которые все имеют к нему доступ. Плюс каждое клиентское соединение это свой сокет (accept возвращает новый сокет, серверный никаких данных не передает).
>Это понятно, но эти сокеты открываются на клиенте же. На сервере-то у меня один сокет, разве нет?
Тут смотря как настроишь. Вообще если разобраться как веб работает, там полно каких-то мутных решений. Например популярно использовать nginx как реверс-прокси - то есть все твои клиенты подключаются к nginx, он читает запрос, и потом либо отдает статический файл либо направляет запрос к другому серверу, который умеет в динамический контент. Так вот nginx в таком режиме на каждый запрос по соединению открывает зачем-то.
Ну, i/o-bound весь норм будет "параллелиться", а вот cpu-bound числодробилки нет.
Он все поддерживает. Уверен что там utf-8? Вариант попроще кстати:
u = [bin(x) for x in "еба".encode('utf-8')]
v = str(bytes(int(x, 2) for x in u), 'utf-8')
print(u, v)
['0b11010000', '0b10110101', '0b11010000', '0b10110001', '0b11010000', '0b10110000'] еба
https://www.udacity.com/course/ud858
>free
>free
>free
>free
>free
Налетай.
Тут все спрашивали про редактор.
А не, отбой, понял свой косяк, спасибо, что помогли
> не, ну вроде в посиксе как-то можно было передавать файловые дескрипторы через ipc
Через юникс сокет можно пределать.
>>>S = ([1, 2, 3, 4, 5], )
>>>S[0][0] = 999
>>>print(S)
([999, 2, 3, 4, 5],)
>>>
Изменяемая неизменяемая последовательность, лол.
Лист это ссылка, туплу похуй, что внутри листа, ибо он тупль видит только ссылку на объект. Ссылка не изменилась значит все нормально
Кстати, в Python 3.3 появилась новая конструкция yield from. Совместное использование yield и for используется настолько часто, что эти две конструкции решили объединить.
[CODE]def generator_range(first, last):
for i in xrange(first, last):
yield i
def generator_range(first, last):
yield from range(first, last)[/CODE]
Да, есть немного, особенно забавно, что в asyncio вся работа построена на эксепшоне с аргументами. И генераторы отличаются от простых функций. Хотя в Lua такого разделения нет и корутины там получше чем мы с тобой, а именно — вызываются там где надо, а не пробрасываются через весь стек.
Мамку твою ибал, лалка!
Что такое корутины?
> в asyncio вся работа построена на эксепшоне с аргументами
Как ты это узнал?
пруфы?
чем ты недоволен?
*И исключения там задействованы.
http://stackoverflow.com/questions/9708902/in-practice-what-are-the-main-uses-for-the-new-yield-from-syntax-in-python-3
Вот это я почитал и запутался немного.
С другой стороны оно вроде пока не надо, но хочется знать всё, все остальные фичи питона я знаю.
Скачал 4 издание и последнюю версию интерпретатора. Норм?
Это гибкость питона, то, что это флаг Украины и Свастика, ты не заметил, а гибкость заметил.
> Что такое корутины?
http://lmgtfy.com/?q=coroutine
> пруфы?
https://github.com/python/asyncio/blob/master/asyncio/tasks.py#L239
Ну хуй знает. Если еще сверху ингриш добавить. И пиздоавть на одеск, наверное.
Иными словами, насколько я понимаю, обычные yield-ы от конечной точки идут до лупа, исключение StopIteration возобновляет последний yield from в стеке. Остальные исключения являются обычными исключениями. Это конечно не новшество asyncio, а новшество пифона: https://www.python.org/dev/peps/pep-3156
>>> x = ([],) * 2
>>> x[0] += [2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> x
([2], [2])
Ничего, просто хуитой страдаю.
А систематизированное? Методичка, короткий курс?
http://ideone.com/wFstBz
и джсон уровня [{"title": "Developer"};{"title": "Administrator"}]
Хули не сохраняются данные?
блядь, откуда вы лезете?
тебе английским языком написали:
FileNotFoundError: [Errno 2] No such file or directory: 'data.json'
Спасибо, а есть без Джанго?
Да не наркоман я, хочу посмотреть на реальную реализацию ИИ, потому что у меня только есть идея насчет написать Объект, дать ему условия и нужно анализировать результат и находить кратчайший путь, будет ли работать в случае с гладиаторами?
А вот у нейронных сетей может получиться очень интересно анализировать результат и хочу их связать с алгоритмом, чтобы ИИ обсчитывал мне, как лучше двигаться и как лучше не двигаться.
Нейронная сеть это обучаемая непрерывная функция из одного евклидова пространства в другое, а не магия какая-то. Что ты подаешь на входы? Что ты ожидаешь на выходах?
>находить кратчайший путь
Для этого алгоритмы есть, A* например, нейронная сеть не нужна.
это исключение на идеоне (там-то нет файла)
Читаю https://docs.python.org/2/library/hashlib.html#module-hashlib, и или в глаза долблюсь, или там действительно нет решения моей проблемы.
import hashlib
hashlib.md5("test")
выдает
Unicode-objects must be encoded before hashing
НО, у меня версия 3.1 (для Доусона с его спрайтами), а после версии 3.0 все перешло на юникод. И как мне перекодировать строку, если decode там просто нет?
Кстати, почему ты юзаешь третий питон, а читаешь доку по второму? В доке к третьему прямо написано, b"test"
грасьос
Далбаеб тотальный.
бамп
Надо быть тян.
>будет ли работать в случае с гладиаторами?
Вангую, тут нейросеть не взлетит. Нужно копать в сторону теории игр. Построить модель, придумать стратегию для максимизации выигрыша. Пикрелейтед отличная книга по ИИ.
Бамп. Кто-то ИТТ работает питон-кодером? Как вы получили эту работу без реального опыта в питон-проекте?
Блядь, что значит реальный опыт?
Я с универа писал на питоне. Потом провалил несколько фриланс-заказов на Django. И вот теперь я работаю
Ты говоришь про RAD/GUI builder. Графический drag-n-drop для клепания формочек. Это не ООП.
Что для тебя ООП?
> http://rutracker.org/forum/viewtopic.php?t=4622868 Специалист Питон
?
Не трать на эту хуиту время.
Не рекомендую, там словоблуд похлеще Лутца.
На ннмклабе скачай, но говно полное. Там ещё есть второй рюснявый, от неких pybursa, качество получше и меньше пиздежа, но как и другие рюснявые - вода и моча вместо материала.
В интернете 100500 туториалов которые дадут больше, а проходятся за 1-2 вечера. Кодеакадеми тот же.
Плюс есть learnpythonthehardway.
http://torofimofu.fvds.ru/learnwithpython/ru2e/index.html
Если ты его скачаешь и склеишь в один большой html-файл.
> RAD/GUI builder
> не ООП
Прошу прощения, понял как я сглупил, но этот анон меня понял.
Почитал нацаны советуют pyqt, pygtk и wxpython.
>pygtk
Он кстати труп. На замену есть pygobject. И графическая клепалка формочек есть - glade называется. А у qt вообще целое IDE, напоминающее вижуалстудию.
нет.
для tkinter было где-то, на самом деле он продвинутый и не хуже pyqt в визуальном плане. Это общепринятое заблуждение, что интерфейс вин95. Не могу вспомнить где, но все есть в нете про tkinter.
Не могу такую вещь найти. Вот создал я поле Entry, нужно в переменную записать то, что в эту строку вводил пользователь. Как это сделать-то?
Автора Сузи гугли в пдф было
вот из него:
from Tkinter import *
tk = Tk()
tv = StringVar()
Label(tk,
textvariable=tv,
relief="groove",
borderwidth=3,
font=("Courier", 20, "bold"),
justify=LEFT,
width=50,
padx=10,
pady=20,
takefocus=False,
).pack()
Entry(tk,
textvariable=tv,
takefocus=True,
).pack()
tv.set("123")
tk.mainloop()
http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/index.html
В пдф книга с этого сайта есть где-то
Я правильно понимаю, что это выполняется в бесконечном цикле? От объявления объекта Tk и до вызова mainloop()?
Забыл нахуй винапи, но думаю в tk.mainloop() вызывается WinMain, а там бесконечный цикл с WinProc
Душевно брат братишка
Варианта два: поднимать конфигурацию локально, а на DO уже заливать ансиблом каким-нибудь. Но мне не очень нравится это решение по понятным причинам плохая масштабируемость, разные операционные системы в облаке и на хосте. Другой вариант – сделать снэпшот и развернуть на виртуалке в божественном Амстердаме (пинг должен быть меньше).
Оба эти варианта мне не очень нравятся, поэтому я продолжаю колоться и грызть кактус.
1. Есть mosh. Охуенный overhaul ssh. Работает через udp, резко снижает пинг, умеет "локальный" инпут. Must-have на всех серверах на самом деле.
2. sshfs. Монтировать удаленную фс локально через ssh, работать локальным емаксом. Пинг заметен только при сохранении. Ящитаю самый ок вариант. Ну или nfs какой.
3. vim умеет редактировать через ssh/scp, т.е. vim scp://user@server//dir/file123, возможно емакс так же умеет, погугли. Под капотом вим тупо копирует файлик в /tmp, при записи заливает обратно.
однако таки вишенка
таки пиши на с++, ебись с множественным наследованием шаблонных классов, утечками памяти и т.д.
че ещё за дроплет?
что такое DO?
>> запущено куча демонов и сервисов (rabbitmq, например)
может у тебя тупо сервак тормозит
>> Я по емаксу через ssh цеплюсь к сорцам
нахуя? Редактирование на продакшене для экстеренных случаев. Я тупо захожу по ssh и редактирую vimом
>> сделать снэпшот и развернуть на виртуалке
и развернуть локально в KVM-виртуалке
Я для автоматической настройки и деплоя использую fabric
>> Работает через udp
знаешь как работает udp? алсо, это секурно?
>> sshfs
так-то, конечно, быстрее, LOL
> строгая типизация
Быстро учишься, глядишь, до полуночи пасту про тэги у значений переизобретёшь. Дерзай!
Знаю как работает udp. Секурно, для авторизации и всякого шифрования используется ssh. Карочи там сложная система взаимодействия ssh+mosh, но можно сказать что mosh работает "поверх" ssh. В некотором роде.
>> sshfs
>так-то, конечно, быстрее, LOL
Что ты мне тут лолкаешь, маня? Конечно быстрее. При интерактивной работе через ssh у тебя пинг виляет на каждое действие. Даже на нажатие клавиши в редакторе. При sshfs пинг влияет только на io.
>> всякого шифрования используется ssh
ЧО? SSH работает по TCP, Маня
>> Даже на нажатие клавиши в редакторе.
а нахуя редактировать что-то на сервере? быдлоадмины бля
>> sshfs пинг влияет только на io.
то есть ты хочешь сказать что гонять файл туда-сюда быстрее, чем гонять символьный ввод пользователя?
окей
зачем мне твоя ссылка?
Я знаю как работает SSH
в этом mosh повыдергивали отдельные уровни из протокола. По сути это не SSH, а какое-то говно слепленное из кода SSH на коленке
Пост читал, и еще раз говорю, тот кто редактирует код на сервере - феерический мудазвон. Но жизнь научит еще
Что такое пинг слышал? Один раз 200 мс пинг + 10 мс передача быстрее чем 80 раз 200 мс пинг + 0.00001мс передача.
>>469236
>в этом mosh ко-ко-ко кукареку
Не читал как работает mosh @ изображаешь из себя эксперта? ssh в нем используется только чтобы запустить mosh-server. Протокол там вообще другой.
> Один раз 200 мс пинг + 10 мс передача быстрее
ок, тут я обосрался
> Не читал как работает mosh
пробежал бегло, потому что не хочу тратить время на какую-то поделку. Безопасность важнее скорости, а SSH-проверенный инструмент
numpy.linalg чёт странный какой-то. У меня от него сингулярное разложение случилось.
для начала погугли IaaS vs PaaS.
>Пост читал, и еще раз говорю, тот кто редактирует код на сервере - феерический мудазвон. Но жизнь научит еще
А как тебе вариант, что у меня этот сервер не для продакшена используется? Например, для тестов или скрапилки какой-нибудь.
>>469178
>возможно емакс так же умеет, погугли
Да, я именно так и делаю. Иногда бывают проблемы с автокомплитом путей или лаги при каких-то его синхронизациях, но это лучше чем запускать редактор на самой удаленной машине.
>Есть mosh. Охуенный overhaul ssh.
А вот это интересно. Надо посмотреть.
>>469178
>может у тебя тупо сервак тормозит
Я смотрю его состояние monit'ом, вроде не загружен.
Алсо, неужели большинство держит все сорцы у себя на компе? Если у меня, допустим, 128-гиговый SSD и не очень производительный комп, то я просто физически не вижу смысла держать у себя на локальной машине что-то кроме хелловорлдов.
вот еще здесь посмотри
https://wiki.python.org/moin/UsefulModules#Game_Development
Ну и вообще на вики питона поищи инфу
> у меня этот сервер не для продакшена используется? Например, для тестов
ну и дебил. Я понимаю, если б у тебя был большой проект, несколько разработчиков, тогда бы имело бы смысл завести континьюс-интегратион сервис в облаке. А так ты устроил себе гемор на пустом месте.
[code]class OdeskProfile(models.Model):
title = models.CharField(max_length=255)
skills = models.CharField(max_length=255)
country = models.CharField(max_length=255)
profile_id = models.CharField(max_length=255)
def fill(self):
with open('test.json') as data_file:
data = json.load(data_file)
for items in data:
test = OdeskProfile.objects.all()
test.title = data[items]['title']
test.skills = data[items]['skills']
test.country = data[items]['country']
test.profile_id = data[items]['id']
test.save()
def __unicode__(self):
return self.title[code/]
>ну и дебил. Я понимаю, если б у тебя был большой проект
Вообще, у меня немного другая задача, мне нужна именно машина с регулярным аптаймом и доступностью из любого места. А умение пользоваться каким-нибудь Дженкинсом и так входит в набор скиллов уважающего себя разработчика (да и вопрос изначально стоял совсем не об этом).
>>469307
>А sshfs чего? Самый годный вариант же.
Пожалуй это стоит попробовать.
В этом вашем питоне можно присвоить ключу несколько значений? Если да, то каким образом и как их правильно извлекать?
зачем вам это в вашем сисярп?
Несколько значений — это, очевидно, некая сущность, которая хранит несколько значений. На эту роль подойдет список, кортеж, словарь, класс.
Работать можно так же как со всеми словарями.
d = {'a': [1, 2]} #создаем словарь со списком в качестве значения
x = d['a'] #получаем список по ключу
x.append(3) #тут самое интересно: мы изменили значение в том числе в словаре
Благодарю
запускаю я значит тор.
потом:
import socks, socket, urllib
s=socks.socksocket()
s.setproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9150)
s.connect(("golye_pisechki.onion", 80))
socket.socket=s
urllib.urlopen("http://golye_pisechki.onion/")
после этого выдает:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/urllib.py", line 89, in urlopen
return opener.open(url, data)
File "/usr/lib/python2.7/urllib.py", line 210, in open
return getattr(self, name)(url, data)
File "/usr/lib/python2.7/urllib.py", line 292, in open_http
import httplib
File "/usr/lib/python2.7/httplib.py", line 1151, in <module>
import ssl
File "/usr/lib/python2.7/ssl.py", line 196, in <module>
class SSLSocket(socket):
File "/usr/lib/python2.7/dist-packages/socks.py", line 126, in __init__
_orgsocket.__init__(self,family,type,proto,_sock)
File "/usr/lib/python2.7/socket.py", line 187, in __init__
_sock = _realsocket(family, type, proto)
TypeError: Error when calling the metaclass bases
an integer is required
Что не так?
запускаю я значит тор.
потом:
import socks, socket, urllib
s=socks.socksocket()
s.setproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9150)
s.connect(("golye_pisechki.onion", 80))
socket.socket=s
urllib.urlopen("http://golye_pisechki.onion/")
после этого выдает:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/urllib.py", line 89, in urlopen
return opener.open(url, data)
File "/usr/lib/python2.7/urllib.py", line 210, in open
return getattr(self, name)(url, data)
File "/usr/lib/python2.7/urllib.py", line 292, in open_http
import httplib
File "/usr/lib/python2.7/httplib.py", line 1151, in <module>
import ssl
File "/usr/lib/python2.7/ssl.py", line 196, in <module>
class SSLSocket(socket):
File "/usr/lib/python2.7/dist-packages/socks.py", line 126, in __init__
_orgsocket.__init__(self,family,type,proto,_sock)
File "/usr/lib/python2.7/socket.py", line 187, in __init__
_sock = _realsocket(family, type, proto)
TypeError: Error when calling the metaclass bases
an integer is required
Что не так?
а еще тут ошибка. Если бы я мог удалить пост, я бы его удалил.
Сначала
import socks
s=socks.socksocket()
s.setproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9150)
s.connect(("golye_pisechki.onion", 80))
потом
import socket
socket.socket=s
потом
import urllib
urllib.urlopen("http://golye_pisechki.onion/")
Так, ок, до меня дошло, что socket.socket() и socks.socksocket() аналогичны. осталось разобраться, как работать с urllib через socksocket.
Читаю сейчас Доусона, уже на половине книги. Подскажите пожалуйста, где можно взять лёгонькие задания и что читать после него?
/g/ рулетку уже роллил?
https://raw.githubusercontent.com/zhiwehu/Python-programming-exercises/master/100+%20Python%20challenging%20programming%20exercises.txt я вот это одно время делал. Хорошо что с решениями, а то я часто сомневался правильно ли сделал.
для меня выбор urllib обусловлен лишь тем, что я знаю, как через него получить html-страницу с сервера. Если ты мне пояснишь, как сделать это через socket, я буду благодарен, потому что именно над этим я сейчас ковыряюсь.
а теперь ты такой поясняешь, как к requests прикрутить socks5-прокси. Я же просил пояснить по socket, а не дать мне альтернативу.
И еще вот какая-то ебень неясная
http://stackoverflow.com/questions/2317849/how-can-i-use-a-socks-4-5-proxy-with-urllib2
Там в пример приводится, что надо
socket.socket=socks.socksocket
и потом импорт urllib2, только вот нихуя он не импортируется, если так сделать. urllib первый импортируется, но, видимо, не использует socket, иначе недоступность ресурсов через прокси я объяснить не могу.
Ок, попробую.
Ты на год на стаке смотри, взял говно года, когда ты ещё не родился и хочешь чтобы всё работало.
Вот вариант точно работает, только что проверил:
http://pastebin.com/SmdLSBeb
>AttributeError: 'module' object has no attribute 'set_default_proxy'
>Вот вариант точно работает, только что проверил
Да что ты говоришь?
У меня нет оснований тебе не верить. У меня этот аттрибут называется просто "setdefaultproxy" без нижних подчеркиваний. Вопрос стоит по-другому - почему у нас разные названия аттрибута, кто виноват и во всех ли языках так же?
А еще, похоже, хваленый requests не считает нужным лезть с днс-запросами через прокси, потому что
>первый пик, на котором все сделано по аналогии http://pastebin.com/SmdLSBeb
Это полный буллщит, знаете ли. Хотя если подумать - логично, что он не лезет за днс в прокси по моему мнению, потому что ему передается только socks.socksocket(), без socks.setdefaultproxy. Я сам не понимаю, с какого хрена эта схема должна работать.
И пока-что хоть каких-то результатов я добился оперируя только лишь socks без других модулей и HTML-запросами, которые надо составлять по ГОСТУ которй еще предстоит выучить
>второй пик
остается только разобраться, почему страница выдается не вся. Я задавал recv(1024) и recv(10240) - обрезалось всегда на том же моменте.
итак, я продвигаюсь. Пните куда почитать про кодировку чтоб доступно и понятно.
Никто гуглить что-ли не умеет?
Я там цикл забыл.
https://ideone.com/uRF85A
Т.е. тебе надо распаковать словарь вида
{
'title':'spam',
'skills':'ham',
'country':'eggs',
'profile_id':'1',
}
в аргументы модели.
Еще можно динамически задавать атрибуты в цикле по такому словарю для пустой модели через setattr, а потом сохранить модель.
На википедии вполне всё доходчиво.
Врубись в MVC, начни делать что-то реальное, попутно читая документацию и stackoverflow.
Питон в отличии от руби очень универсален. Я три года на нем пишу за деньги веб в глаза не видел.
Как это сделать?
Да мне просто интереса ради. Я сегодня проснулся и вспомнил эту хрень. А найти не могу, и это не дает покоя. Не приснилось же мне.
Парни, много ли работы на питон?
Я как-то хотел учить питон и потихоньку готовить себя к удаленке, но тут мне намекают что офис приближается, тни-дизайнеры, идиоты-директора, моложавые чсв-программисты. Неужели и правда придется джуниором в дс 1/2 устраиваться?
Как вообще начать свою карьеру питон-разработчиком?
Всё очень хуево. Роисся же вперде, поэтому нанимают только дешевых быдлокодеров-макак на PHP
Работа есть только в ДС, в ДС-2 все хуево.
Лучше сразу удаленку ищи
У нас не умеют в планирование, и не понимают как качество кода может в перспективе экономить время и деньги, поэтому в Роиссе только PHP и 1С
что значит готовить себя? Если ты на удаленке бесполезен, тебя и джуном в офис не возьмут, маня. Сейчас вообще-то безработица
Английский у меня довольно приличный. Учу только на английском.
Легко ли мне будет найти работу за границей?
>Легко ли мне будет найти работу за границей?
Абсолютно не возможно. Жуниворов там и своих хватает. За границу можно пробовать только после достижения уровня мидл+.
class First:
def __init__(self, test):
self.data=test
print (self.data)
Почему надо указывать self?
Почему нельзя сделать так:
class First:
def __init__(test):
data=test
print (data)
Или self может заменяться на что-то другое?
Или это просто "так заведено"?
даже пистона не осилятор, ну пиздец
а если по делу, то:
<code>
class Foo(object):
\tdef __init__(self, tr):
\t\tself._tr = tr;
\tdef poo(self):
\t\tprint(self._tr)
foo = Foo("foo")
foo.poo()
bar = Foo("bar") # Escobar axiom
Foo.poo(bar)
</code>
да ладно. серьёзно, штоля? а нахуя я тогда учу всю эту поеботу?
что тогда делать? вкатываться в андроид?
Жуном за границей ты только хуй найдешь. Хоть пхп хоть хаскель. Андроид кстати забит жунами индусами.
Очевидно качать скилл тут, когда попадешь сеньером в яндекс - тогда и трактор будет.
Я так и хотел, только я нихуя допереть не могу как это сделать и у меня короче не получается нихуя.
Ну у меня вот эта хуита написана в models.py
http://ideone.com/Qf2cmD
Потом сделаю как тут https://ideone.com/uRF85A
У меня есть JSON с 100ней записей внутри. Соответственно я хочу использовать эти ебаные записи внутри своего проекта и для этого мне надо заполнить БД, так как каждый раз я не хочу это говно подгружать. Я пытался вникнуть в фикстуры хуюры, но там нужно вручную делать вроде как по своей модели и это дичайший зашквар.
Вооооот. Так что я туповатый и когда я тупо запускаю /manage.py runserver у меня не набивается база, разъясни для тупого или просто код кинь как мне используя код выше заполнить базу.
пили прохладную, анон, все, что вокруг так и орёт, что пистоном только в вебе зарабатывают
Системный интегратор. Линуксы, фряхи-хуяхи, куниксы-хуюниксы. Пишем на С и Питоне, в последнее время все больше на Питоне и меньше на С. Из последнего питонокода - gui, curses и cli морда к корпоративной тулзе, коллектор и LLDP, овердохуя модулей к системам мониторинга и к ansible, бот к скайпу (для себя) и джабберу (по работе), множество мелких автоматизаций и затычек. ИНТЕГРАЦИЯ жи. Еще для себя игоря пишу на pyglet. Воот. Что еще, еще собрался делать автоматическую воровалку субтитров к фильмам. В smplayer такая есть, но работает как говно. Нажо переписать.
Я вообще не понимаю откуда у тебя миф что питон только для веба. Это же не руби. У него, блять, библиотек на все случаи жизни. Ты меня тралируешь щтоле? А я как дебил тут расписался. Ну и ладно.
спасибо Анон, нет не тралиррую, сколько вакансии смотрю, все время либо админство, где питон как "желательное", либо (чаще) веб с джангой
Хочу написать менеджер вк. Почитал документацию, там какая то мутная хуйня с обязательной авторизацией через браузер. Как побороть эту хуйню? Загуглил про selenium. Подойдет?
Админство. Да и все тобой перечисленное можно на чем угодно писать.
Два месяца читал, даже до половины не дошёл, осиливал даже на выходных максимум 10 страниц в день. Не выдержал и перешёл на другую книжку.
Человеку с нулевыми знаниями только Лутца и надо читать.
Всё остальное (на русском) - поверхностная херь.
У Лутца давно уже и 5-е издание есть, но только на инглише.
Ок. Только я в математику вообще не могу, потому и спрашиваю.
Одни говорят математики в погромировании нет, другие говорят есть, но я пока еще не наткнулся на неё в лутце
В чем смысл твоего поста?
Никто выше не говорил о незнании английского, а просто констатировал, что есть и 5-е издание на английйском (в то время, как в шапке приведено только 4-е издание).
если не нужен JS для авторизации, то селениум - оверкилл, если так, то бери любой фреймворк для парсинга куда можно скормить юзерагент (считай вообще любой)
Если честно, то на Доусона перелез, нравится, но параллельно читаю Петцольда, хочу действительно хорошую базу получить, Лутц, конечно, хорош, но база от него получится слабее, чем от нескольких узкопрофильных книжек в сочетании с школоучебниками, вроде Доусона.
Что за вопрос, последнюю, конечно.
2.х не нужно, если ты по работе не занимаешся поддержкой старых продуктов.
В 4 издании рассматривается 3 версия же, конкретно какая не знаю, но что точно могу сказать, это что тебе нужна последняя, которая доступна на сайте, все инструменты описанные в книге у тебя будут и проблем не возникнет.
Решил вместо этой хуиты http://ideone.com/Qf2cmD делать по-царски https://ideone.com/YJMPtA , однако есть проблемка. Великолепно работает для одного инстанса.
Чекните сурс, где я мог проебаться? Вероятнее всего в цикле, но пока жбан не соображает где.
Сап, знаю кресты, шарю в протоколах. Чего почитать, чтобы мочь как все эти крутые хацкеры писать простенькие прожки для работы с сетью/удалённые эксплойты?
Кажись исправил. Теперь другая фича.
https://www.dropbox.com/s/5sfaeouw95w11lb/data.json?dl=0
Трейсбэк:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/alex/Web/virtualenv/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/home/alex/Web/virtualenv/lib/python3.4/site-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/alex/Web/virtualenv/lib/python3.4/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(args, options.__dict__)
File "/home/alex/Web/virtualenv/lib/python3.4/site-packages/django/core/management/base.py", line 338, in execute
output = self.handle(args, options)
File "/home/alex/Web/virtualenv/Diploma/Registry/management/commands/fill_data.py", line 16, in handle
Odesk.skills = data['skills']
KeyError: 'skills'
В итоге короче доходит до 97 пункта и прерывается.
голос с дивана
Любую книгу по Питону, а потом исходники программ из области, которая понадобится. Всякие Лутцы тебе нахуй не нужны, раз уже что-то умеешь.
Так sockschains же есть для таких случаев. + iptables где прописан только ip входной ноды тора/1 прокси
Ну не знаю, мне бы чё-нить ёмкое без лишних объяснений, чтобы не совершать ошибки перехода на другой язык. Ну типа привык ты делать так а в другом языке так значит немного другое.
print(set1)
Ошибка синтаксиса. Ткните пальцем, не могу найти.
Ой, блядь, скобка же. Нашёл.
github:vk_api
Ну, это слегка другой "уровень" воздействия. Если, мне надо много соединений из одного приложения через разные прокси?
Пишу диплом, пишу на Python
Решил сначала оформлять в PyQt, ебался с этой хуйней, потом понял что нахуй это дерьмо, лучше делать всё в SaaS форме, в веб-интерфейсе.
И теперь есть два стула - на одном пики Djangoвые, на другом хуи Flaskoвые.
На какой сесть? Знаю, что с фласком вроде ебли меньше, но я хуй знает, мне нужен веб интерфейс еще и для визуализации кое-каких функций (то есть должна быть хорошая работа с графическим представлением функций), которые будут анализироваться через данные, вводимые пользователем.
У тебя одна страница или несколько? Если одна то ебашь фласк с хабра туториала, если несколько то джангу.
Если у тебя одна страница , которая даже бд не использует, а тупо рисует и анализирует графики по введенным данным то тебе нужен фласк. Джанго будет оверхедом, но так то похуй на чём делать.
не, БД использует, еще при этом она должна хранить постоянно около 5 значений, потом хранить два файла Эксель, для последующего анализа, мне короче придется прикручивать еще библиотеки для экселя.
И там блять вроде грабберы данных короче.
Лол бля, ты смотрел в сторону ipython и nbviewer? Там тебе и веб интерфейс, и визуализация, и данные от пользователя, и всё всё всё.
Просто начни делать. Я щас сам делаю на джанго нечто вроде hh.ru только хуевее.
делаю, ебусь, спасибо.
>>471046
Посмотрел, спасибо. Нихуя не понял, в смысле что блять на русском то маловато всего, если вообще есть (ну да, я хоть энглиш понимаю, но не так, как нужно). И мне с этим проблем еще не хватало, когда нихуя перед дипломом не смогу найти со своей проблемой в интернете.
Ну. Это короче хуйня пиздит инфу с odesk и LinkedIn и типа выдает как результаты поиска. Типа как база резюме вроде hh, только это всё хуево с вырвиглазным дизайном и типа мой диплом. Но я пытаюсь в дизайн.
>а русском то маловато всего, если вообще есть (ну да, я хоть энглиш понимаю, но не так, как нужно)
ну это меня мало ебет
По факту эта вся залупка как матлаб + мапл + полноценный язык программирования с интерактивным отображением данных в браузере с возможностью экспорта в нормальные форматы (а именно латех и eps).
меня бы мой дипломный руководитель нахуй бы послал с твоей темой диплома.
Ты же нихуя не производишь, нахуй ты делаешь это? ДЛя галочки?
Тут поиск в queryset идёт по номеру страницы пагинатора, а мне надо по Id в бд.
r = request.get('http//example.com')
print(r.text)
Как проще всего перейти по нужной мне ссылке?
Ну типа я хотел захуярить ахуенную программку, которая бы чертила в реальном времени оптимальный путь для транспортного корабля с учетом рельефа дна, его проседания с грузом и без, погоды, пиратских рейдов и кратчайшего пути, но мне сказали что я за год это не сделаю и дали на выбор либо Железо точенное либо свою тему, а кроме этой программки у меня идей не было вот и слепил из говна идею.
имеется ввиду, что нужно не в ручную прописать request.get
а что бы скрипт сам искал нужную.
lxml и re?
1. c queryset можно обращатся как со списком
2. вопрос ебланский, ты хуй, потому что база данных не гарантирует тебе порядок строк, если ты сам не сделал сортировку
for el in data:
if data.count(data[el]) == 1:
del data[el]
return data
Не могу понять, почему индекс за границу вылезает?
Они интегрированы давно, в бс есть lxml парсер, в lxml есть возможность выполнения бс-стайл запросов.
Зачем? Делать регистрацию дичайше просто. Пилишь форму - делаешь вьюху - цсс хтмл хуита.
Это для тебя просто. А для страждущих? Тем более кто тебя ограничивает примером только такой фичи? Запили что-то покруче и расшарь!
Зачем тогда сайт, если можно сделать гитхаб от анонов и скидывать в репозиторий свои примеры приложений или фишек.
Приобрёл.
Боковая панель заебись. Мозайка - говно.
Это не стоит затрачиваемых на это усилий.
Абу, опять работу на анонов перекладываешь?
нет, гуглил и наткнулся на это
Но теперь у меня возник такой вопрос - нужен ли сейчас питон? Где и как применяется? Реально ли найти работу?
Специалисты выручайте.
Только за этот тред уже раза три спрашивали. Нужен. Везде.
И брать data[el] тоже - тоже будет аут оф рейндж. Если data - это не последовательность чисел с нуля.
Da.
forms.py
class UsernameChangeForm(ModelForm):
class Meta:
model = User
fields = ['username']
views.py
@login_required
def change_username(request):
if request.POST:
username = request.POST.get('InputNick', '')
if username != '':
form = UsernameChangeForm(request.POST)
if form.is_valid():
form.save()
return redirect('/success')
Отбой, сам допилил уже.
http://rghost.ru/7pCfw4hyf вот эту библиотеку. До этого никогда с ними не работал, накатайте хоть примерчик, буду благодарен. Там есть документация, но примеры на богомерзком C++
Ну и что? Библиотеки вроде без разницы же где юзать, не? Мне больше интересно КАК их юзать, блджд
Ты пхпшник штоль, или рубист? Нихуя не понял, нихуя не знает, но ДАЙТИ. Там не нативный питоновский код, надо ебаться через ctypes. Понимаешь? Оборачивать вызовы из этой dll в питон, делать биндинги, блять, ведь не получится юзать нативно. Не понимаешь? Как тебе еще сказать, чтоб ты понял?
https://github.com/jakiron/pyhik Вот смотри, вот так вот это вот все короче да. Блять
[/CODE]
Есть один список. Как вывести рандомные цифры (не больше 40), которых нет в этом списке? Заебался уже.
http://dpaste.com/06N7HEK
>рандомные
Ну добавь рандом перед принтом
>>>if random.randrange(0,2): print(i)
Ну дак выкладывай свои наработки с конкретными вопросами, мудило. А то очень похоже на "как написать игру штобы короче пиздато было".
Ну тип как таковых наработок пока нет. Спросил потому что может готовая хуйня есть. Пока есть только бд с резюме и надо форму для вакансий написать офк всё это хранить в бд, но как подбирать и советовать я хз.
http://ideone.com/3jZJwV
>пишешь три года и не видел веба
> а теперь такой дайте книжку по вебу.
>не пишешь на руби
>покпок ненужна
ясна-ясненька
http://pastebin.com/Mne6fxQe
Подскажите как его можно написать более красиво. Например, у меня команда пинг запускается несколько раз через while, чтобы показывать точки. По идее я могу написать "-c10" , и тогда while не нужен. Но тогда вопрос: как показать точки (что работа идет) и как сразу завершить, после первого успешного пинга?
это я понял. Как в питоне записать
Там прямо примеры были реализации очень большого количества методов на Python.
Может у кого есть? Может кто этим интересовался?
> Realoading
> if check_ping(router, count):
> if check_ping(test, count):
Дурак что ли?!
https://github.com/samuel/python-ping
бля, анон, тонны нефти тебе
Beautiful Soup показлся не очень шустрым, ксати
Желательна возможность скачивать страницу своими средствами (граб умеет, кстати, BS, тоже)
ЗЫ надо, чтобы её было не стыдно в продакшн совать и заказчикам на сервер пихать
я не это имел ввиду, наоборот, скачать с помощью aiohttp, а ему скормить, Граб вот по-дефолту скачивает, но можно ему и скормить скаченую.
u'skills': [u'python', u'javascript', u'django-framework'],
Вытаскиваю с помощью data['skills']. Получается однако ['python', 'javascript', 'django-framework'] , как избавиться от []?
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.comments',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.contenttypes',
'sorl.thumbnail',
)
Я читал документацию, у меня нет ошибки.
Странно, что на appfog все нормально запускается, а ошибка импорта только у меня на локалке.
https://pypi.python.org/pypi
https://github.com/vinta/awesome-python
пора бы знать такие вещи, первая для pip, другая вида awesome-технология (https://github.com/bayandin/awesome-awesomeness)
Надо искать как-то на github.com но как?
Я в душе не ебу.
Что значит "однако"? Что по-твоему должно получиться?
Убрать весь текст, оставить только пикчу и тему ПYTHOП
Ну так начните епта. Сделайте хуйню , которая позволит добавлять туда примеры кода и описания + ранить это всё для наглядности.
для того, чтобы начать, нужно уметь епта
Начну епта, может через полгода, для анонов будет помощь и для джангогоспод
Ну тип дело в том, что я бы этим занялся, но я в душе не ебу как реализовать автоматический запил новых кусков. Поскольку для этого нужно будет добавлять новые модели в бд делая миграции и все дела. В результате чего какая-нибудь гитхаб репозитория с папками проектов кажется более логичным вариантом.
Лучшая шапка в крестотреде, объективно лучше быть не может, глупо пытаться их переплюнуть, остается только сделать дело качественно, тогда, может быть, мы будем хотя бы на 10 % такими же охуенными, как они.
Ну если подойти серьёзно. Новичковую парашу можно попробовать убрать в первый пост треда, оставить охуенные ссылки на КОНТЕНТ и ПИЗДАТЫЕ ЛИБЫ, ну и типсы для не совсем зелёных. В начале треда нужна ссылка на предыдущий тред в похожем формате: "Прошлый тред: >>1234567".
Если текста больше нескольких строк можно приложить 2-4 картинки одинаковых пропорций (либо вертикальных) - в таком случае они находятся на одной линии. Текст при этом размещается под ними, а не висит в воздухе с 5 сантиметрами подкартиночнойпустоты слева.
Запостить тест шапки загодя на суд анона.
кастую гитхаб, в чем проблема, даже профит будет, самим пилить примеры по мере обучения и сливать туда, плюс прокачка скила ГИТа
Пилит CPython.
Процитирую Лутца:
Будет ли вас когда-нибудь волновать разница в скорости выполнения
программ, зависит от того, какого рода программы вы пишете. Python
многократно подвергался оптимизации и в отдельных прикладных областях
программный код на этом языке отличается достаточно высокой скоростью выполнения. 46
Глава 1. Python в вопросах и ответах
Кроме того, когда в сценарии Python делается что-нибудь «значительное»,
например обрабатывается файл или конструируется графический интерфейс,
ваша программа фактически выполняется со скоростью, которую способен
дать язык С, потому что такого рода задачи решаются компилированным
с языка С программным кодом, лежащим в недрах интерпретатора Python.
Гораздо важнее, что преимущество в скорости разработки порой важнее потери
скорости выполнения, особенно если учесть быстродействие современных
компьютеров.
Тем не менее даже при высоком быстродействии современных процессоров
остаются такие области, где требуется максимальная скорость выполнения.
Реализация математических вычислений и анимационных эффектов,
например, часто требует наличия базовых вычислительных компонентов, которые
решают свои задачи со скоростью языка С (или еще быстрее). Если вы
работаете как раз в такой области, вы все равно сможете использовать Python,
достаточно лишь выделить из приложения компоненты, требующие максимальной
скорости работы, в виде компилированных расширений и связать их системой
сценариев на языке Python.
Ну тип тут половина хочет ахуенный риал тайм пример. Мол типа зашел на сайтик, а там всё выложено от html до models.py на уровне бутстрапа.
Только у крестотреда такая шапка, на которую противно смотреть из-за мата и агрессии, и желание зайти в тред пропадает.
Матерящегося быдла на дваче и так хватает.
Делайте культурную и дружелюбную к новичкам шапку.
Толку то? Сделаешь вам шапку, вы её проебете.
У крестотредов оп - модер
Погулил больше бенчмарков. Ну, может ты и прав. Но все равно у питона местами репутация как у маленькой джавы.
У питона нет особо никакой репутации. Набор Scipy+Numpy+Python считается добротным инструментов в Machine Learning и Data Mining. Django считается удобным ORM фреймворком. Stackless Python юзается для ММО симулятора таблиц "EVE Online" в качестве Threading фичи ибо внезапно там каким-то хуем даёт фору си. При этом язык как бы красив и легок в вхождение, поэтому в нормальных вузах им заменяют старые курсы basic/pascal. Возможно репутацию подпортили всякие хипстеры, но они щас съебались в рельсы и GO, может быть уже ушли в Earlang. Посути щас в этой стране идёт тихий хайп по питону - все резко вкурили , что язык годный, но упоротость и дремучесть людей в этой стране заставляет их хотеть сайты на пхп и хуйню на джава, поэтому с работкой пока всё более менее хуево.
Заебашил репозиторий: https://github.com/2chPythonThread
Надо бы сделать как в пхп треде наверное https://gist.github.com/codedokode/58ebc90bd006baf4b35c
Комментарии по всему классу/функции хуяришь после def/class в виде """ Комментарий """, дальше указываешь с помощью # или """ """ места где что-то не так или очень сложно врубиться.
По поводу пробелов/разделений - байтоёбство. Между функциями и классами обычно 1 пробел. Внутри больше зависит от тебя самого. Считаю разумным выделять адовые куски пробелами.
>2chPythonThread
Ну бля, переименуйся как-нибудь беспалевно, я не хочу чтоб друзья воображаемые знали что я сижу на джваче.
Скажи им что ты просто нашел репозиторий на гитхабе и там был нужный тебе проект и он вообще годный все дела.
Во, самое оно. Теперь я прошаренным стилистом буду.
Да я б тебе за реализацию подобного отсосал бы.
http://ideone.com/XXmRbd - base
http://ideone.com/1vHSS4 - sidebar.
http://ideone.com/Eb7HbK - Работающий шаблон.
http://ideone.com/6r2tiD - Шаблон пидорас.
Мне кажется, тут будет применяться такая вещь как метапрограммирование. То есть нужны классы, которые будут создавать новые классы.
Пока у тебя ничего нет в репозитории, удали его и переименуй как нибудь, правда. Как минимум два человека уже просят.
Даже кой чего добавил. Давай перенесем на другой аккаунт, это же не сложно. Назови как нибудь нейтрально. PythonTutorialsAndPractices, например.
Naxyi on mne nyjen esli est {{STATIC_URL}}?
Это не очень название. Давай креатив включай. Изменить пара минут дела. Можете устроить голосовалку по этому поводу, а пока так побудет.
PythonForNewbies
PythonFirstStep
PythonDlyaDruzey
PythonForFriends
Назови из Монти Пайтона, раз гвидон в его честь назван.
[Python] Flying Circus
[Python] Personal Best
[Python] Total Rubbish
Python Night
https://en.wikipedia.org/wiki/Monty_Python и т.д.
Я бы назвал "Python's The Meaning of Life", но гитхаб не дает.
inb4, знаю, что очень глупый вопрос.
Начни изучение с названия
Начни изучение с названия
Комменты, которые там оставлены читал - не помогли.
http://djbook.ru/rel1.6/intro/tutorial03.html
http://ideone.com/XHhF0M
Или есть?
Сап, пр. Питон только недавно начал изучать, сейчас пытаюсь написать текстовый редактор и у меня возникла такая проблема: не могу найти способ вывести текст на бумагу, то есть распечатать. Надеюсь на вашу помощь.
Для начального уровня пойдет?
ну же антоши гляньте, ранее писали что на intuit попадаются годные курсы, хотелось бы мнение человека разбирающегося в питоне, а то не хотелось бы засорять голову ненужной(а то и вредной) информацией.
Это копия, сохраненная 3 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.