24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
— Какие книги считаются лучшими? На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых? Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
Я всё забыл и скакал по пхп, вба и мразотных павершеллах. Везде платят деньги. Как вернуться обатно и стать чотким питонистом с вскодами, гитами и венвами? Первым в очереди Бидон Дип Дайв в четырех частях, может ещё полирнуть книгой флюент питон. При этом я хочу очень выучить жабаскрипт, почти к каждому сайту, который я регулярно посещаю, у меня есть юзерскрипт, у меня куча оплаченных работ на жс, но я его нихуя не знаю. А ещё очень хочу выучить голенг, чтобы быть чотким стендэлон кодером. Как всё это совместить? И это я старый дид, как зумеры выдерживают такую гонку? Или у них такого нет?
Нихуя не понял, уже весь мозг сломал. В первом случае коллбек видит переменную из верхней области видимости. Буквально такая же хуйня во второй функции, там блять коллбек не видит переменную. Какого хуя?
Аноны подскажите новичку как код тестить, в плане что именно использовать, есть юниттест, пайтест и какие то ассерты, что из этого мне надо? Я не в тестировщика иду а так, для общего развития.
>>2933394 Можно unittest, можно pytest. Не настолько велика разница. pytest типа современнее и прогрессивнее, но не так сильно на самом деле. unittest в коробке.
Логика там примерно одинаковая. pytest современнее и менее замороченный, в чём-то он проще, unittest больше завязан на классы, чуть больше там лишних слов...
Для общего развития необходимо уметь, это ты всё правильно делаешь.
Вообще читай литературу, очень много для новичков, в том числе на русском. Общая идея -- составляешь тест, это функция или метод класса (в юниттесте обязательно метод), внутри этой функции поверяешь, что скажем нужная рабочая функция с нужными параметрами-условиями работает так, как надо.
Понятно, что в реальной работе всё усложняется, когда всякие моки и т.п., ну это ты сам дойдёшь до этого
Для чего нужен scrapy? Для каких проектов он может пригодится? В чем преимущество асинхронности, если большинство сайтов ахуевает от нагрузки request.get() в простом цикле и начинает давать ошибки. Объясните пожалуйста.
кроме шуток, я бы реально советовал вкатунам серьёзно вложиться в технологии тестирования, или pytest, или unittest. И ещё желательно в отладку и профилирование.
Это совсем не тоже самое, что идти в тестирование. Эти скиллы нужны, востребованы, а начинающих скорее всего захотят бросить как раз на это, тестами покрывать, разбирать регрессии, баги всякие искать.
И вообще полезно, понимание улучшает очень сильно.
Двач, помоги Хз по адресу ли я, но проблема с тем что я на питоне накалякал, так что почему бы и нет.
Мне надо отправлять файл на почту скриптом на питоне, я нагуглил, сделал, отправляю на свои ящики гмейла и яндекса, на гмейл приходит и в приложение и в веб, на яндекс тоже приходит, но в приложении файл появляется не сразу, а через минуту-две, в вебе не появляется вообще. Задержку появления терпеть можно, а полное отсутствие - нет. При этом само письмо отображается и само по себе и в списке в папке "письма с файлами".
Как это можно пофиксить? Отправляю тоже с яндекса (уходить не варик, корпоративная почта), не отправлять на яндекс тоже не варик - работать должно на любом ящике.
>>2933857 Я когда-то вкатуном был, то не понимал смысла этих тестов. А потом как понял... pytest, unittest, mock, patch, sanity tests, integrations tests...
Двач, нужна помощь. На работе использую Django + joeflow, и вот какая проблема возникает: В админке копится куча тасков в самом низу страницы, может доходить до десятков тысяч. Надо бы пагинацию там настроить, но в самой джанге похоже этого нет. Ковырял папку аж до django\django\contrib\admin\templates\admin\edit_inline\tabular.html это именно тот шаблон, который рендерится там, где возникает проблема, и там даже нет намека на пагинацию. Так вот, анон, может ты знаешь, как можно добавить туда пагинацию?
>>2933091 (OP) Я бек-разработчик который вынужден тесно взаимодействовать с командами DS/ML. Недавно дошло что было бы удобнее работать с командой датасаентистов следующим образом: Они заливают весь свой код (который тоже на питоне) в определенную репу в гите, я при сборке своего питон-проекта подтягиваю код из ветки master этой репы, собираю его в некую либу и использую вызовы методов/функций из этой либы
Но у меня нет подобного опыта. Как это проворачивать? Как подтягивать код из удаленного репозитория и собирать его в "либу" которая будет юзаться у меня? Я всегда подтягивал код при помощт команд pip install / poetry install где в конфиг-файле я прописывал название либы и версию, но это ж только в случае если либа лежит в pypi, это не мой случай
>>2935536 >>2935546 >>2935550 По-видимому, это связано с версией питона на этих сайтах. Тайп-хинты с 3.5 поддерживаются, хз че они падают. Видимо, не все виды тайп-хинтов во всех версиях поддерживаются.
>>2933091 (OP) Сап, аноны. Я в питоне новичок, да и вообще моя профессия не связана с программированием (я биохимик-докторант). Но когда-то учил питон и взялся написать одну программу.
В общем, она уже почти готова, но столкнулся с одной проблемой. Вот есть страница, если я правильно понимаю с динамическими элементами на яваскрипт https://kinase-library.phosphosite.org/site . Там есть форма и надо отправлять запросы по списку типа DLSDDDSDLDDS (это последовательность аминокислот если что, означает аминокислоту с фосфатной группой). Хотя формы на html я не нашел, соотствующие запросы можно отправлять тупо используя адресную строку "https://kinase-library.phosphosite.org/site?s=DLSDDDS*DLDDS&pp=false&scp=true" без всяких форм. Проблема в том, что надо выдернуть из данных на этой странице названия первых трех киназ в таблице (в данном случае PLK1, ACVR2B, ACVR2A). И заковыка в том, что html код страницы с запросом (в смысле если нажать source code в mozilla) и страницы с ответом одинаков. Как я понимаю, эту таблицу генерирует какой-то яваскрипт в реальном времени используя базу данных. Так вот, как выдернуть эту информацию или хотя бы подскажите в какую сторону копать. В учебниках такого нет, либо плохо искал
Не дебил, дудосить сайт своими запросами не собираюсь, хотя их планируется пара тысяч, думаю делать между ними перерывы в 10-20 секунд.
>>2936802 Там при нажатии кнопки запросов нет, скорее всего это ЖС либа у них написана, которая все вычисляет Можно заюзать селениум, но у них может стоять защита от такого и возможно, что придется ее обходить (а может и нет) А ты либы на питоне пробовал искать?
>>2936802 Ты нормально написать можешь, биохимик-докторант, ёб твою мать. Просто написать: есть страница вот ссылка. Нужно выдернуть вот это говно: прикладываю скриншот. Просто пиздец. Я 2 раза прочитал, ничего не понял. Киназы какие-то. Вы там все такие?
>>2936802 Там под таблицей кнопка "скачать результат". Можешь скачать результирующую таблицу как файл, открыть обычным образом в питоне как текстовый файл и посмотреть в ней любые данные.
>>2936931 Можно наверно даже не сохранять файл на диск, а прямо из полученной переменной реквеста смотреть. Но сохранить временный файл проще всего для нюфани. Мозги себе не конефолить, за одно бэкап полученных данных делать удобнее, на будущее, для отладки.
>>2936944 >>2936931 А не, кнопка тоже в JS, тогда файл скачивать можно только через селениум. Хотя я слышал что можно и через requests_html как-то измудриться. Впрочем это не важно.
Зайди во вкладку хрома отладка -> нетворк -> Fetch/XHR Сделай свой запрос. Там одна из строк появится такого вида >https://kinase-library.phosphosite.org/api/scorer/score-site/DLSDDDS*DLDDS/Homo%20sapiens%20(Human)/OCHOA/true/false Как видишь это ответ от апи, который возвращает твою таблицу в не сортированном виде. Попробуй с ней поработать. Сортировка в этой таблице насколько я понял идет в поле "quantileRank". Т.е. то что там первое имеет поле "quantileRank":1, то что там второе "quantileRank":2
Давай дальше сам, мелкие вопросы если возникнут решай через чат GPT на официальном сайте можно по русски с ним общаться.
>>2938458 Питономакак уже настолько много, что за одно рабочее место бьются десятками, если не сотнями. По году и два работку найти не могут. Херки на таких вакансиях ахуели от спроса настолько, что ссут на головы кандидатам уже почти буквально.
>>2938434 Смотря к чему душа лежит. Сишные языки дадут тебе намного больше. Макакить в Питоне - это конечно хорошо, но это уровень владения тем же Excel или Word. Не будешь же вкатываться в Excel и Word, этот вспомогательные инструменты для работы.
>>2936691 Друг, это настраивает количество строк скажем так "на первом уровне" админки. То есть можно настроить количество выводимых строк экземпляров одной модели. Но моя проблема в другом: Когда проваливаюсь в модель joeflow, открывается кастомная админка, которую поставляет joeflow. Так вот в ней уже, в самом низу, есть поле Tasks, по умолчанию скрытое. Оно сразу содержит вообще все таски без пагинации из-за этого может очень долго грузиться страница, поэтому хочу настроить пагинацию именно в этом поле
>>2938781 Мм полноценный бэкенд-язык называть вспомогательным, в таком случае джава и шарпы тоже вспомогательные. >сотня бьётся за вакансию 99 из которых окончили курс "бекенд-розрабочек за 6 месяцев" где они как макаки повторяя за преподом пилили телеграм-ботов и туду-лист на жанге, даже не понимая нахуя они ту или иную кнопку нажимают.
Вкатываюсь в бэкэнд. Жанга или БыстраАПИ? Жанка олдовая, уже скуфом потягивает, а БыстраАПИ быстрый, модный, молодежный. Пока что склоняюсь к жанго, т.к. там наверняка кучу легаси накодили, а значит работы больше.
Интересует только с точки зрения вката, мне без разницы на чем views пилить.
>>2938993 Смотри по вакухам в твоем городе, я бы фастапи учил. Но учти, что там еще дохуя всего есть помимо взаимодействия с фронтом. Я в этом году максимум пару часов гейтвей для других сервисов трогал.
>>2938927 >99 из которых окончили курс "бекенд-розрабочек за 6 месяцев" Утрируешь. Сейчас питон учат в каждой школе и пихают даже на гуманитарные направления каким-нибудь психологам.
>>2938927 >Мм полноценный бэкенд-язык называть вспомогательным, в таком случае джава и шарпы тоже вспомогательные. java/c#/c++/c это языки системного программирования, там куча проектов, где немеряный объём кода, который функционал реализует.
А питон прикладной язык, для взаимодействия с чем-то. Особо сложный объёмный код на питоне не делают.
Поэтому джависту может быть достаточно знать свою джаву, а вот питонисту знать питон недостаточно, нужно кучу всего ещё знать и понимать, в зависимости от конкретного направления.
Это не делает подготовку разработчика на питоне более лёгкой, скорее наоборот.
>>2939189 >объёмный код на питоне не делают Что и нинужно. 2023 год на дворе, кто не может в микросервисы, тот идет нахуй в свою ынтыпрайз легаси помойку работать за еду.
>>2939189 >достаточно знать джаву, а питон прикладной Чем бэк на жаве принципиально отличается от любого другого языка-нейм? Тебе точно так же надо знать фреймворк, базы данных и ещё какую-нибудь хуйню которую вы используете в проде.
>>2939299 >Чем бэк на жаве принципиально отличается от любого другого языка-нейм? классический бэк и не нужно на джаве делать, на джаве можно делать тяжеловесный системный софт, где вся логика внутри кода
>>2939593 >Питон полноценный яп для >датасаенса, прототипирования >ДЛЯ >ДЛЯ Ты сам-то понял, что сказал? Питон - это инструмент. Задачи датасаенса, например, куда шире, чем знания и скиллы по Питону, хотя Питон в состоянии решить почти все задачи, стоящие перед датасаентистом. Поймаешь смысл или разжевать и между ушей затолкать?
>>2938782 >это конечно хорошо, но это уровень владения тем же Excel или Word. Не будешь же вкатываться в Excel и Word, этот вспомогательные инструменты для работы. Хорошо, а какой тогда вспомогательный инструмент у тех, кто работает в проектах на джанге, фастапи?
>>2938782 >Смотря к чему душа лежит. Сишные языки дадут тебе намного больше. Что могут дать "сишные языки" (JavaScript что-ли?) из того, чего не может дать питон? Они беднее на самом деле. Особенно если смотреть на голый Си.
Есть async функция, внутри которого есть if then else. В одном случае запускается await функция, во втором - возвращается None. Надо ли во втором случае использовать asyncio.sleep(0)? Прошарился по форумам, документациям, везде пишут что надо, но в репозиториях такое я видел очень редко. Если его надо использовать, значит ли это, что его надо вставлять во всех async функциях, где может не ввполниться await по какойлибо причине? Это же пиздец как сильно загрязняет код.
>>2940349 Добавлю, асинхронная функция становится синхронной. Это запутывает её поведение при использовании. Когда ожидается что она будет передавать управление циклу - она этого делать не будет. asyncio.sleep(0) позволяет вернуть управление циклу и высвободить ресурсы.
При передаче в фунцию kw-аргумента, если используешь numba (а точнее декоратор jit) словишь гарантированный эксепшн епта, потому что jit тупой и не понимает дефолтных аргументов. Этой проблеме уже больше 3 лет, ни одна блядь и не думает фиксить. Ахуенная либа, всем советую (нет)
>>2940349 Чиво блять? Ты понимаешь что функция становится "асинхронной" в момент ее объявления через async и ей вот вообще похую, есть у нее внутри await-ы или нет?
>Когда ожидается что она будет передавать управление циклу - она этого делать не будет "Переключение контекста" произойдет в момент когда ты эту функцию вызовешь через await, ничего там блокироваться не будет
если весь этот путь, возвращающий None, не занимает большое количество времени, то не нужно отдав управление обратно в луп, ты ведь можешь отложить исполнение корутины которая вызвала эту, не?
>>2940374 Да я просто хочу как лучше, чё ты накинулся-то сразу. Разве плохо делать хорошо? >>2940391 Вот я как раз и про то что await не гарантирует передачу управления, если внутри async функции нечего ожидать. Нет, не занимает много времени, я разницы по крайней мере не увидел, но и когда именно следует использовать asyncio.sleep(0) тоже не очень понимаю.
>>2940499 >но и когда именно следует использовать asyncio.sleep(0) тоже не очень понимаю Когда есть жирная функция, которая блокирует выполнение других корутин дольше чем нужно, тогда и надо вставлять.
Питоняши, подскажите начальный стек для веба на Питоне. Именно начальный.
Подойдет ли такое: - собственно сам Python; - Django или FastAPI; - SQL; - JavaScript или TypeScript или Dart в объеме необходимом фронта - HTML и CSS (есть ли какая-то CMS, которая может полноценно заменить этот пункт?)
>>2940713 Начальный fastapi, pydantic, aiohttp и прочую шелуху, фреймворки для бд, про sql не знаю, я с монго везде работаю через motor. Остальное хз, не работаю с фронтом. Инфраструктурные ubuntu, redis, nginx и docker с git по умлочанию конечно же. Неплохо было бы ещё что-то навроде jenkins знать, хотя вряд-ли напрямую с ним будешь иметь дело.
Вообще по вакансиям смотри что требуют. Если уж хотят древнюю джангу, то что ж поделать, к нему тоже целый букет фреймворков идёт, загуглишь. Сразу сходу на фулстек идея не очень как по мне. Выбери один стул и сиди пока на нём.
>>2940741 Алсо про всякие DI пока не думай, не засоряй себе голову раньше времени. И смотри другие репы на гитхабе кто как структуры проектов делает, чтоб иметь представление. И да, на гитхабе с кучей звёзд тоже много говнокодеров сидит, так что это не истина последней инстанции. Я когда смотрел исходники fastapi очень много раз кринжанул на отличненько.
>>2940741 >fastapi Получек, знаю Django >pydantic Не было необходимости его использовать >aiohttp Не щупал >фреймворки для бд Нет, ну джанго ОРМ щупал, чек
Остальное анчек. Пиздос, а я думал, что с моим стеком Python/Django/DRF можно уже вкатываться начинать.
>>2940758 Используй пидантик. Очень удобно валидировать данные и делать структуры. На его основе как раз и использую связь с монго через motor. Ответы запросов, сами запросы и тд.
Ну, а что ты хотел. Надо знать много чего. Хотя бы иметь представление что это такое и как с ним работать.
Просто посмотри как деплоятся проекты и как они поддерживаются потом, как обновляются и тд. Много инструментов есть. Знать вот прям всё до точки не надо, только самое основное. Остальное в процессе. Забыл ещё про uvicorn упомянуть и uvloop. Тоже полезно.
>>2940758 Все так лихо перечисляют какие-то стеки, на деле, применив пару функций и часами лазая по мануалу. Знание — это когда ты без мануала пишешь, без ползания по документации. Ну и физически невозможно знать больше 7–8 продуктов хорошо. Это будет уровень «гуглоинтеллекта» — чё нашёл на СО, то, типа, твоё.
>>2941255 Сейчас не 90е чтоб знать все либы наизусть. Они меняются и обновляются каждый день. Гораздо более полезный скилл - уметь разобраться в них как млжно быстрее и понимать где можно применить новые фичи.
А все эти заучки-зазубрички до сих пор пишут на втором питоне, потому что в голове не осталось места для чего-то нового.
Чики, двощ. Изучаю selenium, пытаюсь парсить инфо с сайта, который полностью грузится в js. Если wget'ом загрузить страницу, на ней будет с десяток скриптов и надпись "чтобы всё работало, включите скрипты" Вот с какой проблемой столкнулся: страница грузится некоторое время, во время загрузки висит splash screen. Соответственно, прежде чем лазить по элементам, нужно дождаться загрузки. В селениум можно сказать "тупо жди n секунд", но это же херня, есть гораздо более удобный и продвинутый webdriverwait. Я делаю вот так: button = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, button_xpath))) То есть по идее, селениум должен подождать, пока на странице появится элемент с нужным xpath, после этого уже делать дела. Если элемент не появился после таймаута, выкинуть ошибку. У меня всё работает, НО иногда, даже когда я уже вижу загруженную полностью страницу, селениум ждет полностью 20 секунд, несмотря на то, что нужный элемент уже присутствует. Всё обгуглил, нигде ничего нет, всё должно работать, как я и задумывал. ЧЯДНТ inb4 используешь selenium Или, может это какая-то хитрая защита от скаппинга? Пару раз меня на этом сайте уже блокировало, приходится использовать undetected_chromedriver
До весны надо написать приложение для студентов и элективных курсов (чтобы преподаватель мог круд курсы, студент записываться на курсы) и по критериям получался список. До этого с Джанго не работал, справиться шансы есть? Как должны реализовываться разный функционал для преподавателя и студента? Разные виды сайтов?
Здравствуй, доргой анон, я рушил вкатиться в python, скачал pycharm и при открытии круглых скобок вылезает какая-то херня. Подскажите пожалуйста как эту херню пофиксить?
ААААААААААААААААА БАШКА ПУХНЕТ Выучил основы Питона, а там оказывается всякие comprehensions, decorators, generators. Ладно, вроде разобрался с декораторами, можно уже какой-нибудь фреймворк для работки выучить. Написал говно на голой Джанге с темплейтами. Получилось конечно же говно, нужно писать API и делать интерфейс для этого API, а для этого нужно: 1. Выучить DRF 2. Выучить JS/React 3. Хочешь аутентификацию? Ну на тебе несколько способов, ебись с ними. Хочешь грузить картинки и видосики в БД? Кек, ну на еще говнеца поешь, инфу покури.
Ой, чет у тебя сайт как говно выглядит. Ну-ка садись учить CSS, чтобы красиво было.
А бросать пет не хочу, т.к. он наполовину готов, осталось совсем немного. Как же я завидую челам, которые вкатывались лет 7 назад, тогда говна в разы меньше было.
>>2941382 >по производительности работает на уровне голанга Это тебя кто-то обманул) Библиотеки, написанные на С/С++, может, и работают на таком уровне, сам питон работает на уровне скрипта шелла по скорости.
>>2942025 >Просто знать как работает и всё? Ну судя по местным даунам, у них прям оферов за это у каждого по чемодану, а дальше оне в документации месяц покопаются и что-то с стековерфлоу за три минуты спиздят — вот и работа сделана. Принципы же знаешь? Вот. Уже профессионал.
Я так принципы боевого пилотирования знаю — за два десятка лет отточил на симуляторных игорях. Я — пилот-асс.
>>2942228 >понимать Как бы книжки тем и отличаются от документации, что поясняют принципы и задачи, а не просто перечисляют набор лексем. Следовательно, выучить книжку синонимично пониманию, а не просто зазубриванию.
>>2942360 Но тут речь как раз идёт о зазубривании. Челик выучил какой-то набор и не понимает что делать дальше. Так не бывает. Значит он просто заучил методы, но не понял их смысл.
мне вообще не понятно, что такое "выучил язык". Когда человек с приличным опытом программирования такое говорит, это понятно ещё. Но проблема изучающих в том, что они просто не умеют программировать, не понимают ИТ и т.п.
Реально ведь многие думают, что вот я сейчас "выучу питон" и смогу работать.
В библиотеку добавил книгу "Рамальо Лучано - Python. К вершинам мастерства. 2-е издание (2022).pdf.pdf", если есть еще что-то свежее и интересное - пишите здесь или на почту.
В рамках лабораторной работы дали задание, которое не могу сделать так, как требуют. Вот не выходит. Помогите выполнить. Лучше с каким-либо объяснением.
Задайте с клавиатуры (через input()) строку, которая представляет собой набор слов через запятую (например ’Good,Day,Mister,Anderson’). С помощью метода split() разделите эту строку по разделителю ’,’ и поместите результат в список ’a’. Выведите список ’a’на экран. Создайте новый пустой список ’b’. Переберите все элементы из списка ’a’ и если в текущем элементе есть символ ’e’, то добавьте его в список b. Объедините список ’b’ с помощью метода join() с разделителем ’,’ и выведите результат.
Сам решил вот так: a = input() a1 = a.split(',') print(a1) b = [] for i in a1: if 'e' in i: b.append(i) print(','.join(b))
>>2933091 (OP) Все. Привет. Хочу написать не такой и простой, но и не особо сложный бот для телеги. Есть ненулевая вероятность, что им одновременно будет пользоваться до 5 человек. А еще желательно, чтобы он жрал минимальное количество ресурсов Есть ли смысл писать на aiogram? Для меня это немного новая тема. Или телебота хватит? Есть ли те, кто брал и то и другое? Сильно ли различается потребление ресурсов? Это является ключевым вопросом, сложность разработки и новое не пугает. Короче, если есть мастера, трогавшие оба, просьба дать свой честный фидбек.
как в джанго сделать чтобы при логине было 2 разных вида пользователей (студент и преподаватель), в дальнейшем у них планируются разные возможности запихну в модель is_student/is_teacher, что дальше то делать? как сделать, чтобы был разный функционал?
>>2943080 Асинхронный либы эффективнее использует ресурсы в случае с запросами и может держать гораздо более высокую сетевую нагрузку. Если ботом действительно будут пользоваться пару челиков, то разницы нету какую использовать.
>>2943080 бери telethon - полуавтоматом генерит актуальную схему из TL-спек, лучше api (либы), возможность дёргать не реализованные ручки через использование биндингов к TL- объектам, поддержка mtproto, возможность авторизации как пользователем так и ботом. подробнее тут: https://docs.telethon.dev/en/v2/concepts/botapi-vs-mtproto.html
использовал телебот и аиограм. телетон во всем выигрывает.
>>2943212 Ты меня, наверное, за умного принял, я не такой А можешь для дебилов обрисовать, чем телетон лучше? Ну, какой-нибудь кейс не особо вычурный. > возможность авторизации как пользователем так и ботом. Я планировал прикрутить авторизацию, чтобы бот считал некоторые данные для каждого пользователя, но он может это делать на основании message.from_user.username Видимо, тут что-то сложное, и мне пока это не нужно.
А с точки зрения: 1) Использования ресурсов машины? 2) наплыва (в нашем случае, скажем, 10 параллельно сидящих пользователей) пользователей?
Про телебот читал, что он периодически начинает подтупливать и ему нужно помогать ручками, хотя читал и противоположное мнение, что люди просто не умеют его готовить
P.S. пока писал ответ, заметил ссылку на доку. Видимо, нужно было сначала изучить))) Посмотрю. В любом случае, за наводку спасибо.
>>2943157 Появилась другая проблема, не работает вход, в базе данных есть юзер, но конкретно его не видит при корректном логине/пассе как в бд выводит пользователь не найден мнения?
Аноны, памагите!! есть dt=datetime.date() # например 01.02.1970 нужно добавить (или удалить) года,месяцы, дни (y,m,d) от этой даты. Но поля же могут быть пустые (нули)!! получаю ошибки типа месяц не бывает = 0
>>2943298 Да. Очень. В названиях функций можно только нижнее подчеркивание использовать. Верблюда только в самых исключительных случаях в названии классов можно. Это общепринятый платиновый положняк питонского уклада. Срочно переделывай, если кто увидит сразу пизды даст и пидором назовет. А это... ну это хуже всего в общем.
>>2943865 ты немного не понял, или я хреново объяснил задачу, или ты тупенький. Задача в нахождении НЕ разницы Datetime, а в отнимании года, месяца, дня. Уже без твоих советов разобрался. Timedelta нельзя использовать.
>>2943937 Всё так, просто сам по себе нейминг такой допускается и даже иногда используется. Причём для имён классов это стандарт, так и положено MyClassName, тогда как для функций-модулей настоятельно рекомендованы подчёркивания
В принципе это разумно, потому что ад, когда смешение стилей, часть методов, скажем, с подчёркиваниями, а другие верблюжьи
>>2943931 я вообще сначала думал итерироваться (виртуально само собой) по дням исходя из (y,m,d) с учётом isleap() от календаря, чтобы подсчитать все дни. И эту хрень скормить интервалу в datetime..
>>2944550 жалею, что в пистоне пип инсталл это нужно делать. Ну почему его не интегрировали-то?? Хотя бы в модуль calendar хотя-бы... Дни можно добавлять, а года и месяцы с учётом високоски - уже нет ((
Как же заебали эти контекстные менеджеры, просто костыль нахуй. Как это говно вообще выпустили в продакшн? Почему нет асинхронного деконструктора? Алло бля. Куку. Сколько лет прошло, где нахуй? Вместо того чтоб юнионы встраивать лучше б с действительно полезными вещами разобрались, например, нормальной асинхронностью и ебучим gil-ом.
>>2947002 Быстрое развертывание, удобочитаемый синтаксис. Доступная и легкая асинхронность без мутексов и прочей еботни. Все преймущества скриптового языка с динамической типизацией.
Ну да, он понемногу переходит на си, но это же хорошо, больше производительность.
И не совсем понял фразу что он отстой как язык. Чел, если бы он реально был бы отстойным, на нём бы никто не писал и не делал столько прекрасных библиотек.
>>2947273 >он понемногу переходит на си Кто на С переходит? Протык твой? Библиотеки в Питоне изначально на С написаны (высокопроизводительные, понятное дело, а не хуйня для чатботов).
>>2947002 Ну так и пиздуй в свой байтоёбский загон, хуле ты тут забыл? Пичот, что мартыханы говнокодят на штангах/фляжках/фистапи, не ебутся с указателями и памятью, импортируют готовые библиотеки и зарабатывают на этом неплохое бабло? Ничего себе! Бизнес внезапно порешал деньгами завистливых додиков-алгодрочеров, превратив разработку сервисов и приложений в "импорт слесарьфлоу эс сф; сф.ран(заебись=True)"
>>2947668 Я тебя спросил подробно описать задачу с примером, ты написал что надо дни прибавлять "+365 дней". Теперь какие-то новые условия появились с високосным годом. Ты не можешь даже сформулировать что тебе надо.
>>2947669 Вкатунец сравнивающий языки для плк с бэкенд разработками и выясняющий какой из них круче... Чел, тебе потом очень стыдно будет за свои посты.
>>2947682 Год и месяц это не фиксированные отрезки времени. С годами работай натурально: 2004 - 1 = 2003 год С месяцами итерируйся по календарю. 11 + 3 = 2 месяц
Либо, если надо к дате прибавить год в днях, то можно просто смотреть в каленадрь високосный год или нет. Но вот если мы находимся в самом конце не високосного года и следующий идет високосный, у нас задача "прибавить год", нам 356 или 366 дней прибавлять? Ответ на этот вопрос условие которое ты закладываешь в логику своей програмы, я тебя джва раза спрашивал обьяснить задачу ты так этого и не сделал. Видимо ты просто принципиально не понимаешь что такое зачада.
реально вообще сейчас вкатиться то? хоть на какой-нибудь стек? Раньше джаву учил, спринг чё-то тыкал там, но тогда забил ибо были определенные жизненные обстоятельства, которые мешали изучению погромирования (читай времени не было) (ну и еще пыня аккурат в то время начал сво и все компании начали съебывать из моей мухосрани за бугор).
Работаю в кал-центре банка. В принципе время есть на изучение. Но пугают многие, что сейчас уже шансов вкатится нет.
>>2947428 >зарабатывают на этом неплохое бабло Ну, вообще-то, питонисты - это дно по заработкам. По сравнению с С/С++/Java-господами или программистами редких языков.
Чтобы быть высокооплачиваемым питонистом, надо быть очень сильным математиком, не меньше кандидата м.н. А это сам понимаешь, за две недели на скилбоксе не окучивается. Остальные - это уровень разметки данных или формоёбов.
>>2947696 не. Так ты вакансии не получишь. Тебе я сказал есть год. А нужно добавить/убавить какое-то кол-вод дней/лет/месяцев. Чего тут ты не догнал-то??
>>2947793 Мы находимся в позиции 2004.01.31. В следующем месяце 29 дней. Команда "двигаемся вперед на месяц". Где оказываемся? Прибавляем к дате 31 день оказываемся в 2004.03.02? Прибавляем к дате 29 день оказываемся в 2004.02.29?
>>2947688 Так сколько ты заработал-то? К примеру есть два моих проекта, которые в сумме приносят доход по 3 ляма деревянных в месяц (компании, не мне) А у тебя сколько?
Подскажите, игра в слова. Создаю список, состоящий из такого же количества, как в слове, которое загадано. Буква вводится с клавы, при угадывании буквы, она записывается в список с и выводится answer в формате кк
Чому такой код работает корректно: name=list(keyword) #загаданное слово answer=[] for i in range (0, len(name)): qz.append('')
а это нет: name=list(keyword) #загаданное слово answer=[0]len(name) Список из 0 создаётся, но в него не записывается угаданная буква.
>>2947821 Одновременно 1 год 3 дня - в минус от даты, и добавить 4 месяца ещё. Сложно как-то, и не уверен, что ты не нарвёшься на високосный год. Не проверял такое решение.
>>2947980 Тупой высерог гонорейной свиньи, речь конкретно про то, что питонисты всасывают по зарплатам, как им и положено у своего места под шконарём. Потому что это кодеры скриптов, а не программисты.
>>2948209 Я хотел его наводящими вопросами к этому подвести, а то он уже три дня усирается в треде, хотя там решение на 7 строчек всего или даже меньше.
Всё, понял. Используй dateutil и не еби мозг. Если это ещё одна олимпиада "только стандартные либы", то делай ведосипед сам. Питон дал им requirements.txt, а они жалуются, пиздец
>>2949233 я думаю, что timedelta не подошла, т.к. максимально можно неделями оперировать. поэтому и порекомендовали relativedelta из dateutil, т.к. там уже и месяца есть и годами можно оперировать. всё-таки интересно какое решение за неделю обсуждения было реализовано.
>>2949450 Олимпиадники, лаборанты и вкатуны занимаются хернёй как обычно, пытаясь сложить 2+2 самым эффективным по их мнению способом и создавая себе челленджи.
>>2950251 Так это во многом делает язык сложнее, тебе какие-то простые вещи нужно реализовывать сложно. Причём много инженерной магии, которую или надо понимать, или запоминать. Что сильно-сильно мешает вкату.
Правильно я понимаю, что когда я импортирую скрипт-1 в скрипт-2, все библиотеки из скрипта-1 так же импортируется и больше их импортировать в скрипт-2 не нужно?
>>2950499 Да, но лучше явно импортировать в том файле, где ты будешь это юзать, что бы при выпиливании импортов из скрипта-1 не забыть, что ты заюзал это в скрипте-2
>>2950607 Иногда бывает удобно импортировать именно из скрипта1, а не заново, особенно если указать его в __all__, особенно либы наподобие енкодеров, декодеров джона или пидантика где надо всё равно делать базовую модель. Очень удобно потом делать изменения, например, когда эта поебень решит обновиться до версии v2 и чтоб ты потом не сидел как даун и не чекал весь свой говнокод.
>>2950737 Да причём тут юнит тесты, так просто удобнее менять либу и изменить логику обертки в одном месте, чем менять импорты везде. Да и это вполне себе явно, используемые модули и функции явно указываются в __all__
>>2950789 Неявный полный импорт в основное пространство имён само по себе дурной стиль. Обычно делают from module import(func_1, func_2, ..., func_50), такую дикую простынку. Потому что явно. А уж вложенный неявный импорт совсем дурная вещь.
>>2933091 (OP) Пробую numba, у меня много числодробилок на проекте, по идее декоратор numba.jit или numba.njit должен бустить производительность, но судя по всем бенчам наоборот - происходит отсос по производительсности где-то на 50% а порой и вдвое. Втф?
Там немного видоизмененная функция outer из исходного сурс-кода, там тоже идет перебор с if-elif-else а затем происходит какой-то дрочевный расчет на голом питоне. На моей машине показано какое время исполнения. Все у 1го сосут
>>2950851 Как видно, я не просто пускаю цикл из 100к записей считаться, перед ним я прогоняю измененную функцию чтоб jit смог ее скомпилить, на это обычно достаточно времени тратится - оно не учитывается в итоговом бенче
>>2950851 Вот такой вариант (цикл целиком в numba) работает за 1 мс даже с учетом генерации args. Видимо если юзать numba то надо это делать по полной программе, при частых вызовах из питухона только отсосешь. Почему - хз. Я ожидал что не будет особой разницы, но то что я отсосал в 2 а то и в 8 раз это конечно сюрприз
П.С. декоратор с аргументом fastmath=True ни на что не влияет кстати
>>2950906 >при частых вызовах из питухона только отсосешь Как бы это странно не звучало, но в питоне вызов функции это дорогое удовольствие, так как каждый раз генерируется и удаляется фрейм
>>2950811 Убирать обратную совместимость и не менять название модуля - вот действительно дурная вещь. И вместо from module import ты вполне себе можешь написать import module, особенно если тебе надо использовать с десяток функций, классов оттуда. Перечислять их все - тоже дурная вещь и гораздо сильнее снижает читаемость.
>>2950979 >Убирать обратную совместимость и не менять название модуля - вот действительно дурная вещь Если ты не залочил мажорную версию, то сам себе буратино
>>2951398 А если нету В2? Есть только А0, но при этом разумию что написано когда читаю? Ну и слышу что говорят когда видосики про кодинг индийцы рассказывают
>>2950906 >Видимо если юзать numba то надо это делать по полной программе, при частых вызовах из питухона только отсосешь. Почему - хз. Потому что всё время занимает сам вызов функции, а не исполнение кода. JIT в таких случаях просто не может разогнаться.
Мне стало интересно, а в чём преимущество питона перед другими языками? Скажем, в бэкенде, не только рест апи, но и всякие сервисы. А то чёт я смотрю бенчмарки в сравнении с го и мне кажется что я несколько лет занимаюсь не тем чем надо.
>>2952790 >сравнении с го На питоне по сравнению с го просто дохуища батареечек, сахарка и удобных абстракций типа итераторов с генераторами. Писать бизнес-логику на порядок приятнее. Го нужен когда тебе надо много-много байтов гонять.
>>2953138 Вернее так, при определенных ситуациях мультрипроцессинг может сильно ускорить выполнение, но нужно знать триггеры на смену контекста. Отдельный тред для отправки агрегированных метрик, который просыпается раз в секунду это пример хорошего использования.
>>2953138 питон может в многопоточность, и она даже работает, просто в случае чистого питон кода ты не получишь прироста производительности. Но в каких-то случаях получишь, если у тебя, например, идёт работа с БД, или с тяжеловесными си-функциями из разных библиотек.
>>2953225 и вообще не устаю напоминать, что многопоточность придумали ещё в те времена, когда компьютеры были однопроцессорные и одноядерные. То есть придумывали её не для ускорения, а для реализации логики одновременного исполнения, чтобы не было блокировок и т.п. Необходимо, например, для GUI. И для сети, хотя тут есть альтернативы. Ускорение на многоядерных системах это уже более поздняя вкусная фишка.
Правильно ли я понимаю, что композиция в программировании это когда в конструкторе класса создаются объекты другого класса. Исходя из этого является ли следующий пример композицией?
class SomeClass: __init__(self, a, b): self.a = 1 self.b = 2
>>2954365 в твоём случае нет композиции. композиция в ооп, это наличие в классе объектов другого класса и взаимодействие с ними.
например: есть классы бочка и объект. при инициализации классов задаётся объём. у класса бочка есть метод добавления объектов и метод рассчёта свободного объёма, который из собственного объёма вычитает суммарный объём хранимых объектов. это композиция в ооп.
>>2954391 >>2954365 добавлю, что объекты должны создаваться внутри класса-контейнера, т.е. внутри бочки. таким образом при смерти бочки, объекты тоже умрут.
если передавать объекты созданные вне бочки - это уже агрегация (более слабое связывание, в сравнении с композицией).
>>2955231 Питон - ебейшая конкуренция среди джунов, херки ахуевают от количества резюмех и сбрасывают их сразу в Корзину Нода - и так была не шибко популярна в СНГ а после 2022 и подавно Го - после 2022 число вакух сильно схудно + вкатунов в Го не берут
Он пиздит, нормально берут всех. Даже на го вакансии есть для джунов. Просто он говорит про всякие известные конторы с зп 300к, туда естественно не буду брать сходу, лол. Да и сам боится что будет конкуренция. Других мелких фирм для него не существует считай.
Так в питоне ебейшая конкуренция и у мидлов/синек, я с начала ноября уже был на 10 собесах и везде отвалился на 1 или 2 этапе, т.к. "вы нам понравились, но мы приняли решение в пользу другого кандидата".
>>2955403 10 мало, надо больше. Да и смотрел поди на жирные зарплаты. Джуны с универа без опыта обычно от 100к ищут. По хорошему надо сначала работать за еду, набраться опыта, а дальше уже метить куда ещё.
>>2955421 Реально собесов было больше, около 20, просто с половины я сам слился, т.к. не хочу идти в контры, типа сбер/втб/вк, а они основные засиратели рынка вакухами
>>2955403 А у меня наоборот, примерно с 80% собесов выходил с оффером. В основном мелкосредние компании, но и относительно большие типа циана попадались.
>>2955670 >>2955655 Это вы на мидловые позиции собесились? сами-то себя кем считаете? А то большинство вакансий, которые вижу для бэкенда на питоне, какие-то нищие по сравнению с автоматизацией на джаве ну типа в вакансиях авто-куа на джаве хотят опыт год-два и дают до 250, а для петухонистов-бекендеров - 3года+ и дают в районе 200 //мимо перекатился из авто-куа в бекенд
>>2956109 Чтобы детектить молодых зумеров-петушков, которые на ruff сидят, или олдовых петухов с закалённым очком, которые ещё на 2 питоне писали с pylint2 сидели.
>>2956096 >Перфокарты Там 72 символа знаковых было, оттуда в фортране ограничение. Первые солонки на перфокарте не для кода, а для других целей были
>Терминалы собственно исключительно из-за этого, раньше, когда ЭЛТ мониторы были, более-менее нормой было работать в текстовом режиме. А там 80 колонок, при этом самая правая обычно под прокрутку выделялась
>>2956139 >На 27" мониторе влезает два окошка с кодом с крупным шрифтом, слева даже остается место для дерева проекта. А потом в один момент ты пакуешь чемодан с съёбываешь. И разрабишь на своём ноуте, где 14-15-16 дюймов.
>>2958441 Только там легко гавном обмазаться, особенно конда недавно новый pylance вышел, а до этого autopep просто пенестал работать. Хорошо что есть ruff вместо этого старого говна.
Алсо, есть какой-нибудь плагин, который проверяет импорты в файлах?
>>2958602 >А потом в один момент ты пакуешь чемодан с съёбываешь. И разрабишь на своём ноуте, где 14-15-16 дюймов. Делаю так регулярно, в чем проблема? Ну да, на 14" не влезает два окна, и хуле с того? Так даже если строчки будут по 79 символов - один хуй не влезут с вменяемым шрифтом. Или ты просто так решил нахрюкнуть?
Есть пчелы, шарящие в django? Как в drf сериализовать значение, которое возвращает метод модели? Например, у нас есть есть модель Блюдо, в ней поля название и ингредиенты, также в этой модели есть метод блюдоВеганское(), который возврашает либо истину, либо ложь. Как в сериализаторе вызывать этот метод, чтобы потом записать в json что-то вроде {dishIsVegan: true} В доке чет ничего нет.
>>2959291 Бля ты думаешь тут клуб книголюбов или внеочередное собрание библиотечных червей? Я хуй знает какое у них содержание. Могу чисто по заголовкам и датам судить.
Изучаем python + введение в системы баз данных - выглядит норм. Всё остальное - ну такое себе.
Нужно найти в тексте слово определенной длины, и если оно там есть, что-то с ним сделать дальше (отправить его в телегу) Бью текст на слова, нахожу нужное итерацией по всем словам, но как сделать проверку "нашлось/не нашлось" не понимаю Пока код такой: text="Тут дохуя текста" for word in text.split(): ____if len(word) == 25: _______x=str(word) Что делать дальше не понимаю, как задать дальнейшую вилку, отправлять дальше этот х куда-то или нет?
>>2960551 Пока сделал через try-except, но мне кажется за такое пиздят Типа дальше try: ____#работаем дальше с х except: ____#если х не существует вместо ошибки ____print("В тексте не было слова с нужной длиной")
приходит 28-летний чел, говорит что собрал какой-то интернет-магазин, какие-то нанотехнологии, когда спрашивают про сложности отвечает да сложностей-то никаких и нет, просто садишься и пишешь
потом ему дают задачу и задача это просто какая-то приколюха где надо из массива вытащить какие-то определенные элементы или ещё какая-то залупа и он с ней разбирается минут 40 с помощью интервьюера
объясните мне как он мог сделать коммерческий проект в миллион строк кода и как эта задачка одна связана с его работой в принципе? у меня ощущение как будто я схожу с ума когда смотрю эти собесы за кадром все ебучие биллы гейтсы а в кадре какая-то странная хуита
>>2961323 В принципе может быть и в реальной жизни так, если ты не надрачиваешься на проходы собесов. Ты привык делать одно, большой проект, в спокойной обстановке, в привычном редакторе.
Тут же тебя собеседуют, это стресс большой, когда каждое твоё действие оценивают, пишешь другую задачку, в другом редакторе, чем обычно. Тут как раз нормально тормозить и тупить, причём особенно если ты не джун.
>>2961330 Я не совсем программист и я в принципе понимаю психологический аспект, но просто как факт, чел по сути довел до конца коммерческий проект с системами, подсистемами и кучей всего, и по сути на собеседовании его силы проверяют какой-то одной задачкой на логику которую он ещё и решает с огромными усилиями. Мне это кажется странным каким-то, неестественным. Может быть я переоцениваю количество усилий которые нужны чтобы сделать пет проект и их будучи и подпивасом можно сделать гугля 99% решений?
>>2961334 А что ты хочешь услышать? Может быть чел всё придумал про свой опыт, приукрасил, просто механически реализовывал проект по инструкциям. А может быть на фоне стресса затупил. Это вообще обычное явление, когда адски тупишь.
>>2961323 Кто-нибудь на работе пользовался матрицами при работе с веб-проектами? Или каким-нибудь граф деревом или что там спрашивают некоторые тупые эйчары.
>>2961334 Ну блин, смотри. Есть такая профессия - врач. Челик приходит на новую работу, до этого он долго был стоматологом, а тут его внезапно начинают спрашивать про нейрохирургию.
>>2961344 >Есть такая профессия - врач. Челик приходит на новую работу, до этого он долго был стоматологом, а тут его внезапно начинают спрашивать про нейрохирургию. Ну ты сравнил... Это примерно как разработчик на 1С придёт устраиваться на разработчика драйверов сетевых карт для линукса.
Скорее вот придёт нейрохирург устраиваться на работу, а ему предложат рассказать про этапы формирования нервной системы у эмбрионов. Если ты вчерашний студент или занятия ведёшь, то легко ответишь, если же ты врач, то легко зависнуть можешь. А тот, кто недавно учебник прочитал может возмущаться, как так, врач таких базовых вещей не знает, как ему диплом вообще выдали.
>>2961323 Подозреваю там не смогли в смалтолк на собесе. Кандидат может был архитектором и код давно не пишет, жонглирует готовыми кубиками. Или он тех.менеджер, давно конвертнувшийся. Надо потратить 5 минут не на пересказ резюме, а на выяснение какими конкретно задачами чел занимался на последнем проекте и в какой роли и готов ли он свичнуть роль, если она не совпадает с ожиданиями в вакансии.
>>2961699 Вот. То ли эйчар тупой, то ли он тупо все проекты на аутсорс кидал и не может ничего сказать о себе. Мне прост смешно становится когда вкатуны на серьезных щщах учать граф деревья, сортировки и матричную хуйню вместо инструментов, архитектуры и подходов к разработке. Информатику, математику, булеву алгебру етц и, собственно, само программирование надо отделять друг от друга, это вопросы образования, а не самого навыка.
СУпер тупой вопрос, но я прошерстил всё что можно, но так и не нашел способа. Пользуюсь либрой telebot
Пытаюсь сделать какое-нибудь отслеживание при нажатии на: inline_button = InlineKeyboardButton("Test", switch_inline_query_current_chat="Test_text") Т.е. условно хочу, чтобы при нажатии на эту хуйню, мало того, что мне в user input уходил текст "Test_text", но и чтобы бот смог понять, что я нажал на эту хуйню и вызвал нужное мне событие.
>>2961912 >>2962175 Тебе дали правильный совет. Логика для выполнения твоей задачи должна быть такой: Используешь колбек дату, данные которые добавляются при нажатии кнопки: inline_button = InlineKeyboardButton("Test", switch_inline_query_current_chat="Test_text", callbackdata="Test_clicked")
Затем пишешь хэндлер для этого действия @bot.callback_query_handlers(func=lambda call: True) def callback_for_button(message): if call.data == "Test_clicked": print("Нажали на твой кал пальцем и он провалился")
>>2961323 Интернет-магазин собирается из готовых кусков. Или полу-готовых. Ни программирования, ни собственных архитектурных решений там нет, есть написание простейшего кода для склеивания, хотя его там и много. Естественно, такой вася даже пузырьковую сортировку не напишет. И, иногда, даже не поймёт что от него вообще требуется.
>>2962609 Кто представляет бОльшую ценность для работодателя: челик, который может быстро реализовать бизнес-задачу, или олимпиадник, который пишет сортировку на Си?
Можно ли как-нибудь поставить pip и Tkinter на python-embedded? Комп рабочий, прав администратора у меня нет. Могу использовать только портативную сборку.
>>2962663 > Кто представляет бОльшую ценность для работодателя: челик, который может быстро реализовать бизнес-задачу, или олимпиадник, который пишет сортировку на Си? Первый на должность продакт манагера, второй на должность разработчика
>>2962910 Олимпиадник сможет всё, справиться с любой сложной задачей. А вот "быстро реализующий бизнес задачу" всё завалит, как только работы выйдет за рамки чего-то шаблонного, что уже сто раз написано, разобрано на айти курсах и т.п.
>>2963071 >Олимпиадник сможет всё, справиться с любой сложной задачей Олимпиадник справится только с алгозадачей, про какие-нибудь страшные вещи типа шардирования по ключу, кворумы или выборы хранилища они не слышали. Работу с БД на олимпиадках тоже не делают. Вообще алгосики это малая часть от того что делает средней программист, там еще кучу всего знать нужно.
>как только работы выйдет за рамки чего-то шаблонного Лул, так олимпиады это как раз таки соревнования по подбору идеального ключа для синтетических задач разработанных именно под этот ключ, когда идеального решения не находится и нужно искать компромисы начинается ступор.
мимо ходил в кружок по спортивному программированию в вузе
>>2963106 Чтобы решать олимпиадные задачи нужны мозги и ясность ума. При их наличии освоить индустриальные техники не такая большая проблема. Главное, что человек понимает что и зачем он делает.
А вот решать шаблонные бизнес задачи можно абсолютно бездумно, просто выучив как-то шаблон и как-то соединив части. Не понимая смысла, что и как. Только как только ты выходишь за рамки чего-то стандартного, так сразу эпик фейл возникает.
>Лул, так олимпиады это как раз таки соревнования по подбору идеального ключа для синтетических задач разработанных именно под этот ключ Не только и не сколько. Например тебе необходимо предусмотреть все corner case, которые могут завалить программу. Не предусмотришь -- провалишь тест и проиграешь. Это нереально полезный скилл и образ мышления для разработчика ПО.
Само собой олимпиадника надо доучивать, потому что тебе нужно работать с продуктами не на 20-100 строк, на на десятки-сотни тысяч и больше. И ещё кучу всего знать. Но эти вещи не так долго осваивать. Да и олимпиадники обычно не в вакууме развиваются.
Но суть в том, что потолок олимпиадника очень высокий потолок, из него может получиться нереально крутой спец. А "решатель бизнес задач" большого потенциала не имеет.
>>2963129 Я никого не собеседовал, хотя когда-то мне предлагали поучаствовать.
Давай иначе, не олимпиадник, а любитель решать олимпиадные задачи, в том числе очень сложные. Разница в том, что в "спортивном программировании" во главу ставится нереальная скорость решения задач, а это не нужно, часто даже вредно.
>>2962910 >Он вместо быстрой реализации фич ебет мозги с алгоритмической сложностью.
Лоооол олимпиадники как раз и въебывают как папы Карлы и овертаймят, потому что увлеченные аутисты. Это решатели задач со временем начинают закладывать х10 эстимейт на покраску кнопки и грызть всех, кто работает слишком быстро
>>2963167 >Лоооол олимпиадники как раз и въебывают как папы Карлы и овертаймят, потому что увлеченные аутисты. Им нравится такие же аутистические задачи делать, а не кнопки красить, когда ты ожидаешь чего-то особенного, то быстро выгораешь. Вне RnD нахуй не нужно.
>>2963182 Вот этого двачну. Додики наполучают медалей и грамот, звезду поймают и думают о себе хуй пойми что. И задачи им интересные подавай и мотивируй постоянно. А говно вилкой чистить не хотят, баги фиксить - не царское дело, в легаси ковыряться - выше их достоинства.
>>2962881 я думаю, что timedelta не подошла, т.к. максимально можно неделями оперировать. поэтому и порекомендовали relativedelta из dateutil, т.к. там уже и месяца есть и годами можно оперировать. всё-таки интересно какое решение за неделю обсуждения было реализовано.
>>2963374 Решение одно. Остальное придумали местные олимпиадники. Ты подожди, скоро они тебе на ассемблере код напишут. Может свой микропроцессор сделают.
>>2963167 Проблема олимпиадников в том что они те самые велосипедники, которые потом просто выгорают. Обычно такие люди пишут какие-то библиотеки на гитхабе, а потом жалуются что у них нет времени и они едва сводят концы с концами. Им проще написать свою либу чем работать с существующими. Это максимально вредно для работодателя, потом этот хер уволится, а остальным ещё разбираться в его отсебятине.
>>2963167 >Лоооол олимпиадники как раз и въебывают как папы Карлы и овертаймят, потому что увлеченные аутисты. >увлечённые
1. 90% времени работы — это тупая рутина. От тебя никто не требует превозмогать и вести человечество космическими темпами в мегапрогресс. От тебя нужно тупое повторение уже известного максимально быстрым способом. посмотри как на китайских заводах макаки игральные карты пакуют (или подобную мишуру, которая недоступна станку).
2. Слово «увлечённые» я не зря выделил. Умный готов въёбывать, пока ему интеренсо. А как только он в чём-то разобрался, это летит нахуй, потому что становится рутиной, а рутина умному человеку не интересна. Именно в этом состоит ЖЫЗА, почему набирают тупых и с небольшими запросами — они будут делать 90% работы.
Всё время быть увлечённым нельзя — умных хватает и они будут зубами цепляться за интересную работу, посылая тебя нахуй и подставляя прямым образом. На всех её не хватит.
>>2963413 Есть аутизм, есть СДВГ, хотя у них там родственная внутренная природа и они часто сочетаются. Для айти свойственно.
Аутизм это когда садишься за проект, вгрызаешься в него досконально, организуешь свою зону ответственности, вылизываешь так, как считаешь правильным, всех пытающихся к тебе чего-то влить и у тебя чего-то поменять посылаешь грубо нахуй, менеджеров с их отчётами посылаешь нахуй, запросы по-возможности игнорируешь. Но тебя терпят, потому что ты реальный спец, на тебя много завязано. Как разосрёшься с начальством, бросаешь всё и уходишь на другую работу
СДВГ это когда ты бросаешься на то, что тебе интересно, реально в это вгрызаешься, можешь перформить, придумывать что-то интересное, что другим не под силу. Это "гиперфокус". Но одновременно ты хуй чего будешь делать из того, что не интересно, не можешь заставить себя сесть даже за простые задачи, пока совсем дедлайн не подходит, и редко готов разбираться с легаси-говном. В плане отдачи хуже, чем аутизм, в плане выстраивания совместной работы лучше, отдача может быть, если хорошо организована совместная работа, плюс ты можешь придумывать что-то очень полезное, особенно в сложных ситуациях.
>>2963413 >1. 90% времени работы — это тупая рутина. От тебя никто не требует превозмогать и вести человечество космическими темпами в мегапрогресс. От тебя нужно тупое повторение уже известного максимально быстрым способом. посмотри как на китайских заводах макаки игральные карты пакуют (или подобную мишуру, которая недоступна станку). Всё-таки в айти тебе в любом случае надо напрягать мозг, с чем-то разобраться, что-то придумать. За описанных заводах мозг надо отключать.
Только в каких-то больших компаниях может быть работа чисто рутинная. Литералли красить кнопку, когда всё есть, всё работает, но надо периодически менять дизайн кнопки, как пришлют техзадание.
>>2963403 Ох ебать какая жиза. Однажды взяли в команду челика и поручили ему написать каркас для нового сервиса. Ну банально джану развернуть, пару либ прикрутить и вот это все. Так этому додстеру не понравилась реализация существующих либ и он начал пилить свою. Так и пердолился три месяца, а в конце показал ебаное нихуя. Так и выпизднули по итогу ИС. Вы меня спросите: а куда смотрел тимлид? А я, блять, задаюсь тем же вопросом и не нахожу ответа, хотя прошло уже пять лет с тех пор.
>>2963444 >>2963413 Ещё можно быть просто умным нормисом с мозгами. Это когда ты в принципе можешь разобраться, спокойно разбираешься. Можешь спокойно пиздеть на митингах, что-то накручивая по полезности сделанного, по сложности. Не делаешь лишнего, даже если это не сложно и может отдачу проекту принести, но тебе сильно не зачтётся. Если компания большая, работаешь над повышением своего грейда. Заводишь нужные связи и продвигаешь свой профиль, свои резюме. Если видишь работу с условиями лучше, просто уходишь туда, потому что на проект тебе абсолютно похуй.
Уставший нормис - пролезаешь как-то на работу, как-то разбираешься, чего-то заливаешь на митингах, чтобы видимость была. Айти и технологии не интересны вообще. Минимально работаешь, а главная цель чтобы на мороз не выгнали.
>>2963393 Затем, чтобы показать, что ты хоть немного понимаешь, что такое программирование. Или ты думал, что тебе деньги будут платить за то, что ты нагуглил всякой хуиты, поставил либы, написал клей - и, вуаля! - давате мне сотыги? Тебя заменят на чат-гопоту, и всё. Если ты не можешь написать _пузырьковую_, блядь, сортировку, или сделать бинарный поиск в списке, или не понимаешь (хотя бы в общих чертах), как работает hash map (словарь) - ты просто дегенерат.
И нет, это не про олимпиадников. Олимпиадники/математики на самом деле хуёвые программисты, чаще всего. Потому, что программирование - это не математика. Точнее - это не та математика. Работают разные части мозга.
>>2963413 Что касается требований бизнеса, то въёбывать мало где требуется. Только на галерах, которые твой почасовой труд перепродают. Или где-нибудь в ручном тестировании, но это не разработка.
Чаще надо что-то поддерживать и дорабатывать, что уже давно есть. Тут главное разобраться в проекте, что та ещё история. В те моменты, когда надо что-то сделать, ты работаешь. В другие ничего не делаешь, но ты нужен потому, что за тобой проектные знания.
>>2963464 >И нет, это не про олимпиадников. >Олимпиадники/математики на самом деле хуёвые программисты, чаще всего. Вообще скорее близко к математике. У олимпиадников другая проблема, их скиллы заточены на спорт, чтобы сделать максимально быстро, быстрее, чем соперники. "качество кода" в принципе отсутствует. Код небольшой, всё про алгоритмы.
В то время как в работе не важно, если ты на что-то сложное потратишь четыре дня вместо двух.
>>2963498 То есть, в питоне до сих пор даже .contains нет? Охуеть. Да ещё и исключение выбрасывает, вместо человеческого -1. Какой же, всё-таки, Гвидо мудак.
Если бы не ебучий дата-сайенс, про питон сейчас бы уже и не помнил никто, после эпичного-то фейла с несовместимой 3-й версией. Он так отчётливо тогда начал становиться легаси-технологией, а'ля Perl.
>>2963586 Есть, только реализуется через магические методы, для того же листа достаточно сделать так item in my_list
>Да ещё и исключение выбрасывает, вместо человеческого -1. Выдавать результатом на проверку вхождения число вместо тру/фолс это по твоему по человечески?
>Если бы не ебучий дата-сайенс Питон сначала был перлозаменителем для сайтов, потом с 3.5 стал популярнее из-за нормальной асинхронщины из коробки, датасаенс потом подтянулся
>>2963464 Кому показать? Ты работал вообще хоть где-нибудь? Я не помню чтоб мне хоть где-то требовалось сделать свой алгоритм. Эфективно распределить ресурсы сервера, сделать оптимальную архитектуру проекта, заложить масштабируемость, надёжность - да. Но придумывать самому алгоритмы которые были сделаны в прошлом столетии - нет. Даже не представляю где это можно применить. Сдаётся мне ты пересмотрел курсов и почитал много ненужных книг, но в реальной работе это не используется, ну может быть где-то в 2-3% вакансиях
Я б с удовольствием использовал чат жпт для генерации кода, но он так и не даёт мне даже ответы на интересующие вопросы в плане архитектуры, что уж там говорить про код, который сделан на уровне хелоуворлда.
>>2961323 >объясните мне как он мог сделать коммерческий проект в миллион строк кода и как эта задачка одна связана с его работой в принципе? Кроме говноалгоритмов, говносортировок, говнографов, говнохешей, говнодеревьев, говноматриц, говновекторов нужно в голове держать ещё дохуищи информации. Нужно знать как кешировать, как работать с БД, аутентификацию, авторизацию, шифрование, как с кубернетисом работать, как настроить CI/CD, нужно помнить GraphQL, Rest API, и так далее и тому подобное. Как он смог такое сделать? Ему просто нахуй не надо было знать в тот момент. "Полезные знания" не равно "необходимые знания". То есть говноалгоритмы знать полезно, но также полезно знать маркетинг, полезно знать администрирование линукса и прочую хуйню. Жить без этого можно. Не конец света.
С помощью чего можно построить простой график столбами? Например у меня есть сотня-другая значений даты-времени, хочу получить 14 графиков за последние 2 недели со столбцами по часам
>>2963661 >Питон сначала был перлозаменителем для сайтов В отличие от тебя, я тогда жил. Перлозаменителем для сайтов был PHP. Да и сейчас есть.
>>2963670 >Я не помню чтоб мне хоть где-то требовалось сделать свой алгоритм. >etc Если бы ты мог понять, какую стыдную хуйню ты тут пишешь, ты бы заплакал.
>>2963765 >Где ты его собрался построить? В виде пикчи. Ну или ascii какой-нибудь я не знаю. >Что делать дальше с тем, что ты построил? Анализировать епта.
>>2963769 А пузырьковая сортировка - это типа что-то сложное, и надо быть олимпиадником, лол? А бинарный поиск? А рекурсивный обход каких-то связанных структур ты тоже никогда не делал? Это очень распространенная задача.
>>2963782 Ну, ссылку я там дал, этого более чем. Алсо - можно вообще заебенить GUI на wxPython, и там прямо на форме рисовать, в реальном времени.
>>2963761 >Перлозаменителем для сайтов был PHP. Да и сейчас есть. И какую нишу по-твоему занимал питон в то время? Тот же перлозаменитель для нитаких как все, только менее популярный. За счет джанги/фласка/торнадо он и был нужен тогда.
>>2963997 >За счет джанги/фласка/торнадо он и был нужен тогда.
Тогда не было никаких "джанги/фласка/торнадо". Даже в проекте. Речь про питон 1.5.2, и про ранние версии 2. Питон - язык общего назначения. На нём писали программы и скрипты. Если я ничего не путаю, то в SUSE весь инсталлятор на питоне был написан. Писали просто десктопные приложения на wx и qt. Писали энтерпрайзные системы (не веб, веб тогда только начинался).
А потом был Zope. И это было охуенно. Помнишь Zope? На питоне начали писать большие энтерпрайзные веб-системы. А потом - Sun допилил до вменяемого состояния Java EE (j2EE, как это тогда называлось), в джаве появились дженерики, появились крутые инструменты, народ научился в Swing, и питон ушёл из энтерпрайза в тень.
А вот потом уже появились ваши джанги-хуянги. Гораздо позже.
>>2964199 Я не он, но, я тебе скажу, что если ты такие вещи спрашиваешь у двачеров или у гопоты, а не находишь сам за 5 минут в доках или вообще в исходниках пидантика, то ты не особенно умный.
Я уже не говорю о том, что питон - динамический язык, и там в реальном времени можно пройтись по всем свойствам и методам объекта, и сделать с ним что хочешь. Ты же сможешь рекурсивно обойти объект и все его свойства-объекты, и сравнить с другим? Или "алгоритмы" не нужны?
>>2964114 >не веб, веб тогда только начинался всё-таки не совсем, веб в мире стремительно попёр вверх в конце 90х, в 2000м уже был "крах доткомов". Если смотреть 2000 год, тогда уже был дикий хайп вокруг Java, продвинутые веб приложения делали или на JavaApplet (когда упор на функционал), или на AdobeFlash, когда упор на графику. Про питон я тогда совсем ничего не слышал, по крайней мере в РФ вот совсем не на слуху был, пользовались перлом и sh.
PHP по-моему взлетел чуть позже, может где-то в 2002, до этого уж совсем примитивным был.
Мне в целом кажется, что питон никогда не был мэйнстримом, всё-таки GUI приложения ассоциировались скорее с C++, Visual Basic/C++, Java. Возможно на западе в энтерпрайз кругах другая история была, но мне кажется, что там было засилие Java, как и сейчас собственно.
Питон как-то сначала в научных кругах был, плюс это язык для обработки текстовых данных. Плюс он начал очень давно использоваться как язык системного администрирования, вместо bash/sh и perl.
>>2963661 >потом с 3.5 стал популярнее Хайп вокруг питона начался раньше, в конце нулевых, до выпуска 3 ветки. А вот переход на третью ветку был жутко косячным, с кучей просчётов по стратегии перехода. В результате была ситуация, когда уже несколько лет существовала 3-я версия, там что-то вроде 3.2, а большинство основных пакетов вроде Django, NumPy и других третью ветку не поддерживали вообще. Популярность питона стала резко падать из-за этого, плюс альтернативы подтянулись по многим направлениям.
К версии 3.5 уже косяки перехода преодолели, плюс саму ветку уже довели до ума, плюс все эти возможности асинхронности, в общем это скорее позволило питону начать отвоёвывать обратно свои ранее утерянные позиции.
Увожаемые ананосы, дрочу я значится джангу свою, прикрутил парсеры для забивания базы отдельным процессом в линуксе и решил посмотреть ютуб на тему: а можно ли всё таки парсеры вкрутить в саму джангу. И что я обнаружил? Последнее видео по джанге на ютубе было 9 месяцев назад! Но на чём тогда сейчас пилят веб-приложения? Или это просто джангу разобрали вдоль и поперёк, что бы еще что то рассусоливать по ней, а разработка на ней так и продолжается?
Ну и факультативом, вдруг кто то в курсе, ткните носом, куда курить, что бы прикрутить парсеры в саму джангу правильным способом.
>>2964554 Странно. Я просто иду на yoytube.con, и просто в поиске набираю django. Да, сначала он мне подсвечивает всех, на кого я подписан, но и сильно дальше я откопал англоязычный видос, опубликованный минимум 3 месяца назад
Аноны, только один вопрос: При одновременном добавлении данных в базу с помощью sqlalchemy и чтении данных с помощью django ORM база сама всё разрулит, или надо что то дополнительно придумывать на стороне обращающихся?
>>2966136 Тебе предстоит погрузится в удивительный мир конкурентных запросов. Это умеет разруливать база, но ты должен ее правильно настроить. Погугли про уровни изоляции.
>>2966136 зависит от базы. sqlite вырулит, но при обновлении будут локи всей файловой базы, которые не позволят одновременрые обновления; postgres точно вырулит; shelve/pickle (считается ли?) обосрётся.
Как прервать блокирующую операцию в дочернем потоке из основного? А то, бля, если во время подключения к serial я подам сигнал в поток, мол, прекращай там свои попытки подключения, то ничего путного не выйдет из этого, ведь поток заблокирован и ждет ответа от каких-то там системных библиотек или хуй его знает. Даже если через pythonapi.PyThreadState_SetAsyncExc послать исключение, то он его обработает только когда очухается, получив соединение с устройством (ну или если я COM выдерну нахуй из разъема).
Хули делать то? Сигналы еще пробовал, поебота тоже.
>>2966192 В python ж нельзя убить поток без иъебов навроде того ж PyThreadState_SetAsyncExc, да и, потом, мне надо чтоб просто он вышел из блокирующей операции и спокойно продолжил исполнение далее. Это наверное платформозависимая хуйня.
Перезапуск потока ради такой плевой задачи выглядит как забивание гвоздей телескопом. Но наверное иначе и правда нельзя.
>>2966192 Ну в моем случае поток блокирует win32api.CreateFile для открытия COM-соединения. Платформозависимая хуйня, на пингвине или еще где будет иначе все. Ну один хуй надо как-то вот блокирующую операцию прервать.
>>2966742 Мне айтишечка ваша нахуй не нужна, а английский у меня минимум B2. Но я написал "желательно", потому что разобраться мне нужно быстро. А теперь съеби нахуй, сам то небось пхп-макака ссаная.
>>2966697 Как вы ещё не вымерли все, бедолаги? По стандартным библиотекам тонны инфы на русскоязычных ресурсах, если уж совсем тяжко и ты страдаешь от синдрома дефицита внимания, сходи до чат гопоты, пусть объяснит тебе как отсталому на пальцах как пользоваться сокетами
>>2967079 > On Windows, signal() can only be called with SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM, or SIGBREAK. A ValueError will be raised in any other case. Note that not all systems define the same set of signal names; an AttributeError will be raised if a signal name is not defined as SIG* module level constant. на винде не заведётся. придётся свою реализацию потока писать, которая спит нужное время, выставляет event и завершает поток с блокирующей операцией
>>2966233 Если винапи не предустматривает таймаут для CreateFile то хрен ее прервешь, мне так кажется. Наверное можно всю работу с ком портом вынести в отдельный процесс (не поток) и убивать его если завис, но это совсем уже некрасиво получается.
>>2968041 result = [ ____{ ________"NAME": names, ________"PARAMS": { ____________"height": heights, ____________"weight": weights, ________} ____} ____for i in range(len(names)) ]
>>2933108 Расстановка приоритетов и все такое. Одним глазом работает тайм-менеджмент, и прочая шизазалупа, которой пичкают современных ребятишек. На самом деле есть потушить жопу, и здраво подойти ко всей этой теме, то можно неплохо вырасти в плане управления временем и осваивания новых вещей для самого себя. Но это все в теории и вероятно. Если в голове бардак и настоящего желания учиться нет - хуйца по итогу только можно будет соснуть. >как зумеры выдерживают такую гонку? Времени + мотивации дохуя. И то не у всех.
>>2968413 Твои лабораторки за тебя никто делаеть не будет, а бесплатно взламывать вебсокеты в браузере тем более. Да и ты не сможешь получить к ним доступ.
>>2968719 Зависит от твоих ожиданий и работоспособности. Если метишь в гугол и занимаешься байтоебством - можно и за десять лет не устроиться никуда. Если с головой всё в порядке и делаешь только то что нужно - через пару месяцев, может три. А ещё всё зависит от базы в целом. Если ты условно ебланил в школе с вузом, то вкат может затянуться на долгие годы.
>>2968737 Обычный рест апи, работы с бд, вызовы к сторонним апи, пару фреймворков и планируемый стек. Немного базового программирования. Всё. Даже такой конч как я освоил это за пару месяцев правда я до этого программировал микроконтроллеры, но не суть
>>2968747 Половина ждунов с нарисованным опытом не знают, может ли быть в гет-запросе боди или как куки работают, а большая часть не знает, как работают сессии в алхимии или что такое uow, но уже 150к с ноги хотят я бы тоже хотел, чего скрывать, но сами за 3 месяца че-то не могут это освоить.
>>296876 Ну так и я получаю 280к и уже почти 2 месяца код не пишу, только статусы в эпиках в жире меняю и документацию обновляю, т.к. всё давно отрефакторил и тестами покрыл, ведь 2 предыдущие команды олигофренов не смогли это сделать за предыдущие 2 года.
>>2968765 Почему? Это просто общепринятый стандарт. Можешь сам проверить на fastapi и сделать через постман гет запрос с боди. Прочитает. Да и я часто в логах вижу боты посылают запросы отличные от get/post. Это просто общепринятый стандарт, не более.
Есть один сервис, который отдает такой токен: 1702947606108.009da13328e560c5debf0142ece04950 Первая часть до точки - это UNIX time GMT: Tuesday, 19 December 2023 г., 1:00:06.108. Какие предположения насчет второй части токена, которая после точки? Есть ли какой-нибудь сервис, чтобы попробовать разные типы шифрования, сравнивая их? Вроде видел какой-то сайти с окошками для SHA, AES, но хоть убей не вспомню как нагуглить даже.
>>2968830 очевидный хеш, 32 hex символа, 128 бит. Может md5, может обрезанный большой хеш. Брать могут от чего угодно, например там id пользователя, таймстамп, пароль + какая-нибудь длинная соль.
Если разработчик не полный идиот, что сейчас редко бывает, то шансов сломать нет.
там ты можешь загрузить XML файл в специальный объект пройти по всем узлам, например по узлам нужного типа (изучай xpath, крайне необходимая вещь), если в тексте узла содержится нужное слово, то удаляешь его из родителя. Дальше дампишь XML в файл
Смотри доку, там примеры есть многого открытие ET.load() из объекта в xml обратно ET.dump(root)
>>2968823 >А ты где полезной нехуйней занимаешься? В местах где сказать начальству на вопрос чем занимался - я > отрефакторил и тестами покрыл все равно что сказать > пузыри слюнями пускал, а сейчас вот какаюсь
>>2969024 Забавно таких клоунов встречать, мнящих себя дохуя важными-бумажными, а на деле молча сидят на дейликах, лишь бы не спросили, что вчера делал.
>>2969024 >на вопрос чем занимался Мимо синьор девелопер. Докладываю: 1. Спросил в трех рабочих чатах "Ну чо там?" 2. Провел созвон, подвигал карточки. 3. Написал требования к документации. 4. Прокомментировал документацию. 5. Ответил на комментарии к своим комментариям к документации.
>>2969068 Конечно тревожно, ведь если сказать твой бред то в ответ тебя удивленно спросят "а почему ты нихуя не делал?" и выебут по кругу всем трудовым коллективом.
>>2969170 Ну в 4 не было. По крайней мере из коробки. Только что венв с 4 отдельно поднимал, что бы проверить. Да и в 3 я что то не припомню на вскидку.
>>2969657 Так в 3 тоже из коробки, только кнопки нет, админка сама решает какие стили применить на основании того включена ли у тебя темная тема в системе или нет.
>>2969945 Что то мне кажется, что этот ленивый голубец припёздывает мне. Парсингом я давно занимаюсь, но никогда не видел, что бы запрос джэйсона улетал буквально на каждое деление колёсика скроллинка. Или это в натуре норма?
>>2970821 Знает, как оказалось, если подробнее расспросить. Я прост заказывал минимал вариант, что бы прорубить тему. Debouncing или Throttling: Вы можете использовать технику дебаунсинга или траттлинга, чтобы ограничить частоту отправки запросов. Таким образом, запрос будет отправляться не каждый раз, когда событие scroll срабатывает, а с задержкой. Вы можете использовать библиотеки, такие как Lodash, которые предоставляют функции дебаунсинга и траттлинга.
Threshold (Порог прокрутки): Регулируйте значение 100 в $(document).height() - 100 в вашем коде. Это значение определяет, насколько близко к концу страницы должен быть скролл, чтобы начать подгружать новые статьи. Вы можете изменить это значение, чтобы запросы отправлялись менее часто.
Ананасы, я доволен, как слон. Ну и ебучий конечно язык джаваскрипт. Я нихуя не понимаю, как это работает, но работает, вроде как надо. Джанга. Подгрузка статей из базы по 10 штучек посредством бесконечного скролла. При этом запросы не дидосят базу. Мне больше не с кем поделиться счастьем, у меня нет ни одного знакомого, который бы эту хуйню понимал.
Народ, а какой GUI на сегодняшний день наиболее котируется? Хочу написать настолку, только 2д-графика. По геймплею: бросок кубиков, выбор действия, чтение карточек. Я консольную версию написал, всё работает, вот теперь хочу графоний прикрутить со свисто-перделками. Видел на гитхабе "монополию" довольно хорошо сделали на tkinter. Можно и на нём начать писать, но есть вопросики: - как у него с добавлением визуальных эффектов в виде сияний, подсветок и 2д-анимаций? - что с кросс-платформенностью? Я могу потом это всё закинуть себе на андроид-планшет или ещё куда?
Короче, поясните нюфане за GUI на питоне в 2023м?
Если что, раньше прогал на С++ и в Qt соответственно всякие служебные утилиты под винду и линукс. Но залазить в PyQt как-то не очень хочу. Ощущение, что я химическую лабораторию использую, чтоб чай заварить
>>2971803 Ничего универсальнее, гибче и красивее, чем HTML+CSS всё равно нет, хули тут думать. Ну если точно хочешь изучить огромную ебанину и при этом оставаться в оконцове жестко привязанным онли к декстопу и мобиле - знамо дело, бери qt, если не огромную ебанину, но всё равно нюхать десктоп и мобила по жизни есть custom tkinter, тоже красиво более менее. С ХТМЛ и ЦСС же ты можешь хоть под что хуярить. Даже под телегу, учитывая эту новую фичу вкручивать веб прям в внутрь телеги.
>>2971862 >Ничего универсальнее, гибче и красивее, чем HTML+CSS всё равно нет Двачую это. Если уж пиздец как захочется на десктоп портнуть - можно завернуть в электрон.
Ребзя, поясните чисто по хардкору. Вот есть база со статьями, есть пустой шаблон, с одним дивом флекс ширина 100vw, высота 100vh. Есть отдельно шаблон карточки на флексах, растянут по ширине и высоте на 100%. Я правильно думаю, что for статья in статьи: рисовать див, в котором инклюд шаблон карточки, в которой в свою очередь уже подставлены данные? Хочу что бы на голом шаблоне появлялись красивые карточки ровно с тем, что в базе есть. Если в базе ничего нет, то и не появляется ничего. Сорян, что объясняю, словно боженька.
>>2971467 Ты пойми одно. Каждый раз это будет всего одна запись и каждый раз всего одна запись будет позорить тебя. Поставь себе OBS и настрой его всего один раз и в будущем оно тебе пригодится каждый раз
>>2933091 (OP) Братцы, кто-нибудь подключался к postgres с помощью pyodbc? Он у нас в фирме стандарт (т.к. в основном юзают мускл), захотел постгрес приконнектить, по идее стандарт это допускает, когда начал делать, sclalchemy начал ругаться на недостающие либы (хотя установил pyodbc в зависимостях и либу odbc-postgresql в контейнер). Вот спроси лу Чат ГПТ но он начал хуйню нести, его не смущает в ответе, что он указал драйвер PostgreSQL Unicode но в коннекте прописал: mssql+pyodbc
Джанганы, вот у меня в базе есть флаг с булевым значением 0-1, как вы делаете, что бы в зависимости от флага в шаблон вставлялась фраза "Дать краба" - "Отшить петуха"? Это сериализаторы курить или сериализаторы ни при чем и можно проще? (я в дрф пока не лезу)
Ох ебать, сам догадался кажись. Условие прям в шаблон же можно воткнуть {% if база.флаг = 1 %} <div класс="Дать краба">Дать краба</div> {% else %} <div класс="Отшить петуховена">Отшить петуховена</div> { end if } Думаю, как то так сработает
Какой же чат жпт тупой, пиздец просто. Сейчас спрашиваю его сколько символов я могу передать в Питоне3.7 через subprocess.call(), ОС виндоус. Отвечает мне: ТОЛЬКО 8191. Но я же помню что ещё в 2.7 передавал под 32000. Чекаю, так и есть - 32к, если 33к ошибка длины. Пишу ГПТ - вот передал 32к, оправдывайся.
"Мням мням, ну у вас наверное какие-то особые настройки ОС стоят и вообще лучше не больше 8191 передавать" Буквально так и ответил. и вот на этом говне сейчас баристы учатся погромировать.
>>2974243 Дык, это суть нейросетей и ИИ — давать ПРИМЕРНЫЙ результат, совпадающий на заданную точность с истиной.
Это в принципе не энциклопедия и никогда ею не станет. Это как человеческие сны, где всё позволено, никакой критики и центр критичности мозга подавлен гормонами сна. Посмотрите, бля, на рисунки нейросетей — это наши сны.
Точные ответы — это совсем другая область и её либо бросили разрабатывать, добившись гипертекста (и википедии на нём), либо ещё даже не начали подступаться (реальный искусственный разум, а не интеллект).
>>2974763 А ты иначе последний гпт никак не запустишь, дурачёк. Если ты вообразил, что найдешь свободную модель 4.5 на хаггингфэйс и запустишь на своей помойке, то ты глубоко ошибаешься. А последний жпт верстает по скинутой ему пикче, не то, что твои даунские ответы подсказывать.
>>2974768 >Дык, это суть нейросетей и ИИ — давать ПРИМЕРНЫЙ результат, совпадающий на заданную точность с истиной Скорее это нейросети на текущем этапе развития. Человек ведь тоже нейросеть, но в состоянии выдавать точные результаты.
Я думаю через какое-то время нейросети научатся нормальному логическому мышлению, плюс будут помнить чётко какие-то фактические данные и уметь ими оперировать. Принципиальный проблем тут нет.
>>2975091 Принципиальная проблема есть одна, но ооочень сложная. На столько, что умные дядьки решили приостановить пока это дело, потому что совершенно чётко понятно, что дальнейшее развитие приведет к непредсказуемым, но абсолютно точно к ужасающим результатам. Проблема 2000 года - это просто шутка петросяна, по сравнению с проблемой согласования.
>>2975229 оффтопик, но я вижу больше проблему не в сверхъуме ИИ, а в сверхтупости человечества и неспособности его решать проблемы и отвечать на вызовы
>>2975091 Да хуй там. Просто у человека есть другие слои, не являющиеся нейросетями. А есть нейросети. Это очевидно.
>нейросети научатся нормальному логическому мышлению Ты лучше прочти что-нибудь про них и пойми, что логики там ноль и никогда не завезут. Потому что это матрица расстояний до приемлемого результата с некоторой точностью. Там нет логических цепочек в принципе, есть куча вариантов, некоторые из которых УПРОЩЁННО — близки к истинному ответу. Полного совпадения тоже может никогда не быть. Именно поэтому я сказал про сны, если ты внимательно об этом подумаешь.
Но у человека есть ещё слой разума и слой логики, сделанные не по принципу нейросетей. И есть ещё лимбическая система, вегетативная и прочее. Человек сложнее комплексно, а не вычислительно.
>>2975229 Хуйня какая-то)) Для гуманитарных пориджей-овощей.
Проблема нейронок — их быстрое вырождение, если в обучение примешиваются результаты других нейронок или предыдущие результаты этой. ЧатГПТ так был убит. А вмешивание неизбежно, так как в сети скоро будет нейронками насрано по самую крышу. Законы о маркировке нейросетевого творчества как раз про это — чтобы отделить то, что ведёт к быстрому вырождению твоей нейронки, в которую вложены миллиарды. Если не маркировать, триллионы долларов тупо сгорят нахуй.
>>2975441 >Ты лучше прочти что-нибудь про них и пойми, что логики там ноль и никогда не завезут. Потому что это матрица расстояний до приемлемого результата с некоторой точностью. Мне кажется ты сам читал про простейшие нейросети и на основе этого делаешь выводы. Но современные нейросети на порядки сложнее.
Человеческий мозг это тоже нейросеть. Всё логическое мышление в нём, осознание, понимание смысла - это всё та же нейросеть.
>Но у человека есть ещё слой разума и слой логики, сделанные не по принципу нейросетей. А по какому, интересно? Какой тип клеток за него отвечает, где они находятся, как соединены друг с другом?
>>2975456 >Python 2015 Какую версию ты имеешь в виду? Там по календарю вроде 3.5 в 2015 выпустили. Тогда слёту 1) f-string, без них сейчас никуда вообще, завезли вроде бы в 3.6 2) asyncio, завезли в 3.5 в современном виде, но реально добили к 3.7 3) очень много вокруг аннотаций-типизации, это то, что и сейчас ещё дорабатывают
Мне кажется это вот самое ключевое, прочее, вроде := и каких-то отдельных библиотек уже так, совсем мелочи
>>2975467 >Человеческий мозг это тоже нейросеть. Всё логическое мышление в нём, осознание, понимание смысла - это всё та же нейросеть. Нихуя, нейронки не способны в индукцию, так как это просто умная статистическая машина, а без нее любая попытка мышления не представляет никакого смысла
>>2975534 >Нихуя, нейронки не способны в индукцию Ну человек же способен? А человек тоже всего лишь нейросеть.
Мне кажется, что ты представляешь себе нейросети как "многослойные перцептроны". Они да, примитивны. Но блин, все современные ИИ это "рекурентные" нейросети, с обратной связью, со сложной топологией. Как только появляется обратная связь, так, в принципе, появлятся возможность самообучения.
Для человека логическое мышление это высшая форма мышления, оно развивается позже и не у всех Там просто чуть сложнее обучить нейросеть этим вот способностям, при этом реально текущих нейросетей уже достаточно.
Нейросеть с обратной связью способна абсолютно на всё. Это как машина Тьюринга может всё вычислить, что в принципе возможно, так и нейросеть с обратной связью способна к абсолютно всем формам мышления.
Ребзя, есть у меня проект на джанге "xui", в нём есть приложение "zalupa". Возможно ли стандартными инструментами джанги (не прибегая к крону и селери) сделать так, что бы каждые пять минут в консоль выводилась надпись "xui i pizda igraut v poezda"? Т.е. по таймеру, не по нажатию кнопки. Неужели будет нормой, если я ебану бесконечный цикл с time.sleep() прям во вьюхе?
Из соображений придурковатости все имена были изменены.
>>2975456 >>2975760 В 2023 версии print надо писать со скобочками, в 2015 без. Это главное отличие. Есть еще всякие мелочи но их знать не обязательно. Примеры из книжки должны работать.
> Q. Are there standard Python modules for handling standard output?
> A. Actually, such features are built into Python. In Python 2, you can use the print statement to write data to stdout. In Python 3, there is no print statement; instead, there is a print() function, which is similar.
Получается, что print "Hello World" это statement, а не функция с т.з. синтаксиса, потому что нет скобок?
>>2975467 >Человеческий мозг это тоже нейросеть Отнюдь. Нейросеть там — только слой в неокортексе и более примитивный, но более мощный, слой в лимбической системе.
Нахуй нам всегда приблизительно вычислять 2+2 в районе от 1 до 10? Ты так мамонта не поймаешь и от тигра не убежишь. У нас, как минимум, есть память, которая нейронкой не является. Даже и организованная как гирлянда нейронок для уменьшения неточности. Но кроме нейронок есть ещё что-то, ими не являющееся.
>>2975467 >как соединены друг с другом? Так и нейроны соединены вовсе не так, как организованы нейросети. Нейросетевые примитивы (единицы) — это лишь очень приблизительная ИМИТАЦИЯ МОДЕЛИ нейрона, как его видели в 1963 году, когда нейросети появились. Сейчас просто формулы сложнее, потому что вычислительные мощности больше. А сами по себе нейросети фундаментально не изменились, это вс то же самое вычисление расстояний и перемножение матриц.
>>2975675 >Как только появляется обратная связь, так, в принципе, появлятся возможность самообучения. В существующих реалиях это ведёт к почти мгновенному вырождению сетей. Так что, это не то самое самообучение, как школотрон сидит и дрочит географию в 5 классе. Нейронки не могут обучаться на собственных результатах бесконечно, это их убивает, потому что результаты приблизительные, а получающиеся на их основе результаты всё более приблизительные. Нужно постоянное вмешательство человека для правок.
>>2975850 То есть, как джангу не крути, всё равно любое правильное решение с таймерами подразумевает запуск планировщика на сервере отдельным, параллельным с джангой процессом, так?
>>2975944 Понял, принял. Я честно думал, что можно запускать сторонний сриптец прям из джанги и во время работы джанги, например, когда нагрузки по запросам на сервант нет, типа как в многопоточности или типа того. Таймер сработал, задача выставлена в стек, как только свободно - исполнилось, как то так. Гуглил, спрашивал умную железяку, а везде селери и кроны предлагаются. Вот и зашел уточнить.
>>2976001 Да. Я не отрицаю, возможно это я дебил, но ни в одной вводной лекции, которые я смотрел, я так и не врубился глубоко и до конца в эти схемы. Интуитивно то я догоняю примерно, как взаимодействуют модели с вьюхами и шаблонами, но в целом полностью всю картину сам не объясню. А уж из таких книг, как например "Джанго 4 в примерах" я вообще нихуя не понимаю. Кстати, анон >>2976004 не читай джанго 4 в примерах. Ищи дальше.
>>2975866 >В существующих реалиях это ведёт к почти мгновенному вырождению сетей. Так что, это не то самое самообучение, как школотрон сидит и дрочит географию в 5 классе. Нейронки не могут обучаться на собственных результатах бесконечно, это их убивает, Человек тоже не может. Школьник дрочит географию по учебнику. И математику. Запри его в камере-одиночке без книг и общения и посмотри, что будет. Много ли он новых знаний откроет, хотя бы в математике, которая конструктивна? Скорее всего на выходе ничего полезного не будет. Крыша съедет с катушек и всё. Потому что точно так же нет подкрепления.
Специализированные нейронки, кстати, в состоянии обучаться с нуля. Вон в том клипе про такие нейронки упоминали. Это нейронки, которые за стратегии в играх отвечают.
>>2975861 >У нас, как минимум, есть память, которая нейронкой не является. Память человека это тоже нейросеть. Нейросеть может хранить данные, и даже простые программируемые нейросети с обратной связью способны хранить данные.
Весь прикол в том, что тут примерно как с машиной Тьюринга и Тьюринг-полными языками программирования. Достаточно минимального простейшего типа элементов и большой программы (то есть примитивных нейронов и возможности составлять из них очень сложные сети с произвольной топологий) и ты можешь реализовать ВСЁ. То есть вообще всё.
Вся сложность конструирования нейросетей в том, чтобы их обучить потом. И в человеке не нулевая сеть с нуля обучается, а от рождения там уже очень сложная структура заложена, предварительно обученная.
>>2975229 >проблемой согласования. >Научпоп, который объясняет на пальцах: Это не научпоп, а инфоцыганщина, которая плодит невежество среди быдла вроде тебя. Почти полностью состоит из мемсов, антинаучной хуиты и магического мышления.
>>2976222 >не научпоп, а инфоцыганщина А это не одно ли и то же?
>>2976091 Друг, спасибо, но архитектуры много разной, в какую сторону курить конкретнее?
>>2975944 >Это в любом случае будет какой-то параллельный процесс Но в чём тогда соль прикручивания конкретно к джанге, если я вообще любым планировщиком могу запускать скрипты? Типа использование единой ОРМ, если скрипт с базой работает?
>>2976254 Не, научпоп это какой-нибудь Карл Саган, ученый, который задорно рассказывает про предмет своего знания или смежного, чтобы заинтересовать детей. А часовое видео выше от гопника - намешанная со всех краев интернета ведро помоев, сборник мемсов и старшилок с нулевой ценностью. Даже с отрицательной ценностью - потому что плодит невежество.
>>2976254 > Но в чём тогда соль прикручивания конкретно к джанге Люди привыкли что в джанге все из коробки. Скоро начнут просить чтоб была джанга-докер, джанга-линукс, джанга-компьютер, джанга-интернет, б-же упаси. Просто надо сделать модуль с __main__.py, включи туда while True, обвешай ексепшонами и прикрути таймеры ожидания и перезапуска. Вот тебе крон
Как правильней вытянуть инфу с сайта через реквестс, если он всякое говно подгружает через жаваскрипт и прочие фреймы? Понятно что можно через селениум и подобное но не вариант.
Как же горит пукан от красноглазых осей. Ну открыл я crontab -e, ну прописал: * echo "hello world" >> /home/<Я>/tmp ну сохранил. Дальше что? Нихуя не происходит. ТООЧНО не надо запускать никакого демона? Буквально во всех гайдах больше нихуя не говорится, у всех всё заебись после этого, у меня же файл пустой, хоть сколько жди. Система сама должна крон этот запускать при старте? Не надо добавлять крона в системд никакой? Может это потому что у меня убунта из-под wsl? Вот буквально каждая встреча с линуксами в любом виде - гемор. Бомбиииит
>>2976737 Нулевое - поищи официальный апи, если нет: Первое - исследуй запросы как на пике, если нет: второе - ищи джейсон в самых длинных строках возвращаемого хтмл (либо прям в js файлах), суть в том, что бы найти джейсончики вкусные, если нет: (ты тут) бьютифулсупом разбираешь хтмл, если нет: селениум.
# For example, you can run a backup of all your user accounts at 5 a.m every week with: # 0 5 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8)
для запуска задач системного крона почитай про run-parts
Короче, если спокойно выдохнуть, у меня там так: звездочка звездочка звездочка звездочка звездочка echo "hello world" >> /home/<Я>/tmp Я же не совсем еблан. Я грешу на wsl, в нормальной оси наверное это работает
>>2976918 > Короче, если спокойно выдохнуть, у меня там так: > звездочка звездочка звездочка звездочка звездочка echo "hello world" >> /home/<Я>/tmp > Я же не совсем еблан. Я грешу на wsl, в нормальной оси наверное это работает смотри логи: journalctl -u cron
>>2976923 Как я и думал. cron is not running sudo service cron start Starting periodic command scheduler cron В всл крон по умолчанию не стартует с системой
Ну что же, анонсы, иду на фуллстек. Осталось раздуплить правильный деплой, переделать весь свой зоопарк консольных парсеров в красивую джангу с бесконечным скроллом и прочими шлюхами и будет у меня неебическое портфолио на показ. Потом всего то понюхвть залупу на хэдхантере, огорчиться от предлагаемых зарплат и продать жопу за дёшево в это ваше ойти наносековое.
>>2975855 С точки зрения синтаксиса -- да. Еще разница между statement/function в том что когда принт -- функция его можно использовать в составе выражений например вставлять принт в лямду y = lambda x: print(x) or (x + 1) пользы от этого никакой один вред а когда оператор (statement) то только писать отдельной строкой.
>>2977369 print как оператор-statement это из второго питона. Не нужно лезть во второй питон, есть более полезные занятия.
also, во втором питоне была возможность сделать from __future__ import print_function и использовать print как функцию, точно так же, как в третьем питоне
Охуеть. Открытие века. Оказывается один и тот же manage.py можно юзать в двух разных процессах. Один вращает сервак с вьюхами и темплейтами, второй подбрасывает дровишки в базу через тот же орм, который и вьюха использует для показа шаблонов. А я прям не знал.
Аноны, в доках сказано: This is enforced at the database level and by model validation. If you try to save a model with a duplicate value in a unique field, a django.db.IntegrityError will be raised by the model’s save() method. Я окружил save() method исключением IntegrityError, а оно не перехватывается. Выбрасывает ошибку django.db.utils.IntegrityError: UNIQUE constraint failed: link Что может быть? В модели unique=True выставлено
>>2975944 Нет, не в любом случае. Например, в джаваскрипте нет многопоточности, а таймеры - есть, и асинхронность есть. Выражение "эвент луп" тебе о чём-нибудь говорит?
>>2975794 >если я ебану бесконечный цикл с time.sleep() прям во вьюхе? За такое пиздят, вообще-то.
>>2977570 Может мы разные документации читаем? Я вот эту и так с ходу такое (один и тот же manage.py можно юзать в двух разных процессах) там в глаза не бросается.
>>2977696 Там нет ни слова про то ,что один и тот же manage.py использовать можно. Там максимум, что есть, это "для запуска автономных сценариев или сценариев, которые периодически выполняются из crontab UNIX или" Но это я и так знал и запускать кроном вообще любую хуйню можно, не обазательно джанговскую.
Это важно, потому что раньше у меня было совсем по-еблански: так и висело два процесса параллельно, но один через скуэл алхеми загонял данные парсера в базу, а второй с помощью орм джанги их показывал. А теперь можно два раза не писать модели под две разные орм =)
>>2977705 Наблюдаю типичную ошибку вкатыша: сделать все кРаСиВо и по ОоП)) вместо того, чтобы получить рабочий код. В итоге накостылял хуйни и сам себе насрал в портки. Запомни, сына: сначала код, потом тесты, потом наводишь красоту. Когда наберешься опыта, код и тесты поменяешь в очередности.
>>2977931 >код и тесты поменяешь в очередности То есть БАТЯ у нас сейчас пишет сначала тесты, а уже потом сам код? >по ОоП Это требования к командам на джанго. Ты джангу открывал вообще?
>>2978051 >БАТЯ у нас сейчас пишет сначала тесты, а уже потом сам код Ты охуеешь, но да. >Это требования к командам на джанго Давай показывай, где джанга требует заворачивать простые функции в совершенно бесполезные классы без init.
>>2977734 Утро вечера мудренее Нашел какой то чудесный метод objects.get_or_create >начнём с того, что отлавливать исключения внутри транзакций моветон (читай доку по транзакциям).
Что то не сходится. В документации сказано, что при проверке на уникальность, метод save() выбрасывает ошибку ntegrityError, а этот метод находится внутри транзакции. https://docs.djangoproject.com/en/5.0/ref/models/fields/ Ну ок, сделал без исключений 🤷
>ты в Builder.video не вызываешь save() Убрал билдер вообще и парсер унёс в другой файл, что бы тот злой процедурный анон не вибрировал. Злой анон, не обессуть, что на тебя зарычал с утра, ты прав так то.
>перемудрил ты упростил до максималочки
Короче работает, чекните плес, мне не нравится, что идёт обращение в базу по КАЖДОМУ объекту, на сколько я помню, это пидорство и надо делать пачками. https://pastebin.com/G8dpLRZL
>>2978261 доку читай. get_or_create ты неправильно используешь - смотри исходный код хелпера (обрати внимание на именованный аргумент defaults). в текущем варианте, при малейшем изменении любого поля (например описание изменили) - ты получишь ошибку, т.к. pk уже есть.
по поводу пидорства - сравни коннитивную сложность текущей пасты и предыдущей. избыточная сложность - результат преждевременных оптимизаций. как писал анон выше, сделай рабочий вариант, напиши тесты, потом уже рефакторь по реальной необходимости.
Всё. Я понял про исключения в транзакциях. Вот этот дядька внятно объяснил и показал, чем это "череповато" и как делать вообще Эльфварями https://www.youtube.com/watch?v=u2t1aLYu2QU
>спрашивать у гопоты >спрашивать на анонимном форуме >смотреть видосы инфоцыганина И все это ради того, чтобы не читать документацию и не смотреть исходники. Я ебал.
>>2978865 это стабы. в джанго их нет, так что скорее всего твоя идешечка их подсунула. держу за тебя кулаки анон - ты справишься и станешь чуточку лучше!
>>2978918 Ах ты, блядский ёптарь, ты типа скачал чего-то и хуй понимаешь, как это работает? Ну, и правильно, брат, что тебе такое довелось скачать, что даже начать не можешь. Слушай сюда, ебаный олух: у тебя наверное голова полная говна, если скачал не зная, что делать дальше. Вон, там на экране есть кнопочка «СТАРТ», нажми блять на нее и посмотри, что произойдет. Может тогда раздуплишься, а может и нет, я же не вижу уровень твоей долбоёбности.
>>2978898 оно ваще не вместо pass. это многоточие называется ellipsis и значения обычно "будет доптсано" или "детали упущены" >>> type(...) <class 'ellipsis'>
>>2978895 Да, с этими "улучшениями" Мишура превращается из приятного языка в какую-то хуйню.
Если мне надо код, в котором ехал дженерик через дженерик, я буду писать на джаве, нахуй мне этот Мишура. Снежинка работает раз в 20 быстрее, как минимум. Тонны библиотек, нормальная многопоточность, наработанные практики взрослого программирования, энтерпрайз, куча работы и т.п. А Мишура получается, как морская свинка - ни к свиньям, ни к морю.
>>2979081 ебать ты хитрожопый, братишка, хочешь один раз научиться и писать всю жизнь одинаковый код? Нихуя так не получится, все нормальные языки развивают синтаксис (кроме яхве наверно) и от тебя требуют того же, развития и работы головой
>>2979120 Вот я и работаю головой - пишу на д'жаве.
>>2979107 Тогда тебе стоит начать писать на нормальном типизированном языке. Хотя бы не будешь делать двойную работу. Это не говоря уже обо всём остальном.
Дело в том, что любой инструмент имеет свою область применения и свои ограничения. Попытка сделать из пи'тона язык для больших проектов, уровня д'жавы - приводит к тому, что это просто становится неинтересным. Т.к. привнесенный оверхед, в итоге, не соответствует получаемому результату.
>>2978163 >Белый Медведьотка тестов занимает больше времени чем рабочий код. Поэтому некоторые делают его в первую очередь. имхо скорее для того, чтобы лучше понимать, что тебе нужно, какие особые ситуации возможны, что с ними делать
Это, парни, а где можно свои джанго микро-говно-поделки задеплоить на халяву? Пайтонэнивэр - много анальных запретов, к примеру парсер ютуба низя. Гитпэйджес - вообще джангу или что то динамичное низя.
>>2979932 Аааа, ебись оно конём! Уговорили, так и быть, позолочу евреям ручку за it-единицы. А есть за 200 целковых что б всю хуйню сразу туда зарядить и ботов всех и лендинги и может еще и с видюхой, вчто б нейронки вращать у вас на примете?
Кто нибудь из третда вкатился в ит на петоне и жанге? Как вы победили в конкурсе 666 откликов на место? Про такие истории успеха надо книги писать от кернигана и киесаки
>>2980046 за 200 ты разве что зоопарк на докере в 2гб памяти развернешь, ни о каких Голубой Огонёк мощностях речи идти не может, это совсем другая история
>>2980739 >id: str = None Это что за язык? Впервые такое вижу. Это в каких то последних релизах добавили явную типизацию? >id: str А нахуя объявлять то, что не имеет никакого значения? >id: Optional[str] Блять, аноны, что происходит? Макака удалила что то опять или так кто то где то пишет? Мне страшно, что я что то проебал.
>>2980739 Если сверху написать @dataclass то в первом случае оно будет требовать обязательно два параметра в инициализаторе во вoтором случае будет по умолчанию None. Отличий от Optional[str] никаких, pytype срёт на optional и разрешает None почти везде, потому что таково Весело на утренникее наследство питона и если начать строго запрещать None то отваливается половина стандартной библиотеки.
>>2980800 Питону на самом деле абсолютли поебать на тип который ты там пишешь, это нужно чисто для удобства, если там где-то не выполняется явная проверка типа
>>2980911 Это. Потому что это для красоты, для глаз. Что бы лично ты не забыл, что там за тип. >>2980900 Питон тебе говорит "нахуя ты объявляешь переменную, которая не имеет никакого значения? Когда реально понадобится переменная, тогда и значение её будешь знать. По значению я и тип определю, а то что ты там после двоеточия написал, так это ты для себя пометочку сделал на полях, кожаный мешок с дырявой памятью"
Мне нужен ПОЛНЫЙ гайд по пакетам и структуре проекта в пайтоне. Я уже битый час гуглю какую-то хуйню, которую я, по-моему, вообще не должен гуглить. Я вроде бы не вчера в программирование вкатился, но это первый ЯП, где так трудно найти однозначный ответ на КАК СУКА СДЕЛАТЬ ПРАВИЛЬНО.
В чём вообще проблема. Сейчас у меня есть примерно следующее (пик). Мне похуй, как сделать, мне просто нужен ответ, как в пайтоне делать правильней всего, чтобы всё работало и не нужны были никакие хаки, и я так и буду делать. Пока что всё выглядит так, как будто в обоссаном бидоне за 30+ лет его существования так и не смогли договориться о том, как всем делать одинаково, но ладно, добиться бы хотя бы, чтоб оно вообще работало.
(Разумеется, это упрощённый пример, там в src уже много всяких пакетов и модулей, изначально многие из них писались просто как скрипты с if __name__, потом стали для удобства делиться на подмодули с отдельными тестами, а в скриптах осталась только фигня вроде парсинга sys.argv. На этом рефакторинге в какой-то момент что-то и перестало работать.)
Все __init__.py пустые, я всё ещё толком не понимаю, когда они нужны, а когда нет, но вроде бы без них проблем было ещё больше.
Я, активировав venv, запускаю 🍾 src/script1.py. Он использует formatter и parser1; parser1 использует util1. Всё работает, если везде будут импорты типа from parsers.parser1 import x, from formatter import y, from utils.util import z. Отлично.
Теперь, я запускаю pytest из этой же коренной директории. Всё ломается, потому что ModuleNotFoundError. Всё будет работать, если все импорты (в т.ч. в parsers) будут начинаться с src. Но тогда ломается 🍾 src/script1.py, потому что ModuleNotFoundError: No module named 'src'.
Так как жить-то? Stackoverflow в основном даёт какие-то совершенно безумные советы, типа ручного изменения 🍾path, я уже совершенно перестал понимать, как всё это говно должно работать.
>>2980747 Это для фастапи, в нем есть вшитый pydantic. >А нахуя объявлять то, что не имеет никакого значения? Это модель данных, при реквесте с фронта эта моделька тебе провалидирует, что все значения прилетели именно того типа, на который вы договорились в протоколе. Аналогично можно задать модельку на респонс.
>>2980920 Нет не так. Такое поведение только во втором пидантике появилось и из-за этого Тулуп сгорела не только у меня. Если писать что-то вроде name: str = None было вполне ок, то со второй версией надо делать так name: str | None = None Какой-то пиздец. Особенно калит что теперь надо делать вот так id: str | int Иначе будет факап если придёт не то что надо.
>>2980994 Сорян за тупые вопросы К фастапи нужно еще что то? Я почему то думаю, что фастапи - это что то типа drf. Что годного можно запилить на одном лишь фастапи? На работу можно претенодвать зная лишь фастапи, но твёрдо и чётко?
>>2981028 Фастапи больше про async, т.е надо знать асинхронность, иначе смысла от него не будет. Сам по себе фреймворк несложный. Я лично не использую пидантик модели и его опендок, сразу отрубаю. Явно валидирую данные через реквест.
Ну и ещё у него есть приколдесы которые кочуют из старлета, т.к он по сути и есть старлет. Сам же фастапи в исходниках сделан довольно кринжово, он на слуху потому что подразумевается что если челик знает фастапи, то он знает и асинхронность. Последнее наиболее важно для веб сервисов.
>>2981052 Я конечно глубоко еще не лазил, но по диагонали читанул. На сколько я понял, если пилить что то асинхронное в джанге, то там это на более высоком уровне и шаблонно. Т.е. в джанге можно обмазаться асинхронностью, которая будет реально работать, и будет контролируема на высоком уровне, но как оно работает на чуть более низком уровне (всякие там оборачивания циклов, ебля с корутинами и т.д.), можно не вникать. Если исключить чисто фактор "фу бля, знать надо всё, недоБелый Медведь ты ёбаный", я правильно догадываюсь или заблуждаюсь?
>>2980936 >Все __init__.py пустые, я всё ешё толком не понымаю, када оне нужны, а када нет, но вроды бы без ных проблем было ешё больша. Заўсёды. Бяз іх, importlib спачатку шукае файл з дадзенай назвай у бягучым дырэкторыі, а потым шукае паддырэкторыю з такой назвай.
>>2980936 Чё там знать-то. В __init__.py обычно пишутся импорты для удобства. Эта штука всё ещё нужна даже если пустая, я хз почему пишут что не можно не использовать. А ещё обычно там же пишут переменную __all__ = [] куда дописываются сами импорты для удобства ["pkg1", "pkg2"] например, помимо собственно самого импорта через import.
__main__.py пишется собственно функция main() и стандартный вызов через if __name__ == "__main__" это позволяет запускать программу с помощью 🍾 -m pkg где pkg это название твоей папки с этим самым __main__.py
__name__ переменная отображает название .py файла откуда он вызывается
Объясните нубу, в какой-то момент писание хеллоу ворлдов и задач в духе "зделойте функцию шифр цезаря" в написание реальных сайтов и веб-бэкенда? Я не могу нащупать границу, как вкатываться-то.
>>2988168 Эти задачи закаляют тебя не только в синтаксисе, но и в алгоритмах. А к бэкенду не имеют отношения, да. Пилю тебе вариант роадмапа. Анон выше написал, пили полезное. Я добавлю для твоего уровня: начни пилить полезное конкретно для себя. Вот смотри, я пришел с работы, обложился хрючевом свежайшим и начинаю перерывать тонны сайтов, групп, плейлистов, рутрекер, ютуб... что бы посмотреть под хрючево, а хрючево стынет. Значит что? Правильно, надо писать своё приложение, в котором всё это будет сосредоточено. Одностраничник с сылками на годноту. Но! что бы что то выводить, надо что то спарсить - вот тебе и вырисовывается парсер ютуба. Да такой, который отслеживает появление новых, недавно появившихся серий в плейлисте. Значит что? Нужна база данных, с одной таблицей, которая будет хранить ссылки на плейлисты, которые ты конкретно зарядил на отслеживание и плюс таблица, в которой хранятся результаты. Парсер берет из базы адрес, парсит, если есть что то новое - добавляет в таблицу с результатами. Ну а к этому всему мордочку покрасивше. Вот и получается простейший джанго проект с ОРМ на борту. Потом можно прикрутить авторизацию и приложение будет работать не только на тебя, но и на твою тню, у неё то другие предпочтения. В общем допиливать это можно до бесконечности, но суть одна: парсер - база - морда. Полезно, наглядно, интересно, смерть, смерть, кладбище, пидор, заебись, чётко.
>>2988204 Ты мне напомнил, что я хотел сделать свою рулетку сайтов когда-то давно. Спасибо за совет, буду делоть, твоя идея прикольная. Главное раздуплиться какой-то рабочий процесс-то вообще, просто я до сих пор как школьник на уроке информатики, решаю задачи какие-то и функции изучаю.
Сап двощ, у доморощенного недопрогера возник вопрос - имеется асинхронная функция f (async def f()) Как мне ее запускать по расписанию, грубо говоря раз в день в 13:00 Просто через schedule не работает, собственно я и не сильно надеялся, какие то выкрутасы с asyncio я тоже пробовал, не робит, хотя может не все еще попробовал schedule.every().day.at("13:00").do(f) schedule.every().day.at("13:00").do(asyncio.run, f()) schedule.every().day.at("13:00").do(asyncio.create_task, f())
while True: schedule.run_pending() time.sleep(1) для 2 и 3 способа добавлял asyncio.get_event_loop().run_until_complete(asyncio.sleep(0))
Последний способ ошибок не выдал, но результаты функции появились не в нужное время, а только после остановки программы
Почему не подключается класс серчхедлайн? В модуле он есть, но почему-то вс код пишет что типа такого не существует. Помогите, а в коде пишет что тип не используется ещё
>>2988933 два раза написал думал может вс код тупо не видит 274 строчки, ставил и вперед и назад и два раза и один раз писал. крч не хочет вскод видеть этот класс
1) Оцените такое решение, безотносительно самой идеи что класс возвращает не свой экземпляр а какуб-то хуйню. Вот есть задача и вот такое решение в три строки. Как оно? Можно лучше?
2) Можете пояснить к чему обращается super()? Класс же не наследуется.
Как мне использовать капиталайз в функции? В си я бы указал string name и мне бы подсветило что можно использовать его, а т.к в питоне этого не пишут программа не знает что я туда отправлю и не хочет применять к name капиталайз.
народ, у меня проблема: есть питоновский файл, который надо сделать exe файлом. pyinstaller вроде как справляется, но я использую библиотеку speech_recognizer и он ее найти не может. уже все перепробовал, но не ебу че делать. подскажите
>>2996354 Когда вся твоя жизнь крутится вокруг одного инструмента, ты устареваешь вместе с инструментом. И становишься не нужным вместе с не нужным инструментом. Ты же — приложение к инструменту, не наоборот.
>>2997169 Когда вся твоя жизнь крутится вокруг нескольих инструментов, ты устареваешь вместе с инструментами. И становишься не нужным вместе с не нужнымы инструментами. Ты же — приложение к инструментам, не наоборот.
Анон, давно я на питоне не писал и вообще давно не кодил. Пишу консольную хуитку, которая спрашивает через меню опции для ффмпега и потом с этими опциями запускает конвертацию. Написал эту залупу на бат - тот ещё блядь экспириенс. Вот решил переписать на нормальном языке и повылазили нюансы. В прицнипе, контекст то не сильно важен. Вопрос вот какой. Если юзер вводит не такой ответ, как ожидается, то ему снова выводится тот же запрос ввода вызовом текущей функции. То есть функция вызывает сама себя. Я правильно помню что это приводит к созданию новых и новых уровней вложения и однажды нам питон скажет идти нахуй? Внимание на 27-29, 31-32.
Я знаю что на самом деле меню пишут через while true. Перепишу. Просто начал делать "как помню" чтобы немного восстановить знания. Реально ВСЁ забыл. И да, код говно. И тема в пайчарме белая. Короче, не ебите мозги, посто ответьте конкретно про вложенность. От этого кода не останется нихуя всё равно.
>>2933091 (OP) >У питона намного лучше официальная документация, чем у большинства других языков. Бля, если это "намного лучше", то я не представляю что за пиздец у других.
Ну типа: >>> # Измерить длины списка строк: ... words = ['cat', 'window', 'defenestrate'] >>> for w in words: ... print(w, len(w)) ... cat 3 window 6 defenestrate 12
Блять, ну даже с комментария начнём "Измерить длины списка строк", что? Может, измерить длины строк в списке? Что такое лять длины списка строк, это как нахуй? Дальше, создают список с названием words. > words = ['cat', 'window', 'defenestrate'] С тремя строками. Потом цикл, да. > for w in words: Что такое w? Откуда оно блять взялось после for? Хули про это ничего не написано? Это какой-то аргумент или как его блять списка, который существует сам по себе, ну типа, элемент списка это всегда w? Судя по тому, что я вижу, он сперва саму строку выводит, а потом уже через функцию len количество символов строке, но какого хуя список обозначили как w, он же был определён как words!? Блять, какие-то отсылки к паскалю, с, вот эта хуйня работает не так как в паскале, там итерации хуё моё, прогрессии. Сука это для кого нахуй написано вообще? Блять я пиздец походу тупой или написан ваш учебник максимально ебано. Есть нахуй для совсем долбоёбов пояснения? Ну типа, вот это вот то, это вот это. А не так что, мол, вот есть такой цикл и там бац хуй пойми что понаписали чего я до этого вообще не видел нахуй. Бля жопа сгорела сорян за стену текста.
>>3002842 Какой-то хуй на ютубе сделал типа "гайд" по этому. Тупо передрал и рассказал тоже самое что написано, но нихуя не объяснил. В комментах пояснили, что w это переменная, которая принимает значение элемента списка каждую итерацию цикла. И её можно подписать как угодно. Ну так стало понятно хотя бы. Бля, если так и дальше пойдёт то это совсем потужно будет что-то выучить. Нихуя ж не объясняют пидорасы, как будто по умолчанию я должен всё это уже знать нахуй.
Аноны, тыщу лет ничего не писал на питоне (да и дальше не сильно собираюсь, тыкал из интереса просто), но тут для нашей конфы понадобился бот и я загорелся написать, смотрю туториал, и такая хуйня не гуглится, весь синтаксис переебали? Или что это заходы с двоеточий? Такое чет даже не гуглится особо, ну или я не понял как это загуглить.
>>3003851 И дальше такая же еботека, он делает что-то типа строгой типизации в конце, или нахуя эти username : str в конце тут, вообще не помню такой ебанины когда изучал
>>3003876 >>3003851 Ну я типа такой же дундук как и ты и я делал бота на питоне. Библиотека ёбнутая потому что апи ёбнутая, документация ёбнутая и мне бы сейчас не хватило энтузиазма на это говно. Лучше собирай из кусков со стак оферфлоу чем ебаться с этим говном. Алсо автор либы емнип ныл что заебался переделывать библиотеку под изменения апи.
Есть ли на данный момент работающая библиотека для создания селфботов (ботов через аккаунт пользовател) для дискорда? discord.py, кажется, выпилил их поддержку, пишет, что неправильный токен. Его форк discord.py-self вызывает ошибку при инициализации. Нашёл фикс, но вызывается уже другая ошибка. selfcord похоже и вовсе давно заброшен
Можно ли написать такого бота для телеги, чтобы поместить его в большой чат и он мог его читать? Нужно, чтобы он пересылал мне сообщения с ключевыми словами. Владелец чата не я. Есть ли у телеги ограничения, которые не позволят мне это сделать? Или может ли меня пидорнуть модерация? Можно ли тогда сделать бота через аккаунт?
Господа, помогите, пожалуйста. Как замокать file.read в пикриле? Будь это не через asyncio, хватило бы unittest.mock.mock_open, но тут его реализация чет совсем не годится.
Пишу скрипты в VS Code, в нем они работают, но через командную строку ничего не запускается. Path прописал, пытался запускать файлы из папки питона - ничего. Никаких ошибок, просто ничего не происходит. Куда копать?
>>3010681 Не знаю что произошло, но оно само как-то починилось. При этом экзешники созданные с помощью pyinstaller все так же не работают. Куда в этом случае копать?)
Собираюсь устроиться на работу, там как раз ищут стажера-питониста. Но даже для такого пишут что устроят тестирование, по основам и ООП. Пиздец волнуюсь, делал много задач по учебникам, но никогда не зубрил полностью, полагаясь на то что всегда в интернетах смогу взять быстро уточнить написание кода, если что-то вылетело из головы. Тестирование вроде будет в онлайн формате, но я хз можно ли будет там быстро пользоваться шпаргалками. Что вообще могут спрашивать в формате "основы + ООП"? Есть где-нибудь хорошие материалы, по которым можно устроить себе проверку?
Аноны, как лучше разбивать байтовую строку полученную через сокет? Реализую байтовый протокол и надо разобрать строку - достать значение первое, второе, а потом, в зависимости от третьего, определённое количество следующих. Помогите пожалуйста.
>>2933091 (OP) Привет пихоныч. Суть - скрипт пихона должен вызывать условный другой скрипт пихона (или экзешник или что угодно) с кредами другого юзера, например run format c:\ admin:admin - УСЛОВНО разумеется. Так вот рунасы не катят, VBS нашел нужный код, но он вызывает окно и задержку для вбивания кредов напрямую через шелл. дико бесит. Гугл молчит. Подскажите какой код можно использовать?
То есть в идеале я хочу закомпилить все потом и будет так, что запуская один экзешник, он будет в сайленте уже под нужными админскими кредами запускать второй экзешник, например инстальник. Помогай двач, заебался копать. Спасибо тебе.
(вообще контора говно с медленными тоннелями. ГПО не катит раскатка, придумался мне костыль в виде запуска экзешника в назначенных в нужное время, который будет уже админом запускать нужный инстальник. Пиздец костыли, но кручусь.)
Посоны а может есть среди нас тимлиды или просто коллеги, кто может внедрить к себе человечка и получать часть его зарплаты. Могу работать, могу не работать, могу делать вид что работаю. Опыта 5 лет питона/js. Зп хочу 100 за максимальный 9 часовой рабочий день без переработок и мозгоёбки.
>>3027415 Современные системы чем дальше, тем сильнее огораживаются от таких "приколов", потому что всё, что явно не работает от текущего юзера слишком похоже на атаку. И, если в линуксе ещё можно было бы что-то обсуждать, то в виндах - найди эксплойт к какой-нибудь дырке (желательно, помеченной как "не будет починено", такие были) и пользуйся им.
В php я могу узнать, было ли выполнено условие Например переменной статус присваиваем действие. Например подключение к БД $status = mysqli_connect(1.1.1.1, root, 123, BD_NAME); Если подключение удавалось, то переменная статус была True Если нет, то False И далее можно было сделать проверку и вывести сообщение об ошибки или успехе
Можно ли так в питоне? Пробовал как в php, но не получилось. Пытался загуглить, но чет норм инфы нет, через какие-то заебства такое надо осуществлять
Анончики, учусь питону и вопрос про профилирование к мастерам:
Пользуетесь ли вы вообще профилированием, и если пользуетесь - стандартным cProfile + pstats или каким-то графическим?
Щас опробовал несколько графических библиотек (вроде tuna, snakeviz) и не заходит. Пока вобьешь в консоли код для генерации визуального профилирования (графика или табличек или еще чего), пока откроешь его в папке, если огромный проект - долго перещелкивать, пока перещелкнешь до нового места, потом изменять код и все по-новой.
Поэтому я вообще подумал а матерые программисты используют профилирование? Ведь и так понятно какая функция занимает много времени и почему, и прекрасно видят код и как его можно ускорить.
Пока мне реально зашло больше всего cProfile, потому что в терминале быстро нашел нужную функцию, потом посмотрел в коде от каких других функций зависит и понял что можно улучшить.
Но может графическое профилирование как то помогает, ускоряет разработку? Или в ином сильно важно? Подскажите пж.
Предыдущий:
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущий исходник: https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9