Двач.hk не отвечает.
Вы видите копию треда, сохраненную позавчера в 10:02.

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

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

Встречаем новый революционный Питон 3.13. Питон встаёт на путь избавления от GIL. Подключают JIT технологии. У нас появляется надежда догнать и перегнать C++. Или хотя бы Rust/Go

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

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

#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
https://github.com/yakimka/python_interview_questions - интересная подборка, масса разнообразных тем и вопросов, для продолжающих, всё на русском

— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.

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

— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать?
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.

— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.

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

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

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

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

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

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущая шапка: https://goonlinetools.com/snapshot/code/#154ln61u1e2e5b4kfv6w8r
1727618394.png93 Кб, 745x709
2 3284686
3 3284698
Питон - язык для написания 100 строковых утилит, не более

/thread
4 3284703
>>284698
А если мелкосервис на 300 строк, то уже нельзя на питухоне?
Вы извращенец.webm3,7 Мб, webm,
1280x720, 0:19
5 3284722
>>284698

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


Держи в курсе.
6 3284852
>>284698
Ты застрял в нулевых, попробуй посмотреть что-то за пределами своего мирка.
image.png1,9 Мб, 1024x1024
7 3284861
Анончик, посоветуешь рес по питону для того кто уже сеньор помидор? Так-то питон очень просто, очевидно. Хочется заглянуть в дебри, без вот этого стандартного "х это переменная"
image.png87 Кб, 270x369
8 3284908
9 3284916
Йоба, тыща страниц.
Спасибо!
10 3285200
>>284703
Разбей на 3 и можно
image.png39 Кб, 1009x242
11 3285317
Аноны, использую алхимию для работы с БД на бэкэнде. В качестве БД - Postgresql (еще стоит прослойка в виде PgBouncer, но она не влияет на скорость).
Через Sentry trace view наблюдаю следующую картину - пик 1.
При каждом запросе к бэку происходит коннект к БД, который отнимает 80% времени. Включал пулер от алхимии, оставлял только ПгБаунсер - нихуя не меняется. В какую сторону смотреть и что гуглить?
Стек: Алхимия 2.0, asyncpg, PostgreSQL 16, python 3.12.
12 3285409
Сап разрабач, кто-то может объяснить нахуя нужен Poetry и актуален ли он вообще в 2024?
Я вот, к примеру, умею создавать окружения через venv. А Poetry, я так понял, больше нужен для создания пакетов под pip, чем для работы с виртуальными окружениями.
То есть зачем мне `pyproject.toml` если есть `requirements.txt`?
13 3285419
Уже 3 года долблюсь в .NET разработке, хочу перекатиться в питонисты, насколько реально сразу в миддла на новый стек попасть и куда лучше? В аналитики или бэкенд разрабы(Чтобы работа была максимально макакской и оставалось время на личные проекты)?

На питоне постоянно пилю что-то для души, да и на текущем месте частенько его для анализа данных юзаю
14 3285436
>>285419
Почему решил перейти?
15 3285477
>>285419
Куда тебе в мидлы сразу на другой язык, ты и на дотнете еще джун.
16 3285510
>>285419

>В аналитики


а ты дохуя математик или кто?
17 3285651
>>284698

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


Правильнее сказать, что питон предназначит только для написания программ. Написанное невозможно читать и изменять, только дополнять.
18 3285755
>>285436
.NET рынок в РФ сдох, конкуренция высокая, вакансий мало, зп низкая, область применения душная, сам ЯП многословный и непрозрачный

Там путь один - красноглазить бэк в коллективе душных скуфов
19 3285756
>>285755
Я скорее всего скоро начну сисярпить в корпорации непосредственного зла. Уже предвкушаю хелло ворлд который полторы секунды запускается.

Че нынче по зп?
20 3285757
>>285477
3 года - коммерческая разработка на последнем месте работы, до этого были стартапы и фриланс
Прогаю я уже лет 8, начинал вообще с Си

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

.NET намного обширнее, чем питон и сопутствующие технологии, причём половина вообще пересекается, не вижу проблемы в том, чтобы переходить на этот стек с понижением грейда
21 3285758
>>285756
.NET быстрее, чем тот же Python, да и бэк на нём вроде даже быстрее гошного

По зп, хз, от грейда зависит, но процентов на 10 ниже, чем на питоне и на 20, чем на джаве, ну, у синьоров-помидоров вроде как и везде

Готовься к куче абстракций ради абстраций и DI-помойки, ну и к охуительному в своей убогости интерфейсу VS, хотя, если есть возможность, то сразу на райдер перекатывайся
22 3285763
>>285758
Та норм, я скомпилил omnisharp и на емаксе его запустил. Полет нормальный удалил все к хуям.

Но dotnet run который тормозит это конечно пушка. С 2017 года ишью висит, и они такие "мы увеличи производительнность! Было 3 секунды, стало 1.3".

Объясните мне в чем прикол DI? Это такой фенси способ сказать что в функции можно передавать параметры?
23 3285766
>>285763
DI - штука, которая реализует IoC, типа, у тебя есть контейнер с гновном, ты в него регаешь всё-подряд, а там он через рефлекшон сам подсовывает зависимости куда надо и собирает тебе обьекты, всё в целом круто, до тех пор, пока туда не приходится лезть, или отлаживаться
24 3285767
>>285766
Ох, тыж ептыть. Что скрывается за IoC я знаю как это расшифровывается?
Алсо, нахуя это все?
25 3285768
>>285510
Ну типа того, хотя, матеша, которую я юзаю, не используется в дефолтной аналитике, я скорее обработкой сигналов занимаюсь

В любом случае, матешу заботать не сложно, даже проще чем сам питон, если бы это потребовалось
26 3285770
>>285767
IoC ваще нужен для солида, типа ты отдаёшь менеджинг зависимостей на уровень выше, т.е. у тебя их регает не класс, который потом их же и юзает, а какой-нибудь чел, который чисто за эти зависимости отвечает перекладывание ответственности, от которого легче не становится, хотя, кто-то говорит, что благодаря этому тестировать код легче, но я хз
27 3285772
>>285770
Любопытно что каждый ответ вводит новый термин.
Солид это SOLID? https://www.youtube.com/watch?v=7YpFGkG-u1w

> типа ты отдаёшь менеджинг зависимостей на уровень выше,


Ну то есть вместо того чтобы дернуть глобальную db.Shit() мы получаем db в виде параметра или как это на практике то выглядит?
28 3285781
>>285772
SOLID - свод принципов для написания читаемого и поддерживаемого кода(на который обычно все забивают болт, а если не забивают, то получается еще хуже)

Ты отчасти прав, на практике это выглядит так:
У нас есть есть класс Shitter, которому для работы нужны ShitFactory и ShitLogger, мы можем создать инстансы этих обьектов в самом классе Shitter, но это нарушит принцип единой ответственности, т.к. какого хера класс Shitter должен создавать логгер, если его задача срать говном?!?!?!
В итоге куда лучше будет сразу передавать инстансы ShitFactory и ShitLogger в конструктор класса Shitter, чтобы он просто юзал их, но не создавал.

И тут возникает вопрос - а кто, собственно должен тогда создавать эти зависимости?! Ну, тут несколько вариантов, этим кем-то может быть класс, который управляет нашим Shitter`ом, какой-нибудь ShitterManager, но если у тебя таких классов дохуя, а их зависимости повторно юзаются, то чтобы всё это говно удобно менеджить можно заюзать DI - контейнер, в который ты просто регаешь ShitFactory, ShitLogger и Shitter и он сам магически поймет, что чтобы собрать Shitter нудны ShitFactory и ShitLogger

Вот вроде норм статья: https://habr.com/ru/companies/ruvds/articles/776768/
29 3285795
Нужно сохранить веб-страницу в пдф (не как картинку, а с текстами и т.д.). Пробовал через pyppetteer, что-то делает, но не идеально. Какие есть годные варианты?
30 3285798
>>285795
Смотря что именно тебе не нравится
Всегда можно заюзать какой-нибудь конвертер типа https://pypi.org/project/pyhtml2pdf/
Но это подойдет только если на странице нет элементов, которые подгружаются динамически, обеспечит неплохую скорость

если на странице защита от ботов, то можно заюзать селениум, накрутив на него всякого говна типа undetected chromedriver

Что именно тебе в pyppetteer не нравится?
31 3285800
>>285798
Не, такие просто конвертеры не канают, надо именно скрин живой страницы из браузера. В паппетире криво получается, хотя я увидел, что он депрекейтнулся и они советуют playwright, пока его ковыряю на пару с гопотой, вроде получше уже.
32 3285853
Помогите разобраться, для чего вообще нужны эти ваши mypy, pyright, и другие статические проверятели типов. Написал я программу без зависимостей, даже без стандартной библиотеки, кроме dataclasses, typing, и collections.abc. Запустил mypy со следующим конфигом, и он дал добро:
strict = true
disallow_any_unimported = true
disallow_any_expr = true
disallow_any_decorated = true
disallow_any_explicit = true
disallow_any_generics = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
disallow_untyped_decorators = true

Теперь мне нужен парсер json. Подтягиваю стандартный модуль json. Перехожу по определению json.load, и вижу, что это вовсе не стандартная библиотека, а какой-то typeshed (сторонний модуль, предоставленный моим IDE). Кроме того, почему-то этот json.load возвращает Any вместо object, и теперь mypy орет, если не обернуть вызов в typing.cast или не указать аннотацию тут же при вызове как : object.

Теперь мне нужно подключиться к PostgreSQL. Поставил asyncpg. У asyncpg нет аннотаций типов. Вместо этого путем проб и ошибок через параметры запуска mypy удалось подтянуть какой-то asyncpg-stubs. В стабе функция create_pool почему-то возвращает Optional[Pool] вместо Pool, что противоречит исходному коду asyncpg, но мой mypy это с удовольствием съел и попросил добавки assert pool is not None.

Зачем это нужно, если подсказок типов нет даже в стандартной библиотеке, а те что есть, могут быть ложными, при этом удовлетворяя статической проверке?
Помню, как много лет назад тот же Pycharm охотнее предсказывал типы и показывал автокомплит имен без аннотаций. С приходом аннотаций все забили хуй на старый питон?
33 3285973
>>285781
Глянь видео в >>285772 если еще не.

В общем получается что единственное чем это отличается от любого другого языка, где ты точно так же просто передаешь параметры (например в гошечке ты можешь в контекст добавить любое свое говно и оно будет доступно везде, куда этот контекст передается), заключается в том, что магическая коробка через рефлекшн выясняет какие нужно параметры передать в метод и подставляет их сама из того что ты там где-то зарегал?
34 3286097
>>285419
правильнее перекатываться в Го, если более-менее с сетями дружишь

зарплаты выше, хрюши готовы отсасывать, работа есть не только в рашостане, а во всём мире. Сам язык может и говно, но люди как-то привыкают.
35 3286098
>>286097
Я тут только что установил себе на прыщи дотнет. Создал hello-world и сделал dotnet run. Полторы секунды. Этот кал просирается полторы секунды. На хелло ворлде. И эти люди что-то о го говорят. Пиздец.
36 3286245
Есть таблица в excel которую загружаю через pandas и у меня такой вопрос, как разбить строки на несколько по условию, например:

маша хлеб,молоко 250
миша мясо,мука 100

нужно чтобы стали

маша хлеб 250
маша молоко 250
миша мясо 100
миша мука 100
пример выдуманный, разделитель в данном случае запятая
image.png8 Кб, 313x193
38 3286333
>>286277
вот так сделал:
data['Продукты'] = data['Продукты'].apply(lambda x: x.split(','))
data = data.explode('Продукты')
39 3286412
>>286245

>pandas


Объясните мне зачем нужен pandas когда есть стандартный модуль sqlite3 ?
40 3286447
>>286412
Панда про датафреймы. Такой себе мини-эксель. А сквиртлайт это модуль для доступа к бд.
41 3286557
pip install PySide6
@
Successfully installed pyside6-6.7.3
@
from PySide6 import...
@
ModuleNotFoundError: No module named 'PySide6'
@
pip install PySide6
@
Requirement already satisfied
@
pip uninstall PySide6
@
pip install PySide6
@
from PySide6 import...
@
ModuleNotFoundError: No module named 'PySide6'
@
Повторить, пока не начнётся бугурт

Причём голый питон эту хуйню видит, а всякие там пайчармы и вскоды, СУКА, ГОВОРЯТ, ЧТО НЕТ НИКАКОЙ БИБЛИОТЕКИ... Что делать, аноны, не подскажите?
42 3286607
>>286557
С дивана
что-то мне кажется что дело в venv ( https://docs.python.org/3/library/venv.html )
Там наверно часть поставилась в локальную venv, особенно если ты не из терминала линуха работал, а из терминала ide.
43 3286715
>>286557
from PySide6 import all
44 3286716
бля, май бед
from PySide6.* import all

>>286715
45 3286718
>>286715
Пробовал всë, и import PySide6, и from PySide6 import *, и вот так...
>>286607
У меня винда. Я ставил через кмд, через кмд в ide, через кмд в другой ide, в итоге проблема решилась, когда я поставил через настройки проекта в pycharm (в vs code всë ещë не пашет)
изображение.png2,3 Мб, 1024x1024
46 3286734
>>286718

Начни код с import pip; pip install
Если и это не поможет, проблема в либе и руках. Если работает - проблема в ИДЕ
16538168828740.jpg286 Кб, 810x1080
47 3286816
Почему ебанный поетри не хочет работать в шиндоус? Какого хуя ебанный пучарм Запрещенное по в российской федерации не видит блядь ебанный PATH для поетри когда я пытаюсь сделать проект сразу с поддержкой поетри. Ну почему все не может просто работать после установки на ебанной блядской одибиленной гукоподложзеной шинде.

Рабочий ноут на линукс минт, а на свой бытовой вторую систему лень ставить
48 3286872
>>285973
Да, всё так.
ХЗ как контекст в гошке работает, наверное что-то типа редакса в JS?
Вообще, скорее всего DI контейнеры - попытка найти баланс между приватностью и гибкостью, в и тоге получился кал
49 3286930
>>286412
у меня тоже была мысль загнать всё в бд и там обрабатывать, но экспортировать постоянно каждый шексель файл такое себе занятие. а pandas позволяет очень круто обрабатывать данные табличные и не надо каждый раз создавать разные базы данных для разнотипных файлов
50 3286970
>>285781
>>285767
>>285770
>>285772
>>285781
>>285973
>>286872
Эти ваши DI-хуяй и IoC-хуи абсолютно ненужное говно. Вместо того, чтобы дрочить свои техники пробрасывания пар (указатель на функцию, данные для функции) через сотни стековых кадров, используйте глобальный статический указатель на структуру со всеми "системами", работающими в вашей программе.
Вы ничего этими Паттернами-Хуяттернами не добиваетесь, абсолютно ничего. В типичном ПО >99% кода очень специфично, его невозможно переиспользовать, даже если обмазать свинью SOLID помадой.
Прекратите тратить свое и чужое время на ерунду.
51 3286988
>>286970

>переиспользование


Что-то как-то ты тухло ДИ понимаешь, на уровне ждуна

>тратить время


В нормальных фреймворках ДИ из коробки бесплатный

>используйте глобальный статический указатель на структуру


Твоя глобальная структура не решит проблему построения графа зависимостей. С ДИ нет разделения на зависимости и реципиенты - все сервисы и есть те самые зависимости и они одинаково в ДИ попадают и одинаково из него достаются через конструкторы.

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


Постоянно переиспользуется инфраструктурный код. Те же репозитории с запросами. Или обертки вокруг чужих либ.
52 3287002
>>286988

>Что-то как-то ты тухло ДИ понимаешь, на уровне ждуна


Какую проблему в программировании решает ДИ, как ты считаешь?

>В нормальных фреймворках ДИ из коробки бесплатный


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

>Твоя глобальная структура не решит проблему построения графа зависимостей.


Выдуманная проблема. Что такое "граф зависимостей", и зачем его строить? Ты пишешь пакетный менеджер для python? Давно пора, потому что pip ужасен.

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


Что такое "инфраструктурный код", и почему для него нужно "строить граф зависимостей" с помощью Объектно-Ориентированного Паттерна Инъекции Зависимостей? Такой же вопрос для "обертками вокруг чужих либ".
53 3287022
>>286872
Контекст это прост обычный объект, который положено первым аргументом передавать вниз по стеку. Обычная конвенция, никакой магии. В нем хранятся всякие таймауты и можно любое говно прицепить.
54 3287029
>>286970
Единственный кейс где вся это еботня необходима кмк, это для тестов.
Впрочем, не ясно что мешает создать этот глобальный контекст для прогона тестов. Разве что если они выполняются многопоточно, тогда это вероятно проблема.

Я предпочитаю прокидывать всякие глобальные сервисы как параметры, просто потому что тогда я вижу что функции нужно в одном месте. Впрочем, в реальности нужно обычно 2-3 сервиса (база, логгер, инфа о сессии), остальное ситуативно.

Я делал и так, и так, и не могу сказать что какой-то метод сильно лучше или хуже.
55 3287043
>>286970
Согласен, все эти "паттерны проектирования" созданы для криворуких одноклеточных макак, типа как методичка как надо программировать, если своего мозга нету. И вот если вы посмотрите где в основном это с изобилием используется как раз таки на макакских языках типа джавы и дотнета, чтобы лоускильные дауны которых заменяют одним днем подбирая первого встречного с улицы, сразу сели за комп и хуячили так же как написано в методичке в такт с остальной командой выдрессированых обезьян.
Они еще потом обмажутся скрамами и будут дрочить в кружке друг на друга.

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

Ну хуле взять, большинство кодеров овцы безмозглые, которым нужна упряжка.
di.jpg236 Кб, 639x1698
56 3287047
Да ДИ решает проблемы которые на начальном этапе отсутствуют. Но напоминаю у нормальных людей ДИ беспланый. Они не изобретают каждый раз велосипед.
57 3287049
>>287043
Т.к. все эти паттерны это фаззи набор присказок, а не конкретное руководство к действию, мне кажется что они создают гораздо больше проблем в описанном кейсе, чем решают.

Любопытно, что в книжке банды четырех кресты были одним из основных языков для описания паттернов.
58 3287051
>>287029

>Единственный кейс где вся это еботня необходима кмк, это для тестов.


Могу сказать, что это действительно помогает в написании тестов со 100% изоляцией всех маленьких индивидуальных кусочков кода, с возможностью простого параллелизма в одном процессе, выполняющем тесты.
Однако, в моей практике это сомнительное занятие, и в большинстве случаев ПО тестируется или целыми изолированными подсистемами, или целиком. В очень редких случаях действительно можно отделить значимый объем кода в независимый "модуль" для которого можно писать отдельные тесты.
Интересный код, который действительно стоит тестирования, как правило взаимодействует со всеми подсистемами, и сами подсистемы между собой взаимодействуют. Писать для этого юнит-тесты с тестовыми дублями - это пустая трата времени. Такие тесты проверяют сами себя, а не конечный продукт.
59 3287053
>>287047
А теперь попроси его написать такой же список, только с аргументацией в обратную сторону. промпт в студию
60 3287059
>>287051
У меня ровно такой же опыт. Я 10 лет в разных проектах, в разных командах пытался внедрить тесты, и везде, каждый раз стоимость внедрения конская, а выхлопа на три копейки.

Юнит тесты хороши только для узкого класса проектов - там где есть четкая связь инпут-аутпут. Типа ЯП и прочих числодробилок.

Интеграционные тесты уже более осмыслены, но опять таки, стоимость их автоматизации часто необоснованно высока.
Щешевле посадить тестеров.
import.jpg221 Кб, 663x1644
61 3287060
62 3287061
>>287049

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


На сколько я помню действие той книжки происходит на примере написания GUI. Я в гуи никогда не работал, но на сколько я знаю, с тех пор многое поменялось там и гуи теперь вообще редко пишут на плюсах. Хотя вот вроде в Qt не особо этого говна напихали, как мне казалось, но там и своего хватает.
63 3287066
>>287060
В общем мнение чатжипити как обычно ничего не стоит.
Читать я это конечно же не буду
64 3287068
>>287061
Угу.
Вообще на фоне imgui, классический retention mode gui это пиздец.
65 3287079
>>287047
Ну давай разберем по частям тобою написанное.
1. Выдуманная проблема. По тестированию - мне ничего не мешает подменить глобальный статический указатель так, чтобы он указывал на тестовый дубль. По конфигурации - мне ничего не мешает написать код, конфигурирующий всю систему, в одном месте (обычно так и делают). Это можно назвать Инициализацией Системы.
2. Смотри 1.
3. Смотри 1.
4. Смотри 1.
5. Выдуманная проблема. Почему следование SRP лучше чем не следование SRP?
6. Если не разбрасывать конфигурацию по кодовой базе, она не будет разбросана. Какое отношение к этому имеет DI или SOLID? Смотри 1.
7. Проблема жизни "объекта" значительно сложнее, чем ложный выбор между singleton/scoped/transient (или аналогичными именами в вашем любимом фреймворке). Не хочу упрощать проблему одним предложением, но в сложных системах "объекты" "живут" группами, обрабатываются группами, и "умирают" группами. DI не решает эту проблему.
8. Это затрагивает проблему так называемых в западной (хуевой) литературе "cross-cutting concerns" (пусть будет "сквозные проблемы"). Культисты (в т.ч. писатели вышеупомянутой литературы) часто утверждают, что сквозные проблемы мешают написанию чистого кода, и вообще в ООП не вписываются; придумывают различные извращенные решения по типу Aspect Oriented Programming и манки-патчей в питоне, чтобы не писать logger.log(message), потому что это не красиво. Они не понимаю, что сквозные проблемы, как правило, это большая часть программы, и в них входит весь код, который действительно делает что-то интересное.
Что такое "keeping the code clean", я думаю, комментировать не нужно.
9. Смотри 5 и 8.
10. Смотри 1.
66 3287083
>>287066
А хули там чиать. Просто если глазами пробежаться, то видно чтл весе аргументы сводится к тому, что нормальный ДИ сложный для имплементации. Но я же не пишу каждый раз ДИ, я беру готовый.

Если писать микросервисы, то проблемы импорта не так очевидны.

Причем здесь противопоставление С++ другим языкам вообще не понятно. Любой фреймворк решает проблему зависимостей. Тот же кьют имеет несколько способов управления зависимостей. В плюсах на проблему зависимостей еще накладывается проблема деалокации зависимостей, поэтому обязательно делегировать эту проблему специфичным паттернам из С++, как викпоинтеры или как в кьюте через передачу указателя на родителя в конструктор кьюобжекта.
67 3287089
>>287083
Я все еще слабо понимаю что это за говно.

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

Как эта хуйня выглядит на практике, покажите мне код уже.
68 3287090
>>287068

>imgui


Кстати да, год назад писал свой path-tracer ради прикола, юзал imgui мне очень понравилось.
Все довольно просто и удобно сделано. Перед тем как его нашел, стал вспоминать эти ужасы GUI программинга на том же Qt или чем-то подобном, аж в дрож бросало, даже хотел сам написать мини гуи для этого который бы просто рендерил кнопочки и ползунки, но нашел imgui и это была прям манна небесная.
69 3287094
>>287089
Да примерно такое делает. Раз мы уж в питоно треде обсуждаем то смотри в fastapi документации есть примеры. У фастаапи минималистичный удобный ДИ, как раз для написания крудов самое то.
70 3287096
>>287090
Я имел ввиду imgui как парадигму, не да, dear imgui очень хвалят.
71 3287100
>>287094
Я просто нихуя не понимаю. "DI сложно реализовать"
Что DI делает? Прокидывает аргумент в метод.
То есть самая простая на свете хуйня - передать аргумент в метод, требует сложной в реализации, основанной на рефлекшне?
72 3287102
>>287100

>Я просто нихуя не понимаю. "DI сложно реализовать"


>Что DI делает? Прокидывает аргумент в метод.


Путаешь DI и DI Container (или IoC Container). DI - передача аргумента в функцию (обычно это конструктор класса в OO языках). DI/IoC Container - автоматическая передача аргумента в функцию. Как, что, и когда создается, и куда передается - настраивается отдельно, как правильно каким-нибудь душным DSL или не дай бог XML файлами, при инициализации программы.
73 3287117
>>286970

>используйте глобальный статический указатель на структуру со всеми "системами", работающими в вашей программе.


Вот только в питоне вместо глобальной статической переменной принято использовать явный аргумент self. Вся программа пишется в одном классе, затем очевидные подсистемы отделяются в отдельные классы.
74 3287125
>>287102
Понапридумывали миллион терминов.

То есть вместо того, чтобы в main() сказать
if YOBA_TEST:
db = TEST_DB
else
db = PROD_DB

я должен теперь xml ковырять?
75 3287382
У меня в джанге есть некая модель A из какой-то библиотеки
Есть моя модель B
Я хочу сделать что если модель A сохраняется, обновляется или удаляется - то это триггерило бы модель B на какую-то операцию, типа если create - я тоже create делаю в B с полем из А и своим значением, ну и так далее. Как это сделать?
image.png2 Кб, 327x67
76 3287486
>>284682 (OP)
Вы знали про такое поведение?
Ебанаты.
vkateesh.jpeg142 Кб, 1048x916
77 3287493
>>287382
Сигналы.
78 3287530
>>287382
Это должно быть реализовано в реляционной базе данных в виде процедуры/функции, или на худой конец в виде триггера, с использованием настоящей ACID транзакции (это значит ISOLATION MODE SERIALIZABLE). Пожалуйста, не делайте это на клиенте (базы данных).
79 3287572
>>284908
Начал читать. Прям то что нужно, сразу в дебри с первой главы. Пока что нравится.

Алсо

> The Art of the Metaobject Protocol (MIT Press) by Gregor Kiczales, Jim des Rivieres,


> and Daniel G. Bobrow explains the concept of a metaobject protocol, of which the


> Python Data Model is one example.



Очень хорошо. Надо будет как-нить дочитать AMOP.
photo2024-09-1904-44-51.jpg75 Кб, 716x475
80 3287576
>>287530
Не душни дед.
81 3287632
>>287486
какое? Если ты думаешь, что | тут как OR работает, то нет. просто все указанные символы убирает

я так понимаю рынок уже реально всё и не вкатиться? какие то переходы из нет в хует обсуждают, девопс вроде, никто тупых вопросов новичков не задает, мою хуйню вначале треда проигнорили
82 3287640
>>287632
А как же постоянное нытье о том что кадров не хватает?
Или это не хватает тех кто может гайки крутить, а вкатунов наоборот навалом?
83 3287861
>>287632

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


Нынче можно задавать вопросы в какой-нибудь ChatGPT, и получать какие-то ответы моментально, даже если ответ незаметно-тонко ложный. Если новички это делают, то готовьтесь к ухудшению качества жизни после того как все неновички уйдут на пенсию.
84 3287901
Любая строка питон-кода может поднять любое случайное исключение. Это приводит к комбинаторному взрыву возможных путей исполнения программы. Есть ли техника обработки исключений, которая позволяет этого избежать? Это особенно актуально при использовании сторонних библиотек.
85 3287917
>>287901

>Есть ли техника обработки исключений,


Есть. Обрабатывать исключения в самом верху или вообще не обрабатывать, если программа дальше не может работать.
86 3287931
>>287917

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


Как отличить исключения, из-за которых программа не может безопасно продолжить работу, от исключений, которые можно логировать и игнорировать? В самом верху контекст потерян.
Если, например, долгоживущий компонент серверной программы испортился и начал кидать исключения, то весь процесс испорчен, и его нужно как можно скорее остановить; при этом большую часть исключений стоило бы действительно логировать и игнорировать, чтобы не прекращать сервис для всех пользователей из-за одного бага, не угрожающего состоянию процесса.
87 3287946
>>287931
Не допускай деления на ноль. Если же поделилось то это фатальная ошибка в коде
Невозможность подключение к БД - дальше работать нельзя
Ресурс не найден в бд - это резонно обработать вверху в специальном обработчике хттп ошибок
Резюмируя. Любая неведомая ебаная хуйня фатальна, Любая дженерик ошибка фатальна. Любое логическое исключение для которого существует специальный класс (твой или из фреймворка) обрабатывается.

Не утверждаю что это абсолютная истина, но так все макакич на языках с исключениями живут
88 3287953
>>287946

>Ресурс не найден в бд - это резонно обработать вверху в специальном обработчике хттп ошибок


Если подразумевается исключение типа ResourceNotFoundInDatabaseError, то это верно только если ты 100% уверен в источнике исключения (то есть не уверен, потому что статический анализ исключений не производится). На "верхнем уровне" это определить невозможно. Та же проблема с питонячими встроенными generic ValueError / TypeError - в стандартной библиотеке полно функций, кидающих такие исключения. Это баг, или у функции такой вот интерфейс? Только хуй знает.

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


>но так все макакич на языках с исключениями живут


Я еще ни разу не видел, чтобы в каком-нибудь веб-сервере не было try...except Exception: logger.exception(...); return 500. Часто даже AssertionError таким образом игнорируется, что абсолютно точно должно моментально убить процесс, и вместо этого возвращается HTTP 500.

На мой взгляд, у каждой функции, в которой что-то может пойти не так, должен быть определен закрытый набор ошибок, который эта функция может поднять/бросить/вернуть. Но я еще ни разу не видел, чтобы в языках с исключениями так кто-то делал.
89 3287956
>>287953
Не понятно зачем тебе статический анализ ошибки если можно в динамике проверить isinstance.

Не найдено в БД это когда тебе надо сделать действия по id юзера, а такого юзера не найдено. Существует общая логика обработки таких ошибок, не надо ее имплементировать по месту возникновения

Под дженерик ошибками я поразумевал общие ошибки системы из за которых она не может работать. Наверно хуево выразился. Но я привел пример - невозможно подключится к БД

Деление на ноль, AttributeError и прочие НЕХ ошибки, обычно питонячии пррограммы падают в таких случаях.

Если у тебя монолитное веб приложение, то естественно тебе падать нелья, только логировать НЕХи. Придется работать пока весь сервак не упадет из-за того что место на диске или память закончатся.

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

>метасостоянии


забыл ка оно правильно называется когда пациент то ли жив то ли мертв
91 3287960
>>287956

>Не понятно зачем тебе статический анализ ошибки если можно в динамике проверить isinstance.


>


>Не найдено в БД это когда тебе надо сделать действия по id юзера, а такого юзера не найдено. Существует общая логика обработки таких ошибок, не надо ее имплементировать по месту возникновения



Я неправильно выразился. Ошибка "юзер не найден" имеет однозначное значение, если она поймана непосредственно при вызове функции "дай юзера с id 7', то есть "локально". У верхнеуровнего обработчика ошибок это выглядит как "функция 'обработай http запрос' вернула ошибку 'юзер не найден'". Почему юзер не найден? Если из-за пользовательского ввода, то это, наверное, код 404. А вот если был нарушен какой-то инвариант системы, то это или ответ 500, или паника. Различить эти случаи на уровне общего обработчика ошибок невозможно, потому что тип исключения - это не достаточная информация, и также важен и контекст исключения.
92 3288536
Почему этот код выдает 500000500000?

a = list(range(1000001))
print(sum(a))
93 3288540
>>288536

>>> (1000000 + 1)*1000000/2


500000500000.0
94 3288605
>>288540

>(1000000 + 1)*1000000/2


Это что?

Команда sum должна выдать сумму чисел от 1 до 1 млн или я что-то путаю?
95 3288628
>>288605
школу прогуливал?

Sn = 1+ 2 + ... + (n - 1) + n
Sn = n + (n-1) + ... + 2 + 1
2Sn = (n + 1) + (n +1) + ... + (n + 1) + (n + 1) = n(n+ 1)
Sn = n(n+ 1)/2
images.jpg5 Кб, 225x225
96 3288764
Здаров мужики! Выбираю язык куда укатиться с другого языка с PHP обосанного. Зачем? Потому что могу. Так вот, как я понял, если я N лет клепал бэк (и немного фронт) разных там сайтиков-магазинчиков на разных хороших и не очень CMS, а заодно вертел сервисы на всяких ларавелях, то мне не составит особого труда перекатится в что-нибудь типа пайтон+джанго+фастапи. По сути, просто на другом языке писать буду. Верно мыслю? Или нужно че-то еще учесть? База по всяким там алгоритам, паттернам ооп и прочей хуйне в башке в наличии.

Если есть что-нибудь почитать на этот счет - скиньте, буду премного благодарен. А то самостоятельный гуглёж выдал выдает какую-то совсем детсадовскую чушь.
97 3288785
>>288764
Бля, ну конечно. Сраный сайт, он везде останется сраным сайтом, на каком языке ты его не делай. Хоть на питоне, хоть на джава, хоть на языке тумба юмба. Всё что относится к сайтам - оно универсально. Общие принципы, базы данных, кеширование, безопасность, масштабирование - одно и то же. Отличия - в деталях, в реализации, в скорости.
he.jpg4 Кб, 225x225
98 3289122
>>288785
Ага, я тут уже документации обожрался большой ложкой, вижу все то что ты говоришь. Джангу в доцкер уже засунул и развернул, пойду МаКеТиК натягивать, а потом на хехеру резюме перевкатуна выложу. Какой же хуйней я страдаю боже мой.
99 3289490
Почему все эти IoC, клин архитекчур, солид и прочая хуйня в проектах на питоне выглядит как что-то несуразное?
Вот смотрю эту репу и искренне не понимаю нахуя.
https://github.com/Tishka17/deseos17/

мимо джун 80 iq
100 3289506
>>288764

>По сути, просто на другом языке писать буду.


Ты будешь писать на питоне так, как писал на PHP. Хотя языки на самом деле разные, в питоне есть масса вещей, которых нет в PHP и которые ты не привык использовать

Дальше ещё конкретные фреймворки, их особенности. Джанго/DRF это в принципе тупик, да и рыночек скромненький
101 3289516
>>289490
Потому что все эти архитектуры придумывают ребята, главная задача которых продавать книжки и курсы, а не шипить продукты.
102 3289518
>>289490
Кроме паттернов-хуяттернов, в этой репе еще и 9000 файлов, каждый не более 100 строк. Так пишут только мудаки. Если так делать в серьезном проекте, кол-во файлов превысит ограничение файловой системы.
103 3290042
>>289490
Так ебашь всё в main.py, только потом не злись, почему код ревью не проходишь.
104 3290070
>>290042
Конечно, если кодревью делают сеньоры-макакены, у которых вместо мозгов паттерны из блогов.
105 3290127
>>289490
>>289516
>>289518
>>290070
Если у тебя в одном файле больше одного класса и двух-трех функций, или в методе больше 20 значимых строк кода, то ты что-то делаешь не так - не понимаешь проблему, которую решаешь; следовательно, не находишь правильные абстракции. У нас за такое сразу гонят с собеседований на хуй, и отвергают код ревью.
Настоятельно рекомендую перед написанием первой строки кода прочитать и перечитать от корки до корки классику программирования - Design Patterns и Clean Code.
106 3290136
>>290127
Кек, жирненький.

Смотри, 20к строчек в одном файле: https://github.com/bzg/org-mode/blob/main/lisp/org.el
Гитхаб еле грузится.
И ничего, отлично работает и куча народа этим пользуется.
107 3290152
>>290136
Ну и как это читать? Как это переиспользовать? Где классы? Где unit-тесты?
Почему так много комментариев? Это анти-паттерн, и запашок кода. Если бы длины функций были менее 20 строк, и имели бы нормальные, понятные названия, то комментарии бы можно было все удалить. Статический анализ комментарии не проверяет; может быть, они уже устарели?
Кроме того, написано это все на игрушечном языке программирования из 1960х. Они бы еще на SQL это написали.
108 3290155
>>290152
Да ну тебя, толстый ты.
109 3290349
>>290042
А между двумя крайностями вообще ничего нет, да?
110 3290407
Я люблю копролиты в одном/паре файлов.
111 3290419
Пизда. Есть. Любители глобалов. Особенно глобальных конфигов. И глобальных сессий к бд. А ещё любители создавать клиентов на каждый запрос.
112 3290427
>>290070
Конечно, ведь новоиспечённые смузихлёбы с list(somedict.keys()) лучше знают, как код писать.
113 3290482
>>290419

>Любители глобалов. Особенно глобальных конфигов.


Что не так?

>И глобальных сессий к бд.


В каком контексте?

>А ещё любители создавать клиентов на каждый запрос.


Что ты подразумеваешь под "клиентом"? Наверное ты говоришь об HTTP. Если ты говоришь о клиенте вида requests.Session, то да, это пиздец. Если же речь о молодежном aiohttp.ClientSession, то это нормально, если каждый новый клиент использует один общий aiohttp.TCPConnector. Но это больше говорит о идиотском дизайне многих популярных библиотек питона, нежели о программисте, который пытается хоть как-то их использовать.
Если ты разрабатываешь хоть сколько-нибудь технически интересный проект, ты не раз будешь удивляться ужасному качеству популярных библиотек. У requests долгое время на веб-странице с документацией было написано, что она thread-safe, например, но мейнтейнеры тихо и со стыдом это убрали после разоблачения.
Когда новый программист изучает и практикует питон, он видит чужой код. Для веб макак это, как правило, Django/Flask/FastAPI параша. Они все устроены "неправильно" - обязательно есть глобальная конфигурация, имплицитное соединение к базе данных, и прочие дикости. Не удивляйся тому, что большинство так делает и продолжит делать долгие годы впереди.
114 3290568
>>290482

>Что не так?


Не надо так делать.

>В каком контексте?


В контексте запроса-ответа. Взял из пула соединение - создай сессию, закрой сессию, верни обратно в пул соединение. Многие это не делают, т.к. не понимают, как это под капотом работает.

>Что ты подразумеваешь под "клиентом"?


Да любой клиент, хоть хттп, хоть грпц, хоть эластиксерч, хоть аэроспайк. Челы в контроллере или интеракторе создают клиент на каждый запрос, ещё и закрывать его иногда забывают, вместо того, что бы всё это делать через di и переиспользовать.
115 3290582
>>290568
В aiohttp создание новой сессии дорогое, они сами пишут в доке что лучше переиспользовать.
116 3290605
>>290427
Что не так с list(somedict.keys())? Я нюфажа.
117 3290660
>>290605
somedict.keys возвращает view object

>The keys() method returns a view object. The view object contains the keys of the dictionary, as a list.


Т.е. там лист на результат в общем не нужен. Можешь сразу применять for in к примеру.

А так пишут скорее всего вчерашние жиесники, наверно из аналогии тех их map map map..
118 3290667
>>290660
А если тебе нужна копия, я а не view? Можно, конечно, написать чуть короче - list(somedict), но разницы во времени выполнения этом игрушечном языке ты не заметишь.
119 3290708
>>290660

> Т.е. там лист на результат в общем не нужен.


В общем какой-то ты хуевый пример привел.
Я бы еще понимаю ты бы показал пример где итератор сначала превращается в список, а потом ты по нему делаешь цикл.
Но в общем случае превращение итератора в контейнер вполне законная и частая операция.
120 3290710
>>290708
Приведи хороший пример.
121 3290719
>>290710
Хороший пример того как смузихлёбы хуево пишут код?
Хз, я с такими не работаю, поэтому без понятия что они там нынче пишут.
122 3290724
>>290719
Мне вспомнился еще баян модемных девяностых, с инетом по карточкам.

Если спросишь на англоязычном форуме - тебе скорее всего дадут верный ответ.
Если спросишь на русскоязычном форуме - тебя всегда пошлют нахуй.
Вывод - учите английский.
123 3290726
>>290724
Берёзы наверное тоже тревожно растут?
124 3290772
>>290724
Покажи мне англоязычный форум, где взрослые профессионалы обсуждают программирование. Не реддит, не форчан - в этих местах большинство состоит из студентов и аутистов-теоретиков, которые настоящим программированием никогда не занимались. Их мнения часто пересекаются с Чат Жэпэтэ, ответами на стак оверфлоу, случайными туториалами, веротяно сгенерированными с чат жэпэтэ, и "классическими" книгами от продавцов змеиномасленного консалтинга по типу Роберта Мартина; дальше мнений обсуждения там почти не заходят.
125 3290810
>>290772
Ну он видимо имел ввиду форумы из 90ых же.
Скорее всего там и правда были вполне внятные разговоры.
Впрочем, думаю что русских форумов на тот момент было очень мало (какой-нить может ЛОР), не в последнюю очередь потому что люди которые тогда пользовались интернетом наверняка либо знали английский, либо были пиздюками которые про кодинг ничего не знали.
126 3290836
Анончики, помогите советом мудрым!
Есть цикл, который печатает от 1 до 1000:
while i < 1000:
i = i + 1
print(i)

Как мне сделать так, чтобы при нажатии на 'q', цикл останавливался, при повторном нажатии продолжался с того же места, где была пауза?
127 3290882
image.png126 Кб, 1071x734
128 3291043
>>290836
Можно примерно так сделать.
129 3291092
>>291043
Правда, нужно бы подумать про вот эти сабмиты на тредпул с генераторами...
Мне код немного подозрительным кажется.
130 3291102
>>291043
Разве инпут не блокируется пока ты что-то не введешь и не нажмешь энтер?
131 3291105
>>290836
>>291043
>>291092
>>291102
Попробуй стандартный модуль curses с включенным nodelay.
132 3291106
>>291092
Не будет ли утечек? Это имею в виду.

>>291102
Цикл блокируется инпутом, да.
image.png1 Мб, 1920x1080
133 3291111
>>291106
Думаешь вопрошающий хотел это, а не чтобы q моментально останавливало цикл?

>>291105
Опа, любопытно.
134 3291114
>>291111

>Думаешь вопрошающий хотел это, а не чтобы q моментально останавливало цикл?



на 100% соответствие заданному

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

135 3291122
>>291114
А, при нажатии, а не вводе. Ладно...
136 3291144
>>291105
Не, эт чет залупа. Если только, там нет режима "не надо мне окон создавать".
137 3291172
Так и что в итоге, нужно мне для моей микроапишки на фастапи городить слои абстракции для чистоты архитектуры и солида? Без них меня обоссут и скажут, что я ничего не понимаю в программировании? Или и так сойдёт? Я просто только постигаю азы бэкенда и пока не очень шарю.

>>290568

>В контексте запроса-ответа. Взял из пула соединение - создай сессию, закрой сессию, верни обратно в пул соединение. Многие это не делают, т.к. не понимают, как это под капотом работает.


То есть если я просто, как везде советуют, инъектирую для эндпоинта зависимость session = Depends(get_db) для получения сессии, это неправильно?
138 3291182
>>291172

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


Это дрочево для дебилов. Сделай один dataclass со всеми зависимостями и пробрасывай его во все ендпоинт-обработчики любым удобным способом. functools.partial, например.

>То есть если я просто, как везде советуют, инъектирую для эндпоинта зависимость session = Depends(get_db) для получения сессии, это неправильно?


Завит от определения get_db. Если оно возвращает коннешен пул, то правильно. Если оно возвращает соединение из пула, то это неправильно, потому что ты будешь держать соединение дольше чем нужно, уменьшая пропускную способность.
139 3291185
>>291172
Если у тебя есть время, советую написать свой фреймворк разок другой.
Начни с пустого файла и добавляй нужные фичи по одной.
Запусти http сервер и отдай строку на запрос.
Потом научись вызывать различные функции в зависимости от урла в запросе.
Теперь добавь в микс базу. Возьми какой-нить sqlite3 и разберись как тебе удобней прокидывать соединение в обработчики запросов, как удобней мапить то что тебе выдает база в то, что ты хочешь отдать из эндпоинта.

Сделай туду-апп с регой юзеров, например.

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

После этого у тебя будет гораздо больше понимания почему фреймворки делают то что делают, и какие компромисы они зашили ради "удобства".
140 3291227
>>291185

>Потом научись вызывать различные функции в зависимости от урла в запросе.


Никогда не понимал этого. Почему все веб фреймворки так делают? Вот хочу я добавить аутентификацию, но только для ограниченного набора урлов, и логирование метрик для другого набора урлов, и прочее. Фреймворк требует от меня колобек на каждый урл-паттерн. Теперь мне нужно трахаться с классами или функциями высшего порядка, чтобы реализовать это без большого кол-ва бойлерплейта. Если бы фреймворк просто вернул мне значение енума, я бы сделал одну функцию с предобработкой, свитчем, и постобработкой, как нормальный человек.
Вот werkzeug.routing.Map делает это правильно, но это WSGI, к сожалению.
141 3291238
>>291227
Обычно ты просто заворачиваешь свой хэндл в мидлвейр:
"/pizda": WithAuth(Liznul)

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

Я поэтому и рекомендую сделать велосипед, чтобы понять что тебе нравится больше.
142 3291247
>>291238

>Обычно ты просто заворачиваешь свой хэндл в мидлвейр:


Понятно, что можно это обернуть в функцию высшего порядка, но это не самое простое решение проблемы. К тому же, все эти мидделвейры, как правило, приводят к пробрасыванию данных через какой-нибудь "контекст" или "environ", и твои хэндлеры начинают имплицитно зависеть от мидделвейра.
Вот самое простое решение, о котором все почему-то забыли:
endpoint = match(request, router)
if endpoint in [Endpoint.PIZDA, Endpoint.Zhopa]: user = authenticate(request)
if endpoint == Endpoint.Pizda: ...
elif endpoint == Endpoint.Zhopa: ...
elif endpoint == Endpoint.Hui: ...
else: return 404

Хочется диспатч по дикту функций? Сделай дикт Endpoint -> Callable, не проблема. Но чтобы вернуться от диспатча в обратную сторону к if-elif-свичу, нужно сделать дополнительную хуйню. Усложнение на ровном месте, просто так. Это Pythonic?
143 3291364
>>291043
как-то грязновато, имхо

По классике через треды если делать, надо нормальным образом стартовать тред, сделать Event и передать его в тред
evt = threading.Event()
thread = threading.Thread(target=f, args=[evt,], daemon=True)
thread.start()
а треде при этом проверяешь, что Event не присвоен, а в основном соответственно выставляешь
144 3291365
Судя по всему питон бьет по рукам за использование лямбд.
Другое дело если я сделаю ебучий функтор.

Я питон не знаю особо, но вот, настрогал:
https://ideone.com/YWgfpE
145 3291407
>>291182

>Завит от определения get_db. Если оно возвращает коннешен пул, то правильно. Если оно возвращает соединение из пула, то это неправильно, потому что ты будешь держать соединение дольше чем нужно, уменьшая пропускную способность.


Оно возвращает сессию алхимии, которая, если я правильно понимаю, сама берет на себя управление пулом через engine. Как-то так:
https://ideone.com/y7geaX
Когда делал без алхимии через чистые SQL-запросы - без пула просто в каждом обработчике маршрута создавал соединение и закрывал его. Это наверное точно хуевый вариант.

>>291185
Спасибо за годный совет. Начинал что-то подобное делать, когда читал Конкурентное программирование Фаулера, но не хватило скилла.
146 3291551
Объясните как ребенку разницу между asyncio и threading в контексте типичного веб-сервера с БД и мемкэшом/редиской. Вот мое понимание:
Преимущества asyncio:
- можно отменять IO;
- меньше ебли с синхронизацией;
- легко запустить что-то вместе с веб-сервером в том же процессе, например, очередь и обработчиков бэкграунд тасок.
Недостатки asyncio:
- новый синтаксис async/await, заражающий программу;
- сырое говно или просто ничего вместо библиотек.
147 3291615
>>284682 (OP)

>Питон встаёт на путь избавления от GIL


Только встает, а будет когда?
Это типа лозунг? Даешь свободу от гил в пять версий!
148 3291651
>>291615
Поднимется (уже поднялся) вой макак, мейнтейнящих популярные библиотеки. Дескать, пользователи будут ныть и спрашивать, а не non-gil ли библиотека, а если нет, то когда будет???
Очень много мультипоточного и нетворкинг кода написано с неопределенным поведением CPython и GIL. Для нас, рядовых пользователей, gil-free библиотеки будут доступны лет через 5-10 в лучшем случае.
149 3291703
>>291651
Ооо питонисты опять себе придумали болезненную миграцию как с 2 в 3 версии.
150 3291754
>>291703
Это хуже. Теперь необходимо поддерживать 4 версии модуля - все комбинации (sync, async) x (gif, non-gil).
При этом отключение GIL остается опциональным, как подсказки типов и их статический анализ.
Язык раздут никому не нужной хуитой до неузнаваемости, почти как C++. Уход Гвидо можно понять - он не способен защищать решения PSF.
151 3291773
>>291651
>>291754
Понятно, спасибо за подводные.
152 3291892
>>291551
корутины легче тредов
153 3292146
>>291551

> сырое говно


async/await вообще уже старая технология
в версии 3.5 появилась, а сейчас уже 3.13 выкатили

там главный плюс в работе с сетью, другой механизм используется, select/epoll, который позволяет переключаться на ту задачу, куда пришли данные. Это намного эффективнее, чем у тредов, когда у тебя сетевых соединений много
1728326630939.jpg236 Кб, 1200x1052
154 3292157
На пистоне ждуну сейчас вообще реально найти работу? Учил пару лет назад, обосрался с пары отказов и убежал в слезах. А вообще другую работу нашел в саппорте.
Стикер319 Кб, 512x512
155 3292162
>>285781

>SOLID - свод принципов


>можно заюзать DI - контейнер, в который ты просто


Бля, а можно просто наговнякать синглтон класс, назвать его КОНФИГ и дергать где нужно.
156 3292166
>>292162

>можно просто наговнякать синглтон класс


Это для Java. В Python можно просто наговнякать имена на уровне модуля, отдельный класс не нужен.
А еще лучше написать всю программу в одном классе, в self класть все "глобальное". Зачем? Чтобы не писать всюду "global" стейтменты.
157 3292239
>>292162

>Бля, а можно просто наговнякать синглтон класс, назвать его КОНФИГ и дергать где нужно.


А минусы какие?
158 3292366
>>284682 (OP)

> Питон встаёт на путь избавления от GIL. Подключают JIT технологии.


Опыт Mojo говорит, что нихуя не получится. Динамикодриснёвость ограничивает максимальный перформанс.
159 3292372
>>292239
Макаки смузихлебы скажут что ты пишешь плохо.
160 3292716
Блок if...elif...else - это анти-паттерн? Паттерн Стратегию в питоне применяют?
Когда в блоке try...except больше одного except, это анти-паттерн? Правильнее ли ловить Exception или BaseException, и обрабатывать по Паттерну Стратегии?
Как произвести инъекцию зависимости-стратегии в блок try...except?
1728397711.png36 Кб, 657x248
161 3292742
Вот как мне этот текст получить в интерактивном питоне в виде переменной, чтобы дальше там хуйню делать? Везде пишут, что питон охуеть удобный интерактивный шелл, но это блять невозможно, как не пробовал 'grep .. | python', 'grep .. | python -ic' все равно питон пытается прочитать этот текст как скрипт и очевидно обсирается. я просто хочу сделать sys.stdin.read()
162 3292773
>>292742
with os.popen("ls") as stream: q = stream.read().split("\n")
163 3292874
>>292773
ты не выкупаешь, как мне отправить этот текст в stdin интерактивного питухана, чтобы он не обосрался?
2024-10-08-1850021123x270scrot.png24 Кб, 1123x270
164 3292892
>>292874
Не выкупаю что тебе нужно.
Вот я в интерактивном питухане запустил шел команду и получил ее выхлоп в переменную.

Если это не то, что тебе нужно, попробуй объяснить еще раз.
165 3293153
>>292892

>я в интерактивном питухане запустил шел команду


а я хочу в шелле запустить команду и пайпануть её в интерактивный питон. но видимо так не получится. твой вариант нормальный и работает.
166 3293790
Понадобилось накидать простой скрипт на питоне. Я слышал, что у вас есть глобальный лок и всегда работает только 1 поток. Значит ли это, что я не могу запуситть 10 тредов которые считывают огромный поток данных с файлов (или сокетов), потому что эти треды будут ждать друг друга?
167 3293883
>>293790
Можешь запустить без проблем.
Насколько это будет медленее, чем на другом языке - нужно тестировать.

Так же, в последней версии Питона теперь можно отключить это потоковое ограничение.
168 3293971
Че навернуть? Кроме говна. Сделал одну книжку от корки до корки, нихуя не понял, кроме того что хироку в рф недоступен и пришлось это всё на питонэнивере делать. Есть мб что-то структурированное, уровня как какать(писать), мб курс какой, я хуй знает. Если что прочитал Eric Matthes - Python Crash Course. Хочу ещё не знаю чего.
169 3293997
>>293971
Сделай уже что нибудь
170 3294031
>>293971
Научись писать программы на C и забудь про питон и затем интероп питон-C.
171 3294242
>>293971
Какая цель то?
172 3294443
>>293997
Че сделать? Легендарный калькулатор надеюсь. Я просто без шуток не понимаю, как можно что то своё высрать, потому что все эти проекты по книжке какой то кринж, ну сделал и сделал - хуйня какая то.
>>294242
Не знаю, работу найти наверное, пока просто щупаю материал, не понимаю надо оно мне или нет, вроде сидеть чет пердеть не западло, просто общее не понимание как и в любой другой области когда вкатываешься. Поэтому и прошу какой нибудь ещё материал навернуть.
173 3294813
>>294443
Какую работу? Веб-макакой?
174 3295483
>>294443

>Че сделать? Легендарный калькулатор


Платина и вечный вопрос барист-вкатунов, жертв курсов и прочих ванаби 300кк в наносекунду. Если тебе ничего не хочется погромировать, писать всякую хуйню для себя в стол, нет каких-то повседневных задачь, которые ты бы хотел решить с помощью своих новых скиллов, или если тебе не хочется просто погружаться в науку, в дебри байтоебства, то может это и не для тебя, ты ведь получается изначально сюда полез потому что на пикабу прочитал, что в айти можно миллиард за месяц заработать.
175 3295539
>>290042
Ну я разделил проект на дюжину модулей. Каждый из которых начинается портянкой импорта толпы функций из друг друга. Так и не понял чем это лучше одного main.py
176 3295545
>>295539
Только если у тебя в каждом модуле есть приватные штуки которые не экспортируются никуда. Так общая площадь все таки чуть меньше.
177 3295564
Накидал скрипт который должен был запускаться периодически и измерять скорость. https://pastebin.com/mDd1C8Lz
Но он почему то во время измерения тупо грузит на фул проц и не пишет ничего в файл по итогу. Почему?
178 3295633
>>295564
У питонистов не принята практика использования дебаггера?
179 3295698
>>295633
программа не останавливается под дебагером почему то.
180 3295737
>>295698
Попробуй перезагрузить компьютер.
181 3295750
>>295483

>нет каких-то повседневных задач


Тут кстати виндусятники соснулей. Потому что под линухом можно делать себе консольные утилиты, даже если работаешь не напрямую прогером, а просто под свои рабочие задачи или если возможности гуя не нравятся. А вот смд пососная хуета вместо консольки.
182 3295762
>>295750
Ну так есть tk на котором можно КНОПКУ сделать.
183 3295767
>>295762
сделал кнопку
@
всю логику разместил в обработчике онклик
184 3295768
>>295767
Збс же. Чем не скрипт.
185 3295769
>>294443
Сделай то чем будешь пользоваться, то что автоматизирует какие то вещи. Может веб хуйню, парсер там новостей или рейтинга в доте, календарь, не ебу.
Screenshot20241011-224459Drive.jpg78 Кб, 720x960
186 3295818
Помогите дегенерату, а то меня отчислят нахуй
187 3295853
>>295818
чатгпт попроси
188 3295894
>>295818
Вот на, держи. Программа спрашивает какую фигуру надо и какого размера:
```
print('please type the type of figure (0,1,2)')
type_of_figure=int(input())
print('please enter the size of figure')
a = int(input())
0
if type_of_figure == 0:
for i in range (a):
print(''a)

elif type_of_figure == 1:
for i in range (a):
print(''(i+1), end='')
print(' '(a-i-1))

elif type_of_figure == 2:
for i in range (a):
print(' '
(a-i-1), end='')
print(''(i+1))

else:
print('No such figure')
```
Теперь рассказывай как ты докатился до такой жизни?

Мне проиграммирование стало интересно только в 30 лет. Спасибо университету, с ебучим С++ с хуевым преподом и школе с паскалем и тоже неважнецким преподом. Отблили у меня желание прогать на 12 лет. Ну уж питончик, уж такие то задачи, тебе разве самому не интересно? Я когда такое по питону изучал, кайфовал.

И кстати этот>>295853 прав, нейросетки такое на изи пишут.
188 3295894
>>295818
Вот на, держи. Программа спрашивает какую фигуру надо и какого размера:
```
print('please type the type of figure (0,1,2)')
type_of_figure=int(input())
print('please enter the size of figure')
a = int(input())
0
if type_of_figure == 0:
for i in range (a):
print(''a)

elif type_of_figure == 1:
for i in range (a):
print(''(i+1), end='')
print(' '(a-i-1))

elif type_of_figure == 2:
for i in range (a):
print(' '
(a-i-1), end='')
print(''(i+1))

else:
print('No such figure')
```
Теперь рассказывай как ты докатился до такой жизни?

Мне проиграммирование стало интересно только в 30 лет. Спасибо университету, с ебучим С++ с хуевым преподом и школе с паскалем и тоже неважнецким преподом. Отблили у меня желание прогать на 12 лет. Ну уж питончик, уж такие то задачи, тебе разве самому не интересно? Я когда такое по питону изучал, кайфовал.

И кстати этот>>295853 прав, нейросетки такое на изи пишут.
image.png30 Кб, 495x447
189 3295895
>>295818
>>295894
0 - опечатка и отступы сделай как тут
190 3296032
>>295633
>>295698
Ты точки остановки то поставил?
191 3296054
>>284682 (OP)
Чёт посмотрел на typing, блядь, какой же питон - ссанина убогая.
192 3296056
>>296054
Че с ним не так? И что это вообще.
193 3296058
>>296056
Аннотации типов, сделано пиздец сложно и убого.
194 3296059
>>296058
По сравнению с чем?
195 3296062
>>296059
По сравнению с хуем твоей мамки.
196 3296072
>>296062
Обрати внимания на эту боль. Она вызвана тем, что у тебя есть ощущение "сложно и убого", но рационально объяснить чем оно вызвано ты не можешь. Часто, это показатель того что ты не понимаешь о чем говоришь.
197 3296075
>>296072
Скорее ты не понимаешь, потому что сразу высираешь про "сравнение с чем". Говно оно говно, не потому что говно относительно чего-то.

>уиии боль


Детектор дегенерата.
198 3296089
>>296075
Не волнуйся, ты повзрослеешь и успокоишься.
199 3296290
Посоветуйте плиз топ ресурс для обучения питону и программированию с нуля.
200 3296306
>>296290
Если хочешь топ - то НЕ начинай обучение программирования с питона. Почитай K&R ANSI C, забудь про книги/туториалы/ресурсы, и сделай что-нибудь интересное.
изображение.png1,1 Мб, 748x934
201 3296406
Что представляет собой класс и его методы на на уровне памяти? Как питон организует вызовы функций в классе?
202 3296449
203 3296596
>>296032
ставил, ставил. На надо думать, что я тупой. Сам попробуй понять где программа виснет
204 3296757
>>296596

>ставил, ставил. На надо думать, что я тупой. Сам попробуй понять где программа виснет


Кнопки Step Over / Step Into или аналог в дебаггере пробовал нажимать?
205 3296852
Суп, прогроммисты. Сам ни разу не из ваших, но понадобилось сделать кое-что на питоне.
Есть простая табличка в файле .html https://pastebin.com/XmHtgnB3
Есть файл .py, в котором происходит некая магия, в конце которой получается несколько списков, в которых хранятся названия товаров, их цена.

Собсна, как мне сформировать итоговую табличку, которая будет выводить товар и его цену?
Другими словами - как мне переменные из файла .py запихнуть в ьабличку файла .html?
206 3296856
>>296852
Немного уточню.
Есть два списка:
tovar = ['moloko', 'hleb', 'yaitsa']
cena = ['100', '50', '150']
Как циклом запихнуть каждое значение в таблицу хтмл, чтобы получилась таблица вида https://pastebin.com/v7CxiqmG
208 3297284
>>296944
Спасибо, но немного не то. Твой код формирует хтмл код, а у меня он уже готовый. Мне надо было именно в код вставить переменные.

Может кому пригодится:
main.py
def index():
return render_template('index.html', joined = zip(getProducts(), getPrices()), checkdata = checkdata, finalprice = finalprice)

joined - объединяем два списка с данными. Получается формата joined = [['1', '2', '3'], ['a', 'b', 'c']]

checkdata, fianlprice - просто переменные с 1 значением

index.html
{%for prod, price in joined%}
<tr>
<th>{{prod}}</th>
<th>{{price}}</th>
</tr>
{%endfor%}

Тут просто перебирание циклом. Переменные вставляются так - {{x}}
209 3298466
Есть какие-то книги или курсы, где хорошо разобраны эксепшены?
То есть не банальный синтаксис и механика, с этим всё понятно, а именно применение на практике в прикладном коде.
210 3298534
>>298466

>а именно применение на практике в прикладном коде.


На практике есть два подхода. Первый - оборачиваешь сколько угодно большие блоки кода в трай-кетч, делаешь что хочешь и как хочешь, скрывая баги. Второй - обрабатываешь исключения практически у каждой строки кода, оборачивая локальные исключения в более уместные типы, например.
Когда поймешь, что только второй подход приводит к корректным программам, то выяснишь, что эксепшены - это хуйня, придуманная конченным идиотом, которую распространили в огромном количестве ЯП просто потому что это модно. Даже в языках со статическим анализом типов мы получаем функции вида (X -> Y | Error), где Error - это ебаный интерфейс за которым может быть все что угодно на хуй. Статический анализ идет в сраку. Это особенно актуально в программах, построенных на нескольких сторонних библиотеках. При обновлении библиотеки компилятор тебе не скажет о том что появился или изменился тип ошибки на строке 666 - узнаешь ты об этом только в рантайме.
211 3298700
>>298534

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



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

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

>трай-кетч


>Когда поймешь


Поражает как баристы-вкатуны кукарекают с умным видом о вещах в которых не разбираются, ещё и учат кого-то.
212 3298713
>>298700
В высокоуровневомм коде буквально каждый вызов функции ассоциирован с множеством ЛОГИЧЕСКИХ ошибок. Вместо блока switch, как в нормальных языках, нужно писать трай эксепт. Ловить логические ошибки в общем обработки исключений нельзя - теряется контекст.
Проблема в том, что ЛОГИЧЕСКИЕ ошибки - это на самом деле часть интерфейса функции, и они должны быть выражены в ее сигнатуре. Вместо этого они пишутся в докстринге. Статический анализ НЕ РАБОТАЕТ с документацией.
Это ПЛОХОЙ ДИЗАЙН языка программирования.
213 3298715
>>298713
Ты пытаешься изобрести throws из жабы или крестов?
Или ты обнюхался раста и хочешь один из 100500 крейтов для заворачивания ошибок?
214 3298718
>>298713
А это ты типизированный нытик, извини не узнал. Зачем продолжаешь мучиться и давить питона? Катись в НОРМАЛЬНЫЕ ЯЗЫКИ, а то вон всё страдаешь.

Алсоу, относись к питухонической конструкции try-except как к условному оператору и попроще будет.
215 3298745
>>298718

>А это ты типизированный нытик, извини не узнал. Зачем продолжаешь мучиться и давить питона? Катись в НОРМАЛЬНЫЕ ЯЗЫКИ, а то вон всё страдаешь.


Ты в курсе, что PSF уже который год подряд пытается засунуть "опциональную" статическую типизацию а-ля тайпскрипт в питона? Проснись, дядя. ВЕСЬ МИР динамически типизированных языков уже давно ПРИНЯЛ ПОРАЖЕНИЕ. Статический анализ типов - это исключительно ХОРОШАЯ ИДЕЯ. Ни одна контора на планете не пишет говноскрипты на питоне в старом стиле без анально-строгого конфига mypy.
>>298715

>Ты пытаешься изобрести throws из жабы или крестов?


>Или ты обнюхался раста и хочешь один из 100500 крейтов для заворачивания ошибок?


throws no throws - это тоже хуйня от дебилов. Плохая идея. Хорошая идея - это когда все функции могут вернуть ОГРАНИЧЕННОЕ и ЯВНОЕ множество типов. Посмотри на программы написанные на Standard ML или Haskell, например.
Почему? Практическая причина номер 1 - обновление зависимостей. С исключениями компилятор / статический анализатор НЕ МОЖЕТ сказать тебе, что программа сломана, потому что одна из транзитивных зависимостей случайно поменяла свой интерфейс, добавив новый тип исключения.
Хорошее программное обеспечение НЕВОЗМОЖНО написать на таком языке программирования, потому что его НЕВОЗМОЖНО формально верифицировать. Программа работает только на твоей слепой вере.
216 3298751
>>298745

> Standard ML или Haskell,


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

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

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

В общем все эти студенческие фантазии о хаскеле и иже с ними для нищих.
Стикер255 Кб, 512x512
217 3298753
>>298713

>В высокоуровневомм коде буквально каждый вызов функции ассоциирован с множеством ЛОГИЧЕСКИХ ошибок.



Какие же питонисты всё-таки гигочеды. Вирджены перекатуны из НОРМАЛЬНЫХ ЯЗЫКОВ оказывается не способны и 100 строк написать не серя то в штаны то мимо, не делая логических ошибок и если им типизация сопельки не вытирает.
Гигочеты питонисты же могут держать в уме весь контекст приложения, подсказок в виде аннотации более чем достаточно, и пишут так чисто, по всем заветам ООП, что ни одной логической ошибки в рантайме.
218 3298757
>>298751

>Реальность такова что почти весь реальный софт который стоит у тебя на компе это с/с++ для самых важных программ, от ОС до браузера. Игровые движки, кады и прочее почти всегда написаны на сишечке или крестах.


Конечно же, весь реальный серьезный софт, разработанный с корректностью [1] и производительностью [2] в уме, написан на системных ЯП типа C и C++. В C и C++ нет исключений (в C++ их отключают на хуй на этапе компиляции, потому что они не нужны по перечисленным мной выше причинам, а также из-за несовместимости кода с исключениями с интеропом - если твоя динамическая библиотека будет кидать исключения, тебя сразу уволят к хуям).
Haskell и SML - это примеры для гладкомозгных питонистов-баристов, которые не способны написанию программ с ручным управлением памятью. Питонисту не понять, что память - это такой же ресурс как файл или сокет, и код нужно писать УЧИТЫВАЯ выделение и освобождение памяти. Именно поэтому все серьезные критические программы не выделяют память динамически, за исключением инициализации программы. Это еще одна точка падения. В программах, написанных на петоне, КАЖДАЯ СТРОКА может поднять MemoryError. Это игрушечный язык программирования.
219 3298762
>>298757
Справедливости ради 99% софта написанного на си не обрабатывает ошибки аллокации на уровне логики приложения.
В лучшем случае malloc завернут в ассерт.
И кроме некоторых игр и ядра, мало кто не устраивает пиздец с аллокациями налево и направо. Что с++ что раст хуячат аллокации без остановки, потому что все динамические контейнеры делают это по дефолту.
220 3298763
>>298757
Юношеский максимализм в суждениях, ух весь настоящий софт на ассемблере написан, остальные языки - синтаксический сахар и не нужны, будем как диды писать.

Это пройдет. Потому что есть задача и есть инструмент.
221 3298776
>>298763
Вопрос в том что важнее, чтобы криворукие неучи могли лабать код, который так или иначе решает чьи-то задачи, или что-бы общее качество софта было лучше.

Рыночек однозначно порешал в пользу первого. Поэтому мы имеем огромное количество софта, качество которого оставляет желать лучшего. Хочется верить что с течением времени все устаканется и в каждой нише будет не-уебищное решение.
Впрочем, смотря на винду и прочие visual studio с офисом, пока что кажется что качество софта в среднем по больнице ебнулось ниже плинтуса.
222 3298793
>>298776
Рыночек так порешал, что через N лет будет полу-сильный ии, который мычание любой тёти сраки из офиса сможет конвертировать в логику с ммммммаксимальной эффективностью алгоритмов. Как сказал глава НВИДИА языком погромирования станет человеческий язык. Тётя срака скажет ну я хочу чтобы конопочка, чтобы картиночка, а потом смета высиралась, ИИ всё сделает. И на всю галлеру будет один васян, который раз в месяц будет спорные моменты за ИИ подтирать. Вот как всё будет через N лет, но при нашей жизни. Там ОпенАИ уже высрали новую версию ГПТ с рефлексией, который сам себя анализирует и смотрит где не прав, а ещё может в прямом эфире материал изучать.
Так что байтоебы с аллокацией памяти. вы зря свои жопы напрягаете. Человек должен знать только то что ему нужно для работы, увы разум человека не резиновый и всю хуйню на свете вместить не может - для этого есть носители информации. куда человек обратится в случае если нужно какое-то знание. Теперь этот носитель информации - ИИ.
223 3298843
>>298793

> который мычание любой тёти сраки из офиса сможет конвертировать в логику


Хуита которой нас кормят уже лет 30. Еще DreamWeaver обещал это.

> Там ОпенАИ уже высрали новую версию ГПТ с рефлексией


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

>Хуита которой нас кормят уже лет 30.


Ты ещё вспомни что концепцию математической модели нейросети аж в 40-х годах прошлого века придумали. Бум нейронок начался ТОЛЬКО в 2021 году, буквально только три года прошло, и за этот крошечный срок технология развилась феноменально, а "ии" уже в затылок некоторым профессиям дышит и просит подвинуться.

Наивно и даже глупо думать, что развитие технологии ВНЕЗАПНО остановится на той точке на которой оно есть сейчас, спустя всего три года активного роста. Я не экстраполирую линейно, но докрутить генеративную языковую модель до полного или частичного порешания байтоебов - это не фантастика, а обозримая и осязаемая перспектива.
225 3298861
>>298848
Перед каждой ии зимой такие разговоры были.

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

Тетя срака не будет ебаться с тем чтобы заставлять сети делать то что ей нужно, она наймет промто ждуна, точно так же как она нанимает вордпресс макаку сегодня.
226 3298879
>>298848
Я буду рад, если кто-то сделает генератор качественного ПО, потому что сегодня все "профессиональное" ПО ужасно, будто сделано отрядом JS-макак.
НО я в это не верю. Почему? Да потому что качественных данных почти нет. Если модель будет накормлена той хуитой, которую высирали макаки каждый день на протяжение последних 20-30 лет, то ничего хорошего из этой модели не выйдет. Говно на входе, моча на выходе.
227 3298893
>>298861
Какой ещё "каждой"? Генеративные нейронки первый раз три года назад выстрелили, до этого были только теории и нелепые попытки без какого-либо более-менее осязаемого результата. Ты не объективен в этом вопросе и общую картину замазываешь так как тебе хочется видеть.

>>298879

>Говно на входе, моча на выходе.


Не всё так однозначно. Последние высеры ОпенАИ свидетельствуют о том, что модель может демонстрировать универсальную "логику" которой её не учили. Возможно, когда у тебя непомерно большая база обучения атомарные данные этой базы в сочетании с большим контекстом формируют "новую логику", точно так же как и человеческий мозг в принципе. Человек же тоже ничего сам не придумывает он синтезирует "новое" из песчинок перемешанных и странным образом измененных у него в голове. Алсоу, наука не знает как, почему и из чего возникает сознание. Может оно и так возникает из сингулярности хаотичной информации. в таком случае если скормить нейронки непомерное количество говна, она в итоге будет способна синтезировать шедевр.

Ладно это уже нерилейтед лирика, которая не имеет отношения к тем нейронкам которые у нас есть в открытом доступе всё равно.
image.png262 Кб, 538x360
228 3298905
229 3298984
>>298745

>без анально-строгого конфига mypy


До 12 версии питона там пиздец как говёно всё сделано.
>>298751

>студенческие фантазии о хаскеле и иже с ними для нищих.


У касперского в ос часть инфраструктуры написана на хаскеле (который в си конпелируется). Где твой Б-г теперь?
230 3299010
>>298984
Эта та хуйня которая верещит как свинья и жрет ресы ос почем зря?

Понятно что есть наркоманы которые будут юзать любую эзотерическую хуйню, просто потому что могут.
Они с таким же успехом могли бы написать все на постксрипте, чеб нет.
231 3299028
>>299010
Свинью с озвучки убрали лет 10 назад примерно. На моем калькуляторе с виндус 7 последний каспер занимает ровно ноль процессорного времени и 1мб оперативы.
Алсоу каспер в любых хитпарадах лучших антивирусов всегда и по сей день стабильно в тройке лидеров и то только из за черного пиара, якобы там зонд кремля вшит (смешно такое читать особенно вспоминая скандал с эксплойтом этернал блю на винде, и я напоминаю, что этот эксплойт на всех виндусах начиная с 95 был встроен и давал бэкдор, который мог буквально полный доступ к системе давать удаленно)
232 3299029
>>299028
Если зонда там нет, то вдвойне обидно.
Энивейз, каким раком хаскель со своим гц и ленивостью и антивирь который должен жрать минимум ресурсов оказались в одном предложении, понять сложно.
233 3299467
>>298776
Ты уже сделал свой охуевший быстрый и безопасный проект на расте, которым все пользуются?

А сколько хуевых ты сделал бы на ебучем питоне?

А если ты не сделал нихуя, то как будто ты просто сидишь и серишь в лужу.
234 3299532
Какие библиотеки сегодня принято использовать у продвинутых веб-барист?
uvloop или стандартный asyncio loop?
aiohttp.web или uvicorn+starlette?
aiohttp или httpx?
psycopg(3) или asyncpg?
redis-py или aioredis?
aiomcache?
Есть ли что-то для MQTT?
aiobotocore или botocore+loop.run_in_executor?
235 3299754
>>299532
Бери то что предлагает твой фреймворк. Если это фастапи, то он тебе сразу старлетт и uvicorn даст.

А дальше как хочешь. Если делаешь скрипт чисто для себя - нахуй в него тащить aiohttp, можно просто request. Если тебе сервер нужен и поддержка тысяч rps, то бери только проверенные асинхронные библиотеки. Либо оборачивай в to_thread.
Сам решай, ты же не довен.
236 3299763
>>299029

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


Там хаскель - это вроде слоновая башня, можешь даже для линупс кернела писать на этой ебанине.
>>298905
А реально вообще с mypy и типииками жить? История: есть программулина, которая юзает ткинтер и хранит данные в sqlite базке, задача была сделать просто и быстро, теперь же планируется расширение проги, в том числе с веб говёным апи и с сурьёзной базой в виде пгсуки - подумываю свалить на говно в связи с этим, реально ли что-то среднего размера написать на петухоне с типами и вот этим всем, или похуй сразу на что-то статическое валить?
237 3299803
>>299754

> Бери то что предлагает твой фреймворк.


> бери только проверенные асинхронные библиотеки


С этого нужно было начинать. Что у пацанов на грани прогресса считается проверенным? Есть какой-нибудь общепринятый "стэк"? Предпочтений нет, можно и без фреймворка.
238 3299810
>>299763
Если есть возможность писать на настоящем языке программирования, то рекомендую сделать это. Если нет возможности или желания, то и с mypy можно жить.
Включай все строгие опции:
strict = true
disallow_any_unimported = true
disallow_any_expr = true
disallow_any_decorated = true
disallow_any_explicit = true
disallow_any_generics = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
disallow_untyped_decorators = true

Если нужны библиотеки без аннотаций (почти вся стандартная библиотека такая), то выключай disallow_any_expr, иначе будет очень некомфортно. С таким конфигом ты все еще можешь как клоун жонглировать Any типами, но только в скоупе функции, а перед return придется сузить тип с if isinstance, assert isinstance, cast, или своим собственным TypeGuard.
Не забывай, что mypy и pyright не защитят тебя от ложных аннотаций в сторонних модулях.
239 3299814
>>299810
Спасибо, перекатываюсь на говно, ибо оче сложно выходит.
240 3299830
>>299810
Пользователи настоящих языков (с) поясните по хардкору в чем сакральный смысл этих ваших святых типов, что вы без них не можете ничего писать?
Предполагается что программист это мычащее пускающее слюни животное, которое и говорит с трудом и уж тем более не понимает куда какие аргументы в его коде должны втыкаться без строкой типизации?
241 3299834
>>299830
Если ты все время свой один пет пилишь, то можно обойтись динамикодрисней. Если слету заскакивешь на кабаний проект, то очень надо. Навигация по коду, автоматический рефакторинг, подсказки методов, подсказки документации типов, самодокументируемость кода выше.
242 3299837
>>299834

>Навигация по коду, автоматический рефакторинг, подсказки методов, подсказки документации типов, самодокументируемость кода выше.


Но это всё делает пайчарм на основе аннотации типов. Из за этого что ли весь баттхерт?
243 3299838
>>299834
Это всё хуйня, по сравнению с тем, что есть минимальные ГАРАНТИИ КОРРЕКТНОСТИ программы.
>>299837

>нахуя вам типы


>да всё заебок есть костыль на основе аннотации типов


Пиздец, блядь.
244 3299849
>>299838

>да всё заебок есть костыль на основе аннотации типов


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

>ГАРАНТИИ КОРРЕКТНОСТИ


Приведи пример. Вот этот код с ГАРАНТИЯМИ КОРРЕКТНОСТИ заебись и такой код на питухоне не напишешь. Но мне почему-то кажется что суть явления которое ты прячешь за ФОРМУЛИРОВКАМИ сведется к тому что строгая типизация просто помогает макаке не обосраться. Т.е. всё сведется к тому что мне ответили выше - строгая типизация это просто QoL фича.
245 3299861
>>299849
Типизация - это и есть твои анотации, неправильно, аннотации типов - это попытка в типизацию, дружище.

>Приведи пример. Вот этот код с ГАРАНТИЯМИ КОРРЕКТНОСТИ заебись и такой код на питухоне не напишешь. Но мне почему-то кажется что суть явления которое ты прячешь за ФОРМУЛИРОВКАМИ сведется к тому что строгая типизация просто помогает макаке не обосраться. Т.е. всё сведется к тому что мне ответили выше - строгая типизация это просто QoL фича.


Для продолжения беседы нужен пруф, что ты не толстишь.
246 3299864
>>299861
Ну вот так всегда, визгов про типизацию выше гор, а когда спрашиваешь по сути - начинается виляние жопой. Сектанты вы. которые привыкли к некоему интерфейсу перешли в другой - там всё иначе и вы этим окружающих заебываете.
247 3299868
>>299864
Почему не смог в чтение?

>Для продолжения беседы нужен пруф, что ты не толстишь.

248 3300020
>>299830

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


Если бы ты когда-нибудь писал программы на статически типизированном компилируемом языке, то ты бы знал, что компилятор не скомпилирует программу, если не сможет доказать корректность на уровне типов (если ты его явно не обманул небезопасным кастом).
Если бы ты когда-нибудь занимался рефакторингом, то ты бы ценил ошибки компилятора. Хочешь изменить атрибут структуры или аргумент функции? Поменяй, и компилятор покажет тебе все места в коде, где этот атрибут или аргумент теперь неправильно используется. Исправь все ошибки, и ты уже на шаг ближе к цели. Рефакторинг проекта условно среднего размера в настоящих языках программирования занимает пару вечеров, и ты заканчиваешь рефакторинг с уверенностью в корректности программы.
Как это выглядит в питоне? Хуячим грепом и надеемся, что где-то не пропустили. Рефакторинг любого проекта на питоне заканчивается только тогда, когда ты навернул 100% покрытия юнит тестами, и не дай бог ты забыл проверить типы аргументов и возвращаемых значений каждой функции. Если не покрыл тестами - твоя программа на самом деле не корректна.
Mypy, pyright, pytype, и прочие программы ЗНАЧИТЕЛЬНО увеличивают продуктивность при разработке нетривиальных программ. Не с нихуя такие гиганты как google (python), dropbox (python), stripe (ruby), microsoft (javascript), и другие вложили огромные ресурсы в утилиты для статического анализа.
Питону не хватает хорошего интерпретатора, отключения GIL, и опционального строгого режима анализа типов на уровне интерпретатора.
Думайте.
249 3300056
>>300020
Ну т.е. настоящий (серьезный, взрослый, не детский, не пет) проект это спагетти говнокод, где один аргумент насквозь проходит через всю программу, а пускающие слюни макаки не в состоянии его изменить не сломав всё остальное. Типизация же помогает дегенератам настоящим программистам в этом нелегком деле рефакторинга.

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

>словно хуй дроченый в жопу пидора вошел аргумент в функцию

251 3300116
>>299830
>>299837
>>299849
>>299864
>>300056
Последний оплот динамической типизации - Жирнич, из Двача.
252 3300126
>>300116
Но ведь сама типизация тут не при чем, как мы выяснили из ответов выше, весь баттхерт из за того, что настоящим программистам нужен помощник, который таким вот образом чекает их говнокод. Так-то все эти инструменты давно есть, но они продолжают визжать и ныть, надо чтобы всё было встроено.
253 3300162
>>299803
Если тебе сервак то у тебя два стула. Либо джанго и там все уже будет. Либо если ты любишь сам подбирать стек - фаст апи. К фаст апи либо sqlmodel, либо sqlalchemy. У фаст апи прям жирнющая дока в которой очень opininoned все написано. Можешь с нее начать, будешь самый модный на районе. И uv вместо pip и poetry возьми.
254 3300166
>>300020
GIL почти отключили. В 13 эксперементально выключается. Только нахуй оно тебе надо, если математика в numpy и так выключена, IO bound не подвержен gil, а для всего есть асинки?
Че ты там считать такое в тредах собрался, что тебе нужно отключение гила?
255 3300179
>>300166

>Только нахуй оно тебе надо, если математика в numpy и так выключена, IO bound не подвержен gil, а для всего есть асинки?


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


Чтобы не запускать 128 процессов на сервере с 128-поточным процессором, конечно же. Даже если сделать load then fork вместо классического питонячего fork then load, вся CoW память процесса будет скопирована из-за референс каунтинга вообще всего, даже модулей и объектов кода.
256 3300184
>>300179
Ты можешь пример из жизни привести? Че ты там собрался в процессах считать?
257 3300209
Аноны, а что есть почитать по питону для уже знакомых с разработкой в целом и с питоном в частности? Что-нибудь более углубленное для уровня миддла и желательно современное.
Сейчас в основном работаю с фастапи, интересуют принципы работы интерпретатора, асинхронность, такие вот вещи.
258 3300227
>>300162

>У фаст апи прям жирнющая дока в которой очень opininoned все написано.


Все так восхищаются докой фастапи, а по-моему у джанги документация на порядок пизже.
259 3300228
>>300184

>Че ты там собрался в процессах считать?


Протеины.
image.png84 Кб, 242x348
260 3300229
>>300209

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


См. >>284908

>асинхронность


Пик
261 3300598

>ряяя нахуя вам си, чё макака не осилила на асме под хуй86


Я всё правильно, понял о доводах дебила, который против типов?
262 3300923
>>284682 (OP)
как запостить видео в свой телеграм канал через бота
сообщения отправляются а вот с видео беда
263 3300925
>>299532
>>299754
>>299803
>>300162
>>300227
Вот честно объясните, для чего вам asyncio? Почему не создать 100-1000-5000 тредов в тредпуле, или загнать gevent на худой конец? У asyncio нет проверенных библиотек. Вы понимаете насколько сложно писать сетевой код? Сколько крайних случаев может быть у сетевых протоколов? Это полировали десятки лет в обычном не-асинк питоне. У asyncio библиотек ишуе-трекеры на гитхабе завалены багами и уязвимостями.
Это честный и серьезный вопрос, не троллинг.
264 3300948
>>300925

>У asyncio нет проверенных библиотек


Что ты имеешь в виду?
266 3300988
>>300925

>Почему не создать 100-1000-5000 тредов в тредпуле


Так создай 5000 тредов и 5000 корутин с реквестами к хттпбин и проверь.
267 3300997
>>300925
Я может в институте плохо учился, потому что пиво много пил, но насколько я помню, асинхронность от тредов в питухоне отличается только тем, что в асинхроности ты сам решаешь где горлышко бутылки и когда уступать выполнение, а в питонячем трединге из за ГИЛа всё равно нет этого самого трединга, одна видимость, и там то же самое уступание, только когда утупать выбирает управляющая система. Т.е. если ты насрешь 5к тредов у тебя всё время будет тратится на бесполезное переключение между тредами. Но это не точно.
268 3301164
>>300997
Различай вытесняющую многозадачность - когда коды переключает система по таймеру и кооперативную - когда твой код уступает место во время ожидания. В питоне возможна асинхронность на основе кооперативной многозадачности. Все дело в том, что GIL разблокируется во время выполнения операций ввода-вывода и и когда вычисления произволятся не в питонячем коде, а в сишной коде модуля типа numpy. Например ты в треде делаешь реквест с помощью либы requests, и тред засыпает пока не придет ответ от сервера, в этот момент GIL разблокируется, и управление передается следующему треду из пула. В новом треде начинает выполнятся питон, и GIL блокирует другие треды. Потом выполнение доходит до кода с запросом requests, и тред засыпает и разблокирует GIL. И так далее.
269 3301234
>>300925

>Почему не создать 100-1000-5000 тредов в тредпуле


А в петухоне треды - это прямо треды, как в pthread, или какая-то лайт хуитка как корутины в говне?
270 3301667
Питоняши, какова сейчас нестыдная зарплата для обычного мидла-мидла+, без лидских задач (но есть менторство), на удаленке? Сам получаю 260к и временами парюсь что мог бы зарабатывать больше, если бы менял компании, получал больше опыта на различных проектах.
image.png28 Кб, 753x382
271 3301843
Посоветуйте хорошую практику чтобы такие конфиги генерить.

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

Думал шаблонизатор на jinja2 сделать, но мне сказали что оверкилл.
272 3301857
>>301843
Я в таких случаях решил использовать класс с паттерном синглтон, наследуемый от словаря. Он в таком виде получается просто как контейнер с полями.
274 3301968
>>301843
Я не скажу что это прям хорошая практика, но мы вообще подымали игрушечную постгрю с графическим интерфейсом поверх (Directus) и простой схемой, и ее кверяли в рантайме. Полет нормальный если к дизайну не допускать DWH шиза который налепит двадцать пятую нормальную форму.
ГигаIDE - ГООООЛ? 275 3303970
Поясните за ГигаIDE, я скачал и это intelli + pycharm в одном. Ну в принципе эти ide это open source. То есть сбер взял эти ide которые open source, объеденил в одно и добавил своё расширение гигакод, и сказал это ГООООЛ? Так что ли?

https://gitverse.ru/features/gigaide

Затестите и скажите ваше мнение.
image83 Кб, 1183x377
276 3304000
>>303970

>я скачал и это intelli + pycharm в одном


Поражаюсь твоей проницательности.
277 3304026
>>301857
@dataclass что ли?
278 3304405
>>303970

>Затестите и скажите ваше мнение.


Ты только что познал суть российского импортозамещения и аналоговнетных продуктов.
279 3304432
>>299830
В больших проектах динамика это ад, особенно если начинаешь работать над той частью, которую писал другой человек.
Дело даже не в корретности, а в отсутствии необходимости постоянно чекать что у тебя во входных данных придет когда ты собственно что-то переписываешь, вот есть какая-нибудь бизнес хуйня типа куска заказа, а что это какой-то класс, словарь или вообще другое непонятно.
280 3304682
>>284682 (OP)
Чем вы Питухон интерактивно дебажите? ВСКоде?
281 3304742
>>303970
Охереть наговнили, в win11 нельзя увидить эту программу в apps, собственно, по простому удалить.
282 3304879
>>304682
Просто print в консольку линуха.
283 3304908
>>304879
А если сложную структуру посмотреть?
284 3304912
>>304908
loguru.
17142847338780.jpg143 Кб, 800x400
285 3304922
>>304908
Тогда 2 принта!
286 3304928
>>304922
>>304912
Принты это конечно хорошо, но хотелось в окошечках, попробую
https://visualstudio.microsoft.com/vs/features/python/
Студия есть
287 3304937
>>304908
for ... print в нужном месте. А еще у меня обычно пользовательские исключения и маленький самописный логер на одну функцию с цветами сообщений что сам подобрал себе по вкусу, аргументы и вывод которого меняю под проект.
Но я камплюктер начинал еще с MS-DOS, мне норм я привык, также как и люблю копролиты в один крупный py файл (но не всегда).
288 3304943
>>304937

>for ... print в нужном месте


Ну перестань, это же говноедство если ты на локальной машине работаешь, да же во времена ДОС было IDE как помню, BORLAND и Microsoft всякие.
289 3304950
>>304943
Борланд это паскаль, это уже в технаре было.
Сосницкими в бывшем доме пионеров мы в кружке на турбовасике писали. Файлы открывали, а нортон командере, а сам редактор не помню уже названия.

>это же говноедство


А мне норм.
290 3304956
>>304950

>Борланд это паскаль, это уже в технаре было.


Да, но у них и С++ был Turbo Vision назывался, можно было нормально отлаживать и окошки для ДОС клепать, Визуал что то там от Майкрософт на ихнем фоне выглядело как говно, еще Ватком был.

>А мне норм.


Ну я сам такое активно пользую, но если есть возможность предпочитаю интерактивный дебагинг и возюкинг мышкой.
291 3304961
>>304956
Мы в технаре на паскале прогали, но я не помню какая винда там была, наверно 98. Для ее делали простые проги. Ну те самые где вся логика в обработчике нажатия. А вообще скучаю немного за нортоном, такой ламповый был, сейчас миднайткомандер юзаю вместо него.
292 3304971
>>304961

>наверно 98


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

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


Может Делфи имеешь в виду? Там можно было под Винду писать.
293 3304973
>>304971

>Может Делфи имеешь в виду? Там можно было под Винду писать.


Он же технически паскаль насколько я помню, точнее обжект паскаль. А среда борланд дельфи.
294 3304976
>>304973
На сколько помню Паскаль, Турбопаскаль, это под ДОС и псевдографику и консольки типа Тотал Командера под ДОС, а Делфи это апнутый Паскаль и уже под Видну, в чем различая я хз. Паскаль никогда мне не нравился из за богомерзкого символа присваивания := и begin/end
295 3304977
>>304976
Я тоже не знаю различий, или может кто-то говорил из преподов когда-то, но я забыл уже давно. Я коммерческого не писал на паскале, только учебные, а потом после техникума забил на него.
296 3304979
>>304977
А какими судьбами в Питухон попал? Не основной твой язык?
297 3304980
>>304979
Перекатился с пхп как-то.
298 3304984
>>304980
Норм, Пыха же чисто под веб, хз как она взлетела в свое время, тогда и Перл был и еще что то.
299 3304987
>>304984

>хз как она взлетела в свое время


Думаю из-за Денвер под винду где все искаропки, плюс на него много материалов на русике было, также всякие вордпресы, джумлы, друпалы и т.д. плюс фреймворки.
Перл я когда-то пробовал, из комп журналов, там для веба надо было мутить cgi-bin, и вообще он мне заумным показался, не для меня.
300 3304988
>>304987

>Перл я когда-то пробовал


Перл топчик обожаю его, Питухон кстати чуть младше его на пару ле. Эра Перла прошла к сожалению, но он на всегда в наших сердцах, а у Питухона экосистема хороша и это то же не плохо.
301 3306045
Я еблан, который в 2024 году изучает питон. Только пару курсов прошёл и изучаю основы.
Дорогие аноны, оцените ебанутую идею автоматизировать размещение объявлений на авито. Брать информацию о товаре с другого сайта-магазина (скачивать фото + обрезать, название, характеристики). Заранее извиняюсь за свою тупость и кринж.
302 3306056
>>306045

>автоматизировать размещение объявлений на авито


На авито тебя забанят за такую автоматизацию
303 3306070
>>306056
Хз я вручную ебашил много(подработОчка такая), даже капча очень редко выпадала.
304 3306183
>>306045
Если ты дрочишь питон чисто для саморазвития - идея норм. Если для дальнейшего трудоустройства - то хуйня.
305 3306392
>>306183
Начал с питона. Понимаю, что вкатуны там нахуй не нужны, но а что тогда? пойти нахуй
306 3306537
>>306392
Я про то, что задача хуйня для изучения питона. Для вката нужно django + DRF + postgresql.
307 3306681
>>306183

> Если для дальнейшего трудоустройства - то хуйня.


Почему? На джанге и фастапи можно писать бэкенд же.
308 3306935
>>306537
Просто это мне хотя бы интересно.
309 3307098
>>306537

>Для вката нужно django + DRF + postgresql


Напердел с этого советчика, ты б еще Торнадо посоветовал.
310 3307205
>>307098
Асинкоребенок, ты? Фастапи с пайдантиком накатил? Что не так с django + DRF?
311 3307343
>>307205
А с Торнадо?
312 3307384
>>307205
Простота и скорость разработки: Django с DRF — это тяжелый монолит, заточенный под всё сразу (ORM, шаблоны, сериализация). Для чистого API ты грузишь ненужные компоненты. FastAPI легче и быстрее, без лишних слоёв.

Сериализация и валидация: DRF использует сложные сериализаторы, в то время как Pydantic позволяет валидировать данные проще и быстрее, без лишнего кода и классов.

Минимальный overhead: FastAPI не заставляет писать кучу кода для простых задач. В DRF слишком много абстракций: роуты, сериализаторы, вьюшки. FastAPI — это минимум магии и максимум контроля.

Документация без настроек: FastAPI автоматически генерирует документацию (OpenAPI/Swagger). В DRF для этого нужны дополнительные библиотеки и настройка.

Зависимости и деплой: FastAPI требует меньше зависимостей, тогда как Django тянет за собой кучу лишнего, особенно если ты строишь только API.

Чистая архитектура: Django + DRF завязывают бизнес-логику на фреймворк, создавая монолит. FastAPI легко позволяет строить систему по чистой архитектуре: API отдельно, бизнес-логика отдельно, никаких жестких зависимостей.

Тестирование: В Django тесты сложнее из-за многочисленных слоёв (запросы, сериализаторы, ORM). FastAPI даёт писать чистые юнит-тесты без мокинга всей системы.
313 3307523
>>307384
Всем поебать на твои маняфантазии.
314 3307542
А че, на этом обоссанном языке еще что-то пишут, кроме скриптов для админов и клея для сишных либ?
315 3307576
>>307542
Сотни тысяч строк, каждый день. Ты и твои дети будете использовать эти программы, причмокивая и прося добавки.
316 3307596
>>307576
Ясненько)
317 3307794
>>307523
Нихуя се треснул.
318 3309596
Посоветуйте, пожалуйста, какой пет проект можно сделать, чтобы меня точно на работу взяли. Сайт уже есть
319 3309860
>>309596
Сайта достаточно.
320 3309879
>>306183
Вакух по запросу "питон" овердохуя, другое дело что большая часть это всякий ml и qa, которые для вката и правда такое себе. А чем ещё зная его заниматься можно, какие-нибудь парсеры-хуярсеры на фрилансе писать или кулхацкерить?
321 3310329
>>284698
>>285651
Вы с перлом не перепутали
322 3310577
>>284698
Набазарь за питон на бекенде у реддита.
323 3310859
>>285758

> но процентов на 10 ниже, чем на питоне и на 20, чем на джав


С ума сошёл? Уже 3-5 лет как питонисты стоят дороже джавистов. В любом же около ML проекте хотя видеть питониста, в большинстве Data напрвления питонисты.
324 3310869
Подскажите где можно подучить как питон работает под капотом

>>285853
Добавь json в игнор mypy.

>>306045

>оцените ебанутую идею


Зачем учить питон для этого. Просто посиди пару дней с чатГПТ

Если интересно, то уважение. Не слушай этого >>306183

>>309596
Мы ищем человека со знаниями AWS StepFunction, AWS DynamoDB, ElasticSearch, python, дальше думай сам
325 3311148
>>310859

>В любом же около ML проекте хотя видеть питониста


Так это не вебмакака крудошлёпская, это аналитик/датасаентист какой-нибудь, которому питухон нужен чтоб дёргать всякие pandas и tensorflow. Питухон - даже не сотая часть его экспертизы, ему не за питухон платят.
326 3311306
>>311148
Вот тут дикий+. Нейросети туда же, там на питоне только обертка.
327 3312092
>>311148

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


А есть профессии, в которых знают только за знание языка?
328 3312200
>>307384
Все по факту, но чем Django + DRF мешает разделению на слои и вынесению бизнес-логики?
329 3312231
Хай!

По работе с Blender API есть кто с опытом? Вопрос есть.
330 3312474
>>312231
Да, есть.
331 3312476
>>312231
Нет, нету.
332 3312477
>>312231
Не знаю. Может быть есть, а может и нет.
333 3312503
>>312477
>>312476
>>312474

Определитесь!
334 3312514
>>312231
Зачем в принципе в эпоху чатгпт чего-то у людей спрашивать, когда речь идёт о каких-то деталях апи?
335 3312921
>>312092
Есть профессия вебмакаки - математика нинужна, в компуктерах понимать ничё не надо, сиди себе кнопки крась да жсоны перекладывай с референсом очередного модного ФРЕЙМВОРКА под рукой. Справится даже клинический идиот при должной сноровке.
336 3312973
>>312921
Чучело-ебучело, а где в прикладном программировании надо понимать в компутерах и в математике?
337 3312994
>>312973
Лол, ты обиделся на меня штоле, неженка ебаная? Ты спросил - я ответил. Пошёл нахуй.
338 3312998
слушайте, а на вашей джанге ещё что-то пишут кроме легаси? по мне атк подобные фреймворки типа джанки/рор/.нет кор остались в каком-то диком корпоративном мире
а бидон так вообще перешёл во всякие там мл и ии штуки
мнение?
339 3313012
>>312998
Всем проектам на джанге что я видел было не больше пяти лет отроду на момент начала моей работы с ними, и пилились они для микрокабанов с полутора юзерами, так что хз на счёт легаси и корпората... другое дело что это не мешало тем проектам быть ебучей лапшой, но это из-за питонистов а не из-за питона или джанги
340 3313017
>>313012

>но это из-за питонистов а не из-за питона или джанги


Ну хз. Если они поголовно такие, то видимо такая вот новая норма, такой стандарт качества.
341 3313022
А меня больше интересует, пишут ли что-то на фастапи? Вроде по количеству вакансий уже обогнали Джанго, но я не понимаю, нахуя он нужен, когда аналогичный код на условном го будет выглядеть плюс минус так же, а работать быстрее.
342 3313047
>>312994
Я не он, хуита. А ты-то кем работаешь?
343 3313048
>>312998
А что вместо них?
344 3313327
На питоне бэк уже почти не пишут
345 3313380
>>313048
Да всё что угодно, что быстрее питона/руби. .нет точно не для лихих молодых стартапов, там корпораты только. А остальное это наверно всякие жс/тс, го
346 3313533
>>313380
На каком уровне нагрузки питон тормозит?

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


Переведи.
347 3313542
>>313533

>На каком уровне нагрузки питон тормозит?


На любом абсолютно
Самый медленный язык же (медленнее только руби, если мне память не изменяет)
348 3313552
>>313327
А на чем пишут?
349 3313574
>>313542

>Самый медленный язык же


Лол это не аргумент. Как будто бы кого-то ебёт, что страница сайта откроется на 100 или 300 миллисекунд позже. Если бы ты говорил про суперкомпьютер стоимостью 100 миллионов долларов и там нужно перемножить матрицы максимально быстро - тогда да.

А веб..... нуууууу блять и чо? Щас железо всё равно копеечное. Я могу скупить да хоть тысячу серверов-калькуляторов за 2 копейки и они любую нагрузку выдержат, так что мне похуй.
350 3313576
>>313542
Ясно. Ты питон сам руками трогал? Очередной пиздун Интернетный.
image9 Кб, 292x177
351 3313632
ну установил я вашу джангу, прохожу туториал, вот результат запроса после первой страницы туториала(пас+вью)
352 3313786
>>313542

>медленнее только руби


Симфони и ларавел выдает плюс минус такой же или худший результат чем фастапи.
353 3314802
>>313542

>Самый медленный язык


Питон это скрытый гем прграммирования, он как Прометей прикованный GILом к скале одного потока, но ученые ставили опыты и отпускали Питон в свободную работу и он показывал скорость ровно в 2,71 раза быстрее асемблера.
354 3314836
>>313542

>Самый медленный язык же


Чел, питон это не только cpython, посмотри на скорость pypy.
sage 355 3314868
>>313786

>Симфони и ларавел выдает плюс минус такой же или худший результат чем фастапи.


Щас бы микрораздатчик жсона с фулстек фреймворком по производительности сравнивать...
356 3315167
Сап, пишу на джанго, хочу сделать чтоб одна row(column показывалась только когда в другой row(column выбрал нужный мне вариант.
Нашел такое на стаковерфлоу - https://stackoverflow.com/questions/50947022/django-crispy-forms-hide-fields-conditional-on-other-field-value
Но не понимаю в

> some_name = models.ForeignKey(key_name, on_delete=models.CASCADE)


Что тут должно было быть вместо key_name
Подскажите, пожалуйста!
357 3315822
>>284682 (OP)
Коллеги, подскажите плз вопрос по камере HikVision iDS-TCM203-A. Не могу разобраться, как с неё вытянуть номер автомобиля

https://stackoverflow.com/questions/79141957/how-to-capture-car-license-plate-by-using-hikvision-isapi-ids-tcm203-a-camera
358 3316062
>>314868

>с фулстек фреймворком


Что такого принципиально умеет лара, чего не умеет фастапи?
359 3316897
>>316062
Что такое фастапи? Зачем нужен?
360 3317709
Есть какие-то варианты для 1С-ного консультанта с легким знанием программирования на 1С и js(старый react), плавно перекатиться в питон? Но не уверен, что хочу заниматься именно веб-программированием.
Имеется понимание некоторых предметных областей, умение анализировать и описывать бизнес-процессы, есть опыт внедрения готовых решений, ручного тестирования доработок и прочая хрень.
361 3318313
Прочитал в новостях что даже крысу научили языку python
362 3318437
Cап, питонятня, подскажите, че за ошибка с докером может быть
psycopg2.OperationalError
ваще 0 инфы нашел годной, помогите пожалуйста
363 3318460
>>318313
Это недостаток питона?
364 3318477
>>318437
Поставь binary вариант пакета.
365 3318593
Стек php+js, laravel.
Стоит учить питон?
Почему задумываюсь - хочу откликаться на большее количество вакансий, небольшой плюс мне в карму от работодателей, что я три ЯП буду знать.
366 3318627
>>318593

>что я три ЯП буду знать.


На самом деле всем похуй, сколько ты там отвёрток потешных выучил, джуняра. Выучить синтаксис очередной императивной скриптовой дрисни плюс нужную тебе библиотеку чтобы get the job done - три дня максимум при наличии схожего опыта, который у любого человека, занимающегося программированием дольше пары месяцев, подразумевается по умолчанию. Вот если бы ты сказал "я знаю СИСИПЛЮС" - это могло бы ещё сыграть, а питухон - это ничто. Может ты ещё и линукса в глаза не видел и шеллскрипт написать не можешь? Как тебя вообще на работу взяли?
367 3318823
>>318593
Работодателю глубоко поебать сколько ЯПов и фреймворков ты знаешь, ему главное чтобы ты умел оперативно и качественно решать поставленные задачи.
>>318627
Это двачую.
368 3318849
>>318593
Да выучи хоть 100 языков и откликайся на все 100 тысяч вакансий. Что толку от количества, что изменится от того что ты дополнительные языки выучишь. Ты начнёшь какие-то новые сайты делать? Качественно же ничего не изменилось. Твои сайты от этого стали что... быстрее? Красивее? Надёжнее? Это просто дрочка ради дрочки. Я бы тебя понял, если бы ты учил ради внедрения нейронок или биг дата или чего-то ещё. Нууу блять... ради вакансий... а тебе чё мало вакансий что ли? На пхп пол-интернета работает. И тебе всё равно этого мало? Проблема только у тебя в башке. Тебе повсюду мерещется мало вакансий. Дай тебе хоть 100 тысяч вакансий, ты всё равно скажешь что этого мало, и хорошо бы хоть миллион вакансий иметь.
369 3318961
- здратути я пхп-разработчик а у вас как раз вакансия на ларавел, возьмите меня
- здратути, верно, мы работаем исключительно на пхп+ларавел, но убедите нас что вы лучше других кандидатов
- ну я еще питон знаю
- вы приняты
370 3318978
>>318961
Лол, так все и будет.
371 3319093
>>318961
Почему нет?
На некоторых проектах так и пишут:
Будет плюсом если знаете такие и такие языки
372 3319161
Что-то по джунским вакухам совсем адище, еще полгода назад все было не так плохо (но компенсировалось огромным количеством вкатунов). Сейчас и вкатунов дохуя, и вакансий нет.
373 3319196
>>319093

>На некоторых проектах так и пишут


В твоих скотских фантазиях.
374 3319722
Классный тред, сам вкатился в проект на фасте, мб потом перекачусь на goвно, но пока тут побалуюсь
375 3319956
>>311148
про MLops что-нибудь слышал, маня? Там как раз нужны только навыки работы с инфраструктурой + питон или питон + общее понимание ML.
Тебе когда МЛ инженер выкатил модель. Она сразу подключается в систему и начинает работать? Или к ней надо прикрутить ручки и ножики.

И вот часто бывает, что менеджер или CTO думает: вот у меня МЛ -> МЛ на питоне -> Его надо подключить к сайту (и написать тонны бизнес логики) -> сайт надо сделать -> выберу питон, так как он уже есть у МЛ ребят. И вот так питон может оказаться в любом проекте.

ETL/ELT это на 50% питон, сейчас ЛЮБАЯ средняя компания имеет etl инженеров, а крупная имеет сотни их.

Вы слишком зациклены на том, чтобы писать крад. Посмотрите поинтереснее вакансии
376 3320019
>>319956
К чему ты это насрал? Чел написал что питон для этого нужно знать на уровне хелловелд.
377 3320062
>>310869

>Мы ищем человека со знаниями AWS StepFunction, AWS DynamoDB, ElasticSearch, python, дальше думай сам


Лол это как раз я. Правда там не эластик, а opensearch. И я на typescript/rust пишу.
378 3320065
>>319956

>Там как раз нужны только навыки работы с инфраструктурой


Инфраструктуру можно на любом языке писать. Там как правило языков 6 основных - TypeScript, JavaScript, Python, Java, C#/.Net и Go. Принципиально инфраструктурный код ничем не отличается от того же typescript.

>питон + общее понимание ML.


Ну тут согласен, ml сильно зависит от питона. Тот же dbt, pyspark, ddt и прочее... Но аналогичные же решения есть и на Scala, Java, можно даже замутить etl на R. Подключаешь sparkR, dremio и всё будет плюс-минус также работать.
379 3320476
А у треда конфа есть?
380 3320480
>>320476
Не нужна.
381 3320507
Я заебался искать работу на петухоне. Посоветуйте куда свитчнуться.
вкатун
382 3320508
>>320507
В анальные шлюхи.
383 3320602
Для пет-проекта ботов в тг и дисе для мелкоборды, а также ботов на сайт нужны разработчики на питон, если заинтересовались писать @regubarukuriyan
384 3320617
>>285853
Типы не нужны
385 3320805
386 3320898
>>320507
Попробуй в хаскель.
387 3320900
>>320602
Никому не нужный парашевод пытается запрячь наивных сосачеров айтишничать на его параше для пидорнутых за спасибо, спешите видеть. Чувак, ты опоздал лет на 10, "бот в тг" и "движок для борды" уже недостаточно, чтобы найти РАБотку обоссанным джунярой за 40к и получить социальный лифт, аноньчикам нет смысла работать на благо твоей параши. Возвращайся на двач, тут все твои друзья.
sage 388 3321494
>>320602
Армянам лишь бы не работать.
И как, много Хомяков написало?
389 3321997
А в чем профит переводить свои васян скрипты (баш портянки) на питон?

Плюсы питона

- более строгая типизация чем в баш
- более интересные структуры данных, не надо ебаться с jq если надо распарсить json\yaml.
- более гибкие функции (бесит, что в баш функция может сделать только одно echo в конце)
- либы под любой пук уже написаны

Минусы питона

- классы мне нужны
- ебань с отладкой
- то что в баш решается в одну строку на 5 пайпов, в питоне это пол страницы кода
- питон не так чтобы очень быстрый по сравнению с башем, на операциях с файлами, плюс сам питон интерпретатор стартует очень медленно
390 3322029
>>321997
баш это просто список команд, в который долгое время слоями приляпывали расширения и элементы яп.
Плюсов по сути нет, имея искаропки питон или перл.
Попробуй может перл, кстати, он намного ближе к шелл скриптам и там куча всяких шорткатов для типовых шелловых задач.
391 3322031
>>322029
Я на перле писал в начале-середине 2000-х, и не хочу погружаться в эти вайбы опять.

У меня на баше и так все на функциях с локальными переменными.

По быстродействию всё равно все упирается в ОС (например рестарт сервиса это тормоза systemd). А так одинаково - баш быстро стартует но тормозит на форках и вызовах сторонних программ, а питон медленно стартует зато быстро работает.
392 3322034
>>322031
Я прям хз зачем в подобных задачах измерять скорость.
Но скорее всего пайплайны с вылизанными кореутилс будут быстрее питоньих итераций в общем случае. Но эти всякие тесты башевские это адовая дрисня после нормального яп. Наверное, привычка нужна.
Что насчет го?
393 3322140
>>321997
Для скриптов перл топ. Особенно в плане работы с логами/текстами дает питону пососать. Во всем остальном сосет у питона.
394 3322142
>>322031

>Я на перле писал в начале-середине 2000-х


Уверен, ты делал это неправильно, как и большинство пехопешников, дорвавшихся до перла.
395 3322156
Если мне нужны скрипты для отслеживания устройств в локальной сети, то питон подойдёт?
396 3322324
>>322156
даже Баш пойдет
397 3322433
Опытные (крутые) аноны, как относитесь к такому явлению как наставничество? Если бы вы были наставником вкатуна, как вы себе это представляете?
sage 398 3322436
>>319196
Насмешил содомит.
399 3322443
>>322433
Завтавлял бы вкатуна писать код за спасибо и гнобил по преколу, а потом послал бы нахуй.
400 3322447
>>322443
Отчего такой яркий хейт?
401 3322451
>>322447

>по преколу

402 3322455
>>322451
Пиздец, дедовщина в айтишечке.
403 3322462
>>322433
Зачем мне перегревать рынок и рыть себе яму?
Чтоб потом этот джун меня подсидел?
Я вообще зарёкся что-то кому-то объяснять, обучать. На спец форумах помогаю советом иногда, но не разжевываю джунам, а как коллега с коллегой, на определенном высоком уровне понимания предмета.
Да и как правило обучают джунов такие же джуны+, с опытом работы года 2. Это гнилая тема.

А что ты ждёшь от менторства? Мотивации? Чем тебе чатжпт не ментор?
404 3322466
>>322462
Мне интересно, как это работает со стороны опытного человека, потенциального ментора. Интересно ли ему делиться знаниями, если да, то в какой форме и как бы он в теории выбирал себе подопечного и т.д.
405 3322560
>>322466
Обучал бы чувака который искренне хочет кодить на емакс лиспе потому что он шизик с горящими глазами. Нормиблядское заводобыдло, которое хочет по-быстрому выучить ПИТУХОН и РЕКТАЛ.ДЖЭЭС чтобы стать УСПЕШНЫМ формошлёпом 400к в наносекунду, годится только для того, чтобы запрячь его бесплатно заниматься безблагодатным говном, которое чатгопоте доверять пока страшно, а самому делать не хочется.
406 3322574
>>322560
Не все вкатуны нормибляди же. Очень много зумеров домашних или скуфов двачероподобных, которые работают на хуёвой работе.
407 3322755
>>322462
Если тебя джун может подсидеть, то нахуй ты вообще нужен?
408 3322929
Что-то на Django/DRF не могу найти работу.
Долго в FastAPI перекатываться?
409 3322933
>>322929
После джанго - долго.
А так вообще пары дней хватит.
410 3322948
>>322933

>После джанго - долго.


>А так вообще пары дней хватит.


Так какое из этих двух противоположных утверждений истинное?
411 3323236
>>322929
Ну нихуя себе, наверное с рыночком что-то случилось...
image.png283 Кб, 659x480
412 3323251
start_time = time.time()
square2 = lambda el: elel
result =
map(square2, list_of_smth),
end_time = time.time()
execution_time = end_time - start_time

print( 'map', execution_time )

start_time = time.time()
def square(elements) -> list:
result = []
for el in list_of_smth:
el = el*el
result.append(el)
return result
result = square(list_of_smth)
end_time = time.time()
execution_time = end_time - start_time

print( 'foreach', execution_time )

map 14.047540426254272
foreach 10.371117115020752
413 3323265
>>321997
Питон - яп по типу помершелла. Баш аналог сука комманд.кома.
>>322140

> Для скриптов перл топ.


Блядь. Может по сравнению с башем и топ, но ни дай бог на нем что-то больше пары строк писать.
414 3323276
>>323265
Ты просто неосилятор. Перловый код в 10 раз компактнее и нагляднее, чем питоновый. И нет, я не говорю про код-гольф приколы, а элементарно парсинг строк регулярками, всякие map-grep-reduce пишется намного проще.
415 3323349
>>323251
Накладные расходы на вызовы блямбы скорее всего.
image.png766 Кб, 700x490
416 3323373
Впервые написал простенький, но реально полезный скрипт, который теперь юзаю каждый день в работе. Скрипт принимает строку с кучей ID объявлений на Авито, делает из них ссылки, открывает их в хроме и нажимает на каждой странице странице кнопку "Опубликовать". В конце пишет стату - сколько успешно опубликовано, сколько с ошибками. Понимаю, что такое чатгпт напишет за 1 секунду, но всё же радости полные трусы.
417 3323376
>>323373
ну так в этом и каеф погромирования
418 3323398
>>323276
Да, "неосилятор", плесень интернетная. Мне проще писать на питоне чем на этом говне. Писал и на том и на том. Дальше что, блядь?

> парсинг строк регулярками


А я что написал?
>>323265

> но ни дай бог на нем что-то больше пары строк писать.

419 3323399
>>323373
Анон, зачем это? В чем бизнес логика?
Зачем на опубликованом объявлении нажимать опубликовать?
420 3323436
>>323398
Смотрите, этот дурачок не затащил регулярки! Гоните его, насмехайтесь над ним!
421 3323453
>>323399
Эти объявления не опубликованы, они в архиве, скрипт их достаёт с архива и активирует
422 3323467
>>323373
покажи как сделал то хоть
мимо вкатун
423 3323487
>>323276

>всякие map-grep-reduce


Более того, можно ещё и самому сабу с такой семантикой сделать:

sub foo (&;@) { my $code = shift; ... }
foo { do_something @_ } qw/bar baz qux/;

Но питухонодебилу это не надо, у него две извилины. ИФ ГОВНО: ЕЛС МОЧА - потолок его интеллектуальных способностей. Собственно, все популярные скриптовые язычки, появившиеся после перла (питухон, руби, пехопе, моча/жопаскрипт) - попытка сделать перл, на котором смогут писать даже дауны, оригинальный перл осилить неспособные по причине умственной отсталости. Питухон - наиболее наглядный пример такого поделия, что и видно по количеству гречи с говнокурсов.
425 3323534
>>323520

>ЦЕ :::\\\\ юзерс



>текст равно инпут('введите хуйню')


В виндусе не поддерживаются аргументы у команд или ты даблкликом запускаешь свой скрипт, потому что цмд.екзе слишком отвратительное, чтобы всерьёз им пользоваться? Это же ужас а-ля лаба2, ну сделай ты по-людски.
426 3323553
>>323520
Нахуя вы селениум дрочите? У Avito есть нормальный RESTapi без человеческой документации, запросы которого можно спалить в отладчике браузера.
427 3323591
>>323534
спасибо, сделал через командную строку через батник

>>323553
спасибо за идею, буду делать
image21 Кб, 550x95
428 3323852
Как же меня бесит этот ублюдочный петухон...
Это говно буквально не способно выполнить параллельно элементарную сука вычислительную задачу. Просто блять циферки сука посчитать. Не дрочиться с асинхронным IO, просто сука 2+2.
Самый апофеоз хуиты - это ProcessPoolExecutor. Который умудряется выполняться МЕДЛЕННЕЕ, чем в 1 поток.
У всех остальных скорость не отличается от 1 потока.
Не язык, а высер имбециала.

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

>не осилил документацию


>ЯП виноват

430 3323861
>>323852
Обновись до 3.13 и выруби гил, если тебе прям хочется CPU bound считать ебаный дебил.
431 3323874
>>323852

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


Ахаха скуф в треде.
1731782191931.jpg72 Кб, 729x584
432 3323888
>>323251
Это какой питон? В третьем map возвращает генератор и времени должно быть примерно ноль если не добавить еще сумму или что-то такое.
433 3323976
>>323861
>>323874
Буду писать на го. Начал документацию читать, хороший язык, красивый, с указателями. Многопоточность с рождения и без костылей, строгая типизация, компилируемый.
434 3323988
>>323436
Ты долбоеб, мы про перл говорим? Регулярки и в фитоне есть.
435 3323990
Не знаю, может, мне не совсем сюда, но спрошу, так как вопрос частично касается python.

Использую Arduino Micro
ОС windows 7

Заменил в boards.txt usb_product на имя прибора, которое мне надо чтобы отображалось. В устройствах и принтерах отображается это имя, да, но как через софт это имя получить я не догоняю. Надо чтобы я мог его отфильтровать от других com-соединений, чтоб показывало только мою железку, может это можно и иначе как-то сделать?
Железка используется втыкаясь в комп, не автономно.
Софтина работающая с контроллером написана на python, сканирую порты через serial.tools.list_ports.comports(), параметры класса дают и pid, и vid, и производителя, и че хочешь, но имени, которое я указывал в usb_product - нету.
Гуглил, да не нагуглил.
436 3323992
>>323990
Попердолься для начала с USB Device Tree Viewer
https://www.uwe-sieber.de/usbtreeview_e.html
437 3323996
>>323992
И че мне в нем сделать надо? Ну он мне инфу выдал о порте, в Product String указано имя которое я указывал в usb_product
438 3323998
>>323996
Сравни все параметры с теми которые передаешь, переткни в другой порт, правильно ли имя читается с файла
439 3324005
>>323852

>асинхронным IO


>это говно буквально не способно выполнить параллельно


>ProcessPoolExecutor


Т.е. ты ни про гил не слышал, и не знаешь как трединг питухона работает. Получается что ты обезьяна, которая калькулятором гвозди забивает и визжит что инструмент плохой. Это даже не уровень баристы-вкатуна, это уровень скрипто-киди или даже ниже, не позорился бы так лучше в тематике.
440 3324103
>>323998
Ну имя там такое, которое я и указывал. Чего мне делать то с этим? Как мне его в python'e получить?
Вот типа эта софтина это имя умеет читать. Как она это делает и как это сделать мне?
441 3324110
У меня линупс. Вроде есть компилятор пайтон. Я могу вкатиться в вашу залупу? Или нужна винда строго?
442 3324116
>>324005
Я слышал про это говно, чёрт, именно поэтому использую разные пулы из мультипроцессинга, не мультитрединга. Мне даже код пришлось изменить, убрать лямбды, чтобы этот кал вообще запустился и не падал на процессах. При одинаковом апи на тредах запускался, а на процессах нет.
В итоге нихуя, никакой разницы с тредами, все так же дробится в одно яичко.
Ебал я этого петухона в рот короче.
443 3324142
>>324110
Иди нахуй.
444 3324174
>>324110
Питон через командную строку работает, нужен MS DOS
445 3324323
>>323852

>Самый апофеоз хуиты - это ProcessPoolExecutor. Который умудряется выполняться МЕДЛЕННЕЕ, чем в 1 поток.


>>324116

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


>При одинаковом апи



Не хочу даже знать, что ты там наговнокодил, но по всей видимости ты конченный ФРОНТЕНДЕР-спермоблядок с IQ 70 и знанием полутора отвёрток и даже не понимаешь, чем треды отличаются от процессов и что процессы даже не шейрят стейт. Неудивительно, что выбор технологии у тебя из ПАЙТУХОН и ГО - эталонное модное говно для зумеров и гречневых даунов с курсов скуфбокса.
446 3324326
>>284682 (OP)

> Встречаем новый революционный Питон 3.13. Питон встаёт на путь избавления от GIL. Подключают JIT технологии. У нас появляется надежда догнать и перегнать C++. Или хотя бы Rust/Go


На сперме не работает, к сожалению, после 3.8
447 3324364
>>324110
Только на винде (причём желательно pro edition), сорян.
448 3324407
>>324110
Щас бы в эпоху чата гпт такие вопросы у людей спрашивать
449 3324424
>>324116
Вываливая подобную шизофрению, ты только больше расписываешься в том, что вообще ни хуя не понимаешь что делаешь.
450 3324441
>>323852

>ProcessPoolExecutor


Не знаю что ты там наговнякал, но судя по всему - человеческий фактор - главная уязвимость твоей программы. Если ты измеряешь скорость простого матана, 2+2 в ProcessPoolExecutor, то у тебя больше времени будет потрачено на накладные расходы нового процесса, чем на сам матан. Запускай инсты заранее и используй только решения с нумпи.
451 3324459
нихуя не могу найти работу с джанго/дрф, думаю о перекате в джава-спринг/фастапи, что и делать
452 3324466
>>323888
Я сразу распаковываю же в том коде, видимо макаба астериск сожрала, поэтому не видно

*map(print, ["its", "kind", "of", "magic"]),
453 3324470
>>324459
Рассказал бы что ли поподробнее анончик.
Что знаешь, умеешь? Как и сколько обучался начиная с нуля? Есть проекты/практика?
Какие ищешь вакансии, где ищешь? Сколько собеседований за сколько времени было? В каких компаниях?
17312301284270.mp4683 Кб, mp4,
480x270, 0:07
454 3324471
>>324459
Это классическая дилемма начинающего разработчика, особенно на этапе поиска первой работы. Вот несколько советов и размышлений:
1. Почему не получается с Django/DRF?
Недостаточно навыков: Возможно, нужно подтянуть уровень. Например, изучить более сложные вещи: асинхронность в Django, оптимизацию запросов, работу с Celery.
Плохая практика поиска работы: Резюме, портфолио, GitHub — всё это играет роль. Убедись, что у тебя есть проекты, демонстрирующие навыки Django и DRF.
Низкий спрос в регионе: Django может быть менее популярным в некоторых регионах. Посмотри вакансии на удалёнку.
2. Стоит ли переходить на Java Spring?
Spring сложнее: Java Spring требует изучения не только Java, но и всей экосистемы, которая гораздо шире и сложнее, чем Django.
Длинный путь: Если человек только начинает с Python, переход на Java добавит кучу новой информации, что может замедлить прогресс.
Потенциал: Spring популярен в крупных проектах, банковском секторе и корпорациях. Если есть тяга к этому — это может быть полезно, но нужно понимать, что путь не быстрый.
3. А как насчёт FastAPI?
Переключение легче: FastAPI — это тоже Python, но с другим подходом (асинхронность, работа с REST API).
Совместимость с Django: Можно комбинировать их в проектах, использовав Django для административной части и FastAPI для API.
Растущий спрос: FastAPI набирает популярность, особенно в проектах, где важна скорость разработки и производительность.
4. Совет: что делать?
Не бросай Django/DRF сразу: Развивай своё портфолио, участвуй в open-source проектах, ищи заказы на фрилансе. Это покажет работодателю твой практический опыт.
Осваивай FastAPI параллельно: Это не потребует от тебя много времени, а знание двух популярных инструментов расширит твои возможности.
Spring — опция для долгосрочной перспективы: Если душа лежит к Java и большим корпоративным проектам, переходить на Spring — логичный шаг. Но сначала стоит уверенно встать на ноги с Python.
Главное — не метаться слишком быстро. Найди одну область и добейся уверенности, прежде чем переходить к другой.
17312301284270.mp4683 Кб, mp4,
480x270, 0:07
454 3324471
>>324459
Это классическая дилемма начинающего разработчика, особенно на этапе поиска первой работы. Вот несколько советов и размышлений:
1. Почему не получается с Django/DRF?
Недостаточно навыков: Возможно, нужно подтянуть уровень. Например, изучить более сложные вещи: асинхронность в Django, оптимизацию запросов, работу с Celery.
Плохая практика поиска работы: Резюме, портфолио, GitHub — всё это играет роль. Убедись, что у тебя есть проекты, демонстрирующие навыки Django и DRF.
Низкий спрос в регионе: Django может быть менее популярным в некоторых регионах. Посмотри вакансии на удалёнку.
2. Стоит ли переходить на Java Spring?
Spring сложнее: Java Spring требует изучения не только Java, но и всей экосистемы, которая гораздо шире и сложнее, чем Django.
Длинный путь: Если человек только начинает с Python, переход на Java добавит кучу новой информации, что может замедлить прогресс.
Потенциал: Spring популярен в крупных проектах, банковском секторе и корпорациях. Если есть тяга к этому — это может быть полезно, но нужно понимать, что путь не быстрый.
3. А как насчёт FastAPI?
Переключение легче: FastAPI — это тоже Python, но с другим подходом (асинхронность, работа с REST API).
Совместимость с Django: Можно комбинировать их в проектах, использовав Django для административной части и FastAPI для API.
Растущий спрос: FastAPI набирает популярность, особенно в проектах, где важна скорость разработки и производительность.
4. Совет: что делать?
Не бросай Django/DRF сразу: Развивай своё портфолио, участвуй в open-source проектах, ищи заказы на фрилансе. Это покажет работодателю твой практический опыт.
Осваивай FastAPI параллельно: Это не потребует от тебя много времени, а знание двух популярных инструментов расширит твои возможности.
Spring — опция для долгосрочной перспективы: Если душа лежит к Java и большим корпоративным проектам, переходить на Spring — логичный шаг. Но сначала стоит уверенно встать на ноги с Python.
Главное — не метаться слишком быстро. Найди одну область и добейся уверенности, прежде чем переходить к другой.
455 3324555
>>323852
Ты не забывай, что отправка в процессы тоже не бесплатная
456 3325014
>>324555
Ниправда працесы (ониже патоки) это када многа сразу всево делоеться эта быстро и круто мне на курсах скозали! И чем большы працесов создаёш тем быстрее жсон перекладывоеться!!1
457 3325037
>>323852
ты бы хоть показал что считаешь.
Screenshot2024-11-1823-22-49.png224 Кб, 1072x766
458 3325148
Посоны, работает)
459 3325226
>>325148
Ещё на телефон сфоткал бы.
460 3325270
>>325014
>>324555
>>325037
>>323852
ВСЁ БЛЯТЬ. 50к симуляций за 8 секунд. Петухон на одном яичке умудрялся это считать полчаса.
Все ядра загружены, потребление памяти приблизительно нулевое нахуй, потому что все дерьмо передается по указателям (питухон умудрялся выжирать по 4 гига, хотя я честно пытался там тоже все максимально по ссылкам передавать).
За 2 дня освоил GOвно и нахуякал симулятор. Какой же пиздатый язык. С петухоном не идет ни в какое сравнение. Типизация строгая, дженерики, есть доступ к указателям, что дает возможности что угодно передавать по ссылке, но при этом не надо чистить говно вилкой как в крестах. Синтаксис лаконичный, многопоточность - мое почтение. То, что в петухоне делается с анальной болью (вообще не делается), тут делается в 2 строчки нахуй.
При этом я даже не компилировал эту хуйню, просто жму go run и код запускается как в интерпретаторе.
Охуел, что это единственный язык, который я знаю, где объекты можно передавать по значению, лол. А все потому что нет никаких блять объектов, есть СТРУКТУРЫ из примитивных типов или указателей на другие структуры, эта хуйня легко копируется. Нет классов, конструкторов и прочей параши, вообще идеально.
Решительно готов писать дальше на ГО, питухон идет нахуй. Всем рекомендую.
461 3325271
>>325037

>ты бы хоть показал что считаешь.


Это секрет, если скажу, то будешь смеяться
462 3325281
>>325271
Конечно будем смеяться всем тредом. Иначе для чего мы тут сидим. Давай говори.
463 3325282
>>325270

>Нет классов


Встал и вышел из треда, грязный казул.
Стикер575 Кб, 250x250
464 3325322

>Итак, отсутствие _ означает, что метод является частью публичного API класса, а наличие _ служит сигналом: "Не трогать без необходимости".


Блядь почему у меня сразу возник вопрос - а мой хуй ты можешь потрогать без необходимости?
465 3325345
Посоветуйте книжку по асинхронности для полного новичка.
466 3325381
>>325345
man 3 select. Бозарю, ещё захочешь.
467 3325384
>>325381
Ты мне, сопливому новичку, предлагаешь рыться в кишках асинхронности питона?
Мне бы книжку или гайд.
468 3325460
>>325384

>питона


Нет, сишного кода, который питухон дёргает под капотом, пока ты пишешь свои хелоуворды. Хотя в питухоне, самом ЮЗЕРФРЕНДЛИ языке в мире, на удивление так никто и не сделал нормального эвент лупа с интуитивным апи, так что один хуй будешь ебаться с селектами напрямую, когда понадобится, например, неблокирующий и/о для сокетов. Прямо как в голых сях.

Какую книжку ты ожидал, дебил с курсов? Нет такой книжки, где тебе напишут "асинхронность - это когда многа всево и сразу делоеться и всё супир пупир быстро а синхронность гавно! Вау асинхронность крута, надо только сделать await ScalableRobustEnterpriseFramework.sdelat_zaebis_async() и ты сразу станеш мастиром асинхронности!" Хочешь ПРОСТА - ставь ФРЕИМВОРК, перекладывай жсоны и не еби мозги, ты же всё равно веб-дриснёй собираешься заниматься, уже видя себя успешным анальником 400к в наносекунду? Веб-кодиры в массе своей мало что понимают в асинхронности и прочих нюансах, они только знают ФРЕИМВОРК, большего от них не требуется для успешного закрытия тасок на перекладывание жсонов. Хочешь разбираться в вопросе - готовься напрягать мозги и читать многа букв на англицком, другого пути нет.
469 3325479
>>325460
Ну надушнил ты скуфидон, сколько можно-то, а?
470 3325493
>>325479

>зумерному говну НЕПРИЯТНО

471 3325498
>>325460
База.
472 3325517
>>325460

>Какую книжку ты ожидал, дебил с курсов?


Ты почему агрессируешь тут на меня сидишь, хуила?
Я тут вежливо общаюсь.
Может, анон натыкался на книжку/гайды, в этом и был вопрос.
Ты зачем-то побежал срать хуету про зумеров? Зачем? У тебя с головой все в порядке?
473 3325519
474 3325543
>>325517
Потому что ты залётный невежественный уёбок с курсов с розовой жижей вместо мозгов, не желающий слышать об отсутствии ИЗИ решения твоей проблемы

>Может, анон натыкался на книжку/гайды


Тебе намекнули недвусмысленно, что нет такой книжки. Айти и в частности то, что ты хочешь - это сложная хуйня не для всех, с которой надо основательно разбираться. Но ответ тебя не устроил, нет, дайте мне КНИЖКУ, где всё ПРОСТА, для НОВИЧКОВ и не надо думать! Ну хули с тобой поделать? Иди читай гайды от PajeetGPT на супир пупир питухон дотком, раз так сильно хочешь навернуть говна. Можешь ещё в ТИКТОКЕ материал поискать, зумерок.
475 3325564
>>325543
Таблетки.
Ты там на виме не пишешь? А то IDE это сликом ПРОСТА.
476 3325572
>>325564
Как же тебе печёт от осознания своей ущербности.
477 3325576
>>325572

>ыыыыы пичет


буууу гет э беттер матириал скуф
478 3325621
>>325564

> Ты там на виме не пишешь?


Я пишу. Другой анон.
479 3325667
>>325270
Хуя у меня ноут троттлит. Тупо в полтора раза производительность падает. А тухлозион наоборот разгоняется под нагрузкой, лол.
image.png564 Кб, 702x1000
480 3325757
>>325345
Пикрил норм.
Шизов выше не слушай, это просто ебланы которые горят с того, что их профессия перестает быть ЭЛИТАРНОЙ и они перестанут лутать сотыги, аутируя за пекарней на самом деле никогда и не была, обычная профессия, не требующая сверхвысокого icq, просто в нее часто влечет закомплексованных кончей, вот и возникают такие побочные эффекты.
481 3325762
>>325757

>не требующая сверхвысокого icq


Сильное заявление. Погромирование это чистая абстрактная логика. Т.е. деятельность напрямую зависящая от уровня интеллекта, ведь интелект это и есть логика и вывод. Другой вопрос, что много инструментов, например фреймворков, которые позволяют выполнять некую работу не напрягая мозг вовсе. По этой причине у людей часто бывает баттхерт, что бариста вкатун с интеллектом школьника, перекладывющий джосны считается погромистом прямо как ты,150 iq байтоёб. Впрочем, 150 iq красноглаз не стал бы так визжать и кидаться на людей как анон выше со своей сишной асинхронностью, он тоже скорее всего говночист с галеры, вымещающий свой стресс на мимокроках.
482 3325791
>>325757

>перестает быть ЭЛИТАРНОЙ


С чего бы это? ИТ масштабируется за счёт инструментов, абстрагирующих сложность, однако эти инструменты кто-то должен разработать. Это точно не перекладыватели JSON.
483 3325803
>>325791

>эти инструменты кто-то должен разработать


Несоизмеримо значительно меньшее количество людей, чем барист, которые этими инструментами будут пользоваться, что практически полностью вымещает СЛОЖНОСТЬ из профессии и обесценивает ЭЛИТАРНОСТЬ. О чем и писал анон выше.
484 3325805
>>325791
Сложность этой работы не выше, чем сложность работы любого другого инженера.
485 3325807
>>325805
Инженером ты можешь выучить свой стек и до пенсии в НИИ Рога и Копыта чертить втулки уже по мышечной памяти, а погромистом ты до старости должен будешь переучиваться, чтобы не отставать от прогресса.
486 3325819
>>325805
Ты делаешь вот это утверждение. Я хочу спросить, ты как это измерил?
Я как минимум отмечу, что программисты ещё и реализуют свои проекты, помимо просто проектирования.
487 3325821
>>325803

>что практически полностью вымещает СЛОЖНОСТЬ из профессии и обесценивает ЭЛИТАРНОСТЬ


Ты бариста что ли? Как это, вымещает сложность?
Ну, вон, Нетфликс не выдержал трансляции боя Тайсона, а там инженеры получше, чем много где. Им просто забыли сказать, что всю сложность выместили, и надо просто было сделать import python.framework.pizdatiy_stream.
488 3325824
>>325821
Быдло уймись. Думаешь, кому-то итт не очевидно, что ты набросился на нюфаню с асинхронностью только для того чтобы свое чсв потешить. Унижать других для того чтобы почувствовать свою значимость - поведение жалкого отброса.
489 3325825
>>325824

>Быдло уймись.


/bратан, прежде, чем оскорблять людей на анонимном форуме, попробуй осознать мысль, что тебе могут отвечать разные люди.
490 3325826
>>325825

>import python.framework.pizdatiy_stream.


>ScalableRobustEnterpriseFramework.sdelat_zaebis_async()



>разные люди



Как скажешь, зайчик.
491 3325845
>>325826
Вы только поглядите на эту обиженку, уже полдня здесь ошивается-зашивается.

>что практически полностью вымещает СЛОЖНОСТЬ из профессии и обесценивает ЭЛИТАРНОСТЬ.


Тебе же ясно было сказано:

>Хочешь ПРОСТА - ставь ФРЕИМВОРК, перекладывай жсоны и не еби мозги


Здесь не было ни намёка на недостаточную илитарность веб-кодиров или что там ещё узрел твой воспалённый мозг, чмо ты закомплексованное, лишь сухая констатация факта, что баристам, которые хотят вайти и получать заветные 400к в наносекунду, достаточно открыть референс ФРЕИМВОРКА, чтобы освоить материал на достаточном для перекладывания жсонов уровне - книжечек для этого либо не пишут (ибо фреимворки в пайтухон и джээс устаревают каждую неделю или типа того), либо они говно и их чтение нерационально.
Ты какой-то очень тупой, даже с перекладкой жсонов вряд ли справишься, серьёзно, не надо оно тебе. Попробуй в пятёрочку вкатиться.
492 3325853
>>325826
У вас pattern matching потёк.

> зайчик


Ты слишком плохо скрываешь попоболь.
493 3325875
>>325762
не бомбит
494 3325876
>>313047
Я на госслужбе в офисе работаю. Зп 60к. Программирование это хобби
495 3325883
Так и знал что офисный пикабушный рак тред засирает.
496 3325891
>>325845

>бо фреимворки в пайтухон и джээс устаревают каждую неделю или типа того


Борщехлеб, простой вопрос: ты вообще в ИТ работал? Или ты чмо из НИИ кислых щщей вроде шизика-столярова?
Какую же ты хуйню несешь. Услышал где-то мемы про устаревающие за неделю фреймворки и сидит с серьезным видом повторяет.
Устройся на работу уже наконец, а не сиди на шее у мамки, и поймешь, что кишки С нахуй никому не сдались, как и твои обоссаные алгоритмы.
497 3325905
>>324323
Эксперт, зэпку озвучь?
498 3325908
>>324471

> Недостаточно навыков: Возможно, нужно подтянуть уровень. Например, изучить более сложные вещи: асинхронность в Django, оптимизацию запросов, работу с Celery.


Нихуясе требования для ПЕРВОЙ работы. Вы там в ращке ебнулись?

> Spring сложнее: Java Spring требует изучения не только Java, но и всей экосистемы, которая гораздо шире и сложнее, чем Django.


Какой конкретно?

Какой фреймверк лучше использовать для веб интерфейса устройства с аутентификацией? Джанго это оверкилл.
499 3325911
>>325876
Это ты? >>312921
500 3325931
>>325908

>Нихуясе требования для ПЕРВОЙ работы


Нам на дне карьеры в вузе рассказывали, что для того, чтобы тебя взяли джуном, нужно иметь знания мидла.
501 3325941
>>325931
Ну, сейчас примерно так и есть.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную позавчера в 10:02.

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

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