Как стать автором
Обновить
1
0
Эдуард Батраев @EdwardBatraev

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

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

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

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



Hello world!


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



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


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

Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии12

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

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

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

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

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

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

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

Читать далее
Всего голосов 67: ↑64 и ↓3+61
Комментарии51

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



Hello world!


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


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


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


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


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

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

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

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

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

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

Читать далее
Всего голосов 185: ↑184 и ↓1+183
Комментарии13

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

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

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

И снова здравствуйте
Всего голосов 14: ↑14 и ↓0+14
Комментарии5

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

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

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

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

Выпей меня
Всего голосов 13: ↑12 и ↓1+11
Комментарии17

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее →
Всего голосов 25: ↑23 и ↓2+21
Комментарии2

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

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

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

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

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

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

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

Итак,
Всего голосов 107: ↑89 и ↓18+71
Комментарии47

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

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

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

Читать
Всего голосов 300: ↑298 и ↓2+296
Комментарии296

Информация

В рейтинге
Не участвует
Откуда
Саратов, Саратовская обл., Россия
Дата рождения
Зарегистрирован
Активность