Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
>>1793238 → у тебя список. очень большой. нужно сравнить все со всеми. и удалять дубли из списка как только их встретил питон 3.7
элементарно решается с потоками, но с процессами я задумался чтобы дать доступ каждому процессу к мутабельному!!! списку и простого решения в голову не пришло. Идеи конечно были, но вот "да хуле там делать изи" не было
>>1793247 → Меня тоже этот момент смущает. Вообще надо смотреть раскладку, сколько занимает картинка в закодированном состоянии, сколько времени она декодируется и какой декодированный размер.
Из этого уже можно проектировать алгоритм.
Если все сравнивать со всеми, то одну картинку надо передать в каждый воркер в любом случае, каждый воркер будет сравнивать со своей частью базы картинок, не всей.
Но пересылка данных не такая дорогая операция. То есть или ты упираешься в процессор, и тогда выгодно пересылать в раскодированном виде, или ты упираешься в объём данных, тогда проще распаковывать в каждом процессе отдельно. Кроме того, вопросы возникают по тому, как вообще это сравнение работает и нельзя ли там радикально оптимизировать.
Вообще задача выглядит из тех, что хорошо распараллеливается. Есть очень неудобные задачи, но другого класса.
Вот ты пишешь, что на шарпе это работает 4 минуты, а на питоне 5 часов. Но это значит, что у тебя именно код медленный. Ты ведь мог бы запустить на одном процессоре, а не на 4-8. Невозможно выиграть больше, чем в 4-8 раз соответственно в многопоточной версии. Скорее всего будет меньше выигрыш, наверняка, из-за общей памяти, кешей и т.п. А у тебя разница в 80 раз.
Ну само собой многие операции на питоне тормозные, если сравнивать производительность в один поток. На чём-то можно и в 100 раз проиграть относительно других платформ, особенно если ускорялками не пользоваться.
>>1793247 → >Почему нельзя картинку взять сразу в воркере? Зачем её прогружать в мастере? Судя по всему у тебя мастер как-то агрегировал эти картинки. Мог ли воркер сделать частичную агрегацию на своей стороне, а потом отдать только результат для финального мержа? Результат все равно пришлось бы копировать в основной процесс, где находилась нейронка. Вариант чуть лучше, но производительность все равно в разы ниже, чем при использовании потоков. >>1793252 → >Может у тебя там сериализация тормозила? Или мастер тупил. Ну реально, звучит как хуета что оперативка не справляется с копированием. Проблема не в скорости копирования в оперативки, а в имплементации копирования между процессами на питоне. Не забывай, что у каждого процесса свое адресное пространство памяти, и просто взять и скопировать не получится. >>1793259 >То есть или ты упираешься в процессор, и тогда выгодно пересылать в раскодированном виде, или ты упираешься в объём данных, тогда проще распаковывать в каждом процессе отдельно. Я упирался в место на диске, поэтому пришлось шакалить картинки, которые потом хотел разжимать в реальном времени при помощи нескольких потоков (процессов).
>>1793258 > элементарно решается с потоками Ну это пока оперативы на компе хватает. По-хорошему надо разбивать на части.
> чтобы дать доступ каждому процессу к мутабельному!!! списку Вот здесь надо было остановиться и писать на шарпе, если очень нужно решение "в лоб". Самое забавное что гил замедлил бы твой код в количество процессоров раз. Вон у тебя 4 минуты на шарпе, стало бы допустим 30 минут. А ты нагородил такого, что аж 5 часов работало.
>>1793271 > в имплементации копирования между процессами на питоне Ну о чём я и говорил, ты сильно терял на сериализации. Причём удивительно, что это не куча мелких объектов, а бинарный кусок, и это по идее тормозить не должно. Такое ощущение что там сериализация пошла по каким-то бэкреференсам и выносила чуть ли не весь стейт интерпретатора в сообщение.
>>1793271 Когда ты пишешь, что 90% времени идёт на копирование, мне кажется, что проблема в архитектуре или реализации.
Ну здесь просто варианты, декодировать в нескольких процессах, запускать нейронку в нескольких процессах и т.п.
Описанная задача выглядит как такая, что хорошо распараллеливается.
Я вообще не вижу принципиальных проблем с пересылкой большого количества данных, хоть через сокеты можно, но если объёмы действительно большие, то насколько оптимально дальше эти данные обрабатываются?
Факт, питон не предназначен совсем для обработки бинарных и численных данных. Без неконвенционных оптимизаций просадка в десятки раз легко может быть. PyPy и некоторые другие инструменты иногда позволяют очень прилично разогнать, но всё равно.
Но в том, что ты описываешь, меня в первую очередь архитектурный вопрос распределения задач смущает. Надо разбираться :)
>>1793269 > Ты ведь мог бы запустить на одном процессоре, а я это прямо и написал что на питоне была однопоточная версия потому что мне не пришла в голову простая реализация на питоне учитывая что я знаю шарп где даже мудрить не нужно я переделал на шарпе сделал дело и забыл
но я не забыл что мне было неудобно решать ее на питоне именно из за природы процессов, необходимости дать процессам один список, да еще чтобы он был мутабельным. Я привык к обычным задачам где "сделал пул, дал им задачи и они перемололи друг на друга им плевать", а тут плотное взаимодействие
собственно об том, что гил заставляет брать процесы и городить костыли (ибо это процессы) я и сказал в самом начале
>>1793294 Ну то что ты называешь мудрить это вообще-то нормальный человеческий подход, разделить задачу на части. И собственно в самом начале про гил всегда и говорится, что многопоточные вычисления над неделимым стейтом в питоне будет больно. Твоя ошибка в том, что ты не подумал и начал откровенно колхозить, закономерно облажался, и теперь пришёл рассказывать что гил жить мешает.
Твоя задача кстати разделяется относительно легко. Разделяешь большой список на N частей, затем с помощью itertools.combinations_with_replacement каждому воркеру говоришь какие из двух частей прогрузить и однопоточно перебрать. Результат, найденные дубликаты, пишешь в виде индексов, и после основного map делаешь постпроцесс, который их по индексам удаляет.
>>1793349 Ну ты можешь любой жсон свалидировать любой схемой. К примеру конфиг приложения, или пришедшие данные от юзера, да что угодно может быть. К примеру проверить что в жсоне используется только словарь с определёнными ключами, или что аррей содержит только числа от 0 до 10, и чтобы этот аррей был длиной ровно 3.
Ещё хороший юзкейс только для жсонсхемы это динамические валидаторы, к примеру пользователи могут на твоём сервисе задать вид жсонов, которые они хотят получать от других пользователей. Для этого они отправляют тебе жсон схему, а ты уже делаешь валидацию. Всякие pydantic такое не умеют, так как жёстко вбиты в код приложения.
>>1793350 Ну тогда awesome interview questions в зубы и вперёд. Думаю вряд ли кто-то решает олимпиадные задачи чтобы постоянно держать анус закалённым. Перед поиском новой работы месяца-двух хватит чтобы снова надрочиться.
>>1793302 >Ну то что ты называешь мудрить это вообще-то нормальный человеческий подход нормальный человеческий подход это потоки, которые работают параллельно по настоящему. В этом и есть суть потоков - иначе зачем они нужны. Процессы вместо потоков это костыли - параллелить надо. а потоками не выходит ибо гил
>всегда и говорится, что многопоточные вычисления над неделимым стейтом в питоне будет больно чавоооо? я же это и говорю, что в питоне не всегда удобно делать многопоточные вещи, потому что там не настоящие потоки из-за гил
>закономерно облажался я всего лишь здраво оценил количество гемора в такой задаче в питоне и количество "гемора" в шарпе и сделал правильный выбор но как это отменяет то, что в питоне приходится ебаться с "а как распаралеллить, потому что потоки гил?". ответ: никак
>и теперь пришёл рассказывать что гил жить мешает я с этого и начал.
>Твоя задача кстати разделяется относительно легко. разное у нас понимание слово относительно. Конечно для питона это "относительно легко". Но по сравнению с потоками это "нихера себе конструкция на ровном месте". И ЕДИНСТВЕННАЯ причина городить такой огород - гил
>>1793517 Не, проектировать структуру приложения и прочее - я не про это. Имею в виду, вот я разбил свою задачу на кучу маленьких. Допустим, первая подзадача - прочитать xml и забрать такой-то тег. Я в 100% случаев тупо возьму кусок из своих старых наработок, или, если похожего нет, тупо возьму с инета и переделаю под себя. И чем дальше, тем больше я такого за собой замечаю, так как я ленивый пиздец, наработок все больше и больше, а писать 2 раза я не люблю. Руками с нуля почти не пишу, в результате забываю многие простые вещи, и поэтому без наработок и инета под рукой (или возможности им пользоваться, например за собесе), я жидко перну и обосрусь.
>>1793549 Тогда будет медленно шопипец. По джаве у меня был собес давно как-то. Сказали написать какую-то херь онлайн при них. Без IDE. Я забыл какую-то мелочь типа порядка аргументов в методе, мне сказали ЦОК ЦОК ЦОК ПОНЯТНО ВСЕ С ТОБОЙ. Я говорю - ребят, ну вы че епт, я когда пишу - есть автодополнение IDE и документация под рукой, я не могу такие вещи помнить наизуть. Мне главное знать как оно работает, каким способом решать ту или иную задачу, а синтаксис и вот такие нюансы типа порядка аргументов - это несущественно и решается/вспоминается на месте. А вы мне мол даете аля блокнот и типа давай пиши работающее нахуй приложение. Послали тогда нахуй, в общем. Было обидно.
>>1793497 >я всего лишь здраво оценил количество гемора в такой задаче в питоне и количество "гемора" в шарпе и сделал правильный выбор И о чём это? Кто-то не знает, что потоки в питоне слабо реализованы? Это проблема не только питона, но и многих других динамических языков.
В питоне будет больно в одном месте, в языках со статической типизацией в другом месте.
В твоём случае налицо ещё проблема проектирования. Конкурентное программирование требует грамотного проектирования.
В тех задачах, которые могут сильно выиграть в производительности именно на потоках, а не процессах, питон чаще сольёт по другим причинам, то есть он сольёт и в однопоточном режиме тоже и это ограничивает питон сильнее, чем проблема GIL.
Думаю пришло время искать новую работу, отработал полтора года единственным питонистом на дно проекте, надоело, хочется в нормальной команде поработать ну и зп поднять. Короче поставил в резюме 130к, вот думаю адекватно или нет.
>>1793616 >Кто-то не знает, что потоки в питоне слабо реализованы? потому и говорю, что в питоне параллелить не всегда удобно. Что то не так? Не говори, что "там все изи" и я не буду говорить обратное
>со статической типизацией в другом месте это уже софистика
>Конкурентное программирование требует грамотного проектирования само собой. но я рассматриваю вопрос не "как грамотно делать многопоток", а "сколько преград ставит яп при этом". И почему итоговый огород именно такой, а не что-то проще
>чем проблема GIL это не мешает работе. я знаю что беру питон за практичность, а не за скорость. и меньшая производительность питона не заставит меня мудрить хитрожопую конструкцию. А гил заставляет.
>>1793616 конкретно в этой задаче в шарпе я заменю foreach на Parallel.Foreach добавлю логов для списка и проверку выхода за границы и все
в питоне же придется думать как это разбить на чанки, как давать процессам воркерам, как получать результат, как учесть то, что элементы удаляются и нехорошо воркерам работать с тем, что уже удалено и так далее.
Я не говорю, что питон плохой. я люблю питон но GIL зло, а процессы это просто костыли
>>1793629 >отработал полтора года единственным питонистом на дно проекте, >могу калькулятор сделать или игру "виселица", вот Выпей кофе и подумай как ты реально можешь описать проект. Тут все пишут на питоне, лол.
>>1793632 > Тут все пишут на питоне, лол. Писал небольшой монолит на джанге + селери, БД постгрес, в БД приходилось писать хранимки, так как в том кейсе без них нельзя было обойтись, писал разные парсеры selenium + bs, писал сервера для вебсокетов, либы для джанги которые юзали на других проектах, был опыт написание либы на С. Также занимался автоматизацией сборки и деплоя, но в рамках стейдж инфраструктуры. Ну и в жс и реакт могу.
>>1793635 > какая несусветная глупость. условия задачи почитал бы Какая же? На питоне есть один способ ускорить cpu задачу это раскидать по процессам, для ввода вывода лучше использовать асинхронность. Ну есть варианты завернуть С/C++/Rust в питон биндинг, так обычно и делают.
>>1793636 если ты ленивая жопа, ссылайся на NDA, а то спросят почему GitHub пустой. тут уже кто-то советовал отвечать "пет проектов нет, во внерабочее время занимаюсь семьей/собакой/попугаем"
>>1793640 Бро, не я тебя собеседую. Ты уже понял, что надо делать. Никто не мешает кстати искать работу, пока сидишь на своей галере.
>>1793642 Смотри вакансии habr'a и vc для начала, потом копайся в говне на hh и прочих. Можешь посмотреть что на upwork творится, надо будет ИП открывать для этих целей. Опять же на VC и Habr все разжевано.
>>1793639 Правильно советовали. Большая часть программистов в мире программирует ради денег, а не ради жизненного признания, в том числе и те долбоебы, что его будут собеседовать. Если воротят нос из-да отсутствия какой-то ебалы, не имеющей отношения к работе, можно считать это подарком судьбы, что тебя не взяли в говноконтору. Это то же самое, что хрюши с их "мы не нашли тебя в соцсетях, нам скрытень не нужен" или "мы нашли фотку, где ты пляшешь на столе в баре, поэтому код писать мы тебя не возьмем".
>>1793644 Ну если на проекте ты кодишь по 10-12 часов, то как бы какое нахуй свободное время? Тем более в одно рыло тащить репозиторий. Таких единицы. Скорее всего это студенты CS или фрилансеры. Хотя есть и люди которым 8 часов хватает на все и их совесть не тревожит.
>>1793626 >потому и говорю, что в питоне параллелить не всегда удобно. Что то не так? Всё так, в этом ничего нового, что многопоточность в питоне примерно никакая. В го хорошая.
>>1793638 >На питоне есть один способ ускорить cpu задачу это раскидать по процессам я это знаю. и мой аргумент звучит так - не все задачи хорошо раскидываются по процессам и в результате может получиться знатная монструозная хрень И считать такую хрень нормой есть дикость а дикость сия спровоцирована гил
так что аргументы тех кто грит "асинкио хватит, а остальным охуенчик мультипроцессинг" суть фантазеры которые не видели что такое реально охуенчик
зы: в данной задаче executor.map(...) не в тему. там общий мутабельный набор данных мутации которого всем воркерам нужно бы знать
>>1793902 Что ты подразумеваешь под тренажером? Если изучать хочешь, то ставь питон, качай/покупай книгу и вперед, обычно всегда есть упражнения для закрепления знаний из главы. Если тебе потренироваться, то литкосы/кодварсы/любой другой онлайн ресурс с задачками, где есть градация по сложности, встроенные тесты и т.д.
Сап датасцаентисты. В библиотечке ОП-поста есть книжки с примерами-задачами, которые предлагается самостоятельно выполнить обучающемуся? Крайне желательно, чтобы был ещё и разбор полётов.
>>1793910 >я это знаю. и мой аргумент звучит так - не все задачи хорошо раскидываются по процессам и в результате может получиться знатная монструозная хрень >И считать такую хрень нормой есть дикость >а дикость сия спровоцирована гил Не понимаю, к чему ты это говоришь. Хочешь просто понабрасывать, и всё.
Любые технологии имеют свои плюсы и минусы. Архитектура высокоуровневых интерпретируемых языков позволяет делать массу всего, чего стандарные компилируемые не могут, и благодаря чему они удобнее. Но это же усложняет их реализацию, в том числе поддержку многопоточности. Потому что вот совсем не понятно, так тягать все эти машины в разных потоках, как синхронизировать данные, менеджмент памяти и др.
Это ограничение, оно есть, из-за него потоки теряют вычислительный смысл. Но кстати их не для этого придумывали изначально, треды на всех платформах появились тогда, когда в основном все компьютеры были однопоточными. Треды нужны были чтобы разделить потоки исполнения, а не пытаться накручивать производительность.
При этом примеров, когда именно потоки критичны, не так много. Особенно для питона. Хорошая архитектура должна быть спроектирована так, чтобы более-менее легко было портироваться на много процессов.
Если у тебя много разных мютексов в коде, то это лапша в стиле лапши из goto из очень древних времён. Сейчас это не комильфо, сейчас принято использовать концепции каналов, очередей, заданий и т.п.
Обычно треды могут дать большое ускорение в том виде кода, который на питоне в принципе работает медленно, потому что питон плохо работает с прямой обработкой численных и бинарных данных.
Треды плохо масштабируются. А если у тебя спроектировано на много процессов, то ты легко можешь поддерживать кластеры, микросервисы и т.п.
Наконец, если тебе хочется потоки и без GIL, ты можешь глянуть на решения вроде Stackless Python. Это альтернативный, но официально признанный интерпретатор.
>>1793362 >К примеру проверить что в жсоне используется только словарь с определёнными ключами, или что аррей содержит только числа от 0 до 10, и чтобы этот аррей был длиной ровно 3. Так ведь все это я могу реализовать обычными тулсами и кондишинами?!
>>1794087 >Не понимаю, к чему ты это говоришь к тому что в питоне вместо потоков процессы. я сказал что это доставляет проблем, что не всегда удобно использовать процессы вместо потоков меня спросили пример - я его привел меня стали критиковать "ты не умеешь готовить, ничего не понима, бла бла, бла бла ,бла"
я своих аргументов не менял. Если кто то забыл с чего все началось то это его проблемы
>>1794098 JSON Schema это как документация. Подключаешь OpenAPI, создаёшь демостенд и твою систему тестируют. А главное JSON schema не привязан к языку и ее можно будет портировать. А так вообще pydantic хватало за глаза.
>>1794113 Такого не бывает, хочешь сам напиши такую книгу. Задач и инструментов овердохуя. Определись что ты хочешь узнать и это уже расписано на StackOverflow или в документации интересующего тебя инструмента.
>>1794098 Очень много повторений будет. Если ты начнёшь абстрагировать это всё в функции, рано или поздно изобретёшь что-то вроде жсонсхемы. Зачем изобретать своё если можно взять готовое? Где уже съели пуд соли, пофиксили пару тысяч багов и даже спецификацию написали.
Аноны, понимаю, что наверное это скорее в работа-тред, но каким было ваше первое резюме? Хочу закинуть на питониста-ждуна, смотрю всякие нормы составления - везде пишут 1-2 страницы, опыт и прочее, а в итоге выходит половина А4. Может посоветует кто какие-то гайды еще или примеры?
>>1794209 Ниоткуда. Я сам это сделал. Моя задача добавить содиржимое словаря по ключам, где значения показывает кол-во элементов в арреи. То есть, если один раз встречается, то 1, если 2, то 2 и тд. По сути счет.
Пытаюсь написать __repr__ метод для класса, в классе 10+ штук различных атрибутов, как это все красиво уместить?.. Я написал начало типа: def __repr__(self): ----return "MyClass(\
и собираюсь на каждой отдельной строке обозначать новый атрибут, чтобы было читаемо, экранирование с помощью \ позволяет переносить строки, но сцука итоговый результат получается с большими пробелами между атрибутами, потому что табуляция внутри строки сохраняется, как убрать и ее?
Пагни, спасибо всем здесь за комменты, это охуенный форум! Меня взяли джуном, старт послезавтра и у меня уже сейчас трясутся руки лол. Потому что я не знаю даже с чего начать. Пока мне менеджер сказал, поверхностно изучи гит, мы дадим тебе аккаунт - Что это значит ??? что мне нужно делать с самого начала? git init в рабочей папке ? Потом git pull master? ХЭЛП
>>1794292 Заведи аккаунт на гитхабе, сделай приватный реп. Изучай git clone, add, commit, push. Осознай что add не перманентный, оттуда файлы можно вернуть или вообще стереть изменение, это как бы черновик коммита.
Дальше учись работать с ветками. Осознай что ветки это всего лишь указатели на определённые коммиты, и если checkout выбрал именно ветку, то при коммите она автоматически сдвинется на новый коммит. Осознай что ветки легко добавляются и стираются в репозитории, что до push они у тебя живут локально и ты можешь их не публиковать.
Дальше merge/rebase. Это уже не поверхностный уровень. Поверхностно нужно только представлять почему случаются конфликты изменений и чем мерж от ребейза отличается.
Дальше узнай про remote. Ты можешь синхронизироваться сразу с несколькими репозиториями, например с основным и с форками. origin это всего лишь имя ремоута по умолчанию, и таких имён можно надобавлять целую кучу.
>>1794359 >Дальше учись работать с ветками. Осознай что ветки это всего лишь указатели на определённые коммиты, и если checkout выбрал именно ветку, то при коммите она автоматически сдвинется на новый коммит. Осознай что ветки легко добавляются и стираются в репозитории, что до push они у тебя живут локально и ты можешь их не публиковать. Спасибо, но как это сделать?
>>1794464 Собеседовался недавно, спросили за гит. Сказал, что юзал SVN всегда, а гит один раз ставил чисто от нехуй делать, пробовал конвертнуть репозиторий. Получилось, ну и забил, ибо нахуй он мне нужен. Мне сказали УУУУ КАК ТЫ БЕЗ ГИТА ЖИВЕШЬ, НЕ НУЖЕН ТЫ НАМ ТАКОЙ. Дебилы, блядь. Как будто принципиальная разница есть. Пересесть и привыкнуть за полдня можно, если потребуется. Тем более есть клиенты, за которыми даже похер что у тебя, типа черепашки.
>>1794471 Похуй. Во-первых, это написано в резюме. Во-вторых, я не люблю пиздеть. В третьих, я был только рад отказу, когда понял, что меня собеседуют 2 начальника, один из которых формально у них главный разраб, но из программирования знает только заученные определения из книжек. Искали замену челу, который от них съебался на жопной тяге. Устроишься в такую залупу, и будешь один везти все на своем горбу, пока такие толстопузы будут бабло получать. Еще пиздели, что команда у них там, а на самом деле ты да я, да мы с тобой - вот и вся команда была бы. Сейчас глянул, до сих пор вакансия открыла, лол.
>>1793243 (OP) Всем привет Появлялся с месяцок назад, спрашивал про питон как бэкэнд для браузерной игры на коленке Собственно, не забросил, понемногу двигаюсь. Только вот немного не понятно, как примастить пользователя Вот, к примеру, пользователь ловит рыбу, 10 минут, через 10 минут получает результат Получается, я должен привязаться к реальному времени? когда время станет такое, то, выполнить проверку результата и все записи в sql? И как питон поймет, что пора (собственно, время настало). Есть какой-то аналог крона, который заставляет его каждое определенное время проверять? Мб немного сумбурно, но подскажите, что и как гуглить.
>>1794551 Надо не так. Сохрани когда пользователь последний раз поймал рыбу. И когда с фронта придёт запрос словить следующую рыбу, проверяй чтобы между сейчас и предыдущим разом прошло 10 минут, иначе болт. Ну или что там, забрать результат ловли. Крон довольно примитивная вещь, для нормальных приложений нужен либо планировщик (если ты рассылаешь с сервера в сокеты), либо валидатор (если запросы идут с фронтов).
>>1794571 >>1794596 Ладно, уговорили. Я даже начал читать 4 издание что в шапке. Но тут меня посетили смутные сомнения, ведь там говорится и г питоне 2.6 и 3.0. И я оказался прав, есть 5 издание.
Есть время, которое записывается модулем time. Там дохулион секунд. Желаю перевести его в человековаримый формат делаю: from datetime import datetime humantime = datetime.fromtimestamp(time).strftime("%A, %B %d, %Y %I:%M:%S") Вроде бы все норм получается, но результат обгоняет на 12 часов. Показывает, что время для time = сейчас 3 часа ночи. Что я делаю не так? В данной конструкции все корректно и стоит искать проблему в конструкции, которая генерирует time?
>>1794879 Ну да, помогло >>1794872 Если кому интересно, корректно работающий вариант humantime = datetime.fromtimestamp(time).strftime("%Y.%m.%d %H:%M:%S")
Хочу сделать небольшой генератор текста на основе сообщений в чате (каждое слово из новых сообщений добавляется в словарь, назначаются какие-то пары слов, потом по запросу выдается мешанина из этих пар), но как лучше сделать?
Есть функция которая читает каждое сообщение и функция по запросу выдающая текст, надо ли засовывать логику самих генераторов внутрь этих функций или можно к примеру в отдельном файле .py сделать генератор и подружить его с основным файлом? Или писать в основном, но отдельными функциями где-то ниже/выше?
Суп, програмач! Учу джангу, есть вопрос: Есть модель, там таблица линкуется с другой таблицей. Например,
class Table_1(models.Model): name = models.CharField(max_length=255, default='')
class Table_2(models.Model): Table_1_id = models.ForeignKey(Table_1, on_delete=models.CASCADE) subject = models.CharField(max_length=255)
Есть страничка с формой на которой вводятся данные для этой Table_2. By design при открытии я уже знаю, какой из элементов Table_1 мне нужен, чтобы запихнуть его в Table_2.Table_1_id и не хочу выводить его на форму. В общем, я вижу два варианта: 1. Заставить форму передавать значение элемента, не выводя его (но я для этого плохо знаю фронтэнд, простых примеров не нашёл, в одном из примеров, на которые наткнулся подобное решалось через JQuery и AJAX, что явно оверхед, особенно с учётом того, где я вообще видел фронтэнд в гробу я его видел - мне нужно сделать рабочую болванку и передать её тому, кто умеет в HTML+CSS+Djinja+etc). 2. Добавить элемент прямо в view.py перед сохранением значений формы, но я что-то вообще не соображу, как. Я тогда в ответе я получаю только <QueryDict: {'csrfmiddlewaretoken': ['многабукаф'], 'subject': ['example_subject']}>, а при попытке накинуть дополнительное значение -- "AttributeError: This QueryDict instance is immutable" (в доках говорится, что это нормально, а метод appendlist работает только если QueryDict был заиничен как мутабл, но штатные не такие и вот дальше я уже ни фига не понял).
Нормальный ли этот метод по поиску 10 значных телефонных номеров в тексте? Учитывая, что похуй что телефон не верный, просто возвращение 10 цифр подряд.
import re def readFile(file1): count = 0 number = '' with open (file1) as f: text = f.readline() digits = re.findall("\d{10}", text) return digits return None
>>1795195 Всегда удивлялся долбоебам, считающим, что кто-то рандомно парсит рандомные сайты на предмет сначала номеров аськи, а потом номеры телефонов придумали. Ещё и коверкают, чтобы не спарсили, лол. В сто раз проще и эффективнее купить готовые базы как у владельца, так и ломанные, тут тебе сразу и таргетинг готовый.
Короче есть такой ввод: старт\стоп работы, Имя работника, время начал\закончил start Serega, 100 start Masha, 110 start Vanya, 120 stop Masha, 140 stop Vanya, 150 start Pidr, 160 stop Pidr, 180 stop Serega, 200 Вывод: Serega, 100 (отнимает стоп от старта) -Маша, часы -Ваня, часы и тд. То есть нужно показывать стукруту по пробелам, кто зашел и кто ушел.
>>1795209 И в чем проблема? Ассоциативный массив, время старта, нашли время стопа - отняли и забыли. Если имена могут попадаться несколько раз - ну два массива, окей. В чем проблема-то?
>>1795221 Ты не понял. Вывод должен содержать структуру проблов типа: Иван:время ' 'Вася: время ' 'Петя: время ' 'Маша: время ' 'Тетя Мотя: время ' 'Пидр: время С помощью листа ты не сможешь следить за старт\стоп и выстроить такую структуру, ибо первый стоп относится к последнему стартовавшему работу.
>>1795230 Блядь. Абу режет пробелы, я поставлю тире, где должны быть пробелы: Иван:время - -Вася: время - -Петя: время - - -Маша: время - - - Тетя Мотя: время - - - - -Пидр: время
Привет, я считаю, что вдоволь начитался-накодился с алгоритмами и структурами данных. Хочу узнать что делать дальше? Например у меня появился интерес в создании сетевых приложений. Что стоит изучить и что почитать? Или это пока рано?
>>1795209 Убираешь запятые и итерируешься через каждый 2й объект(имя). Во время итерации составляешь словарь где имя - ключ, если перед именем старт - заносишь время с -, если стоп - с +. Как вывести словарь - сам как-нибудь подумай
>>1795303 Работаю полтора года и нет ощущения что близок к мидлу, думаю нужно искать работу с сильной командой и более высокой зп. Самому себя сложно оценить, единственный питонист на проекте.
>>1795197 Верните мне 2007. Я про парсинг базы и говорю. Автоматизация звонков. Тебе что кроме Linphone надо? Спарсил записи, прошелся по всем номерам (список из БД) и все дела, еще на успел на прогулку.
>>1795292 >А они уточняли Они сказали "технологии на ваше усмотрение" кек Я таки получил работку, но в другом месте (нет, не на Джанго, в принципе мне похрен на чем писать, знал бы эти заскоки в принципе к Джанге не прикоснулся бы при решении тестового - там прост кейс уж больно удобно под DRF ложился)
>>1795275 это когда невозможно создать более одного экземпляра от класса а при попытке создания возвращается либо новый либо уже существующий в петухоне делается через декоратор
Подскажите про регулярки плз, как сделать замену в словах, которые состояли бы не менее чем из двух символов и до бесконечности, чет не соображу, ну если слооб то \b\b, а какой метасимвол мне нужен? {2} будет искать ровно из двух, как задать интервал до бесконечности {2, .*}? Чет нихуя не получается, хэлп плз.
Аноны, вопрос матерым помидорам. Есть один сервер, находится он в СШП на восточном берегу, есть клиенты по всему миру, пинг для европки.сшп - збс, пинг для океании уже не торт. Как пофиксать? Вижу два варианта: 1. Самый простой и легко создаваемый на коленке. Сделать как в играх - разместить дополнительный сервер поближе к океании и перед конектом юзер должен будет пинговать сервера все и выбирать наиболее подходящий для него. 2. Заюзать "Global Server Load Balancing" но тут уже придется подключать доп.сервисы и, я так понимаю, принцип работы у них как и мой п.1 Что анон думает на этот счет? Использую Nginx.
>>1795464 Туда в любом случае будет хуевый пинг, надо более близкий сервер, да. Вроде в ЮВА более-менее локация, ну или прям локально там. Как туда направлять решает сдн/балансировщик, обычно просто по айпи, какие там пинги, лол.
>>1795489 > Как туда направлять решает сдн/балансировщик Так вот я хочу запилить свой балансировщик. Обычнобалансировщик(тот же Nginx) не обладает возможностью распределять трафик согласно IP.
>>1795464 Ну наверное что-то из серии 1. Но при этом ты можешь автоматом выбирать сервер, правда на более высоком уровне, чем nginx.
Но это всё можно прозрачно сделать. Твой клиентский софт сам пингует сервера из списка (который можно автоматом получать) и автоматом выбирает тот, который лучше.
>>1795492 server appserv1.example.com:12345 weight=5; server appserv2.example.com:12345 fail_timeout=5s; server backup1.example.com:12345 backup; server backup2.example.com:12345 backup; }
>>1795492 Я думаю, nginx можно допилить - это востребованная фича, хотя чаще решается сторонними сдн или облачными хостингами с дохуя точек присутствия. >>1795494 \b\w{2,}\b Будет то же, что у тебя.
>>1795498 >Твой клиентский софт сам пингует сервера из списка (который можно автоматом получать) и автоматом выбирает тот, который лучше. Так и планировал, да. >>1795500 Но антош, веса это не то, как и бэкап. + Мой балансировщик стоит в амурике и до него в принципе пинг большой.
>>1795504 >Мой балансировщик стоит в амурике Тогда какая разница? Я попадают на твой балансировщик с пингом до US. Ну если у тебя будет качать данные, я замечу, что просадки по скорости. Бери данные по GeoIP и перенаправляй в соответствии. У Google же именно такая политика.
>>1795508 >Тогда какая разница? Разница в том, что я хочу для океании отдельный балансировщик поднимать. Понятно что я не буду гнать запрос из океании в амурику.
> Бери данные по GeoIP и перенаправляй в соответствии. У Google же именно такая политика. Можно чуть подробней? Ну или ссылочку какую для почитать.
Поясните за фриланс. Не то, чтобы я хотел быть 300кк в наносекунду (хотел бы конечно, но речь не о том) Скорее просто интересно посмотреть, какие рабочие задачи могут быть вообще у питон программиста, понять, чем придется заниматься скорее всего, мб цепануть какую-то работку не для денег, а для портфолио, чтобы было что в резюме закинуть при поиске на первую работу. Какие сайты юзаете?
>>1795538 Во фрилансе на жс и тем более питоне больно громадная конкуренция с индусами да и вообще с целым светом. Для себя можешь пофрилансить, но на какой-то бабос особо не рассчитывай
Здравствуйте. Есть ли какие-то онлайн-дрочильни вроде Codecademy для быстрого вкатывания в Питон, но без необходимости оплачивать подписку за кучу ЮСД долларсов? Так-то в принципе начал читать книгу Гэддиса алсо, что скажете про нее, но на книгах у меня как правило меньше усидчивость. Благодарю.
>>1795658 Индусы в курсе о го, просто на го никто особо не делает екоммерс хуету или прототипы в отличие от жс питона пхп, он в больших компаниях как вспомогательный хай перформанс язык обычно вдобавок к чему-то медленному
>>1795332 >Если ты можешь понять зачем NoSQL на проекте и в чем плюсы и минусы MQ уже можно миддлом назваться потом переобуешься по дороге. Такую хуйню у меня спрашивали на интервью в ШША на позицию Тест Инженера Автоматчика. Так что, если ты думаешь это уровень мидла, у меня для тебя плохие новости.
>>1795464 Такс, тут ещё мысль подкатилась: А що с БД делать, ведь она тоже на серве в амурике. Иметь Н-штук БД и между собой синхронизировать периодически? Или забить хуй т.к. из одного датацентра в другой оверхед по пингу будет терпимый(надо проверить)?
Есть один сайтик на джанге, который по запросу пользователя отсылает пачку запросов на сторонний сервис, затем собирает результаты всех запросов и отдает их пользователю в веб-морду. Проблема в том, что запросы выполняются долго, веб-морда устает ждать(или веб-сервер) и дропает соединение по таймауту. Как обычно это решается? Как мне вернуть пользователю ответ уровня "принял, обрабатываю" сразу, а когда все будет готово вернуть результат?
>>1796132 1. Верни пользователю ответ, что все ок - обрабатываю, запусти фоновую задачу на запрос к другим сайтам, запиши итоги и заставь морду сделать запрос через время после первого ответа и если есть данные - выведи их. 2. Вебсокет
Я хочу получить ответ в формате json, тут написано "JSON Include the query parameter `json` or set the HTTP header `Content-Type` to `application/json` to return the fact and associated meta-data as a JSON object, with the properties..."
Я должен был догадаться, что 'json' = True, или я ебусь в шары и это тут где-то прямо написано?
И 2 вопрос, гляньте на пикрил, задача была чекать из файла числа на предмет "интересности" через это api, можно ли было api_url как-то более адекватно собрать? Если бы я хотел например собирать не только math, то все равно надо было бы строки складывать?
Заигрался тут в мамкиного дебаггера. Я игрался с traceback либой и где-то даже был удачный сниппет по превращению traceback в формат JSON. НО, это работает только для простого вывода, а хочется traceback забирать еще и из корутины. Наткнулся только на custom_handler для обработки ошибки, но не понимаю как вытянуть traceback. Где я туплю? Хочется выцепить стак: где произошла ошибка.
Нахуя? Пока не знаю, скорее всего проще будет через StreamHandler и exception это делать, но хочется иметь полную картину и возможность манипулировать форматом сообщения.
>>1796148 Первый вопрос не понял. Чтобы был жсон, надо отправить параметры в виде жсона или добавить такой параметр в урле, всё указано. В общем-то, так и делается. Ещё через Accept иногда. Второе - f-strings. f"https://hui.com/{huivar}/{pizdavar}/1.html"
Ну глянь у меня на пикче на params, я просто 40 минут просидел, пытаясь понять что надо написать не что-то типа: params = { 'json' } а params = { 'json' : True } Тут про это явно не сказано нигде.
>>1796174 Спасибо на добром слове, анон. Еще бы ты меня успокоил в целом, про запоминание синтаксиса. Вот вроде какое-то время назад занимался словарями, задачки решал, все ок. А тут несколько дней развлекаюсь с регулярками и реквестами, словари вообще не трогал, в итоге для джсона они понадобились и я понял, что именно команды все нахрен позабывал, благо я хоть курс конспектирую и у меня все в тетрадке выписано, но все равно шарить по ней не круто
Чем чаще будешь пользоваться определенными встроенными библиотеками, тем больше запомнишь. Но вообще это хуйня помнить все наизусть. Иногда даже на SO захожу посмотреть как не надо делать
есть flask rest приложуха с докером, как мне грамотно связать с vue, в плане отдельно ли фронт от бека? а деплоить как два серва поднимать для фронта и для бека? Типо рендерить из фласка vue js было бы наверно глупо, но за то так будет 1 сервак. Посмарел гитхаб/гитлаб шаблоны вроде есть, но мб подскажут best practies
>>1796234 >>1796237 У тебя в примерах они по разному делают, одни запускают серв, другие вон про проду через билд также пишут, только рендерят самим фласком. Билд как минимум минимизирует твой жс код из-за чего сайт будет грузиться активнее. Рендерить можешь как в примерах или Nginx-ом раздавать статику
>>1796245 всё, увидел, но я хочу уточнить используют ли в проде такое разделение фронт и бек на разных серверах, ведь логично же рендерить фласком билд
# set custom handler loop.set_exception_handler(custom_exception_handler) loop.create_task(run_division(1, 0)) loop.run_forever()
На выходе JSON {"message": "Task exception was never retrieved", "exception": "division by zero", "at": [" File \"/home/rost/Development/Test/loop_handler.py\", line 8, in run_division\n return a / b\n"]}, который можно запихнуть себе в анус, ибо никто не пишет так логи азазаза в БД
>>1795292 >1. Я полагаю, ты про это https://docs.djangoproject.com/en/3.1/ref/forms/widgets/#hiddeninput Ы-ы-ы! Я ведь находил что элементы могут быть скрытыми, но подумал, что он скрывает дропдаунлист с неправильно выведенным значением по-умолчанию. Сейчас ещё пару раз перечитал и оказалось, что в темплейт можно добавить ><input type="hidden" name="Table_1_id" value="{{ Table_1.id }}"> и так сработало! Вот тебе в благодарность. >2. Покажи как ты это делаешь, ничего не понял. Примерно так (удолил лишний код, не связанный с этой операцией, запостил раньше, чем понял, как можно и теперь жалко тупо удолять, так что оставлю, вдруг кого на какие мысли натолкнёт): https://dumpz.org/ctnD3DFabp5G Теперь соответственно после 50-й строки добавлено то, что выше гринтекстом подсвечено.
То что в нём уже есть менять нельзя. Можно только вешать декораторы куда угодно и создавать новые методы. Нужно чтобы в функции test оба метода проходили проверку результата. Функция, которая результат проверяет нестатичная и определена в классе. Поэтому нужно как-то self передавать в декоратор. И он успешно передаётся. Но в моём декораторе не хочет вызываться метод с декоратором classmethod. Хотя в классе он вызывается с использованием self. Что мне поменять чтобы он тоже вызывался и проходил проверку результата?
>>1796456 пара замечаний 1 декоратор принимает в себя результат другого декоратора. ВАЖЕН ПОРЯДОК. то есть твоя fix_result принимает в себя не ориг функцию, а что там создал classmethod. Банально поменяй порядок декораторов 2 все равно self неоткуда взять и он упадет.
>>1796462 Я сначала свой декоратор поставил чтобы self не терялся, а был первым аргументом в моём декораторе. Поэтому self должен сохраниться. Как только теперь его передать дальше чтобы вызвать classmethod?
>>1796465 ну ты же понимаешь что f в твоем декораторе это не целевой метод класса, а обертка classmethod?
а значит при вызове нужно копнуть глубже что то вроде def wrap(args, kwargs): fun = f if hasattr(f, '__func__'): fun = getattr(f, '__func__') result = fun(args, kwargs)
>>1796470 но это лютый костыль. мало ли че там может быть навешано. к тому же "что там навешено" оно навешано и при определении декоратора и сразу можно достать конечную функцию то есть этот код можно вынести из враппера
>>1796474 что значит как? магии не бывает. если класс чего то не может, то нужно это переписать если не дают менять код класса, то переписать класс в рантайме.
>>1796476 Я не могу переписать. Это базовый класс и у него десятки дочерних. И всего более 1000 функций test где используется метод c. Мне проще в базовом классе повесить декоратор на c чтобы проверку в конце делать, чем переписывать 1000 вызовов этого метода.
>>1796482 В теории я могу все поправить. Но если я возьмусь править дочернии классы, то это работа на несколько месяцев. Я могу и метод с поправить. Но это может что-то сломать т.к. иногда он как self.c вызывается, а иногда как cls.с. Поэтому мне проще повесить декоратор и когда он вызываетс через self, то тогда в добавок функцию check вызывать чтобы результат валидировать. Я бы мог сразу в функции test после вызова c ставить вызов check, но это потребовало бы 1000 функция редактировать. Ещё мог бы поправить исходник метода c, но раз он в декораторе classmethod, то внутри я self никак не найду, а сначит и check не вызову. Убрать декоратор classmethod не могу т.к. это точно что-то сломает. Остаётся повесить ещё один декоратор, который будет проверять как вызван метод и по возможности вызывать метод check. Другого решения не вижу
>>1796486 >иногда он как self.c вызывается, а иногда как cls.с если оно у тебя где-то вызывается как cls.с, то декоратор работать не будет. Ибо неоткуда ему взять self. Этот твой декоратор сам должен вести себя как classmethod чтобы пробрасывать то селф, то cls и правильно поправить исходники, а не изворачиваться так
>>1796492 >если оно у тебя где-то вызывается как cls.с, то декоратор работать не будет Знаю. Поэтому перед основным кодом сделаю проверку что там в аргументах. И если там нет self, то просто не буду продолжать
Аноны, прохожу тему про csv, json, xml. С цсв и жсоном все нормально и понятно более менее, а что за дичь вообще с хмл. Просто смотрю на пикрил и охуеваю, тут инфы с гулькин нос, и ради этой залупы разбираться с деревьями, тегами, все пиздец запутанно выглядит, если сравнить с каким-нибудь ламповым словариком для жсона. Эта залупа вообще часто юзается?
>>1796428 А, в нескольких местах не поменял названия переменных и классов. Дятел. Ну и да, кое-чего не дописал, например, поля "state" В общем, я делаю table_1 = Table_1.objects.filter(state=1)[0] У меня by design в той таблице может быть только одна строка, у которой state = 1. После чего передаю дзиндзе в темплейт "'Table_1': table_1"
В моём коде, неисправленном из представления "Table_1" это "Event".
>>1796504 Дрочу любые sql'и, файлы, xml'и и прочую лабуду на нескольких языках, но никогда не смогу в нормальное программирование. Всякая ебала с 100000 фрейморками, либами, паттернами и прочим ООП для меня сложнее.
кто нибудь использует dynaconf? поясните почему он видит рядом лежащий settings.toml но не settings.json или у жсона должен быть особый формат чтобы он его распарсил к себе? как вообще увидеть где эта ебала файлы ищет ибо среди имен файлов что он там генерит "на поискать" есть settings.json но где он его ищет я хз
>>1796861 То что спустя несколько часов она отжирает кучу памяти и лагает, даже если в ней ничего не делали - это джава джетбрейнсам в штаны насрала опять?
>>1796870 >То что спустя несколько часов она отжирает кучу памяти и лагает Память очищается если кликнуть на индикатор памяти в правом нижнем углу. Или можно настроить ограничение по памяти. >это джава джетбрейнсам в штаны насрала опять Наоборот, джетбрейнсы выжали из джавы максимум и при этом сделали нормальный интерфейс.
>>1796878 >Первая часть твоего коммента никак не объясняет первопричину проблемы. Потому что "проблема" существует только в манямирке нищих пердолей с 10-летними ноутбуками.
Это вчерашний анон, у которого были сложности с xml. Объясните плз, как можно по элементу понять степень его вложенности. (не уверен, что правильно юзаю термины, но надеюсь). Т.е. вот гляньте на пикрил из злоебучей задачи, блу это рут, т.е. у него это вложенность грубо говоря один, у ред вложенность уже 2, т.к. это дети блу и у грин уже вложенность 3, т.к. это ребенок ред. Как узнать эту вложенность элемента в моей рекурсивной функции, чет не понимаю, но мне кажется как-то можно.
>>1797112 <cube color="blue"><cube color="red"><cube color="green"></cube></cube><cube color="red"></cube></cube> Надо чтобы выдало 4 3 1 Остальные тесты на сайте с курсом скрыты, их там 18 штук
>>1797167 Ну, если тебе самому интересно, то вот задача целиком, я выше ее уже постил. Но только если тебе интересно, я как выше уже писал мб и кривожопо, но сделал
>>1797186 я так понял имеется в виду н аркоманская пирамида, синий кубик два красных зеленый кубик верхний стоит один, ряд ниже стоит 2 и т.д., т.е. синий кубик 1Х1 = 1 два красных 2X2 = 4 зеленый кубик 1X3 = 3
Антуаны, с чего начать изучение нубу? Открыл сейчас саммерфилда, а там на первых же страницах пишут, что это книга для людей с опытом программирования. Посоветуйте что-нибудь для совсем нуба.
>>1797353 использовать основные элементы Python – списки, функции, модули; рисовать при помощи встроенных инструментов Python; анимировать изображения с tkinter; написать настоящие игры – “Прыг-скок!” (клон знаменитой игры Pong) и бродилку “Человечек ищет выход”, где нужно прыгать по платформам, чтобы добраться до выхода.
Аноны, поясните за хтмл парсинг и бютифул суп. Не понимаю эту фразу из документации (контекст на 1 пике): "Beautiful Soup then parses the document using the best available parser. It will use an HTML parser unless you specifically tell it to use an XML parser." Я недавно начал вкат, что собственно есть хтмл парсер?
Я думал что парсер это программа, которая позволяет обрабатывать информацию и как-то ее фильтровать, т.е. у меня задача учебная из хтмл документа на определенной ссылке достать все юрлы, причем их еще особым образом обработать. Собственно до этого момента я считал, что я как бы и пишу какой-то примитивный парсер. Чет я запутался
>>1797454 Алсо такой вопрос, чет в документации не вижу метода get, это же не гет из реквестс, и не гет который юзается для словарей, где почитать, откуда он берется, как работает?
>>1797498 Ты же сам сказал "для выдирания информации из HTML.". Вот я получил это содержимое, в данном примере распечатал, а могу например регуляркой в нем что-то конкретное поискать, могу всю эту хуйню засунуть в какую-нибудь переменную, что тогда ты понимаешь под выдиранием информации?
>>1797538 хтмл это всего лишь текст браузер парсит этот текст на составляющие (дерево тегов) по правилам хтмл парсинга (разбора) красивыйсуп точно так же парсит строку которую возвращает сервер в структуру к которой ты можешь делать запросы для извлечения
Анчоусы, сколько примерно времени надо, чтобы найти работу за еду? Стажировку там, что угодно. И что для этого надо выучить/узнать. Сам на 3 курса уника и надо бы уже на тему работы задуматься
>>1797709 >>1797702 Поясните мимокроку, а асинхронность и многопоточность это не одно и то же? Я как-то делал прогу, которая должна совершать определенные действия раз в n секунд, действия были достаточно сложные, поэтому если я задавал делать что-то 20 раз с интервалом 5 секунд это занимало не 100 секунд, а больше, т.к. она делает действие пару секунд, потом 5 секунд ждет, потом опять действие пару секунд и выходит скажем 110 секунд на выполнение такой хуйни.
Описанное мной многопоточностью фиксится, или асинхронностью?
>>1797728 >Поясните мимокроку, а асинхронность и многопоточность это не одно и то же? Нет, асинхронность работает в 1 треде >Описанное мной многопоточностью фиксится, или асинхронностью? Без разницы
>>1797728 многопоток выполняется одновременно параллельно при асинхроне дает возможность выполнить другое если текущее ушло в ожидание (ответа из сети, ответа от диска, ответа от базы. от другого процесса и т.д.)
а твое фиксится выставлением периода ожидания в конце каждого выполнения
Посмотрел ролики от удеми по питону. Про пентестинг. В целом, подойдет ли питон для пентестина, хакинга, для написания стиллеров, граберов, создание ботнета. Или лучше для пентеста юзать другие яп. Показался питон - легким для освоения и написания кода. Что думаете? Лучше он или другой яп.
>>1797780 https://cloud.mail.ru/public/25VT/PEYkh8Bff/ Вот. Реквест прежний. Подойдет ли питон для написание стиллеров, граберов, ботнета и прочего в хакинге. Например, для создания ботнета. Клиент-сервер есть, сокеты тоже. Норм будет? Или для стилера. Например, дох програм на кали написаны на питоне, всякие там брутфорсеры и прочее.
>>1797775 Если ты задаёшь такие вопросы, то асинк тебе ещё не нужен. Читай про сокеты, процессы, потоки, примитивы синхронизации, как с нуля без фреймворка написать сервер/клиент на сокетах. Можешь сначала классику сделать: одно соединение = один поток. Соединяй к этому серверу 10 тысяч клиентов и смотри как система захлёбывается от кучи процессов/потоков и тугой синхронизации между ними. Потом читай про тредпулы и очереди обработки короткоживущих запросов, можешь даже простенький http сервер написать. Потом попробуй туда прикрутить вебсокеты. Вот тут как-то оно не встанет, так как соединения живут долго и забирают воркер из тредпула на вечно, не позволяя подключать новых клиентов. Возвращаешься к классике, соединение=поток, всё работает, но на 10к соединений всё так же тормозит. И вот здесь уже читай что такое epoll/kqueue и чем они отличаются от select, что такое эвентлуп и нахуя было переизобретать планировщик ядра в юзерспейсе. Потом читай про колбэки и почему с ними очень сложно писать код. Потом читай про асинхронность, корутины, неблокирующие сисколлы, вот тогда завеса тайны немного приоткроется.
>>1797778 > для написания стиллеров, граберов, создание ботнета Судя по уровню твоих знаний питон тебе точно не помешает. А насчёт малвари, ну сам подумай, питон и установить не так-то просто, и весит он немало, как ты его будешь незаметно внедрять жертвам?
По ошибке указал, что последняя работа была три месяца позже, чем на самом деле. Сейчас идет проверка и мне говорят, где три месяца, чувак? Если я честно признаюсь, что в глаза проебался, то меня все равно нахуй отправят? Или что можно сказать? Походу 5 часов и месяц интервью улетают в дупу. :(
>>1797731 >Нет, асинхронность работает в 1 треде А можно сделать многопоточность с асинхронностью с каждом потоке? Или это слишком сложно и там куча подводных камней?
Сколько такая хуйня стоит, регулярно приходит. Швайноиндусы с 6 сразу мимо, мой выставленный рейт в 40 тоже маловат, сколько? Всякие куберйобы и терраформы не знаю, но можно и подучить.
>>1797864 Можно. Я все ебусь с оберткой-классом Process, чтобы как в GoF красиво было. Суть в том, что каждый тред/процесс должен запускать свой eventloop.
>>1797870 И всё равно стоит вопрос >>1797685 >вы часто используете асинхронность? >Как в ней попрактиковаться? Ну, со вторым вроде выяснили, что можно чат написать. А что насчёт первого? Если ты не с какой-нибудь обработкой видео работаешь, то насколько часто асинхронность нужна?
>>1797796 кста, а не подскажешь что-нибудь про тестирование нагрузки сервера, типо сымулировать трафик в 200к как в erlang делают (смарел какую-то презентацию аля python vs erlang), спрашиваю у тя так как видно ты компетентен
Аноны, 2 день сижу, помогите плз. Есть ссылка https://pastebin.com/raw/hfMThaGb Надо с нее вытащить все <a> теги и из них юрлы, причем о резать вот так:
Код с 1 пикчи позволяет получить сами ссылки из тагов, а как их теперь вменяемо обрезать?
Самый близкий к нужному эффект дает urlparse(link).netloc, но он не справляется например с такой хуйней в конце домена ":1345", и ссылки типа bya.ru отправляются нахуй.
Как написать скрипт, который будет блокировать ту или иную программу на компьютере(виндовс) по расписанию? Скрипт нужен только для одной программы. Это вообще сложно сделать? Сам я изучаю питон чуть больше недели и пока даже не представляю, как к такому подступиться. Вообще звучит очень просто, но на деле хуй знает.
>>1798206 Также думаю, что можно прописывать нужные адреса в хосты, чтобы программа открывалась, но не работала. Такой вариант меня тоже устроит. Как проще сделать? Самое главное, чтобы всё по расписанию было.
>>1798174 там в сэмпле есть ссылки которые начинаются на frp://, а еще есть ссылки вообще вида mail.ru/huipizda, но вообще я уже с юрлпарс получше разобрался и через него сделал
>>1798210 Да, чтобы она не запускалась в определённое время. Но при этом в другое время должна запускаться. > Можно по процессам лазать и рубить ее нахуй, например. это сложно сделать? что гуглить?
>>1798215 >тобы она не запускалась в определённое время Не очень понимаю формулировку "не запускалась". А запускается она как, по планировщику ОС или ее пользователь не должен запускать? Если рубить процесс не вариант, то нужно способ к конкретному случаю подбирать. >это сложно сделать? что гуглить? python kill process by name пробовал в гугел вводить?
>>1798217 Я включаю прогу и она должна вообще не запускаться или сразу после запуска выключаться. >>1798218 А это второй вариант, если первый слишком сложно сделать.
>>1798231 Если тебе нужно сделать аля кряк, то лучше поищи в инете, 99% что это уже сделали. Фотошоп например частично так крякается + хосты заворачиваются в анус, чтобы он не лез стучать.
>>1798233 Нет же. Мне нужно, чтобы я не мог запустить программу в определённое время, чтобы не отвлекаться на неё. Типа как блокировка сайтов, но только программ.
>>1798235 Боже, ты настолько слабовольный? Выведи себе вместо ярлыка запуск через батник, который проверит время, и если оно то самое, то вместо запуска пошлет тебя нахуй.
>>1798216 я посмотрел хауди хо джанга за час но оказываеца надо было знать питон пришлось смотреть питон за час и мне сразу пазванили и пригласили за 299к/наносек бэкенд делать, но я ж не дурачок себе цену знаю и среднюю цену на рынке и нахуй их послал они еще какую то хуйню про сикать спрашивали сикуль какой то извращенцы ебаные на сиках помешаные с такими разговор кароткий
>>1798322 >Python3 и PyQT5 Думаю это рано еще для него, сначало надо выучить с десяток гофовских патернов, прежде чем предисловие читать , или это тролинг какой то?
>>1798333 В первой части этой книги - классика - переменные, типы, циклы и прочее. А PyQT5 вторая часть книги посвящена. Её можно пролистать по диагонали. Или вообще не читать.
>>1798384 СИДИШЬ НА УЮТНОЙ РАБОТЕ, ЛЕНИВО ИЩЕШЬ МЕСТО НА ВЫРОСТ ПОЛУЧШЕ @ ПРОШЕЛ СОБЕС, ТЕБЯ ГОТОВЫ ВЗЯТЬ @ БЕЗОПАСНИКИ ЗВОНЯТ ХРЮШЕ С ТВОЕЙ ТЕКУЩЕЙ РАБОТЫ трустори кстати
>>1797865 >120+ микросервисов Соа говно, микросервисы заебись. Когда уже микросервисы станут тоже говном, а в треде будут наносервисы, чтобы совсем для каждого чиха был отдельный сервис?
>>1798448 Рассказала начальнику, тот подвалил ко мне с темой "ты там охуел работу искать у меня за спиной, что не нравится тебе?". Посрались в итоге на этой теме, когда я сказал ему, что это он охуел хотеть, чтобы я с ним согласовывал свои жизненные решения, и что в следующий раз позвоню ему когда буду цвет труселей выбирать себе. Он потом извинился. Сказал, что вспылил, что понимает, мол важно смотреть рынок периодически. Но я все равно ушел, только в другое место уже.
На первый вздляд скрипты одинаковы: в самом начале запускается бесконечный цикл, и интерпретация никогда не продолжится дальше.
Однако:
Первый скрипт при запуске потребляет 12000 кб анонимной памяти (VmRSS: 16 MiB).
Второй - 3800 кб анонимной (VmRSS: 8 MiB).
В чем подвох? С более старыми версиями проблемы не было. С новым интерпретатором - аномально высокое потребление анонимной памяти. Это норма? Каково возможное объяснение явления?
Анон, пояни за scikit. Есть код (пикрил), который на основе невероятного датасета рисует границы принятия решений. Вопрос - как? Как сука он это делает? Я понимаю что в coef_ записан "тангенс угла наклона", а в intercept_ сдвиг по оси y. Но простого понимания как все это рисует линию ("a = -(line * coef[0] + intercept) / coef[1]") нет. Кто нибудь, обьясните долбаебу (мне) как это работает.
Аноны, дебильный вопрос про пучарм. Пытаюсь начать ковырять джангу, и нужно ковырять файлики из двух разных папок на одном уровне (подчеркнуты красным на первом пике). Но смотрим на 2й пик, слева видно только содержимое собственно папки мейн, как подняться на папку выше, открыть папку майсайт, и файлик из нее тоже открыть?
А то не хочется пучарм в тысяче окошек открывать, хочется чтобы все файлы были вкладочками в одном окне (у автора курса который смотрю саблайм, и не очень хочется еще и с ним разбираться, там это удобнее я так понял)
йо, питонеры. в шараге нужно потыкать win32 api и порекомендовали писать на шарпе или плюсах. знаю, что для питона есть pywin32. так вот вопрос, стоит ли вспоминать плюсы чебы написать эту сраку или легче будет изучить pywin?
Бля, как же сложно джанго учить. Такое ощущение, что на тебя вываливают сразу грузовик каких-то непонятных деталей, которые хз как взаимодействуют, хз с чего начинать и все такое. Берешь курсы - ну мы скачали джанго, вводим команду и вдруг ХУЯК У ТЕБЯ ВЕЗДЕ МИЛЛИОН ФАЙЛОВ, ВСЕ ДРУГ У ДРУГА НАСЛЕДУЮТ ШОТО, КУДА СМОТРЕТЬ ХУЙ ЗНАЕТ.
Так и должно быть, или я рано полез? До джанги изучал просто питон и его синтаксис и задачки решал, ну от совсем базовых типа как цикл for работает, заканчивая какими-то основами ооп и классов, реквестами, несколькими популярными модулями.
>>1798894 Ну хуй знает, чем тебе помочь. Практика, практика. В Джанго 4 базовых вещи - urls, models, views и settings. Вначале создаём модели в models. Затем создаём урлы в urls, чтобы принимать get и post запросы. Во views принимаем request, пишем/читаем из моделей и отдаем response. Вот это надо понимать. Это был платный курс по основам Джанго, с тебя $50, Антон.
>>1798969 Но вообще смущает то, что после того, как я поучил синтаксис такое ощущение, что все, что я учил пошло нахуй и неактуально, тут из самого питона одни импорты ну и классы, а так куча каких-то своих методов, функций, хуй разберешься. Понятно, что есть документация, но просто сидеть и читать документацию мне кажется это не путь с нуля, нужно понимать, что ты в ней ищешь, чтобы нормально пользоваться
>>1798994 А ты как хотел. Каждая крупная библиотека закрывающая свои задачи - фактически отдельный язык. А то и два, если на стыке питона и, например, джаваскрипта... А то и три. Четыре...
>>1799037 Так-то у яндекса отличный адаптив, и крайне объемный, в спринт укладывают то, что по-хорошему месяц учить, а потом еще и проект по этому делать.
Только дорого пиздец просто, конский ценник. Откуда у них студентов-вкатывальщиков столько, способных по 120к выложить. А потом говорят что в россии бедных много.
>>1799045 >А потом говорят что в россии бедных много. Я таким же вопросом задаюсь, когда вижу, как раскупают квартиры за оверпрайс в новостройках за считанные недели, когда вокруг меня ездят дорогие машины, и это в регионе со средней зарплатой меньше 30к, а медианная наверно вообще ближе к 20 чем к 30. Скажете - да они все в кредитах, ипотеках. Согласен отчасти, но ты блять иди ипотеку с автокредитом возьми при зарплате в 20-30к. Еще и детей при этом заводят, и одевают нормально.
>>1799051 Ну в моем городе все под чистую скупают Казахи, так что ответ хоть на один вопрос у меня есть.
Но когда я увидел сколько вкатывальщиков в яндексе - я прихуел. Особенно в питон. Там по сотне людей в месяц к ним поступает только на бэкенд на питоне. Аналитиков и сатанистов тоже дохуя. Эдак скоро на одну вакансию будет конкурс, как на дворника.
>>1799054 Так и есть, до этого момента нас спасала конченая система образования в снг, которая умеет готовить не те кадры, которые нужны, а которые были нужны.
>>1798994 Все постепенно. Основной вопрос в разработке - какие данные нужно отправлять по обращению к адресу? Это будет html или json? Html? Отлично. Будем использовать шаблон из папки templates. А затем строка за строкой - реализуем. Этот базовый механизм нужно понимать. На этом этапе не нужно знать все, потому что всего крайне дохуя и оно пока лишнее. От всей статьи про протокол http нужно лишь два метода - get и post. Даже коды ответа от сервера (200, .. 500) можно не знать, т.к. Джанго умное и само вставляет нужные коды в response. Вообще Джанго выполняет много работы внутри, оставляя на поверхности синтаксический сахар для удобства реализации первичного функционала - перехода по urls. Что ещё нужно - использовать дебаггер - в pycharm он крайне удобный - чтобы останавливаться на нужных строках кода и смотреть в переменные. Найти там объект request, например )
Насколько большим может быть словарь для быстрой работы питоноскрипта? Типа миллион ключей со значениями уровня "десять тысяч списков строк" с постоянным добавлением туда, поиском и удалением этих ключей будет нормально работать или лучше это куда-то записывать? В базу данных там или еще куда. Как нормальные пацаны делают?
>>1799095 Мне кажется, если у него возникла необходимость держать в памяти словарь на миллионы ключей и как-то дрочить его в процессе, то он с самого начала сделал что-то не так.
>>1799098 ну на миллионы это я загнул но просто интересно, нормальная ли это практика работать с большими словарями >>1799100 не знаю, может и проще как раз, но никогда не работал
>>1799102 Ну я под такие кейсы на серваке разворачиваю постгресс, потом уже из него скриптом получаю информацию, обрабатываю и записываю обратно. Но я хуй знает что у тебя там.
Аноны, я только начал питон тыкать, до этого еще посмотрел ксс хтмл, думал, фронт или бэк мне интереснее, и возник такой вопрос, вот анон выше про джанго спрашивал, я сейчас маленько посмотрел, а чем собственно ее профит? Ну весь дизайн же можно просто сделать в хтмл с кссом, вбить в а таги ссылки на другие странички, которые прихуяришь к сайту, всякие красивости жаваскриптом доделать типа всяких менюшек и т.д.
Единственное, что мне вообще непонятно сейчас с моего нубского уровня - это как заставить работать нарисованную мною допустим кнопку логина (я понимаю, что "единственное" это громко сказано, и в этом и есть огромная суть бэка, но все же). Т.е. всякие фласки и джанго это то, что работает с базой данных и выдает из нее данные, когда мы жмем на сайте кнопки? Т.е. условно отвечает за регистрацию, логин, переписку допустим, да?
>>1799122 Джанго больше не для интерфейса, а для бэкенда. Всякая обработка запросов, выдача тебе нужных страничек, взаимодействие с базами данных. На фронтэнд чаще что-нибудь адекватное используют, Vue, например.
Необходимо реализовать таблицу рекордов при помощи модулей pickle и shelve, которая будет храниться в бинарном файле. Режим доступа ab+ это дозапись и чтения из бинарного файла. Но почему-то, сохраняется только первые имя - рекорд. Подскажите, что я делаю не так?
>>1799150 Сори, я тебе ничем не помогу, сам недавно начал, но другой вопрос, зачем вообще делать как на твоей пикче, типа f = open... когда есть охуенная штука с with open... которая сама закрывает файл и визуально куда приятнее и читабельнее?
>>1799101 Реально, рынок очень голодает по бэкэнд специалистам а особенно если еще и по петону, в половине случаев сами всему обучат лишь бы были желающие, сам вкатился джуном после просмотра хауди хо джанго за час
>>1799162 идеальным вариантом будет включить х2 скорость у видео и параллельно начать раскидывать резюме повсюду, хотя это необязательно, обычно не успеваешь досмотреть видео до конца, как хрюши начинают звонить и готовы на все что угодно лишь бы ты к ним пошел
>>1799182 Да а зачем обучаться? берешь таску пару строчек говна высираешь, а потом тащишь это вместе с заданием сюда, а аноны решают пока сам в это время думаешь как будешь тратить свои кк в наносек
Помогите плиз, передать айдишник(data.id) из шаблона в форму, он отображается в инпут. Файл загружается, если id прописать вручную, как на первой пикче.
Всё куда проще чем вы думаете. Мидл это не тот человек, который много знает, а тот, кто умеет решать задачи поставленные бизнесом самостоятельно. Умеешь решать задачи с определенным стеком самостоятельно? Ты мидл.
>>1799694 смотря где работаешь я работал в банке одном, где был чел в "отделе разработки по" насколько я помню, он разработал в доисторические времена дрочилку на delphi для запроса и разбора xml кредитной истории с какого-то бюро и несколько лет сидел ее поддерживал, иногда дрочил хранимки для другого старого говна, но это было редко
Полгода назад создал сделал дрочилку для подключения к оракловой базе и отработке некоторых данных. Сейчас понадобилось разово сделать почти то же самое, только с другим запросом. Создаю в том же сука пичарме проект, на той же версии питона. Устанавливаю той же персии cx-oracle. И он мне пиздит, что на компе нет оракл клиента. При этом предыдущий проект с ровно той же конфигурацией заебись работает. Ну и параша ебаная блядь.
>>1799742 Тупо скопировал модули из другого venv и заработало. На всякий случай проверил на новом проекте, слил последнюю версию либы, в ней та же параша. Сука уроды нахуй они старые версии в репозитории перепилили, конченые блядь. Возможность программировать, собирая приложение из чужих кубиков, дико увеличила производительность и возможности одного человека, но за это приходится платить тем, что тебе кто-то в салат насрет когда не ждешь.
>>1794292 >что мне нужно делать с самого начала принять факт что гит кривое говно и начать разбираться в этом говне (читать читать читать читать и еще раз читать)
>>1799663 Ну ок. А о каком уровне Решения мы говорим? Сказали сделать и ты сделал? А как же проектирование и тп? Я имею в виду что это работа командная, тебе дали какой-то модуль, ты знаешь его запилить грамотно. Но без опыта работы ты мидлом не будешь, даже, если ты умеешь решать задачи.
>>1799929 Наверное да, хотя я постоянно учу новое, да и на этом проекте приходится добавлять разные технологии, вот сегодня выкатили еще требования. Ну и приходится быть девопсом, так как у нас не мог их набрать. По сути у меня только фронты и тестеры есть, все остальное я делаю, да и то тестеры не могут в авто тесты.
>>1799984 повтори все что есть в видео хауди хо джанго за час, я вот даже думаю написать книгу по видео хауди хо джанго за час офк станет бесцелером а потом еще можно и пару кинолент снять по ней
>>1799994 >я вот даже думаю написать книгу по видео хауди хо джанго за час офк станет бесцелером Это как Прохоренок на пол книги скопипастил доки Qt без пояснений, и гляди-ка — "Создание оконных приложений на PyQt" за косарь рублей.
Ну да. Там такое: render - это функция, которая собственно формирует окончательный html-код на основе шаблона. Она принимает по дуфолту три параметра: 1. request (ты его получаешь ещё как входящий параметр в функции) 2. путь к шаблону относительно папок template 3. словарь с наборами ключ-значение, где ключами выступают текстовые значения, а значениями... значения, которые им будут соответствовать, в html-код вставится их текстовое представление.
Зачастую словарь заполняют прямо в параметрах функции, но я сначала его собрал и потом передал одной переменной. Ну "Красивое лучше, чем уродливое", "Явное лучше, чем неявное", "Читаемость имеет значение" - вот это вот всё. Главное, за что я для себя выбрал пайтон (ну и универсальность, конечно, тоже). Есть ещё альтернатива - функция locals(), её можно передать третьим параметром и она зашлёт темплейту все использовавшиеся локальные переменные.
Соответственно в тексте шаблона инструментами шаблонизатора djinja ты можешь подставить в конструкции {{ }} ключ из того словаря и эта конструкция заменится на str() значения по этому ключу.
Объясняю я не идеально, а тут ещё показывать надо бы, но, надеюсь, понятно. Вот здесь достаточно понятно и с примерами, но читай внимательно, к чему они подводят - это по старому джанго 1.10 и сейчас render_to_response неактуален. https://overiq.com/django-1-10/loading-templates-in-django/ Примерно оно же по русски, но меньше кода и тоже старая версия: https://djbook.ru/ch04s06.html
Хм-м... Интересно. Тут и ещё в паре мест говорится, что Djinja нужно устанавливать и импортировать отдельно, но при этом если её не устанавливать (в pip list её нет), то там что-то типа встроенного языка шаблонов работает по сути так же, как описано на сайте дзиндзи... Возможно, это придётся иметь в виду в требованиях к автору фронтэнда.
Расскажите, откуда вы книжки пиздите? В шапке вроде старые издания, а хочется свежака, чтобы потом не разбираться дополнительно, что за годы изменилось, на рутрекере и флибусте (хуй знает откуда еще книги пиратские качать) даже укуса питона нет (на рутрекере укус есть в редакции от 2009)
>>1800037 Советуют всем рандомную хуйню, наверное. То же с этим вашим укусом.
>>1800043 Свежая пиратчина на sanet, несвежая на libgen. Но это оригиналы. Переводную хуйню слабо воруют, мало кому это нужно, да ещё и зачастую в виде говносканов.
Питонач, я пытаюсь научиться работе с udp. Сначала использовал socket.recv()? У меня как-то получается, что если я пошлю несколько сообщений достаточно быстро, то они в буфер залезают все целиком. При этом некоторые сообщения по байтам \x00 разваливаются, так что их декодировать не получается. Затем я попробовал воспользоваться UDPServer с ивентом handle, но там такое же поведение со склеиванием сообщений. Я понимаю, что датаграммы могут как угодно приходить, но есть ли возможность обрабатывать датаграммы по отдельности, а не читать из буфера и получать битые сообщения? Не может же быть, что это фича TCP.
Как локально установить библиотеки? Есть у меня набор файлов-библиотек. И мне надо установить их не через pip, а только с помощью файлов. Может кто-нибудь полному нубу расшифровать? Те решения которые я нахожу напоминают ту картинку "нарисуй сову". Скопируется на локальный диск - изменить директорию path на pip install и т.д., в общем вообще непонятно.
>>1800172 Что это значит? У меня вообще через конду все. Если просто запихать в ее библиотеки, то библиотеки пишутся как установленные, но сами библиотеки не работают, лол. Я тепенький.
Вот все советуют запилить свою борду. А можете пошагово сказать как и на чем, джанго подойдет для этого или выбрать другой фреймворк? Надо самому пилить или опять же заюзать фреймворк? И что даст если я все таки напишу. Какой опыт.
>>1798894 Проблематика написания http серверов, работающих с базами данных, она сама по себе непростая. Недостаточно просто знать питон чтобы сразу начать писать приложения на джанге.
>>1798894 Тебе для начала надо просто полуркать как веб-сервисы работают и взаимодействуют, что такое реквест-респонз, их методы, что такое RESTful API, изучить хотя бы немного базы данных, и тогда будет всё понятно. Джанга на самом деле проста и удобна для разработки.
>>1800216 > The Run method queues code to run on a different thread (usually from the "thread pool", which is a set of worker threads managed for your application by .NET)
>>1800185 У recvfrom такое же поведение. Насколько я понял, recvfrom позволяет еще и адрес отправителя прочитать. Данные же опять из буфера кусками читаются
>>1799884 > Но без опыта работы ты мидлом не будешь, даже, если ты умеешь решать задачи. Моего знакомого через месяц работы джуном сразу сделали мидлом. Комерческого опыта не было, но было нихуевое количество пет проджектов в портфолио. Так что опыт опыту рознь, все сводится к умению решать задачи самостоятельно.
Что можно написать на питоне на продажу? Что востребовано? Для фриланса или для конторы. Или чисто если самому, и продавать потом как делают инфоцыгане с курсами, только не сам курс, а чудо-программу.
>>1800422 Ну вот, нахуй он тогда вообще нужен? Куда его можно воткнуть? Писать барс для поликлиник? Если говорить о работе на дядю, или писать парсеры для тупоголвых на кворке?
>>1800614 >Что все? ну мы же про многопоточность и асинхронность говорим
>тебе еще и генераторы корявые? вообще то да. и LINQ почитабельнее будет. Ты просто привык к генераторам. Скомбинируй несколько for .. in в генераторе и посмотри насколько "легко" это читать
>а я и не спорил, вооот. прими как данность истину, что реализация async в питоне не такая удобная как в шарпах побрей голову и иди в монастырь просветленным
Задам свой вопрос тут, потому что мне посоветовали разрабатывать именно на Пайтоне сам я, к сожалению, не уверен, насколько это правда.
Суть в чём - у меня есть интернет-агентство и мы занимаемся трафиком: разные источники данных (рекламные системы, системы аналитики и т.д.) и разные наборы данных. Хотелось бы это собрать в один какой-то удобный вид, поэтому: Задача 1 - написать какой-то набор коннекторов с этими самыми источниками данных (яндекс директ, яндекс метрика, гугл аналитикс, колтач и т.д.).
Далее, хотелось бы это всё куда-то красиво отображать, чтобы была возможность выбрать срез, дату и т.д., Задача 2 - написать отображение собранных данных. Как я понимаю, это можно сделать в Power BI и в Google Data Studio, например, да и просто в свой web-интерфейс.
Следующий шаг - это обработка и аналитика тех самых данных: прогноз, аналитика, выявление закономерностей. Вот тут, как я понимаю, и приходит очередь именно Python, потому что, как я понял, у него есть какие-то классные библиотеки и всякое такое. Ну ещё есть язык R, но для него отдельного треда в программаче нет. Задача 3 - какая-то постобработка собранных данных. Тут, конечно, самый сложный момент, потому что нужны математические модели, что именно куда делать, и я в этом пока не особо силён. Поэтому, данный пункт в целом пока откладывается.
Резюмируя, первые два пункта готов начать делать уже сейчас. По финансам - конечно нанимать команду разработчиков не потяну, потому что это на уровне идеи всё, которая пока не будет окупаться. Но и "за портфолио" работу тоже не предлагаю - вполне себе всё оплачиваемо. Рад буду, честно говоря, любым комментариям, советам и предложениям. Новичкам тоже рад - я сам новичок в заказывании разработки, поэтому оно может и интереснее было бы так скооперироваться.
>>1800887 Да, и я достаточно регулярно тут сижу, поэтому с радостью выслушаю любое мнение или критику. Особенно интересует Задача 3 - я, получается, с трудом представляю не только реализацию, но и саму задачу: для чего вообще нужна эта постобработка? Глобально, хотелось бы, чтобы на основании данных строились какие-то закономерности, которые можно было использовать. Например, у нас с такого источника 1 лучше конвертируется форма 1, а с источника 2 лучше конвертирует форма 2. Глазами не всегда такое получается заметить, а система сама бы выдавала подобные "находки". Подобное вообще возможно реализовать на программном уровне? И если да - то куда мне стоит вообще сейчас обратиться, чтобы хотя бы на базовом уровне начать понимать? В Data Science?
Аноны, помогите, я застрял в мухосране 50к населения на 2 недели без опыта работу, нашел it офис и прошел собеседование на backend разработчика, но они работают на php7+ И node.js, сказали берем на стажировку 2-х недельную, стоит идти если делать нечего? Я не хочу с питона уходить, но мне как веб разрабу пригодится такой опыт?
>>1800887 Звучит слишком просто, лол. Какие тебе там мат.модели нужны? В машинное решил вкатиться чтоли? >>1800897 Ну смотри. Есть несколько главных направлений, которые у тебя применить можно, машинного: Предсказания. Классификация. Всякая работа с текстом и прочими изображениями.
И всякие прочие задачи дата-анализа: Когортный анализ. Анализ метрик. A/B тесты.
Предсказания, собственно, строют функции предсказаний. Модельку можно обучить (скормить ей н-данных), получить хороший результат на тестовых данных и на ней ориентироваться. Моделек куча, под разные данные. Смысл в том, чтобы скормить им грамотное количество характеристик. В продажах работает не очень круто и многие разочаровываются. Как правило из-за резкой смены потребительского поведения.
Классификаторы же довольно интересны - это выстраивание "достаточных" отличительных признаков для каждого сегмента, классификация и в результате - у тебя с помощью машины есть ярко-выраженные сегменты потребителей, обоснованные математически.
Когортный анализ - это метрика, когда пользователи разбиваются на когорты (например, пришли в эту неделю) и за этой когортой следится н-времени. Профит в понимании, что происходит у заказчика в клиентах.
Метрики - есть куча отработанных метрик, чета даже хз, зачем упомянул. Всякие LTV и прочие вещи, типа юнит-экономики, за которую нужно за яйца повесить ебанное ФРИИ. Питон позволяет их на изи считать и визуализировать. А крутой спец тебе еще и дендрограммоподобную хуйню запилит по источникам.
A/B-тесты - если у тебя до сих пор нет такой услуги, то можно ввести. Это разбиение группы пользователей на две, одна пользуется старой фичей, другая - новой. Потом сравнивается статистически.
Есть еще крутая статистическая база, которая позволяет проводить стат.тесты и прочую красивую хуйню. Ну там искать выбросы, сравнивать, нормализировать данные. Для тебя это интересно с позиции сравнения источников.
А, да, с позиции работы с текстами и прочей хуйней в машинном - за таким уже к сатанистам, да, причем копейку они немалую выкатят. Но иногда необходимая штука.
В общем, придумать много что можно. Это тебе на максимально простом уровне. Чувак сверху требующий тз никогда с заказчиками не работал, лол, походу.
>>1800907 Ещё бы я умел писать ТЗ Сейчас погуглю варианты и набросаю по первым 2м пунктам, но сюда не буду уже прикладывать, наверное, логичнее будет отправить тем, кто уже с предложением напишет на почту
>>1800914 >типа юнит-экономики, за которую нужно за яйца повесить ебанное ФРИИ
Хех, а ты разбираешься. Ты разработчик? Или ты со стороны бизнеса как раз?
Осилил, но если это "максимально простой уровень", то видимо мне предстоит ещё много этапов понимания пройти. Есть может какие-то курсы на эту тему? Или хотя бы - как это гуглить?
и да, буду рад, если оставишь свой контакт или напишешь на почту - спамить не буду, но вопросы позадаю, если не против
>>1800928 Я аналитик, которому пришлось стать разработчиком, потому что разработчики - ленивые унылые хуесосы. В результате пилю сам себе инструменты и скрипты автоматизации.
Фейка не имею, а писать тебе с настоящей почты, где у меня ФИО - такое себе. Ну из всего описанного только метрики и сложно. С ними можно только столкнуться либо случайно подглядеть в момент работы где-то. Может кто и обучает им. Статей видел пару штук по расчетам.
Остальное даже хз, как не понять. Тебе скорее всего надо БД развернуть нормальную сначала. Что-нибудь на постгрессе, если бесплатно хочешь. Потом уже остальное. Большая часть аналитиков не ебет, как это делать. Я тоже только обращаться и работать с ними умею. Разворачивал только один раз для лулзов. Дальше уже скрипты (пайплайны) которые обращаются куда надо и туда инфу записывают. А потом уже остальное думать.
Сап, питонисты. Поясните один абстрактный вопрос. Оценил, какой питон классный, когда надо набросать какой нибудь скриптик для автоматизации чего нибудь, или быстро прототип какой нибудь накидать. Но как вы пользуетесь чужими библиотеками при динамической типизации? Поясню: если язык статический, ты пишешь var x = new Xyuta(), а дальше x. и наблюдаешь все методы и члены экземпляра. Таким образом можно по именам методов сразу минимально вкатиться в новую библиотеку, а какие то тонкости уже идти задрачивать в документацию. Но в питоне (и подобных) x - это для ide именно, что x. Т.е. чтобы разобраться в любой сторонней либе, нужно натурально ее всю перелопатить? Сам не программист, вкатываться не собираюсь, для себя тыкаю разное порой, поэтому прошу ответить просто и без снобизма
>>1801072 >В vs code, по крайней мере Я не знаю насчет vscode, но пайчарм понимает почти все виды аннотаций (и не только), и нормально работает со всеми популярными библиотеками. В крайнем случае читай документацию к библиотеке.
Само собой это не будет работать! Ведь я задаю всем объектам которые консервирую одно и тоже имя! Но что я ещё могу предпринять?! Я же не могу автоматизировать создание переменных под эти объекты, с каждый раз новыми именами... Если это и возможно, в книге этого пока нет! Меня это очень бесит, я просто сижу и смотрю в экран. Подскажите мне пожалуйста, если не ответ, то хотя бы на что обратить внимание.
>>1801296 >Я же не могу автоматизировать создание переменных под эти объекты, с каждый раз новыми именами... Если это и возможно, в книге этого пока нет! Запахло классами вроде?
>>1793243 (OP) Сап, программисты - анальники как и я Помогите пж новичку
Вопросец про threading
Моя программа, попытка таймера для учета рабочего (и отдыха) времени, когда я хочу запустить демон для метода моего (экземляра класса MyTimer) объекта таймера, он просто не запускает его как демон, а просто как без мультитрединга, то бишь ждет выполнения до конца, (а там бесконечный, мать его, цикл), и невозможно ввести ничего с клавиатуры из команд, даже print(' hui') не выводит
>>1801543 У меня тоже кстати часто такая хуйня, ебешься с чем-то, гуглишь неск. часов, в конец заебываешься, идешь спросить на стаковерфлоу или хотя бы двачик, и пока формулируешь вопрос - озарение приходит (или чуть погодя, после того как вопрос задал)
Не могу устанавливать packages через nuget В случае с nuget package installer высвечивается пикрелейтед 1 В случае с nuget gallery - не могу ничего установить, не появляется кнопка
>>1801345 Итак, при помощи антинаучного способа, связка этих двух функций теперь начала выдавать список всех рекордов, который попадают в файл. Но я понимаю, что это не правильно. Это работает только если файл изначально пустой. Касаемо индексации, как я могу индексировать объекты из бинарного файла, если я постоянно даю этим объектам одинаковое имя?
>>1802269 Сначала проверяй наличие файла try... except громоздки, вместо них используй оператор with Промежуточные переменные scores1 и scores2 не нужны, добавляй сразу в scores
Питонисты, помогите плз, по функционалу всем устраивает и удобен пучарм, но у других видел саблайм, и какой же он красивый, цвета и шрифты очень зашли, есть какая-нибудь тема на пучарм, чтобы выглядел как саблайм?
>>1802260 у объектов в листе, блять, нет имен. Достаешь их по индексам из него после того как добавил. Это же как у тебя бы были переменные hui1, hui2, hui3, вместо этого теперь у тебя есть лист hui и в нем hui[0] == 1, hui[1] == 2 и так далее. В чем проблема? Словарь тоже для этого подходит если тебе нужны какие-то конкретные имена (хотя я хз зачем).
>>1802482 Причем здесь ЖС? У тебя есть вьюха страницы в виде html-документа. У тебя есть Web-сервер. Ты выполняешь GET-запрос через адресную строку браузера, постучавшись к порту сервера, и он отвечает тебе телом соответствующей доменному пути html-страницы.
Посоны, я не понимаю, пытаюсь через консоль PyCharm запустить скрипт flask run, мне консолька пичарма пишет, что > "flask" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. При этом через кнопочку все запускается, а сам модуль flask в venv добавлен. Что я делаю не так?
>>1802542 Ну ты издеваешься? Дали годнейшую книгу, одну из настольных, где все азы, дальше уже гуглить что надо после понимания азов. Ты наше терпение тестируешь?
А как лучше записывать словарь с разным количеством значений у ключей в базе данных, чтобы потом их было проще доставать, изменять и добавлять? Ключи в первой строке, а значения во второй, третьей и т.д. или на каждой строке свой ключ/значения?
>>1802590 Не совсем понял, что у тебя за структура данных.
Ты хочешь, чтобы ключ был, например, "animal", а для такого ключа могли быть значения вроде dog, cat, и т.п., в общем много значений?
Что за СУБД при этом?
Вообще ключ должен быть один, иначе это не совсем ключ уже. Просто как ты будешь эти данные редактировать? Скорее всего подразумевается, что по факту у тебя составной ключ, он реально состоит из двух полей.
Можно сделать комбинированный ключ, вроде "animal:cat", но так тебе будет сложно делать выборку.
Второй вариант, ты делаешь одну таблицу ключей, а таблица значений ссылается на таблицу ключей. Это классический SQL подход. Ну или можешь упрощённо сделать, что ключ это лишь одно из полей твоей таблицы. Иногда лучше проще.
Всё зависит от того, какого рода запросы ты делаешь и какой функционал тебе нужен, какие выборки нужны, как данные можно в базе менять и т.п.
и надо(ну не то чтобы надо, я просто не знаю как иначе, только учусь) это где-то хранить в простом виде, чтобы во время работы скрипта добавлять/удалять новые ключи и значения у уже доступных ключей, и продолжать работать с эти же словарем после перезапуска.
>Что за СУБД ткнул пальцем в небо и выбрал sqlite3
>>1802472 Ну например саблайм вроде не подсвечивает переменную, которая нигде не используется, бесполезные импорты не отмечает. Не знаю, есть ли там форматирование по пеп8, и отмечает ли он проебы в пеп8 вообще, еще какие-то мелкие фишки такие (могу ошибаться, я с саблаймом не работал, но видел, что у других он ведет себя вроде так)
>>1802788 А в чем разница для джанги? Несколько дней уже джангу ковыряю на коммьюнити версии, проблем со стороны пучарма не вижу, модели вьюхи урлы открываются, хтмл темплейты открываются, каких фичь не хватает?
>>1802798 Честно говоря я этим делом года-пол или чуть более назад занимался, загвоздка была в том что он не создавал проект под джангу, и еще вроде с синтаксисом какой-то трабл был, но мне щас пока саблайма хватает, а там видно будет, ща сижу плагины накатываю на проверку ошибок итп
>>1802805 так проект сама джанга создает в консоли же, после стартпроджект. А потом просто manage.py открываешь пучармом, кликаешь типа "открыть в проекте" и все
>>1802975 Очень интересно. И насколько книга, написанная по третьему Питону, написанная для вката в Питон, может быть неактуальной для вката сегодня в Питон?
>>1803022 1) self не пишется, когда ты создаешь статический метод класса (помечается через декоратор @staticmethod). Есть еще @classmethod, но он юзается чуть чаще, чем никогда 2) Разумеется, можно. В этом суть ООП.
>>1803011 >Зачем self пишется? Чтобы использовать братские методы внутри одного класса. Например, в твоем случае в методе test_one можно будет вызвать test_twoвыглядеть это будет как self.test_two(). Если ты попытаешься удалить в параметрах этих методов self'ы, то интерпретатор скажет, что ты охуел и попытался вызвать второй метод до того, как он он был заассайнен.
>>1803081 Не могу понять в чем суть декоратора. Можно в одной функции определить другую, а потом через первую можно поменять вторую? Сколько не читал не могу въехать в этот сахар в чем удобство и прикол. Можно в двух словах чтоб прям было ясно плис.
>>1803124 Так оно тебе точно надо? Это пиздец муторно, сложно и не нужно, если ты не разработчик в команде. А так, тут нужно основы ООП в принципе начинать...
Аноны, кто работает, поясните плз за отношение к гуглению на работе. Я знаю, что гуглить по кд для прогера на работе норма, но все-таки, я вот сейчас сел делать для себя пробный проект и чувствую себя дебилом, т.к. литералли почти перед каждым действием гуглю, нахожу куски чужого кода, иногда маленько меняю, а иногда беру как есть и вставляю.
За такое будут пиздить палкой, или это стандартная практика? Где вообще грань между идиотом, который ничего не умеет и только гуглит и разумным использованием гугла.
>>1803272 >Где вообще грань между идиотом, который ничего не умеет и только гуглит и разумным использованием гугла. Ну судя по твоему опыту, то первый. Либо боишься делать, либо ничего не знаешь. Подгугливать это нормально. Но если ты 99% гуглишь, то хз.
>>1803297 >Ну судя по твоему опыту, то первый. Либо боишься делать, либо ничего не знаешь. Ну я пару дней почитал-посмотрел всякую хуйню по джанго, а сейчас начал делать впервые свой проект, и я же даже методов нихуя не запомнил, поэтому приходится подгугливать и чекать даже хуйню типа ... = models.CharField(max_length=50)
>>1803304 Просмотр видосиков и чтение литературы на самом деле не является процессом изучения подобных сфер, но является очень хорошим способом получать метазнания, тоесть знания о том с помощью какого инструмента можно решить проблему и примерно как это работает. И вот только уже решая с помощью этого инструмента что-то, ты его непосредственно изучаешь, тоесть процесс гугления и есть истинный процесс обучения, но без метазнаний конечно тоже никуда...
>>1803272 Похуй, важен результат. Проблема гугления в бездумном копировании чужого кода. Однако если ты на работе, в 50% случаев гугление тебе не поможет напрямую, а только даст направление, которое нужно переделать/доработать (если ты конечно не гуглишь всякие базовые функции), а то и просто дискуссию по которой ты уже понимаешь, что делать. Тащемта, иногда вообще приходится находить автора какого-нибудь модуля, и делать дистанционный минет, умоляя рассказать, как он работает.
Ну и в любом коммунити языков тот факт, что проггер - человек, зарабатывающий на поиске фраз в гугле - давно стало мемом. Не просто так.
>>1803119 Декоратор - обертка для нескольких одинаковых функций, чтобы не дублировать в них одну и ту же часть кода. Ты спросишь: а почему бы тогда просто не создать функцию и использовать ее в этих "нескольких одинаковых функциях"? Да потому что обертка может включать больше одной функции, и тебе придется нестить их в одном и том же порядке. Например:
>>1803346 ну у тебя же в вопросе ответ, тебе пишут что фласк не является исполняемым, а раз через кнопочку запускается и работает значит запускается не фласк, я вообще не ебу че там во фласке и как оно работает, но скорее всего надо запустить не flask run, а "python flask run "
>>1803349 Блин, забыл добавить, через обычную консоль винды все работает и flask run запускается, не работает именно через консоль пучарма. py flask run в консоле пучарма тоже не работает.
>>1803461 активно использую 5 яп из того списка что я знаю.
в процессе прогинга получаешь опыт, то есть знание нюансов полученных знаний. но сами знания получаются от чтения литературы, статей, чужого кода и т.д.
>>1803455 Во-первых, я писал, что все и так работает, проблема была только с тем, что я не понимал почему командная строка пучарма не видит подключаемые модули. Во-вторых, вот тут >>1803421 я написал как решил проблему. В-третьих, область видимости в питоне это вообще про другое.
>>1803466 > активно использую 5 яп из того списка что я знаю При этом ты еще ни разу не работал. Понимаю. Очень релевантный пример. > в процессе прогинга получаешь опыт, то есть знание нюансов полученных знаний. но сами знания получаются от чтения литературы, статей, чужого кода и т.д. Нет, если ты не пересаживаешься после 5 лет джавы на шарпы, то от просмотра чужого кода или чтения литературы ты нихуя не получаешь без практики.
>>1803481 >При этом ты еще ни разу не работал конечно не работал. разве на этом сайте сидят те кто работает. тут только джуны ищущие работу ))))
>то от просмотра чужого кода или чтения литературы ты нихуя не получаешь без практики. ты получаешь ПОНИМАНИЕ происходящего. Если у тебя сформировалась четкая картина че где как, то остается только практика, чтобы закрепить. Без понимания ты слепой котенок
Разница лишь в объеме закрепляемых знаний за один шаг. Лично для меня шаг "прочтем главу книги и закрепим" слишком мелкий шаг. Я читаю по диагонали или вдумчиво все до чего дотянусь пока не сформируется понимание "ах вот как в этом языке все устроено". Ну а далее дело практики для закрепления. Если нет понимания - нечего закреплять. Когда кодишь "потому что так в книжке/гугл" и не понимаешь суть - ты не учишься.
так что без чтения "чтобы разобраться" не выйдет. но конечно если я разобрался в "старом языке, а в новом то же самое", то я могу сразу переходить к практике
>>1803304 >и я же даже методов нихуя не запомнил, поэтому приходится подгугливать и чекать даже хуйню типа ... = models.CharField(max_length=50) абсолютная норма. Так работает мозг - запомнит, только то, что используется. Потому в начале практики тупняк это нормально. Главное чтобы ты понимал то, что пишешь.
>>1803495 >разве на этом сайте сидят те кто работает В /po и /b постоянно залетают Большие Дяди Прогеры с доходом от $5к - изи вообще. Пруфы нужны? Это борда успешных состоявшихся людей
>>1803495 > конечно не работал. разве на этом сайте сидят те кто работает. тут только джуны ищущие работу )))) Не только > ты получаешь ПОНИМАНИЕ происходящего. Если у тебя сформировалась четкая картина че где как, то остается только практика, чтобы закрепить. Без понимания ты слепой котенок Чел, ты, по твоим же словам, "знаешь" минимум 6 языков, из них 5 "используешь активно". Я не уверен, понимаешь ли ты насколько это абсурдно звучит, но знать и активно использовать 5 языков, во-первых, нахуй не нужно никому, во-вторых, невозможно. Офк, если под "знать" подразумевать уровень хотя бы junior+ или даже middle, а под "активно использовать" 1-2 проекта в год на этом языке. Написать хеллоу ворлд и пробежаться по основному синтаксису -- это не "знать", это хуйня, которую можно за 1 неделю по вечерам разобрать, если не совсем дегенерат если это не твой первый язык. > Разница лишь в объеме закрепляемых знаний за один шаг. Лично для меня шаг "прочтем главу книги и закрепим" слишком мелкий шаг. Я читаю по диагонали или вдумчиво все до чего дотянусь пока не сформируется понимание "ах вот как в этом языке все устроено". Ну а далее дело практики для закрепления. Если нет понимания - нечего закреплять. Когда кодишь "потому что так в книжке/гугл" и не понимаешь суть - ты не учишься. Нет, ты берешь и делаешь свой простейший проект. Типа микроблог на джанге или CRM на шарпах/джаве. Вот когда сделаешь -- тогда ты попрактиковался.
>>1803529 > Твоя изначальная проблема была в запуске всего под виндой кстати Линупсошиз, плс. > а не в "командная строка пучарма не видит подключаемые модули" Батник перезапустить пришлось бы и на линупсе. Ну, и да. Серв висит на центосе, если что.
>>1803533 >нахуй не нужно никому, во-вторых, невозможно значит быть фулл стек разработчиком можно (а это подразумевает знание фронтенд и бэкенд языка, и не факт что это один язык, и много чего другого), а писать на нескольких не из стека нельзя. Ага ага Можно выучить один язык и пихать его во все щели. А можно использовать более подходящие языки. Все зависит от человека и его способности, а главное желания, обучаться.
>Вот когда сделаешь -- тогда ты попрактиковался. Разве я отрицаю практику? Но практика без теории ничто - тупое копирование нагугленного. И потом в этом треде глупые вопросы про основы http потому что понимания нет.
>>1803551 Спешите видеть, гений иронии в треде. Тот же файл с тем же именем, но с другим расширением запустить -- надо обязательно пояснять, чтобы не дай бог тонкая организация линупсошиза не пострадала.
>>1803551 "Знаю 5 языков" в прогинге является синонимом "не знаю толком ни одного, но выебываюсь своей мнимой многозадачностью"
>значит быть фулл стек разработчиком можно Фуллстек подразумевает существование на стыке фронта и бэка, причем не со знанием 5+ языков а с хорошим знанием как правило лишь 2х (или вообще одного, если это JS Node + front, но с пониманием сопутствующих технологий). И да, сеньор фуллстеков как таковых не бывает (даже если есть такая лычка это ни о чем не говорит), нельзя быть дохуя пиздатым во всем, и работодатель это понимает
Как в пайчарме настроить боковую правую панель (где скролл) чтобы там отображались лишь ошибки, закладки да изменения в коммитах, чтобы warning там вообще не появлялись, а то крупные модули засираются как на пикриле (нет, это не мой код такой, это крупный сторонний проджект)
>>1803668 > "не знаю толком ни одного, но выебываюсь своей мнимой многозадачностью" по себе судишь ) еще скажи блин что полиглоты (которые обычные языки знают) пиздят нет ничего сложного знать несколько языков на высоком уровне то есть уметь в высокоуровневую магию + стандартная библиотека. Знание фреймворков к этому не относится.
Привет ребят, можно ли в питоне запустить код во время его работы(при каком нибудь условии) и чтобы два экземпляра одного кода работали одновременно? Если можно то как это сделать?