Backup: август
Python:
1. Управляем зависимостями: poetry / вендоринг
2. Пример логгирования в python / применяем else в цикле for / разбираем код в трёх постах
3. Заглушки для тестирования — постановка задачи и решение
Обучение:
1. Сравнение брокеров сообщений: идеальные критерии
2. Английский язык: почему он важен / как я научился воспринимать английский на слух
3. Чему стоит научиться в вузе? (хватить губить будущее ИТ)
Рассуждаем о программировании:
1. Нормальный ли у меня код?
2. Поддерживаемость кода
3. Чем плох goto?
4. Чему я научился за 30 лет в разработке?
Hardskills:
1. Подводные камни в bash
2. Анатомия Linux
Самое популярное:
Корчеватель ломает науку — как сгенерированные тексты пытаются опубликовать в рецензируемых изданиях
Наши видео:
1. Идеальный скрипт на bash
2. Атака forkbomb в docker
3. Стрим по python
#backup
Python:
1. Управляем зависимостями: poetry / вендоринг
2. Пример логгирования в python / применяем else в цикле for / разбираем код в трёх постах
3. Заглушки для тестирования — постановка задачи и решение
Обучение:
1. Сравнение брокеров сообщений: идеальные критерии
2. Английский язык: почему он важен / как я научился воспринимать английский на слух
3. Чему стоит научиться в вузе? (хватить губить будущее ИТ)
Рассуждаем о программировании:
1. Нормальный ли у меня код?
2. Поддерживаемость кода
3. Чем плох goto?
4. Чему я научился за 30 лет в разработке?
Hardskills:
1. Подводные камни в bash
2. Анатомия Linux
Самое популярное:
Корчеватель ломает науку — как сгенерированные тексты пытаются опубликовать в рецензируемых изданиях
Наши видео:
1. Идеальный скрипт на bash
2. Атака forkbomb в docker
3. Стрим по python
#backup
Telegram
DevFM
В файле requirements.txt обычно собраны необходимые для запуска python-проекта пакеты. Для установки этих зависимостей нужно выполнить команду
pip install -r requirements.txt
Но с ростом числа поддерживаемых проектов появляются конфликты между разными версиями…
pip install -r requirements.txt
Но с ростом числа поддерживаемых проектов появляются конфликты между разными версиями…
🔥16❤1👍1
Брокер сообщений Apache Kafka
Начать изучение рекомендуем со статьи Apache Kafka: основы технологии от ребят из slurm, в которой покрыты:
— отличия кафки от остальных сервисов очередей
— базовые компоненты kafka
— основные принципы работы
Для опытных пользователей будет полезна статья Apache Kafka: the Complicated Simplicity (открывать с vpn) о неочевидных проблемах, с которыми можно столкнуться. Но наибольшую ценность представляют предложенные решения.
Нам эта статья помогла разобраться, почему не удаляются записи месячной давности при явно заданном в настройках правиле "удалять записи старше одного месяца". Дело в том, что кафка хранит данные в сегментах (segments). Запись осуществляется в один активный сегмент, который при достижении определенного размера становится неактивным. Оказалось, что удалять можно только данные из неактивных сегментов. И правило на удаление не сработает, если данные в этот момент находятся в активном сегменте.
#skills
Начать изучение рекомендуем со статьи Apache Kafka: основы технологии от ребят из slurm, в которой покрыты:
— отличия кафки от остальных сервисов очередей
— базовые компоненты kafka
— основные принципы работы
Для опытных пользователей будет полезна статья Apache Kafka: the Complicated Simplicity (открывать с vpn) о неочевидных проблемах, с которыми можно столкнуться. Но наибольшую ценность представляют предложенные решения.
Нам эта статья помогла разобраться, почему не удаляются записи месячной давности при явно заданном в настройках правиле "удалять записи старше одного месяца". Дело в том, что кафка хранит данные в сегментах (segments). Запись осуществляется в один активный сегмент, который при достижении определенного размера становится неактивным. Оказалось, что удалять можно только данные из неактивных сегментов. И правило на удаление не сработает, если данные в этот момент находятся в активном сегменте.
#skills
Слёрм
Как работает Apache Kafka. Producer, consumer и отличия от RabbitMQ | Блог slurm.io
Разбираемся в механизмах работы Apache Kafka | Блог slurm.io
🔥6👍2❤1
Проектируем сервис: поиск организаций по картам
Частью жизни middle-разработчика и выше является проектирование сервисов. На собеседованиях эта секция называется system design interview. В рамках проектирования нужно уточнить требования к сервису и ограничения, оценить возможную нагрузку, выбрать те или иные технические решения.
В видео FAANG System Design Interview: Design A Location Based Service (англ) проектируют сервис поиска ближайших организаций по картам. Требуется регистрация организации (классический CRUD) и поиск ближайших для заданной геопозиции (вернуть все организации в заданном радиусе). Условия — 200 млн организаций на карте и 100 млн пользователей, генерирующих в день по 5 запросов каждый. Сможете по этим данным прикинуть объём диска для хранения будущей БД?
Автор подробно рассматривает способы хранения точки на карте для быстрого поиска ближайших — geohash и quadtree.
#skills #youtube
Частью жизни middle-разработчика и выше является проектирование сервисов. На собеседованиях эта секция называется system design interview. В рамках проектирования нужно уточнить требования к сервису и ограничения, оценить возможную нагрузку, выбрать те или иные технические решения.
В видео FAANG System Design Interview: Design A Location Based Service (англ) проектируют сервис поиска ближайших организаций по картам. Требуется регистрация организации (классический CRUD) и поиск ближайших для заданной геопозиции (вернуть все организации в заданном радиусе). Условия — 200 млн организаций на карте и 100 млн пользователей, генерирующих в день по 5 запросов каждый. Сможете по этим данным прикинуть объём диска для хранения будущей БД?
Автор подробно рассматривает способы хранения точки на карте для быстрого поиска ближайших — geohash и quadtree.
#skills #youtube
👍5🔥3❤1
Поиск команд в консоли с помощью ctrl+r
Стрелочки вверх-вниз помогут найти в консоли команду, которая использовалась раньше. Это удобно для недавних команд, но не поможет со старыми.
Нажмите в консоли ctrl+r и введите любую часть искомой команды. Будет предложен вариант команды из истории. Если он не подходит, нажмите ещё раз ctrl+r для поиска дальше в истории. Добавьте букв для уточнения поиска. Если пропустили нужную команду, итерируйтесь в обратную сторону с помощью ctrl+shift+r, но этот хоткей работает не везде.
На скрине приведён пример поиска по параметру mig, по команде vim, по флагу cpu. Обратите внимание, что курсор будет стоять на начале найденной подстроки. Прервать поиск можно с помощью ctrl-c. Когда нашли нужную команду, нажмите enter для выполнения, esc или стрелочку в сторону для модификации.
#devfm #skills
Стрелочки вверх-вниз помогут найти в консоли команду, которая использовалась раньше. Это удобно для недавних команд, но не поможет со старыми.
Нажмите в консоли ctrl+r и введите любую часть искомой команды. Будет предложен вариант команды из истории. Если он не подходит, нажмите ещё раз ctrl+r для поиска дальше в истории. Добавьте букв для уточнения поиска. Если пропустили нужную команду, итерируйтесь в обратную сторону с помощью ctrl+shift+r, но этот хоткей работает не везде.
На скрине приведён пример поиска по параметру mig, по команде vim, по флагу cpu. Обратите внимание, что курсор будет стоять на начале найденной подстроки. Прервать поиск можно с помощью ctrl-c. Когда нашли нужную команду, нажмите enter для выполнения, esc или стрелочку в сторону для модификации.
#devfm #skills
👍8🔥4⚡1
Типовая структура python-проекта без веба
В статье Как организовать код в Python-проекте, чтобы потом не пожалеть (хабр, 2022, оригинал) рассматривается более-менее типовая структура проекта без использования веб-фреймворка.
Только отношение к классам в статье странное, что не преминули заметить в комментариях. Для объединения логически связанных функций лучше подходят модули. Потребность в классах возникает при наличии данных и методов управления ими, плюс сокрытии внутреннего поведения.
Рекомендация везде применять множественное число в названиях тоже сомнительная.
Кроме того, в проекте-примере нет тестов, что совсем нехорошо.
#python
В статье Как организовать код в Python-проекте, чтобы потом не пожалеть (хабр, 2022, оригинал) рассматривается более-менее типовая структура проекта без использования веб-фреймворка.
Только отношение к классам в статье странное, что не преминули заметить в комментариях. Для объединения логически связанных функций лучше подходят модули. Потребность в классах возникает при наличии данных и методов управления ими, плюс сокрытии внутреннего поведения.
Рекомендация везде применять множественное число в названиях тоже сомнительная.
Кроме того, в проекте-примере нет тестов, что совсем нехорошо.
#python
🔥5❤2👍1
Пятничное развлекательное. В этот день мы делимся культурным кодом. Поговорим про интерфейсы?
В статье Интерфейсы в реальном мире обсуждаются крутые интерфейсы в физическом мире. Есть вкусное продолжение. Подмечены крутые детали окружения, на которые мы привыкли не обращать внимания.
Проектирование по-настоящему отвратительных интерфейсов требует сноровки. В статье Введите номер телефона, или ад пользователя вас ждут гифки с отборным ужасом.
Ну и классика жанра начала века. Ложка столовая глубокая: инструкция по эксплуатации.
#fun
В статье Интерфейсы в реальном мире обсуждаются крутые интерфейсы в физическом мире. Есть вкусное продолжение. Подмечены крутые детали окружения, на которые мы привыкли не обращать внимания.
Проектирование по-настоящему отвратительных интерфейсов требует сноровки. В статье Введите номер телефона, или ад пользователя вас ждут гифки с отборным ужасом.
Ну и классика жанра начала века. Ложка столовая глубокая: инструкция по эксплуатации.
#fun
👍6❤2🔥2🤯1
Вопросы для junior python developer
Статьи для подготовки к собеседованиям хорошо помогают в поиске собственных пробелов в знаниях. В статье Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров (habr, 2020, оригинал) на самом деле покрываются базовые аспекты Python для младшего разработчика.
Некоторые вещи объяснены плохо, лучше прочитайте документацию, книги Лутца или Лучано. Кстати, у последнего в этом году вышло второе издание Python. К вершинам мастерства (в оригинале Fluent Python).
И да, в п. 53 автор забыл, что в try-except-finally может быть и else, который выполнится, если не было исключений. О блоке else у for мы писали раньше.
#python #books #резюме
Статьи для подготовки к собеседованиям хорошо помогают в поиске собственных пробелов в знаниях. В статье Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров (habr, 2020, оригинал) на самом деле покрываются базовые аспекты Python для младшего разработчика.
Некоторые вещи объяснены плохо, лучше прочитайте документацию, книги Лутца или Лучано. Кстати, у последнего в этом году вышло второе издание Python. К вершинам мастерства (в оригинале Fluent Python).
И да, в п. 53 автор забыл, что в try-except-finally может быть и else, который выполнится, если не было исключений. О блоке else у for мы писали раньше.
#python #books #резюме
Хабр
Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров
Snake and flowers 2 by pikaole Бывает, что компания ищет дата-сайентиста, а на самом деле ей нужен Python-разработчик. Поэтому при подготовке к собеседованию есть смысл освежить в памяти информацию по...
🔥8👍5❤1
Навигация по каналу
#sudo — наиболее важные посты. Начать знакомство с каналом рекомендуем с них.
#devfm — материалы собственного производства. Не просто аннотации, а наши мысли, статьи и видеоролики.
#python — фокусируемся на самом языке и его библиотеках.
#codereview — разбираем код, находим и устраняем проблемы, превращаем плохой код в хороший.
#procode — о профессиональной разработке и тестировании вне зависимости от языка.
#skills — о смежных с разработкой технических навыках, необходимых для работы и резюме. Инструменты (в том числе git, bash, docker), командная работа, безопасность и прочие фундаментальные вещи.
#systemdesign — проектирование систем и построение архитектуры.
#tools — полезные инструменты для работы.
#edu — полезные нетехнические навыки. Об обучении, продуктивности, английском, умении искать и обосновывать решения.
#youtube — видеоматериалы.
#fun — пятничное развлекательное и культурный код. Обзор художественных фильмов #films, книг #books, комиксов #xkcd и прочего.
#backup — лучшие посты месяца.
#sudo — наиболее важные посты. Начать знакомство с каналом рекомендуем с них.
#devfm — материалы собственного производства. Не просто аннотации, а наши мысли, статьи и видеоролики.
#python — фокусируемся на самом языке и его библиотеках.
#codereview — разбираем код, находим и устраняем проблемы, превращаем плохой код в хороший.
#procode — о профессиональной разработке и тестировании вне зависимости от языка.
#skills — о смежных с разработкой технических навыках, необходимых для работы и резюме. Инструменты (в том числе git, bash, docker), командная работа, безопасность и прочие фундаментальные вещи.
#systemdesign — проектирование систем и построение архитектуры.
#tools — полезные инструменты для работы.
#edu — полезные нетехнические навыки. Об обучении, продуктивности, английском, умении искать и обосновывать решения.
#youtube — видеоматериалы.
#fun — пятничное развлекательное и культурный код. Обзор художественных фильмов #films, книг #books, комиксов #xkcd и прочего.
#backup — лучшие посты месяца.
1👍18❤3🔥3
Постигаем git stash
Переключение на другой коммит может потребоваться в тот момент, когда новая фича ещё не завершена и тесты не написаны. Например, нужно запустить код из нового merge request или сделать хот-фикс в master ветке. При попытке перейти к другому коммиту git вежливо сообщит, что переход невозможен, так как есть незакомиченные изменения: error: Your local changes to the following files would be overwritten by checkout...
Первое, что приходит в голову — сделать коммит и перейти в нужное состояние репозитория. Лучше так не делать: получится коммит с не работающим кодом и в будущем будет сложнее вернуть контекст.
Самое время попробовать команду
Подробнее почитать о команде stash можно в главе книги Pro Git (оригинал)
#skills #books
Переключение на другой коммит может потребоваться в тот момент, когда новая фича ещё не завершена и тесты не написаны. Например, нужно запустить код из нового merge request или сделать хот-фикс в master ветке. При попытке перейти к другому коммиту git вежливо сообщит, что переход невозможен, так как есть незакомиченные изменения: error: Your local changes to the following files would be overwritten by checkout...
Первое, что приходит в голову — сделать коммит и перейти в нужное состояние репозитория. Лучше так не делать: получится коммит с не работающим кодом и в будущем будет сложнее вернуть контекст.
Самое время попробовать команду
git stash. В результате git временно откладывает все текущие изменения и мы получаем чистую рабочую копию. Теперь можно спокойно перемещаться по репозиторию. Чтобы вернуть наработки в рабочую копию необходимо выполнить команду git stash pop. Подробнее почитать о команде stash можно в главе книги Pro Git (оригинал)
#skills #books
🔥14👍4❤3
Зачем WSGI в Python?
На картинке изображён путь пользовательского http-запроса до его обработчика на питоне.
Но между ними располагаются вебсервер Nginx, WSGI-сервер Gunicorn и веб-фреймворк Django. И как это всё работает?
На видео WSGI for Web Developers Ryan Wilson-Perkin за 25 минут расскажет о всех элементах картинки, поднимет PEP3333 и покажет небольшую реализацию WSGI на сокетах.
#python #youtube
На картинке изображён путь пользовательского http-запроса до его обработчика на питоне.
Но между ними располагаются вебсервер Nginx, WSGI-сервер Gunicorn и веб-фреймворк Django. И как это всё работает?
На видео WSGI for Web Developers Ryan Wilson-Perkin за 25 минут расскажет о всех элементах картинки, поднимет PEP3333 и покажет небольшую реализацию WSGI на сокетах.
#python #youtube
👍10❤3🔥2
Почему стоит выбрать Python
1. Быстрая разработка. Самая сильная сторона Python — обширная стандартная библиотека и огромное число сторонних модулей на любой случай из жизни. Их применение экономит кучу времени.
2. Простая поддержка кода. Синтаксический сахар приводит к немногословным программам. Меньше кода — меньше мест для ошибок.
3. Возможность точечного ускорения кода. Изначально невысокую скорость работы можно починить разными хаками. Обычно в программе тормозит "бутылочное горлышко" . Это не вся программа, а только небольшая её часть. Зачастую профилирование позволяет найти и устранить это "бутылочное горлышко" путём переписывания кода на правильный. Если переписывание не помогло, можно использовать pypy или написать модуль на С/С++.
Конечно, нельзя забывать о низком пороге входа, развитом сообществе и кроссплатформенности.
#python #devfm
1. Быстрая разработка. Самая сильная сторона Python — обширная стандартная библиотека и огромное число сторонних модулей на любой случай из жизни. Их применение экономит кучу времени.
2. Простая поддержка кода. Синтаксический сахар приводит к немногословным программам. Меньше кода — меньше мест для ошибок.
3. Возможность точечного ускорения кода. Изначально невысокую скорость работы можно починить разными хаками. Обычно в программе тормозит "бутылочное горлышко" . Это не вся программа, а только небольшая её часть. Зачастую профилирование позволяет найти и устранить это "бутылочное горлышко" путём переписывания кода на правильный. Если переписывание не помогло, можно использовать pypy или написать модуль на С/С++.
Конечно, нельзя забывать о низком пороге входа, развитом сообществе и кроссплатформенности.
#python #devfm
PyPy
A fast, compliant alternative implementation of Python
Download PyPy
What is PyPy ?
Documentation (external link)
On average, PyPy is about 3 times faster than CPython 3.11. We currently
Download PyPy
What is PyPy ?
Documentation (external link)
On average, PyPy is about 3 times faster than CPython 3.11. We currently
❤11🔥5👍2
Мониторинг важен. Рабочий мониторинг ещё важнее
Нередко систему мониторинга проекта делают в конце и кое-как. Страшно, что "кое-как" делают мониторинг даже важных вещей.
Кто-то ошибся в настройке турбины, кто-то вовремя не убрал деревья под ЛЭП, чья-то система генерации аварийных оповещений выключается (а нет оповещений — нет проблем, ведь так?), кто-то пишет код с race condition, кто-то перезапускает сервера и не проверяет их работоспособность после ребута. Это и многое другое — в статье Блэкаут в США 2003: как два сервера обвалили энергосистему, где расследуется случай 2003 года. В результате стечения большого количества ошибок были аварийно остановлены почти 300 электростанций и свыше 50 млн человек остались без электроэнергии.
Правильно сконфигурированная система логгирования позволяет расследовать инциденты. Настроенная система мониторинга оповещениями предупредит вас об опасных ситуациях, например, близкой к критической нагрузке по процессору, оперативной или дисковой памяти.
#skills
Нередко систему мониторинга проекта делают в конце и кое-как. Страшно, что "кое-как" делают мониторинг даже важных вещей.
Кто-то ошибся в настройке турбины, кто-то вовремя не убрал деревья под ЛЭП, чья-то система генерации аварийных оповещений выключается (а нет оповещений — нет проблем, ведь так?), кто-то пишет код с race condition, кто-то перезапускает сервера и не проверяет их работоспособность после ребута. Это и многое другое — в статье Блэкаут в США 2003: как два сервера обвалили энергосистему, где расследуется случай 2003 года. В результате стечения большого количества ошибок были аварийно остановлены почти 300 электростанций и свыше 50 млн человек остались без электроэнергии.
Правильно сконфигурированная система логгирования позволяет расследовать инциденты. Настроенная система мониторинга оповещениями предупредит вас об опасных ситуациях, например, близкой к критической нагрузке по процессору, оперативной или дисковой памяти.
#skills
Пикабу
Блэкаут в США 2003: как два сервера обвалили энергосистему
Автор: Cat.Cat
🔥5👍2❤1
Пятничное развлекательное. BadComedian — истоки
Вики насчитывает у Бэда 151 ролик. Начало творческой истории BadComedian было положено обзором индийского кошмара на улице вязов в двух частях. В этих обзорах уже можно увидеть "волшебный индийский монтаж", филигранное изменение имён персонажей и классическую озвучку экранного безумия спокойным голосом: "перед походом в школу эти тридцатилетние школьники заходят в ресторан". Думаю, зрителям Бэд полюбился за постоянные отсылки к классике современности, такие как аудио из Пилы и Mortal Kombat, филигранной вставки моментов из 300 спартанцев или Джея и Молчаливого Боба. Обзор советского Фредди продолжил высмеивать отдельные элементы фильма и положил традицию бесконечных рефренов.
"Водка внутри, а снаружи бутылка" в Невском Дрифте с Александром Курицыным был удалён с основного канала, но в целом спасён. "Губы эпичности" и македонская стрельба с двух рук положили начало истории крепкой любви Бэда к Невскому.
В Джигурде появился "золотой фонд цитат" и больше, больше, больше отсылок. Закончился 2011 год обзором После Жизни со Шматко.
Напоследок отметим достойный клип Сценарист от 55х55 про Бэда, пронизанный любовью к его творчеству. Приставучая мелодия идёт бонусом
#fun
Вики насчитывает у Бэда 151 ролик. Начало творческой истории BadComedian было положено обзором индийского кошмара на улице вязов в двух частях. В этих обзорах уже можно увидеть "волшебный индийский монтаж", филигранное изменение имён персонажей и классическую озвучку экранного безумия спокойным голосом: "перед походом в школу эти тридцатилетние школьники заходят в ресторан". Думаю, зрителям Бэд полюбился за постоянные отсылки к классике современности, такие как аудио из Пилы и Mortal Kombat, филигранной вставки моментов из 300 спартанцев или Джея и Молчаливого Боба. Обзор советского Фредди продолжил высмеивать отдельные элементы фильма и положил традицию бесконечных рефренов.
"Водка внутри, а снаружи бутылка" в Невском Дрифте с Александром Курицыным был удалён с основного канала, но в целом спасён. "Губы эпичности" и македонская стрельба с двух рук положили начало истории крепкой любви Бэда к Невскому.
В Джигурде появился "золотой фонд цитат" и больше, больше, больше отсылок. Закончился 2011 год обзором После Жизни со Шматко.
Напоследок отметим достойный клип Сценарист от 55х55 про Бэда, пронизанный любовью к его творчеству. Приставучая мелодия идёт бонусом
#fun
👍8🌭4❤2⚡1🔥1
Социальная инженерия Кевина Митника
Самое уязвимое место любой информационной системы — это люди, её эксплуатирующие. Вам не требуется взламывать систему, если можно уговорить оператора сказать вам пароль. Можно войти в доверие жертвы и попросить незначительную услугу, в которой неловко отказать.
Самым известным социальным инженером является Кевин Митник. Его подробная биография и противостояние с другим хакером по имени Цутомо Шимомуро изложены тут.
Набор крутых историй в статье Как Митник троллил ФБР. Непревзойдённой считаем зарисовку "Обходим систему зашифрованной радиосвязи", в которой Митник своими действиями вынуждал сотрудников ФБР переходить от шифрованной связи к открытой, которую он мог подслушать.
Краткую биографию и историю про хакеров из макдональдса можно прочитать в статье. Собственно, хакинга макдональдса и не было, речь про вещание на частоте окошка макавто и троллинге посетителей. История примечательна тем, что многие действия Митника были мотивированы жаждой развлечься, а не получением выгоды. Но это не отменяет последствия его действий, в том числе уголовных.
Митник написал книги Искусство обмана (2001, по ней сняли посредственный фильм 2019 года) и Призрак в Сети (2012) с интересными историями.
Проектируя систему безопасности, учитывайте склонность людей совершать глупости. Не давайте сотруднику больше прав, чем необходимо. Предполагайте, что сотрудник случайно или намеренно может использовать своё положение для получения данных.
#edu #books
Самое уязвимое место любой информационной системы — это люди, её эксплуатирующие. Вам не требуется взламывать систему, если можно уговорить оператора сказать вам пароль. Можно войти в доверие жертвы и попросить незначительную услугу, в которой неловко отказать.
Самым известным социальным инженером является Кевин Митник. Его подробная биография и противостояние с другим хакером по имени Цутомо Шимомуро изложены тут.
Набор крутых историй в статье Как Митник троллил ФБР. Непревзойдённой считаем зарисовку "Обходим систему зашифрованной радиосвязи", в которой Митник своими действиями вынуждал сотрудников ФБР переходить от шифрованной связи к открытой, которую он мог подслушать.
Краткую биографию и историю про хакеров из макдональдса можно прочитать в статье. Собственно, хакинга макдональдса и не было, речь про вещание на частоте окошка макавто и троллинге посетителей. История примечательна тем, что многие действия Митника были мотивированы жаждой развлечься, а не получением выгоды. Но это не отменяет последствия его действий, в том числе уголовных.
Митник написал книги Искусство обмана (2001, по ней сняли посредственный фильм 2019 года) и Призрак в Сети (2012) с интересными историями.
Проектируя систему безопасности, учитывайте склонность людей совершать глупости. Не давайте сотруднику больше прав, чем необходимо. Предполагайте, что сотрудник случайно или намеренно может использовать своё положение для получения данных.
#edu #books
Хабр
Кевин Митник
Кевин Митник — наверное, единственный хакер, который широко известен даже среди далеких от компьютеров людей. Неуловимый компьютерный гений, гроза компьютерных сетей — газетные публикации, героем...
⚡5👍3🔥2❤1
Продолжаем о собеседованиях
В статье Как проходит собеседование Python-разработчика: вопросы для джуниоров и мидлов (2021) предложена таблица с примерами вопросов по темам.
Например, по теме "тестирование" для джуна вопрос такой:
"Что такое TDD?"
Для миддла в той же теме вопросы уже сложнее:
"Какие тесты приходилось писать? Что такое мок-объекты? Приходилось ли использовать?". Мы, кстати, писали о Mock, с этими знаниями вы теперь middle developer, поздравляю.
Часть вопросов ужасно нелепы, типа "Где в Django применяется паттерн мост?". Но важно понимать, что на собеседовании могут спрашивать самые странные вопросы. И неплохо бы научиться на такие вопросы отвечать. Иногда ответ может быть неожиданным.
Если у вас на вопросы из статьи не получается сформулировать ответ, то имеет смысл изучить тему подробнее. Таким образом можно почерпнуть направления для изучения.
#skills #резюме
В статье Как проходит собеседование Python-разработчика: вопросы для джуниоров и мидлов (2021) предложена таблица с примерами вопросов по темам.
Например, по теме "тестирование" для джуна вопрос такой:
"Что такое TDD?"
Для миддла в той же теме вопросы уже сложнее:
"Какие тесты приходилось писать? Что такое мок-объекты? Приходилось ли использовать?". Мы, кстати, писали о Mock, с этими знаниями вы теперь middle developer, поздравляю.
Часть вопросов ужасно нелепы, типа "Где в Django применяется паттерн мост?". Но важно понимать, что на собеседовании могут спрашивать самые странные вопросы. И неплохо бы научиться на такие вопросы отвечать. Иногда ответ может быть неожиданным.
Если у вас на вопросы из статьи не получается сформулировать ответ, то имеет смысл изучить тему подробнее. Таким образом можно почерпнуть направления для изучения.
#skills #резюме
Хабр
Как проходит собеседование Python-разработчика: вопросы для джуниоров и мидлов
Собеседование — одна из наиболее стрессовых тем для разработчиков, но только первые двадцать раз. Привет! Меня зовут Руслан, я один из наставников курса «Мидл Python-разработчик» в Яндекс.Практикуме....
👍6❤3⚡2🔥1
Что выведет код выше?
Anonymous Quiz
2%
'a', 'b', 'c', 'a', 'a'
2%
['a', 'b', 'c', 'a', 'a']
0%
'a', 'b', 'c'
3%
['a', 'b', 'c']
94%
ошибку
🌭6👍3⚡2🔥2❤1😁1
Что же не так в этом коде?
В первую очередь опрос был на внимательность. Но есть и о чём порассуждать.
1. Сразу начнём с PEP8. Называть переменную List нельзя, такой формат именования используется для классов
2. Многие заметили, опечатку — создался List, срез делается по list. Но тут начинается интересное. Текущая версия кода вызовет ошибку TypeError: 'type' object is not subscriptable. Связано это с тем, что list — ключевое слово для создания списка в формате list(). Но без круглых скобок list — это сам класс list, а не экземпляр. У самого класса список не определена операция получения элемента по номеру (subscription).
3. Если код был бы такой
То мы получили бы ошибку NameError: name 'list_' is not defined.
Итого — TypeError, если мы использовали ключевое слово list и NameError, если мы использовали несуществующее название переменной. И ни одно из таких названий не должно пройти code review.
В первую очередь опрос был на внимательность. Но есть и о чём порассуждать.
1. Сразу начнём с PEP8. Называть переменную List нельзя, такой формат именования используется для классов
2. Многие заметили, опечатку — создался List, срез делается по list. Но тут начинается интересное. Текущая версия кода вызовет ошибку TypeError: 'type' object is not subscriptable. Связано это с тем, что list — ключевое слово для создания списка в формате list(). Но без круглых скобок list — это сам класс list, а не экземпляр. У самого класса список не определена операция получения элемента по номеру (subscription).
3. Если код был бы такой
list_a = []
print(list_b[10:])То мы получили бы ошибку NameError: name 'list_' is not defined.
Итого — TypeError, если мы использовали ключевое слово list и NameError, если мы использовали несуществующее название переменной. И ни одно из таких названий не должно пройти code review.
Telegram
Вестник
#codereview #quiz
👍5⚡4❤2🔥1
Хорошая и плохая прокрастинация
Прокрастинация — это склонность откладывать дела "на потом". Пол Грэм утверждает, что самая опасная форма прокрастинации — неосознанная. Ты "сделал много дел". Просто не тех.
Люди, которым не удается написать роман, не терпят крах со своей затеей, сидя перед чистым листом бумаги несколько дней подряд. Они терпят крах, кормя кота, отправляясь купить что-нибудь для дома, встречаясь с друзьями за чашечкой кофе и проверяя почту. "У меня нет времени на работу", — говорят они. И времени действительно нет; они об этом позаботились.
В статье предлагаются ряд практических трюков для преодоления прокрастинации. Мы уже говорили о продуктивности разработчика в состоянии потока и техники помидора как один из вариантов борьбы с отвлечениями.
#edu
Прокрастинация — это склонность откладывать дела "на потом". Пол Грэм утверждает, что самая опасная форма прокрастинации — неосознанная. Ты "сделал много дел". Просто не тех.
Люди, которым не удается написать роман, не терпят крах со своей затеей, сидя перед чистым листом бумаги несколько дней подряд. Они терпят крах, кормя кота, отправляясь купить что-нибудь для дома, встречаясь с друзьями за чашечкой кофе и проверяя почту. "У меня нет времени на работу", — говорят они. И времени действительно нет; они об этом позаботились.
В статье предлагаются ряд практических трюков для преодоления прокрастинации. Мы уже говорили о продуктивности разработчика в состоянии потока и техники помидора как один из вариантов борьбы с отвлечениями.
#edu
Хабр
Хорошая и плохая прокрастинация
Все самые впечатляющие люди, с которыми я знаком — ужасные прокрастинаторы. Так может, прокрастинация не всегда плоха? Обычно пишущие о прокрастинации пишут о т...
🔥8⚡2👍2❤1🌭1