Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Аноны, я прочиталуже не в первый раз что try...except серьёзно затормаживает код, и в рекомендациях советуют конструкцию в обще не использовать в крупных проектах.
>>1733247 >Дурной стиль бросать и ловить исключения внутри одной функции Почему? Бывают же случаи, когда это нужно, например для всяких HTTP реквестов.
Как быть с ленью? Дрючу питон в рабочее время на телефоне, пишу куски кода которые мне нужны для основной программы дома, но придя домой мне становится лень переписывать то, что я до этого уже сделал. Как это фиксить?
Нихуя не понимаю, вот написал я себе простенькую програмку, дальше че? Хочу закинуть на рабочий комп где нет пайтона, как быть? Она же там без ide и самого пацтона хуй запустится?
В доках Джанги пишут что "джанго самостоятельно не работает с файлами". Лол что? У меня на локальной машине небольшой проект где некоторое количество png и svg иконок из папки /static периодически рендерятся в темплейтах. Через runserver все работало, когда я задеплою в сеть нужны будут дополнительные свистоперделки что ли?
>>1733281 Я не он. Отправляю запрос (доставка должна быть обязательно), ловлю Timeout на ответ от сервера, запрос уходит в очередь для следующей попытки доставки. Перед этим 3 попытки на доставку. В чем проблема? Или например ошибка SSL, ошибка логируется для разбора. Или API отвечает ошибкой отличной от 200 для указания того, что запрос по той или иной причине не был отработан.
При 200 в ответе JSON, при 400 надо просить response.text. Ну и по поводу замедления это херня. Уж лучше отловить Exception, отработать его, а не смотреть как колом встаёт. Все приложение.
>>1733330 Вот о чём. Дурной стиль внутри функции сначала порождать исключение, а потом его же внутри этой же функции ловить.
Исключения нужны для обработки нештатного поведения вызываемых функций.
При этом ловить исключение в функции, а наружу кидать уже новое, своё, как раз нормально.
Заменять исключения на какой-нибудь "return err" конечно не нужно. В питоне исключения поддержаны хорошо. Это не ускорит код.
Рекомендуют отказываться от исключений в некоторых компилируемых языках в ряде случаев, потому что if-else и специальные коды ошибок могут работать заметно быстрее.
>>1733336 >>1733341 Не, я не про это. Я в курсе что придется ставить скорее всего nginx + gunicorn/uwsgi, что значит "django doesnt serve files"? Мои изображения с диска не будут подгружаться или что?
>>1733222 (OP) Написал несколько утилит на питоне для работы с байтами. Что дальше чтобы подрасти? data science далеко для меня, веб и ml я уже рассматривал.
>>1733359 Не будут, тебе придется прописать url для статики, а в nginx'е прописать раздачу статики по этому адресу. Тот же момент с медиа-файлами, только ты их еще и загружать на отдельный сервер должен
>>1733390 В питоне нет перегрузки методов в том смысле, в котором есть в C++ и некоторых других таких языках.
В языках с динамической типизацией вообще сложно перегрузку реализовать.
В C++, когда ты обращаешься к функциям foo(int x), foo(double x) и foo(int x, int y) компилятор подставит вызов разных функций, которые внутри специально закодированы (mangling). В питоне в любом случае будет вызов одной функции по имени foo.
Сап двач. Вопрос по джанго. Значит у меня есть обычный юзер, и он состоит в команде(или во многих командах), команда это модель. Мне надо сделать чтобы данные для юзера фильтровались в зависимости от которого команды он зашел. Например вы есть в команде А, и вы загрузили документ_1 и документ_2, а также вы есть в команде Б и загрузили документ_3 и документ_4. И получается мне надо добавить в форму логина поле, где бы юзер указывал например код команды. И когда бы он в форме логина вводил код команды А ему бы отображались только документ_1 и 2 и аналогично и для другого юзера который тоже состоит в этой команде. Я понял мне это надо сделать через саб-домены и мидлвейр, но я хз как, и как такое гуглить. Да и сделать это без создания отдельных баз данных.
>>1733540 > И когда бы он в форме логина вводил код команды А ему бы отображались только документ_1 и 2 и аналогично и для другого юзера который тоже состоит в этой команде. В чем проблема отобразить не все документы пользователя, а только те, код комманды которых он ввел?
>>1733545 Да, только как это обработать. Типа добавить в модель юзера поле под код команды. И когда он логинится, то в это поле вводится значение кода, а когда логаут то это поле очистится?
Лол, в консоли написал from queu import Queue, затнм создал очередь: q = Queue(), написал q.get() и поток выполнения ожидаемо заблокировался (очередь-то пустая), пришлось прерывать исполнение через ctr+C. Только вот после этого интерпретатор вообще отказывается выполнять любые команды даже foo = 10. Поток выполнения блокируется и все, надо через ctr+C также его прерывать, чтобы это прекратить надо новый экземпляр интерпретатора открывать Это баг или фича?
Каким редактором или IDE пользуетесь для Python? Я вот всё никак не могу выбрать, хочется чего-то легковесного и без телеметрии. Остановился на Sublime Text, но она как бы стоит 70$, не совсем свободный продукт. А зная Microsoft и как они телеметрию в Win 10 встраивают, то VS Code наверное её пропитан повсюду.
>>1733551 Потому что захламлять сервер файлами, загружаемыми пользователями - хуевая идея, они должны храниться в отдельном от сервера хранилище и выдаваться оттуда же. Если пойти дальше до какого-нибудь докера - он тебя нахуй просто пошлет, когда ты будешь грузить файлы в контейнер.
>>1733540 Я бы добавил юзеру поле "active_team", устанавливал в нем нужное значение(при логине или когда тебя удобно) и по нему фильтровал. Там и кнопку "сменить команду" приделать не долго.
>>1733633 Ты можешь без анальных зондов и мокрописек с торрента ломануть лицензию сублим текста через хэш редактор, а можешь неограниченное долго пользоваться триал версией, максимальный срок её пользования нигде не оговорен.
Аноны, имею к вам вопрос. У жабы (мелкомягких, циско и т.д.) есть такая штука: экзаменация в оракле. Пара сертификатов дает тебе возможность найти работу по всему миру. Есть нечто подобное у питона?
Возможность - это не означает, что каждый обрыган, который имеет два серта, устроится стопудово. А в оракле и прожженный мидл охуеет от подъебок 808 экзамена, так что не каждый василий способен сдать
>>1733634 Уже сделал. Просто интересно, почему терминал повис. Вероятнее всего потому что хоть я и прервал операцию через KeyboardInterrupt, она все равно продолжила выполняться фоном и блокировать main thread?
Всем привет, не могу понять как работает этот код def tester(start): state = start def nested(label): print(label, state) return nested F = tester(0) F('spam')
прошло 2 года как по хиккански вкатываюсь. единственное что заметно - начал обрастать программами \скриптами которыми сам регулярно пользуюсь. база\органайзер\просмотрщик\аплоадеры на диски и тп, всякие игровые кликеры утилиты, перевожу кнопки на понадобившихся китайских прогах питончиком и тп. приучился дрочить в терминале на винде, с ффмпегом и шлюхами. потихоньку буду мамкин ноут ломать через смб на её пиратке. но что дальше?
>>1733991 F = tester(0) -> возвращает тебе функцию nested, которая принимает первым и единственным параметром строку. Этот параметр и есть label. Вот упрощенный вариант происходящего https://ideone.com/3XDKJc
>>1733042 → Потестировал на своей лагучей убунте, в итоге % ошибок с дедлоком вырос до 80, правда БД запустил в докере мб из-за этого. Но в общем добавлю try catch для дедлоков с повторным запросом к базе, в гайде Mysql по дедлокам они так даже советуют делать
>>1734082 >Есть полнофункциональные VS Code и Атом Для быстрого редактирования отдельных файлов лучше использовать легкий Sublime, а для всего остального есть IDE.
>>1734082 Начнем с того, что в отличие от перечисленных редакторов, вим работает по ssh, а значит, покрывает потребности девопсов. А кроме ssh он отлично пролезает через последовательный терминал, например, покрывая потребности разработчиков встраиваемых систем.
Продолжим тем, что если ты осваиваешь вим, тебе больше не понадобится, в принципе, ничего. Плагинами отлично догоняется функциональность до плюс-минус полноценной IDE, а если ты владеешь базовыми хоткеями и командами вима, ты сможешь работать на любой системе, в любом контейнере и в любом окружении, потому что вим скорее всего будет доступен там или по дефолту, или будет устанавливаться из репы (или там будет нано, но это уже отдельная тема).
Вим, конечно, не золотая пуля, но это такая штука, что если ты прошил себе в подкорке один раз все команды, то вряд ли тебе понадобится что-то еще. Не стоит делать громких заявлений, мой юный джуниор.
>>1734096 >Плагинами отлично догоняется функциональность до плюс-минус полноценной IDE Нет. Подсветку синтаксиса и дебаггинг напердолить можно, но огромного количества возможностей IDE в виме нет и никогда не будет. Если нужны исключительно хоткеи вима, то проще потратить пять минут и добавить их в IDE.
>>1734102 О, надо же, уже сообразили. Впрочем, выглядит как костыль. Насколько это ресурсоемко для серверной стороны?
>>1734104 Именно поэтому я написал "плюс-минус". Если сравнивать с каким-нибудь Qt Creator`ом, то понятно, что многих визуальных вещей там не будет. С другой стороны, все зависит от области твоей деятельности. Я, скажем, работаю по бекендам и встраиваемым системам. Мне никогда не нужно было ничего от современных IDE.
>>1734113 VS Code вроде можно и в браузере запускать, но я пока не пробовал.
А почему для сервера это должно быть ресурсоёмко? Фактически ты просто пользуешься сетевой файловой системой, а редактор работает на клиенте, тогда как вим ты запускаешь именно на сервере.
>>1734096 >в любом контейнере и в любом окружении, потому что вим скорее всего будет доступен там или по дефолту, Вот нет, и это тоже некоторая проблема. В большинстве контейнеров ВИМа не, его надо ставить дополнительно.
Я сам больше вимом пользуюсь, но это скорее в минус, чем в плюс.
>>1733721 >найс маняфантаззи Анон преувеличивает, но реально эти сертификаты действительно котируются. Циско точно, Оракл и от что-то от МС более-менее тоже.
Потому что они действительно гарантируют, что за тобой какие-то знания есть, в отличии от строчек в резюме.
По языкам программирования и открытым платформам, как Линукс, Постгрес, Докер и др. вроде ничего общепризнанного нет.
Собственно и не понятно что такое знать питон. Для какой-нибудь Джанги ещё можно было бы сертификацию придумать, но чисто для питона лишено смысла.
>>1734172 ну видимо лист компрехеншон не знает как сосать из скоупа класса(хуй знает это как называется). типа в данном случае лист компрехеншон это функция в которую не передают селф.
>>1733271 Это все хуйня для даунов. Если программировать в телефоне, то ослепнешь и станешь овощем за неделю. Если он хочет буковки сам вводить, без подсказок, то пусть в редакторе код пишет.
Написал небольшой скрипт, который из папки загрузок сортирует файлы по дате и расширению. Скрипт работает без проблем. Когда закинул его в автозагрузку, вспомнил, что он будет открывать консоль при запуске(и видимо переставать работать, если консоль закрыть). Узнал, что для предотвращения открытия cmd нужно запускать в расширении .pyw.
Но скрипт перестаёт работать, если поменять его расширение .py -> .pyw
>>1734213 >>1734214 Хоть я и решил это сейчас конвертацией в Windows based .exe, всё равно остаётся непонятным, почему скрипт перестаёт работать при смене расширения и запуске через pythonw.exe
Можно запустить .pyw через python.exe, но тогда консоль открывается так же, как при запуске .py
Анонче, стоит ли браться за kivy, или есть чего попизже? Где то слышал, что кто то жалуется на него, почему? И да, плохо, что рисовалки форм нет у него, но может допилят со временем, хз.
>>1734234 все эти ебаные деды прошедшие беспощадную школу андроида просто завидуют.
тут смотря в чем твои цели. Если ты хочешь найти работу - не берись. Если у тебе нужно писать простые приложения с минимум взаимодействием с платформенными фичами телефона, типовые приложения CRUD современной эпохи - берись.
>>1734234 Алсо, вместо рисовалки форм можешь пошукать программу KViewer. И даже, кажется, в стандартной демке можно просто набирать KV и смотреть как он отрисовывается.
>>1734243 >>1734246 Всем спасибо за ответы. Просто иногда хочется какой-нибудь гуец знать, что бы не дрочить консольку, как Нео. Да и тестовые задания на собесы присылали такие, что надо в гуе с кнопочками пилить. Но что бы этот гуй не вымер со временем и не пришлось опять какой то новый учить. Чисто один раз какой то один инструмент познать и всё, понимаете? Просто, что бы, если понадобилось, то всегда смог и это набросать, не обязательно суперсвистопердельный
>>1734275 > тестовые задания на собесы присылали такие, что надо в гуе с кнопочками пилить.
Тогда QT, guizero.
Все-таки, kivy держится только на мобилках и энтузиастах. Интерфейс десктопной виндовой проги будет настолько непривычен, что им будет страшно пользоваться.
Помню, чуть не охуел от прожигателя linux на флешку. Там НЕТ КВАДРАТНОГО ОКНА. Как это можно было придумать? Кто этот инопланетянен?
>«Лоуи полагал, что эстетическая привлекательность - это, по сути, баланс между двумя переменными: привычностью и уникальностью или, говоря на языке современной психологии, типичностью и оригинальностью; найти оптимальный баланс между этими двумя переменными значит создать наиболее коммерчески привлекательный дизайн.
В сущности, это означает, что делать десктоп на kivy нельзя, но мобильные приложения можно и нужно. И делать мобильные поделухи на QT, Delpi и пр неадаптированных для мобилы фреймворках тоже не стоит. Получится не принимаемая юзером какаха.
Какие-то отдельные вещи работают через sshfs, но еще ставят свое апи. Ну хз, понятно, что без этого никак, но я не в восторге от засирания целевой системы всякой цугундерной шнягой.
>>1734126 Если контейнеры собирал не джун с хлебушком в голове, то будут. Я с некоторых пор по дефолту во все контейнеры начал хуярить вим, нет-тулзы, стрейс и еще пару вещей по мелочи, и остальным говорю так же делать. Места занимает немного, а с учетом того, что у контейнера после деплоя может на быть доступа к репам, неплохо так спасает.
Сап гайс, хочу врулить в питон. Нашёл в интернете пару книжек. A Byte of Python норм? 150 страниц это совсем база для школьников хакеров? Или начинать и Лутца и его 1600 страниц? До этого имел опыт быдлокодинга на PHP в 16 лет, ООП не изучал, знаю примитив.
>>1734311 >A Byte of Python Нормас, если перекатываешься с чего то другого
мимо быдложабист
Пиздец конечно, в питоне дохуя чего по-другому. Массив - это значится по ихнему кортеж, фор используют в основном только как форич, нихуя не понятно, что за тип данных, ибо не подписано нихуя при объялении, но интересно
Сап. Вопрос больше по стилю. Раньше где то читал( или мне кажется) что assert в продакшен коде не есть хорошо. Что лучше проверть через try и тд. Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть?
Други, кто сталкивался: ебашу пересылку данных через ajax, все работает за исключением того что имя переменной почему-то меняется Кратко о сути: я отсылаю на бэк json data с одним элементом posts: data: {posts: [1,15,34]} Внутри posts собственно лежит массив с нужными мне id. Только вот на бэке эта переменная почему-то доступна не по имени "posts" а как "posts[]". Че это за хня? Почему джанго добавил эти сраные скобки в конце имени? Ппц с толку сбивает
>>1734460 Неа, бро, это жс. Тут кавычки вроде бы нужны, а вроде и нет. То же самое и с точками с запятой: вроде нужны, а вроде и нихрена, попробуй в каждой 2й строчке в рандомном васяноскрипте их убрать, с вероятностью в 80% скрипт запустится
>>1734344 Я заебался задрачивать джаву. Можно отдохнуть на питонехотя бы на лето? Прочитал зэ байт оф кодэ за пару дней, потыкал в клаву почти наугад, хуяк - запустилось и работает без говна. Написал пип инсталл pyodbc, просто первый попавшийся пример скопипастил - о чудо блять, вот оно, то, что я запрашивал из базы, работает сразу, карл, да я в жизни с жабой такого не видовал, что бы без запердоливания сразу работало всё! И главное - пиздец моментально всё ясно, как и чё куда работает.
Получил в джанго набор постов через posts = Post.objects.filter(id__in=ids) ids это список нужных айдишников, если что Как так же эффективно проверить что каждый полученный элемент из posts - принадлежит кому надо, то есть проверить условие post.owner == request.user ?.. только через цикл for?
>>1734605 all(map(lambda x: x owner == request.user, posts)) это пока все, что у меня на уме, нет возможности сделать это на низком уровне (на уровне бд)?
>>1734605 >Как так же эффективно проверить что каждый полученный элемент из posts - принадлежит кому надо, то есть проверить условие post.owner == request.user ?.. только через цикл for? Нахуя тебе еще раз итерироваться по выборке, если ты можешь просто отфильтровать сразу по владельцу еще?
>>1734363 Так запускал. Один и тот же скрипт, будучи сохранён как .py и запущен посредством python.exe работает, а будучи сохранён как .pyw и запущен посредством pythonw.exe- НЕ работает.
>>1734364 Проблема вообще не с автозапуском. Она возникает при обычном вызове через даблклик вне зависимости от директории.
Допустим, я делаю онлайн-игру. Соответственно, мне нужно хранить параметры пользователей. Как сделать это самым правильным образом?
Как я рассуждал: - при регистрации создаётся объект класса player, в таблице реляционной добавляется запись с идшником этого игрока. Отсюда ещё вопросы: - как возвращать пользователю параметры актуальными всегда? При любом действии игрока делать запрос к бд? Звучит не очень производительно.
>>1734706 На сервере держать всё в структурах с перидоическим сбрасыванием в базу. Можешь пользоваться редисом, он ебово быстр. Вообще, большинство любых проблем решается редисом. Базарю, ещё захочешь.
>>1734804 Для кеширования используют, как элементарно навешиваемый вариант, как раньше был мемкешед, но он элементарно навешивается и на другие задачи.
>>1734805 При чем здесь это, если при малейших проблемах с сервером из-за которых ебнется редис ты рискуешь проебать часть данных? Как хранилище какое-то промежуточное хранилище - отлично подходит, но не как полноценная БД
>>1734706 InMemory table для того кто присоединился к серверу.
Только выбери SQL подходящий, точно не MySQL. Касательно Redis годная идея. Игрок присоединился - сливаешь все в redis из SQL, а данные в SQL повременно сохраняешь в бэкграунде.
>>1734456 > эта переменная почему-то доступна Потому что нехуй дергать Джангу. Посмотри на FastAPI и Pydantic. Там хоть понятно какой объект получишь из JSON.
>>1734804 >Ты ммо там мутишь, что ли? И да, и нет. Но это так, пет-проект, в свободное время занимаюсь. Из-за отсутствия опыта и специфики проекта сталкиваюсь с тем, что вопросы почти не гуглятся, а основные проблемы возникают именно с построением архитектуры
Это больше к верстальщикам наверно но все же касается Джанги и ее темплейтов У меня картинка практически слитно идет с последующими текстом, на пикриле видно. Как "отодвинуть" текст немного вправо? В html конструкция вроде этой:
https://ideone.com/9WX9Yw От нечего делать наваял мини-игру: надо на время угадывать числа, а машина говорит, больше или меньше число надо назвать. Игра идет параллельно с секундомером, который выводит в stderr текущий обратный отсчет. Проблема в том, что в консоли stdin и stderr перекликаются, отчего происходят ошибки. С чего бы это?..
(код надо скопировать и у себя запустить, в браузере работать в любом случае не будет)
>>1734953 https://ideone.com/t6RDmV Вот рабочая версия. Там через очередь получаем это число и в stderr не выводится время, так что крашиться нечему, но все же: почему выводы "перемешиваются" в предыдущей версии?
>>1733222 (OP) Как же я ебал ваш Postgres, сука... идите нахер, все кто заверяет, что это лучшая СУБД Пытаюсь провести обычную миграцию: создал модель Pic и засунул на нее ForeignKey в уже существующую модель Relation. Каков результат? ОШИБКА: столбец news_relation.img_id не существует Триггерится он именно на поле img = models.ForeignKey(to='Pic', on_delete=models.CASCADE) которое я создал внутри Relation, видите ли какого-то img_id ему не хватает. Пробовал ставить дефолтное значение - ему похеру. И такое уже блять не в первый раз. Просто ну его нахуй
Есть знатоки? Вкатывают в асинхронность, в материале подается через сокеты, и уменя именно к ним вопрос: строки 27, 29 Допустим, кто кто установил с нами соединение и послал сообщение Мы ответили ему хелоуворлдом Но елды не обращаем внимания, будто нет Мы вернулись в начало цикла - но клиент ничего нам не присылает Мы ничего же не получаем, полему соединение не закрывается?
>>1735050 >Мы ничего же не получаем, полему соединение не закрывается? А почему соединение должно закрыться, если ты его не закрываешь?
Соединение закрывается только в том случае, если был послан специальный tcp-пакет "закрыть соединение".
Отдельная магия есть с пакетами keep alieve и другими.
И ещё, не стоит особо ударяться в селекты в 2020, если ты только именно эту тему изучить не хочешь. Это такой откровенный low-level legacy, сейчас на практике так писать нельзя.
Тебе надо смотреть на asyncio. Глубоко в кишках там те же селекты плюс-минус, но тебе об этом знать не надо.
А asyncio три механизма работы есть, и какой-то аналог селектов, и так называемые протоколы, и совсем высокоуровниевые конструкции. Я бы советовал "протоколы" глянуть в первую очередь, вот для таких задач, как у тебя. Селекты-сокеты уже для самообразования, а не для практики, в том числе в asyncio.
>>1735057 >Тебе надо смотреть на asyncio Да, к этому и иду, просто через генераторы к async\await а там и asyncio/aiohttp >А почему соединение должно закрыться, если ты его не закрываешь? Логично.Получается, 27 строка заблочит поток выполения, и будет ждать, пока что то не придет? Зачем тогда вообще проверка if not request?
В комнате, в которой заседал президентский совет, были стулья на 4 ножках и табуретки на 3 ножках. Когда все члены совета расселись, свободных мест не осталось, а всего ног у сидящих и у сидений оказалось 39. Сколько было стульев и сколько табуреток?
>>1734981 Пробовал и так и сяк. Все равно херня выходила. Почему? (а хуй его знает) Помогла ручная правка файлов миграций, пришлось создать там поле явно, а в следующей миграции его изменить
Пусть в комнате было x стульев и y табуреток. Составил уравнение для количества ног и ножек. 2 (x + y) + 4x + 3y = 39. Раскрой скобки и приведи подобные. 2x + 2y + 4x + 3y = 39. 6x + 5y = 39. Вырази x через y. x = (39 - 5y) : 6. Путём подстановки вместо y натуральных чисел, начиная с единицы, подбери такое значение, чтобы x тоже оказалось натуральным целым числом. x = (39 – 5 1) : 6 – не подходит. x = (39 – 5 2) : 6 – не подходит. x = (39 – 5 3) : 6 = 24 : 6 = 4. Выполни проверку 2 (3 + 4) + 4 4 + 3 * 3 = 14 + 16 + 9 = 39. Ответ: в комнате было 3 табуретки и 4 стула.
>>1735084 Вообще проще. По условию, все стулья и табуреты заняты. Если предполагать, что у всех сидящих по две ноги, то ноги+ножки это либо 5, либо 6.
Итого, уравнение вида 5x+6y=39
Пишу слёту, не проверяю, могу налажать: for x in range(39//5): ____if (39 - 5*y) % 6 == 0: ________print("Possible solution x = {}, y = {}".format(x, y))
вот тут редис советует в онлайн игру, ну сервер - клиенты понятно. А если я на локальной машине пилю, и у меня поделенные сектора мировой карты обрабатывают отдельные процессы, что лучше использовать для таких целей? Для взаимодействия и хранения карты с общим доступом? Queue или лучше какой апи отдельно? Я тут klepto нашел, и там есть hdf5 словарь-файл. Стоит ли сразу на хдф5 переводить карту мира, или в итоге передача данных через Queue будет быстрее?
>>1734451 > Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть? Вангую, что у них нет код ревью либо же там сидят говножоры которые пишут на 20 языках, ни одного не зная толком, и хуярят как хотят.
У меня вот вторая ситуация была, когда у нас появился новый разраб, который знает ГО/ПХП/С++/Реакт/Юнити/Питон, и какой же сука адок он писал.
>>1734451 >Раньше где то читал( или мне кажется) что assert в продакшен коде не есть хорошо. Что лучше проверть через try и тд. >Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть? Нормально. Не слушай талмутистов. Для них всё говно, что не соответствует трактовкам каких-то других талмутистов-самоучек.
>>1735225 >там сидят говножоры которые пишут на 20 языках, ни одного не зная толком, и хуярят как хотят. Например assert очень активно используют в основных библиотеках самого питона. Их пишут и ревьювят те, кто считается, что питон более-менее знает.
>>1735243 Это от автора канала Диджитализируй? Он же это для начинающих советует, лол. Я далёк от знания рынка, но вполне очевидно, что у знания какой-то технологии есть уровень сложности. Понимать основы всего стека в списке и быть профи в этом - разные вещи.
>>1735307 Спасибо! Как раз на такую вилку и рассчитывал. >>1735311 Он говорил что эти знания не для конкретно джуна, миддла или синьора. Чем больше знаешь из этого списка - тем ты круче.
>>1735232 > Например assert очень активно используют в основных библиотеках самого питона. Их пишут и ревьювят те, кто считается, что питон более-менее знает. Использование асертов, глобалок, построение логики вокруг try/except - не лучший подход и тактика, в большинстве случаев можно очень удобно обойтись и без этого. То что это юзается в основных либах питона, не говорит о том, что это лучшая практика.
>>1735348 > >асертов > А тесты ты как делаешь лол? открою секрет: под капотом unittest и ему побоных сидят те же ассерты Речь не про тесты, в тестах понятно что на этом все построено. > >глобалок > Даже ФП не запрещает глобалки. Оно запрещает изменяемые глобальные состояния А кто запретит юному еблану изменить глобальную переменную локально? Глобальные переменные - зло. В погромировании много что не запрещено, но есть методы которые не без оснований считаются не лучшим подходом и это один из них. > >try/except > Настолько же базовый прием как и цикл for, очнись На столько же базовый, да, на столько же не рекомендуется он для построения логики вокруг него. Эта штука отлично используется по прямому назначению - отловить ошибку и сделать безопасное завершение куска логики.
Можно делать все что угодно, что не запретит компилятор, но адекватность, красота, удобочитаемость, поддерживаемость некоторый решений вызовет трудности. Вот и все, собственно.
>>1735080 Возможно ты создал первую одновременно, оно упало, т.к. пыталось сделать внешний ключ перед созданием модели. Потом ты попытался по другому, но файл миграции с прошлой попыткой остался и оно все время пыталось применить его перед следующими изменениями.
>>1735360 Ассерты полезны для того, чтобы проверить, например, корректность передаваемых типов данных в функции и сами значения, то есть ошибки уровня "компиляции". То есть когда функция используется некорректно. И некоторые схожие вещи.
Их плюс в том, что они просты и лаконичны. Ассерты можно отключить, это и плюс, и ограничение. В случае if-throw код нагроможенный будет, тебе надо ещё как-то определиться и задокументировать исключение, логика не понятна.
Заведомо плохая идея ассерты для ошибок рантайма использовать - хотя бы потому, что их можно отключить.
>А кто запретит юному еблану изменить глобальную переменную локально? >Глобальные переменные - зло. Это проблема еблана. Он может и методы в классе переписать, и много чего ещё. И проблема питона, в котором нет констант.
Переменная - это то, что меняется. Плохо глобальное состояние, которое может меняться из нескольких мест. Потому что сложно логику изменения состояния контролировать. Причём не важно, напрямую ты переменную меняешь или через какой-то метод, проблема общая. Хотя метод чуть проще контролировать при необходимости.
>>1735371 >Заведомо плохая идея ассерты для ошибок рантайма использовать - хотя бы потому, что их можно отключить. Посмотрел, при этом и для типичных рантайм-ошибок активно используют ассерты в стандарной библиотеке.
Вообще, ассерт это лишь кратная форма проверки + выброс исключения. Но в одну строку и с понятным типом исключения. Ассерт не меняет логику кода.
Спич был о том, что талмутизм плох. Когда утверждают, что чем-то пользуются только неучи, это скорее плохо говорит о самом утверждающем.
Есть какие-то практики оформления кода, что хорошо, а что плохо. Повод задуматься почему, нужно ли в данном месте или нет, может лучше можно сделать. Но некоторые ударяются в религию и буквально следуют услышанной истине, и там п-ц обычно начинается.
Самая клиника - это фанатичные радетели за чистоту коду.
>>1734304 Причем тут жабамразь, ты просто тупой. В первом случае ты в list comprehension передаешь аргумент функции, а в другом игноришь переменную от list comprehension и используешь несуществующий аргумент.
Как работают авторизация и аутентификация на веб-сайтах и в мобильных приложениях, которые хранят данные на сервере. Кстати, разницу между авторизацией и аутентификацией тоже надо понимать.
В идеале вы должны уметь настроить механизм сессий без веб-фреймворков, просто чтобы понимать, как это всё работает под капотом вашего любимого фреймворка, того же Django. Чтобы у вас было настоящее понимание о том, что там никакой магии не происходит.
Эмм... и как же работает аутентификация или сессии под капотом? Для меня это магия
>>1735902 Работает очень просто. Создаётся при авторизации ключ и его окончание времени жизни(записывается на сервере), этот ключ хранится у клиента в кукисах, при каждом запросе клиент должен передавать этот ключ для проверки на сервере. Сервер хранит инфу по этим ключам в памяти и при запросе от юзера проверяет наличие данного ключа и его актуальность(не сдох ли), если жив, то даёт доступ, если нет - 403 ошибка. Вангую, что есть ещё какие-то периодические проверки этих ключей, шоб в памяти старое говно не хранить, во фреймворках всяких.
>>1735902 авторизация это просто проверка прав на конкретное действие, в rest-фреймворках вроде DRF в классах-контроллерах просто определяется permissions, каждый из который является кастомизируемым классом. В самом даунском варианте это проверка: if object.owner != request.user: raise 403Error
аутентификация - процесс "логина" в системе с помощью credentials, хуй знает что там именно происходит, но писать свою аналоговнетную аутентификацию как правило не имеет смысла
Кто-нибудь может пояснить за потоки, процессы, асинхронность в питоне? В чём вообще разница между этими хуйнями? Особенно нахуя нужна асинхронность, если это теже потоки.
Что произойдет ели на одном серве я запущу несколько проектов, в каждом из которых юзается Celery? Я ж во время настройки указываю переменную окружения, засовывая в нее ссылку на файл settings моег опроекта:
Здравствуйте! Подскажите, пожалуйста, вот можно писать бота для всяких социалочек на джанго, создается апп в нем папка managment/commands и запускается потом приложение по той команде которую определили ему в этих командах, на сколько я понял из информации в интернете. А как его поцепить рядом с сервером? чтобы файл бота исполнялся вместе со стандартной runserver?
Часто требуется сохранять много однотипных страниц для последующей обработки. Как бы это делать оптимально? А то я сжал 7зипом 2 гб в 25 мб и слегка охуел. В принципе, можно в какую-то key-value базу пихать гзипы, но это тоже не идеал.
Товарищи, тут такая проблема. У меня есть претрейнед модели для распознавания ретина и йоло и код спижженный из интернета. Но оба файла моделей не распознают знак аварийной остановки. Треугольнык который ебаный. Как доучить?
>>1736142 Ну вот типо есть aync def g(), в котором await f(). И пока f() выполняется, допустим секунд 10, то типо работает тот код, который вызвал g(). Но как он работает? В отдельном потоке? Но тогда, для какой функции создаётся отдельный поток, когда он создаётся, и вообще, в питоне же есть GIL, которая кладёт хуй на параллельность. Почему тогда код с await должен выполниться быстрее?
Ну и ещё, как я понимаю асинхронность пригодна только для выполнения запросов к серверу?
Билеты в кино: кинотеатр установил несколько вариантов цены на билеты в зависимости от возраста посетителя. Для посетителей младше 3 лет билет бесплатный; в возрасте от 3 до 12 билет стоит $10; наконец, если возраст посетителя больше 12, билет стоит $15. Напишите цикл, который предлагает пользователю ввести возраст и выводит цену билета.
Решил сделать так - message = input("Print your age") message = int(message) if message < 3: print("Price = 0$") elif mes == [3, 12]: print("Price = 10$") else: print("Price = 15$")
Но после второй строки терминал выводит ValueError: invalid literal for int() with base 10: '' Чяднт? И как можно иначе написать цикл?
>>1736229 Мне-то вообще на неё посрать, но некоторые таки просто текут, когда выходит новый хуйнянейм фреймворк, на 5% быстрее, по которому нихуя документации нет, и сам он вчера вышел, и бегут всё на нём переписывать.
Но тут типо, используются потоки, то это равносильно обычному коду, и потоки по сути не нужны.
>>1736219 Нет, идея асинхронности в том, что есть специальный цикл выполнения заданий.
Для тебя, как для разработчика, логика в том, что твой код работает последовательно и в один поток, переключение исполнения возможно только в тот момент, когда у тебя в коде будет await (на самом деле чуть сложнее).
В тот момент, когда ты делаешь await (точнее await для future-task, но пока не существенно), в этом момент asyncio лезет в цикл заданий и смотрит, что там у него в очереди, и переключается на следующую задачу.
Соответственно, если в твоём коде сложная вычислительная логика, которая исполняется 10 секунд, и нет асинхронных вызовов, то эта задача так и будет исполняться 10 секунд, ничто её не прервёт, остальные будут ждать.
В этом ключевое отличие от обычной многопоточности. Там переключение происходит в случайный момент времени. Из-за чего возникают проблемы синхронизации, race conditions и т.п.
Как и многопоточность, асинхронность нужны для того, чтобы одновременно вести несколько потоков исполнения. Это не обязательно про производительность. Представь, что ты чат делаешь, где несколько клиентов к серверу подключены. Тебе их надо всех слушать и перекидывать сообщения от одного другому. Тут или многопоточность, или асинхронность.
>>1736305 А если допустим есть две async функции A и B. Как я понимаю, в функции A дойдёт до await, запустится функция B, в ней тоже дойдёт до await. А потом? Программа будет простаивать, пока не завершится один из await? Допустим, в функции B await завершился. Получается, после этого выполнится оставшийся код функции B, а затем основной код будет ждать, пока там доработает await в A, функция A, программа на этом завершится?
>>1736319 Оператор await означает "ждать результата функции". Ты можешь, в принципе, запустить функцию и не ждать её результата, например как asyncio.create_task(some_function())
Идейный смысл оператора await - это "здесь я жду результата функции, при этом разрешаю в это время запустить другие потоки исполнения".
>>1736340 А если в ней внутри будет что-то вроде "много много вычислений"?
Допустим, такую функцию эвэйтят из функции A. На месте await управление тоже переходит к функции B? В которой вызывается await для ещё одной функции со множеством вычислений. После этого начинает наконец-то выполняться кода для функции, вызванной из A? Потом для функции, вызванной из B? А потом завершается функция A, функция B?
>>1736348 Но ведь в то же время вся асинхронность работает в одном потоке?
Тогда сразу же за "ждать результата функции" должно начаться собственно само выполнение этой функции. И тогда получается что во всём этом нет смысла. Или вы это время выполняться начинает какая-то левая функция, а выполнение ожидаемой функции отложено на неопределённый срок?
>>1736358 Асинхронность работает в одном потоке процессора, но внутри программы может быть несколько логических потоков исполнения. Одновременно работает один. Но потоков несколько. Периодически какой-нибудь приостанавливается, и отдаётся управление другому потоку.
Особенность async-await в том, что переключение возможно только в момент await (не всегда, чуть хитрее, тут подводные камни есть). В то время как в случае обычного threading исполнение может в произвольный момент времени переключиться.
Оператор await нужен для того, чтобы логика твоего кода смотрелась синхронной. Чтобы не было того callback-ада, как это на JS бывает, если не пользоваться там async-await, которые появились далеко не с начала.
>>1736363 Вроде начинаю понимать. Просто до этого было впечатление, что у этого всего есть только два варианта использования. Либо await asyncio.sleep(10), либо await request.get(google.com) а остальное смысла не имеет.
Так получается, в точке, где стоит await, поток выполнения может перейти на любое другое место в коде?
Т.е 1) может начать выполняться другая async функция с самого начала 2) может начать выполняться код после await где-нибудь в другой асинхронной функции, которая собственно уже выполнилась до await, и то, что было внутри await, в ней тоже выполнилось 3) а может начать выполняться какая-нибудь функция, которая раньше не выполнилась, т.к. перед ней стояли await, и на этом месте поток выполнения переключился
А асинхронная библиотеке для реквестов содержит что-то системное, и на самом питоне такое написать нельзя? Там типо к функции запроса периодически возвращается поток выполнения, и проверяет, не завершился ли запрос?
>>1736412 Остальное ок. Не ебу как именно устроено aiohttp (или другая библиотека для запросов) внутри, но почти все библиотеки питона синхронные и просто будут блокировать тебе исполнение асинхронного кода (пока ты не перейдешь на их асинхронные аналоги). Они и так на питоне, просто выполняются синхронно и блокируют выполнение.
>>1736384 Исполнение кода любой функции, вызовов других функций, запуска задач через asyncio.create_task и др. идёт синхронно, не прерываясь, до тех пор, пока не встретиться await.
Причём специфика питона, что await должен быть для future-объекта (функция возвращает объект такого типа). Как только это происходит, исполнение блокируется и передаётся в менеджер по обработке задач. Этот менеджер смотрит на другие задачи, которые стоят заблокированные, и решает, кому передать исполнение. После чего та, другая, задача разблокируется. Примерно так.
future - это специальный объект, который может находиться в состоянии "ожидание" и в состоянии "завершён". Это то, что там происходит под капотом.
То есть идея проста. Есть задачи. Есть менеджер, который переключает задачи. Переключение с задачи А на задачу Б может произойти только в тот момент, когда задача А разрешит. Для этого она блокируется в месте вызова с await, и исполнение переходит к Б. Потом через какой-то момент Б делает тоже какой-то await, и исполнение переходит к А опять, она продолжает работу из заблокированного места, если там, конечно, результат уже готов.
Блин, подскажет кто как правильнее работать с Гитом: находясь на даче где фактически не было интернета, дописал код в некоторых файлах, а пару новых файлов еще сверху докинул Пришел домой, скопировал файлы в папку с проектом, заменив предыдущие, только хотел сделать git push, как он мне говорит что push rejected. Походу ему что-то не понравилось из-за замены доков. Как быть-то? Как файлы проекта объединять?
>>1736191 Ну так архиваторы и эффективны там, нде очень много очень похожих данных. А вот если ты будешь сжимать фапапку, в которой джипеги, пнг, гиф, мп4, вебп и вебм, то вообще не выставляй сжатие, его не будет.
Можно ли в питоне перехватывать события как в жс? В dom-документе например можно поставить событие onclick="myFunction()" на любую button и когда юзер нажмет на нее, то запустится установленный коллбэк. А есть события по типу onkeydown которые срабатывают (внезапно) при нажатии на клавишу down Как перехватывать такие события в Питоне? Про gui я пока и не говорю, как в терминале перехватить событие по типу onkeydown? Единственное что я видел как перехватывается и обрабатывается это ctr+C но это стандартное клавиатурное прерывание для интерпретаторов
>>1733222 (OP) Устанавливал кто левые пакеты js внутрь своего веб-приложения? Как это работает? У меня есть приложуха на Джанге, как и куда установить дополнительный жс-пакет, который мне нужен? Допустим я сделаю npm install, но как потом использовать его скажем из файла index.js, лежащего в /static?
>>1736652 >Про gui я пока и не говорю, как в терминале перехватить событие по типу onkeydown? А, если про это, то смотри на всякие curses и т.п. терминальные вещи. В принципе это возможно, но есть зависимость от ОС и терминала, и не очень красиво это.
Логика работы с терминалом сильно отличается от логики работы в браузере.
Есть функция вычисляющая и отображающая на графике рост населения в указанный промежуток. Мне нужно чтобы выводился год когда население перескочило отметку, допустим, 4.5 миллиарда человек, но ничего не выводится..
import matplotlib.pyplot as plt from math import pi, atan def arcctg(x): arc = pi/2 - atan(x) return(arc) def population(t): N = 172/45 arcctg((2000 - t) / 45) return(N)
a = int(input()) b = int(input()) n = 100
h = (b - a) / (n - 1) x_list = [a + h i for i in range(n)] f_list = [population(x) for x in x_list] line = plt.plot(x_list, f_list)
#Вот тут ничего не выводится for x in x_list: if round(population(x)) == 4.5: print(x)
>>1736593 7z, насколько я помню, умеет строить словарь не для каждого файла отдельно, а общий. Благодаря этому заметно больше эффективность сжатия большого количества мелких однотипных файлов.
Но это и проблема, потому что для того, чтобы извлечь один файл, архиватору надо просканировать весь архив.
zip-архив - это в некотором роде файловая система, в котором лежат упакованные файлы 7z-архив - это скорее файловая система, упакованная в архив. То есть последовательность другая.
В принципе юниксовые tar + gz/bz дадут аналогичный эффект, как и 7z.
>>1736154 >А то я сжал 7зипом 2 гб в 25 мб и слегка охуел. А что будет, если сжать обычным зипом? Или gzip, если в линуксе работаешь? Возможно ты и так получишь очень хорошее сжатие, пусть и меньше, чем 7z. Если ты сожмёшь с 2 гб до 200 мб вместо 25, это всё равно имеет смысл, но ты сможешь упаковывать и распаковывать файлы прозрачно, налету.
>>1736705 >population(x) >= 4.5. Если округлять, то брать модуль разности. Точнее, в случае, если ты хочешь выделить специфичную зону, то самое правильное делать if 4.5 <= population(x) < 4.6:
И читаемо, и лишний действий нет, и достаточно гибко.
Но тоже багоёмко, поскольку ты выделяешь зону, а не границу.
Условно, у тебя в один год может быть 4.43, а на следующий 4.66? и всё, зона утеряна. Поэтому тебе, скорее всего, надо именно искать больше, а потом сразу выставлять флаг, что зона найдена.
>>1736699 Да это всё понятно, это т.н. солид архив с большим словарем, всё жмется как один большой файл, грубо говоря, так что все повторения, коих большая часть в хтмл, легко ужимаются. Гзип же просто последовательно жмет скармливаемые ему данные. Вот хотелось бы что-то среднее, лол.
Аноны, подключчил, значица тинькофф апи, получаю через стримминг (Streaming) японские свечи (объем, максимальная цена в свече, минимальная, уена входа в свечу, цена выхода), внимание вопрос: Как то можно данные из стриминга выковыривать? Например цену входа и выхода сохранять в список?
Господа, нужна помощь, написал простенького бота, что бы голд получать в игре небезызвестной,(но не в корстных целях, просто опробовать себя). Так вот суть, бот агрит мобом и собирает лут, координаты приходится костыльно выставлять. В голове есть идея, что бы он на клике по мобу записывал координат и потом (якобы) проводил прямую к моему персонажу, но не доводил до конца а останавливался где то радиусе, приблизительно, 100 пикселей. Вроде пытался через мат уравнения решать, но не получилось. Помогите конченому найти путь к истине
Анон, насколько глубоко нужно знать python (именно сам язык, не фреймворки) чтобы устроиться миддлом? Я про стандартную библиотеку и разные питонячьи особенности языка.
Так блин, решил залезть в этот ваш питон чтобы наваять по-быстрому говно для бэка на flask или django В темплейте закинул <script src"/main.js"> а после запуска браузер мне пиздит что такого файла якобы нет. Че это такое?
>>1737048 если надо по быстрому, то лучше использовать то, что знаешь а так скорее всего не указал серваку откуда брать main.js , мб надо указать путь к статике или типо того
>>1736809 долбоеб не умеет в printscreen зато ебашит торгаша, спешите видеть. >>1737058 А откуда фреймворк об этом знает, ебобобо? Так и напиши что SRC там-то, TEMPLATES - там-то.
>>1737048 >а после запуска браузер мне пиздит что такого файла якобы нет Для начала проверь в консоли браузера, к чему он пытается обратиться. И проверь, что будет, если попробовать выкачать этот url.
Вопрос в настройке статики. Тут есть немного магии, своя в зависимости от фреймворка.
Не пойму нихрена. Есть функция на проверку айпишников. Почему в винде все айпишники в локальной сети, даже несуществующие возвращают result.returncode == 0 и соответственно True, а в линуксе всё отрабатывает без проблем и не сущестующие айпишники в локальной сети выводят False.
Внутри модуля index2.js обычная конструкция: import {Sortable} from './@shopify/draggable'
При подгрузки страницы браузер в консоли выдает мне ошибку: Loading module from “http://localhost:8000/static/@shopify/draggable” was blocked because of a disallowed MIME type (“text/html”). Кто-то сталкивался? Погуглил, но там все вокруг Ноды-жс вертится, а у меня Джанго... Че это за хрень?
>>1737383 Апдейт: убрал багованный импорт, рандомно потыкал пакеты из node_modules, засовывая их в <script> и раз на 20й все внезапно заработало Теперь могу официально именовать себя жс-разработчиком
>>1737386 Че? Вообще хуй знает что это, гордому жс-боярину не пристало мараться о такое
>>1737413 На самом деле, технические вопросы примерно такие же. Свежие выпускники без опыта точно так же могут отвечать на сложные вопросы.
В случае middle-разработчика помимо технических знаний ищут человека, который может работать независимо, сам при необходимости выставлять приоритеты, создавать и брать ответственность за части продукта. Часто у тебя есть список тем, которые ты в продукте знаешь лучше всех, можешь ввести кого-нибудь в курс дела и обсудить с бизнесом расширение существующей функциональности.
В случае senior-разработчика ответственность, технический вклад и нововведения выходят за границы одного тебя. Ты начинаешь определять, что будут делать другие люди (если ты захочешь стать синьором, увеличивая масштабы деятельности), либо как другие люди будут работать (если ты захочешь прославиться сильными техническими решениями). К примеру, в портфолио у тебя может быть история о крупной работе, которую ты предложил (либо взялся за существующую нечеткую идею), спроектировал, координировал выполнение с другими людьми (возможно и делегировал) и несешь теперь за свое решение ответственность.
Соответственно, помимо технических вопросов, которые так или иначе проверяют аутентичность твоего опыта, стоит ожидать наводящие вопросы, которые помогут "той стороне" понять, обладаешь ли ты перечисленными качествами и как ты их применял. Существуют, конечно, ситуативные вопросы-маркеры, по которым можно судить о твоем опыте, однако ко всему не подготовишься. Самый простой способ - это пытаться соответствовать картинке, которую ищет работодатель. Влазить в новые темы, предлагать идеи, воплощать их, и т. д.
Ну и иногда под этими лычками можно ожидать просто вопросы про достаточное или экспертное знание какой-нибудь технологии. Тут уж зависит от того, зачем им разработчик и насколько все в огне.
>>1737451 Антон, немного странный вопрос: Есть ебо-продуктовая компания, на 20 человек, основной упор на мобилку и юнити, есть 1.5 бэкэндера(я среди них). Задачи простые, типа добавить модели в БД, подключиться к апи и выкачать данные для маркетинга, запилить новые простые сервисы. Я вроде как мидол и собсна вопрос: есть ли, в таком контексте, шанс вырасти или лучше бежать и искать что-то лучше? По ЗП все ок, но вот унылые таски..
>>1733222 (OP) Почему, когда в PyCharm я юзаю дебаггинг, то выскакивает ошибка "pydev debugger: process 30524 is connecting" (число может меняться). Как избавиться от неё, чтобы дебаг работал нормально? Пикрил.
>>1737495 Где пиратские сканы Лутца 5 издания? Постоянно использую Седер_Н_Python_Экспресс_курс_3_е.pdf в качестве шпаргалки. Ничем особенным не выделяется, но маленькая и не перегружена подробностями. Неплохо держать под рукой навигационный справочник рецептов : Бизли Д., Джонс Б. К. Python. Книга рецептов / пер. с анг. Б. В. Уварова. – М.: ДМК Пресс, 2019. – 648 с.: ил. (не скан) Так же был удивлен, что вместо кучи книг по pandas, лучшей оказалась самая древняя от самого создателя pandas Маккинни_У_Python_и_анализ_данных.pdf (скан, ) (вообще в pandas 1.0 кучу слегка поменяли интерфейсы и ряд примеров не заработает)
>>1736817 >json же, не? Какой джэйсон, это стриминг. Видос отклеился. Эти строки ежесекундно появляются с изменениями непрерывно в течении всей торговой сессии.
>>1736811 Да какой там. Хотя бы сигнализатор для начала нормальный написать бы. А вообще задумки кое какие имеются, но без фанатизма.
>>1737557 У тебя твой "стриминг" печатает в терминал какой-то получаемый из апи объект, в виде справочника (dict). В чём проблема доставать из справочника нужные тебе цены? out = { \t'Цена открытия': dict, \t'Цена закрытия': dict[c] }
>>1737579 К сожалению ты слишком туп. Все просто было бы сделать через threading. Один тред слушает входящие данные, второй парсит, третий пишет в бд или файл для визуального разбора. Я бы с таким набором mongo, redis, clickhouse использовал. SQL для истории, если потом строить графики поведения.
Я бы ещё и асинхроночки добавил, как у меня сейчас даже вебсервис на ней. Uvloop берешь и ебашишь.
>>1737582 Ну да, многопоточность мы еще не проходили и асинхронность тоже. Но можно же и в одном потоке это сделать пока что? Куда прикрутить твоё \t'Цена открытия': dict? Или в одном потоке это прям ну вообще не прокатит?
>>1737580 Залезть в openapi_streaming, посмотреть какие ещё там есть функции, может там есть готовая функция экспорта данных куда-либо. Либо самому написать функцию, и вместо print_event вызывать. Когда ты первый раз спросил, я вообще понял пикрил.
>>1737588 Ну нее, твой пикрил я и сам умею. Но вот странность, кроме указанных мной в исходнике, там больше нет функций. Можно добавить другую акию только (до 8 штук). Я и говорю, смотреть можно, а забрать нельзя
>>1737683 Брат, спасибо, что заморочился, но мне не рандомные числа нужны, а конкретно из функции run_stream_consumer() из апишки openapi_client.openapi_streaming
>>1737699 Ты тупой? Я в качестве твоей функции run_stream_consumer() написал свою функцию, которая принтит рандомные котировки. Вторая функция в другом процессе запускает первую функцию, перехватывая то, что она принтит. Сложить первое и второе надеюсь сможешь?
>>1737759 СОЗДАЙ ОТДЕЛЬНЫЙ ПИТОНОВСКИЙ ФАЙЛ, ОЛЕНЬ, YADOLBOEB.PY НАПРИМЕР, В ТОЙ ЖЕ ДИРЕКТОРИИ, ГДЕ ЛЕЖИТ streaming.py
И В НЕГО ЗАСУНЬ КОД: import subprocess
with subprocess.Popen("streaming.py", bufsize=1, stdout=subprocess.PIPE, universal_newlines=True) as p: for line in p.stdout: print(f"Ленивый алгодаун {line}", end="")
>>1737762 О, норм тема. А я могу так парсинг и запись в файл мутить для повышения производительности? Есть допустим основной скрипт streaming.py, который скачивает html файлы а затем subprocess.PIPE передает их второму скрипту parsing.py (который собственно и осуществляет вызов subprocess.Popen(["python", "streaming.py"],) и вот он уже парсит эти файлы и записывает нужные результаты в файл Будет выигрыш в производительности?
(а если еще и написать 3й скрипт writing.py, который будет получать распарсенные данные от parsing.py и записывать их в файлы... так можно? Или смысла нет?)
>>1737881 По теме, только что попробовал. Процесс, который должен был занять ровно 10 секунд занял 10.3 секунды, пройдя двойной пайп. Подводных пока не заметил
>>1737499 Поговори со своим менеджером. Какие планы у компании, планируется ли что-нибудь и можешь ли ты в этом поучаствовать. Скажи, что тебе скучно, и тебе кажется, что твой рост замедляется. Если ты готов к какому-нибудь вызову, сообщи это. Во-первых, ты можешь случайно многое узнать о происходящем и возможно получить интересную работу не уходя с работы. Если ебо-продуктовая компания таких размеров не имеет абсолютно никаких планов, то я думаю, что это плохой знак.
Во-вторых, если ничего такого нет, у тебя есть прекрасная история на следующие собеседования: ты не развиваешься, по этому поводу ты вел переговоры с менеджментом и они зашли в тупик. У тебя есть опыт запиливания интеграций с апи и написания простых сервисов, так что с т. з. опыта проблем стать миддлом быть не должно.
У меня в субд есть "список" постов, то есть у каждого поста есть свой порядковый номер order: от 0 и далее по возрастанию, по этим номерам они и выводятся юзеру (сделано с помощью джанго)
Проблема в том, что эти "номера приоритета" постоянно меняются, был у поста номер 3, а стал 7, остальные соответственно тоже сдвинулись: номера от 4 до 7 уменьшились на 1, то есть двух постов с одинаковым номером быть не может, это как индексы в python list. Когда обрабатываю данные на бэке такое часто получается что 2 номера "перекрываются" на небольшой промежуток времени и вылезет ошибка, если это поле order было создано с ограничением unique, поэтому сейчас я его убрал, но в будущем это чревато ошибками
Как сделать поле order с параметром unique но при этом безвылезающих ошибок во время обработки?
>>1737890 Спасибо, антош. С манагером разговаривал в анчале весны, тогда вообще все было тухло. По бэку крупных и долгосрочных планов нет, после небольших правок и роста клиентской базы надо будет заняться небольшой МЛ задачей и всьо, но там ебучий рандом форест, нихуя сложного. Мне предложили заняться мобильной разработкой на реакте, от чего я отказался.
Аноны, пишу приложение на kivy под андроид. Apk buildozer'ом собирается без ошибок, но при запуске приложения оно сразу же падает. Посмотрел логи на телефоне, он пытается найти main.py по пути, который у меня используется на десктопе и ему это ясное дело неудаётся. В buildozer.spec: source.dir = . Собираю командой buildozer android debug Что за нахуй, он ебанутый?
>>1738204 а каким образом ты умудрился собрать приложение без файла с которого начинается приложение main.py ? это не ты ли тот ебанутый, что недавно в чате искал исполнителя "Склеить две программы в одну" ?
>>1738295 > это не ты ли тот ебанутый, что недавно в чате искал исполнителя "Склеить две программы в одну" ? Нет
> а каким образом ты умудрился собрать приложение без файла с которого начинается приложение main.py ? Не знаю, создал отдельную папочку кинул туда main.py и второй модуль, в консолечке вмонтировал эту папочку, написал buildozer init, поправил buildozer.spec(название, заголовок, требования и версию API установил 26, ибо на 27, он у меня усиленно не хочет собираться), и после этого написал buildozer android debug, началась сборка apk, после чего он написал что сборка окончена, апекашечка в папке bin. Я сделал что-то не так?
>>1738354 > Ты наверное хуйни натворил в питоне с модулями и дело не в киви. > Исправь сначала все на десктопе Да я хрен знает, что там исправлять, я в этом не разбираюсь. Сам скрипт запускается и работает, что в линуксе, что в виндовсе. В общем сейчас попробую установить убунту и прям по инструкции поставить buildozer и попробовать собрать apk.
>>1738393 > А как вообще ты программы тогда пишешь? Ну а кто его знает, как-то пишу, бывает даже работают. > Надо разбираться с ошибкой, а не танцевать меняя тулзы как папуас. Дак я в душе не чаю в чем проблема и куда копать. Что там может быть с пакетами, если их билдозер сам ставит (покрайне мере как я понял)? Может быть каких-то пактов в самой системе не хватает, но я гуглил аналоги пакетов для арчеподобных систем из инструкции для убунту и установил их. Может я что-то не то поставил или что-то не установил, но как это теперь узнать? Сейчас попробовал ещё раз собрать и увидел в консоли сообщение о отсутствии install_libs. С этим может быть связано и что вообще такое эти install_libs?
>>1737583 PIPE, Queue, socket, Kafka, RabbitMQ. Если ты считаешь "мы не проходили" охуенным аргументом, то пиздуй-ка жарить картошку. Я с нуля вливался во все. Увидел что одни и те же данные нужны многим сервисам и прикрутил rabbitmq, увидел что mysql не справляется с логированием - прикрутил clickhouse. Если ты тупишь после того как тебе все разжевали учись собирать бигмак.
>>1738475 Ах да сервисы - модули. Работают и не знают друг о друге, но ожидают входных данных. Пытался разгрузить уебищную MySQL 5.5, на два ядра два гига ведре, иначе каждый раз лезть приходилось туда, а вот 8.0 уже бодрее и то жалею, что решил MySQL оставить как СУБД. Говно полное.
Алгодебилу советую изучить Threading и не ебать мозг с PIPE.. Одна очередь на входящие данные вторая на исходящие. Я бы запили так: Parent - producer/consumer, но в виде процессов. Threading это упор в GIL. Когда лочится исполнение кода на какое то время, а играть семафорами уже ближе к байтоебству
Пиздец beatifulsoup уныло медленный. lxml поставил, вроде на него чистый и рекомендуют переходить, когда надоест. Читал ещё советы про частичный парсинг через soupstrainer, есть польза от него?
начал изучать питон по этой книжечке, что скажете, анонасы? мне пока все нравится, после каждой темы задания есть, на расслабончике по пару часиков в день заходит
>>1738972 >Срд 15:16:34 №1738972383 >>>1738925 >Нет. Питон проебал async и теперь не нужен нигде кроме нейросеток. Какой же ты сука долбоеб, просто ссал тебе на ебало
>>1738990 Книги это слишком медленно, лучше посмотри видоси от хауди хо учим пайтон за час на скорости 1,5х будет больше пользы, а потом сразу приступай к практике
Ребят, я что-то неправильно делаю или на Ubuntu в комплекте с питоном не идёт Tkinter? Попытался несколько раз запустить и пишет, мол модуля нет, вбил sudo aptitude install python3.8-tk шо-то скачалось и tkinter начал запускаться, что за дерьмо? Его же даже в pip нет, как мне узнать вообще, как его установить?
>>1739187 > я что-то неправильно делаю или на Ubuntu в комплекте с питоном не идёт Tkinter? У меня в убунту с минимальной установкой даже pip3 не было, так что не удивлюсь
Двач, необходимо написать программу, которая будет брать массив данных из экселя и по нему вводить данные в отдельном приложении. Вопрос, как можно полученный из экселя массив данных вставлять в конкретные поля приложения? И как можно с помощью пайтона вообще редактировать конкретные поля и вводить данные
>>1739359 Pandas для визуализации больше, для датасаенс дебилов с jupyter вместо IDE. Ну и памяти потребляет в разы больше. Я не вижу проблем выгружать данные как например умеет mysql-connector с атрибутом DictCursor() в виде словарей, где ключ это наименование столбцов. Априори не обосрешься.
>>1739272 Лучше pandas. Потом в ячейках сделаешь вставку в буфер обмена винды и заебись интегрируешься. А дебсов местных с ограниченным мышлением слушай поменьше. Pandas пригодится еще не раз.
Я тот анон, который вчера жаловался на неправильные пути файла main.py (путь как на десктопе) в kivy android, и я олень. Не будьте как я. На самом деле логи пытались мне сказать, что не хватает модулей. А неверные пути он скорей всего писал по причине того, что в апк копируются .pyc файлы, а созданы они были на пк. В общем читайте логи внимательней. Всем добра
Господа, посоветуйте бесплатных интерактивных курсов по питону. Интересует и разработка и анализ данных. Цели вкатиться в разработку или дата сатанизм пока не стоит, слишком глубоко изучить их соответственно тоже, поэтому тратиться на платные курсы не хочу и надеюсь что есть годные бесплатные. Цели - понять в целом принципы ЯП, разработки и анализа данных, чтобы мог хотя бы читать код и свободно общаться с разрабами и дата аналитиками. Сейчас прохожу бесплатный курс на code academy, вроде годнота, но он супер поверхностный, рассчитан на 25 часов всего. Есть что-то пообъемнее и поглубже? Чтоб с задачами, практикой и возможностью свериться с эталонным кодом.
>>1733222 (OP) Блин, кто тут имел дело с Celery? Поставил себе в джанго эту ебень, а она отказывает отсылать e-mail. Причем я таки настроил cron на Celery: каждые 5 минут моя операция исправно запускается, так что утверждать что я где-то неверно настроил Celery не стоит, не работает именно отправка e-mail
Что именно происходит?При некоторых событиях во View вызывается мой таск send_celery_email.delay(), но вот вместо отправки email или хотя бы падения с ошибкой, джанго просто замирает блин и стоит на месте. С помощью могучего дебагачерез print я это и установил: джанго доходит до строчки с вызовом таска а дальше просто стоит, причем он даже не начинает исполнять тело таска (print на первой строчке не срабатывает). Че это такое? Может это с брокером redis что-то не так? Я хз
Братцы, есть у кого "Автоматизация рутинных задач с помощью Python" в нормальном качестве? Точно знаю что существует, в сети одна и та-же версия где в оглавлении 60е страницы криво отсканены, хорошую версию никак не найду.
>>1739509 > читать код и свободно общаться с разрабами и дата аналитиками. о зачем им с тобой общаться ? они уже законченная цепочка решения проблем.
По сатанизму нет курсов отвязанных от ML. Это как-то глупо крутить таблицы не имея цели их загрузки в модели. Этим прекрасно и на delphi занимались последние 25 лет.
Посмотри курсы по питону на stepik-е. Сделай там практические задачи И курс по ML взять первую часть про вращение данным, а дальше не погружаться.
Пилю auth сервис на django-oauth-toolkit и drf, в ресурсном сервисе на джанго настраиваю интроспект токенов через auth сервис. Поставил dot на ресурсный сервис - работает, но падла тащит все модели, они естественно не нужны. Начал копать в сторону кастомного интроспекта и конкретно запутался. Идея пайплайна для реквеста такая: если реквест с токеном - идём проверять, при положительном ответе смотрим, есть ли такой юзер в бд ресурсного сервиса и, если нет, создаём по информации из ответа. Где нужно делать реквест, а где хэндлер создания пользователя, которого ещё не существует локально? django middleware / drf authentication_class / django authentication_backend?
Кто-то пояснит, что за странная система миграций и orm в джанге?
Вчера создал новую модель Box, на которую кинул ForeignKey от уже существующей модели Customer. Эта срань падала с ошибкой ProgrammingError при попытке создать миграцию, причем даже если я вручную бы создал файл миграций и попытался сделать migrate, эта манда все равно бы мне показала эту ошибку. Почему? А само поле box = ForeignKey(to=Box, null=True) его вызывает! То есть его надо закомментить и только потом делать migrate, сука нахуя?
Также недавно работал с тестовым проектом из другого места, поэтому изменил в настройках основную БД с Postgres на sqlite (постгреса там не было), решил создать новое приложение через startapp, сын твари упал... Как думаете из-за чего? Из-за невалидного импорта ArrayField в models.py от другого приложения. С хуя ли? Я ему сказал новое приложение создать, его ебать не должно что да как импортируется в другом
Тут очевидно про звук что то. Что означают числа в столбце F - я хз. Подскажите, от чего отталкиваться, чтобы найти особенности в данных? На что обратить внимание, что сделать в первую очередь?
>>1740099 распарси F столбец на несколько столбцов,построй pairplot / scatterplot всех признаков со всеми, построй распределения всех признаков (distplot), посмотри если ли выбросы в данных, нарисуй кореляционныую матрицу, посмотри что с чем сильнее всего кореллирует, дальше делай выводы на основе того что видишь
>>1740111 Сколько celery будет актуален? Джанго уже обоссан простейшими фреймворками c uvloop на борту. Где ещё нужен этот комбайн celery+rabbitmq/redis?
>>1740124 >>1740111 Травлю кулстори: по какой-то причине таск фризит только когда я его объявляю через декоратор @shared_task Когда в файле my_app.tasks я обозначил таск через:
from my_project.celery import app @app.task(bind=True)
Все завелось и заработало. Естественно надо в таком случае передать аргумент self в функцию, т.к. он туда идет по дефолту
>>1740252 В душе не ебу в чем конкретно проблема, мб ты автонахождение не включил, настроил не так, импортировал хуево. поэтому я уже раза 3 написал вызвать функцию без делэя, чтобы посмотреть в чем именно у тебя блять проблема
Так. Теперь киви приложение на андроид не может выполнить реквест, ругается что не может установить соединение. "HTTPSConnectionPool(host='myhostname', port=443): Max retries exceeded with url: myurl (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0xc85f1820>: Failed to establish a new connection: [Errno 7] No address associated with hostname'))" И как бы да, мой хост был забанен любимым роскомпозором, но я перед запуском приложения подрубил впн на телефоне. Причем самое смешное, что AsyncImage так же не может загрузить изображение, хотя я даже ради теста взял ссылку на изображение из поисковика. И всё это точно с этой же ошибкой. Такое чувство что моему приложение просто отключили интернет. Кто-нибудь может подсказать почему такое происходит?
Парни, простите за дурацкий вопрос. Второй день учу питон по самоучителям. Написал простой прогноз погоды с выводом того что одеть отталкиваясь от температуры (что бы девушка не спрашивала каждое утро что ей одеть, лол). Написал все на одном компьютере на версии 3.8.3, сейчас нахожусь на другом компе тут версия 3.4.3. Пытаюсь так же запустить программу с EXEшника она сразу закрывается, а в командной строке выдает пикрелейтед. Очень прошу, разъясните что он от меня хочет. Все модули в питон установились используемые (OWM, Pyinstaller).
>>1739725 Дык у меня upper intermediate, вся хуйня, просто вечерами как то влом иногда бывает на английском читать - кто бы что ни говорил, но это так или иначе часть ресурсов хавает.
>>1740319 Дружище, я не против книг на английском, просто мне, сука, хочется вот эту вот конкретную книгу, понимаешь? В бумаге, возможно, куплю если не найду, но пока надежды не теряю.
>>1740255 Без делея все запускалось... С делеем он даже в тело таска не заходил. Пока буду через app.task сидеть (надеюсь я ничего не наебнул в долгосрочной перспективе) Вообще говоря redis принимает и возвращает аргументы которые можно сериализовать в json, а как ему python object передать? Это вообще возможно или нинужно?
>>1740343 Тогда хуй знает, я помню у меня похожее было, но в итоге вроде оказалось что в самой функции проблемы были, хотя я точно уже и не помню. Попробуй полностью по документации пройтись, там для джанго фактически скопипастить все надо. >python object передать? Это вообще возможно или нинужно? Можешь сериализовать и закинуть, можешь взять сразу какую-нибудь django-redis, он сам за тебя будет сериализовать.
Псос, ебанул я такой pip download channels и он мне скачал штук 20 разных пакетов, как мне их всех перенести и установить на сторонней машине, где нет инета? Чтоб вбить 1 команду и питон сам правильно их поставил, не упав? (на выходные на дачу с херовым инетом поеду)
>>1740710 Вообще, идея "прошел курс - стал погромистом" это хуйня на палке, рассчитатная на лопухов. Но в целом смотреть видяшки норм, мне легче удерживать внимание. В процессе можно догоняться документацией по поводу деталей, потому что обычно очень всё поверхностно у них.
>>1740791 У яндекса есть наставник которого я могу ебать вопросами, плюс 3 проекта в портфолио, плюс в конце дипломный проект который я буду делать в группе с такими же макаками как и я. То есть навыки работы в группе, как минимум. udemy и на datacamp - разве такое могут?
Я иду в первую очередь чтобы бороться с прокрастинацией. Когда у тебя на изучение тем и на определенный проект есть определенный дедлайн, мне кажется это должно мотивировать что-то делать. Но так же опасаюсь, что если вдруг смогу дойти до конца, катализатора в виде дедлайна не будет, и я опять начну волоебить. Тут либо срочно нужно будет искать работу джуном, либо все пропало. А таких как я андрюшей выпускают пачками, и для того, чтобы попасть джуном я хз что нужно будет сделать. Так что я блядь пока в раздумьях, но обычные онлайн курсы мне точно не подойдут.
>>1740812 >Я иду в первую очередь чтобы бороться с прокрастинацией
Ну хуй знает, так себе идея
>Когда у тебя на изучение тем и на определенный проект есть определенный дедлайн, мне кажется это должно мотивировать что-то делать
Не
Попробуй совмещать свою РАБоту|учебу с питончегом. Тип надо обработать таблицу ->pandas + openxlxs+xlrd Тип надо надо сделать презентацию -> python-pptx Тип надо сделать, чтобы все охуели ->plotly, K3D Jupyter
Тогда точно пройдет, а это все хуйня, если тип просто заниматься "для себя"
>>1740820 >Попробуй совмещать свою РАБоту|учебу с питончегом. Да в том то и дело, что я на изи могу совмещать свою работу с чем угодно. И не раз брался за обычные курсы без времени действия, только вот хватало меня на месяц блядь. Потом опять начинается "сейчас проверю каналы в телеге", потом "так ну теперь ютубчик", потом "ну чуть двач по скролю" - и все, конец блядь рабочего дня. Приходишь домой играешь в игры - а потом ложишься спать, чувствуя себя безвольной мразью.
>Попробуй совмещать свою РАБоту|учебу с питончегом. >Тип надо обработать таблицу ->pandas + openxlxs+xlrd >Тип надо надо сделать презентацию -> python-pptx >Тип надо сделать, чтобы все охуели ->plotly, K3D Jupyter
И вот такой вопрос, а правильно ли самому начинать? Может если начинать под руководством наставника, меня научат сразу грамотно писать код, с правильными комментариями. Возможно ли такое, что после самообучения мне придется переучивать себя писать, так сказать - правильно?
Я передал на бэк json с помощью ajax, как мне вернуть HttpResponseRedirect? То есть я хочу обработать данные и перенаправить юзера на другую страницу, а он не желает перенаправлять. Данные принимаются и обрабатываются, но redirect не происходит
>>1740877 В каждом сообщении читается - ну разрешите мне в Яндекс, скиллбокс и гикбрейнс, ну не отговаривайте. Иди если решил. Если адекватных советов не слушаешь и сам все знаешь. Вьебешь бабла, послушаешь всякую ересь и успокоишься
>>1740812 Навыки командной работы ты и с анонами можешь практиковать. А курсы - хуйня без задач. Если тебе надо и ты хочешь изучить что-то - читай книги/статьи, если же нет - иди нахуй.
Кстати, а как реализоваться регистрация/авторизацию на Djange REST? Что-то ничего не могу найти по этому поводу. Все туториалы заканчиваюстя на написании обычных моделей.
Можете пояснить про Data Sciense, Big Data, Data Anylysis? Стоит ли вкатываться?
Я обычный веб разработчик, и вижу смысл вкатываться во что-то новое, только если это будет приноситься больше денег/работать нужно будет меньше/работа будет проще/таких специалистов мало, и работ найти легче.
Вот, скажем, если я вкачусь в BigData, выполняется ли какой-нибудь из этих пунктов, или это просто ещё один способ высушить себе мозги?
>>1741032 Ну вначале тебе надо разобраться что такое дата анализ. Потому что это очень много что включает, много разных направлений. Вкатиться в дата сайенс звучит как вкатиться в айти.
>>1740937 >Если тебе надо и ты хочешь изучить что-то - читай книги/статьи, если же нет - иди нахуй. Я пытаюсь найти истину, перебирая противоречивые мнения. Например мой друг никогда не кодил, и через 2 года самообучения сразу смог устроиться джуном на 70к в дефолт сити. Прошло уже года 3, сейчас его зп 250к+. Лично он говорит, что наоборот стоит пойти на курсы, потому что по его мнению там сразу направят куда надо, вместо того, чтобы терять 2 года своего времени. Аноны говорят наоборот - книги, обычные курсы и самообучение. С одной стороны у меня есть личный пример успешного вливания в карьеру, и куча противоположных мнений с другой, которые я тоже не могу игнорировать. Короче хуй знает.
Писал я, значит, самодельное прямое распространение для самодельной нейроночки.. Вроде бы всё нормально, но выводится вот такая ошибка UnboundLocalError: local variable 'layer_result' referenced before assignment Почитал немного в сети, вижу что это частая ошибка у нубов, каковым я и являюсь. Но если честно, НЕ ВИЖУ где в коде эта переменная используется раньше своего определения. За пределами метода НИГДЕ данное имя не используется. Как это исправить и как не обсираться в будущем.
Пытаюсь выбрать пункт верхнего дропдауна (Субъект РФ). Использую Selenium. Не выходит никак. В основном - element not interactable: Element is not currently visible and may not be manipulated.
Подскажите, пож, где я даун и в какую степь копать?
>>1741177 сделай вот так for lay_num, lay_size in enumerate(layers): _print (lay_num, lay_size) и в следующий раз используй отладочную печать вместо подобных вопросов на дваче, так ты ничего не научишься
>>1741046 Выучи столько, чтобы было достаточно пройти собеседование на бесплатные курсы в какую-нибудь галеру. Дальше учишься там, работаешь, и через годик уходишь куда-нибудь на зарплату в 2 раза больше.
Да сами курсы месяца 4 длятся Чему там можно столько самообразовыватсья, чтобы в итоге через два года всё равно получать 70 000.
>>1741046 Проблема твое друга в том, что он ни у кого не мог спросить что ему надо учить и куда двигаться. Твоя ситуация отличается от его, у тебя есть целый тред анонов, и часть из них имеет неплохой опыт в пистоне. Тут с радостью отвечают на адекватные вопросы и реквесты. Но окончательный выбор конечно за тобой.
Ебана, никак простой запрос из js не хочет на бэк отсылаться. У меня в том же файле еще две ajax-функции, с ними все нормально, в явном виде передал там csrf токен и все проходит, а при обращении вот к такому view (я просто хочу обработать данные а потом послать клиенту redirect):
У меня постоянно выскакивает 403 Forbidden (CSRF token missing or incorrect.). Че ему блин не нравится? Точно так же этот токен нахожу и передаю. Внизу ссылка на код функции, которая делает прямой запрос, возможно я как-то не так передаю этот токен когда шлю свой post-запрос
>>1741046 А каким методом он определил, что курсы помогут тебе лучше чем самообучение? В твоём сообщении нет инфы, что он проверил это на себе и это работает. Друг ещё тот советчик
Думал, что проблема в 403, однако ж редиректа по-прежнему не происходит. На бэк данные попадают и обрабатываются как надо, но HttpResponseRedirect(redirect_to='/profiles/') на фронт по какой-то причине не приходит (или не обрабатывается). Как форсировать этот редирект? Когда данные отправляются через <form> то редирект под капотом спокойным образом работает, здесь же - нихрена