Сообщество Программистов
14.8K subscribers
86 photos
3 videos
39 files
114 links
Здесь ты найдешь полезные материалы которые позволят тебе развиваться в IT.
А именно статьи, книги и курсы на тему Python, других языков программирования и IT технологий.

Youtube Канал: youtube.com/c/ZProgerIT
Автор канала: @zproger8
Download Telegram
В комментариях подсказали еще 1 вариант для 1го примера из видео.

В итоге:
- cycle_example 0.76s
- sum_example 0.43s
- summary 0.01s

Ускорение вышло примерно x70.
Поэтому на этапе оптимизации кода, можно поиграться с подобными комбинациями, и получить максимальную производительность.
🔥17👍6🤔2
1. pip install line_profiler
2. добавляем декоратор
@profile

@profile
def summary():
res = sum(range(1_000_000))
print(res)

if __name__ == "__main__":
summary()

3. kernprof -l -v your_file.py

Также можно пробежаться через cProfile, чтобы получить затраченные ресурсы на каждую операцию, но об этом в отдельном видео 😉
🔥10🤔4
А кто-то еще жалуется на ускорение циклов в 70 раз 😁😁

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

А ведь скорость разработки от этого падает в целых 4 раза, как говорит автор доклада 😁. А если бы пробелов было 10, то в целых 10 раз!
😁40🤯7👍1
Несколько принципов для защиты системы и приложений

1. Систему можно "защитить" до такой степени, что с ней будет невозможно работать. Необходимо найти баланс между защищённостью и удобством.

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

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

4. Безопасность должна быть организована в виде многослойной системы. Когда один из слоёв защиты прорван, следующий остановит атаку.

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

📕 Но также учитывайте, что 100% защиты не существует, поэтому у вас должен быть план на тот случай, если эта защита будет разрушена.
🔥16👍7🤔4
Media is too big
VIEW IN TELEGRAM
😁 Простите, не смог удержаться

Зато теперь вы знаете что делать на случай восстания машин. Я это монтировал больше часа, поэтому если смог поднять вам настроение — буду рад если поставите лайк 😁
😁60👍36🔥9🤔5🤯1
Как отправить Requests запросы быстрее?

1. Библиотека Asyncio для асинхронных запросов

2. Параллельные запросы: concurrent-requests или же grequests, чтобы отправлять несколько запросов одновременно

3. Multiprocessing: Для параллельной отправки запросов с использованием нескольких процессов

4. Gevent: Для параллельной отправки запросов с использованием greenlets, которые представляют собой облегченные совместные потоки. Это может быть полезно, если вы хотите сделать много блокирующих вызовов ввода/вывода одновременно

🔥Также не забывайте о пулах соединений, которые поддерживают кэширование, что позволяет уменьшить накладные расходы
👍20🔥5
Попросил написать историю о Python разработчиках, которые лишились работы, и все складывается очень правдоподобно.

В ближайшее время покажу некоторые возможности этого бота, о которых еще никто не говорил на YouTube. И также стоит напомнить, что программирование стоит учить дальше, как минимум по той причине, чтобы когда ИИ захватит вселенную, он нас пощадил 🙂
😁42👍14🤯4🔥3
Изначально бот ответил, что для этого требуется версия ядра, архитектура и спецификация USB

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

Если попросить его переписать ядро Linux на Rust, то он тоже это не сделает как минимум из-за того, что нужны слишком большие объемы вычислений.

Статья о ChatGPT ⬅️
🔥17👍5😁1
code.zip
3.5 KB
Исходники ☝️
👍8🔥3
Прилетел issue по-поводу 7го примера с product

Стоит отметить, что после повторных тестов, product оказался медленней обычных циклов for, поэтому я продолжил тесты, и нашел другую реализацию, которая работает в 2-3 раза быстрее, чем обычные циклы.

Речь идет именно о переборе всех комбинаций, как это и делает product. Пример с кодом есть в issue.

Благодарю Devil666face за внесенные правки.
👍17🔥4
Если вдруг у вас появится желание потроллить других разработчиков, и заставить их часами искать ошибки, то этот код будет идеальным решением.

Мы перехватываем хук на исключения, и игнорируем любые действия, в итоге все ошибки в коде будут завершаться нормально, как будто ничего не произошло 😁
😁42👍8🤔5🔥2
Представляю вашему вниманию самый странный код, который позволяет манипулировать стектрейсом.

Если кто не понял — объясняю, перехватывают исключения и поднимают raise, с той целью, чтобы это новое исключение, прилепить к старому в traceback. К какому исключению лепить новую ошибку, указываем в from:

raise RuntimeError() from err

Если вызвать следующий код, то будет подниматься RuntimeError игнорируя исключение на уровень выше:

raise RuntimeError() from None

Вы что-то поняли?)
😁 - Нет
🔥 - Да
😁134🔥38🤔8👍4🤯1
Дополнение к видео выше.

В Python есть несколько исключений, которые не могут быть перехвачены классом Exception. Например:

- KeyboardInterrupt: это исключение возникает, когда пользователь прерывает выполнение программы, нажимая Ctrl+C

- SystemExit: это исключение вызывается через sys.exit(), которая используется для выхода из интерпретатора Python

- GeneratorExit: Это исключение вызывается при закрытии генератора или сопрограммы

Они наследуются от класса BaseException, который является родительским классом Exception. Поэтому Exception не сможет их обработать.

Чтобы поймать эти исключения, вы можете использовать класс BaseException как универсальный обработчик исключений, или вы можете перехватывать каждое исключение по отдельности.
🔥29👍8