Pull to refresh
0
@QuAzIread⁠-⁠only

Лучше недостаток кармы, чем мозгов и совести

Send message

Пишем АПИ автотесты на Python по шагам

Level of difficultyMedium
Reading time27 min
Views42K

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

Читать далее

Управляем конвектором и термостатом Electrolux из Home Assistant. Часть 1

Reading time3 min
Views10K

Около 2-х лет я являюсь пользователем Home Assistant и постепенно обживаюсь устройствами, которые хочется туда интегрировать. Одним из таких устройств стало мое относительно недавнее приобретение: конвектор от Electrolux.

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

Читать далее

Извлечение текста из файлов PDF при помощи Python

Level of difficultyMedium
Reading time15 min
Views73K

▍ Введение


В эпоху больших языковых моделей (Large Language Model, LLM) и постоянно расширяющейся сферы их применений непрерывно растёт и важность текстовых данных.

Существует множество типов документов, содержащих подобные виды неструктурированной информации, от веб-статей и постов в блогах до рукописных писем и стихов. Однако существенная часть этих данных хранится и передаётся в формате PDF. В частности, выяснилось, что за каждый год в Outlook открывают более двух миллиардов PDF, а в Google Drive и электронной почте ежедневно сохраняют 73 миллионов новых файлов PDF (2).

Поэтому разработка более систематического способа обработки этих документов и извлечения из них информации позволит нам автоматизировать процесс и лучше понять этот обширный объём текстовых данных. И в выполнении этой задачи, разумеется, нашим лучшим другом будет Python.
Читать дальше →

Преобразование markdown в pdf на Python

Level of difficultyEasy
Reading time1 min
Views7.9K

Каждому, кто ходил извилистой тропкой автоматической генерации pdf из markdown файлов ведомы связанные с этой задачей пеньки решения: Pandoc, LaTex, wkhtmltopdf и т.п.

Хочу поделиться с сообществом новым (по крайней мере для меня) вариантом решения этой задачи в Python.

Этот вариант имеет следующие плюсы.

Читать далее

Неограниченный доступ к знаниям: библиотека Стандартных Шаблонных Конструкций

Level of difficultyMedium
Reading time9 min
Views24K

Есть много причин почему доступ научным статьям и книгам должен быть свободным:

Во-первых, это прекрасно

Во-вторых...

Симпсоны-ТВ: руководство по сборке

Level of difficultyEasy
Reading time16 min
Views16K

Гик-энтузиаст Brandon Withrow собрал устройство под названием Simpsons TV. Это миниатюрный телевизор, который безостановочно крутит эпизоды из мультсериала «Симпсоны», и ничего более. Если вы тоже хотите себе такой, воспользуйтесь этим руководством.

Читать далее

Собираем машину для стринг-арта

Level of difficultyMedium
Reading time12 min
Views8.7K

Творческие люди такие творческие, что могут рисовать чем угодно на чём угодно. Например, нитками по гвоздям. Этот вид искусства называется стринг-арт (побудем капитаном очевидность и скажем, что нет, стринги тут ни при чём). На самом деле, итоговый результат выглядит красиво и необычно. Правда, работа очень тонкая и кропотливая, далеко не все с ней справятся. А что, если попробовать автоматизировать это искусство? Оказалось, что задача хоть и сложная, но реальная.

Читать далее

P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети

Level of difficultyMedium
Reading time32 min
Views20K

Многие, кто работают с интернет-сокетами в любой сфере IT, задаются вопросом о пробросе портов. Связано это с тем, что практически во всех домашних/общественных/корпоративных роутерах реализован механизм NAT, который перекрывает прямой доступ к устройствам в этих подсетях извне, общаясь с внешним интернетом от их имени.

У NAT есть киллер-фича — он представляет собой идеальный фаервол: атаки извне не могут использовать порты локальных устройств напрямую, следовательно, это решает проблему атак на сетевую уязвимость ОС.

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

Разнообразные сервисы работают на серверах, т. е. имеют некую ноду, которая имеет белый адрес в интернете (находится не за NAT). Все пользователи же подключаются к этому единому серверу. В таком случае проблема «невидимости» пользователей отпадает. Однако чисто серверное взаимодействие ограничивает скорость участников, так ещё и не отказоустойчиво. Если сервер упадёт, то все клиенты отправятся за ним (считаем, что это одноклеточный сервис не на всяких там kubernetes).

Как вы уже могли были догадаться, даже в реалиях, когда практически все устройства находятся за NATами, P2P реален. Когда вы являетесь участником bittorrent-раздачи, трансфер больших данных осуществляется напрямую. Как это работает? Поиск ответа на этот вопрос завёл меня в глубокие дебри, разгребая которые я написал оверлейную p2p-сеть, где трекерами являются сами её участники. Интересно? Тогда добро пожаловать под кат.
Читать дальше →

Многопоточность в Python: очевидное и невероятное

Level of difficultyMedium
Reading time4 min
Views43K

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

Изначально я планировал что это будет простая и короткая заметка, но пока готовил и тестировал код нашел интересный неочевидный момент связанных с внутренностями CPython, так что не спешите закрывать вкладку, даже если вы уверены что вы знаете о потоках в Python всё :)

Читать далее

Комбинированное зарядное устройство GP P461

Level of difficultyEasy
Reading time2 min
Views5.9K
Это необычное зарядное устройство (ЗУ) для NiMh аккумуляторов состоит из трёх модулей, которые могут работать как вместе, так и отдельно.

Сейчас на Озоне идёт распродажа и такое ЗУ в комплекте с восемью хорошими аккумуляторами GP ReCyko Pro 2000 продают за 2037 рублей, что по нынешним временам весьма недорого.


Читать дальше →

Передача и обработка IAsyncEnumerable в Typescript с ASP.NET Core Web

Level of difficultyEasy
Reading time17 min
Views3.9K

Всем привет, Меня зовут Олег и я .NET разработчик в компании Bimeister. Я хотел поделиться своим интересным опытом по связи проекта на ASP.NET Core Web App с использованием IAsyncEnumerable коллекций и современного фронт-енд SPA приложения на Typescript.и Vue.js 3 версии.

Все эти технологии не новы и, на самом деле, фреймворк и технологии для веб части могут быть любые на ваш вкус: Angular, или React, или что-либо еще. Весь интерес представляет собой именно унификация процесса обмена с бэкендом на C# с современной асинхронной коллекцией. Я не буду заострять внимание на структуре обеих половин приложения подробно, скажу лишь, что использовал один из сложившихся в моей практики шаблонов для запуска  ASP.NET Core Web приложения с SPA. Все детали можно будет посмотреть в приложенном репозитории.

Читать далее

Как настроить сбор статистики и автоматическое отключение пользователей WireGuard в ispmanager с помощью Python и API

Level of difficultyMedium
Reading time12 min
Views7.1K

Привет! Меня зовут Вячеслав, и я руководитель отдела маркетинга. Я поднял VPN-туннель по подписке на базе ispmanager. Однако мне этого было мало: нужно было, чтобы по окончании подписки туннель автоматически отключался и статистика по каждому пользователю собиралась ежедневно.

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

Читать далее

Построение пайплайна обработки данных в реальном времени с использованием Python

Level of difficultyHard
Reading time11 min
Views9.5K

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

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

В этой статье мы рассмотрим как построить пайплайн обработки данных в реальном времени с использованием Python.

Читать далее

Сборка прошивки из исходников для Orange PI i96(Orange PI 2g-iot)

Level of difficultyEasy
Reading time18 min
Views11K

Здраствуйте меня завут Дмитрий. Как-то я купил OpangePI i96, но к сожалению производитель давно забыл об этой плате, прошивки для неё построены на ядре 3.10.62(актуальная версия на момент написаня статьи 6.5.1). Поэтому я решил собрать собственную прошивку на актуальной версии ядра. Сборка будет проходить полностью из исходников.

Читать далее

Самодельные инструменты для тестирования продукта, или DIY в разработке

Level of difficultyEasy
Reading time10 min
Views30K

Все мы привыкли к общепринятым инструментам для тестирования. Думаю, список есть у каждого и он постоянно пополняется. Лично мой: Postman, IntelliJ IDEA и DataGrip от JetBrains, ShareX для скриншотов и его величество DevTools

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

Читать далее

Почему я использую эргономичную сплит-клавиатуру и не собираюсь возвращаться к обычным

Level of difficultyEasy
Reading time6 min
Views59K

На Хабре не раз и не два обсуждались эргономичные клавиатуры разных видов. В частности — сплит‑клавиатуры, которые представляют собой две половинки целой клавиатуры, соединённые между собой либо проводами, либо беспроводным каналом связи. Я расскажу о собственном пути к сплитам, который занял много лет.

Читать далее

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию от Mentorpiece

Level of difficultyEasy
Reading time12 min
Views111K

Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

Читать далее

25 Гбит/с дома, часть 1

Level of difficultyMedium
Reading time16 min
Views50K

Я живу в маленьком сельском городке в Швейцарии и довольно давно являюсь клиентом init7 (местный провайдер). Этот провайдер хорошо известен тем, что в данный момент только они начали пару лет назад рекламировать доступное для частных лиц 25 Гбит/с подключение. Впрочем, им требуется время, чтобы обновить оборудование в точке присутствия, а, в моем случае, им нужно было открыть где-нибудь поблизости новую точку присутствия (до этого у них был договор с другим провайдером об аренде части оборудования и места в стойке, что по прежнему давало мне оптику в квартиру, она по прежнему была не GPON'ом, но скорость была ограничена гигабитом). Но в 2023 году они наконец анонсировали скорое открытие POPа и перевод всех пользователей на их основной продукт (fibre7). То что это новый POP для меня означает, что там сразу будет доступен 25 Гбит/с тариф.

Читать далее

Как перейти ко всеобщему базовому доходу в следующем году

Reading time15 min
Views22K

Главная проблема безусловного базового дохода (universal basic income, UBI) в том, что, как бы положительно люди не относились к этой идее — ежемесячные государственные выплаты «карманных» населению — даже самые большие энтузиасты её воспринимают как некий теоретический разговор о фантастической версии будущего. Практически экономический сайфай.

В головах обывателя реализация ББД в реальной жизни находится где-то рядом с коммунизмом. На самом деле UBI гораздо ближе, чем кажется. В современном мире среди развитых государств уже есть вся необходимая инфраструктура для его реализации. Как это возможно? Задача этой статьи: показать, что всеобщий базовый доход возможен а) технически (текущая мощность государственного механизма это позволяет), б) экономически — деньги на ВБД уровня прожиточного минимума в экономике есть. 

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

Читать далее

Идея: дифференцированный безусловный базовый доход

Reading time13 min
Views7K

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

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

Идея – создать ББД с суточным начислением и собственной криптовалютой; сумму начисления ББД сделать дифференцированным по пользователям привязав к параметрам человека, которые входят в такие сферы жизнедеятельности как: экономика, образование и наука, культура и творчество, законопослушность, спорт и здоровье, социальная и общественная деятельность, экология и другие; создать именную валюту пользователей, которая напрямую связана с пользовательским ББД и является комплексной оценкой  пользы пользователя по отношению к обществу в целом; все процессы внутри сети ББД должны иметь систему вознаграждения участников от выполненной работы.

Читать далее

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity

Specialization

Fullstack Developer, DevOps
Middle
C#
.NET
ASP.Net
Git
SQL
Linux
Docker
Python
Database
Bash