Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Зачем я использую контейнеры как виртуалки: опыт python-разработчика

Время на прочтение10 мин
Количество просмотров7.2K

Привет, я Денис, python-разработчик в Cloud.ru. Последние три года я работаю с продуктами на базе компонентов OpenStack — для этого нужны разнообразные навыки и знания способов администрирования и разработки в среде Linux. За это время я убедился — мне не хватает уже существующих способов отладки, доставки кода, подключения к prod- и dev-стендам. Поэтому решил придумать свой.

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

Читать дальше
Всего голосов 9: ↑8 и ↓1+12
Комментарии9

Сравнение алгоритмов консенсуса ETH vs TON vs SOLANA

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров1.9K

Не нашел на просторах сети полноценного сравнения алгоритмов консенсуса, поэтому решил собрать инфу из разных источников воедино. Впереди очень много букаф технической инфы, статья не для всех, простым языком это не изложить(
Всем кто остался - приятного чтения)

Так как блокчейн сеть является децентрализованной и у участников сети нет доверия к друг другу, необходим механизм, который может гарантировать добросовестное взаимодействие участников внутри сети. Если ещё проще: нет какого то администратора или судьи, который мог бы контролировать честность проведения операций, поэтому участники сети регулируют ее сами с помощью Консенсуса.

Консенсус - это некая договоренность, между участниками сети, заранее сформированные правила по которым участники сети проверяют и подтверждают транзакции. Есть разные консенсусы, и у каждого есть свои плюсы и минусы. Давайте рассмотрим их чуть подробнее:

Читать далее
Всего голосов 11: ↑10 и ↓1+14
Комментарии2

Дизайн и реализация виртуальной машины CPython

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров6.9K

Наиболее интересной частью каждого языка, компилируемого в байт‑код является виртуальная машина (также известная как интерпретатор байт‑кода), в которой происходит исполнение байт‑кода. Поскольку это наиболее важная часть реализации языка, она должна быть крайне производительной. Даже если вы не занимаетесь разработкой компиляторов, знание внутреннего устройства ее реализации может дать вам возможность найти новые способы оптимизации вашего кода, что может быть полезно в других областях вашей работы. А если вы занимаетесь разработкой компиляторов, вам всегда стоит исследовать реализации в других языках, чтобы найти для себя новые трюки и потенциально упущенные детали.

В этой статье мы обсудим формат инструкций байт‑кода CPython, а также реализацию цикла обработки байт‑кода в интерпретаторе, где он и исполняется.

Читать далее
Всего голосов 22: ↑22 и ↓0+30
Комментарии2

Пишем одностраничное приложение с помощью htmx

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров16K

JS-библиотеку htmx воспринимают как средство, которое спасает интернет от одностраничных приложений. Всё дело в том, что React поглотил разработчиков своей сложностью (так говорят), а htmx предлагает столь желанное спасение.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+52
Комментарии5

Асинхронный SQLAlchemy 2: простой пошаговый гайд по настройке, моделям, связям и миграциям с использованием Alembic

Время на прочтение30 мин
Количество просмотров11K

Наконец-то пришло время взяться за то, что я давно планировал — подробный гайд по асинхронной версии SQLAlchemy 2.0 в стиле ORM. В этой серии статей я подробно расскажу обо всех аспектах: от создания моделей и установления связей между ними до миграций с Alembic и взаимодействия с данными в базе. Мы будем шаг за шагом разбирать ключевые моменты работы с асинхронной базой данных, что позволит вам глубже понять SQLAlchemy и применить эти знания на практике.

Для начала, давайте разберёмся, что такое SQLAlchemy и почему каждый разработчик, работающий с реляционными базами данных (такими как SQLite, PostgreSQL, MySQL и т. д.), должен знать о ней. После этого — настройка. Мы будем работать с PostgreSQL, но не переживайте: код, который мы напишем, универсален для всех реляционных баз данных. Мы начнем с базовой настройки SQLAlchemy для асинхронного взаимодействия, а затем перейдём к созданию таблиц в современном декларативном стиле.

Читать далее
Всего голосов 29: ↑28 и ↓1+30
Комментарии27

История Git: на этот раз не так весело

Время на прочтение23 мин
Количество просмотров30K

Линус Торвальдс как-то написал в своей книге, что создавал Linux для развлечения, но в итоге это привело к революции. Git, его второе творение, также оказалось «случайной революцией» — и сегодня это стандартный инструмент для людей в ИТ. Однако процесс его создания был уже не таким «весёлым» — по крайней мере, для самого Линуса. 

Читать далее
Всего голосов 99: ↑98 и ↓1+114
Комментарии56

Технологии интеграции информационных систем. Часть 2. GraphQL, gRPC, WebSocket, webhook, брокеры сообщений

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров11K

Эта статья ー вторая часть материала об интеграции информационных систем (ИС) и самых распространённых стилях и технологиях интеграции. 

Читать далее
Всего голосов 15: ↑13 и ↓2+13
Комментарии3

Бутстрап в PySpark

Время на прочтение13 мин
Количество просмотров1.6K

Всем привет! Меня зовут Илья Черников, я аналитик больших данных в X5 Tech, сейчас занимаюсь аналитикой и оценкой активностей CVM маркетинга экспресс-доставки “Пятёрочки”.

В статье я расскажу о том, как мы решали вопрос автоматизации оценки эффективности большого количества маркетинговых кампаний с помощью бутстрапа в PySpark. Я опишу различные подходы к реализации бутстрапа с их плюсами и минусами, а также расскажу об итоговом варианте, который мы выбрали для себя.

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии2

Регулярные выражения простыми словами. Часть 1

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров34K

Разработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.
Читать дальше →
Всего голосов 162: ↑161 и ↓1+187
Комментарии55

Postman: почтальон на страже API

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров6.3K

Привет! Меня зовут Бальцер Вадим, я QA-инженер в команде android направления Банки.ру. Сегодня поделюсь нашим опытом внедрения автотестов обратной совместимости и интеграции их в CI. 

В материале расскажу: 
1) зачем нашей команде понадобились автотесты для контроля обратной совместимости API, почему мы выбрали Postman CI.
2) с чего начали: базовые вещи + полезные советы для начинающих.
3) есть ли жизнь за гранью проверок схемы.
4) CI и интеграция с ТестОпс.
5) к чему пришли и какие перспективы видим.

Также добавлю примеры примеры кода и небольшие советы, которые могут пригодиться, если вы еще только присматриваетесь к Postman как к инструменту автоматизации проверок API.

Читать далее
Всего голосов 14: ↑13 и ↓1+16
Комментарии2

FP32, FP16, BF16 и FP8 — разбираемся в основных типах чисел с плавающей запятой

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.9K

Привет, Хабр! Сегодня давайте поговорим о том, как современные вычисления на GPU стали более гибкими и эффективными благодаря различным форматам чисел с плавающей запятой (FP64, FP32, FP16, BFLOAT16 и FP8). Эти форматы не просто числа — за каждым из них стоит конкретная область применения. В разных ситуациях мы сталкиваемся с задачами, где важны либо скорость, либо точность, и правильно выбранный тип floating point помогает оптимизировать ресурсы. Давайте разберём всё это на примерах и поймём, в каких задачах каждый из этих форматов будет наиболее полезен.

Читать далее
Всего голосов 14: ↑11 и ↓3+10
Комментарии18

Шаблоны проектирования для баз данных

Время на прочтение4 мин
Количество просмотров11K

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

СУБД является неотъемлемой частью хоть сколько‑нибудь серьезного современного приложения. Соответственно, при проектировании приложения может возникнуть вопрос, как лучше сервисам взаимодействовать с базой данных: предоставляя общий доступ к одной базе или же у каждого микросервиса должна быть своя база данных. Мы рассмотрим два шаблона, предназначенных для решения данной задачи — это Shared database и Database per Microservice. Начнем с Shared database.

Читать далее
Всего голосов 20: ↑10 и ↓10+5
Комментарии9

Пять книг про NLP, с которых можно начать

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров16K

Всем привет! Меня зовут Валентин Малых, я — руководитель направления NLP-исследований в MTS AI, вот уже 6 лет я читаю курс по NLP. Он проходит на платформе ODS, а также в нескольких университетах. Каждый раз при запуске курса студенты спрашивают меня про книги, которые можно почитать на тему обработки естественного языка. Поскольку я все время отвечаю одно и то же, появилась идея сделать пост про мой список книг, заодно описав их. 

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

Время на прочтение40 мин
Количество просмотров15K

Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации и страницу самого чата.

Чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения. Для этого воспользуемся сервисом Amvera Cloud. Нам нужно будет подготовить файлы приложения, написать код, создать файл с настройками (можно сгенерировать на сайте или скопировать мой код), а затем доставить файлы на сервис. Для доставки можно использовать встроенный терминал или GIT, используя стандартные команды PUSH/PULL.

Но прежде чем мы погрузимся в код, давайте кратко обсудим, что такое вебсокеты и как они работают в контексте FastApi.

Читать далее
Всего голосов 18: ↑18 и ↓0+23
Комментарии5

50 оттенков линейной регрессии, или почему всё, что вы знаете об A/B тестах, помещается в одно уравнение

Время на прочтение18 мин
Количество просмотров18K

Всем привет! A/B тестирование уже давно стало стандартом в проверке гипотез и улучшении продуктов в X5. Но, как ни странно, многие из «модных» техник, которые применяются в A/B тестировании, на самом деле, не что иное, как вариации старой доброй линейной регрессии. 

Основная идея здесь проста: правильное добавление новых переменных в модель помогает лучше контролировать внешние факторы и уменьшать шум в данных. Это позволяет точнее оценить эффект от воздействия и объединить разные статистические подходы, которые обычно рассматриваются отдельно. Но почему это работает? Почему всё сводится к тому, что добавление переменных помогает объединить, казалось бы, разрозненные техники? 

Чтобы разобраться в этом, для начала вспомним основы линейной регрессии, после чего перейдём к различным статистическим методам снижения дисперсии и покажем, как они сводятся к линейной регрессии. Затем объединим все техники вместе и на примере покажем, как они работают на практике.

Читать далее
Всего голосов 20: ↑20 и ↓0+27
Комментарии10

Разработка Telegram-бота для управления файлами и заметками с помощью Aiogram 3 и асинхронной SQLAlchemy

Уровень сложностиСредний
Время на прочтение32 мин
Количество просмотров6.7K

Привет, друзья! Сегодня я представляю вам новую практическую статью, посвященную разработке телеграм‑ботов с использованием фреймворка Aiogram 3. В этот раз мы сосредоточимся на практической стороне вопроса и уже к концу статьи напишем своего, достаточно функционального, бота.

Для полного погружения желательно, чтобы вы уже имели базовые знания Python, были знакомы с фреймворком Aiogram 3 (на моем Хабре уже есть около 15 публикаций, в которых я подробно разбираю создание телеграм‑ботов с нуля на этом фреймворке), а также имели общее представление о базах данных, в частности SQLite, и их интеграции с Python.

Что мы будем делать сегодня?

Сегодня мы создадим телеграм-бота для хранения заметок и файлов. Мы будем использовать фреймворк Aiogram 3 для разработки, а базу данных SQLite с асинхронным движком aiosqlite для хранения данных. Наш бот будет иметь следующий функционал:

Читать далее
Всего голосов 14: ↑13 и ↓1+18
Комментарии8

1001-ый способ миграции на асинхронный Python

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.6K

Если вы пишите на Python, то наверняка давно хотите все свои сервисы переписать на asyncio. Вот и я хотел, но не из‑за того, что стильно‑модно‑молодёжно, а потому что уже болело.

Об одном таком кейсе я и расскажу, а заодно поделюсь интересным подходом и готовой реализацией.

Читать ещё одну статью про GIL и asyncio
Всего голосов 16: ↑15 и ↓1+19
Комментарии13

Python: как переменные работают на самом деле? Погружаемся в байткод и C

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров15K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

Сегодня я хочу рассказать, как на самом деле работают переменные в CPython.

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

Читать далее
Всего голосов 44: ↑43 и ↓1+58
Комментарии6

Программирование — это вообще не просто!⠀

Время на прочтение19 мин
Количество просмотров48K


Привет, Хабр!


Идея статьи появилась, когда я начал повсюду замечать якобы подтверждения мифа, что «программирование — это просто»‬‬.


В новостях «восьмилетняя девочка, которая второй раз в жизни занимается программированием, наклепала чат-бота за 45 минут»‬ (ага, да!).


Курсы предлагают мне за 10 месяцев с нуля стать миддл+ (ага, да!).


Но я-то знаю, как оно на самом деле. Мы, программисты, обычно решаем проблемы и двигаемся дальше, но я решил запротоколировать всё как есть, и в течение пары месяцев скрупулёзно записывал всю ту хрень, что происходила со мной и моими коллегами, чтобы показать программирование без прикрас. Поехали!


Читать дальше →
Всего голосов 208: ↑198 и ↓10+225
Комментарии113

Pet-проекты и данные для Data-Engineer

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.3K

При изучении дата‑инжиниринга часто возникает вопрос: «откуда брать данные?»

В данной статье вы узнаете про крутые инструменты, которые позволят вам создавать свои pet‑проекты c использованием разнообразных данных.

Читать далее
Всего голосов 10: ↑7 и ↓3+6
Комментарии1

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность