Это копия, сохраненная 13 января 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Апгрейд шапки после более, чем двух лет застоя
Укрывшись в норах и не выходя на улицу, ждём релиза версии 3.12
Предыдущий: >>2462085 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущий исходник: https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9
пиздец, уже успел в шапку насрать. ты зачем лезешь, если даже скопировать не можешь нормально?
>а питон развивается.
>изменений в базе.
>интерпретатор PyPy.
>и технологий.
>исходником.
Не шапка, а одна сплошная агрессия
Bot
API
Как мне заимпортить питоновский файл из бота в API? Если указать при импорте .. то он кидает ошибку типа нельзя импортить из родительских модулей. Что делать?
Там требуют 1-3 года опыта и высшее образование в информатике. Нихуя не для Джуна.
Как решать эту же задачу когда подаётся просто число я знаю. А вот как в предложении это сделать мне неясно. В какую сторону смотреть? На стэковерфлоу ответа не нашёл
Регэксп \\d+
Если составишь резюме с кейвордами, будут уже вакансии по теме, а иначе работай там, куда зовут, тебе ещё не самое плохое предлагают
Так это не зовут, а новые вакансии на hh по запросу python junior программист. Вот какого хуя там делает упаковщик товаров в озоне и разнорабочий?
a = "".join([a[:4], a[4].upper(), a[5:]])
Видимо AI смотрит где работали кандидаты, вкатившиеся на Junior, и подсказывает тебе порядок трудоустройства. А ты пытаешься перескочить через ступеньку как с джуна в сеньку.
Господа. Помогите пожалуйста, вы моя последняя надежда, не хотел сюда писать и отвлекать вас, но я не могу уже.
Загружаю цены всех акций из wilshire.
При расчёте, после определённой акции мне выдаёт ошибку: TypeError: 'NoneType' object is not iterable. Я понимаю, что это за ошибка.
Но я не понимаю, почему она появляется.
В моём основном файле 2879 наименований.
Создал тестовый файл с загрузкой 6 акциий на том месте, где выдаёт ошибку. Всё работает как должно.
https://goonlinetools.com/snapshot/code/#chcicgrnhke60wq12fn3wr
первый пик для привлечения внимания
Просто подскажите, почему может появляться такая ошибка? основной файл почти точная копия, единственное отличие это то, что в списке 2879 элементов.
Вычисление числа Фибоначчи с помощью рекурсии очень плохая задача, только для понимания того что такое рекурсия. Рекурсивным способом найти число начиная где-то с 40 или 50 уже занимает туеву тучу времени. Там проблема в том что она ещё и двоится, вычисля на каждом шаге то что уже было вычисленно на предыдущем в пустую забивая стек.
Сделал с помощью циклов и держись этого. Скажи своему тьютору что вычисление фибоначи рекурсией неэффективно.
н-но ведь м-м-мемоизация....
Чет с каждым днем рекомендации все пиздецовее и пиздецовее.
Можно написать волшебное слово @caсhe перед рекурсивной функцией. Кстати, поясните за cache и lru_cache, всегда ли можно их применять без задней мысли, если нужно кешировать много значений, или лучше самому явно выделять память под нужное?
всем спасибо, я сообразил
пользуясь случаем вынужден отметить, что это пиздец
я не программист, но как доходить до таких выводов я вообще не понимаю
просто пальцем в небо ткнул и всё заработало
почему раньше не работало, так и не понял
но теперь всё работает
Сейчас я рефакторю свои старые сервисы, и почти на каждой функции у меня возникает ебанутый поток мыслей в духе:
1. бля, можно переписать вот так
2. начинаю переписывать
3. стопэ, вот так еще пизже будет
4. начинаю переписывать по-другому
5. о ебать, а вот тут еще можно поменять, ваще охуенно будет
6. начинаю переписывать по-третьему
7. блядь, ниче не работает [вариант оказался тупиковым]. Какие у меня там две предыдущие идеи были? Да хуй знает уже, не помню.
Короче сводится к тому, что я бегу за двумя зайцами и ни одного не ловлю. Как с этим бороться?
есть очень простой способ, который большинство программистов почему-то игнорирует - писать комментарии в коде
Ну комментарий в коде - это когда ты его уже написал и просто оставляешь напоминалку, зачем/как он работает.
...
govno
govno
govno
/ #DEBUG: #TODO: здесь можно сделать вот так:
govno2
govno2
govno2
/
govno
govno
...
абу спиздил звёздочки
> /
это "слэшзвёздочка", оно же "многострочный комментарий" в нормальных языках. как у вас в педоне комментарии делаются понятия не имею.
10 на -8 будет равен -6? Я спать не могу.
Во-первых, lru_cache дополнительно тратит память на, собственно, lru, которые при мемоизации не нужны, во-вторых, принимает далеко не любые аргументы, в-третьих, не чистится, в-четвёртых, сочетание 2 и 3 может приводить к очень неожиданным затратам памяти и де-факто её утечкам (формально это не утечки, просто кэш оставляет ссылку на объект, которую ты потом не уничтожишь, и сборщик мусора его не соберёт).
Так что вывод:
0. если тебе похуй (это скрипт, который отработает и закроется, или задачка на литкоде) - делай смело
1. lru_cache(None) и cache - нахуй
2. lru_cache(size) - для чего-то, что требует запоминать все вызовы (типа алгоритмов - динамического программирования, да того же факториала), он подходит плохо, используй его именно как каш.
Извини за духоту, но в математике остаток от деления не может быть отрицательным числом, соответственно неполное частное деления 10 на - 8 дб -1, ост. 2?
Или при обработке деления положительного делимого на отрицательный делитель, правила другие? Прости, братец, что время трачу, хочу разобраться.
лучше переменные нормально называть. Это бэст практиес, когда код понятен и без комментариев. Если так не получается, то лучше выносить документацию в README (которых может быть несколько, если проект большой) либо ещё куда-то, где документцаия хостится
>в математике остаток от деления не может быть отрицательным числом
Кто сказал? Мариванна в первом классе? С точки зрения общей алгебры, где целые числа - евклидово кольцо с нормой "модуль числа", отрицательный остаток - вполне нормально, лишь бы по норме был меньше делителя.
Какой определять знак остатка - вопрос соглашения в языке.
Сначала подумай, как хочешь сделать, составь план, потом обдумай ещё, как будешь доволен - пиши. Если по ходу дела начались мысли "а лучше так", можешь их записать, но от первоначального плана не отступай (разве что эти улучшения совсем локальные, но тогда они и в плане не должны быть отражены). Делаешь коммит, потом можешь уже дальше улучшать.
Что за вопросы какие-то странные.
А я смотрю ты порвался.
все). С чего начать - допустим, ясно. Синтаксис хуинтаксис, дата стракчерс и тд, изучено. Куда дальше-то? Я, допустим, фул тайм на другой работе - как мне лучше двинуться не ливая с работы чтобы нарабатывать компетенции максимально близко к потребностям рынка не тратя время на мертвую теорию? Какое-то портфолио начинать делать? Какие-то фриланс задачи пытаться искать или работать забесплатно? Где? (по-моему рано) Какие-то углубленнные курсы брать по каким-то более конкретным прикладным задачам?
Ну и вообще. Куда интересснее/актуальнее податься на питоне - веб, дата майнинг, нейросетки, мобильная разработка? Что вообще сейчас самое топовое по соотношению востребованность/деньги/интерес?
Понимаю, что вопросы выглядят макс зеленью и тупизной, просто хочется хоть какие-то общие направления понять для себя.
Задание звучит следующим образом - надо сначала написать функцию которая будет работать как калькулятор (сделано, 1 пик), после чего модифицировать её таким образом, чтобы стандартной операцией в ней было сложение.
Я что-то не понимаю как мне это сделать с моей функцией. У меня была идея сделать это как на 2 пике - сделать значение znak '+' по стандарту, а потом в итоговую функцию добавить if - тип если длина списка вводимых символов равна 3 (2 числа и знак) то znak подхватит нужное значение из списка, а если нет то станет стандартным. И всё бы ничего, но программа считает что знака нет, и пишет мне что он не распознан. Как это пофиксить?
Дефолтное значение сработает если не передавать третий аргумент вообще. Попробуй просто znak = razvvod[2] if len(razvvod) == 3 else '+'
Спасибо!
пацан, никогда не пиши транслитом в коде.
только англ язык.
так всем будет удобнее, и тебе в том числе
Хочу ускорить io-bound процесс (пишущий в сокеты) с использованием тредов. Правильно ли я понимаю, что из-за gil в дочерних тредах должно быть как можно меньше операций, в идеале - только запись в сокеты?
Скорее всего вот какая история. Твой сокет это TCP соединение. Когда ты пишешь 10 байт в сокет, сразу же эти данные отправляются дальше, идёт один ip пакет с данными, потом сокету надо ждать уведомление о получении и т.п., в общем идёт большой оверхед.
Поэтому лучше побайто не писать, а большими пакетами. Размер данных в одном пакете это примерно 1500 байт, поэтому сильно больше накапливать смысла нет
А ещё ты может сам тесты написать, попробовать отправлять данные блоками разного размера и посмотреть на скорость доставки
Посоветувайте какой стек выучить для работы питонистом?
Знаю немного С, немного сети, немого Python.
Опыта в IT нет, уже несколько лет учу все это
Думаю идти в веб питонист, django и чтото еще учить я не ебу
Но можете предложить что-то другое, критику и советы приветсвую.
Главное посоветуйте пожалуйста, куда мне повернуть, где легче всего будет вкатиться в IT
если ты:
а) готов велосипедить велосипеды с нуля по хардкору
б) согласен на самый простяцкий рендеринг
в) готов терпеть не очень высокую производительность
то почему нет? правда это будет в десять раз сложнее, чем разработка на юнити
И на C и на Python вакансий много. С одного стула потом не пересядешь, так что сначала выбери что тебе больше нравится - ковырять железки или сайтики.
Порог вката примерно одинаковый. На пихоне потолок зепок выше, но там уже нужны скилы к пихону отношение имеющие весьма условное.
Открой хехе.ру да посмотри.
Смотришь статистику - делишь минимальную зепку по языку на количество вакансий. C (15.5), Python (23.7), Javascript (30.8), Java (29.8), C# (88.68), C++ (90.0), Go (116,8) и так далее.
Я имел в виду сессионки про кораблики и танчики. На хехе у них вакухи были, плюс на собесе говорили, что на питухоне у них скрипты для анимации и эффектов (через бинды к движку на цепепе).
Что это за говно ебаное? Я сейчас лопну, сука. Почему можно до всего кроме очевиднейших миллиекунд дойти.
Могу только за кораблики сказать. Про метрики они ничего не говорили. В целом там нет лютого дрочилова на с++. Есть и мобилки и web, к скриптовым языкам отношение вполне нормальное.
ты работал на них?
from datetime import datetime
timestamp = '01:23:45.678'
x = datetime.strptime(timestamp, '%H:%M:%S.%f')
print(x.microsecond // 1000)
У меня нет этой хуйни почему-то (3.10.6 питон). По итогу решил костылем.
А. Блять, а я думал почему я не могу обратить datetime.strptime при импорте изначально, что пришлось импортнуть саму функцию. Это пиздец, совсем забыл эту ебанутую вложенность.
еще вот так можно:
from datetime import time
timestamp = '01:23:45.678'
x = time.fromisoformat(timestamp)
print(x)
В общем благодарю, теперь не чувствую себя обоссаным. Жаль только больше 6 знаков %f не воспринимает и приходится урезать, но думаю это фигня.
32 лвл лентяй с хуёвым матаном, хочу выбраться из SEO залупы, есть шансы?
Сети, админский софт и др. Ещё всякий датасаенс и лёрнинг
Если это ML/CV, то да. Берём картинку, делаем к ней свёртку с оператором Кэнни/Собеля и получаем наборы рёбер - линии очерка объектов на картинке. По ним восстанавливаем геометрию и вот у тебя уже контура с треугольниками.
Python нынче тесно связан с матешей в сфере RnD.
Вот сам курс:
https://stepik.org/course/67/syllabus
Я просто чет заебался высчитывать нужные значения, для решения задачи.
Спасибо, анонче! Я уж думал я ща кончусь на задании с пограмистами!
>>493049
Я пока вкатываюсь в основу, это переменные, динамическая типизация, строки и т.п. база. Но такое кол-во на степике математики меня прям угнетает. А выбор куда идти в пайтоне я пока не сделал, так как, мне нравится возиться с кодом, но так, чтобы не было матеши много, кроме мб бинарной алгебры. Я вообще, как истинный рпг любитель, буду качаться под шмот, вернее под вакансии. :3
Еще раз спасибо, анон!
>матеша так сильно нужна для кодинга?
Ты сейчас сильно удивишься, но математика это удел... та-даааам! математиков! Прикинь, да? Но опять же, всё зависит от области. Если ты пишешь условно говоря, программу для экологов, то с тебя потребуют знать экологию на базовом уровне.
Та математика, которую знают программисты, она очень поверхностная, с уклоном в computer science. Это скорее псевдоматематика. Не уверен, что computer science можно вообще назвать математикой, разве что с натяжкой.
Чел, в том курсе, который ты указал, вся математика уровня не выше восьмого класса средней школы. Тебя ни разу не попросят сделать что-то сложнее подстановки в готовую формулу, ничего выводить на листочке не нужно. Если это для тебя проблема, то на что ты вообще рассчитываешь.
Так я не говорю, что там какая-то мега математика, я говорю о том, что там всегда чет надо считать, гуглить формулы. Ясное дело, что я понимаю, что умножение более приоритетно в строчке со сложением, например. Я о том, что все задания упираются в посчитать, поделить, задание с погромистами я вообще не понял. Отсюда и вопрос, всегда ли будет нужна математика.
Привыкай к тому, что нужно для каждой задачи понять условие, гуглить непонятное, считать и вообще так или иначе напрягать мозги. Тебе объясняют совсем основы языка и "математика" в задачах присутствует, чтобы они не были совсем уж проходными. А эта задача >>493196 вообще на знание русского языка.
Всем привет, возник вопрос, мб простой.
Вот у меня список из n элементов
как мне разьить его на некоторое количество списков по 5 элементов?
Ну или как перебрать этот первоначальный список по 5 элементов?
есть кто трудоустроился в рашке без опыта в последние пару месяцев без мам пап?
я ибал, на хедхантере уже вакансий не осталось где я бы отказа не получил, мне блядь оттуда уже кладменом предложили работать
есть может варианты КУПИТЬ РЕКОМЕНДАЦИЮ НА СОБЕС ХОТЯБЫ
https://www.geeksforgeeks.org/break-list-chunks-size-n-python/amp/
>>493196
Для тебя это упор на математику, ты серьёзно?
Понимаю!
Я вообще из граф.дизайна вкатываюсь и я работаю только с визуалкой и формами, чем с цифрами и текстом. Текст меня не парит, набивать строчки кода мне нравится, но когда, для реализации задачи, мне нужно вспоминать деления без остатка, плюс, это вписать в код, я прям схожу с ума. Причем, я ради прикола глянул, как кодят ребята, нет там никаких вычислений, никаких там d % a != 0 и подобного скама.
предполагаю что с этим придётся работать
Вот что смотрел
https://www.youtube.com/watch?v=uv4-MojCCes&t=556s&ab_channel=BeGeek
У меня нет знаний, чтобы оценить качество его кода или уровень сложности задания, но, мне кажется, что это ближе к реальности, чем искать скок там погромистов в зале у нас. При всем уважении к ребятам из Степик, спасибо им, в любом случае, за труды.
Плюс, я смотрю некоторые курсы, там без вводной части по интерпретатором, людей тут же кидают писать Привет, мир!, не разжевывая установку нужной программы для кодинга (пейчарм, или юпитер, или еще чет), как люди вообще работают (как пулить или каммитить файлы). Я к тому, что хочется реальной практики, примеров работы, именно работы, а не тренажера. Как-то так.
Быстрый пример из моей нынешней сферы. Есть кривая Безье. Важная фича в иллюстраторе? Да. Охуенный потенциал возможностей? Безусловно. Нужна ли она тебе, если ты граф.дизайнер? Нет, блять! Все лого рисуются от руки, потом кидаются в прогу и обводятся по гриду. Да, ты можешь юзать кривую Безье, но, если ты о ней не слышал, то у тебя не будет проблем ВАААПЩЕ. Анализируя рынок, ты вообще поймешь, что бОльшая часть лого это тупо текст. Фирменный знак по стольку по скольку имеется. И этот фирменный знак тупо производная часть от того же текста или визуальная форма общей концепции бренда. И возвращаясь к кривой Безье, вот она так сильно нужна? А ей можно посвятить целую главу бтв.
До математики в кодинге ты еще долго не дойдешь, если ты еще на уровне циклов и ифов.
Я вообще лингвистоэкономист, умеющий решать максимум квадратные уравнения за 8 класс школы, и не припомню, когда последний раз нужно было матешу тыкать на самом деле помню - когда настраивал логирование в локи, там нужно было позадрачивать ряды и среднее скользящее.
Тебе главное понять алгоритмизацию - не в смысле алгоритмы типа О-малое в питоне тебе вряд ли такое дрочево пригодится, а какие шаги тебе нужно предпринять, чтобы получился бизнес-процесс, типа 1) получаю данные, 2) проверяю на ошибки 3) делаю с ними то-то и то-то 4) отдаю отформатированные данные дальше.
потому что задачи на математику это чисто для курсов.
так то есть модули математические в питоне где вместо формул в коде ты просто импортируешь модуль МАТХ и там есть функции которые посчитают за тебя
То есть тебя дрочат на задаче решить логарифмы или фибоначчи а потом ты узнаешь что можно было написать log или fib и он тебе выдаст решение, лол.
Те же модули для нейронок там весь матан записан заранее в функции и т.п.
>какие шаги тебе нужно предпринять, чтобы получился бизнес-процесс
Могу ошибаться, но это уже работа import ?
А так, у меня нет никаких проблем с переменными, динамической типизацией, я не теряюсь даже в новом для меня while, когда переменная, заданная, условно, значением 0, может изменяться в процессе цикла, "обновляя" это значения через, например, += 1.
А так, я, видимо, хочу или быстрых результатов, или мне нужно пройти полный курс, а потом уже додумывать, где у меня пробелы и что надо подтянуть. Или все сразу :3
В любом случае, спасибо за поддержку и участие!
>>493785
>потому что задачи на математику это чисто для курсов.
Типа, как ребят учили, так они и учат остальных.
>Те же модули для нейронок там весь матан записан заранее в функции и т.п.
Ого! Некисло. Но я так понял, что это определенная сфера в пайтоне? Условно, работа с фреймворками подразумевает нечто такое?
>Могу ошибаться, но это уже работа import ?
Не, я вообще не про это.
Тебе для создания программы нужно алгоритмизировать свои действия - разбить концепт программы на составные задачи.
Программу прежде всего надо запустить (сейчас ты понятное дело запускаешь просто через ИДЕ, но в какой-то момент тебе надо будет ее задеплоить на сервер)
Тебе нужно принять какой-то ввод (сейчас у тебя ручный ввод с клавиатуры или какой-нибудь захардкоженный список, скажем) - в дальнейшем ввод у тебя может быть через слушание вебхука какого-нибудь другого веб-сервиса - на веб-сервисе что-то произошло, и тебе в приложение прилетела об этом инфа со всякими метаданными, например пользователь совершил платеж, и тебе поступила инфа об айди транзакции, имени пользователя, номере кредитки, сумме платежа, наименовании валюты, айди покупки.
Входные данные нужно проверить на корректность (например в сумме платежа не могут быть буквы очевидно)
Далее тебе с этими данными что-то надо сделать - например записать в базу данных лог о проведенной транзакции. Нужно открыть коннект в базе, составить запись, которую ты хочешь записать, проверить, что все составляется правильно, записать лог, закрыть коннект к базе.
После этого тебе стоит записать например в другую базу лог об успешной работе твоей программы - "время такое-то, успешно записал в базу лог о проведенном платеже".
Вот о такой алгоритмизации я говорю. Это очень обобщенно, понятное дело.
> a опepaция нa зaвтpa, нa cубботу нa 11 дня нaзнaчeнa бляять...
Но ты ведь говорил что на пятницу...
Его уже разоблачили, скрины прикрепляли 2018 года, у него так же кот умирал. Очередной скамер уебан, забей.
>бОльшая часть лого это тупо текст
Который нынче векторный (TrueType) и каждый глиф шрифта задаётся кривыми Безье. А поверх этого ещё таблицы с отображением символов на глифы, хинты, локализация и вот это вот всё, что влияет на рендер конечного текста.
Так я и говорю, что кривая Безье крутая и важная штука. Но мне, для реализации проектов, она не нужна. Не будет у тебя никогда задачи, которую нужно и возможно решить именно с помощью этой фичи.
Ну так тебе же надо как-то графический элемент встраивать в очередной макет? А для этого нужно менять его параметры, которые в конечном итоге являются параметрами той самой кривой. И делать это надо не руками, как ты привык, а программно, чтоб оно само туда встраивалось.
Жаль только без денег сидеть придется, ибо на работу я ходить больше не буду, потому что сейчас есть само обучение и время на отдых, а если я буду работать, то потребуется время не только на работу, но еще и на отдых от нее, и в итоге я в 3 раза замедлюсь.
Скоро будет график 8 часов сна, 8 часов питонинга, 8 часов отдыха, можете мне не верить.
У меня уже две специальности совершенно другие и на каждую мне приходилось заставлять себячето делать, а тут нет такого
можно функцию хеширования самому задать
типа class HashSet(set):
def __hash__(self):
return str(self).__hash__
a = HashSet({1, 2, 3})
Ну и дальше можешь складывать в dict
P.S хеш-функцию погугли какую лучше использовать. То, что я написал скорее всего говно
Оказывается frozenset работает как надо
По единственной рабочей технике апнуть что угодно - регулярно делать что-то, что заставляет работать то, что ты хочешь апнуть, медленно увеличивая нагрузку. Хоть бицепс, хоть мозг, хоть физическая память, хоть лизание пизды, любые скиллы апаются одинаково.
и чем ты нагружал мозжечок? двачем?
типа сперва легкие разделы типа футбача, потом перешел на аниме, потом БЭ, потом в ПО ушел и закончил в крымотреде.
щас ПО закрыли и приходится ебашить питон, не так ли?
понял, смекнул, просёк фишку
po закрыли? Нихуя себе, а я ожидал, что от такого на весь двач хлынет лавина политговна, а тут так, говноручеёк. Жаль, раньше этого не сделали.
>Я даже не знал, что по закрыли, в отличии от тебя
>а вы оказывается знали
Иди работай, дурачок.
Кстати кто пробовал написать скрипт чтобы он постил за вас на дваче? это реализуемо?
Я сейчас работаю над скриптом, чтобы он давал пинок под зад всяким дурачкам с двача.
TypeError: unsupported operand type(s) for -: 'list' and 'float'
Почему-то он не берет по одному элементу из histogram.keys(), а каждый раз выдает тупо весь список целиком
видимо биномиал вернул лист, а не скаляр. проверяй n и p. по идее, у тебя где-то тайп чекер ругнуться должен
Есть два листа листов:
List1 [[говно],[моча],[залупа],[член]]
List2 [[говно, 1, 3],[лол, 5, 3],[залупа, 3, 1],[дед, 3, 3]]
Как мне проверить на соответствие по первому элементу каждого листа второго листа, на каждый элемент листов первого листа?
Короче говоря, мне нужно, чтобы на выходе было:
List3 [[лол, 5, 3],[дед, 3, 3]]
По числу могут отличаться, или только по содержанию?
r=[]
for l1,l2 in zip(List1,List2):
__if l1[0] != l2[0]:
____r.append(l2)
по содержанию. Если быть точнее первом листе:
ubervalueslist = [['URL1'],['URL2'],['URL3'],['URL4']]
А во втором:
ubermegasuperlist = [['URL1', 'title1', number1, 'country1'],['URL5', 'title5', number5, 'country5'],['URL3', 'title3', number3, 'country3'],['URL6', 'title6', number6, 'country6']]
Тобишь проверяется по URL из ubermegasuperlist, если такого же нет в ubervalueslist, то нужно записать весь полный лист из ubermegasuperlist в котором содержится этот URL
Выход:[['URL5', 'title5', number5, 'country5'],['URL6', 'title6', number6, 'country6']]
Тут только ньюфаги пишут, несут какую то хуйню что даже читать невозможно
мимо бэк техлид, основной язык питон
соевых
ubermegasuperlist = [['https://www.youtube.com/c/NebulaPhotos/about', 'Nebula Photos', 11927319, 'United States'],['https://www.youtube.com/c/AstroBackyard/about', 'AstroBackyard', 38167003, 'Canada'], ['https://www.youtube.com/c/Astrobloke/about', 'Astrobloke', 379015, 'United Kingdom'], ['https://www.youtube.com/c/NickPagePhotography/about', 'Nick Page', 9243824, 'United States']]
ubervalueslist = [['https://www.youtube.com/c/colorgradingcentral/about'],['https://www.youtube.com/c/PremiumBeat/about'],['https://www.youtube.com/c/NebulaPhotos/about'], ['https://www.youtube.com/c/AstroBackyard/about'], ['https://www.youtube.com/c/MidlandPictures/about']]
print(ubervalueslist)
print(ubermegasuperlist)
r=[]
for l1,l2 in zip(ubervalueslist,ubermegasuperlist):
if l1[0] != l2[0]:
r.append(l2)
print(r)
out:
[['https://www.youtube.com/c/colorgradingcentral/about'], ['https://www.youtube.com/c/PremiumBeat/about'], ['https://www.youtube.com/c/NebulaPhotos/about'], ['https://www.youtube.com/c/AstroBackyard/about'], ['https://www.youtube.com/c/MidlandPictures/about']]
[['https://www.youtube.com/c/NebulaPhotos/about', 'Nebula Photos', 11927319, 'United States'], ['https://www.youtube.com/c/AstroBackyard/about', 'AstroBackyard', 38167003, 'Canada'], ['https://www.youtube.com/c/Astrobloke/about', 'Astrobloke', 379015, 'United Kingdom'], ['https://www.youtube.com/c/NickPagePhotography/about', 'Nick Page', 9243824, 'United States']]
[['https://www.youtube.com/c/NebulaPhotos/about', 'Nebula Photos', 11927319, 'United States'], ['https://www.youtube.com/c/AstroBackyard/about', 'AstroBackyard', 38167003, 'Canada'], ['https://www.youtube.com/c/Astrobloke/about', 'Astrobloke', 379015, 'United Kingdom'], ['https://www.youtube.com/c/NickPagePhotography/about', 'Nick Page', 9243824, 'United States']]
Что я делаю не так?) На примере который кидал ранее проверил - все работает, а тут возвращает тупо ubermegasuperlist...
>На примере который кидал ранее проверил - все работает, а тут возвращает тупо ubermegasuperlist
Потому что у тебя так пример построен. Я даже уточнил, но ты вопроса не понял.
ubermegasuperlist = [['https://www.youtube.com/c/NebulaPhotos/about', 'Nebula Photos', 11927319, 'United States'],['https://www.youtube.com/c/AstroBackyard/about', 'AstroBackyard', 38167003, 'Canada'], ['https://www.youtube.com/c/Astrobloke/about', 'Astrobloke', 379015, 'United Kingdom'], ['https://www.youtube.com/c/NickPagePhotography/about', 'Nick Page', 9243824, 'United States']]
ubervalueslist = [['https://www.youtube.com/c/colorgradingcentral/about'],['https://www.youtube.com/c/PremiumBeat/about'],['https://www.youtube.com/c/NebulaPhotos/about'], ['https://www.youtube.com/c/AstroBackyard/about'], ['https://www.youtube.com/c/MidlandPictures/about']]
print(ubervalueslist)
print(ubermegasuperlist)
ubervaluesset = { *sum(ubervalueslist,[]) }
r=[channel for channel in ubermegasuperlist if channel[0] not in ubervaluesset]
print(r)
Все, теперь понял. Спасибо огромное, добра тебе и сорян за тупость)
потому что ты по сути не будешь знать как на самом деле работает компьютор.
Это ответ на твой вопрос.
А если ты хотел спросить "Почему это важно, хотя я считаю неважным?" - ну хуй знает. можешь считать как угодно.
Однако, программист который знает как работает компьютер, все же продуктивнее.
Я говорю о том, что это параллельно с пайтоном изучать можно?
>потому что ты по сути не будешь знать как на самом деле работает компьютор
Кто тебе запрещает сначала научиться программировать, а потом изучать устройство компьютера и переходить на низкий уровень?
Есть "каналы", в которых можно задавать вопросы.
С другой стороны - никто не хочет отвечать на бесконечные вопросы от новичков. Вы достаёте.
Кроме того, что вы не можете понять ответ, так ещё и с чем-то совсем глупым придёте.
Два вопроса, аноны-разработчики.
1. Нужно написать приложение, которые при первом старте подключается к БД, а затем после завершения работы сохраняет данные для повторного входа. Как это реализовать? Поначалу думал про txt файл, в котором лежит неймкортеж с данными для входа в БД, а при запуске программы проверяется, имеется ли строка и, если да, то данные заполняются из этого файла.
Не безопасно, да и по смыслу очень костыльно. Есть варианты?
2. Знаком немного с TKinter, но становится вопрос про динамические окна: после подключения к базе данных и далее в приложении начинается работа с её записями, чем это реализовать, кроме вызова разных фреймов в основном окне? У меня была идея слияния окон, но я не придумал как и даже не знаю, в какую сторону гуглить. Можно ли замутить что-нибудь похоже, как на пикриле?
Не прошу помощи в коде, нужно немного понимания, что можно сделать, а на что даже время не тратить.
Moron, который не может вкатиться, спок.
>>497617
1. "Есть варианты?" не особо. Можно использовать json-файл, из которого получать информацию, см. информацию о модуле json. В любом случае, чтобы подключиться к БД, нужно ввести логин и пароль.
2. "идея слияния окон"
https://pastebin.com/BDYqp1Sd
self.add_bool используется, чтобы не добавлять tk.Text для self.root ещё раз, если пользователь нажмёт на кнопку.
>>497803
"Машинное обучение. Карманный справочник. Краткое руководство".
Пиздос. и зачем же "не новичок" тогда просит ПОСОБИЕ ?
>не может вкатиться
Причем тут я? Ты просто токсичный идиот и пишешь хуйню. А вкатиться на самом деле не так легко, как к твоей маман в постель.
> вкатиться на самом деле не так легко
Если ты даун, то да, может быть, очень нелегко. Но в этом виновата твоя мать шлюха, что у неё много парней было и ты родился несмышлёным.
"Нелегко" пишется слитно, чмо.
Я тоже не новичок. Написал хеллоу ворд и выучил определение функции и переменной и начал вкат в машин лернинг что бы обойти всех лохов и начать быстрее деньги зарабатывать. А там какие то матрицы, векторы. В общем чуть не бросил айти. Не советую.
>А там какие то матрицы, векторы
Вот уж куда-куда, а в машинлёнинг вышканенужнамцам совсем не надо лезть. Просто совсем.
Прошел курсы на степике, насмотрелся про ООП, с чего продолжать вкат в fastapi? Хочу сайтик, сделать, вот пип инсталл фастапи я прожал, а дальше что?
Прошу наставлений
Пройди официальный гайд по фастапи доке
https://pastebin.com/wKX6ufsi
>inb4 долбоеб
да.
> с той же скоростью, что и dpkt.
а должен был минимум в 10 раз медленнее. Что-то не то. Разбирайся!
скорее всего ты неправильно используешь dpkt.
загуглил, кстати за тебя:
# Create the filter
bpf = pcapy.compile (datalink, 1500, "tcp", 0, 1)
И ведь всё реально! Питон ещё утрёт всем нос. А самое главное, обещают всё с обратной совместимостью. Мы просто обновим Питон, а старый код будет летать ракетой!
или может стоило просто код написать нормально?
Либо руки из жопы, либо стоит арендовать впску чуть дороже чем 50 рублей. Очевидно имплаинг что бот ничего сложнее обработки текстовых данных не делает.
Так ты и с плюсами не будешь знать, нужен асамблер и знание теории компиляторов, что бы понимать что действительно происходит в компьютере и что делает твой код. Без этого ты так и будешь ебаться с абстракциями, хоть и приближенными к железу.
Я про туториал с главной страницы, скрины прикреплены.
Это обычное дело
зачем автор ввел новый, никому, кроме него, неизвестный термин "язык полного спектра"? чтоб буков в книге было побольше и продать подороже?
зачем автор ввел новый, никому, кроме него, неизвестный термин "язык полного спектра"? чтоб буков в книге было побольше и продать подороже?
Выглядит интересно. Но есть пара моментов:
1. Очередной мертворожденный супер быстрый фреймворк? Который по счету? Не пора ли открывать кладбище в треде?
2. Основной затуп в веб.приложениях это сеть по которой идет запрос и БД.
https://surveys.jetbrains.com/s3/c2-python-developers-survey-2022
Результаты 2к21:
https://lp.jetbrains.com/python-developers-survey-2021/
Ну pyinstaller тогда, это бандл байткода и бидона с либами.
Работает замечательно для несведущих хуев, которые твоя ЦА, как я понимаю.
640x352, 1:01
Когда собирался учить питон, изучал этот вопрос, но не нашел откуда скачать крякнутый PyCharm, везде только бесплатная версия. Или и бесплатной версии за глаза? А если я стану супер-кодер и захочу написать новый ютуб, то можно ли это будет сделать в бесплатной версии?
Сразу на vscode надрачивайся
Ну попробуй разные и юзай какая зайдёт
> крякнутый PyCharm
Бери бесплатную и будет тебе счастье. Но будь аккуратен, т.к. Пайчарм написан на Java и любит оперативку жрать.
VS Code\Codium тоже топовый редактор кода.
А в этой самой пичарм можно сразу несколько языков крутить? Это деды на одном языке весь проект писали, а нынче и трёх то мало бывает.
в функции get_cov_ror, начиная со 116 строки нужно сделать новые переменные, поменять sdate, edate на что-нибудь другое, например SDATE, EDATE, и далее в используемых функциях get_cov_between_date и roi_between_dates уже использовать SDATE и EDATE
я так и не сообразил, почему это работает с маленьким списком, но не не работает с большим
и забил
может когда нормально выучу питон, то пойму
Я же правильно понимаю, что если дифференцировать а*х^2 по а, то ответ будет х^2?
Какое-то затмение нашло, сто лет не пользовался, все забыл нах.
wolframalpha.com
Дали задание на собесе. Открываю в пайчарме, пытаюсь запустить - жалуется, что uvicorn-а нет.
Накатываю всеми способами - все равно жалуется.
Это что за поебень?
На fastapi тоже жалуется, если посмотришь
Тебе надо корректно подключить виртуальные окружения и в них поставить. Или поставить прямо в систему, но лучше в окружения
> c:\
кровь из глаз, не надо так делать, переучивайся, пока не поздно, на тебя как на человека смотреть станут
>если ты до этого никогда фастапи, корны и т.п. не ставил, то к позиции всё равно не готов
Это да. Видать, придется всерьез за питона браться.
А я только только РФТ до уровня сеньеора прокачал и оффер получил(((
Хочу вкатиться в работку из-за нестабильной ситуации и лутать какую-то копеечку. В качестве инструмента вката выбрал как раз питон. Как сейчас с работой? Как джуну живётся?
Опыт петона на уровне олигофрена, писал максимум скриптики в 100 строк для автоматизации рутины. Ну и 2100 птс на кодфорсе
Говорят, что к джунам сейчас требования как к сеньорам позавчера. Вот и думай, стоит ли тратить время на вкат. Может лучше потратить на освоение отечественного линукса. Один хуй курс взят на импортозамещение. Ну это если планов нет на эмиграцию.
Отцы нужна помощь
пытаюсь в джанго, хочу получить ввод и вывод инфы на одной странице
Что-то такое нашел в интернетах, но дял функций
А как получить, если все делается на основе класса?
Естьк акой-то простой пример? В интернетах не нашел от слова совсем.
Мб какой-то метод есть, который проверит считывание данных и выдаст что-то в другое поле? но form_valid не работает
Даже до конца не понимаю, как сформулировать запрос дальше чем "как сделать ввод и вывод инфы на одной странице в django на основе классов, а не функций?" Хотя бы на уровне введите 2 числа и получите их сумму, без каких-либо обращений к базам данных
Есть желание в перекат, из-за этого и хочу начать что-то мутить в плане программача не для себя, а за лавешку
где вопросы о том как лист листов перебрать, чтоб получился дикт диктов? каждый день захожу, а тут ыыыыах думаю вкатитсо лол где плотют больше ыыыааааа? дебилы, сука!
Двачую. Из всего /pr тут самый низкий уровень дискуссии. Впору разбивать тред на две части - для вкатутосиков и для остальных и второй будет мёртвый
Есть значения словаря котыре нужно превратить в сет
ewfwef = '9', qqwe='12334',green = 'graas', a = '123', f=[7])
нужно добавить проверку и перед выводом превратить список в тюпл. Как это можно сделать?
Скопируй нормально, я тебе цикл напишу, а то у тебя хз что вообще. Какая-то круглая скобка в конце.
Написал, как понял, короче
Но учти, что значения словаря могут быть не хешируемые, а сет обязательно, так что может и в исключение улететь.
Большое спасибо
Ну я подумал что сейчас изи будет, тоже экстрактну картинки чтобы вручную решать и потом пойму как отправлять результат связав его с айдишником каким-нибудь который мне прислали. Но не тут-то было и оказалось что это дико унылая нудная срань которую даже разбирать не хочется. Он присылает на своей стороне js код который потом нужно выполнить, какие-то тесты хуесты, потом еще каждую картинку отдельным запросом, короче это такой ебучий унылейший клубок который просто желания и сил разбирать нет.
Вам когда-нибудь приходилось дублировать на своей стороне юзеру результаты клаудфлары, чтобы он вручную решил ее и дальше можно было реквестить без проблем любые ендпоинты сайта, имея пропуск?
1) Где почитать за вывод изображения (нампаевский массив) в окне программы с помощью PyQT/PySide Лучше со вторым
2) В опенсв есть встроенные функции для работы с уже обученными нейронками Есть файл .h5 и отсутствие желания докачивать тензорфлоу и еще сильнее увеличивать размер программі
Заранее спасибо за ответ
Стыдно, блядь. будет 2ах. У тебя там в формуле это в пункте 2. написано, смотрю в книгу вижу фигу?
Выгорел, не могу уже месяц на комп смотреть, как вы справляетесь с такими приколами и что с этим делать вообще?
Просто вроде как уже достаточно для себя усвоил, чтобы всё бросать, да и на текущей работе оставаться нет желания (работа с программированием не связана)
>как вы справляетесь с такими приколами и что с этим делать вообще?
Делаем быстро зарабатываем тоже мало, нуачо ты хотел то?, очевидно же.
Тоесть желание, интерес есть, а сесть делать сложно
Ты не по "х" дифференцируй, а по "а".
Но почему тут вызывается функция decorator и в терминал печатается "11111"?
Я же не вызывал ничего, просто объявил 2 фукнции. Одна с декоратором. Но ничего не вызывается же.
Декораторы выполняютсся во время импорта. Fluent python можешьглаву про них почитать, там подробнее.
дополню анона:
собственно, @decorator и есть стейтмент исполняющийся на верхнем уровне. можно его убрать и после дефа функции f написать f = decorator(f), будет примерно (?) то же самое
Да
Как насчёт потрогать твоего Алёшу Поповича?
У питонистов так принято?
Ооо, буряточки!
>Есть чужой сервис с API возвращающий информацию о посте https://jsonplaceholder.typicode.com/posts/ где это идентификатор поста. API имеет ограничение по частоте запросов до 30 раз в минуту, а нам надо иметь возможность обращаться к нему в несколько раз чаще. При превышении ограничения происходит временная блокировка доступа. Для этого API уже сделаны зеркала (чтобы не усложнять задачу работой с прокси), api_addr = [‘https://jsonplaceholder.typicode.com’, ‘http://188.127.251.4:8240’,] Надо написать функцию на Python, которая по заданному идентификатору поста будет возвращать ответ метода API. Требования к функции:
Вызов функции не должен приводить к блокировке со стороны API.
Функция может вызываться одновременно из разных потоков и из разных процессов.
Функция должна эффективно использовать все доступные зеркала для доступа к API.
Любой разработчик команды должен иметь возможность вызывать функцию и просто получить результат.
Моя последняя версия. https://pastebin.com/aKYLDrcF. Снова получаю ответ, что api будет заблокирован и что ответа от моего решения можно ждать вечно. Питонач, что я сделал не так?
при вызове из многопотока при использовании with lock() все вроде как работает збс, я проверял импорты, перезаписи итд. Что не так.
уже и не знаю, куда копать. Откликнулся, блин, на django разработчика. Суть в том, что я не вижу даже малейшего применения этой задачи. Кмон, ставишь прокси и все, а тут какие-то зеркала, ограничения, мультипроцессоры, мультипотоки
> На слуху чаще всего Лутц
Я жду момента, когда прекратят везде советовать этого пидараса.
Вопрос: хули мы поднимаем именно процессы? Почему треды не помогают? Тут же IO-bound, почему бы не высрать разом 20-30 тредов которые будут исполняться конкурентно?
чтобы начать советовать самому?
>И она реально была BIG - десятки миллионов строк, где-то доходило до 100 миллионов
мальчик, бигдатой называют то, что нельзя уместить в один компьютер, а 100 миллионов строк влезет обычный ssd диск, даже в оперативку может поместиться, смотря что за строки
А ещё ты тролль-пиздун, не разбирающийся в матчасти
>то, что нельзя уместить в один компьютер
И ты сейчас такой заскакиваешь в тред на белом коне, выдавая проверенный сурс подобного мудрого изречения
и закономерно срешь себе в штаны
Это постирония такая...
>Питонач, что я сделал не так?
Много чего, это что называется "нужна алгоритмическая база"
Подумай, например, вот про что, допустим ты сделал запрос, у тебя залоггировалось время, потом ты выждал 55 секунд, и сделал сразу 28 запросов. В сумме 29. Потом подождал 10 секунд и сделал ещё 28 запросов.
Твой код сбросит счётчик, потому что с момента первого запроса прошло 65 секунд. Но для сервера ты сделал за последние 10 секунд 56 запросов, что выше минутного лимита и ты получишь бан.
Надо использовать другую схему. В прочие детали кода не вникал.
Несколько вариантов есть. Но в целом тебе надо в буфере размером 30 держать время вызова каждого запроса. Когда буфер полностью заполнен, смотришь вершину, если там у первого элемента разница во времени больше 60, тогда выкидываешь его и вставляешь новый. Иначе ждёшь
Используй time.monotonic() для контроля времени
Можешь глянуть на PriorityQueue и на модуль heapq, там что-то готовое же более-менее есть
Глобально другую схему не мешало бы использовать
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую FastAPI. Как переделаешь имиджборду, чтобы выдавала по крайней мере 25 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, ClickHouse. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
>Функция может вызываться одновременно из разных потоков и из разных процессов.
Вот это условие смотри
Скорее всего от тебя хотят, чтобы ты в селери что-нибудь для этого нашёл. Я в селери не умею, но наверное там должна быть уже готовая поддержка для этого. Или можно своё решение сделать на базе какого-нибудь редиса.
Но в любом случае это отдельный процесс, к которому ты обращаешься, иначе ты не сможешь поддержать условие "из разных процессов".
я не получу бан, т.к. следующие 30 запросов я делаю с зеркала и по условию бан не получу.
С разницей по времени согласен, идея здравая.
Вопрос в задании скорее в том, как все это слепить, чтобы все работало так же для multiprocessing и thread?
хз, вряд ли это селери задачка. А может и она и стал просто смотреть не в ту сторону. но суть в том, что тут не нужна обертка джанги и функции. А просто функция голая.
энивей, я наверное, сдамся. Уже делаю новое тестовое для другой компании. Там дали нормальную задачу, а не головоломку, которой я не вижу применения.
да на зп мне насрать если честно,мне и 60к хватит,я просто не особо люблю с людьми контактировать,конвенция это про правильность кодирования?я так понимаю практика всё же лучше будет,а кусры гавно какое-то
ну взять и пересобрать. (циклом)
откуда мы знаем что за структура у тебя.
хоть пример бы скинул.
зачем вы дикт таким образом объявляете?
не проще ли просто фигурными скобочками на манер жсона зафигачить?
Я скопировал из его поста, прост.
>т.к. следующие 30 запросов я делаю с зеркала и по условию бан не получу
в том то и дело, что твой код обнуляет счётчик, потому что с момента первого запроса прошло больше минуты>>503124
>а не головоломку, которой я не вижу применения
Это самая прикладная задача
С учётом требования работы на несколько процессов, тебе нужно использовать для решения внешний процесс. А раз так, то видимо надо селери, если ты в джанго-стеке
как только так сразу
Селениум - хуета. Палится на раз, даже андетект версии
Понятно
А можете ткнуть носом где почитать про обход детекта автоматизации? Ну или куда копать
>Нахуя ты используешь тайп хинты в питоне?
Потому что я не помню, что пишу.
>чтобы твои коллеги ёбнулись
Чем они им мешают?
Слоты использовать надо, если объектов очень много будет, это память экономит. В остальном - лишнее.
>чтобы твои коллеги ёбнулись
Если "коллега" подойдет ко мне с такой претензией на счет тайпхинтов, я мгновенно предложу его кандидатуру на увольнение на следующем 1-1 с ПМом
А еще кликхауз говорит, что update используется с alter table, специально помечая, что операция не самая приятная.
Для отправки писем, думаю, долго думать не нужно, celery поставить и должно справиться. А как отслеживать наступление события? Бегать в бесконечном цикле, проверяя все записи в таблице РСУБД, есть ли среди них подлежащие исполнению? Как-то по-уебски выглядит. Тут очереди, работающие на push помогут? Тот же Реббит?
Исходим из расчета что все будет на async
А, ну тут ничем не помогу. КХ хорошо работает на select и insert, но вот update у него де-факто вообще нет. Если тебе нужно кидать кучу апдейтов то даже хз что тебе посоветовать, постгря тоже с ними в большом количестве не оч ладит
Апдейты скорее всего вообще не будут, а вот удаление - да. на счет удаления я хз насколько кх быстро работает
>одновременно будет зарегистрировано несколько десятков тысяч
>Для отправки писем, думаю, долго думать не нужно,
Как раз над отправкой писем в таком количестве очень даже надо думать, чтобы в бан не попасть
>Тут очереди, работающие на push помогут? Тот же Реббит?
Да, или через редис, там тоже очереди есть. Вопрос в том, что такое событие у тебя и как оно происходит. Вариант с циклическим опросом базы не всегда плох, если тебе не нужна высокая реактивность.
Допустим у нас в данный момент активно 10к событий. И уже выполнено 100к, которые лежат в этой же таблице и должны там храниться еще год как минимум для истории. Каждый раз циклически опрашивать эту таблицу? Пусть у нас будет индекс на дате, но разве это норм вариант?
>что такое событие у тебя и как оно происходит
Юзер1 регистрирует событие "Осенняя распродажа дилдаков", Юзер2 и Юзер3 подписываются на него, когда due_datetime приходит (3 ноября 2022 в 14:30) Юзер1 и Юзер2 получают уведомления, также еще одно уведомление стоит слать ровно за сутки до этого события.
В будущем дополнительные уведомления можно слать в том числе через push-уведомления андроид
Апдейт выполняется по манеру постгри - сначала мы удаляем строчку, а потом инсертим измененную ага
Только хуевее ввиду мутаций
Триггер повесь на получение события в бд. Хендлер сделай для него в коде. Он проверит что да, все норм и запускает задание в целери
и ты собираешься остаться без одной из самых популярных и поэтому "покрытых" Гуглом библиотеки?
Ну не грузи. Сам себе дурачок.
ПМ или аналитик это не тетя Зина. А уж тем более если обыкновенный хуй с горы будет юзать сервис. ПРедставь ты зашел на www.ilovepdf.com/word_to_pdf - а тебе вместо цельного дока выдают 10 страниц, каждая - в отдельном pdf. На твои возмущения заявляют "так даже моя тетя Зина может склеить эти доки в 1! ты че тупой? не можешь склеить?"
Lib/csv.py
os.getpid()
https://pastebin.com/tdMTQztc
Собственно, какого хера ProcessPoolExecutor всегда сосет у обычного последовательного счета? Паралелил на все мои 8 ядер. У меня смутное сомнение что ProcessPoolExecutor на самом деле поднимаете треды а не процессы
макака, какое нахуй "слово из спам листа"? ебанулся?!
У тебя всё время уходит за запуск процессов и IPC
попробуй поставить длину цикла сначала 100 вместо 1000. Удивишься. А потом 1М, но сделай не 50 тысяч задач, а 50
параллелить имеет смысл только тяжёлые задачи
>попробуй поставить длину цикла сначала 100 вместо 1000. Удивишься
Чем блять?
Я прекрасно осведомлен о unix process vs unix thread, вопрос в том хуле, приблуда из concurrent.futures настолько сосет
она не сосёт, когда ты раздаёшь адекватные задания
попробуй запустить не 50_000, а 50 задач, но по миллиону шагов в каждой
Потому что тебе дороже задачу подпинуть, чем её посчитать
https://www.youtube.com/watch?v=DThU1DN_bMs
Вопрос только в том, хуле чансайз так сильно влияет? В видриле произошло заметное улучшение уже при chunksize=WORKERS_NUM. Еще чанксайз может значительно влиять на результат из-за ситуации на 2м пике, когда 1 воркер получил максимально интенсивные задачи а другой все выполнил и простаивает. Тут-то все задачи идентичны по своей сложности
Аноны, знание других языков программирования учитывается при приеме на работу? Например калькулятор на джаве или попытка сделать игру на ней же? Работу ищу разрабом python
Вообще часто указывают, что знание других языков в плюс. Особенно если будет что-то компилируемое типизируемое в дополнение к питону (java, c/c++, golang)
Но это в дополнение, твой уровень будут оценивать по тому, насколько ты хорошо знаешь кишочки питона, а не количество других языков, особенно если на них опыт учебный, а не коммерческий
Какое направление выбрать, какой фреймворк учить. Дайте совет. Сам по сообразительности себя низко оцениваю, мне всегда говорили, чтобы я что то понял, нужно по 5 раз сказать
> до 5 мс
погрешность операционки. тести существенную нагрузку, много итераций, много повторений
гугли timeit
С итерациями и средним по больнице понял, спасибо. А если ограничить использование железа через модуль resource, это снизит погрешности?
Вот из-за этого:
if __name__ == '__main__':
import timeit
print(timeit.timeit("test()", setup="from __main__ import test"))
Функции туда пихать, пиздец гимор. Мне для непрерывного вкуривания соотношений процессорное время/захаванная память нужно что-то более компактное. По крайней мере, пока я не научусь это без тестов понимать.
Что именно ты хочешь профилировать?
Можно делать что-то через cProfile, узнать, что съедает проц.
Ещё можно делать профилирование через psutil, там можно узнать, сколько твой или даже другой процесс поедает ресурсов, в том числе процессорного времени в разных режимах (пользователь, ядро и т.п.)
На данный момент всё свелось к одному вопросу:
Как измерить количество памяти, которое было использовано во время выполнения куска кода?
tracemalloc.get_traced_memory() может показать пики, например, при создании объёмных списков, но не фиксирует расход памяти при заполении стека во время выполнения рекурсивных функций.
В питоне нет того стека, в каком смысле он есть в Си
У тебя в стеке по сути только указатель на функцию, а данные, которые внутри функции ты выделяешь, они где-то в куче. У фунции есть свой словарь, хранящийся в общей куче, в этом словаре уже переменные функции
>cProfile
Нет измерения расхода памяти.
>psutil
Работает с процессами. Не тот масштаб.
>>505154
Насколько я понял, фреймы занимают очень дохуя памяти. В упомянутой ситуации это становится проблемой.
https://stackoverflow.com/questions/27564825/recursive-functions-memory-usage
Чел, даже по твоей ссылке говорится, что меньше 500 байт вызов функции объедает
Питон не предназначен для глубокой рекурсии, там даже лимит какой-то не очень большой по-умолчанию, хотя это тюнится, смотри sys.setrecursionlimit(depth)
>Питон не предназначен для глубокой рекурсии
Думаю, на этом остановлюсь и буду аккуратнее с ними, если встретятся. Спасибо за помощь.
Для бытовых задач рекурсии более, чем достаточно. Споткнуться можешь только на каких-то алгоритмических задачах на DP с кешированием, где вот очень любят эти рекурсии
А в другом, питон это совсем другой язык, чем c/c++, вообще другая логика и другие проблемы. Тебе надо это понять и учиться писать на питоне как на питоне, а не как на си. Иначе лучше писать именно на си, ну или там на раст-го и т.п.
Да я в бэк на джанге планирую, еле сдерживаю себя от напердоливания задуманного пета с текущим уровнем знаний. Уже несколько раз понял, что не зря, а то бы куча велосипедов было. На c/c++ совсем не стоит, потом однозначно go.
Эти 47летние джуны сейчас с нами в одной комнате?
Математика тебе точно не нужна. Пили веб-приложухи на джанге (инфу бери из доков, видосиков, статей) Отзывайся на все резюме (мидловые тоже), выполняй тестовые, проси фидбэк. Рано или поздно поймешь, как правильно писать такие вещи и получишь оффер.
Но будь готов к тому, что будут ещё требовать и знания фронта, обычно от питонистов требуют быть немного фуллстэком.
640x352, 0:03
Словарь содержит ещё словари, там некуда del добавить, только если свой тип делать
Значит в корневом словаре пишешь
def _del__():
for подсловари
del(каждый сука подсловарь колошматишь и удаляешь в нем елементы)
>какого хера ProcessPoolExecutor всегда сосет у обычного последовательного счета?
Потому что есть оверхед на создание тредов. Эта библиотека, в отличие от двух других, не позволяет распараллеливать задачу по ядрам, только по потокам в рамках одного ядра, поэтому она проигрывает всем. Ее применение - писать неблокирующий код, взаимодействующий с сетью, где большие задержки, но малая нагрузка вычислительная.
>Потому что есть оверхед на создание тредов. Эта библиотека, в отличие от двух других, не позволяет распараллеливать задачу по ядрам, только по потокам в рамках одного ядра
У него же ProcessPoolExecutor, не b]ThreadPoolExecutor
Отложив перепихон.
Дальше следует мораль,
так как я не просто враль:
Изучение Питона - повредит перепихону!
Да, точно, эта шняга должна параллелить по ядрам. Но там все равно ебический оверхед в concurrent.futures, который съедает весь прирост от ядер.
Нужно определить есть ли на картинке разрыв кадра. Типа такого, как на картинке. Можно ли это как-то оптимально и быстро сделать?
Первое что пришло в голову: сравнивать пиксели по строкам. Если отличая в цвете слишком большие и такие различая характерны для всех столбцов строки, значит есть разрыв кадра.
Но интуитивно, это будет работать ооочень медленно. У меня порядка 70 изображений 720*1080, боюсь буду чекать пиздец сколько
хотя, наверное можно придумывать всякое, типа как только нашёл подозрительное место, пройтись по нему-же в других столбцах, не во всех, а в каждом например 10, и если подтвердится, то считать что разрыв был
Какие подводные?
Перевожу админку с чистого фласка с шаблонами на спа админку + фласк рест апи и не понимаю, как должна проходить сейчас авторизация.
Сейчас чтоб получить токен, тебе надо пройти несколько этапов редиректов, но для рест апи это же странно возвращать редиректы с хтмл-содержимым?
Тем более если клиент не из-под браузера пытается достучаться, как ему в таком случае авторизацию проходить, не эмулировать же селениумом веб-форму.
Апи вообще никоим боком к авторизации, клиент уже должен иметь ключ, чтобы его использовать.
Клиентом SSO выступает бэк, а не пользователь, иначе каждому пользователю нужно выдавать свой client_id и client_secret.
Бэк проверяет, есть ли заавторизованная сессия. Если нет, то редиректит на форму SSO под своим client_id. Если пользователь её проходит, то SSO редиректит обратно на бэк. Бэк получает от SSO параметры и делает запрос в SSO на получение токенов и юзеринфо, создаёт авторизованную сессию, инфа о сессии хранится в куках.
Я же хочу перейти на токены, т.е. при попытке пользователя зайти куда-то будет проверка не на сессию, а на токен, который он может получить в случае успешной авторизации.
Но сейчас он авторизоваться и получить токен может только через редиректы в браузере, а мне это надо сделать на бэке и просто ему выдавать токен, если он передал корректный логин-пароль.
>если он передал корректный логин-пароль
Получаешь логин логин-пароль, передаёшь их провайдеру SSO, или где ты там токены собираешься получать. В чём вопрос-то?
Ну если ты чистый датасаенитст, то будет медленно, да.
А так это ж сравнение векторов - cuda, avx вся хуйня. Задача перемалывается просто в лёт (единственное узкое место - передача cpu-gpu, поэтому лучше векторизацией молотить).
Полная хуета имхо, так вообще про любую профессию можно сказать, а тебе чтобы там обязательно надо знать то, то, пятое десятое, огромный список, иначе хуевый будешь.
Знать конечно много нужно, но надо работать начинать с самым минимумом и продолжать развиваться уже походу, дополнять информацию, иначе вечным учеником останешься если балбеса с видоса послушаешь. Вообще удивлен, видосы у него в целом адекватные
Через Pool ты не возвращаешь данные обратно в главный процесс, а через Executor возвращаешь, отсюда и замедление, увеличь размер чанка в функции map до 500 и приятно удивишься.
Попробуй детектор границ какой-нибудь ёбнуть, и потом ищи строго горизонтальные (или вертикальные) участки.
Это прокатит, если использовать кастомное ядро свёртки вместо ядер Собеля и Кэнни. Обычный edge-detection будет выдавать в качестве линий разрыва линии горизонта и им подобные. Нужно увеличить вес горизонтальных компонент градиента в ядре свёртки.
Стоит добавить в программу любой импорт (VScode) терминал начинает выдавать вот эту хуйню вместо исполнения кода, что там написан
В режиме отладки работает нормально.
Если убрать импорт стейтмент тоже. В обще дело точно в нем
Убрал файл из мусорки где куча других файлов в другой фолдер и ошибка пропала.
Все еще не понял почему так нахуй, если кто-то может объяснить втф буду благодарен
Вот делать мне больше нечего, кроме как в твоей мусорке копаться. перемещай файлы по одному пока эффект не пропадет, когда задолбаешься, почитай про бинарный поиск и напиши приблуду. хоба - литкод у тебя в мусорке! сомволично
Табе па Qt трэба падручнік, а не Pyside.
В какой книге хорошо описаны все модные штуки типа itertools, functools и есть задачки?
>Потому что есть оверхед на создание тредов
ебанутый? ебанутый.
Нет никакого оверхеда на создание тредов, только если ты не выбрал в качестве единицы вычислительной работы " i +=1".
Это все мифи хайлоад-дрочеров
а ещё на самом деле современный линух создаёт на каждый тред по процессу замапленному на тот же участок памяти
Нахуя тебе книга? Доки почитай.
закрытый виджет никак мусорнуться не может
палю через __del__
1280x720, 0:01
да! спасибо!
заодно открыл для себя weakref - слабые ссылки, которые не нужно чистить ёршиком
Есть очень важный вопрос. Не так давно с коллегами затеяли кое-какую активность, которая грозит перерасти в бизнес. С горем пополам написали бота, написали для него обвязку, чтобы его запускать, прикрутили метрики, поселили в инфраструктуру.
Бот работает, приносит деньги, нужно теперь привлекать средства извне.
Для этого нужно сделать быстрый, качественный личный кабинет.
Для этого хочется все сделать нормально с первого раза, ну там, микросервисы, вот это всё. Kubernetes уже есть, есть опыт развертывания микросервисов на fast Api и Flask внутри.
Нет опыта именно архитектурного постороения всей этой истории. Пока смотрю на API Gateway - нам нужно довольно много компонентов, все под аутентификацию, есть ли у тебя под рукой хороший пример реализации всего этого под микросервисы на Python?
В частности, интересует реализация с использованием Kong и какого-нибудь микросервиса в качестве источника пользователей (а не внутренних пользователей Kong)
В общем, любая информация и комментарии на эту тему будут полезны, не могу найти подходящий пример.
>Не так давно с коллегами затеяли кое-какую активность, которая грозит перерасти в бизнес. С горем пополам написали бота, написали для него обвязку,
>Члены этнической группировки дилеров, о которой заявил в пятницу, 17 декабря, министр внутренних дел России Владимир Колокольцев, были задержаны в Челябинске в августе этого года.
Нам-то не гони!
Бля,удоли!как ты вычислил???
Не, там про крипту. Есть чего по делу-то? Нужны рекомендации от матёрого архитехтора.
> Есть чего по делу-то?
нет. а ты ждал, что я на тебя работать буду?
не смог задать интересный вопрос достойный обсуждения - обсуждения не будет.
Бери и пиши.
Ты просто зумерок из поколения гугл, который считает, что все на свете можно скачать в том числе и шаблоны архитектуры.
Я тебе указал на вполне конкретный шаблон архитектуры, я не прошу за меня что-то делать.
Я просто попросил гайды, есть ли какие-то варианты скрестить Kong (тоже вариант, который я нашел без твоего участия) с python-микросервисом, а ты тут выебываешься.
Мне кажется, это всё от бессилия и собственного незнания, давай вместе посидим посмотрим, может кто взрослый придет и не такой агрессивный.
Я пишу бота для того чтобы пользователь увидел информацию о своем аккаунте в читаемом виде
Какие еще гайды?
Сука, нужен тебе дополнительный прокси - ну ставь. Пусть это будет Kong, если тебя так название зацепило.
Ты похоже не программист этого микроскопического телеграм-бота, а тот самый друг-трепло.
Почему такой агрессивный? Нормально же спрашиваю
Пацаны, тут тема такая:
Есть одна тяжелая задача, которая ищет любую пару множителей числа, если там нет нулей (кароч не заморачивайте голову, задача долго считается со сложностью O^2)
Я разбил ее на 8 частей и каждую часть считаю в PoolProcessExecutor параллельно, как только ответ будет найден, надо завершить все другие инстансы и выдать ответ.
Делаю я это при помощи объектов Future (по-другому хз как). Благо ProcessPoolExecutor.submit возвращает как раз футуру. Вот я делаю wait с опцией FIRST_COMPLETED, то ест ьмы закончим как только первый воркер вернет результат. Но вернуть-то блэт он может не только результат а простой None (то есть функция завершилась и ничего не нашла). Как в таком случае продолжить работу? Второй раз запустить
done, not_done = wait(futures, return_when=FIRST_COMPLETED)
не прокатит - 1 футура уже завершилась
Данный вопрос по сути идентичен в случае использования asyncio, там те же футуры
not_done каждый раз можно передавать дальше в рекурсивную функцию как на примере это да. Но пример на скрине не совсем в тему. Потому что между process и async есть разница. async успешно завершится а вот процесс будет бежать и дальше, даже после завершения основного процесса, который его породил. Пох что я пишу exit(0) в самой проге, она завершается но остальные процессы по-прежнему продолжают выполнять свою работу, future.cancel() не работает
Яндекс Клауд (серверлесс, ололо)
AWS Free Tier, если успел зарегить в марте.
Hetzner, если успел закинуть денег через bank trasfer.
DigitalOcean, если успел закинуть денег в марте.
Вот допустим у меня есть классический пример функция, которая числами что-то и выдает результат
Как сделать второй список из первых чисел в квадрате, но только тех что не равны нулю?
return list(map(bimbofication, [n for n in numbers if n != 0]))
выдает список типа [None, 234, None, 463467, None] но мне нужен [234, 463467]
ЧЯДНТ?
Некоторые сервисы сейчас разрывают контракты с руснёй, даже если у тебя баланс большой
простите что так наркомански написал
Вот допустим у меня есть классический пример: функция, которая делает с числами что-то и выдает результат
Как сделать измененный второй список из первых чисел в списке, но только тех что не равны нулю?
>ЧЯДНТ?
Ты пидорас и хуесос
return list(map(bimbofication, (n for n in numbers if n != 0)))
OR
return list(map(bimbofication, filter(lambda n: n != 0, numbers)))
Я не ебу что твоя функция возвращает, сам обрабатывай свои null
0 и None разные вещи
0 != None, проверь в idle
делай
[n for n in numbers if n]
ну или отфильтровать, есть масса инструментов в itertools для таких задач
не-не, !=0 это условие, чтобы нужная функция этот ноль не обрабатывала и не вообще добавляла в новый список. А вместо этого добавляется None
>>508012
>list(map(bimbofication, filter(lambda n: n != 0, numbers)))
А чтобы этот список был без None-значений внутри не получится сделать сразу? Надо потом вручную их убирать?
Эти два не разрывают.
Ну а хохлопарашу типа Namecheap в расчет не берем. Это в принципе бизнес не айтишный, а "говорильный". Техподдержка довольно простых услуг. Они не могли поступить иначе.
вот, кстати, согласно счетам, списали НДС в Россию на несколько баксов.
Интересно, куда эти деньги на самом деле делись?
что такое bimbofication? И что у тебя в numbers? В numbers точно нет уже None?
Contabo разрывает, это немцы. Ещё кто-то. В общем проблема с надёжностью
Всё, я дурачок, нашел где проебался, спасибо!
Не понятно, почему должны списывать НДС в РФ
Услуга оказывается за границей, поэтому НДС должны платить там, по идее
Если ты товар покупаешь и вывозишь, то НДС тогда ты не должен платить, тебе вычет должны делать. А типа когда ввёз в РФ, то ты сам уже здесь платишь НДС
я сам не понимаю.
что я должен нажать в Hetzner чтобы отказаться платить НДС будучи и резидентом и гражданином РФ ?
У них там есть какая-то кнопка и они присылали письмо, но я ничего не понял.
В конце концов, речь идет о паре баксов, но хотелось бы отказаться от этого символически.
1. Мы отдаем в виде респонса этот эксель-файл
2. Мы отдаем в виде респонса ссылку на скачивание файла
Как работать правильно?
в чем вопрос?
<?php
...
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
извини, не заметил что спутал тред
Что есть "правильно" ?
Правильно так как тебе и твоему кабанчику выгодно в масштабе времени.
И вообще, просто охуеваю от таких "инженеров".
Пиздец, дауны нерешительные.
Один не знает во что микросервис обернуть, другой файл не может решить как отдавать
А разгадка одна: засрать на борде мозги - анонимно и бесплатно, а на работе за такой подход обоссут.
На самом деле заебали.
Это называется аттачмент. Выдаешь специальный заголовок, что будет файл и срешь его контентом прямо в вывод.
ну и что ты у нас спрашиваешь, если мы не знаем будущее?
Айти - это не ролевая игра.
Одно можно утверждать наверняка:
Если будешь рассылать резюме и настойчиво корректировать свои навыки, найдется и тот дурачок, что и тебя позовет работать.
В сильно функциональном будет говно, но миксовать можно и нужно.
т.е могут взять даже без опыта?если я просто знаю какую-то инфу из книг?незнаю может ещё курсы посоветуете какие-то или азы там кода поучить,хотя бы основу какую-то которую должен знать каждый кто кодит на питоне
Эво как! ну могут и взять стажером тыщ на 20 в совковый институт с прицелом на то, что посмотрят на что ты способен.
Пройди на Степике "Python основы и применение". Там какие-то задачки на api, xml, обработку текстов.
Ты я вижу парень молодой, гиревик, боровик!
Тебе должно понравиться.
не сказал бы что молодой прям,мне 27 лет,скорее уже пожилой,хорошо,но это скорее всего только в четверг смогу,завтра и в среду работаю
https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.as_completed
Можно по ним идти и ждать нужное значение, если успех то просто брейкнуться оттуда и закенселить оставшиеся?
понимание что к чему приходит только с опытом,не работая работу этот опыт не получать,не так ли?
>но это скорее всего только в четверг смогу,завтра и в среду работаю
А ты давно в инете?
Ты хоть понимаешь что нам насрать на тебя и твой четверг?
Писать нужно только то, что способно изменить человека или остаться в вечности
Жить в психоневрологическом интернате.
Че молчите пидорки?
,пониимаю,ну я сохранил твои сообщения про курсы на степике и задачи,будет время займусь этим
Ты прав, я не разработчик, я про инфраструктуру в основном.
Так все-таки, как насчет примера, м?
И нет, это не телеграм бот.
Так ты не задал сам вопрос в программистких терминах.
Просто не понятно что есть и каких качеств хочется достичь.
Перечислил какие-то баззворды, в которых никто не обязан разбираться.
Ты заметил что тебе никто не ответил, кроме меня?
Но если ты прям хочешь уличить меня в невежестве, давай посидим подождем какого-нибудь уникума, который с тобой на одной волне.
https://stackoverflow.com/questions/807506/threads-vs-processes-in-linux
А ещё на самом деле для линуха не существует "процессов" и "тредов" как таковых, все это "таски" для ядра. Вообще, если разбираться нормально, то на самом деле мало разработчиков понимает что вообще происходит в планировщике линуха и насколько сильно понятия тред и процесс отличаются в шиндоусе.
Ну как бы про критическую разницу процессов винды и линукса все знают. А вот про детали устройства процессов, тредов, работу планитовщика, управление ресурсами и т.п. уже сильно меньше.
Можешь какую книжку или курс лекций посоветовать по устройству ядра линукса? Обзорную, для тех, кто с программированием и линуксом дружит, но не с ядром?
а зачем? тебе в контексте питона ничего и не нужно.
ты все главу манов под номером 2 и 77 прочитал?
Прочитай. В смысле запускаешь "man 2 clone" и далее по ссылкам
> 2 System calls (functions provided by the kernel)
> 7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
2 и 7, конечно же
В каких тебе еще терминах написать-то?
Итак, я попробую еще раз, а ты скажи, что здесь баззворд и вот это всё. А, да, и, отвечая на вопрос о том, почему мне никто не ответил - видимо, потому что тут народ только учится и никого со схожим опытом нет, еще бы, это не фласки-джанги натягивать.
Итак. У меня есть необходимость создать продукт, который будет представлять из себя личный кабинет. А ля "залогиниться, посмотреть баланс, отправить денег". Соответственно, из функционала прямо сейчас интересует регистрация и авторизация пользователей. Хотелось бы сделать сразу правильно, поэтому планируется использовать паттерн API Gateway с использованием Kong.
Есть понимание, как сделать авторизацию на уровне одного сервиса, но нет понимания, как это расширить на весь "зонтик", как заставить Kong использовать мой auth-сервис в качестве источника пользователей и токенов.
Так понятнее?
Если есть какой-то гайд, который это описывает, я буду очень признателен, так как вот прямо такого мне делать еще не приходилось.
> но нет понимания, как это расширить на весь "зонтик", как заставить Kong использовать мой auth-сервис в качестве источника пользователей и токенов.
Ну это просто:
Сначала читаешь документацию на Kong.
Понимаешь ее.
Экспериментируешь.
Набираешься опыта
...
возвращаешься в прошлое и изучаешь C++ за 21 день !
Да иди нахуй, бесполезный рисователь стрелочек.
Ты не поймешь работу программиста не начав программировать.
Ты просто тупой и не понимаешь задачу, как я погляжу.
Что за "работа программиста" такая, которую никто понять не может? Что-то вроде загадочной русской души?
Может быть, если бы ты оторвал жопу от кресла и вышел бы из треда хотя бы, то нашел бы себе "работу программиста" и каааак понял бы. Учить он меня будет, щегол блять.
Ты просто тупой и не понимаешь задачу, как я погляжу.
Что за "работа программиста" такая, которую никто понять не может? Что-то вроде загадочной русской души?
Может быть, если бы ты оторвал жопу от кресла и вышел бы из треда хотя бы, то нашел бы себе "работу программиста" и каааак понял бы. Учить он меня будет, щегол блять.
задача тут очень простая : сделать для непрограммиста дизайн системы чтобы позволить ему внести некий вклад в "общее дело" пока его друг-программист давно послал его нахуй и просто пишет код. Это позволит ему в будущем претендовать на некий процент от прибыли.
Но правда в том, что ты ему не нужен.
Так как вы задаёте подобные вопросы (в питоновском треде), я бы на вашем месте взял Django. Там это есть из коробки, а самостоятельно вы сделаете всё через одно место. Но Django - это не для слабых духом. Если вы не умеете толком программировать (российский миддл обычно умеет разворачивать такие вещи), то вам придется учиться и программированию, и фреймворку.
Мб, поэтому можно и Kong, без понятия, что это такое.
>поэтому можно и Kong, без понятия, что это такое.
Какой-то инструмент для унификации АПИ и чтобы часть функционала в виде плагинов прикручивать. Это я сейчас посмотрел, раньше не слышал
Прочекал ХХ, там Kong встречается, но нашлись примеры только в паре "Hong Kong", как бы о другом
Видимо технология скорее экзотическая и не факт, что востребованная
Прочитал жопой. У нас перед АПИ обычно стоит message broker (rabbitmq) и иногда ещё одна прослойка на FastAPI. Но я сам архитектуру не писал целиком. По FastApi gateway book книжки находятся.
pytesseract обсирается в 100% случаях
Если все так просто, то по-любому кто-то итт так сделал, чтобы не вводить капчу. Да ведь?
Не запускается
Ничего не меняется, в винде при открытии мгновенно закрывается, в PyCharm'е и через консоль нормально отрабатывает. Это нормально что при проверке версии python -v у меня выводится такая шняга длиной в два экрана?
В ide другое окружение попробуй установить и прибить гвоздями, и установить все зависимости
Проблема в том, что у нас та часть, которая отвечает за бота, уже сделана в духе микросервисов, но щас живет просто в изолированной среде безо всякой защиты. Хотелось бы прикрутить к этому еще некоторое количество микросервисов и фронт (уже пилится в фоне), но тогда встает вопрос того, чтобы это всё засунуть под "амбреллу" API Gateway.
Раскуриваю прям щас вопрос с Kong, он умеет всё, что нужно, но, видимо, придется или модифицировать имеющиеся плагины, или писать свой, чтобы можно было ходить в свой микросервис за токенами и пользователями.
На Django опыт имеется, но с ростом клиентов (хотя бы в сто раз) ее может начать не хватать и придется переписывать вообще всё, сейчас есть на это время, сразу сделать так, чтобы держало нагрузку. Спрашиваю в Python-треде, поскольку все сделано на Python - и бот, и микросервисы, и интеграция нужна именно в этом направлении.
Но спасибо за ответ без ненависти.
>придется переписывать вообще всё, сейчас есть на это время, сразу сделать так, чтобы держало нагрузку.
У вас там хотя бы 10рпс уже есть?
Просто кто-то в треде заявил, что убирается неком фильтром.
Кроме того, у всех разное понимание что такое "легко".
тебя бы устроила результативность в 80% ? Для пользователей это далеко не готовый продукт, а для человека, который долгое время пытался разгадывать капчу, вполне сойдет для оправдания своих не таких уж полезных усилий.
Для вайпа спамом тоже сошло бы. Но ты же не собираешься нас завайпать, ничтожество?
Можешь попробовать поднять 10 тредов и запульнуть в них какие-либо io-bound задачи а потом поднять так же 10 процессов. Погляди за сколько все исполнится и также погляди на расход оперативной памяти. До кучи можешь еще 10 горутин из golang со схожими задачами поднять и снова заценить расход оперативы
Что написали красноглазые шизофреники 13 лет назад меня мало заботит
Мне бы и 50% хватило.
> Но ты же не собираешься нас завайпать
Конечно нет. Да и при желании бы не смог это делать продолжительное время, незабаненные прокси на дороге не валяются.
import pandas as pd
df = pd.DataFrame(columns=['col1'])
for i in range(1, 100):
df = df.append({'col1': i}, ignore_index=True)
df
То все работает, но ругается, что метод append работать не будет в будущем и предлагает использовать concat. Подскажите, как в данном случае использовать concat?
Как подменить модель User на свою? Мне незачем делать так:
from django.contrib.auth.models import User
class MyUser(User):
...
Я хочу не расширить а запилить целиком свою модель User и потом работать с ней
Да, что ты из этого не понимаешь?
Ты хотел сказать flakes, потому что ванильный nix допускает нечистые в функциональном плане операции, которых навалом в python310Packages.*, и при апдейте он с определённой вероятностью распидорашивает окружение. Плюс пинить версии приходится через костыли.
Потому я через никс ставлю только сам пистон, а окружение предпочитаю доверять специализированным тулзам.
class User(ABC): ?
Docker + venv
Это движуха из мира nix: https://nixos.wiki/wiki/Flakes
Если коротко: чуваки двадцать лет пилят чисто функциональный менеджер пакетов Nix, который раз и навсегда решит проблемы всех пакетных систем. Однако оказалось что весь окружающий мир вполне себе стейтфул, что их волшебные функциональные заклинания тут могут работать непредсказуемо и теперь пилют дополнительный слой костылей.
>df = df.append({'col1': i}, ignore_index=True)
df = pd.concat([df, pd.Series({'col1': i}).to_frame().T], ignore_index=True)
Скажем так, никсос даёт инструменты для воспроизводимой сборки, но не гарантирует что мейнтейнеры не вкорячат stateful конструкции типа curl someproject.org/install.sh.
В то же время я считаю никсос блестящим проектом, продуктивным взглядом в будущее и всячески желаю ему здоровья. Пусть причёсывают флейки до продуктивного состояния.
Подскажите совсем новичку. Обучаюсь на языке Питон.
Можно ли сделать "генерирующиеся" переменные?
К примеру, выполняется цикл(while), и если выполняется определенное условие(if), то результат сохраняется в переменную, к примеру: result_1. Следующая переменная будет: result_2, и т.д.
Можно, через globals/locals, setattr и другие трюки, только не нужно
Но тебе скорее всего нужно не это, а надо научиться работать со списками и словарями, использовать их для этих целей
Правільны падыход іншы result = []. Прыклад https://goonlinetools.com/snapshot/code/#xa8u3ptmjorwspsxuiatc
Это копия, сохраненная 13 января 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.