Pull to refresh
1
0
Эдуард Батраев @EdwardBatraev

User

Send message

Практическое руководство по Rust. Бонус

Level of difficultyMedium
Reading time34 min
Views6.7K



Hello world!


Представляю вашему вниманию бонусную часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments12

Пишем асинхронный парсер и скрапер картинок на Python с графическим интерфейсом

Reading time6 min
Views13K

В этой статье мы создадим desktop-приложение, которое по нашему запросу будет сохранять на нашем диске заданное количество картинок. Так как картинок будет много, мы воспользуемся асинхронностью Python для конкурентной реализации операций ввода-вывода. Посмотрим, чем отличаются библиотеки requests и aiohttp. Также создадим два дополнительных потока приложения, чтобы обойти глобальную блокировку интерпретатора Python.

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments9

Сначала войдите через Телеграм

Reading time5 min
Views37K

Как-то мне понадобилось ограничить доступ к статическому сайту. Я написал сервер, который просит пользователей войти через Телеграм и пропускает только людей из белого списка. Ничего сложного, но вдруг кому-то понадобится.

Читать далее
Total votes 67: ↑64 and ↓3+61
Comments51

Расширяем тестовый фреймворк с помощью Pytest-плагинов. Часть 2: практика

Level of difficultyMedium
Reading time18 min
Views2.7K

В первой части статьи мы разбирались с теорией, которую нужно знать для создания собственных Pytest-плагинов: фикстурами, маркерами и хуками. А теперь перейдем к практике. 

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments0

Легкий путь к власти: тестируем API Госуслуг с PyCades без головной боли

Level of difficultyMedium
Reading time3 min
Views3.5K

Упростите свою работу с Госуслугами, используя PyCades! В этой статье мы предложим простые шаги для автоматизации работы с заявлениями через API Госуслуг, устраним рутину с формами и сделаем проще взаимодействие с информационными системами. 🛠️🤖

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments3

Xv6: учебная Unix-подобная ОС. Глава 3. Таблицы страниц

Level of difficultyMedium
Reading time13 min
Views3.7K

ОС управляет виртуальной памятью с помощью таблиц страниц. Виртуальная память процесса - адресное пространство, защищенное от других процессов. ОС делит память на страницы одинакового размера и отображает страницы виртуальной памяти на страницы физической памяти. Так ОС предоставит процессу непрерывное адресное пространство, даже если страницы физической памяти расположены в другом порядке. Таблица страниц хранит для виртуальной страницы номер соответствующей физической страницы. Каждый процесс владеет личной таблицей страниц.

Глава рассказывает, как xv6 работает с виртуальной памятью и об устройстве виртуальной памяти RISC-V.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments0

Большая шпаргалка по Rust. 2/2

Level of difficultyMedium
Reading time39 min
Views6.1K



Hello world!


Представляю вашему вниманию вторую часть большой шпаргалки по Rust.


Первая часть.


Другой формат, который может показаться вам более удобным.


Обратите внимание: шпаргалка рассчитана на людей, которые хорошо знают любой современный язык программирования, а не на тех, кто только начинает кодить 😉


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments2

Почему B-деревья быстрые?

Level of difficultyEasy
Reading time7 min
Views46K

B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее
Total votes 185: ↑184 and ↓1+183
Comments13

Асинхронный python без головной боли (часть 3)

Level of difficultyEasy
Reading time10 min
Views13K

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

И снова здравствуйте
Total votes 14: ↑14 and ↓0+14
Comments5

Асинхронный python без головной боли (часть 2)

Reading time9 min
Views51K

Продолжаем вкусно готовить asyncio

Теперь мы уже знаем достаточно, чтобы написать модный асинхронный микросервис, реализующий паттерн "API-шлюз". И попутно познакомимся с асинхронным логгированием и доступом к базе данных.

Выпей меня
Total votes 13: ↑12 and ↓1+11
Comments17

Пишем Python-макрос для FreeCAD

Level of difficultyMedium
Reading time10 min
Views5.8K

В этой статье мы напишем макрос для FreeCAD, который из N+1 цилиндров создаёт симметричный барабан с N отверстиями, разберемся с азами модуля FreeCAD в Python, а ещё изучим теорию сдвига и вращения фигур в пространстве.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments10

Как я проектирую и разрабатываю расширения Python на Rust

Level of difficultyMedium
Reading time16 min
Views4.2K

В этой статье я хочу рассказать о том, как я проектирую комплексные расширения для Python на Rust с использованием PyO3 и почему я принимаю те или иные проектные решения.

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments12

CUBIC или как собрать свой Ubuntu

Level of difficultyMedium
Reading time3 min
Views13K

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

Читать далее
Total votes 22: ↑19 and ↓3+16
Comments15

AC/DC для улитки: как мозг узнает о неисправности уха?

Reading time17 min
Views2.2K


Взаимодействие с окружающей средой и всем осуществляется за счет восприятия и обработки тех или иных сигналов. Говоря о человеке, этим процессом занимаются органы чувств и мозг. Определить, какое из чувств важнее с эволюционной точки зрения, крайне сложно. Учитывая, что разные типы сигналов, будь то визуальная или аудиторная, позволяют нашему мозгу воссоздать часть картины окружающей среды. Другими словами, все органы чувств важны в равной степени, если мы хотим получать полную картину мира. Несмотря на важность этих органов, далеко не все их секреты раскрыты. В частности то, как именно ухо коммуницирует с мозгом в тех или иных условиях, остается загадкой по сей день. Ученый из Линчёпингского университета (Швеция) по имени Пьер Хакизимана провел исследование, в котором попытался установить роль суммарного потенциала (SP от summating potential), который возникает, когда волосковые клетки преобразуют колебательную механическую энергию звука в электрические сигналы. Теоретически именно SP сообщает мозгу, что ухо работает не так, как должно. Что такое суммарный потенциал, как именно он возникает, и какие же функции выполняет? Ответы на эти вопросы мы найдем в докладе.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments1

Mela: асинхронный фреймворк на Python для сервисов, работающих с RabbitMQ

Level of difficultyEasy
Reading time10 min
Views5.4K

WARNING: длинная вступительная часть. Если хотите перейти сразу к делу - листайте до Getting Started.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments4

SQL миграции в Postgres. Часть 2

Level of difficultyMedium
Reading time17 min
Views9.1K

В первой части мы рассмотрели базовые операции, такие как добавление новых атрибутов, создание индексов и ограничений и т.д.

Эта статья посвящена двум более сложным миграциям:

- обновление большой таблицы
- разделение таблицы на две

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

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments2

Что нового в SQLAlchemy 2.0?

Level of difficultyMedium
Reading time7 min
Views18K

Эта статья является переводом статьи Мигеля Гринберга.

Возможно, вы слышали, что основная версия SQLAlchemy 2.0, была выпущена в январе 2023 года. Или, может быть, вы пропустили объявление и это новость для вас. В любом случае, я подумал, что вам будет интересно узнать, что в нем нового, стоит ли его обновлять и насколько сложно это сделать.

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

Читать далее →
Total votes 25: ↑23 and ↓2+21
Comments2

Шпаргалка: fixture в pytest

Level of difficultyMedium
Reading time15 min
Views17K

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments2

Очерки о китайцах — 1

Level of difficultyEasy
Reading time7 min
Views35K

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

Итак,
Total votes 107: ↑89 and ↓18+71
Comments47

Сколько стоит умный дом? Рассказываю, как строил свой и что получилось за 1000 руб./м²

Level of difficultyEasy
Reading time25 min
Views94K

Подробный рассказ о том, как я свой дом и сад сделал умными. С фото, техническими деталями, стоимостями и выводами на будущее.

Читать
Total votes 300: ↑298 and ↓2+296
Comments296

Information

Rating
Does not participate
Location
Саратов, Саратовская обл., Россия
Date of birth
Registered
Activity