Так уж вышло, что мой Nexus 5X внезапно ушёл в циклическую перезагрузку, и мне пришлось отдать его в ремонт. После диагностики выяснилось, что виноват контроллер питания, и работы займут около недели. Я решил поэкспериментировать и на какое-то время остаться без телефона, и тут выяснилась страшная правда.
Без телефона вы беспомощны 🔗Он настолько сильно влился в нашу жизнь, что мы его уже не замечаем - а зря.
Вы лишаетесь доступа к информации - посмотреть погоду или пробки становится невозможным.
слайды
Всем привет! Меня зовут Тыщенко Виктор, я backend team-lead в компании 3d4medical. Вижу, тут собралось много людей, любящих решать задачи и интересующихся чем-то новым. У каждого из нас есть свои способы, свои проверенные инструменты и, в конце концов, любимые языки программирования. Я же хочу рассказать о своём, который помогает сосредоточиться на задаче, а не заставляет бороться с компилятором и вспоминать какие-то низкоуровневые конструкции.
Python 🔗Что за зверь? Первая его версия вышла более 20 лет назад, причём написал его человек, получивший образование именно в сфере разработки языков программирования.
Где я? 🔗Вы попали в берлогу, где любят компьютеры, сети, ОС и программирование во всех его проявлениях. Здесь собраны материалы по самым разным областям.
Кто здесь? 🔗Здесь обитает программист. На входе кофе и пицца, на выходе код, причём качество второго напрямую зависит от качества первого. Итак, пописывает он себе программки да сайтики. Что из этого выходит можно посмотреть в разделе проектов. Пишется на всём, что под руку попадётся — от asm до python, не гнушаясь php, erlang, java…
Geo!Puzzle 🔗 Игра для изучения политической карты мира. Необходимо перетащить контуры стран на свои места. Прям как в детстве мы собирали паззлы кусочек за кусочком, так и здесь карта мира складывается из множества государств.
YaDiskClient 🔗Python-библиотека для работы с Yandex.Disk, которую я хотел сделать максимально простой. Описана в статье Python API для Яндекс.Диск (а исходники на github), общение идёт по протоколу WebDAV.
AWS doc 🔗За годы работы с AWS у меня накопилась некоторая экспертиза в этой области, и я был очень удивлен, когда не нашёл хоть какой-то документации на русском языке, кроме официальной.
Оригинал: ‘AsyncIO for the Working Python Developer’ by Yeray Diaz; перевод был впервые опубликован на Хабрахабре.
Я помню тот момент, когда подумал «Как же медленно всё работает, что если я распараллелю вызовы?», а спустя 3 дня, взглянув на код, ничего не мог понять в жуткой каше из потоков, синхронизаторов и функций обратного вызова.
Тогда я познакомился с asyncio, и всё изменилось.
Если кто не знает, asyncio — новый модуль для организации конкурентного программирования, который появился в Python 3.
Оригинал: ‘Getting Mars photos from NASA using aiohttp’ by PAWEŁ FERTYK; перевод был впервые опубликован на Хабрахабре.
Я большой фанат книги «Марсианин» Энди Вейера. Читая её, мне было интересно, что же Марк Уотни чувствовал, гуляя по красной планете. Недавно наткнулся на пост на Twillo, в котором упоминалось, что у NASA есть публичный API для доступа к фотографиям с марсоходов. Так что я решил написать собственное приложение для просмотра изображений непосредственно в браузере.
Оригинал: ‘Yes, Python is Slow, and I Don’t Care’ by Nick Humrich; перевод был впервые опубликован на Хабрахабре.
Я беру паузу в моём обсуждении asyncio в Python, чтобы поговорить о скорости Python. Позвольте представиться, я — ярый поклонник Python, и использую его везде, где только удаётся. Одна из причин, почему люди выступают против этого языка, — то, что он медленный. Некоторые отказываются даже попробовать на нём поработать лишь из-за того, что «X быстрее».
Оригинал: ‘Why print became a function in Python 3’ by Brett Cannon
После моего поста “Почему Python3 получился именно таким”, в котором я ответил на самые популярный вопрос почему в python 3 разделили текстовые и бинарные данные, меня попросили ответить на второй по популярности вопрос: почему в python3 print стал функцией.
Кто это сделал? 🔗print как выражение 🔗В самом простом случае выражение print A является эквивалентом sys.stdout.write(str(A) + '\n'). Если вы укажите дополнительные аргументы через запятую, то они будут переданы в str() и выведены в одной строке через пробел.
Оригинал: ‘Why Python 3 exists’ by Brett Cannon
В этом месяце я отвечал на канале Q&A at PuPPY, что в конце концов заставило меня разобраться почему в Python3 появилось разделение по работе со строками и байтами. В итоге я получил благодарности по поводу объяснения, что несколько удивило меня, т.к. я наивно предполагал, что все знают зачем так было сделано. Хотя было бы глупо с моей стороны полагать что каждый - будь то новичок или продвинутый питонист - задавался этим вопросом и пытался найти объяснение.
Как известно, есть 2 проблемы программирования: выбор имени переменной и инвалидация кеша. Вторая меня на этой неделе прям достала. Извините, наболело… Итак, кеширование - классная штука, она позволяет существенно ускорить работу приложения, но привносит свои проблемы. Главная из них - поддержание кеша в консистентном состоянии. Вроде бы ничего сложного - на сигнал post_save вешаем функцию по перерассчёту и радуемся жизни, но не всё так просто. В Django есть несколько адаптеров для работы с кешем, рассмотрим парочку из django.