Как стать автором
Обновить
4
0.1
Anton Berdnikov @agratoth

Python, Go, React

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

Как превратить Raspberry Pi в роутер с поддержкой WireGuard VPN клиента

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

Если вдруг у вас есть Raspberry Pi, вы с ним уже наигрались и хотите найти ему полезное применение, то в этой статье я расскажу как быстро и просто превратить его в роутер, который может работать c VPN сервером по протоколу WireGuard. В виду того, что вычислительные возможности Raspberry Pi выше, чем у среднестатистического роутера, вы получите большую скорость Интернет при работе через VPN.

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

Руководство по программированию сокетов на Python. Клиент, сервер и несколько соединений

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


К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python. Для удобства чтения первая часть — за спойлером.
Посмотреть
Всего голосов 5: ↑3 и ↓2+1
Комментарии4

Руководство по программированию сокетов на Python. От введения до работающего примера

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


К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python.
Посмотреть первую часть
Всего голосов 6: ↑4 и ↓2+4
Комментарии0

Поиск своего племени, начало

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

Долгой жизни и процветания коллеги!

В жизни даже самого сурового интроверта наступает момент, когда появляется запрос на своё племя - свое окружение, которое живет и развивается на основе общих ценностей и принципов. Этот год заставил многих задуматься об этом и не только задуматься, но и переместиться в пространстве в совершенно другие условия и социум.

Так уж вышло, что сколько себя помню, всегда был сам по себе, себе на уме, немного не от мира сего и прочие определения гика-нелюдимого. И конечно, не планировал становится предпринимателем, управлять и организовывать, мне просто нравилось придумывать и создавать что-то, пусть в виртуальном, но все же мире, в котором есть свобода и творчество. Но сегодня за плечами уже 20 лет IT предпринимательства, поиска и формирования себя и своего окружения. О чем писал в прошлых заметках.

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

Читать далее
Всего голосов 39: ↑11 и ↓28-16
Комментарии37

Тестируем слой БД в Python с использованием pytest и testcontainers

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

Несмотря на большую популярность testcontainers в мире java, информации по применению testcontainers в python в интернете практически нет. Даная статья - попытка ликвидировать этот пробел. Если тема показалась интересной, добро пожаловать под кат!

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

Аудит входа в Linux через Slack. Разбираемся с PAM

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

Библиотеки PAM (Pluggable Authentication Module) используются для добавления сложного сценария проверки учетных данных и выполнения дополнительных действий при аутентификации пользователя и доступе к службам. В этой статье мы разберемся с внутренней архитектурой PAM, особенностями конфигурации и сделаем простой модуль для отправки уведомлений в Slack при входе пользователя в систему.

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

Готовим селекторы в Redux

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

Редакс - Single-store стейт-менеджер, в котором к тому же принято группировать данные по объектам. Примерно так же, как в стейте классовых компонентов в реакте.

То есть, это совершенная противоположность атомарного подхода, которому, к примеру, следуют многие хуки реакта или Multi-store стейт-менеджеры (например Effector, где селекторы не нужны по определению - достаточно сторов).

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

В общем, раз в редаксе нет возможностей ни эффектора, ни MobX, нам лишь остается напрямую обращаться к данным, начиная с самого верха. Это превращается в нечто вроде state.foo.bar.baz. А если перед этим еще нужно произвести какие-то вычисления с участием других значений из стора?

Собственно по этим причинам, там и напрашивается какой-то отдельный слой, который возьмет на себя роль получения, комбинирования и преобразования данных. Этим слоем стали селекторы.

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

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

Введение в Test-Driven Development на React для чайников

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

Привет, в данном посте вы найдете перевод статьи Mangabo Kolawole, в которой пойдет речь о Test-Driven Development. Мы создадим крайне простое приложение на React по всем правилам TDD.

Первое правило Test-Driven Development (TDD) – это написание тестов перед написанием кода. Это звучит более интуитивно, когда мы говорим о разработке для бэкенда, если честно, но работает ли данная схема для фронтенда, в частности для React, что же, посмотрим.

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

Как создать и опубликовать библиотеку React компонентов

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

В этом руководстве вы пройдете через процесс создания и публикации собственной библиотеки компонентов React и размещения ее на Github.

От переводчика: в статье автор демонстрирует как создать библиотеку с React компонентом внутри, подготовить её к публикации с помощью Rollup, опубликовать через npm, настроить StoryBook, настроить тестирование с использованием React Testing Library и Jest. В оригинальной статье есть ссылка на видеоверсию текущего урока.

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

Пожалуйста, прекратите писать shell-скрипты

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

Когда вы автоматизируете какую-либо задачу, например, упаковываете свое приложение для Docker, то часто сталкиваетесь с написанием shell-скриптов. У вас может быть bash-скрипт для управления процессом упаковки и другой скрипт в качестве точки входа в контейнер. По мере возрастающей сложности при упаковке меняется и ваш shell-скрипт.

Все работает хорошо.

И вот однажды shell-скрипт совершает что-то совсем неправильное.

Тогда вы осознаете свою ошибку: bash, и вообще shell-скрипты, в основном, по умолчанию не работают. Если с самого начала не проявить особую осторожность, любой shell-скрипт достигнув определенного уровня сложности почти гарантированно будет глючным... а доработка функций корректности будет довольно затруднительна.

Читать далее
Всего голосов 94: ↑70 и ↓24+68
Комментарии251

Тёмная тема в React с использованием css переменных в scss

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

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

Я покажу, как можно просто добавить темную тему в React проект. Разберем основные моменты и сделаем всё красиво. Для тех, кто хочет все сразу:

Репозиторий

Демо

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

Почему список в кортеже ведет себя странно в Python?

Время на прочтение3 мин
Количество просмотров21K
В языках программирования меня всегда интересовало их внутреннее устройство. Как работает тот или иной оператор? Почему лучше писать так, а не иначе? Подобные вопросы не всегда помогают решить задачу «здесь и сейчас», но в долгосрочной перспективе формируют общую картину языка программирования. Сегодня я хочу поделиться результатом одного из таких погружений и ответить на вопрос, что происходит при модификации tuple'а в list'е.
Читать дальше →
Всего голосов 83: ↑81 и ↓2+102
Комментарии51

Окей, Джанго, у меня к тебе несколько вопросов

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

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

И тут, наверно, покажется, что я я свидетель Джанго, хожу по домам, стучу в двери и рассказываю, как круто на нём кодить, но вообще-то нет - Джанго тоже не без проблем... Вот об этом я и хочу поговорить.

Читать далее
Всего голосов 78: ↑74 и ↓4+85
Комментарии23

Установка Visual Studio Code в облаке

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

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

Интегрированные среды разработки тоже не избежали переноса в облака. Около десяти лет назад это было диковинкой, Cloud IDE только начинали развиваться, но потом на них обратили внимание самые крупные игроки IT-индустрии. 
Читать дальше →
Всего голосов 22: ↑21 и ↓1+31
Комментарии25

Выбор элементной базы для аккумуляторного питания небольшого устройства

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


Получил задание на разработку батарейного устройства с NFC, радиообменом в сети Z-wave и рядом других особенностей. Тема статьи касается электропитания данного устройства, поэтому подробного описания назначения и функций устройства не будет. Оно должно работать как от батареи, так и от сети постоянного тока 5-12 вольт. При питании от аккумулятора устройство потребляет около 200 мкА (периодическое сканирование NFC). При подносе карты потребление вырастает примерно до 400 мА в течение 0.5 секунды. Устройство должно работать на улице круглогодично и быть по габаритам максимально близким к кредитной карте и толщиной не более 2 см. Срок эксплуатации устройства до замены аккумулятора 2-3 года. Планируемая серийности несколько тысяч штук.

Кому интересны рассуждения дилетанта, решающего проблему энергопитания устройства, прошу под кат.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии51

Внедряем оплату BTC куда угодно (Python)

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

Внедряем оплату BTC куда угодно (Python)

- генерация кошелька на основе seed фразы

- проверка баланса и транзакций

- отправка BTC на другие кошельки

- создаем телеграм бота для выполнения операций с BTC

- исходники бота (github)

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

C++20. Coroutines

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

В этой статье мы подробно разберем понятие сопрограмм (coroutines), их классификацию, детально рассмотрим реализацию, допущения и компромиссы, предлагаемые новым стандартом C++20.


image

Читать дальше →
Всего голосов 32: ↑29 и ↓3+42
Комментарии27

Пишем движок полнотекстового поиска на Go

Время на прочтение8 мин
Количество просмотров19K
Полнотекстовый поиск — один из тех инструментов, которые мы используем практически каждый день, когда ищем какую-то информацию в интернете. Full-Text Search (FTS) — это метод поиска текста в коллекции документов. Документ может ссылаться на веб-страницу, газетную статью, сообщение электронной почты или любой структурированный текст.

Сегодня мы собираемся написать собственный движок FTS. К концу этой статьи он сможет выполнять поиск по миллионам документов менее чем за миллисекунду. Начнём с простых поисковых запросов, таких как «Выдать все документы со словом cat», а потом расширим движок для поддержки более сложных логических запросов.

Примечание: самым известным движком полнотекстового поиска является Lucene (а также Elasticsearch и Solr, построенные на его основе).
Читать дальше →
Всего голосов 36: ↑35 и ↓1+45
Комментарии23

Как получить доступ к ресурсам Kubernetes Pod

Время на прочтение8 мин
Количество просмотров4.8K
The Reward by Tohad

В начале работы с Kubernetes обычно забывают о настройке ресурсов контейнеров. На этом этапе достаточно убедиться, что образ Docker работает и его можно развернуть в кластере Kubernetes.

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

Команда Kubernetes aaS от Mail.ru перевела статью о ресурсах контейнеров (CPU & MEM), запросах и ограничениях ресурсов. Вы узнаете, какие преимущества дают эти настройки и что произойдет, если их не установить.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+32
Комментарии1

TypeScript. Продвинутые типы

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

Привет, Хаброжители! Мы сдали в типографию очередную новинку
"Профессиональный TypeScript. Разработка масштабируемых JavaScript-приложений". В этой книге программисты, которые уже знакомы с JavaScript на среднем уровне, узнают, как освоить TypeScript. Вы поймете, как TypeScript поможет масштабировать код в 10 раз лучше и снова сделать программирование увлекательным.

Вашему вниманию представлен отрывок одной главы из книги «Продвинутые типы».
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии1

Информация

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