Этого треда уже нет.
Это копия, сохраненная 6 июля 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №132 /python/ 2224725 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #132

Предыдущий: >>2213498 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Исходник: https://dumpz.org/bASGKD8cCFDf
2 2224728
>>24725 (OP)

>Актуальность примерно 2015 года


Каков путь в 2021?
3 2224732
Ещё раз спрошу, как загрузить процессор на 100%?
while True:
pass
очень плохо процессор грузит.
4 2224745
>>24732
Мультипроцесинг или мультитрединг можно юзать? Если да, то в мультипроцесинг вызови то же самое, но вместо пасс напиши а+=1. А если нет, то в разных тредах вызывай hashlib бесконечно прося посчитать какой-то хэш. Из-за того, что подсчёт хэша освобождает gil это cpu bound операция позволит сразу нескольким посикс тредам занимать процессор одновременно.
5 2224747
>>24732
Начинай считать простые числа
>>24745
Держи в курсе плс, операции сложения почти не грузят проц. У чела забьется оперативка, а проц нагрузится на 10%
6 2224750
>>24732
Вычисляй определитель для огромной матрицы через матричные операции
7 2224751
>>24747

>Держи в курсе плс, операции сложения почти не грузят проц. У чела забьется оперативка, а проц нагрузится на 10%


В мультипроцессинге даже создание процесса грузит
8 2224755
>>24751
На сотую долю процента грузит проц и оперативку на пару десятков мегабайт. Угадай что закончится быстрее
10 2224760
>>24732
Питон неспособен загрузить проц
11 2224764
Не кажется ли вам, что учить питон не релевантно, ибо самый распиаренный язык, хотя столько людей и не требуется?

мимо рубист
12 2224765
>>24764
Естественно говорю за джангу, про мл вопросов нет.

а всякие игры и мобильные приложения на питоне никому не нужны
13 2224767
>>24765
Ренпи вполне имеет успех среди порно игр и обычных ВН.
14 2224769
>>24767
Хз, за порнуху, но вн легче уже на конструкторах без кода пилить
15 2224770
>>24769
Да, настолько легче, что все больше наркоманов переезжает на Юнити для этих целей.
16 2224771
>>24770
А в чём профит? Там же нет сложной логики или чего-то того, что нельзя уместить в конструктор.
17 2224772
>>24765
Так не только джангой живем же, бизнес логику на питоне спокойно делают. У нас микросервисы сделаны. У райфайзенбанка тоже есть.
https://www.youtube.com/watch?v=4zjj1aHJoko
18 2224773
>>24771
А хз. Люди просто хотят новеллы с характеристиками, картами города, внутренними интерфейсами вроде телефона и прочее.

Вообще люди некоторые пробуют в Унрил и уже там делают своего рода порно-гта. Так что но-код генераторы будут постоянно отставать пока нейросети не накроют вообще всех
19 2224783
>>24732
while True:
____pass
грузин на 100%, но только одно ядро, конечно.

Если надо все ядра грузить, то надо на много процессов раскидывать.
20 2224797
>>24764
Все так, питон умер и вкатываться туда бессмысленно
21 2224800
>>24797
То ли дело Руби...
22 2224801
>>24755
Ты сам проверь. Это всё зависит от честности скедулера. Заспавнив кучу прецессов один из них наверняка займёт процессорное время. а там не важно что внутри гоняется. Главное чтобы cpu bound таска выполнялась. например икремент
23 2224807
>>24801
Займет твердо и четко, у тебя контекст будет без остановки меняться, все будет пердеть и лагать, но при этом проц будет загружен на полпроцента.
24 2224823
люблю python сыглы?
25 2224842
>>24807
Переключения контекста это и есть cpu bound задачА, но в режиме ядра. Да в таск менеджере не увидешь, что какой-то процесс занял проц, но проц будет занят т.к. иммено он тут будет изким местом. Иначе из-за чего у тебя система нагрузиться до придела при свободных проце и памяти как ты утверждаешь?
26 2224858
По вебдеву/QA/любым релевантным вопросам у кого-то есть предложения посотрудничать?
Давненько уже не делал чего-то в этом направлении, но тем не менее.

Skills: python, django, rest api, html, css, js(слегка), Linux, selenium
tg https://privnote.com/CibP6PFc#NqpMEH4JH
27 2224860
>>24842
Это не кпу баунд задача, точнее, частично кпу, но буквально на пол шишечки. Я держу в курсе, но разные части процессора делают разные вещи. Ты нагрузишь действительно сильно один небольшой кусок проца и оперативную память.
1.png6 Кб, 415x230
28 2224866
1.png6 Кб, 422x236
29 2224872
30 2224930
>>24872
И че ты высрал?
Пидорас что ле?
31 2225043
В рамках одного треда может существовать только 1 event loop из asyncio?
32 2225116
https://ideone.com/lyIXz7

Он сломался?
33 2225122
>>25116

> Time limit exceeded


Слепой штоле?
34 2225155
Шо це таке?

Я думал range это генератор. Когда на генератор юзаем next он след значение отдает. А тут чтоб это работало его надо в iter обернуть, с хуяШо це таке?

Я думал range это генератор. Когда на генератор юзаем next он след значение отдает. А тут чтоб это работало его надо в iter обернуть, с хуя ли? ли?
image.png29 Кб, 837x215
35 2225156
Макаба скрин проебала
36 2225163
>>25155
теперь ты узнал что range - не итератор.
Ну и что с того? Незначительная хуйня.
Извини, не весь питон создан математиками и не обязан быть идеальным.
37 2225171
>>25043
Да. И как ты себе иное представляешь, как один event loop будет чередовать переключение задач с другим, в рамках одного треда?

Вообще в норме в принципе должен быть только один event loop вообще. Если тебе надо несколько, свой в каждом треде, ты скорее всего что-то делаешь сильно не так.
38 2225179
>>25155
Это объект, который реализует протокол итератора, поэтому его можно итерировать. Кроме того, у него есть другие фичи вроде слайсов или проверок на вхождение.
39 2225190
>>24858
булджад потерся контакт
tg https://pastebin.com/9R3uK3Bb
40 2225219
>>24858

>искать работу на дваче, в треде с одними вкатывальщиками

41 2225225
>>25219
Я уже давно вкатился например. Все зовут меня Папкой. Я тут все разруливаю.
42 2225268
>>25219
Работу не работу, но может какое-то collaboration или startup
43 2225573
Здравствуйте, это тред много процессорного языка?

# All done. Time taken 45.307 , Workers 1
# All done. Time taken 32.062 , Workers 2
# All done. Time taken 27.553 , Workers 3
# All done. Time taken 38.718 , Workers 4
# All done. Time taken 47.477 , Workers 5
# All done. Time taken 45.283 , Workers 9
# All done. Time taken 45.413 , Workers 12
# All done. Time taken 43.496 , Workers 12
# All done. Time taken 45.294 , Workers 12
# All done. Time taken 45.059 , Workers None
44 2225629
>>25573
Вангую, твой код — дерьмо. Показывай.
45 2225814
>>25573
Сколько ядер на твоей говномашине?
что еще блять за "Workers None" ?)
image.png240 Кб, 1710x1293
46 2225896
Перешел к имплементации range в builtins.py - мне показывают вот такую херь, где походу висит просто файл-заглушка, никакой бизнес-логики не видно. Почаму так?
47 2225899
>>25896
Они реализованы на си.
image.png39 Кб, 864x357
48 2225908
>>25899
Хм, я делал как-то подобное с Cython - функции на Си импортировал в питон-скрипте, но никаких заглушок и py-файлов не повлялось, толь ко с-файлы и so-файл через который шла интеграция. Если надо то заглушку пишу я сам что ле? Оно конфликтовать не будет ни с чем?
49 2225931
>>25908
Не знаю, я этим не занимался. Вероятно, оно сделано чтобы добавить докстринги и т.п.
50 2225938
>>25225
А, ты тот самый чмошка, который начал сракой вилять и считать хеш корутины, высирая варнинги, ошибки памяти, носамостоятельно управлять работой корутины?
1595925262content700x455[1].jpg47 Кб, 697x455
51 2226182
Помогите распарсить время
Есть строка
2021-10-28T15:32:06.289609+07:00
пытаюсь скормить ее datetime.strptime но меня шлет в нахуй. Если убрать +07:00 то парситься через
'%Y-%m-%dT%H:%M:%S.%f'
Что делать с таймзоной хз
52 2226190
Кочаны, что делать?

Ставлю sentry 9.1.2 через pip в virtualenv - всё ок

Ставлю тот же sentry без virtualenv - падает при установке зависимости cryptography>=1.2 с SyntaxError: invalid syntax

File "/tmp/pip-build-6eVV_0/cryptography/setup.py", line 84
print(f" Python: {'.'.join(str(v) for v in sys.version_info[:3])}")

Питон второй. Если ставить третьим, то тоже херня получается, но другая.

Мне в принципе плевать на каком питоне оно будет, главное чтобы работало. На втором в virtualenv всё ок. Сервис удалось настроить и запустить.

Хочу избавиться от virtualenv, завести в системе отдельного юзера и поставить ему глобально. Что этому pip не хватает?
53 2226193
>>26190

> Питон второй


Месье знает толк в некрофилии

> На втором в virtualenv всё ок


В виртуальном окружении где точно все ставится пишешь:
pip freeze > requirements.txt
Потом на окружении на котором хочешь воспроизвести пишешь:
pip install -r requirements.txt
Питон должен быть той же версии. Смотришь что пишет. Если опять хуйня, то с логом сюда.
54 2226194
>>26190

>Питон второй


это зря, может вылезти кокоя-нибудь левая зависимость и все сломать к хуям
55 2226196
>>25629
>>25814
ядер 8х2, код просто считал хеши. https://ideone.com/uVnNcz
56 2226210
>>26193

> pip freeze


Ага, фриз, забыл про него. Немного помогло, по крайней мере cryptography прошел.

Теперь падает на таком

error in httplib2 setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers

$ python --version
Python 2.7.5

$ python -m pip --version
pip 9.0.1 from /home/sentry/.local/lib/python2.7/site-packages (python 2.7)

Полностью совпадает с тем, что в virtualenv

Ладно, хуй с ним, на сегодня с меня хватит.

>>26194
Мне просто sentry развернуть надо. Свежая версия у него через докер ставятся, но капец прожорливая. Решил вот покрасноглазить и сэкономить на оперативе.
57 2226211
>>26196
У тебя max_workers один. Поставь больше. Плюс пул не гарантирует, что всегда столько процессов будет создано вызывай его через map с заданыым chunksize равным размеру твоего пула. хэшфункция простая и преобразование строк в памяти не грузит процессор. Используй hashlib.pbkdf2_hmac с большим количество итераций
58 2226223
>>24765

> а всякие игры ... на питоне никому не нужны


Скажи это EA, у которых чуть не вся логика симсов на пистоне. Не графика, конечно, но логика -- да.

> мобильные приложения на питоне никому не нужны


Я про них слышал, но не видел пока ни разу. Дайте пример, что ли?
Впрочем, я планирую поизучать Swift как-нибудь, для пэт-проектов будет полезно.
59 2226234
>>26196
Ты в курсе, что ThreadPoolExecutor создаёт треды, а не процессы? Уж не знаю, что там hashlib делает в плане отпускания гила, но у меня результаты такие (4c/8t):

ThreadPoolExecutor:
All done. Time taken 7.156 , Workers 1
All done. Time taken 6.141 , Workers 2
All done. Time taken 8.997 , Workers 4
All done. Time taken 8.771 , Workers 6
All done. Time taken 8.813 , Workers 7
All done. Time taken 9.821 , Workers 8

ProcessPoolExecutor:
All done. Time taken 7.327 , Workers 1
All done. Time taken 4.464 , Workers 2
All done. Time taken 3.099 , Workers 4
All done. Time taken 2.48 , Workers 6
All done. Time taken 2.573 , Workers 7
All done. Time taken 2.894 , Workers 8
60 2226237
Пытаюсь разобраться.

А вообще есть профиты от какой-то асинхронности движков? И вообще что это значит по факту?

Ну то есть:
я могу взять какой-нибудь ${FRAMEWORK_NAME} и в его функциях в asynk/await, скажем, обращаться к БД. Это же возможно?
А, если возможно, то значит, что ${FRAMEWORK_NAME} может работать асинхронно, так? То есть ${FRAMEWORK_NAME} асинхронный?
Тогда чем отличиется то, что называют синхронными фреймворками от того, что называется асинхронными фреймворками?

В целом, как я понимаю, любой web-framework многопоточный (по крайней мере умеет отвечать на все входящие вопросы даже если они пришли одновременно, запуская обработчики параллельно). Но тут я, возможно, запутался в терминах или в том, кто что делает.
И внутри любого фреймворка исполняется обычный Python-код, который может быть асинхронным.
Ещё по-хорошему асинхронным может (и по-хорошему должен быть) web-сервер (apache/nginx/gunicorn), в том числе чтобы по канонам HTTP2 отдать пользователю все ресурсы одной пачкой, но к фреймворку это прямого отношения не имеет.

Но тогда где граница между синхронными и асинхронными движками?
Возможно (и даже крайне вероятно), я что-то недопонял и всё перепутал. Прошу анона пояснить тогда, в чём цимус, где и на каком этапе возникает асинхронность и как используется.
61 2226251
>>26237

>${FRAMEWORK_NAME}


Ты тредом ошибся, пхп тред ниже

>Тогда чем отличиется то, что называют синхронными фреймворками от того, что называется асинхронными фреймворками?


Тем, что начинка переключает контекст при вызове.

>любой web-framework многопоточный


Ты долбаеб? Зачем тебе многопоточность в вебе?

>Ещё по-хорошему асинхронным может (и по-хорошему должен быть) web-сервер


Ты долбаеб? На пальцах расскажу что делает веб сервер. Принимает запрос, принимает параметры и передает твоему фреймворк. Какая асинхронщита даже в теории тут может быть?

>чтобы по канонам HTTP2 отдать пользователю все ресурсы одной пачкой


А юзер сидит и лоадер смотрит?

>Но тогда где граница между синхронными и асинхронными движками?


Иди нахуй, тупая макака.
изображение.png164 Кб, 585x317
62 2226286
>>26251

>пхп тред ниже


Синтаксис из баша. Это один из моих "родных" языков, которыми я пользовался и пользуюсь всё время, сколько работаю

>начинка переключает контекст при вызове


А подробнее можно? Ты любую функцию в коде можешь вызвать асинхронно.

>Зачем тебе многопоточность в вебе?


Чтобы, например, не ждать, пока БД или API вернёт результаты, а заниматься полезным делом. Недавно ковырял баг, связанный с таким ожиданием.
А если она нахуй не не нужна, то хули даже в предыдущем треде рекомендовали вместо синхронного фласка асинхронный aiohttp?

>Какая асинхронщита даже в теории тут может быть?


М-м... Многопоточность тогда? Давай подробности.

>А юзер сидит и лоадер смотрит?


А юзер заходит на сайт и понимает, что он грузился либо 0,3с, либо 1,3с. И ему не суть важно, что index.html прилетел за 0,1с на самом деле.

>Иди нахуй, тупая макака.


Сам иди, если нихуя не знаешь.
63 2226290
>>26251

>Ты долбаеб? На пальцах расскажу что делает веб сервер. Принимает запрос, принимает параметры и передает твоему фреймворк. Какая асинхронщита даже в теории тут может быть?


А ты сам не долбоёб, случайно?

>Иди нахуй, тупая макака.


Сам иди, быдло ёбаное!
мимо
изображение.png242 Кб, 639x364
64 2226294
>>26251

> Тем, что начинка переключает контекст при вызове.


Ты не поверишь что происходит в многопоточности

> Ты долбаеб? Зачем тебе многопоточность в вебе?


Очередная макака, которая считает что RED ASYNC GOES FASTA. В зависимости от задач может быть быстрее и асинхронное, и многопоточное приложение

> Ты долбаеб? На пальцах расскажу что делает веб сервер. Принимает запрос, принимает параметры и передает твоему фреймворк. Какая асинхронщита даже в теории тут может быть?


Долбаеб тут только ты, загугли что такое ASGI и WSGI протоколы для веб-серверов

> Иди нахуй, тупая макака.


Макака тут только ты, тот чел хотя бы пытается разобраться
>>26237

> А вообще есть профиты от какой-то асинхронности движков? И вообще что это значит по факту?


Это значит, что у тебя есть бесконечный цикл, который переключается между выполнениями разных тасок. Переключение происходит в тех местах, где ты пишешь await. Советую глянуть вот этот плейлист, тут довольно подробно разобрано все
https://www.youtube.com/watch?v=ZGfv_yRLBiY&list=PLlWXhlUMyooawilqK4lPXRvxtbYiw34S8

> я могу взять какой-нибудь ${FRAMEWORK_NAME} и в его функциях в asynk/await, скажем, обращаться к БД. Это же возможно?


Да, возможно

> А, если возможно, то значит, что ${FRAMEWORK_NAME} может работать асинхронно, так?


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

> Тогда чем отличиется то, что называют синхронными фреймворками от того, что называется асинхронными фреймворками?


Я выше написал уже, синхронный создает по потоку на клиента, асинхронный по таске

> любой web-framework многопоточный


Нет, асинхронный это асинхронный. Их только процессами(aka worker) множат
А агрессивную макаку не слушай, он курсы гикбрейнса по созданию ботов прошел и теперь считает, что стал дохуя экспертом. Пиздец, каждый день таких под десяток приходит с хуйней уровня пикрила
изображение.png242 Кб, 639x364
64 2226294
>>26251

> Тем, что начинка переключает контекст при вызове.


Ты не поверишь что происходит в многопоточности

> Ты долбаеб? Зачем тебе многопоточность в вебе?


Очередная макака, которая считает что RED ASYNC GOES FASTA. В зависимости от задач может быть быстрее и асинхронное, и многопоточное приложение

> Ты долбаеб? На пальцах расскажу что делает веб сервер. Принимает запрос, принимает параметры и передает твоему фреймворк. Какая асинхронщита даже в теории тут может быть?


Долбаеб тут только ты, загугли что такое ASGI и WSGI протоколы для веб-серверов

> Иди нахуй, тупая макака.


Макака тут только ты, тот чел хотя бы пытается разобраться
>>26237

> А вообще есть профиты от какой-то асинхронности движков? И вообще что это значит по факту?


Это значит, что у тебя есть бесконечный цикл, который переключается между выполнениями разных тасок. Переключение происходит в тех местах, где ты пишешь await. Советую глянуть вот этот плейлист, тут довольно подробно разобрано все
https://www.youtube.com/watch?v=ZGfv_yRLBiY&list=PLlWXhlUMyooawilqK4lPXRvxtbYiw34S8

> я могу взять какой-нибудь ${FRAMEWORK_NAME} и в его функциях в asynk/await, скажем, обращаться к БД. Это же возможно?


Да, возможно

> А, если возможно, то значит, что ${FRAMEWORK_NAME} может работать асинхронно, так?


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

> Тогда чем отличиется то, что называют синхронными фреймворками от того, что называется асинхронными фреймворками?


Я выше написал уже, синхронный создает по потоку на клиента, асинхронный по таске

> любой web-framework многопоточный


Нет, асинхронный это асинхронный. Их только процессами(aka worker) множат
А агрессивную макаку не слушай, он курсы гикбрейнса по созданию ботов прошел и теперь считает, что стал дохуя экспертом. Пиздец, каждый день таких под десяток приходит с хуйней уровня пикрила
65 2226312
>>26286

> Чтобы, например, не ждать, пока БД или API вернёт результаты, а заниматься полезным делом.


Ну так и многопоток занимается полезным делом, пока ждет ответ

> А если она нахуй не не нужна, то хули даже в предыдущем треде рекомендовали вместо синхронного фласка асинхронный aiohttp?


Это долбаебы, которые считают необходимым повсюду пихать асинхронщину. Обычно, они даже представления не имеют как эта асинхронщина работает, просто что-то уровня религии
66 2226353
>>26294

> Пиздец, каждый день таких под десяток приходит с хуйней уровня пикрила



а какие камни в пикриле? мимо-нуб
image.png20 Кб, 1000x288
67 2226355
Почему не работает?
68 2226356
>>26182

>Есть строка


import re
69 2226375
>>26355

> Page not found


Действительно, что же пошло не так? кто-то обосрался с роутингом
>>26353

> а какие камни в пикриле? мимо-нуб


Начнём с того, что это абсолютно дебильный декоратор, который нихуя не делает и является магнитом для багов, крашей и не очевидного поведения. Во-вторых, банально синтаксис некорректный. Тайпинги через or не работают
70 2226380
>>26356
Ты идиот?
>>26182
Ты документацию открывал вообще? У тебя исо время и там спецметод есть для него. Это во-первых. Во-вторых, %z и %Z есть.
71 2226384
Супчанский, аноны. Вопрос по гиту, но отдельного треда вроде нет, так что спрошу здесь.
Вот у меня есть список задач - под каждую я создаю свою ветку, что-то там делаю, тестирую на стейджовом стенде, и если все ок, то коммичусь, делаю пулл реквест и мержу изменения в мастер. Затем беру следующую задачу, выделяю ветку и т.д.
А если я начал делать одну задачу, сделал уже какие-то изменения, и мне внезапно надо переключиться на другую задачу - как мне в этом случае поступать с уже сделанными изменениями в текущей ветке? Я пока что придумал только так:
1. застешить изменения
2. выделить и чекаутнуться на новую ветку
3. сделать там срочную задачу
4. закоммитить изменения
5. открыть ПР и замержиться
6. затем вернуться на первую ветку
7. анстешнуть изменения
(7.1.) опционально фетчнуться и пулльнуть изменения с мастера если надо
8. продолжать делать изначальный таск

Насколько это правильно?
72 2226387
>>26223
Странно что ты не вспомнил про EVE online где тоже вся логика на питоне.
73 2226388
>>26375

>кто-то обосрался с роутингом


Я все скопировал с туториала. Где мне искать ошибку?
image.png5 Кб, 322x96
74 2226390
>>26388
>>26375
К слову, сейчас список url выглядит так, но admin раньше работал, а сейчас нет, значит я что-то зря поменял
75 2226397
>>26384
А в чём проблема вместо стеша просто закоммитить изменения, вместо стеша? Можно потом либо commit --amend делать, когда дальше обновишь задачу, либо их потом просто слить в один перед пулл реквестом — https://stackoverflow.com/questions/35703556/what-does-it-mean-to-squash-commits-in-git
76 2226398
>>26390
А ты в главной апе приложения(которое создаётся после startproject) настроил роутинг в свое приложение djpoligon? А роут дальше пробрасываешь?
>>26384
Все правильно, только я сразу коммит делаю и забиваю хуй, так как наканецта ввели сквеш коммитов и из можно нормально объединить. И если попросят потом передать задачу другому разрабу, то без задней мысли делаешь чекаут пуш ориджин, чекаут обратно и продолжаешь хуярить в другой ветке. Ну и я советую максимально часто пушить изменения, чтобы иметь возможность продолжить работу из другого места в случае чего. Несколько раз так обсирался уже и решил что ну его нахуй. Сквешить коммиты можно и в гитхабе
77 2226399
>>26390
Так ^$ это же пустой путь, а ты по /index зайти пытаешься. Разве такой url не будут работать лишь для www.website.com/, т.е. без /index? Джангой ни разу не пользовался, могу ошибатся.
78 2226404
>>26237

> А вообще есть профиты от какой-то асинхронности движков?


Каких таких движков? ты про игровые или про автомобильные?

> я могу взять какой-нибудь ${FRAMEWORK_NAME} и в его функциях в asynk/await, скажем, обращаться к БД. Это же возможно?


Да, это возможно.

> А, если возможно, то значит, что ${FRAMEWORK_NAME} может работать асинхронно, так?


То как это реализовано под капотом никто не знает. Может он там процессы плодит. Но ты можешь предположить. что он асинхронный.

> В целом, как я понимаю, любой web-framework многопоточный


Многопоточность ни есть асинхронность.

> Ещё по-хорошему асинхронным может (и по-хорошему должен быть) web-сервер (apache/nginx/gunicorn)


Apache многопоточный. он для каждого процесса создает отдельный процесс. 100 запросов значит удет крутиться 100 процессов. nginx как раз асинхронный. Один процесс обрабатывает множество соединений.

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


Нет там таких канонов.

Тебе надо вырыть яму и наполнить ее водой из ведра. Веро наполняется из крана с определенной скоростью.
Ты нанимаешь для этого:
Однопоточный таджик - сначала выроет яму. потом будет носить ведра.
Многопоточный грузовик таджиков - будут по очереди носить единственное ведро туда сюда, несколько будут копать яму.
Асинхронный таджик - Поставит ведро под кран и пока оно наполняется копает яму. Как ведро наполнилось несет его и выливает в яму, ставит обратно под кран и продолжает копать поушы в воде
79 2226411
>>26397
>>26398
А это норм история с коммитом сырых изменений? Я просто хз, впервые работаю над проектом с командой, до этого таких ситуаций не возникало. Я думал, что коммит - это условно говоря ты подписываешься, что вот эта порция кода удовлетворяет неким минимально требованиям и она принципиально работоспособна, а тут я по сути могу коммитнуть наполовину написанную функцию - насколько это хорошая/плохая практика?
80 2226413
>>26286

> Чтобы, например, не ждать, пока БД или API вернёт результаты, а заниматься полезным делом.


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

> А если она нахуй не не нужна, то хули даже в предыдущем треде рекомендовали вместо синхронного фласка асинхронный aiohttp?


Ты забыл куда ты пришел? Я постоянно встречаю таких людей котоыре текут от асинхронщины, от программирования в VIM, от чистого кода и процей моднйо хуйни про которую говорят что оно тру. Но если распросить этих мамкиных сеньиоров, то окажется они не вполне понимают как работает питон принципе и компьютер в частности.
Запуск асинхронной таски в процессе реализован избыточным кодом. Если в работе твоего процесса нет длительных ожиданий, то этот дополнительный код наоборот замедлит работу. Если же ты ждешь из базы какой нибудь отчет по 5 минут, то асинхронность тебе даст заметный бкст, т.к. время выполнения избыточного кода меньше времени ожидания данных и вот эта разница и есть твой прирост. Но опять же, только если тебе есть чем это время занять.
81 2226419
>>26413
Двачую мудрого анона
мимо >>26294
82 2226421
>>26380

> Ты документацию открывал вообще?


В документации черным по белому напсиано, что %Z это строковое представление таймзоны, а %z это +7000 без двоеточия.
Однако, если эту строку ввести в консоль браузера, то Date.parse ее прекрасно преобразует. Хочу такое же решение. email.utils не помогают.
83 2226425
>>26384

> но отдельного треда вроде нет


Вот есть что то похожее.
https://2ch.hk/pr/res/2155312.html (М)

Алгоритм жизнеспособен. За исключением того, что вместо стеша лучше коммитить. Похуй что у тебя там рабочее или нет. Один хуй потом найдутся баги и придется делать правки. Да и шанс проебать код меньше.

> (7.1.) опционально фетчнуться и пулльнуть изменения с мастера если надо


Каждое утро начинай с ребейза на мастер. Если задача долгая, то к моменту ее завершения может обнаружить пару десятков конфликтов при мерже.

А вообще лить сразу в мастер это не особо норм. Если вас раблтает больше одного человека, то лучше всю неделю лейте в dev а в пятницу после тестов уже дев в мастер.
84 2226437
>>26384
Всё давно придумано до нас
https://nvie.com/posts/a-successful-git-branching-model/
image.png360 Кб, 1150x1524
85 2226438
изображение.png13 Кб, 1137x239
86 2226455
>>26421
Блять, ну ты бы затестил хотя бы
87 2226459
>>26455
Я затестил
ValueError: time data '2021-10-28T15:32:06.289609+07:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%z'
Хуй знает почему у тебя работает.
88 2226461
>>26459
А у тебя питон какой версии? И ты один-в-один код запускаешь? Если нет, то кидай сюда
code.png35 Кб, 1070x323
89 2226463
90 2226465
>>26463
Ебать, обновись хотя бы на 3.9, зачем на древнем говне сидеть? Там под 3.6 может быть документация другая, этой версии около 5 лет уже
91 2226467
>>26411

>А это норм история с коммитом сырых изменений?


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

> а тут я по сути могу коммитнуть наполовину написанную функцию - насколько это хорошая/плохая практика?


В коммите ты хотя бы можешь что-то подписать (что сделано, а что ещё нет, например), и потом продолжить через неделю, когда всё забудешь. А сделав стеш, тебе потом ещё разгребать его, в поисках нужной тебе записи.

Ничего плохого в том, что во временном коммите есть недоделанный код, если этот коммит не мерджится никуда, разумеется, нет.
92 2226468
>>26465
Это убунта 18,04 Там нельзя обновится до другйо версии. Если только саму убунту обновить или качать из неофициальных репозиториев. А код этот надо выполнять на сервере, где точно такая же убунта. И мне чет нихуя не хочется обновлять настроенный сервер. Ведь если что то идет по пизде, обычно виноват тот кто крайний на сервере что то делал.
К томуже это все лечится просто удалением двоеточия в таймзоне. Костыль конечно, но это более простое решение.
93 2226470
>>26468
Попробуй открыть для себя venv, можешь там хоть 3.10 поставить. Именно для таких целей он и был сделан, а на бубунте стоит древнее говно мамонта, так как там все баги пофиксилиДА НИХУЯ, dealloc None В 3.10 ДО СИХ ПОР ХУЯЧИТ
image.png42 Кб, 2098x528
94 2226472
>>26425
А можешь поподробнее про ребейз на мастер рассказать? Мне старшие коллеги говорили, что просто после выделения ветки с мастера (на всякий случай) и перед коммитом делай фетч и пулл и все будет ок.
У нас еще есть такая бага - я доделываю какую-то фичу ветке TASK-1, коммичу и открываю пулл реквест, сеньор относительно быстро его ревьют и мержит. Далее я беру следующую таску, выделяю под нее ветку TASK-2 с удаленного мастера, и все мои изменения, сделанные в ветке TASK-1 пропадают вообще из пайчарма. Сеньор говорит, у них на прошлой работе такая же хуйня была, и однозначно починить они не смогли, то ли там у гита какая-то задержка в синхронизации, то ли кеш, то ли хуй его знает. Поэтому сразу после выделения ветки с мастера я делаю гит фетч & гит пулл с мастера - и изменения ветки TASK-1 появляются обратно. Хуй знает короче, магия.

Насчет литья сразу в мастер - я мб не так выразился. Я работаю в ветке, коммичу свои изменения и открываю пулл реквест - его аппрувят и только тогда мержат в мастер. Литье по пятницам у нас особо не сработает, т.к. мы работаем по канбану - приняли задачу, сделали, залили.

>>26437
>>26438
Выглядит сложно, у нас используется "Гитхаб флоу" (пикрил), никаких фича, девелоп и хотфиксов нет, только мастер, в который мержатся пулл-реквесты.

>>26467
Очень подробно объяснил, спасибо!
95 2226476
>>26472

> А можешь поподробнее про ребейз на мастер рассказать?


Приходишь на работу, открываешь свою ветку, над которой вчера работал, и пишешь
git rebase master
Если кто то что то вливал в мастер, то эти изменения подтянуться. твоя ветка как бы отделилась от актуального мастера.
Могут возникнуть конфликты, если кто то правил файлы над которыми ты работаешь в своей ветке. Если часто ребейзиться на актуальынй мастер, то конфликты можно решать понемногу, а не все разом. Это актуально для больших проектов над которыми рабоатет хоят бы 3 человека.

> Далее я беру следующую таску, выделяю под нее ветку TASK-2 с удаленного мастера, и все мои изменения, сделанные в ветке TASK-1 пропадают вообще из пайчарма


PyCharm ничего от себя не добавляет. Он дерагает системный гит. Если нет изменений. Значит вы что то сделали не так.
По идее после того, как ты влил свою ветку и ее замерили, ты должен чекаутнуться на мастер и сделать пулл. Мастер станет такой же как в гите.
Фетч обычно нахуй ненужен. Он тянет просто список изменений, но не сами изменения. Что бы гит был в курсе, что там такие то ветки создались и такие то коммиты. Изменения накатывает именно пулл.
ХЗ что там за баг, что про него аж несколкьо человек знает. Может у вас на офис стоит кеширующая прокся и она то и не дает слить актуальные данные.
96 2226478
>>26476

> git rebase master


А чем этот гит ребейз отличается от гит фетч + гит пулл мастер? Ну пускай даже без фетча, раз ты говоришь, что он не нужен.
97 2226551
>>26251
Нахуй ты че-то высираешь? Ты ж даже на уровень джуна не тянешь
98 2226562
>>26294

>Долбаеб тут только ты, загугли что такое ASGI и WSGI протоколы для веб-серверов


>> Иди нахуй, тупая макака.


>Макака тут только ты, тот чел хотя бы пытается разобраться


Вот двачую этого.
мимо
>>26413
А можно сначала проверить, быстро ли получится дать ответ или нет (например, проверить на 304/404 и отдать их, если что, ну может статические файлы короткие типа редиректов на "у вас кукисы не включены"), а если не получится, то вот только тогда создать отдельный асинхронный таск? Ну то есть сделать один или два процесса, скажем, только для быстрых запросов, которые обрабатываются моментально, а все остальные запросы обрабатывать в остальных процессах?
Или так не делают?
99 2226566
Мне вот интересно стало. Можно ли через curses отобразить tqdm как-то? Или там только текст прокидываются? Просто я хотел tqdm обложить звездочками снизу и сверху, но использовать декоратор для этого не катит, там сначала верхняя линия, потом полная загрузка прогресс бара tqdm, и ток потом нижняя. А я хочу чтобы сразу все обрамление прогрузилось.
100 2226568
>>26562
Не понял что ты хочешь сделать. Ты принял запрос, что-то там не так - отдаешь ошибку без всяких асинк тасок и дело с концом. Нету ошибок - делается какая-то работа, в которой может быть асинхронность (а может и не быть, зависит только от написанного тобой). Если ты про запросы в бд пытаешься определить какой быстрый, а какой достаточно медленный, чтоб его в эвейт пихнуть, то тут в целом два варика. Либо ты пишешь на асинк фрейме и тебе строго похуй быстрый он там или нет и ты всегда пихаешь такие вещи в эвейт (иначе будет блокировка лупа, пусть даже на мгновение с каким-то ультрабыстрым запросом, все равно это плохо в целом скажется), либо если ты в синхронном фрейме работаешь и:
1. тебе нехуй делать до завершения этого запроса - делаешь синхронно
2. тебе можно дохуища всего сделать до завершения запроса - стартуешь ивент луп и делаешь запрос асинхронно, пока он делается совершаешь какую-то грязь у себя.
но вообще последний варик это нечто ебнутое и редкое.
101 2226602
>>26398

>Ну и я советую максимально часто пушить изменения, чтобы иметь возможность продолжить работу из другого места в случае чего. Несколько раз так обсирался уже и решил что ну его нахуй.


Вот здесь я не догоняю. Из какого другого места? В смысле с другого компьютера, что ли? А как это? В смысле, почему вдруг, зачем?
Или ты о том, что кто-то запушит, и в итоге мастер перестанет мержиться с твоей веткой, а если ты её первым запушишь, то конфликты мерджа придётся разргебать тому, кто не запушил свою?
>>26425

>Каждое утро начинай с ребейза на мастер. Если задача долгая, то к моменту ее завершения может обнаружить пару десятков конфликтов при мерже.


А почему не каждый час, скажем? Настроить ребейз по кулдауну?
А если в dev лить, то тоже rebase каждое утро делать?
>>26476
Тут как посмотреть... Может быть один раз проще разрешить конфликты, чем три раза их разрешать, и в итоге прийти к тому же самому. Зачем разрешать конфликты с версиями, которые как бы промежуточные?

>Фетч обычно нахуй ненужен. Он тянет просто список изменений, но не сами изменения. Что бы гит был в курсе, что там такие то ветки создались и такие то коммиты. Изменения накатывает именно пулл.


Если я правильно понимаю, фетч от пулла отличается только тем, что фетч только скачивает в локальный гит изменения, а пулл ещё и сразу же мержит их с локальной веткой. Поправьте, если это не так.
>>26478
Я так понимаю, что ничем. И ребейз по сути делает мердж, и пул-реквест по сути делает мердж.
Ребейз, как я понимаю, мерджит по одному коммиту, а пулл все разом. В итоге может быть отличается только порядок того, что с чем мерджится, но от перемены мест слагаемых... А фетч в связке с pull, вроде как, точно не нужен, так как pull это fetch+merge. Как бы.
>>26438
Объясните вот этот нижний треугольник состояний на картинке. Где из develop льётся на rel.branch и тут же то же самое состояние льётся обратно в develop. Что имеется в виду? Зачем? Зачем туда и сразу обратно, что это даст?
102 2226614
>>25896
Не уверен, но по моему это какая-то внутренняя хрень IDEшки, которую ты используешь, необходимая для анализа кода. Никакого builtins.py в библиотеке питона нет, но какой-нибудь PyCharm при попытке перейти к имплементации встроенного объекта кидает примерно на такой же файл.
Реальная имплементация range выглядит вот так
https://github.com/python/cpython/blob/main/Objects/rangeobject.c
103 2226618
>>26404

>Однопоточный таджик - сначала выроет яму


Что-то какой-то антиарийский нацизм развели. Почему как таджик, так сразу землекоп? Почему не еврей-отоларинголог?
Ну ладно. Допустим, вёдра, яма и ведро.
Яма - это же база данных, и её надо выкопать. Но тогда носить мы будем не в неё, а обратно. Соответственно, носить будем, скажем, добытые в этой яме алмазы.
Однопоточный работник - выроет яму до скального грунта, сложит все алмазы в кучку, потом насыпет в ведро и отдаст это ведро тебе.
Многопоточный грузовик работников - один будет рыть яму, другие будут ждать, не попросишь ли ты где-то выкопать ещё одну яму. И у каждого будет своё ведро. Но ведро у них будет только одно и отдавать они его будут только когда всю яму выкопают.
Асинхронный работник - копнул, увидел алмаз, положил его в ведро, отдал ведро тебе. Ещё раз копнул, там ещё алмаз, положил его во второе ведро, кинул второе ведро тебе вдогонку, поставил рядом третье ведро и продолжил копать.
Так?
104 2226642
>>26618

>Асинхронный работник - копнул, увидел алмаз, положил его в ведро, отдал ведро тебе. Ещё раз копнул, там ещё алмаз, положил его во второе ведро, кинул второе ведро тебе вдогонку, поставил рядом третье ведро и продолжил копать.


Так?
Не, асинхронный работник прорабу без ведра выротые алмазы в ебло кидает. И так каждый. Но зато каждый из работников ждет сввоей очереди вырыть алмаз, а копает в сущности только один из них. (если это не внешняя для процесса операция)
изображение.png42 Кб, 925x231
105 2226643
>>26468
В двадцатой убунте вот так работает. То есть одним шаблоном три варианта парсит. Буквенное обозначение парсит только %Z, и то коряво. MSK и GMT знает, а EET нет.
Доков не читал.
>>26470

>dealloc None


А что это и зачем?
106 2226651
>>26642
Но ведь таких асинхронных работников может запущено сразу несколько, в разных процессах? Соответственно, копать смогут сразу несколько из них. При чём каждый, гипотетически, может ещё и асинхронно переключаться с одной ямы на другую, но в каждый момент времени каждый будет копать только одну яму. То есть даже если каждый из работников будет асинхронно копать по три отдельные ямы, то в каждый момент времени они будут копать лишь десять ям, а двадцать ям будут оставаться в ожидании.
Так?
107 2226657
>>26651
Да, копание ям это CPU bound задача, асинхронность нужно для IO bound, а в вебе таких операций дохуя.
108 2226664
>>26404
А сможешь объяснить на примере сосания хуев?
109 2226712
>>26651

>синхронно переключаться с одной ямы на другую


Считай что нет.

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


В контексте работника это будет синхронно.

>Так?


Из-за прошлого комментария как бы получается, что не так.
Ваще асинхронность роляет только тогда, когда есть внешняя блокирующая кпу задача. Когда такие вещи случаются обычно жопа чует что вот оно момент настал.
110 2226777
>>26193
>>26194
Корочи оказалось, что надо было просто апнуть pip и setuptools до тех что запускались в virtualenv, и поставилось даже без фриза.

Алсо на третьем питоне оно в принципе не ставится, т.к. там прибит третий бьютифулсуп, а он только на втором запускается.

держу в курсе
image.png52 Кб, 800x800
111 2226781
>>26476

>Фетч обычно нахуй ненужен. Изменения накатывает именно пулл.


Если быть точным, то изменения накатывает merge, а pull — это просто алиас для git fetch + git merge.
Поэтому-то фетч перед пуллом и не нужен — он сам его делает.

>>26478

>А чем этот гит ребейз отличается от гит фетч + гит пулл мастер?


Это разные вещи. git pull скачивает все изменения с удалённого репозитория в твой локальный. rebase же меняет "базовый" коммит ветки.
Ты выделил себе ветку под таск1, эта ветка базируется на коммите мастер1. Но пока ты работал над своей задачей, в мастер смержили ещё коммитов, в итоге твой бранч с таск1 базируется уже не на самам свежем коде мастера, и в дальнейшем при мерже твоего таска могут возникнуть конфликты, которые придётся исправлять. rebase позволить сделать так, будто бы ты отделился в ветку таск1 с коммита мастер2 и уже потом добавил свои изменения.
При мерже после пулл реквеста всё равно этот процесс ребейза будет происходить, и в случае конфликтов их надо будет решать, поэтому нет смысла не делать этого постепенно.

Вот в пеинте нарисовал примерно. То есть, приходя утром на работу исполняешь команды из пунктов 2 и 3 и продолжаешь свою работу (починив конфликты в пункте 3, если вдруг будут).
112 2226831
>>26602

> Вот здесь я не догоняю. Из какого другого места? В смысле с другого компьютера, что ли?


Да, с другого компьютера

> А как это? В смысле, почему вдруг, зачем?


Ты заболел или стало хуево просто и решил поработать из дома -> тебе пизда, так как все изменения остались на работе

> Или ты о том, что кто-то запушит, и в итоге мастер перестанет мержиться с твоей веткой, а если ты её первым запушишь, то конфликты мерджа придётся разргебать тому, кто не запушил свою?


Конфликты мержа должен разгребать тот, чья таска более сложная и вероятность сломать которую выше. Если обе таски такие, то и разгребать будете вместе. Это вообще никак связано быть не должно с последовательностью пушей и мров
113 2226901
>>26831
А как можно вместе разгребать конфликт слияния? Технически, применительно к git? Ну вот оба попробовали сделать merge, у обоих конфликт. У обоих одинаковые файлы с <<<<<<< ===== >>>>>> А дальше что? Они ведь пока не закончат слияние, ничего закоммитить не могут. Допустим, кто-то устранил конфликт в одной процедуре, а другой в этот момент устранил конфликт в другой процедуре. А как объединить?
114 2226905
>>26901
Рибейзит один. Затем рибейзит другой
115 2226908
>>26602

>Объясните вот этот нижний треугольник состояний на картинке.


Объясняю.
Ветка master содержит текущий продуктовый код. В ветке develop лежит текущий актуальный код в разработке.
Макаки пилят и пилят код в фича-бранчах (по ветке на каждую фичу), потом сливают его в девелоп.
Тимлид говорит "готовим новый релиз" и переливает код из develop в release. Там гоняют тесты и прямо там фиксят косяки.
Каждый косяк, пофикшеный в release возвращается в develop, чтобы в develop была актуальная версия кода и можно было делать из него branch для новых веток или rebase для старых.
Но если очередная фича прилетит из одного из feature-бранчей в develop, то в release этот код не попадёт.
Когда код в release будет достаточно качественный, его переливают в мастер и тегают. Возможно, имело бы смысл bugfix'ы для release делать в ещё отдельной ветке (чтобы недоделанные фиксы случайно не попадали в develop), но это ещё сильнее усложнило бы и без того перегруженную схему.
Эта схема называется git flow и многие конторы от неё отказываются в пользу более лаконичных, например, gitlab flow.
116 2226914
К некому сервису подключается человек и сидит ждет "собеседника" - другого такого же чела. Когда второй появляется, между этими двумя создается чат и они оказываются в нем, но пока нужного чела нет, тот первый будет сидеть и ждать его появления. Естественно таких людей может быть множество и между каждой парой будет создан чат.

Как такое реализовать?.. У меня есть свои наработки, но мы просто в бесконечном цикле в треде проверяем массив с ожидающими посетителями (превращая его в set и убирая из него самого же посетителя) и если он пустой то засыпаем на 0.1 секунды, если нет - вытаскиваем первого что попался. Что-то подсказываем мне использовать очередь но вот незадача - первый посетитель также окажется в этой очереди (в моем случае мы избавляемся от него при помощи множеств)
117 2226923
>>26914
Ты думаеш с т.з. клиента, а надо сервера.
На сервере LIFO очередь, если она >= 2, то попишь пару и соединяешь, всё.
118 2226965
>>26905
Рибейзит относительно чего? Вот у них два текста с содержимым AB и CD. Они не сливаются в EF. Оба попытались сделать из обоих текстов простым слиянием EF, но у них ничего не вышло. Вышло AC-BD. В итоге один из A и C сделал E, то есть сделал E-BD, другой сделал AC-F. Как из этого получить EF? Что куда рибейзить?
>>26908
Это я всё понял, но вон там ведь внизу в последний зелёный кружок стрелка из develop и входит, и сразу выходит обратно. То есть там нет никаких багфиксов (выше багфиксы были отдельными кружками показаны). А зачем тогда обратно в develop что-то копировать? Там же то же самое в данный момент. В этом какой-то особый смысл или нет никакого особого смысла?
119 2226991
>>26643
Ошибка с подсчетом refcount у None. Из-за этого питон пытается удалить None и падает с Python Fatal error Очень редко возникает, но при этом если возникает, то никак не фиксится, только переписыванием исходников на сях
>>26901

> А как можно вместе разгребать конфликт слияния?


Созваниваетесь в зуме/телеге, один шарит экран, а второй говорит что писать. Самый надежный и быстрый вариант

> Технически, применительно к git?


Можно придумать какой-то изъебистый способ, но обычно один разруливает все, что смог, а что не смог, то выбирает accept their и коммитит. Другой пулит и фиксит хуйню. И так итеративно по очереди допиливают, чтобы работало
120 2226995
>>26923

> На сервере LIFO очередь


Мы вам перезвоним
121 2227014
>>26991
import ctypes
lib = ctypes.PyDLL("libpython3.8.so")
lib.Py_IncRef(ctypes.cast(id(None), ctypes.py_object))
:)
122 2227025
Вопрос не совсем по теме треда, но что как открыть задеплоенный проект, обернутый в докер? Не локально я имею в виду, а уже на впске, открыть с моего компа при этом. По ip адресу арендованного сервера нихуя, по ipадрес:8000 тоже.
123 2227027
>>27014
Можно через декоратор FuncType
124 2227029
>>27025
Что значит открыть? Если подключиться к консольке, то через ssh подключаешься и там attach к контейнеру делаешь
125 2227032
>>27025
Ты порты не прокинул контейнеру наверное
Надо при docker run mydoker добавить -p 8000:8000
126 2227046
>>27029
Я задеплоил проект с gunicorne, запустил его через docker-compose, вроде всё работает, по крайней мере никаких ошибок нет. Как мне его открыть в браузере теперь только?
>>27032

>Надо при docker run mydoker добавить -p 8000:8000


По идее это docker-compose.yml делает.
Вот мой docker-compose.yml https://pastebin.com/DykPTSZx
Вот докерфайл https://pastebin.com/08Q1SRiy
Вот баш энтрипоинт https://pastebin.com/bqMfZqji
Ну и нжинкс ещё до кучи https://pastebin.com/MEFfxqLM
Делаю docker-compose --build, вроде всё заебись, бдшка создается, миграции проводятся. Как только мне сайт-то сам открыть?
127 2227047
>>27046
expose:
- 8000
expose открывает порты для других контейнеров, чтобы замапить с хостом нужно
ports:
-8000:8000
И да, ты БД в интернет открыл зачем-то
128 2227056
>>27047

>ports:


-8000:8000
Спасибо.

>И да, ты БД в интернет открыл зачем-то


Да я использовал шаблон с пет проекта знакомого, а он пользуется ещё каким-то сервисом для мониторинга своих контейнеров через веб.
129 2227078
>>27046

> Как мне его открыть в браузере теперь только?


А ну тебе вон выше написали, докер самой уебищной документацией эвер обладает. Буквально блять энциклопедия без гайдов и нормальных примеров. Советую гуглить готовые докер/докеркомпоуз файлы и их под себя адаптировать
130 2227142
>>27014
Непонятно только, зачем кому-то пытаться удалять None.
131 2227177
>>27027
Да можно, конечно, но то была шутка и я бы такую дурь в проде не осмелился использовать.

>>27142
Я тоже не понимаю, что там такое должно происходить. Исходники бы увидеть.
19345011.jpg117 Кб, 792x595
132 2227190
>>25938

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


Это поведение альфы. Самостоятельно берет дело в свои руки и вертит им как хочет. Все правильно ящитаю
133 2227191
>>26923

>LIFO


Ты хотел сказать FIFO?..
В любом случае как именно быть когда мы вытащили из очереди человека (или его айдишник - не суть) а это оказался тот же самый чел? Соединить с самим же собой?
134 2227194
>>27177
>>27142
Библиотека zstandart, при больших нагрузках начинает пытаться удалять None. Такие дела, недавно только эту хуйню починили, три недели ушло на фикс бтв
>>27191
А какого хуя у тебя тот же айдишник оказался в очереди? Это означает, что у тебя ОЧЕНЬ хуевый код. Энивэй это фиксится элементарной проверкой и я бы в таких случаях выпиздовывал пользователя из очереди и высирал критикал в логи
135 2227244
>>26211
>>26234
Ладно, всем спасибо. Реальная задача в Питоне 3.8 стала явно быстрее, алсо Питон 3.6 глюкавый в плане мультипроцессинга. Знали б вы как я с ивентами и сигналами в Qt заебался...

Done: 124 results. Time 18.73 sec, Workers: 1 multiprocessing
Done: 124 results. Time 9.73 sec, Workers: 2 multiprocessing
Done: 124 results. Time 6.01 sec, Workers: 4 multiprocessing
Done: 124 results. Time 4.59 sec, Workers: 6 multiprocessing
Done: 124 results. Time 4.02 sec, Workers: 8 multiprocessing
Done: 124 results. Time 3.786 sec, Workers: 12 multiprocessing
136 2227253
>>27244

> алсо Питон 3.6 глюкавый в плане мультипроцессинга


То есть, ты запускаешь не процессы, а треды, не по количеству ядер, а один, но виноват все равно глякавый питон?
137 2227257
Хотел посоветоваться стилистически.

Как в питоне поступают с глобальными переменными?
Вроде все документировано и довольно просто.
Но кажется так не делают?

Является ли зашкваром писать global в функции?

У меня необычные условия:
- должно работать в python2.7
- все должно быть одним файлов
- я пишу небольшую сисадминскую утилитку и можно отойти от трушной архитектуры, но совсем позориться не хочется.
pidor.png43 Кб, 1200x300
полчаса как програмист на жаваскрипте 138 2227270
петян, что под пистон есть, чтоб простые капчи (пять заглавных латинских букв, пару линий, шум) щёлкать?
139 2227271
>>27257
пиши в глобальный словарь, к нему можно и без объявления global всё время обращаться. такой вот питон.
140 2227272
>>27046
expose можешь смело убирать. В nginx открой 80 порт через ports
141 2227304
>>24732
pycharm спокойно роняет комп, ставишь logger, и через while логгируешь от 1 до 100000, где-то на 15к все зависает и если убить процесс комп в себя приходит где-то минут через 10. Как-то проверял логгирование, сколько файл будет весить, так он файл не создал и просто в консоли выводить начал и завис.
Ещё ронял когда в django в orm сделал создание 2к объектов, почему завис, я до сих пор не понял, но через минут 5 отпустило, когда убил pycharm и все остальное. Комп был в режиме слайдшок.
Ryzen 7 2300 проц
142 2227318
>>26965
АВ рибейзится относительно EF и мержится. Затем CD рибейзится относительно EF и также мержится. Как и говорили, кто именно первый должен решать конфликты и мержить в основную ветку свой пулл-реквест, должны решить сами разрабы, как правило это тот, чьи фичи важнее
143 2227319
>>27257

>- должно работать в python2.7


Так оно уже не поддерживается, что вы с ним мучаетесь
144 2227321
>>27257

>Является ли зашкваром писать global в функции?


Нахуя тебе это, ты скажи? Передавай в функцию/метод параметры явно
145 2227336
>>27194

>Библиотека zstandart, при больших нагрузках начинает пытаться удалять None


Ну это, скорее всего, не проблема интерпретатора, а проблема библиотеки. Видимо, неправильная работа с указателями на динамически создаваемые переменные. Надо её просто отладить хорошенько, и перестанут константы удаляться почём зря.
146 2227338
>>27319
Поддерживается. Мной.
Не все программисты в мире делают веб, знаешь ли.

>>27321
очень много промежуточных переменных, а объекты слишком удлинят код.

Дело в том, что код в принципе из без global нормально работает в силу особенностей variable scope питона.
Неужели это можно смело использовать? Зачем тогда ключевое слово global ? Не хочу выглядеть стилистически неместным.
147 2227347
>>27338

>Зачем тогда ключевое слово global


Чтобы переприсваивать
Вообще даже без global можно мутировать глобальное состояние, что является херовым признаком. Если у тебя мутаций нет, можешь так и юзать свой сервис конекшна к БД (или че там у тебя), но вообще как правило в функцию передают объект курсора или объект конекшна, внутри функции с ним уже работают, в жопаскрипте подход тот же

>Не все программисты в мире делают веб


Просто блин обнови питон... Неужели у вас там 1 глобальный интерпретатор стоит без venv в котором все зависимости сразу нахуячены?
148 2227372
>>27347

>Вообще даже без global можно мутировать глобальное состояние, что является херовым признаком


то есть, мне таки придется писать global как я и подозревал ? окей.

>Просто блин обнови питон...


Не нужно. Это особенная программа. Она должна работать на старье.
149 2227397
>>26294 >>26404 >>26413
И всем остальным, позитивно участвующим -- большое спасибо. Какое-то понимание появилось.
За плейлист -- отдельное гранд мерси. Просмотрю, как смогу выделить 4,5 часа.
150 2227405
>>26413

>Запуск асинхронной таски в процессе реализован избыточным кодом


>пук


Оверхед там не более 10% для нормальных фреймворков, 20% в крайнем случае, превышения уже как бэ намекают, что у вас получилось говно (как в случае с новым "асинхронным фласком"). Если пишешь сервак и не используешь асинхронный подход то юзай адекватный мультрединг/горутины, т.к. ни одного ни другого в питоне нет, то бля кроме асинхронки ничего не остается. Спорить с этим - значит жить в 2008
151 2227425
Есть только 2 user-defined сигнала в Unix (и соответственно в Питоне) это SIGUSR1 и SIGUSR2, как мне сделать больше своих собственных сигналов? Можно было б через передаваемые параметры, но такого для сигналов нет...
152 2227429
>>27405
Нет, не 10% и даже не 20. Оверхэд там приличный, в два-три раза скорость работы асинхронщины может быть ниже. А ты просто малолетний долбаеб, который даже не понимает как работает асинхронность в питоне
153 2227431
>>27429
Ебанько, uvloop уже давно оптимизирован по самые не могу
Вылезай из под камня, где ты просидел начиная с 2008
154 2227433
>>27425
tcp-сокет открывай и слушай команды.
155 2227464
>>26965

>стрелка из develop и входит, и сразу выходит обратно


Хм-м. Молодой человек (или юная леди?.. впрочем, какая в жопу разница?), а не рано ли вам вайти, если вы не особо понимаете что на схемах могут быть условности?
Это всё лишь призвано подчеркнуть, что все изменения в релиз-бранче должны отображаться на девелоп-бранч и это будет касаться всех будущих RB, сколько бы их ни было.
Мне лично на этой схеме куда больше не нравятся коммиты в develop вне бранчей. Лучше бы их запретить и оставить изменения в dev только мерджами: на каждое изменение -- таск и бранч, отладил -- мерджни. Потом по истории мерджей делаешь ченджлог и документацию.

GitLab Flow и GitHub Flow явно запрещают прямые коммиты.
156 2227506
>>27431
Ты недавно только курс "Создай своего бота и стань хакером" закончили или совсем ебанутый?
https://youtu.be/z7WIm0iZcOU
157 2227509
>>27464
Ну там конфиги пофиксить или поправить креды — может быть вполне себе уместно сразу в дев коммитить, чем создавать таску "изменить пароль" на 15 минут и потом ее закрывать
Capture.JPG4 Кб, 349x70
158 2227592
Можно это в 1 строчку как-то уместить?
159 2227621
>>27592
да, print(list(filter(lambda x: x != 'None', [i if x == "TMIN" else 'None' for i, x in enumerate(header)])))
160 2227627
>>27621
понял, принял
16289699508323.jpg18 Кб, 272x272
161 2227639
>>27621

>понял, принял

image.png16 Кб, 919x401
162 2227652
>>27506
Почему он там юзается тюнинг для синхронных фреймворков в виде гринлетов и picoev, где реализуется собственный эвент луп и работа со стеком, но для aiohttp он даже не добавил uvloop? При этом не учитывается производительность драйверов для базы, которую отдельно считать надо, мог бы взять asyncpg, вместо залупного aiopg.
К слову, meinheld жив на уровне vibora, его тоже можно было затестить, хули.
163 2227688
>>27405
Во-первых, хорошо что ты хотя бы согласен, что оверхед есть.
Во-вторых, благодаря таким как ты и возникают эти дебичи. Понаслушаются о теме не вникнув. Потом пишут асинхронную функцию которая делает return a+b И искренне удивляются и даже обижаются, когда им поясняешь, что это какая то хуйня. Как же так? Как так замедлет? Она же асинхронная. В их понимании асинхронный код исполняется быстрее силой магии. Они бы асинхронную ОС написали и асинхронный компилятор. И вот тогда бы на древнем пентиуме можно было запускать крузис. А весь софт в мире тормозит от того. что не асинхронный. Наверное всякие архитекторы с многолетним стажем не знают как писать асинхронный код, потому и видео рендерится медленно и игры тормозят.
А тут еще ты заходишь с ноги и опять пиздишь, что асинхронность это мастхев. И никаких если.
Фу таким быть.
164 2227689
>>27592
trow = header.index("TMIN") if "TMIN" in header else None
(Да, формально тут два прохода по списку будет, но не похуй ли?)
165 2227695
>>27689
Хотя нет, строго говоря надо сделать len(header) - header[::-1].index("TMIN"), потому что код на скрине присвоит trow последний индекс, если TMIN больше одного раза встречается. Впрочем, не думаю, что ты задумывался о возможности TMIN быть в списке более одного раза.
166 2227696
>>27372

> то есть, мне таки придется писать global как я и подозревал ?


Если собираешся переменную из функции модифицировать, то используй.

> Не нужно. Это особенная программа. Она должна работать на старье.


Третий питон тоже может работать на старье. Ты вот сейчас траишь энергию на поддержания второго питона, который скоро официально рип. Т.е. что то новое прикрутить к программе уже не получится. Потом кому то понадобится запилить новую фичу и окажется, что надо переписывать весь код с нуля.
Если есть возможность обновится до живой версии, не игнорируй ее.
167 2227700
>>27695
Только вот если TMIN отсутствует, то этот код вызовет эксепшн.
168 2227721
>>27509
Увы, но я видел, как даже самые невинные на первый взгляд коммиты чуть ли не уровня "поменять цвет кнопки" если и не ломали систему совсем, то по меньшей мере делали её использование некомфортным. Так что в develop с таким подходом может оказаться условно-нерабочий код. Конечно, тестирование найдёт косяк, но лучше тестить левый бранч, а не dev (мало ли кто успеет бранчнуться между ломающим и исправляющим коммитом, ребейзь потом вот это вот всё).

Это, конечно, IMNSHO и в реальной жизни всё не так гладко, но я за то чтобы потратить лишние пару минут, но получить более лучшую систему.
169 2227752
>>27700
Это почему это? Тем проверка для этого же стоит — https://ideone.com/KFazIU
170 2227778
Дайте мне интересных идей для консольных программ, что написать можно для вкатывающегося.
171 2227789
Поч эту ошибку выдаёт? А со второго скрина всё сразу закрывается после запуска.
изображение.png373 Кб, 768x576
172 2227799
>>27464

>Хм-м. Молодой человек (или юная леди?.. впрочем, какая в жопу разница?), а не рано ли вам вайти, если вы не особо понимаете что К чему это хамство? Ты так со всеми общаешься?


>на схемах могут быть условности?


Да я в некоторых случаях предпочёл бы точность условностям.
Я не уверен, что я точно понимаю, как работает гит, и предполагаю, что я что-то мог упустить, поэтому и уточнил, ничего ли я не упустил.
173 2227805
>>27789
Потому что перед вводом этих команд тебе не надо заходить в интерпретатор. Они выполняются в консоли.

Найди какой-нибудь подробный гайд для старта с полного нуля.
174 2227811
>>27696
расслабься. Я пишу программу помогающую обновиться.
uname.jpg24 Кб, 739x236
175 2227816
>>27696
давай расскажи мне, cколько нужно девопсов чтобы вкрутить лампочку?
176 2227827
>>27319
>>27696

>Третий питон тоже может работать на старье.


Не всегда у тебя вообще есть контроль над этим старьём. Я как-то на работе один скрипт писал, всё протестировал на рабочем же сервере, предполагая, что и там плюс-минус та же среда будет, отдаю — ниработаит! Оказалось, у них там вообще 2.6 питон стоит и какой-то даже стандартной либы не было ещё.
177 2227837
>>27816
Один. Только он не будет вкручивать лампочку, а спулит контейнер, который для этого предназначен.
178 2227852
>>27837
контейнер с новым софтом и сам заспулю. Эка невидаль.
в легаси кто будет разбираться?
179 2227861
Как очистить все данные в базе данных джанго командой? python manage.py flush ни все чистит, таблички с миграциями и правами остаются.
180 2227876
>>27861
Дропни базу, епта
181 2227894
Всем привет, что сейчас будет актуальнее Django Flask или aiohttp?
182 2227897
Как асинхронщину под десктоп писать? Нужно по действию пользователя вызвать последовательно 2 тяжелые функции модели.

Это мне получается нужно в представлении ради них сразу 3 функции: первая инициирующая и две обработывалка событий? Или как это, блять, пишется? Но можно все события одной функцией принимать и, в зависимости от события, запускать следующую операцию.
183 2227920
>>27897
Никак. Потому что никто ничего молодежного не написал. Там слишком дохуя кода у них.

Но есть Kivy! У них все переписано.
184 2227923
185 2227931
>>27920
Потому что питон для десктопа нахуй не нужен, там ничего живого кроме QT и киви нет.
186 2227938
>>27894
В джанго какой-то свой мирок со своими инструментами, а так все эти фреймворки крайне похожие и можно сразу все изучить.
187 2227954
>>27894

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


Что значит "актуальнее"? Актуальнее учить джуну, чтобы проще было вкатиться? Что перспективнее и в ближайшее время отожмет значительную часть рынка? Что использует самые современные практики питона? Ты можешь мысли яснее выражать?

> Django


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

> Flask


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

> aiohttp


Это аналог фласка, только асинхронный. Все что справедливо для фласка, справедливо и для него
Еще есть фастапи. Это аналог штангиеще не совсем, но стремительно в него превращается Ставлю жопу, что через 3-4 года будет распространен не меньше, чем штанга
А что конкретно изучать для вката значения не имеет, главное чтобы не асинхронность. Чтобы потом не превратиться в сектанта, который уверен, что если написать асинк, то функция получает +10 к скорости выполнения
>>27897

> Как асинхронщину под десктоп писать?


Берешь и пишешь без задней мысли. В чем проблема?

> Нужно по действию пользователя вызвать последовательно 2 тяжелые функции


> последовательно


Ты долбаеб? Ты долбаеб.

> Это мне получается нужно в представлении ради них сразу 3 функции: первая инициирующая и две обработывалка событий? Или как это, блять, пишется? Но можно все события одной функцией принимать и, в зависимости от события, запускать следующую операцию.


Что ты нахуй несешь? Что ты блять собрался асинхронно последовательно запускать?
188 2227957
>>27652
Если тебе тесты с видео не нравятся, то запили свои и выложи. Зачем рассуждать с дивана?
189 2228109
>>27405

>то юзай адекватный мультрединг/горутины


Что ты подразумеваешь под адекватностью мультитрединга? Конкретно, чего именно недостаёт в питонских серверах, не использующих асинхронный подход?
190 2228115
>>27827
Еще раз: у вас там venv нет? Все в 1 глобальный интерпретатор суете?
191 2228118
Вот смотрите, запустил я тред, threading.Thread, вот это всё. Он что-то делает. Потом я внезапно понимаю, что то, что он делает, больше уже не нужно. Как мне этот тред извне остановить? Проблема в том, что run передаёт управление в стороннюю библиотеку и оно оттуда, гипотетически, может не возвращаться дольше, чем следовало бы.
Возможно туда как-то исключение бросить, что ли? Или это может всё поломать и вообще невозможно? Просто Event кинуть я могу, но ведь внутри треда его ещё нужно поймать, то есть в любом случае придётся ждать завершения длинной процедуры из сторонней библиотеки.
Скажите честно, я задумал дурное?
И как это сделать всё-таки, если возможно?
192 2228123
>>28109
Про GIL только сегодня услышал что ле?
193 2228150
>>28109

> чего именно недостаёт в питонских серверах


Там не достает номрльного сервера. Поэтому все ваши гуникорны работают за nginx и все у них норм.
А лебичи, котоыре топят за асинхронные запросы по 200мс просто не знают про кеш.
194 2228155
>>28150

>кеш


Система кеша это по-твоему панацея?
обращения в кеш вроде Редиса тоже могут быть асинхронными, хоть там задержка и не 200 мс а 10 мкс то тем не менее блокировка происходит

Все обращения к стороннему АПИ тоже закешируешь?
195 2228156
>>28150

>А лебичи, котоыре топят за асинхронные запросы по 200мс просто не знают про кеш.


А у тебя сервер только на чтение работает и все методы идемпотентны на протяжении всего рабочего цикла?
196 2228157
>>28155
Самое угарное что БДшки, в том числе кеш могут располагаться где угодно, может на том же серваке а может и нихера. Все это вносит дополнительные задержки, без асинхронки тут никак
Динозавры конечно привыкли жить в мире монолитного джанго-говна, им ничего не пояснишь, они в своем мирке живут
197 2228175
>>28123
Тут я сначала не понял, о чём ты.
>>28157
А вот теперь понял. Так что, длинный запрос к сторонней базе данных оставляет блокировку GIL?
А это точно? Что-то как-то с трудом верится. Оно же во время операций ввода-вывода вроде же ничего не блокирует. А разве запрос в сторонней базе данных по сети с точки зрения питона это не ввод-вывод?
А это прям точно-точно? А можно с пруфами?
198 2228179
>>28118
Так что, так нельзя?
199 2228182
>>28175
Ты все прекрасно понял, но специально водишь очком
Мультитрединг в питоне помогает только с IO, в отличие от той же Жавы или ГОвна, и в довесок к этому несет кучу проблем сам по себе, начиная с того что с увеличением числа реквестов создается все больше тредов, которые вынуждены между собой делить GIL, заканчивая потенциальными ништяками вроде дедлоков

В том же ЖСе асинхронность - основной подход, там нет никаких "тредов" бля, просто потому что они не нужны нахуй и просто вредны, там в Ноде есть Воркеры, аналог питоновских процессов, чтоб совать туда CPU-bound таски, но тредов там нет, потому что ЖС точно так же однопоточен и асинхронность - идеальное решение в данном случае для преодоления проблем с IO
200 2228189
Можно как-то прочитать сообщения из кафки с применением фильтра?
201 2228261
>>28115
Где "у нас"-то, блин? Ты не то себе представляешь.
Это был скрипт, который обычные саппорт инженеры должны были запускать для упрощения/ускорения анализа дампов логов. Это не какой-то проект большой, который на каких-то серверах централизированных крутится. Просто есть какой-то там виртуальный сервер в корпоративной сети на видимо тухлой centos, с которого есть доступ к железкам в лаборатории. Он вообще может быть "личным" для этого инженера, и хоть он там и может поставить себе новый питон, это же придётся каждому всё объяснять как сделать (но рута тебе никто не даст, а значит руками компилировать в какую-то локальную директорию, что сам понимаешь) — кому нужны эти проблемы? Проще сделать то, что изначально будет молча работать без дополнительных действий со стороны "пользователя". (Ну и немного договориться о минимальных требованиях можно, что использовать сдохшую более 10 лет назад версию как-то не предполагалось.)
202 2228275
>>28261
Если один скриптик пишешь для некроговна, то нахуй вообще вопросы по стилю задаёшь? Пиши как во времена 2.7 писали, с глобалами, мутациями и прочими class Zalupa(object).
203 2228279
>>28182

>Ты все прекрасно понял, но специально водишь очком


Что ты несёшь? Если ты не можешь по делу ответить, то просто иди на хуй, и всё. Другие ответят, если есть что сказать, а зачем мне слушать мнение долбоёба?
Ты что, считаешь, что ты лучше меня знаешь, что я понял, а чего не понял? Ты экстрасенсом себя возомнил?
Или ты понял, что обосрался, раньше, чем я это заметил, а теперь сам и "водишь очком", чтобы запутать следы, идущие прямиком из твоей жопы? К чему этот твой высер про очко, долбоёб?
С чего ты взял, что все тут способны читать твои мысли и каждую твою маняфантазию "понимают"?
При чём в следующем же посте ты, долбоёб, начнёшь кукарекать, что я, напротив, ничего не знаю и ничего не понимаю. Ты понимаешь, что ты аутист, который пытается в проецирование? Нахуя ты это делаешь? Ты вообще пробовал с реальными людьми говорить, чтобы при этом от них каждый день по морде не получать? Или тебе это не надо? С компьютером безопаснее?

>начиная с того что с увеличением числа реквестов создается все больше тредов, которые вынуждены между собой делить GIL


А какая разница? Ядро одно. Процесс один. Интерпретатор один. Запросов много. Но все они либо процессорозависимые, и тогда они не могут выполняться одновременно и GIL не мешает, либо среди них есть зависящие от работы удалённой базы данных, и тогда это операция ввода-вывода и GIL снова не мешает.
Я уточняю, в чём проблема. Конкретно, в чём? Без общих слов, что вот есть GIL и он мешает. Ты можешь ответить или нет? Если не можешь - это ещё не повод вести себя как истеричка и хамить незнакомым дядям.

>заканчивая потенциальными ништяками вроде дедлоков


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

>В том же ЖСе асинхронность - основной подход, там нет никаких "тредов" бля, просто потому что они не нужны нахуй и просто вредны


Ага, зато километры промисов, очень интуитивно, понятно и читаемо. А чем тред хуже километра промисов?

>потому что ЖС точно так же однопоточен и асинхронность - идеальное решение в данном случае для преодоления проблем с IO


То есть, если подытожить этот твой пост, то асинхронность идеальное решение потому что ты скозал?
Ну охуенно. Спасибо тебе за консультацию, я от тебя узнал много нового (нет).
203 2228279
>>28182

>Ты все прекрасно понял, но специально водишь очком


Что ты несёшь? Если ты не можешь по делу ответить, то просто иди на хуй, и всё. Другие ответят, если есть что сказать, а зачем мне слушать мнение долбоёба?
Ты что, считаешь, что ты лучше меня знаешь, что я понял, а чего не понял? Ты экстрасенсом себя возомнил?
Или ты понял, что обосрался, раньше, чем я это заметил, а теперь сам и "водишь очком", чтобы запутать следы, идущие прямиком из твоей жопы? К чему этот твой высер про очко, долбоёб?
С чего ты взял, что все тут способны читать твои мысли и каждую твою маняфантазию "понимают"?
При чём в следующем же посте ты, долбоёб, начнёшь кукарекать, что я, напротив, ничего не знаю и ничего не понимаю. Ты понимаешь, что ты аутист, который пытается в проецирование? Нахуя ты это делаешь? Ты вообще пробовал с реальными людьми говорить, чтобы при этом от них каждый день по морде не получать? Или тебе это не надо? С компьютером безопаснее?

>начиная с того что с увеличением числа реквестов создается все больше тредов, которые вынуждены между собой делить GIL


А какая разница? Ядро одно. Процесс один. Интерпретатор один. Запросов много. Но все они либо процессорозависимые, и тогда они не могут выполняться одновременно и GIL не мешает, либо среди них есть зависящие от работы удалённой базы данных, и тогда это операция ввода-вывода и GIL снова не мешает.
Я уточняю, в чём проблема. Конкретно, в чём? Без общих слов, что вот есть GIL и он мешает. Ты можешь ответить или нет? Если не можешь - это ещё не повод вести себя как истеричка и хамить незнакомым дядям.

>заканчивая потенциальными ништяками вроде дедлоков


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

>В том же ЖСе асинхронность - основной подход, там нет никаких "тредов" бля, просто потому что они не нужны нахуй и просто вредны


Ага, зато километры промисов, очень интуитивно, понятно и читаемо. А чем тред хуже километра промисов?

>потому что ЖС точно так же однопоточен и асинхронность - идеальное решение в данном случае для преодоления проблем с IO


То есть, если подытожить этот твой пост, то асинхронность идеальное решение потому что ты скозал?
Ну охуенно. Спасибо тебе за консультацию, я от тебя узнал много нового (нет).
204 2228281
>>28182
Я может в том своём посте что-то не так спросил? Может я тебя чем-то обидел? Может быть я случайно выеб твою жену? Или мамку твою выеб прямо у тебя на глазах? Я просто не понимаю, я вроде нормально общаюсь, а в ответ получаю брызги дерьма. Охота понять, это во мне проблема, или в действительности проблема лишь в том, что ты тупой долбоёб, который хочет кому-то что-то доказать, но не может, и потому срывается на визги и оскорбления?
205 2228290
>>28279

>Ага, зато километры промисов, очень интуитивно, понятно и читаемо.


У питона и жса плюс/минус одинаковый синтаксис промисов на асинках/эвэйтах. А обычные промисы используются для написания обёрток для легасиговен на колбэках, чтобы их можно было тем же эвэйтом вызывать.
206 2228506
>>27592
header.index('TMIN')
207 2228518
>>28506
А, тебе надо последний найти.
Тогда - len(header) - header[::-1].index('TMIN') - 1
208 2228524
>>27897
Для тяжёлых функций не асинк, а мультипроцессинг нужен. Просто последовательно запускай их в отдельном процессе.
209 2228526
>>28118
Создаешь свой поток в отдельном классе, наследующемся от Thread, в нём переопределяешь метод join, чтобы когда ты его вызвал он правильно закончил выполнение.
7IabRli3yE3CaGoOJ6BQbQ[1].jpeg74 Кб, 411x487
210 2228580
>>28155

> Система кеша это по-твоему панацея?


Вы опять сравниваете холодное с круглым, лишь бы картина манямирка не рушилась.
Да, кеш это панацея. Он решает проблему ожидания ответа.
Асинхронный запрос просто не блокирует выполнение. Это звучит круто, но что это значт? Что в базу одновременно может ломится больеш человек. Но один хуй ждать ответ они будут свои 500мс. Кеш же возвращает результат практически мгновенно.

> Все обращения к стороннему АПИ тоже закешируешь?


Да, закеширую. Реальный прмиер - отзывы на сайте с разных сервисов. Тянутся они долго, но обновляются редко. Можно хранить уже сформированный html в кеше и отдавать его мгновенно. А к апи обращаться раз в неделю в фоне. твоя асинхронность тут курит в сторонке.

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


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

Для особо умных напоминаю. Если синхронный запрос обрабатывается 5 секунд, то и асинхронный запрос будет отрабатывать те же 5 секунд. А скорее даже больше. т.к. в базу одновременно асигнхронно долбится большее число запросов. Какой то профит от асинхронных фреймвокров есть в очень малом количестве проектов. В 90% синхронный монолит лучшее решение.
211 2228636
>>28261
ебать вы там долбоёбы все, конечно.
212 2228640
>>28526
это нихуя не поможет.
213 2228642
>>28580

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


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

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


Если у тебя долбление в одну базу между которым ничего не происходит, то заебись у тебя работа конечно.
214 2228651
Помогите, я что-то туплю. Как манкипатчить класс?
Вот есть файл с тестом. Там хочу заменить на свой класс один сторонний.
Как сделать?

#test_file.py
import module
...
module.ThirdPartyClass = MyClass

#some_file.py
from module import ThirdPartyClass
...
ThirdPartyClass() # Тут не заменяется
215 2228652
Делаю сервисы на джанго, вкатился недавно. Не знаю как их структурировать.
Проекты лучше сразу начинать докера? Потому как переезд в контейнер когда всё отлажено немного неудобен.
У сервиса есть разные версии типа dev, prod и тд с разными приставками в домене. Я делаю скажем запрос на свой другой сервер который в деве, а при выкате на прод в коде приходится править адрес на другой домен. Как избежать этого? Они хостятся на разных адресах.

Как лучше организовать конфигурацию запросов на другие ресурсы? Я сначала делал что-то типа json, файла с указанием uri, headers, params и тд, вытаскивал его оттуда и regex-ом добавлял свои переменные. Потом решил просто оформить это в одном классе, типа, RequestsConfig. Какой способ правильнее? Я смотрел другие репы в гитхабах, но что-то единообразного так и не нашёл.

Как сделать чтоб метод, который находится в классе возвращал экземпляр класса как конструктор? Чтоб было не Class().create, а Class.create. Работаю с mongo, там поиск по базе очень всрат
216 2228653
>>28652

>хостятся на разных адресах


Имеется ввиду, прод и дев одного сервиса.
217 2228654
>>28651
Конечно не заменяется, в первом случае импортишь module и обращаешься через приставку module, а во втором импортишь сам класс, без этой приставки. Импорти его как модуль, если он с другим именем пиши так
import fuck as module
218 2228656
>>28654
И вообще, можно писать так
from module import fuck as you
219 2228661
>>28290
Я так и не понял прикола промисов в жсе и чем они отличаются от обычных методов с if response.ok Они позволяют не ждать ответа и крутить код дальше? Но зачем, если он практически всегда линейный и следующая реакция зависит от ответа и программа в любом случае должна ждать ответ, а не делать лишних телодвижений, еслм ответ пришёл не такой какой ожидался
220 2228666
>>28642

> А можно еще всю базу в оперативку засунуть, хули, тогда вообще быстро будет.


Любая БД и так пытается держать все часто используемые данные в оперативке. Но основной профит все ровно от правильной архитектуры. select это быстрая операция.

> Плюс к этому данные могут быть и не


А могут и не быть. Опять начинается подведение ситуации под доказательствов духе - "А вот если бы у бабушки был хуй..."
И действительно, если бы не, то тогда бы ух! Но это как раз те редкие случаи.

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


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


Это 90% всех проектов. Реальные нагрузки только у яндексов и прочих хуяндексов. Если у твоей конторы еще нет офисов во всех регионах страны, то асинхронность тебе в хуй не вперлась. Обычный пользователь обычного сервиса хочет видеть результат запроса сразу, а не осознавать, что стоит в очереди с тысячами таких же счастливчиков.
221 2228667
Прочитал Лутца за 3 дня. 6 лет на С, 5 лет на С++ опыта, да-да я. Что дальше посоветуете?
Снимок.JPG4 Кб, 700x26
222 2228672
Помогите, пожалуйста, поставил питон 3.10, а пайчарм вот такое пишет, а я в этом совсем новичок, что можно сделать?
223 2228689
>>28666

>Любая БД и так пытается держать все часто используемые данные в оперативке. Но основной профит все ровно от правильной архитектуры. select это быстрая операция.


Нахуярить кэша это не архитектура

>А могут и не быть. Опять начинается подведение ситуации под доказательствов духе - "А вот если бы у бабушки был хуй..."


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


Так может быть, только если у тебя монолитное приложение на питоне, а такие все чаще распиливаются на микросервисы по понятным причинам. А там нормально делать запросы на 3-4 сервиса одновременно.

>Это 90% всех проектов.


Ну так ты работаешь с говном и жалуешься на говно. У меня на первой работе жирнючий монолит на фласке переписывали, так как эта залупа отжирала слишком много ресурсов при скалировании. Это уже нормальная практика.
224 2228693
>>28652
Начинать надо в Windows Substem for Linux или прям в линуксе каком-то. Dockerfile и docker-compose.yml напишешь в конце, разве что можешь себе контейнером поднять базу данных, монгу эту самую или что-то такое.

По структуре смотри сюда https://12factor.net/ там и пишет, что разделять на dev, prod и т.д. плохая идея
Отличия должно быть разве что в конфигурационных файлах вроде .env или даже просто те самые сущности, но в виде переменных окружения
225 2228700
>>28526
Не понимаю. Так ведь join просто заблокирует выполнение основного треда до завершения отдельного потока? А поток-то досрочно прервать возможно?
226 2228722
>>28666

>select это быстрая операция.


И, что немаловажно, насколько я понимаю, через всё тот же селект (в смысле сокетов) работают и те самые запросы к сторонним базам данных. Вот эти вот: >>28157
Ну и объясните мне, что хотел сказать тот сударь, когда написал про неадекватный мультитрединг питона, и в итоге привёл в пример стороннюю БД, которая "вносит дополнительные задержки и поэтому без асинхронки там никак". Да, я согласен, нельзя закэшировать всё, включая небо. Придётся и асинхронные запросы выполнять. А в чём проблема их выполнить? Он же идут через тот же селект, что и все остальные данные, передаваемые с сервера и на сервер. И при чём тут GIL, если распараллеливанием этого вообще операционная система занимается?
227 2228725
>>28693
Делаю на виртуалке через ssh, там же контейнеры валяются. Мне в принципе удобно и сразу в докере, vscode умеет удобно отображать это вот всё, просто хотелось бы уточнить как надо.
Обычно запускал через nginx pm2 с подтягиванием certbota, поскольку общаюсь со сторонними апи и надо всё проверять прямо в процессе. Вот и подумал почему бы сразу через докер не собирать и не париться с деплоем впоследствии.
Про env да, звучит довольно удобно, но не знаю как это скажется на скорости. Мои сервисы это прокладки между нашим основным сервисом и другими, там всё шаблонно с минимальными правками потому и появилась мысль просто делать шаблоны запросов в json Хотя казалось бы, но у многих тот же oauth отличается и есть индивидумы которые передают секретки в боди, а не хедере. Вот думаю над структурой пока число таких проектов не разлослось до пары десятков.

Я в вебе буквально пару месяцев. Всё такое новое тут.
228 2228732
Привет, аноны, то ли я тупой, то ли я очень тупой, суть такова, есть tcp сервер на джаве, который работает по механизму вопрос-ответ, то бишь схема такая
nc localhost 878
ответ сервера: Hello, enter phrase
Тут я типа отправляю ему байты
Он мне снова отвечает

и так далее

Так вот, проблема такова, что я не могу получить его второй ответ, чтобы не делал, удается получить "Hello, enter phrase", я отправляю байты, пытаюсь получить ответ, который при обычном подключении через неткат есть, а у меня его нету
В чем может быть дело?

import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 8787))
print(client_socket.recv(512).decode())
client_socket.send("LOGIN 1234".encode())
# Вот тут уже я не получаю ответ, а в netcat получил его
print(client_socket.recv(512).decode())
229 2228733
>>28672

>поставил питон 3.10


3.1 и 3.10 это немного разные версии.
230 2228738
>>28722

>И при чём тут GIL, если распараллеливанием этого вообще операционная система занимается?


Так не занимается же, в один момент активен только один тред питонячьего процесса, остальные спят. Да и само количество тредов ограниченно операционной системой, а их переключение в среднем более дорогая операция, чем обслуживание эвент лупа.
231 2228750
>>28732
Вангую что ты гавно отправляешь, а не авторизацю. Посмотри на стороне джавы что отправляешь или если это не твой личный сервер,то лови пакеты
232 2228788
>>28689

> Нахуярить кэша это не архитектура


Потому что ты так сказал?
К БД были конкретные требования - выполнять поиск и выдачу максимально быстро. Поэтому архитекторы нахуярили кеш всюду куда могли. Кешируются часто запрашиваемые данные, кешируются частые запросы, кешируются планы выполнения этих запросов. Другого пути решения просто нет.

> Так может быть, только если у тебя монолитное приложение на питоне, а такие все чаще распиливаются на микросервисы по понятным причинам.


Вот нихуя непонятны причины. Если вам нужно захуярить проект и сделать это быстро, то микросервисы идут лесом. Потмо когда заказчик скажет, что проект ок и продолжаем банкет уже можно его пилить на что угодно. Если есть смысл. Порой смысла нет. Не всем нужно стучать в 4 апи одновременно для 500 пользователей.

> Ну так ты работаешь с говном и жалуешься на говно.


Поправка. Я залуюсь на ваше говно, которое вы пихаете всюду просто чтоб было.

> У меня на первой работе жирнючий монолит на фласке переписывали, так как эта залупа отжирала слишком много ресурсов при скалировании.


У меня на работе переписывали асинхронный сервер на фласк чтоб повысить его производительность. Охуеть да?
233 2228879
>>28738

>>И при чём тут GIL, если распараллеливанием этого вообще операционная система занимается?


>Так не занимается же, в один момент активен только один тред питонячьего процесса, остальные спят.


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

>Да и само количество тредов ограниченно операционной системой, а их переключение в среднем более дорогая операция, чем обслуживание эвент лупа.


Я имею в виду получение данных в разных сокетах идёт параллельно. Хотя в итоге всё равно последовательно, скорее всего. Но в любом случае этим занимается операционная система, а не сам сервер. Складывает там пакетик к пакетику, проверяет у них заголовочки и всё такое. А сервер получает управление от селекта в одном единственном потоке, и это настолько же эффективно, насколько и эвент луп. Это по сути он и есть. Пришли данные - это событие. Обработали, проверили, что новых данных нет - прекратили работу. Всё это в одном потоке. И больше не надо, как мне кажется.
Для дополнительных ядер - да, есть смысл по потоку создать. Но и тут у питона никакие GIL не проявляются. Так в чём проблема с GIL а Питоне?
233 2228879
>>28738

>>И при чём тут GIL, если распараллеливанием этого вообще операционная система занимается?


>Так не занимается же, в один момент активен только один тред питонячьего процесса, остальные спят.


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

>Да и само количество тредов ограниченно операционной системой, а их переключение в среднем более дорогая операция, чем обслуживание эвент лупа.


Я имею в виду получение данных в разных сокетах идёт параллельно. Хотя в итоге всё равно последовательно, скорее всего. Но в любом случае этим занимается операционная система, а не сам сервер. Складывает там пакетик к пакетику, проверяет у них заголовочки и всё такое. А сервер получает управление от селекта в одном единственном потоке, и это настолько же эффективно, насколько и эвент луп. Это по сути он и есть. Пришли данные - это событие. Обработали, проверили, что новых данных нет - прекратили работу. Всё это в одном потоке. И больше не надо, как мне кажется.
Для дополнительных ядер - да, есть смысл по потоку создать. Но и тут у питона никакие GIL не проявляются. Так в чём проблема с GIL а Питоне?
234 2228889
>>28661

>Я так и не понял прикола промисов в жсе и чем они отличаются от обычных методов с if response.ok


От каких методов? До промисов были колбэки, а с ними охуеешь комплексные цепочки строить. Сравни создание запроса с XMLHttpRequest и c фетчем, например.

>Они позволяют не ждать ответа и крутить код дальше?


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

>Но зачем, если он практически всегда линейный и следующая реакция зависит от ответа и программа в любом случае должна ждать ответ


У тебя хттп головного мозга, не все програмные взаимодействия сводятся к запрос-ответ.

>а не делать лишних телодвижений, еслм ответ пришёл не такой какой ожидался


Так промисы и не делают лишних движений в контексте промиса. Пока процессор ждёт завершения запроса, но может обработать другой.
235 2228911
>>28518

> len(header) - header[::-1].index('TMIN') - 1


А что это вообще такое? Как это работает?
236 2228928
>>28750
Нет, говно не отправляю, там нет механизма авторизации, работает через неткат нормально, через питоны хуево, делаю тоже самое
237 2228956
>>28788

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


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

>У меня на работе переписывали асинхронный сервер на фласк чтоб повысить его производительность. Охуеть да?


Потому что у тебя там базодолбильни c селектами
238 2228962
>>28911
Это он не знает про существование rindex.
239 2228970
>>28956
Всегда было интересно это стремление распилить проект на атомы, которые вроде как должны работать независимо, но в действительности они все зависят друг от друга. Насколько оно интенсивно? Каждая строчка монолита - микросервис?

Я не сторонник монолита, просто вы в микросервисах видите какую-то панацею. Просто распили и будет заебись. Просто вот как часы. Нет, увы, так оно не работает, где всё взаимосвязано. Никакие ассинки тут не помогут.
Например, есть последовательность из 3-4 запросов, при этом каждый запрос использует ответ из предыдущего. Такое встречается чаще всего и тут ничего не поделать.
240 2228993
>>28970
Да это очередной тренд.
Как раньше были потоки статей вроде "как мы перекатили всё на носкл и как стало охуенно".
А через некоторое время "как мы перекатили носкл на скл и как стало охуенно".
241 2229075
>>28993
>>28970
Потому что питономонолиты очень жирно скалировать. В языках, где нагрузку можно разделить на треды с этим проблем нет, как в жабе. Можно вспомнить руби, где часто жаловались на дороговизну увеличения инстансов. Так же следует учитывать неравномерность нагрузки на разные компоненты, у нас матаносервис написан на плюсах, а достаточно тяжёлый препроцессинг данных от корпоративных клиентов на скале и во время прайм-тайма можно достаточно дёшево увеличить бутылочное горлышко.
242 2229136
>>29075
Ничто не мешает разделить монолит на составляющие без парадигмы микросервисов. Даже в том же джанго проект делится на app-сы, которые по сути должны юыть независимыми друг от друга.
Или это просто попытка наебать ос, когда она и так должна распределять нагрузку, в итоге получается просто перекидывание педаль вкдосипеда с задних колёс на передние. Конструктивно выглядит иначе, но суть такая же.
изображение.png24 Кб, 565x415
243 2229209
Как расположить кнопку около label справа?
https://ideone.com/3YJISI
244 2229236
>>29136

>Ничто не мешает разделить монолит на составляющие без парадигмы микросервисов


А что бы составляющие могли масштабироваться независимо от друг друга, то без них не обойтись

>Даже в том же джанго проект делится на app-сы, которые по сути должны юыть независимыми друг от друга.


Причем тут аппы, если их нельзя запустить отдельно друг от друга в разном количестве экземпляров?

>Или это просто попытка наебать ос, когда она и так должна распределять нагрузку, в итоге получается просто перекидывание педаль вкдосипеда с задних колёс на передние.


Запуская инстанс монолита, ты разварачиваешь вообще весь проект, при этом часть компонентов, тебе масштабировать вообще не нужно, так как они могут нормально работать и без этого.
Про ОС я вообще ничего не понял что ты имеешь ввиду. По тредам ты масштабировать не сможешь, так как там могут быть CPU bound задачи и даже если там идет обычное ожидание, то смена тредов GIL'ом убьет всю производительность, так как каждому треду выделяется 5 мс перед сменой, даже если там ничего не происходит и производительность нужна в другом месте.
16386309993250.jpg50 Кб, 565x415
245 2229245
>>29209
Малой, попробуй вот так
246 2229300
>>28956

> Дед, хватит работать в говне, даже mvp делают на микросервисах потому что схема отработана


Раз назвал меня дедом, занчит все же осознаешь, что тут старший. Так вот послушай, что старший тебе скажет.
Была у нас микросервисная архитектура. Былов се модно и молодежно. И проект пилился год. Потому что каждый серваис пилили разыне люди. А потом все это пытались вместе собрать. Люди были разные с разным уровнем образования, разным уровнем iq и каждый со свои богатым внутренним миром. К каждому надсмотрщика не поставишь. В итоге у одного сервиса не было логов вообще, у другого логировался каждый чих, что за миллионом INFO не найти ERROR. Третий вообще сделал не убиваемое приложение, которое в цикле бесконечно ретраило. А когда это стали собирать в docker выяснилось что 90% переменных у всех сервисов одинаковые. И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо. Тесты конечно же были и покрытие было 90%+ на каждый сервис. Тока все вместе это собрать был тот еще квест.
Сейчас уже у многих руки чешутся написать про хуевую организацию. Ну да. Но как только начали mvp пилить на монолитах эти же люди стали делать работу быстрее и лучше. Т.к. можно было видеть весь код в одном месте и тут же его ревьюить меньшим числом людей. Не меняя организацию изменился результат. И деплой стал проще. И даже стало сразу видно, что из этого реально можно выделить в микросервис, а что и так норм работает.

> Потому что у тебя там базодолбильни c селектами


Нет. там были АПИ долбильни. Которые своими асинхронными запросами плодили инстансы на удаленном сервисе и увеличивали время его ответа.

Вы вечно пиздите, что кеш не панацея, селект не панацея, хуйнянейм не панацея. Но что то про свою асинхронность так не говорите. А ведь эти ваши новомодные изыски как стеклянный хуй. Вы его всем дуракам даете, а потом кто руки поцарапает, кто жопу поранит. Это создает негативный фон для, в общем то нормальной, но ситуативной технологии.
246 2229300
>>28956

> Дед, хватит работать в говне, даже mvp делают на микросервисах потому что схема отработана


Раз назвал меня дедом, занчит все же осознаешь, что тут старший. Так вот послушай, что старший тебе скажет.
Была у нас микросервисная архитектура. Былов се модно и молодежно. И проект пилился год. Потому что каждый серваис пилили разыне люди. А потом все это пытались вместе собрать. Люди были разные с разным уровнем образования, разным уровнем iq и каждый со свои богатым внутренним миром. К каждому надсмотрщика не поставишь. В итоге у одного сервиса не было логов вообще, у другого логировался каждый чих, что за миллионом INFO не найти ERROR. Третий вообще сделал не убиваемое приложение, которое в цикле бесконечно ретраило. А когда это стали собирать в docker выяснилось что 90% переменных у всех сервисов одинаковые. И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо. Тесты конечно же были и покрытие было 90%+ на каждый сервис. Тока все вместе это собрать был тот еще квест.
Сейчас уже у многих руки чешутся написать про хуевую организацию. Ну да. Но как только начали mvp пилить на монолитах эти же люди стали делать работу быстрее и лучше. Т.к. можно было видеть весь код в одном месте и тут же его ревьюить меньшим числом людей. Не меняя организацию изменился результат. И деплой стал проще. И даже стало сразу видно, что из этого реально можно выделить в микросервис, а что и так норм работает.

> Потому что у тебя там базодолбильни c селектами


Нет. там были АПИ долбильни. Которые своими асинхронными запросами плодили инстансы на удаленном сервисе и увеличивали время его ответа.

Вы вечно пиздите, что кеш не панацея, селект не панацея, хуйнянейм не панацея. Но что то про свою асинхронность так не говорите. А ведь эти ваши новомодные изыски как стеклянный хуй. Вы его всем дуракам даете, а потом кто руки поцарапает, кто жопу поранит. Это создает негативный фон для, в общем то нормальной, но ситуативной технологии.
247 2229303
>>29245
Подвинь кнопку ближе к тексту и буде норм. Да слово Авторизация звучит как то двусмысленно, надо написать Получение пользователем прав на чтение и редактирование контента. Тогда пользователям будет понятно зачем им нужно заполнять поля.

мимо кабан
image.png71 Кб, 179x282
248 2229307
>>29300

>Была у нас микросервисная архитектура. Былов се модно и молодежно. И проект пилился год. Потому что каждый серваис пилили разыне люди. А потом все это пытались вместе собрать. Люди были разные с разным уровнем образования, разным уровнем iq и каждый со свои богатым внутренним миром. К каждому надсмотрщика не поставишь. В итоге у одного сервиса не было логов вообще, у другого логировался каждый чих, что за миллионом INFO не найти ERROR. Третий вообще сделал не убиваемое приложение, которое в цикле бесконечно ретраило. А когда это стали собирать в docker выяснилось что 90% переменных у всех сервисов одинаковые. И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо. Тесты конечно же были и покрытие было 90%+ на каждый сервис. Тока все вместе это собрать был тот еще квест.


Ебала этих говноедов без нормально ревью и стандартизации микросервисов представили? Охуеть просто, когда понадобилось все месте собрать, то ВНЕЗАПНО окалось, что каждый написал говно. Да у вас же шарашкина контора без налаженных процессов.
249 2229314
>>29300

>И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо.



Вы что ли экстеншены не освоили?
250 2229325
>>29245
как это сделать?
251 2229370
>>29325
Тег <div>
252 2229422
>>29300

> Была у нас микросервисная архитектура. Былов се модно и молодежно. И проект пилился год. Потому что каждый серваис пилили разыне люди. А потом все это пытались вместе собрать. Люди были разные с разным уровнем образования, разным уровнем iq и каждый со свои богатым внутренним миром. К каждому надсмотрщика не поставишь.


А у монолит, стало быть, пилят поголовно чеды с умным волевым лицами, которые с детства на производство просились?

> В итоге у одного сервиса не было логов вообще, у другого логировался каждый чих, что за миллионом INFO не найти ERROR.


А в монолите логирование подключается автоматически с правильными уровнями логов?

> А когда это стали собирать в docker


Ебала челов, которые все сервисы в одном докер компоузе хранят представили?

> выяснилось что 90% переменных у всех сервисов одинаковые


Я даже боюсь представить что вы там нахуевертили. 5 сервисов, каждый из которых в бд ходит?

> И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо.


Предлагаю следующий раз сначала думать, а потом колбасить код

> И даже стало сразу видно, что из этого реально можно выделить в микросервис, а что и так норм работает.


То есть, вы реально сначала начали пилить микросервисы, а потом думать что вы хотите написать?

> Нет. там были АПИ долбильни. Которые своими асинхронными запросами плодили инстансы на удаленном сервисе и увеличивали время его ответа.


Пиздос...

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


Красота микросервисов заключается в том, что каждый из них должен быть независимым, кроме круда под бд, и так же независимо масштабироваться. А еще это дополнительный уровень абстракции, который упрощает разработку. Все твои претензии можно так же и к ООП отнести. АРЯЯЯ КОНФИГИ ПО ВСЕМУ КОДУ РАСКИДАНЫ АРЯЯЯЯ КЛАССЫ ПО РАЗНОМУ РАБОТАЮТ И НИХУЯ НЕ ПОНЯТНО только это говорит о том, что ты не умеешь технологией пользоваться
252 2229422
>>29300

> Была у нас микросервисная архитектура. Былов се модно и молодежно. И проект пилился год. Потому что каждый серваис пилили разыне люди. А потом все это пытались вместе собрать. Люди были разные с разным уровнем образования, разным уровнем iq и каждый со свои богатым внутренним миром. К каждому надсмотрщика не поставишь.


А у монолит, стало быть, пилят поголовно чеды с умным волевым лицами, которые с детства на производство просились?

> В итоге у одного сервиса не было логов вообще, у другого логировался каждый чих, что за миллионом INFO не найти ERROR.


А в монолите логирование подключается автоматически с правильными уровнями логов?

> А когда это стали собирать в docker


Ебала челов, которые все сервисы в одном докер компоузе хранят представили?

> выяснилось что 90% переменных у всех сервисов одинаковые


Я даже боюсь представить что вы там нахуевертили. 5 сервисов, каждый из которых в бд ходит?

> И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо.


Предлагаю следующий раз сначала думать, а потом колбасить код

> И даже стало сразу видно, что из этого реально можно выделить в микросервис, а что и так норм работает.


То есть, вы реально сначала начали пилить микросервисы, а потом думать что вы хотите написать?

> Нет. там были АПИ долбильни. Которые своими асинхронными запросами плодили инстансы на удаленном сервисе и увеличивали время его ответа.


Пиздос...

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


Красота микросервисов заключается в том, что каждый из них должен быть независимым, кроме круда под бд, и так же независимо масштабироваться. А еще это дополнительный уровень абстракции, который упрощает разработку. Все твои претензии можно так же и к ООП отнести. АРЯЯЯ КОНФИГИ ПО ВСЕМУ КОДУ РАСКИДАНЫ АРЯЯЯЯ КЛАССЫ ПО РАЗНОМУ РАБОТАЮТ И НИХУЯ НЕ ПОНЯТНО только это говорит о том, что ты не умеешь технологией пользоваться
253 2229487
>>29307

> Да у вас же шарашкина контора без налаженных процессов.


Спасибо кэп.
Зато у нас очень толерантное руководство. Поощряет инициативы. И если джуны предложат написать новый проект на микросервисах, то флаг всем в руки. А менеджмент еще поддакивает, давайте попробуем.
В итоге 8 контейнеров без необходимости масштабирвоания на одном хосте.
>>29314

> Вы что ли экстеншены не освоили?


Мы там дохуя чего осваивали. Если ты про синтаксис yaml позволяющий неиспользование части env то тут тоже удалось соснуть. Значения переменных одинаковые, но имена разные. Не спрашивай как так вышло.
>>29422

> А у монолит, стало быть, пилят поголовно чеды с умным волевым лицами, которые с детства на производство просились?


Монолит проверяют такие целы. Одну кодовую базу тупо проще проверять.

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


В монолите это может делать один человек в едином стиле.

> Я даже боюсь представить что вы там нахуевертили. 5 сервисов, каждый из которых в бд ходит?


8 и часть из них ходят друг в друга.

> То есть, вы реально сначала начали пилить микросервисы, а потом думать что вы хотите написать?


Что писать было понятно с самого начала. Просто нименее опытные оказались наиболее инициативными и убедили что микросервисы тут вот прям то что надо. По сути за гос счет удовлетворили свои амбиции.

> Пиздос...


Что не так? Там все было полностью асинхронное. 100500 запросов в приложуху которая производит вычисления нес вязанные с БД, просто сложные расчеты. Хотели ее так ускорить.

> только это говорит о том, что ты не умеешь технологией пользоваться


Я то как раз умею. И я бы делал монолит. Потому что не было смысла ни один из этих сервисов делать сервисом. Их не надо было мастабировать. Некоторые все что делали, это отдавали результат работы АПИ по запросу. Тоже самое могла сделать и основная приложуха. парочка делали запросы постоянно и отдавали последний результат. Не помню уже нахуя так, но опять же можно было заменить на celery По факту проебали время за которое можно было пару проектов запилить такого же уровня. Но нет. Джуны начитались ереси и начали творить какую то дичь. вышла сложно поддерживаемая хуита.
253 2229487
>>29307

> Да у вас же шарашкина контора без налаженных процессов.


Спасибо кэп.
Зато у нас очень толерантное руководство. Поощряет инициативы. И если джуны предложат написать новый проект на микросервисах, то флаг всем в руки. А менеджмент еще поддакивает, давайте попробуем.
В итоге 8 контейнеров без необходимости масштабирвоания на одном хосте.
>>29314

> Вы что ли экстеншены не освоили?


Мы там дохуя чего осваивали. Если ты про синтаксис yaml позволяющий неиспользование части env то тут тоже удалось соснуть. Значения переменных одинаковые, но имена разные. Не спрашивай как так вышло.
>>29422

> А у монолит, стало быть, пилят поголовно чеды с умным волевым лицами, которые с детства на производство просились?


Монолит проверяют такие целы. Одну кодовую базу тупо проще проверять.

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


В монолите это может делать один человек в едином стиле.

> Я даже боюсь представить что вы там нахуевертили. 5 сервисов, каждый из которых в бд ходит?


8 и часть из них ходят друг в друга.

> То есть, вы реально сначала начали пилить микросервисы, а потом думать что вы хотите написать?


Что писать было понятно с самого начала. Просто нименее опытные оказались наиболее инициативными и убедили что микросервисы тут вот прям то что надо. По сути за гос счет удовлетворили свои амбиции.

> Пиздос...


Что не так? Там все было полностью асинхронное. 100500 запросов в приложуху которая производит вычисления нес вязанные с БД, просто сложные расчеты. Хотели ее так ускорить.

> только это говорит о том, что ты не умеешь технологией пользоваться


Я то как раз умею. И я бы делал монолит. Потому что не было смысла ни один из этих сервисов делать сервисом. Их не надо было мастабировать. Некоторые все что делали, это отдавали результат работы АПИ по запросу. Тоже самое могла сделать и основная приложуха. парочка делали запросы постоянно и отдавали последний результат. Не помню уже нахуя так, но опять же можно было заменить на celery По факту проебали время за которое можно было пару проектов запилить такого же уровня. Но нет. Джуны начитались ереси и начали творить какую то дичь. вышла сложно поддерживаемая хуита.
254 2229510
>>29487

>Значения переменных одинаковые, но имена разные.


>Мы написали говно - виноваты микросервисы[x1]



>100500 запросов в приложуху которая производит вычисления нес вязанные с БД, просто сложные расчеты. Хотели ее так ускорить.


И что мешало в этой приложухе ограничить количество инстансов или сначала по профилировать ее?

>Мы написали говно - виноваты микросервисы[x2]



>В монолите это может делать один человек в едином стиле.


Ну охуеть, а договорится перед этим нельзя было?

>Мы написали говно - виноваты микросервисы[x3]



>Монолит проверяют такие целы. Одну кодовую базу тупо проще проверять.


А в монорепе не судьба все держать? Или вы не разделяете компоненты в ваших монолитах?

>Я то как раз умею


Охуенно умеешь, коммуникации никакой, даже о общих ресурсах и логах никто не договорился, никто не ревьюил чужой код что бы не было говна, а потом получается говно, вот удивительно.
255 2229527
>>29510

> И что мешало в этой приложухе ограничить количество инстансов или сначала по профилировать ее?


Не предусмотрено конструкцией. Там просто по сути был ее запуск. Сколько раз вызвали - столько ось ее запустила.

> Ну охуеть, а договорится перед этим нельзя было?


Нет. Проект делал новая команда недавно набраная но очень талантливая

> А в монорепе не судьба все держать? Или вы не разделяете компоненты в ваших монолитах?


От случая к случаю. Есть и монорепы. Этот писали "по всем правилам"

> Охуенно умеешь, коммуникации никакой, даже о общих ресурсах и логах никто не договорился


Вот ты такой умный. Делаешь свой асинхронный проект, как ты любишь. Сдаешь его. А на следующий день тебя ставят перед фактом что надо быстро допилить хуйню, которую уже пол года пилят и не допилят. Там хуйня вопрос. Вот тогда я посмотрю как ты будешь своей комуникацией переписывать весь преокт правильно. Ах да. Времени на переписывание тебе никто не даст.

> никто не ревьюил чужой код


Людские ресурсы ограничены. Что успевали, то ревьюили. Как только начали все пилить в монолитах резко повысилось качество кода.

> Мы написали говно - виноваты микросервисы


Виноват ты лично и тебе подобные.
Все что было вынесено в сервисы не предполагало дальнейшего масштабирования.
Просто авторы идеи видимо читали этот тред и нахуячили их потому что им сказали то так все делают.
256 2229537
>>29487

> Монолит проверяют такие целы. Одну кодовую базу тупо проще проверять.


Да ты что? А мне вот кажется, что проще проверять API и корректность жсонов, чем ебаться с кодом. Потому что люди сначала проектируют API и контракты, а потом колбасят код. Точно так же, как и с ООП в монолите -- сначала описываются контракты классов, а потом пишется код. Причем на время разработки связи, которые описываются контрактом банально мокаются

> В монолите это может делать один человек в едином стиле.


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

> 8 и часть из них ходят друг в друга.


А что там блять может на 90% совпадать? То есть, у вас либо все сервисы ходят друг в друга по кругу, что означает, что вы долбаебы, которые не смогли на микросервисы распилить, либо 90% совпадающих энвов это LOG_LEVEL, LOGFILE_NAME, IS_DEBUG и подобное, но такие энвы иметь нормально

> Что писать было понятно с самого начала. Просто нименее опытные оказались наиболее инициативными и убедили что микросервисы тут вот прям то что надо. По сути за гос счет удовлетворили свои амбиции.


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

> Что не так? Там все было полностью асинхронное. 100500 запросов в приложуху которая производит вычисления нес вязанные с БД, просто сложные расчеты. Хотели ее так ускорить.


Ну так, а в чем проблема? Так это и должно работать тащемта

> Я то как раз умею


Я заметил лол

> И я бы делал монолит.


Монолит уместен в двух случаях:
1. У вас вообще нет работы с сетью. Например, все что вы делаете это закидываете числа в свою числодробилку локально и получаете какой-то ответ. Эти числа никуда дальше не идут и на этом вся работа закончена.
2. Это легасиговно, которое когда-то написали монолитом и переделывать концепцию не просто дорого, а ОЧЕНЬ дорого.
Во всех остальных случаях микросервисы ВСЕГДА лучше.
>>29527

> Не предусмотрено конструкцией. Там просто по сути был ее запуск. Сколько раз вызвали - столько ось ее запустила.


Пиздец, я тебе тут целую стену текста накатал, а ты блять вообще не понимаешь даже что такое концепция микросервисов, просто охуеть
256 2229537
>>29487

> Монолит проверяют такие целы. Одну кодовую базу тупо проще проверять.


Да ты что? А мне вот кажется, что проще проверять API и корректность жсонов, чем ебаться с кодом. Потому что люди сначала проектируют API и контракты, а потом колбасят код. Точно так же, как и с ООП в монолите -- сначала описываются контракты классов, а потом пишется код. Причем на время разработки связи, которые описываются контрактом банально мокаются

> В монолите это может делать один человек в едином стиле.


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

> 8 и часть из них ходят друг в друга.


А что там блять может на 90% совпадать? То есть, у вас либо все сервисы ходят друг в друга по кругу, что означает, что вы долбаебы, которые не смогли на микросервисы распилить, либо 90% совпадающих энвов это LOG_LEVEL, LOGFILE_NAME, IS_DEBUG и подобное, но такие энвы иметь нормально

> Что писать было понятно с самого начала. Просто нименее опытные оказались наиболее инициативными и убедили что микросервисы тут вот прям то что надо. По сути за гос счет удовлетворили свои амбиции.


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

> Что не так? Там все было полностью асинхронное. 100500 запросов в приложуху которая производит вычисления нес вязанные с БД, просто сложные расчеты. Хотели ее так ускорить.


Ну так, а в чем проблема? Так это и должно работать тащемта

> Я то как раз умею


Я заметил лол

> И я бы делал монолит.


Монолит уместен в двух случаях:
1. У вас вообще нет работы с сетью. Например, все что вы делаете это закидываете числа в свою числодробилку локально и получаете какой-то ответ. Эти числа никуда дальше не идут и на этом вся работа закончена.
2. Это легасиговно, которое когда-то написали монолитом и переделывать концепцию не просто дорого, а ОЧЕНЬ дорого.
Во всех остальных случаях микросервисы ВСЕГДА лучше.
>>29527

> Не предусмотрено конструкцией. Там просто по сути был ее запуск. Сколько раз вызвали - столько ось ее запустила.


Пиздец, я тебе тут целую стену текста накатал, а ты блять вообще не понимаешь даже что такое концепция микросервисов, просто охуеть
257 2229636
Анончики, решил вкатиться, поясните где лучше обучаться за деньги?
Или тут все гуру постигают бесплатно?
image.png24 Кб, 390x545
258 2229640
Доброе утро! Подскажите пожалуйста, почему у меня цикл остается бесконечным и как его прервать при len(list) == num
https://www.online-python.com/80MayWLEeG
Напишите программу, которая выводит часть последовательности 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ... (число повторяется столько раз, чему равно). На вход программе передаётся неотрицательное целое число n — столько элементов последовательности должна отобразить программа. На выходе ожидается последовательность чисел, записанных через пробел в одну строку.

Например, если n = 7, то программа должна вывести 1 2 2 3 3 3 4.
Снимок.JPG8 Кб, 344x100
259 2229679
>>28733
Видимо пайчарм этого не понимает, потому что качал то я именно 3.10, если сайт не врёт.
260 2229687
>>29640
Потому что условие в while проверяется на итерациях while, а не вложенного for. Удали у принта один отступ и увидишь на какие значения попадает проверка условия while - и там всегда условие выполняется, отсюда и бесконечный цикл.

>>29679
Все он понимает, криво поставил или одно, или другое. Смотри вывод
python -V
в консоли.
111.PNG51 Кб, 590x856
261 2229689
>>29640
цикл перескакивает проверку внутри for
введи число например 10 и условие выполнится
262 2229711
>>29636
На работе, если хочешь работать.
На курсах, если хочешь читать курсы.
5.JPG32 Кб, 1111x327
263 2229833
>>29640
По возможности лучше избегать использования while
264 2229840
>>27954

>Ты можешь мысли яснее выражать?


Да, я имел ввиду, что актуальнее учить джуну, чтобы устроиться через год например. Сейчас знаю джангу на начальном уровне хочу двигаться дальше, а куда - непонятно
265 2229897
>>28962
Блин, пиздец я додик, реально забыл

>>28518
Это я перевернул список, нашёл индекс первого вхождения элемента в нём и вычислил индекс для не перевёрнутого, но как анон выше заметил это решается конструкцией header.rindex('TMIN')
266 2229926
>>29833
За компрехеншены ради сайд-эффектов тоже обоссывают, тащемта.
267 2229936
>>29926
Мне похуй, код вполне читаемый и работает. Если такое легкое выражение не могут прочесть, то пусть идёт доучиваться на курсах или откуда он там пришёл.
5585253734.png299 Кб, 601x302
268 2229950
code.png88 Кб, 732x658
269 2230018
270 2230020
271 2230124
>>28889

>Они позволяют не блочить основной покпок в однопоточной среде.


>основной покпок


:3
272 2230131
Какую либу использовать для скрапинга? Pandas BeautifulSoup или Selenium? Чем они отличаются?
273 2230132
Какую либу использовать для скрапинга? Pandas BeautifulSoup или Selenium? Чем они отличаются?
274 2230134
Учусь по книжке. Когда сделал одно задание, обязательно ли его сохранять? Это поможет мне как нибудь в будущем?
275 2230136
На долгую перспективу - нет. На время обучения - да. большинство задач из книжек ты еще сто раз реализуешь сам и загуглишь.
277 2230142
>>29487

>Зато у нас очень толерантное руководство


И очень хороший заказчик, который за всё это платит, да?
278 2230147
>>30138
Спасибо
279 2230148
>>30132
Зависит от целей. Базовый вариант это реквестс + суп.
280 2230152
>>30148
А в чем изюминка pandas и selenium?
281 2230156
>>30152
Селениум может исполнять жс, так как юзает движок браузера.
282 2230159
>>30131
pandas
283 2230160
>>30152
pandas для работы с данными, он умеет кушоть всякие простые форматированные таблички, но не более.
284 2230163
>>30160
А другие либы разве не могут? А еще, если мне нужно, чтобы на основе собранных данных был сформирован excel'евский документ, мне поможет в этом какая нибудь из этих библиотек?
285 2230165
>>29537

>Во всех остальных случаях микросервисы ВСЕГДА лучше.


"Сильное заявление. Доказывать его я, конечно, не буду..."
>>29537

>Пиздец, я тебе тут целую стену текста накатал, а ты блять вообще не понимаешь даже что такое концепция микросервисов, просто охуеть


Ну я вот тоже не понимаю, объясни нам.
286 2230166
>>30163
Это разный подход. Он это делает автоматически, но возможности ограничены. Примерно как в эксель ты можешь скопипастить табличные данные или извлечь из страницы.
В других ты можешь что угодно заскриптовать.
Экспортировать можно где угодно.
287 2230167
>>30166
Что тогда будет самым универсальным и сбалансированным в плане возможностей? Selenium?
288 2230168
>>30167
Я же написал - >>30148
289 2230177
>>29209
Погугли там что-нибудь вроде HBox, добавь его вместо нижней метки, а уже туда добавь метку и кнопку. В Gtk так, а больше я уже давно ничего не видел.
А вообще-то такие вещи лучше делать чем-нибудь вроде Glade, чтобы как в делфи накидать кнопок на формочку, сериализовать, а потом уже в работающей программе просто загрузить всю форму из файла. Ну или по крайней мере посмотреть в design-time, что у тебя получится на формочке накидать, чтобы потом накидать всё это поэлементно у себя в программе.
290 2230211
>>30165

> "Сильное заявление. Доказывать его я, конечно, не буду..."


Хули там доказывать, самая дешевая масштабируемость и возможность использовать по 500 раз одни и те же сервисы вообще не заморачиваясь по поводу интеграций => самая дешевая разработка => микросервисы всегда лучше для вебсервисов

> Ну я вот тоже не понимаю, объясни нам.


google.com
15.JPG7 Кб, 581x83
291 2230219
292 2230225
293 2230231
>>30211

>>>Монолит уместен в двух случаях:


>>>1. У вас вообще нет работы с сетью. Например, все что вы делаете это закидываете числа в свою числодробилку локально и получаете какой-то ответ. Эти числа никуда дальше не идут и на этом вся работа закончена.


>>>2. Это легасиговно, которое когда-то написали монолитом и переделывать концепцию не просто дорого, а ОЧЕНЬ дорого.


>>>Во всех остальных случаях микросервисы ВСЕГДА лучше.


>>"Сильное заявление. Доказывать его я, конечно, не буду..."


>Хули там доказывать, самая дешевая масштабируемость


То есть если мы делаем хоть что-либо кроме закидывания чисел в числодробилку, то ВСЕГДА мы должны закладывать возможность значительного масштабирования?
294 2230276
>>30225
А если бы генератор был бесконечным? Простоц слайс бы не прошёл
295 2230278
>>30276
Да и считать всю последовательность ненужно, надо только несколько
296 2230365
>>30231

> То есть если мы делаем хоть что-либо кроме закидывания чисел в числодробилку, то ВСЕГДА мы должны закладывать возможность значительного масштабирования?


Пиздец ты уебок, понял что обосрался, но начал вилять жопой, чтобы на анонимном форуме не признать, что неправ. Просто охуеть. Но ладно, я натыкаю тебя носом

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


А про масштабируемость это к тому, что дешевле не только разработка, но и поддержка проекта
297 2230553
>>29537

> Да ты что? А мне вот кажется


Пока тебе кажется я виду результаты.

> Нет, не может.


Но ведь смог же.

> А что там блять может на 90% совпадать?


Там есть внешние сервисы в которые сервисы стучат по разному. Единственный серсис единственной ответственностью.

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


А я сразу тебе говорил.

> Я скорее склоняюсь к мысли, что у вас команда дедов заросла тиной и покрылась пылью на одном стеке и подходе. А попытавшись сделать что-то новое произошел обсер.


Ты пытаешься выдать желаемое за действительное не имея неопровержимых доказательств.

> Ну так, а в чем проблема? Так это и должно работать тащемта


Это так быть нихуя не должно. В итоге скорость ответа увеличивается по экспоненте. Просто дебичи разработчики не осознавали разницу между IO блокировкой и загрузкой CPU. А ты осознаешь?

> Монолит уместен в двух случаях


Это классика и она уместна всегда. В отличии от микросервисов и асинхронности.

> Это легасиговно


Охуенный аргумент. В психологии твоей состояние называют пиком глупости. Когда нихуя не знаешь, по вершкам тему прочитал, но уже мнишь себя гением познавшим дзен.

> Пиздец, я тебе тут целую стену текста накатал, а ты блять вообще не понимаешь даже что такое концепция микросервисов


А по моему это ты не понимаешь, что микросервисная архитектура это лишь один из вариантов архитектуры и использовать его надо там, где он уместен. раз ты такой умный, то назови конкретные примеры где эта архитектура уместна. А если сможешь, то и где неуместна.
298 2230560
>>30142
Да. Там ебанутый заказчик был.
299 2230562
>>30365

> А про масштабируемость это к тому, что дешевле не только разработка, но и поддержка проекта


А если, допустим, в дальнейшем эти микросеврисы нигде никогда не понадобятся?
300 2230576
Хей, Аноны! Чёт, я совсем приуныл. Чем можно заниматься на Питоне кроме веба? Веб достал. И не всякие там бигдаты.
301 2230578
>>30576
Можешь писать нейронки.
302 2230582
>>30576
Можешь научить ИИ отличать негров от обезьян. Гугл тебя с руками оторвёт за изобретение этого волшебного алгоритма, так как у них целая команда синьоров годами над этой проблемой работает.
303 2230595
>>30553

> Пока тебе кажется я виду результаты


АУФ

> Но ведь смог же


Что мешало сделать тоже самое в микросервисах? В чем космическая разница?

> А я сразу тебе говорил


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

> Ты пытаешься выдать желаемое за действительное не имея неопровержимых доказательств


То что ты пишешь это и есть неопровержимые доказательства лол

> Это так быть нихуя не должно. В итоге скорость ответа увеличивается по экспоненте.


Схуяли?

> Просто дебичи разработчики не осознавали разницу между IO блокировкой и загрузкой CPU. А ты осознаешь?


Так у тебя должен был быть 1 инстанс апишки, которая получает реквесты и собирает жсоны и 100500 синхронных инстансов аппы, которая занимается расчетами. Апи в зависимости от времени ответа аппы или синхронное, или асинхронное. А вы какую-то хуйни наворотили

> Это классика и она уместна всегда. В отличии от микросервисов и асинхронности.


В вебе не использовать микросервисы = быть дауном

> Охуенный аргумент. В психологии твоей состояние называют пиком глупости. Когда нихуя не знаешь, по вершкам тему прочитал, но уже мнишь себя гением познавшим дзен


Пчел ты так и не понял что такое микросервисная архитектура, но продолжаешь спорить, пиздец

> А по моему это ты не понимаешь, что микросервисная архитектура это лишь один из вариантов архитектуры и использовать его надо там, где он уместен. раз ты такой умный, то назови конкретные примеры где эта архитектура уместна


Конечно, это архитектура онли для веба
> А если сможешь, то и где неуместна.
Неуместна вне веба, все просто
>>30562
Офк 95% сервисов никогда переиспользованы не будут, а всякие аутентификации, логи, метрики, кракены и тому подобное переиспользуются в каждом первом приложении. Что уже сокращает время на разработку на пару сотен часов.
304 2230610
>>30365

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


Ебать ты конченный... Ты же животное! Ты понимаешь, что тебя в зоопарке надо держать, и не пускать в треды для людей? Да хотя хули ты понимать можешь, дерьмо тупое?
Я тебе просто задал простой вежливый вопрос. И в итоге ты набираешь полную глотку говна и начинаешь им плеваться во все стороны. Ты же ёбнутый! Ты понимаешь, что ты ёбнутый на всю голову?

>Но ладно, я натыкаю тебя носом


Кого ты там тыкать собралась, блядина ёбаная? Не можешь нормально разговаривать - на хер иди. Мнение дегенератов меня в принципе не интересует. Я лучше с нормальными людьми поговорю.

>возможность переиспользовать сервисы


Ага, блядь, всем нужно каждый сервис переиспользовать, в каждом проекте, блядь.
>>30595

>Офк 95% сервисов никогда переиспользованы не будут, а всякие аутентификации, логи,


Ага, а других способов переиспользовать код, кроме микросервисов, не существует. Модульность и ООП уже не работают, это же прошлый век, а в прошлом году их отключили, как устаревшие. Особенно, когда нужно строчки писать в лог, тут помогут только микросервисы. А заодно ещё и остальные 95 процентов надо обязательно на микросервисы переписать, потому что иначе те 5 процентов тоже не переиспользуются. Блядь, вот я вижу просто, что когда у тупорылого долбоёба заканчиваются аргументы, только тогда он срывается на визг рваножопой истерички и начинает всех подряд оскорблять.
305 2230612
>>30610

> Кого ты там тыкать собралась, блядина ёбаная? Не можешь нормально разговаривать - на хер иди. Мнение дегенератов меня в принципе не интересует. Я лучше с нормальными людьми поговорю.


Не рвись, чмонь. Я понимаю, что тебе очень обидно, что твое виляние жопой было в грубой форме остановлено, но это только твои проблемы

> Ага, а других способов переиспользовать код, кроме микросервисов, не существует


Пиздец, печальный опыт предыдущего виляния жопой тебя ничему не научил? Окей, я натыкаю тебя еще разок, мне не трудно

> возможность использовать по 500 раз одни и те же сервисы вообще не заморачиваясь по поводу интеграций


Угомонись, додик. И перестань пытаться мои слова переврать или выдрать кусок без контекста и начать с ним спорить

> Блядь, вот я вижу просто, что когда у тупорылого долбоёба заканчиваются аргументы, только тогда он срывается на визг рваножопой истерички и начинает всех подряд оскорблять.


Ну так перестань визжать, в чем проблема?
306 2230635
Ебать вы тут срете!
307 2230668
>>30635
Обсуждение архитектуры на двоще
Ублюдок, мать твою, а ну, иди сюда, говно собачье, а? Ну, решил ко мне лезть? Ты, засранец вонючий...
Обсуждение архитектуры на мите
Как вам будет угодно! Я всяко могу, как хотите! Пожалуйста, я к вашим услугам!
308 2230674
Алсо, подскажите в планирование архитектуры.
На проекте мы с руководителем обсуждаем. Он базис представляет, я дополняю, он корректирует. Но во время реализации бывает периодически проебы. Не такие, что подпорками забиваем или вообще переделываем из-за невозможности масштабиравания, но такие, что какую-нибудь таску переделать придется, чтоб выглядело хорошо, которая релиза 2 назад была сделана.
309 2230676
>>30674
Таску прихоидтся переделывать из-за встратого ТЗ или проеба со стороны разработчика ?
310 2230680
>>30553

>В отличии от микросервисов и асинхронности


Джанговская тредочушка, ты? Я уже давал тебе свежую порцию урины на лицо, тебе все мало?
311 2230681
>>30676
Больше из-за тз, т.к. сначала все хорошо выглядит и подходит, но с новыми требованиями узко становится.
312 2230684
>>30681
Не ссы, это называется рефакторинг и он неизбежен. Сразу хуй ты всё продумаешь, чтоб нигде не запнуться
313 2230692
>>30681
Ну так это нормально, разрабов для того кабанчики и содержат, чтобы бесконечно меняющиеся требования реализовывали. Если тебя это беспокоит и анонам из пр не веришь, то можешь к Кабан Кабанычу подойти и рассказать про это. Он тебе пояснит, что реализовывать фичу с запасом, когда еще не понятно выстрелит она или нет -- слишком дорого. Дешевле написать минимально работающую версию и выкатить, а если стрельнет, то допилить+часто вообще не понятно что там расширять и улучшать нужно, пока фидбэк от юзеров не получен
314 2230696
>>30167
вот ты додик.
Ну начни с pandas, раз ты неизбежно будешь обрабатывать таблички.
315 2230708
>>30576
Ну, поскольку это скриптовая параша, то можно всякие мат. расчёты делать по быстрому и прочие вместо матлаба. Ну или просто скриптики
По большей части, на нём писать кроме околовеба особо нечего
316 2230711
>>30576
Ну напиши какой-нибудь видеоплеер. Нет, на нем писать можно почти всё, но юзается он практически только в вебе или нейронках, как сейчас можно.
image.png2,6 Мб, 2000x1126
317 2230713
>>30711

>видеоплеер


Нахуя?.. Десктоп мертв. Модные пацаны нейронки хуярят и баб ебут
318 2230722
>>30668
наоборот вообщето
319 2230725
>>30713
Окей, напиши видеоплеер, который хостит твои видюшки где-то на cdn, ты можешь задать веб адрес, а плеер спарсит страницу, найдет видюшки и сделает плейлист с отображением мета данных
320 2230729
какие есть идеи на телеграм бота?, видел интервью с создателем глаза бога и он говорил, что зарабатывает на боте на хату в Москве каждый месяц. Как так же зарабатывать, ну или хотябы 1-2млнруб.?
321 2230737
>>30729
У него есть конкретные услуги, телеграм тут вообще никаким боком.
Если у тебя нет востребованной услуги, то хоть обвешайся этими ботами.
322 2230752
https://pastebin.com/unTrPVgL
Нужно получить значение без $. Почему на regex101 проходит, а в компиляторе нет?
323 2230753
>>30729
Так дело не в боте, а в том, что чел дохуя внешних сервисов интегрировал в свою залупу. Хотя там на самом деле даже 50% от возможного функционала не реализована, особенно в контексте вк. Контакт вообще дырявая хуйня, в которой понятия приватности отсутствует
324 2230756
>>30752
Матч это полное совпадение, тебе нужен search.
325 2230759
>>30756
да, работает. Спасибо
326 2230760
>>30752
match проверяет подходит ли строка под шаблон. Ты хуяришь шаблон "без символа $" и передаешь строку с $. Казалось бы, что могло пойти не так? Как тебе уже сказали, используй search
327 2230764
Можно ли из распарсенных данных soup'ом сформировать таблицу не прибегая к сторонним либам?
328 2230777
>>30764
Какую таблицу?
329 2230778
>>30764
ну можно через итерации и словари, но нахуя?
330 2230786
>>30764
Что за данные? Что за таблица? Ты блять можешь мысли свои формулировать нормально?
331 2230787
>>30764
Ну опять ну началось, ебать.

Да, pandas наиболее оптимален для вкатуна-оналитика. А bs4 более оптимален для остальных случае.
332 2230791
>>30729
Что-нибудь спиздить и продавать, очевидно же.

Так что кривенькая дорожка ведет тебя в даркнет.
Ну а там и тюрьмы недалеко.

Видите как трудно вкатунам.
image.png55 Кб, 866x432
333 2230793
Как при запуске веб-приложения в Питоне подгрузить к нему env-файл?
В Fastapi есть способ через pydantic и задание пути к env-файлу, но как по мне тут какая-то "магия", не совсем ясно что делать если фреймворк другой и pydantic юзать не хочется
334 2230794
>>30729

> видел интервью с создателем глаза бога и он говорил


Это тот которого в сауне приняли с трапом и негритянкой?
335 2230795
>>30791
Это кстати популярная хуйня среди малолетних зумерков. Всякие мелкокриминальные делишки в интернете, чтобы сшибить себе копеечку на досуг. Там целые форумы, где полно всякой такой движухи. Я как-то натыкался, интересное зрелище.
336 2230796
>>30777
>>30786
>>30787
CSV. Использую bs4, экспортировать удобно получилось через встроенную библиотеку csv, pandas не нужен
337 2230798
>>30793
dotenv
338 2230799
>>30793
Ты можешь вручную его распарсить, это во-первых. Во-вторых, возьми любую либу, тот же dotenv и аналоги. Хотя судя по всему ты не понимаешь что такое переменные окружения лол
339 2230803
>>30796
И причем тут таблица?
340 2230804
>>30793
Ах да, у тебя в коде синтаксическая ошибка, просто охуеть
341 2230806
>>30796
Как нахуя csv связан с таблицами? Ты долбаеб?
342 2230807
>>30799
Как раз я спрашиваю не "как файл прочитать" а "как переменные окружения подгрузить"

>>30804
?
Это скрин из офф доков фастапи, чел, тут нет никаких косяков синтаксиса
343 2230808
>>30796

>pandas не нужен


А вот здесь ты не прав.
pandas нужен всегда. Просто привыкай.
изображение.png3 Кб, 254x98
344 2230836
>>30807

> Как раз я спрашиваю не "как файл прочитать" а "как переменные окружения подгрузить"


Ну так читаешь файл и подгружаешь переменные, в чем проблема? Или ты не знаешь что такое переменные окружения и как их устанавливать? Вот на скрине срываю покровы с этой вселенской тайны

> Это скрин из офф доков фастапи, чел, тут нет никаких косяков синтаксиса


Это я обосрался, показалось, что класс Settings является датаклассом, а там дефолт валуе нельзя указывать после поля без дефолтного значения. Но в любом случае, даже если это не ошибка, то просто не питоник вэй
345 2230837
>>30808
двачую, как можно работать без pandas? это жи стандарт
Ну сделаешь ты свой менеджер таблиц, одна ошибка и ты сосешь, а потом еще и ищешь петуха который код писал, чтобы его накуканить
346 2230859
Нубловопрос по PANDAS

Есть у меня данные в Django ORM (SQLite) вида:

>1.12.2021 - Вова - 12


>1.12.2021 - Стёпа - 5


>2.12.2021 - Леша - 4


>2.12.2021 - Вова - 4


>3.12.2021 - Степа - 1


>3.12.2021 - Лёша - 9000



Хочу из них получить табличку:

Дата | Вова | Стёпа | Лёша
1.12 | ..12.. | ...5.. | ...-..
2.12 | ...4.. | ...-... | ...4..
3.12 | ...-... | ...1.. | ..9000

Как мне это сделать?
347 2230867
>>30859
groupby
348 2230871
>>30859
unstack же
349 2230872
>>30859
Дай угадать, теперь ты будешь бегать с простейшими вопросами про pandas по десять раз на день?
350 2230873
>>30859
А ещё лучше pivot_table
351 2230875
>>30872
А почему бы ему и не бегать сюда?
352 2230889
>>30867
Чёт у меня после этого не завелось. После GroupBy сортировать нельзя.
>>30871
Спасибо
>>30873

>pivot_table


Спасибо, этот вариант сработал.
>>30872
Мне только эту хуйню сделать шоб график в жанге выводился с фрагментарными данными, и в рот его всё ебать. Но вообще а чем хуйово.
353 2230897
>>24725 (OP)
Выкатываюсь из айти нахуй.
5 лет жизни потраченных в никуда и вот я ни где.

На связи Кун Кунович 31 лвл который в 27 лет решил вкотится в это ваше ебаное ойти.
Учи питон говорили они, будешь зарабатывать 100500$ говорили они.
Сейчас я зарабатываю 3400000 ржублей в месяц минус премия и ебашу по 4к строк в день как Лев Толстой обезьяна ебаная(Абу, милый это не про тебя).
Да, нам буквально платят за количество строк как Индусам. Я серьезно, перед начальством начальства нужно отчитаться чем ты занимался весь спринт и если кода мало то выглядит так что ты бездельник. Воды в проектах пиздец как много.
И эту работу я еще еле нашел по блату.
За 5 лет я научился ебашить на питоне бек енд для сайтиков и апи, верстать странички любой хитровыебаной красоты и сложности, мошинному зрению и мошинному обучению, работать с базами данных, даже ебаную онлайн игру делаю и всю залупу эту тут лень перечислять.
И я не могу найти ни какую другую работу.
На интервью говорят что я охуенно сделал техническое задание(они уже заебали этими тз, почти каждая шарага высылает тз), задают вопросы и я правильно отвечаю, все хорошо но потом спустя 5 дней, извините мы нашли кандидата который нам подходит чуть лучше вас.
У меня есть примеры кода на гите и свой сайт-резюме и пет проекты.
Я завалил уже больше 50 интервью.

На хедхантере можно делать по 200 откликов в сутки, у меня пальчик устает, так что я написал скрипт который делает отклики на подходящие вакансии. И знаете что? За 2 недели все вакансии на удаленную работу на Python кончились. Я откликнулся на все вакансии по удаленной работе и на все вакансии в моем городе и мне везде отказали.

Легенду о дефиците кадров и высоких зарплатах раздувают сами ИТ конторы что бы вкатыши задемпинговали рынок и сбили цены на рабов.
На деле же если и есть дефицит то это опытных, под опытом подразумевается стаж работы а не умение. В первую очередь смотрят на количество лет в коммерческой разработке и если у тебя нет 5 лет хотя бы, то тебя даже в ебаные стажеры не возьмут.
А джунов-вайтишников их дохуя по 200 штук на одну вакансию. И среди них выберут того кто мордочкой понравится, либо задрота, олимпиадника.
Даже мой коллега с 10 летнем стажем и высшим образованием уже год ищет куда свалить с нашей конторы и вариантов у него видимо нет, хотя платят ему 100к.
Но блин с 10 летнем стажем и высшем образованием даже у знакомой юристки 80к зп, а у экономистки 90к.
Сейчас я задумался на что еще можно было поратить 5 лет жизни? Мой друг 5 лет работал торговым представителем и у него сейчас зп 70к.
Почему этот тред здесь а не в пограмаче? Потому что там орудует лахта. Серьезно, это буквально госзаказ что бы все ломанулись в погромисты, это граммотность 21 века. Без дешевых погромистов людишек роботами не заменить. И дальше количество погромистов будет только увеличиваться. В школе будут экзамены по фулл стаку. И такая профессия как программист вообще исчезнет, как исчезла профессия писарь, когда всех обучили грамотности.
В условия кризиса погромисты вообще будут не нужны, так они не производят вообще ни чего полезного. Всю ойти можно отнести к индустрии развлечений, а когда кушать не чего не до развлечений.
Подумай анон на что ты еще можешь потратить годы своей жизни перед тем как вкатываться в ойти. Ойти плохо еще тем что оно затягивает. Когда не хер делать я пилю игры и это что то вроде развлечения. Сам сделал, сам поиграл, сам проиграл. но сейчас мне за 30 и нужно думать о деньгах а не о развлечениях.
Так и ты можешь попасть в эту ловушку анон.
353 2230897
>>24725 (OP)
Выкатываюсь из айти нахуй.
5 лет жизни потраченных в никуда и вот я ни где.

На связи Кун Кунович 31 лвл который в 27 лет решил вкотится в это ваше ебаное ойти.
Учи питон говорили они, будешь зарабатывать 100500$ говорили они.
Сейчас я зарабатываю 3400000 ржублей в месяц минус премия и ебашу по 4к строк в день как Лев Толстой обезьяна ебаная(Абу, милый это не про тебя).
Да, нам буквально платят за количество строк как Индусам. Я серьезно, перед начальством начальства нужно отчитаться чем ты занимался весь спринт и если кода мало то выглядит так что ты бездельник. Воды в проектах пиздец как много.
И эту работу я еще еле нашел по блату.
За 5 лет я научился ебашить на питоне бек енд для сайтиков и апи, верстать странички любой хитровыебаной красоты и сложности, мошинному зрению и мошинному обучению, работать с базами данных, даже ебаную онлайн игру делаю и всю залупу эту тут лень перечислять.
И я не могу найти ни какую другую работу.
На интервью говорят что я охуенно сделал техническое задание(они уже заебали этими тз, почти каждая шарага высылает тз), задают вопросы и я правильно отвечаю, все хорошо но потом спустя 5 дней, извините мы нашли кандидата который нам подходит чуть лучше вас.
У меня есть примеры кода на гите и свой сайт-резюме и пет проекты.
Я завалил уже больше 50 интервью.

На хедхантере можно делать по 200 откликов в сутки, у меня пальчик устает, так что я написал скрипт который делает отклики на подходящие вакансии. И знаете что? За 2 недели все вакансии на удаленную работу на Python кончились. Я откликнулся на все вакансии по удаленной работе и на все вакансии в моем городе и мне везде отказали.

Легенду о дефиците кадров и высоких зарплатах раздувают сами ИТ конторы что бы вкатыши задемпинговали рынок и сбили цены на рабов.
На деле же если и есть дефицит то это опытных, под опытом подразумевается стаж работы а не умение. В первую очередь смотрят на количество лет в коммерческой разработке и если у тебя нет 5 лет хотя бы, то тебя даже в ебаные стажеры не возьмут.
А джунов-вайтишников их дохуя по 200 штук на одну вакансию. И среди них выберут того кто мордочкой понравится, либо задрота, олимпиадника.
Даже мой коллега с 10 летнем стажем и высшим образованием уже год ищет куда свалить с нашей конторы и вариантов у него видимо нет, хотя платят ему 100к.
Но блин с 10 летнем стажем и высшем образованием даже у знакомой юристки 80к зп, а у экономистки 90к.
Сейчас я задумался на что еще можно было поратить 5 лет жизни? Мой друг 5 лет работал торговым представителем и у него сейчас зп 70к.
Почему этот тред здесь а не в пограмаче? Потому что там орудует лахта. Серьезно, это буквально госзаказ что бы все ломанулись в погромисты, это граммотность 21 века. Без дешевых погромистов людишек роботами не заменить. И дальше количество погромистов будет только увеличиваться. В школе будут экзамены по фулл стаку. И такая профессия как программист вообще исчезнет, как исчезла профессия писарь, когда всех обучили грамотности.
В условия кризиса погромисты вообще будут не нужны, так они не производят вообще ни чего полезного. Всю ойти можно отнести к индустрии развлечений, а когда кушать не чего не до развлечений.
Подумай анон на что ты еще можешь потратить годы своей жизни перед тем как вкатываться в ойти. Ойти плохо еще тем что оно затягивает. Когда не хер делать я пилю игры и это что то вроде развлечения. Сам сделал, сам поиграл, сам проиграл. но сейчас мне за 30 и нужно думать о деньгах а не о развлечениях.
Так и ты можешь попасть в эту ловушку анон.
354 2230898
>>30897
Заебали серить уже этой шизопастой.
355 2230910
>>30898
И в чем он не прав
356 2230912
>>30910
В том что он пиздабол
357 2230932
>>30912
Пруфай
358 2230936
>>30897
Паста не плохая, но тейк про

> Сейчас я зарабатываю 3400000 ржублей в месяц


это пиздец. Как можно было так обосраться с нулями? Ебанулся совсем? Кто в здравом уме будет это читать и проникаться тем, что "айти пузырь уже все", если чел пишет, что получает 3.5 ляма в месяц?
359 2230940
>>30936
Там в оригинале было 34к )
Долбоеб просто plain text перекопировал и вбросил сюда. Даже не читай потко сознания этого шизла
360 2230955
>>30897

> Сейчас я зарабатываю 3400000 ржублей в месяц


Очередной сеньиор с жиру бесится.

> Я завалил уже больше 50 интервью.


Так все же завалил?

> За 2 недели все вакансии на удаленную работу на Python кончились.


Ну найди не удаленную. Потом договоритсь. Раз ты такой распрекрасный хуй, то тебе пойдут на встречу.

> Легенду о дефиците кадров и высоких зарплатах раздувают сами ИТ конторы что бы вкатыши задемпинговали рынок и сбили цены на рабов.


Легенде уже сколько лет то. Она из тех времен когда программисты должны били быть умными. К счастью эта проблема давно решена. Теперь постепенно решается и проблема высоких зарплат. На большую контору хватит человек 5 нормальных опытных спецов, которые будут погонять стадо макак. Вот им и будут плотить 100500$

> Всю ойти можно отнести к индустрии развлечений


Вспомнил старый рассказ - "Папа сидел за компьютером и работал в игру лайнс".

> Почему этот тред здесь а не в пограмаче?


Потому что ты вниманияблядь?

> Когда не хер делать я пилю игры и это что то вроде развлечения.


Начни их подорвать. Может даже работу искать не придется.
361 2230956
>>30897

> Сейчас я зарабатываю 3400000 ржублей в месяц


Очередной сеньиор с жиру бесится.

> Я завалил уже больше 50 интервью.


Так все же завалил?

> За 2 недели все вакансии на удаленную работу на Python кончились.


Ну найди не удаленную. Потом договоритсь. Раз ты такой распрекрасный хуй, то тебе пойдут на встречу.

> Легенду о дефиците кадров и высоких зарплатах раздувают сами ИТ конторы что бы вкатыши задемпинговали рынок и сбили цены на рабов.


Легенде уже сколько лет то. Она из тех времен когда программисты должны били быть умными. К счастью эта проблема давно решена. Теперь постепенно решается и проблема высоких зарплат. На большую контору хватит человек 5 нормальных опытных спецов, которые будут погонять стадо макак. Вот им и будут плотить 100500$

> Всю ойти можно отнести к индустрии развлечений


Вспомнил старый рассказ - "Папа сидел за компьютером и работал в игру лайнс".

> Почему этот тред здесь а не в пограмаче?


Потому что ты вниманияблядь?

> Когда не хер делать я пилю игры и это что то вроде развлечения.


Начни их подорвать. Может даже работу искать не придется.
362 2230966
>>30793
Лучше делай это в докере, чтоб не засрать окружение.
Вообще, енв устарел, используй жсон
363 2230984
>>30966

> Лучше делай это в докере, чтоб не засрать окружение.


А вот и эксперты подъехали. Ты в курсе, что переменные окружения бывают разного уровня? И по дефолту все переменные окружения устанавливаются для сессии и видны только внутри нее и с ее завершением исчезают. Попробуй запустить скрипт, который ставит переменную окружения и дождаться завершения его работы, а потом запустить скрипт, который читает эту переменную. Угадай что произойдет?второй скрипт нихуя прочитать не сможет

> Вообще, енв устарел, используй жсон


Какой нахуй жсон? Ты о чем вообще?
364 2230987
>>30984
Они скоро через тикток деплоить будут.
365 2231005
>>30987
В голос
366 2231034
>>30987
Да, будем и потом вы будете это поддерживать. И что ты сделаешь? Напишешь гневный пост на подтираче?
367 2231084
BS4 не может во взаимодействие со страницей? Мне нужно нажать на кнопку на сайте, а затем распарсить получившуюся страницу. Без Selenium не обойтись?
368 2231087
>>31084
В смысле не может? Ты совсем дурачок? Ты хтмл код передаешь в суп, как там джаваскрипт с запросами в бэк может работать?
369 2231089
>>31084
Ищи эти данные в контенте и забирай оттуда. Если нет, то они подгружаются. Повторяешь запрос у себя и забираешь готовое опять же.
370 2231095
>>31084
>>30131
Когда вы блять уже научитесь пользоваться апишкой, а? bs4 какие-то нахуй, селениумы, на практиве минимум 90% ваших задач через запросы делаются
j4gD4fw.jpg116 Кб, 1280x520
371 2231096
372 2231116
>>31095
это у вас ГазМясМейлру данные россиян по api выдают, а в остальном бизнесе их ДОБЫВАЮТ
373 2231131
>>30984

> Ты в курсе, что переменные окружения бывают разного уровня?


Я конечно дико извиняюсь, но какое отношение ваш ответ имеет к

> Лучше делай это в докере, чтоб не засрать окружение.

374 2231137
>>31131
К тому, что засерки переменными окружения не будет
375 2231334
Есть алгоритмы фильтрации джсонов?
Я написал один рекурсивный. На вход ему идёт лист примерно следующего содержания [True [items, data, active]] - перебирать вложенные структуры (листв, дикты) и оставить только те, где active = True. Работает он вполне себе без каких-то задержек. Реализация через реджексы невозможна, либо будет очень дорогим, я пытался.
Уже заебался парсить ответы вручную, хотелось бы что-то универсальное. Схожих библиотек не нашёл.
9IXuSWBonD0.jpg66 Кб, 694x498
376 2231339
>>31334
Примерно так выглядит
377 2231349
>>31339
Данные лучше покажи. И текстом, а не пикчей.
378 2231366
>>31349
Весь говнокод
https://pastebin.com/cZNiqb9U

В конце результат фильтрации при первом и втором проходе по двум условиям

В самом конце выводит нужный параметр
379 2231394
>>31334
Что за хуйню я читаю?
Какая к хуям фильтрация джейсона?
Тебе дали встроенный модуль json что бы преобразовывать json из текста в питонячий объект и вертеть его как угодно. А потом им же преобразовывать его обратно в json.
Твоя задача это просто цикл с условием.
380 2231404
>>31334
ну если тебе прям хочется быстро, есть jq .
https://pypi.org/project/jq/
381 2231423
https://pastebin.com/uZMsMa5N
Можно ли так генерировать список? Что то мне кажется, что за такое хуем по губам мне поводят.
382 2231424
>>31423
a = [b for b in range(1, 1000001)]
383 2231425
>>31424
Ебать я затупок нахуй, благодарю
Стикер512x512
384 2231429
>>31425
>>31423
list(range(1,1000001))
пиздец
385 2231437
>>31394
А если таких запросов 100-200? Будешь каждому личную функцию прописывать?
386 2231441
>>31425
[*range(1, 1000001)]
list(range(1, 1000001))

>>31424
мы вам перезвоним
387 2231442
>>31423
Проще перечислить вещи за которые не поводят.
Пиздец, зачем это в языке, если какой-то хер в очках запретил им пользоваться
388 2231443
>>31429

>list


Пиздец
389 2231445
>>31424
>>31429
>>31441
Скобки круглые. В памяти весь список держать собрались? Вы чё, конченые?
390 2231449
>>31445
Лишний генератор вокруг обычного range, который сам как генератор работает? Да ты сам недалеко ушел, я посмотрю.

Изначальный вопрос - генерация именно списка. Так-то создавать из ничего список, понятное дело, не всралось почти никогда, если только менять как-то хитрожопо его надо будет, в середине там например.
391 2231484
Хочу перекатиться в микросервисы со своего монолинтного джанго. Но совсем не имею о них представления. Какие статьи почитать, какой стек актуален?
392 2231502
>>31437
Нахуя личную?
Ты описал проблему. Тебе дали решение. Если решение не подходит, это значит ты не правильно/не до конца описал проблему.
393 2231544
>>31484
Дед, это ты? Тебя так приложили вчера, что решил таки перебраться?
394 2231554
Как при асинхронном мультипроцессинге узнать об окончании всех заданий, например, чтобы вызвать событие?
395 2231580
>>31544
Шиз, ты чо рвёшься? Настолько задело то обсуждение, что везде уже "деды" мерещатся?
utah-teapot-cover-880x308.jpg17 Кб, 880x308
396 2231626
Анонэ, есть подробный структурированный гайд по развитию себя как специалиста в области python web development? Вот у нас есть несколько уровней: джун, миддл, сеньор, и типа god-level(прошаренный мастер способный создать что угодно используя данные технологии в определенных условиях). Существует ли где-то подробное современное(2020-21) описание какие знания, навыки, представления должны быть на каждом из этих уровней?
397 2231664
>>31626
В одной галере ты можешь быть оценён на сеньора-помидора, а в другой твоих знаний хватит на уверенного мидла. Зачем тебе в грейдовку целиться? Просто познавай то, что тебе интересно и приносит денег
Ну а вообще в тырнетах куча всяких разных бесполезных роадмапов есть. Можешь их поизучать
398 2231665
>>31626
Ты понимаешь, что если тебе даже для этого нужна инструкция, то это очень плохо?
399 2231715
>>31626
Грейды это субъективная хуйня. да еще и дрочят их как хотят. Где то тебя запишут в мидлы, где в джун плюс.
Просто повышай свою квалификацию и навыки. Когда ты осознаешь, что умнее половины коллектива - проси прибавку к зп. ну или ищи новую работу. Так и происходит рост в айти.
400 2231755
За сколько можно освоить VS CODE? Задают ли вопросы про него на собесах?
401 2231757
>>31755
Два года самостоятельно или полгода школы-интерната.
402 2231776
>>31665

Не вижу в этом ничего крамольного. У каждого человека есть определенный уровень знаний, в айти есть разделения на классы по уровню знаний, навыков и опыта. Вот я и хотел прочитать, узнать, есть ли какие-то "дефолтные" технологии, знания, специфика отдельно для каждого уровня, которые являются актуальными в 2021 году.

а раз ты уже с самого начала человеку отвечаешь в пассивно-агрессивной форме, то это тебе нужно в своих комплексах загонах разобраться
404 2231780
>>31664
>>31715

Спасибо.
405 2231781
>>31776
Нет никаких уровней знаний, оно всё вместе помаленьку растет, как и общий кругозор. А искать списки, вот выучу пункты с 1 по 10 и вот я мидол это полная хуйня, как по мне.
406 2231783
>>31781
Опять же, что значит выучить? Раскурить до исходников и наработать практику или посмотреть видяшку на ютубе от Зумера Зумеркова и забыть на следующий день?
Это абстрактная бессмысленная хуита.
407 2231787
>>31755
Это просто один из инструментов. Причем не все им пользуются, PyCharm объективно лучше пока что.
Максимум что могут спросить пользовался ли. если в конторе это обязательный инструмент, то один хуй возьмут просто скажут осваивай.
408 2231793
Как в flask-admin добавить урл, который бы не показывался в админке? Ну просто урл, в ответ что-то придет, что работает.
409 2231856
>>31783
Если ты не понял мысль в посте, я объяснять ее не буду. Твой бред начинает надоедать.
410 2231871
>>31856
Вообще, это правильно, надо завязывать с такой хуйней.
Это как долбоебы с брошурками млм - пояснить им ничего не пояснишь, только время тратить. Пусть идут к успеху.
16207459670610.jpg49 Кб, 538x604
411 2231939
>>31776
Иерархия не сложилась. Кое-что вырисовывается, но мы тут не в армии. Нет званий.

Ты это хотел узнать?
412 2232040
>>31779
спасиб, интересненько. Это получается моя программа должна работать внутри цикла while ?
413 2232042
>>31626
Пока нет гос-стандартов к прогерам - нет и единых "дорожных карт" для обучения прогерским специальностям. Это ты в медицине или экономике можешь сказать "вот у нас опыт столетий, вот у нас научный консенсус, вот у нас бест практис от ведущих вузиков, и на основе всего этого мы можем сказать, что...". В программировании это не работает. Слишком много альтернативных инструментов под 1 задачу, слишком быстро все меняется.
414 2232148
>>32042

Ну да, в общем-то ты прав.
415 2232149
>>31757
В голос
>>31755
Хули ты там собрался осваивать? Ты при переезде с хрома на лису тоже бы стал писать "за сколько можно освоить лису? задают ли по ней вопросы на собесах?"
>>31776

> в айти есть разделения на классы по уровню знаний, навыков и опыта


Нету, это просто хуйня, чтобы показать насколько опытный чел им нужен. Я могу дать примерную расшифровку
джун => закрывает таски, в которых написано что, где и как нужно сделать
мидл => закрывает таски, в которых написано для чего их нужно сделать
сеньор => закрывает таски уровня "сделать заебись"

> Вот я и хотел прочитать, узнать, есть ли какие-то "дефолтные" технологии, знания, специфика отдельно для каждого уровня, которые являются актуальными в 2021 году.


Нету такого, тем более, что новые и актуальные технологии появляются слишком быстро, а половина кодовой базы все еще висит на какой-нибудь джанге 1.0 из 2010 года
417 2232166
>>32149

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


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


>сеньор => закрывает таски уровня "сделать заебись"


Какая глупость
418 2232168
>>32149

>закрывает таски уровня "сделать заебись"


Это я первые полгода так задачи делал, когда работал в битриксостудии
419 2232170
>>32168
В похапе если не развалилось сразу, то уже заебись.
420 2232172
>>32166
Бля, ебать ты меня аргументами приложил
>>32168
Хуячить сайты на сиэмэсках это не совсем погромирование
421 2232179
>>32172

>Бля, ебать ты меня аргументами приложил


А на этот бред не может быть аргументов. Делать заебись бизнес фичи без нормального описания таски невозможно, в любом случае придется переписывать, также невозможно не наплодив багов и костылей вносить правки в легаси без общения с человеком который на этом проекте работает долгое время. На тех. скиллы это никак не влияет.
422 2232192
>>32179

> А на этот бред не может быть аргументов


Не может быть настолько, что ты их дальше самостоятельно приводишь

> Делать заебись бизнес фичи без нормального описания таски невозможно


Возможно, все бизнес фичи, которые придумал не погромист делают именно так. Если тебе дали задание "сделать забеись", а ты понимаешь, что можно сделать"заебись" только за год и "почти заебись" за неделю и идешь обсуждать это с бизнесом, то ты сеньор и ты получаешь 300к/наносек. Если ты это не понимаешь, то ты просто не сеньор и для тебя действительно такие задачи невозможны еще

> также невозможно не наплодив багов и костылей вносить правки в легаси без общения с человеком который на этом проекте работает долгое время. На тех. скиллы это никак не влияет.


Да, поэтому тебе нужно понять что, куда и как прикрутить, потом найти человека, который в этом разбирается и узнать у него все подводные, а потом делать. Именно это и отличает сеньора от ждуна. Именно поэтому на одну таску ждунана полноценную таску, а не сдвинуть кнопку влево на 10 пикселей приходится тратить пару часов сеньора на разбирательства того как и что нужно сделать, с какими технологиями и каких подводных избежать.
423 2232197
>>32192

>идешь обсуждать это с бизнесом, то ты сеньор и ты получаешь 300к/наносек


Какое это отношение это имеет к тех. скиллам? На многих проектах практически невозможно отличить джуна от сеньора если нет задач по архитектуре и сложным решениям.

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


Ты походу на легаси не работал, о подводных камнях там сеньор не может знать и нужен человек который на этом говне греб дольше всех, иначе пизданет на проде дай боже. Куа кстати тоже не будет, обычная практика для сбера и вк например.
424 2232199
>>32197

> Какое это отношение это имеет к тех. скиллам? На многих проектах практически невозможно отличить джуна от сеньора если нет задач по архитектуре и сложным решениям.


Прямое, эти навыки так же являются техскиллами, зачастую даже более важными. Погромисту платят 6-значную зп в разы, а то и в десятки раз превосходящую медиану по России не за красивые глаза, а за бабло, которое он приносит бизнесу. И это бабло в 90% случаев экономится на этапе перевода бизнес требований в технические требования

> Ты походу на легаси не работал, о подводных камнях там сеньор не может знать и нужен человек который на этом говне греб дольше всех, иначе пизданет на проде дай боже. Куа кстати тоже не будет, обычная практика для сбера и вк например.


Да все так, я про это и говорю, что тебе сказали сделать заебись, а ты понимаешь, что сначала надо пойти узнать обо всех подводных у знающих людей. За сеньора не нужно думать и беспокоится, что он забудет спросить о таких вещах или начнет тратить миллионы впустую на реализацию одной лишней кнопки. А за ждуном нужен глаз да глаз
425 2232220
>>31787

>PyCharm объективно лучше пока что


Почему он тогда почти не встречается в туториалах на ютубе?
426 2232226
>>32220
Вот это крупный калибр аргументов пошел
427 2232231
Есть ли какие-то хорошие курсы по django, желательно на английском?
428 2232234
>>32231
Документация
429 2232235
>>32040
Нет, while блокирует выполнение, пока не завершатся потоки. Твоя прога либо после него, в случае синхронного стиля, а если асинк, то там как хочешь крути, запихнув то, что я выше скинул в отдельную рутину.
430 2232239
>>32220
Потому что это не зумерское говно, а инструмент для серьезной работы.
431 2232244
бля я забыл как на пистоне прогать. мне нужно посчитать в словаре и я пишу
d[key] = (d[key] if key in d else 0) + 1
Как это нормально сделать? Почему defaultdict deprecated? suuuuka
432 2232246
>>32244
Ты забыл про существование гугла.
d[key] = d.get(key, 0) + 1
433 2232249
>>32246
лолточно
спасибо
434 2232278
>>32244
if key in dict:
----d[key] += 1
else:
----d[key] = 1
435 2232279
Такой вопрос, видимо, нубский. Нужно сделать программку на N-форм - Питон, Ткинтер. Вопрос в следующем - можно ли как-то сделать "шаблон", в который затем для формочки докидывать компоненты?
436 2232280

>программку на N-форм


Шо?
437 2232282
>>32280
Нишо, бля. MDI-шка на Ткинтере, блять
438 2232283
>>32282
Нахуя ты пишешь это на ткинтере? Бери pyqt и кайфуй. У ткинтеры беды со сложным функционалом
439 2232284
>>32283
Я знаю, что на Qt проще пилить, но дело в том, что это типа курсач. А там хер знает, к кому он попадёт и додумаются ли там подготовить Qt.
440 2232317
Есть очередь asyncio.Queue как из нее вытащить сразу все элементы которые в ней есть (а если нет ничего то "заснуть" и ждать их появления"?
Снимок.JPG43 Кб, 537x520
441 2232465
Написал я этот сортировщик по книжке "Грокаем алгоритмы". И не работает нихуя. Он должен список этот снизу отсортировать от меньшего к большему. Но вместо этого просто выдаёт "[2]".
Что тут не так?
442 2232474
>>32465
Пиздец, а базовый синтаксис питона изучить предварительно не хочешь?
Но ладно, я так и быть помогу. В selectionSort на последнюю строчку посмотри внимательно. И блять сделай названия функций и переменных нормальные, а не камэлкейс ебаный
443 2232478
>>32465
У тебя return в цикле.
444 2232479
https://ideone.com/SJBKgL

Аналог setInterval из жс. Норм будут ебашить? Какие подводные?
445 2232482
>>32479
Что это и для чего? Выглядит как какая-то хуйня и велосипед
446 2232486
>>32482
Запускать задачу каждый час чтоб она подчищала таблицу в БД
447 2232489
>>32486
Крон для слабаков? Или там appscheduler, celery, прочие говны?
448 2232493
>>32489
Там малюсенький сервис, прикручивать celery видится как оверкилл
449 2232495
>>32486

> Запускать задачу каждый час чтоб она подчищала таблицу в БД


Ну так и пишешь
def chistim_vilkoy(timeout):
----while True:
--------await asyncio.sleep(timeout)
--------await chistim_bd()
зачем это накостыливание какой-то безумной пародии на декоратор?
450 2232496
>>32495
async def конечно же
image.png223 Кб, 1928x754
451 2232505
Есть тут мастаки фастапи? В роутах сделал обработку запросов подобным образом - логика лежит в сторонних процедурах, в роуте мы ловим эксепшны и в зависимости от них возвращаем ответ. Но не покидает чувство что я накидал говна/бойлерплейта, как это лучше замутить?
452 2232512
>>32505
У тебя все респонзы отличаются только полем reason. Запихни reason внутрь эксепшена, все 400 эксепшены отнаследуй от 1 класса там типа My400Exception и потом сделай так
except My400Exception as e:
----return JSONResponse(status_code=400, content={'reason': e.reason})
изображение2021-12-08165155.png3 Кб, 590x230
453 2232552
>>24725 (OP)
Помогите вкатуну! в ньюфаг-треде глушняк пока и постоянный вайп от зеленых пидоров

Вроде тут где-то ссыль была на сайт с уроками для ньюфагов, где буквально первым же заданием было что-то вроде "введите в окошке print 'hello world' и поздравляем с первым вашим кодом".
454 2232609
>>32505
Если у тебя except возвращает 200 код, то ты явно где то говна накидал.
455 2232615
Не совсем по питону.
Подскажите как в редисе сделать сообщение статуса pending?
Я хочу написать обработчик зависших сообщений, но хз как повесить сообщение
456 2232667
>>32552

> Вроде тут где-то ссыль была на сайт с уроками для ньюфагов, где буквально первым же заданием было что-то вроде "введите в окошке print 'hello world' и поздравляем с первым вашим кодом".


Ну это буквально любая ссыль на сайт с уроками по питону
457 2232683
>>32667
Ну нет, анонче. То, что ищу, как будто в шапке треда какого было. Типа давайте учиться с нуля вместе, вот для начала мы подготовили вам уроки. Там не факт, кстати, что питон был, может просто программирование для вкатунов.

Почему не сохранил - думал потом воспользуюсь, "куда из шапки денется", ведь народом Двача создано и размещено.
458 2232685
>>32683
Это ты про уроки опа пхп треде наверно.
459 2232696
>>32244
а можно через вложение инициализировать, если ключи известны заранее, я с defaultdict так наебался, там если что-то со статистикой мутишь тебе в любом случае понадобится полностью все хранить в памяти, laziness нахуй идет

https://pastebin.com/SpEEEgui
460 2232702
Шо почитать по Питону для продвинутых? Чтобы не объясняли 100-ый раз что такое tuple и чем отличается от list, а прям сразу про ООП загоняли. классные модули и про match ченить такое. Ненавижу Лутца, полный пиздец, с таким успехом можно С идти учить.
461 2232729
>>32283
>>32284
Так, ладно, суть не в этом, да и разобрался я, как запилить эти формы. Точнее, сделать не MDI, а вкладочками. Теперь вопрос в следующем - можно ли как-то вывод таблиц более... оптимизировать или для каждой таблицы придётся писать отдельно?
sage 462 2232744
>>32683
Кстати, мб рил уроки из пхп треда. Но вообще нахуй оно нужно, любой гайд про основы синтаксиса это плюс-минус одно и тоже. Пока до работы с фреймворками не дойдешь, то изи будет в любом случае, а дальше в любом случае жопа
>>32729
А что за "таблица"? Так как я не ебу что конкретно ты имеешь ввиду, то могу порекомендовать строителемкоторый паттерн это реализовать
463 2232745
>>32744
>>32683
>>32729
Бля сажа приклеилась
464 2232750
http://pep8.ru/doc/dive-into-python-3/
Хули там нет ничего?
Индусские хакеры блочат русским шлёпам возможность вкатиться?
465 2232756
>>32744
SQLite, которую нужно вывести в таблицу на форме
466 2232763
>>32756
Берешь алхимию, описываешь таблицы классами, потом пишешь функцию, которая запихивает список объектов в таблицу. Делаешь запрос в склайт => получаешь список объектов ОРМ => передаешь их в функцию, которая заполняет данными таблицу => ???
467 2232959
>>32609
Про идемпотентные реквесты слыхал? Про ключ идемпонтентности?
468 2232982
Пацаны, у кого такой же баг проявлялся?
https://github.com/microsoft/pylance-release/issues/1069
Обновил VSCODE и плагин обновил как microsoft рекомендует и F2 (rename symbol) перестал работать. По ссылке пишут что пофиксили, но на самом деле нет.
469 2233041
>>32552
бумп вопросу в адекват-треде

>>32685
>>32744
Спасибо, не, не то.

Сдается мне, что та ссыль на уроки на гитхаб куда-то вела. Уроки на русском, буквально на первой странице чуть не в первых же абзацах и было print hello world.
470 2233057
>>33041
Бери уроки опа (ток начальные) из пхп треда, да делай их на питоне. Основной синтаксис на паре простых задачек прогонишь, заодно гуглить научишься. Дальше только не ходи, на том что он про бек втирает многие пхпшники свернули не туда.
471 2233064
>>32959
Допустим слыхал. И как это оправдывает except?
472 2233067
как реквест через shadowcocks сервер отправить?
474 2233161
>>33067
Что ты там через теневые члены собрался отправлять?
475 2233207
>>33074
Ну то что в яндексе все на костылях я и так знал. Но ты все еще не ответил на вопрос нахуя ты так далаеш? Я конечно вижу что ты уже вступил в секту за асинхронность и против всего плохого, но это уже просто новый уровень.
Я понимаю, об этом не говорят в модных курсах от популярных земерков. Но когда то не так давно за такое били по рукам. Генерировать исключения там где можно обойтись обычным if это хуево для производительности. А судя по имени некоторых твоих исключений это именно твой случай.
476 2233208
>>33207

>Генерировать исключения там где можно обойтись обычным if это хуево для производительности


Насколько? Если исключения вылетают не так часто то это лучше чем if
477 2233224
>>33074
Ты не понял. Нахуя использовать исключения для отдачи валидного ответа? Это тупо не логично, апи при этом может быть как идемпотентным, так и нет, это просто по коду пиздец, давай их вместо ифов юзать вообще, можно же. Хочешь отдать исключение - делай исключение. Хочешь отдать саксес - делай саксес. Хз че тут доносить еще можно и идемпотентность совсем не причем.
478 2233256
>>33208
Насколько?
В десятки/сотни/тысячи раз медленнее. В зависимости от генерируемого исключения.

> Если исключения вылетают не так часто то это лучше чем if


Они у тебя не вылетают. Судя по их названиям ты их сам генеришь. Т.е. вместо того, что бы просто проверить через if что id такой же, ты генерируешь объект исключения, который унаследован от базового и тянет за собой все говно для отладки ошибки. При том, что ошибки как таковой нет.
479 2233577
>>33067

> Shadowcocks


Проиграл
480 2233628
Анон, посоветуй, плёс, что по Docker можно почитать помимо документации?
Книжки какие, статьи?
Спасибо.
481 2233658
Чому питон такой пиздатый?
482 2233667
>>33658
Да не то чтобы.
image.png5 Кб, 635x192
483 2233677
django

{ % load static % }
<!DOCTYPE html>

HTML

<html lang="en">
<head>

<title>Первый шаблон</title>
</head>
<body>
<t1 >Вот что у нас тут: {{P}}</t1>
<p>
{{langs.5}}
</p>
<link href="{ % static 'css/styles.css'% }" rel="stylesheet">
<img src="{ % static 'images/image.jpg' % }">

</body>

</html>

SETTINGS

STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

VIEVS

from django.http import HttpResponse
from firstapp import views
from django.contrib import admin
from django.shortcuts import render
from django.http import
from django.shortcuts import render_to_response
from django.template.context import RequestContext
def index(request):
return HttpResponse("Hello, world!")

def home(request):
langs=[ i
i for i in range(100)]
P="В Бразилии много-много диких обезьян"
data={
"P":P
"langs":langs
}
return render(request,"firstapp/home.html", context=data)

Файлы лежат как надо. Предполагаю, что я не подключил что-то, либо в настройках что-то забыл.
Почему не работает? Что может быть не так?
image.png5 Кб, 635x192
483 2233677
django

{ % load static % }
<!DOCTYPE html>

HTML

<html lang="en">
<head>

<title>Первый шаблон</title>
</head>
<body>
<t1 >Вот что у нас тут: {{P}}</t1>
<p>
{{langs.5}}
</p>
<link href="{ % static 'css/styles.css'% }" rel="stylesheet">
<img src="{ % static 'images/image.jpg' % }">

</body>

</html>

SETTINGS

STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

VIEVS

from django.http import HttpResponse
from firstapp import views
from django.contrib import admin
from django.shortcuts import render
from django.http import
from django.shortcuts import render_to_response
from django.template.context import RequestContext
def index(request):
return HttpResponse("Hello, world!")

def home(request):
langs=[ i
i for i in range(100)]
P="В Бразилии много-много диких обезьян"
data={
"P":P
"langs":langs
}
return render(request,"firstapp/home.html", context=data)

Файлы лежат как надо. Предполагаю, что я не подключил что-то, либо в настройках что-то забыл.
Почему не работает? Что может быть не так?
484 2233683

> Django

485 2233715
>>33677
Через что запускаешь?
486 2233752
>>33677
В urls что?
Безымянный.png62 Кб, 1273x871
487 2233771
Помогите плз, я нихрена не могу понять уже в который раз, как это нужно сделать.
В общем, мне там для одного задания нужно чтобы мой проект можно было типа установить как зависимость, чтоб его можно было импортировать from project import func ну как на картинке в общем. Читал, что для этого нужно что-то написать в инит, но энивей нихера не работает. Что там нужно написать? Как это вообще называется операция, нигде про это нагуглить не могу. Я вот писал в нем по-разному, типа пытался импортировать в инит эту функцию или просто модуль, но всё равно пишет, что нет такого модуля в итоге. Как правильно сделать?
488 2233776
>>33771
Как правильно сделать что?
Из твоего потока сознания нихуя не ясно.
489 2233794
>>33776
Ну чтобы работало то что на пикче в двух словах.
Нужно чтоб я мог из любого модуля импортировать page_loader после его установки. Типа я делаю poetry build, устанавливаю дистрибутив и у меня теперь эта штука как бы установлена как зависимость и вот типа должно работать.
490 2233797
https://habr.com/ru/post/594601/

Джангопетухи обоссаны (снова)
An 491 2233824
Объясните, почему данный код при вызове Third() выдаёт
second,first,third, а не first,second,third?

class First(object):
def __init__(self):
super(First, self).__init__()
print("first")

class Second(object):
def __init__(self):
super(Second, self).__init__()
print("second")

class Third(First, Second):
def __init__(self):
super(Third, self).__init__()
print("third")
493 2233834
>>33797
Написано много, часть даже по делу. Часть просто доебы.
Мог бы потратить энергию затраченную на описанеи проблем на разработку своего фреймворка убийцы джанги. Ну или хотя бы пушануть свои идеи в джангу и причастится к разработке.
По сути очередное нытье.
494 2233835
>>33752
from django.conf.urls import url
from django.contrib import admin
from django.urls import path, include
from firstapp import views

app_name = 'djpoligon'

urlpatterns = [
path('', views.index),
path(r'home.html', views.home),

]
495 2233836
>>33834

>на разработку своего фреймворка убийцы джанги


Уже есть
fastapi
496 2233837
>>33161
Теневой ДОМ, очевидно же.
497 2233840
>>33837
У тебя большой?
498 2233846
>>33824
Присылай код либо в виде картинки, либо в виде ссылки на какой нибудь онлайн компилятор. Что бы можно было видеть структуру.
У тебя все верно выполняется. В соответствии с написанным.
Сперва дергается super(First, self).__init__() потом super(Second, self).__init__()
image.png87 Кб, 1797x609
499 2233873
Пацаны, приделал подобный способ связи с БД postgres из sqlalchemy.

В коде приложения буду импортировать функцию get_db_connection и через контекстный менеджер async with буду дергать коннекшн к базе. Вроде ниче, но я 1 раз создаю engine для связи с БД, это норм? Или все же его надо создавать на каждый коннекшн а потом дропать?
Noob question 500 2233878
А тут ведь можно прям совсем тупые вопросы задавать, да?
Я на середине книги Byte of Python и дошел до модулей.
Столкнулся с проблемой при импортировании модуля:
1) написал маленький модуль, который вычисляет квадрат переменной "х".
2) Далее попробовал написать модуль, который вычислял бы сумму квадратов х и у, используя формулу квадрата из предыдущего модуля.
При попытке запустить второй модуль вылезает сообщение, что square не определена, хотя я ж её импортировал из предыдущего модуля вроде бы...
Другими словами, как в текущем модуле использовать функцию, определенную в предыдущем модуле?
Понимаю, что это наверное оч легко, но у меня опыт програмирования нулевой.
501 2233886
>>33878
Ну у тебя ж регистр разный на 2м пике, ну ебана
Причем ставлю анус что у тебя вылезает не ImportError а NameError, что как бы намекает. Читай ошибки
502 2233889
>>33878
from Squre import square
image.png20 Кб, 1725x141
503 2233890
>>33878
Юзай относительные импорты через точку в начале, почитай про них, там надо не усраться с parent package, внутри своего проекта импортить твои модули желательно только так

И пиши в пуйчарме что ли. Иде много где поможет, ворнинги подсветит и через ctrl+ЛКМ переведет к объявлению переменной
504 2233898
>>33831
Ну чет я не увидел там про это. Но вроде заработало. Я импортировал функцию из модуля в ините.
505 2233991
>>33824
Шёл бы ты мимо со воим копрокодом.
506 2234026
Всём привет, у меня такая хрень, с помощью данной функции

for x in raspisanie:
for y in x:
print(y,end = " ")
print()
Нужно вывести двумерный массив, то есть сейчас он мне выводит
Предмет о о о о о
Предмет1 о о о о о
А мне надо так:
Предмет Предмет1
о о
о о
о о
о о
о о
Как мне это сделать?
507 2234037
>>34026
Не очень понял, но наверное надо не end=" ", а sep=" "
image.png23 Кб, 1280x712
508 2234044
>>34037
ну почти, мне надо чтобы в виде матрицы как раз, типо тут так:
русский
о
о
литра
о
о
и тп, мне надо чтобы на одном уровне
image.png23 Кб, 1280x712
509 2234049
>>34037
ну почти, мне надо чтобы в виде матрицы как раз, типо тут так:
русский
о
о
литра
о
о
и тп, мне надо чтобы на одном уровне>>34037
типо предмет который уже есть это первый урок, а "о" это следующие какие-то уроки
510 2234059
>>34049
Ну ты пишешь конечно, с литры капчуешь? Один принт печатает на одну строку, то есть если ты хочешь чтоб у тебя что-то на одном уровне было, нужно это в один принт запихать. Как массив-то выглядит?
511 2234071
>>34059
Который raspisanie?
512 2234075
>>34071
Ну да, а то не очень понимаю, че сделать надо.
513 2234077
>>34059
raspisanie создаётся и заполняется циклами, которые берут значения из других массивов
image.png51 Кб, 1280x750
514 2234100
>>34075
типо вот весь код
515 2234103
>>34075
str="Математика" не играет роли никакой в коде, была использована для проверки работы циклов заполнения
image.png50 Кб, 760x593
516 2234132
>>33752
>>33715
>>33677
Вот данные отладки. Похоже, по какой-то причине кодировка путя слетает.
517 2234141
>>34100
Ой блин, нихера не всасываю. Ну ты хоть проверил, расписание норм составляется? Типа print(raspisanie) перед распечаткой выглядит норм?
518 2234144
>>34075
>>34141
Ну дак я сразу же скрин кинул что выводит, только я sep обратно на end поменял как было
519 2234146
>>34144
Ну так сам массив как выглядит? Че выведет print(raspisanie)
image.png8 Кб, 562x248
520 2234148
image.png7 Кб, 1280x109
521 2234151
>>34146
если именно print(raspisanie), то вот
школьникиебаные.PNG54 Кб, 1433x742
522 2234160
>>34148
>>34151
школьники, съебали с борды, вы тут запрещены
523 2234167
>>34151
Во, теперь видно.
Напиши
for i in zip(*raspisanie):
print(i)

Че будет?)
524 2234170
>>34167
в каком месте программы?
525 2234174
>>34170
Ну вместо твоей распечатки.
image.png9 Кб, 1280x163
526 2234179
>>34167
ну больше похоже на правду, спасибо
527 2234182
>>34174
Но всё равно не совсем то, мне кажется
528 2234207
>>34182
Ну тут уж хз, можешь ещё одним циклом пройтись по каждому i и там напечатать каждый элемент с end = " " чтоб было без скобочек и запятых, но в общем хз как чтоб прям не криво было в консоли. Думаю это сложно обычными средствами сделать.
529 2234226
>>34132
Бля. Ты как это запускаешь? У тебя там что? гуникорн или рунсервер?
Опиши все что сделал и как. 400 ошибка может говорить о том. что ты пытаешься в прод, но не установил разрешенные хосты.
530 2234234
>>34026
https://ideone.com/bqrTEY

Ну и хуйнёй ты маешься, конечно
531 2234236
>>34234
ну задние такое у меня, программа, которая составит школьное расписание
532 2234240
>>34236
Тебе скорее всего нужно использовать словарь типа {'Матеша': (0,0,0,0)} Так было бы удобнее
533 2234241
>>34240
возможно
534 2234279
>>34207
а как циклами убрать это можно?
535 2234285
>>34279
print(' '.join(map(str, arr)))
536 2234303
>>34279
Ну сейчас у тебя в каждом i кортеж (массив) из строчки, которая должна быть напечатана, можно пройтись ещё по каждому элементу в i и напечатать его.
Ну или просто вместо print(i) написать print(" ".join(i)). Не очень понял зачем map у чела выше.
537 2234315
>>34303

> Не очень понял зачем map у чела выше


На всякий, если в кортеже не строки будут
538 2234316
ПЕРЕКАТ мучительный шаблон шапки похоже ВСЁ
>>2234309 (OP)
>>2234309 (OP)
>>2234309 (OP)
>>2234309 (OP)
>>2234309 (OP)
539 2234317
>>34226
Я купил хостинг и закинул все на него. Он огородил возможность запускать из консоли, по какой-то причине. Так что я хз. Как найти ответ на твой вопрос?
540 2236522
>>27816

>cколько нужно девопсов чтобы вкрутить лампочку?


Это аппаратная проблема.
Тред утонул или удален.
Это копия, сохраненная 6 июля 2022 года.

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

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