Пользователь
Alpine собирает Docker билды под Python в 50 раз медленней, а образы в 2 раза тяжелей
Alpine Linux — часто рекомендованный как базовый образ для Docker`а. Вам говорят, что использование Alpine сделает ваши билды меньше, а процесс сборки быстрей.
Но если вы используете Alpine Linux для Python приложений, то он:
- Делает ваши билды намного медленней
- Делает ваши образы больше
- Тратит ваше время
- И в итоге может стать причиной ошибок в рантайме
Имитируем сетевые проблемы в Linux
В этой статье я расскажу о двух утилитах, с помощью которых можно проверить базовые сценарии, описывающие работу приложения при наличии проблем с сетью.
Делаем универсальный RFID-ключ для домофонов
Подделка серверных запросов, эксплуатация Blind SSRF
Допустим, ты заходишь на сайт, заполняешь профиль и доходишь до пункта “загрузить аватарку”. А у тебя выбор — загрузить файл или указать ссылку.
Реализуем визуальный эффект из фильма «Матрица»
Доброго времени суток, друзья!
На днях пересмотрел «Матрицу». Слушайте, до чего же классный фильм (это касается только первой части). В очередной раз обратил внимание на «падающие» строчки с иероглифами на ихних экранах (намеренно использовал слово «ихних» забавы ради). Задумался о том, как это можно реализовать… максимально простым способом (ибо лень). Вот что у меня получилось.
Шпаргалка для сисадмина по SELinux: 42 ответа на важные вопросы
Здесь вы получите ответы на важные вопросы о жизни, вселенной и всем таком в Linux с улучшенной безопасностью.
«Важная истина, что вещи не всегда являются тем, чем кажутся, общеизвестна…»
―Дуглас Адамс, Автостопом по Галактике
Безопасность. Повышение надежности. Соответствие. Политика. Четыре Всадника Апокалипсиса сисадмина. В дополнение к нашим ежедневным задачам — мониторингу, резервному копированию, внедрению, настройке, обновлению и т. д. — мы также отвечаем за безопасность наших систем. Даже тех систем, где сторонний провайдер рекомендует нам отключить усиленную безопасность. Это похоже на работу Этана Ханта из “Миссия невыполнима”.
Как ханипоты деанонимизируют хакеров и онлайн-мошенников
Ханипот – это утилита, которая служит в качестве приманки, и представляет с виду соблазнительную цель для атакующего и искушает его к раскрытию самого себя. В то время как продвинутые ханипоты спроектированы для более простого обнаружения и изучения типов атак, используемых хакерами в естественных условиях, современные ханипоты на основе URL-отслеживания развились до гибкого и удобного для пользователя инструмента, который часто используют обычные люди для выявления онлайн-мошенников.
Zero Downtime Deployment и базы данных
В этой статье подробно объясняется, как решать проблемы, связанные с совместимостью баз данных при деплое. Мы расскажем, что может произойти с вашими приложениями на проде, если вы попытаетесь выполнить деплой без предварительной подготовки. Затем мы пройдемся по этапам жизненного цикла приложения, которые необходимы, чтобы иметь нулевое время простоя (прим. пер.: далее — zero downtime). Результатом наших операций будет применение обратно несовместимого изменения базы данных обратно совместимым способом.
[Nginx] Как победить response_status = 0
http2_max_field_size 8k; # всех спасет!
На одном из проектов, после изменения некоторой внутренней логики бекенда, начал наблюдать странный response_code в логах, а именно — 0. В логах выглядит примерно так:
{
"timestamp": "2020-01-17T08:41:51+00:00",
"remote_addr": "zzz.zzz.zzz.zzz",
"request_time": 0,
"upstream_response_time": "",
"upstream_header_time": "",
"http_accept_language": "-language",
"response_status": 0,
"request": "",
"host": "example.com",
"upstream_addr": "",
"http_referrer": "",
"request_length": 5854,
"bytes_sent": 0,
"http_user_agent": ""
}
Мониторинг распределённых систем — опыт Google (перевод главы книги Google SRE)
SRE (Site Reliability Engineering) — подход к обеспечению доступности веб-проектов. Считается фреймворком для DevOps и говорит как добиться успеха в применение DevOps-практик. В этой статье перевод Главы 6 Monitoring Distributed Systems книги Site Reliability Engineering от Google. Этот перевод я готовил самостоятельно и полагался на собственный опыт понимания процессов мониторинга. В телеграм-канале @monitorim_it и блоге на Медиуме я публиковал также ссылку на перевод 4 главы этой же книги о целях уровня обслуживания.
Перевод по катом. Приятного чтения!
Python (+numba) быстрее Си — серьёзно?! Часть 2. Практика
Это вторая часть статьи про numba. В первой было историческое введение и краткая инструкция по эксплуатации numba. Здесь я привожу слегка модифицированный код задачи из статьи про хаскелл «Быстрее, чем C++; медленнее, чем PHP» (там сравнивается производительность реализаций одного алгоритма на разных языках/компиляторах) с более детальными бенчмарками, графиками и пояснениями. Сразу оговорюсь, что я видел статью Ох уж этот медленный C/C++ и, скорее всего, если внести в код на си эти правки, картина несколько изменится, но даже в этом случае то, что питон способен превысить скорость си хотя бы в таком варианте, само по себе является примечательным.
Python (+numba) быстрее Си — серьёзно?! Часть 1. Теория
Давно собирался написать статью о numba и о сравнении её быстродействия с си. Статья про хаскелл «Быстрее, чем C++; медленнее, чем PHP» подтолкнула к действию. В комментариях к этой статье упомянули о библиотеке numba и о том, что она магическим образом может приблизить скорость выполнения кода на питоне к скорости на си. В данной статье после небольшого обзора по numba (часть 1) чуть более подробный разбор этой ситуации (часть 2).
Разработка идеального pypi пакета с поддержкой разных версий python
Это небольшой мануал/история о том, как создать "идеальный" pypi пакет для python, который каждый желающий сможет установить заветной командой:
pip install my-perfect-package
Ориентирована на новичков, но призываю и профессионалов высказать свое мнение, как можно улучшить "идеальный" пакет. Поэтому прошу под кат.
Мениски в коленном суставе — что это, зачем это, как это лечится если повредилось?
Цель данной статьи – информированность людей.
Кому интересно – заходим под кат.
Введение в ASGI: становление асинхронной веб-экосистемы Python
Привет, Хабр! Представляю вашему вниманию перевод статьи "Introduction to ASGI: Emergence of an Async Python Web Ecosystem" автора Florimond Manca.
"Черепахи рядом с водоемом", Ricard Baraham на unsplash.com
Python не замыкается только на Data Science, веб-разработка на Python вернулась с новым асинхронным витком в развитии языка!
Сейчас происходит много важных событий в экосистеме веб-разработки на Python. Одним из основных драйверов этих изменений является ASGI — Asynchronous Standard Gateway Interface.
Я уже несколько раз упоминал ASGI в моем блоге, в частности, когда анонсировал Bocadillo (асинхронный open-source веб-фреймворк на Python — прим.пер.) и tartiflette-starlette (библиотека для построения GraphQL API поверх HTTP через ASGI — прим.пер.), но я никогда не писал подробное введение о нем. Теперь я это сделаю.
Эта статья нацелена на людей, интересующихся последними трендами в веб-разработке на Python. Я хочу пригласить вас на экскурсию, из которой вы узнаете, что такое ASGI, и что он означает для современной веб-разработки в мире Python.
Прежде чем мы начнем, я хотел бы рассказать, что недавно создал awesome-asgi — отличный список для отслеживания постоянно расширяющейся экосистемы ASGI.
5 возможностей Python, о которых я не знал — а зря
Даже если вы — программист, который переходит на Python с другого языка, вроде C, или если вы — учёный, который раньше работал в MATLAB, Python-программирование с использованием высокоуровневых абстракций — это, определённо, совершенно особый опыт. Я хочу рассказать о пяти очень важных, на мой взгляд, возможностях Python, о которых я раньше, к сожалению, не знал.
Прионы — страх и ужас будущего
Введение
«Предрассветная дымка нехотя отступала по оврагам, проступали стебли ржи, переливающиеся под взмахами ветра. Птицы уже успели обрадоваться утру и ненавязчиво щебетали над ухом. Последние капли сна упали в чашку ароматного кофе. Приятно встречать диск солнца, растягивая заиндевевшие суставы и вглядываясь в даль. Кто это? Застыла мысль, когда взгляд скользнул на тропинку, бегущую из леса. Широкая улыбка озарила лицо. С первых движений он узнал ее. Только она могла двигаться с такой грацией и изяществом лани. Рука замерла на полпути к столу. Продолжая улыбаться, он вдруг резко повернулся и зашагал на кухню. Появились на столе еще одна чашка и поднос с ягодами. Аромат лавандового сиропа заполонил веранду. Хороший будет день, подумалось ему, приятный завтрак – уж точно.
Введение в язык запросов Cypher
Язык запросов Cypher изначально разработан специально для графовой СУБД Neo4j. Целью Cypher является предоставить человеко-читаемый язык запросов к графовым базам данных похожий на SQL. На сегодня Cypher поддерживается несколькими графовыми СУБД. Для стандартизации Cypher была создана организация openCypher.
Основы работы с СУБД Neo4j описаны в статье Основы работы с Neo4j в браузере.
Для знакомства с Cypher рассмотрим пример генеалогического дерева заимствованный из классического учебника по Прологу за авторством И. Братко. На этом примере будет показано как добавлять узлы и связи в граф, как им назначать метки и атрибуты и как задавать вопросы.
Реализация строкового типа в CPython
Information
- Rating
- Does not participate
- Location
- Днепр, Днепропетровская обл., Украина
- Date of birth
- Registered
- Activity