Как стать автором
Обновить
0
@QuAzIread⁠-⁠only

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

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

Как мы сделали grpc-wiremock: сервис, создающий мок-сервер для ваших контрактов в одну команду

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

Всем привет, меня зовут Никита, уже пару лет я зарабатываю на жизнь развитием платформы-как-сервис в СберМаркет. В основном отвечаю за инструменты локальной разработки. Являюсь одним из создателей cli, которая позволяет развернуть сервис со всеми его зависимостями в одну команду sbm-cli service up.

Хочу рассказать, как мы делаем тестирование на моках в PaaS. И поделиться нашим опенсорс-решением на базе Wiremock.

Читать далее

Начало работы в Kubernetes с помощью Minikube

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


Предисловие переводчика: Minikube — удобный инструмент, который мы применяем в компании для локальных экспериментов с Kubernetes (в частности, для выполнения лабораторных работ по этой системе при обучении сотрудников). Эта статья показалась мне полезной во время моего знакомства с Kubernetes. Она написана год назад автором, использующим Mac OS X, а я проделывал все операции в Ubuntu 16.04 совсем недавно и с актуальными версиями основного софта: Minikube 0.20, Docker 17.06.0-ce, kubectl 1.7.0. Поэтому все выводы команд были переделаны под новые версии и незначительно отличаются от приведённых в оригинальной статье.
Читать дальше →

Не только VNC и RDP.  Удаленный рабочий стол Linux с X2Go

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

В этой статье ищем и находим решение задачи по организации удаленного доступа к Ubuntu: минусы VNC и RDP, история альтернативного протокола — NX, преимущества и работа с X2Go

Читать далее

Основы тестирования Go: простые тесты, testify и визуализация покрытия

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

Привет Хабр!

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

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

Читать далее

ProxiFyre: Open Source SOCKS5 Проксификатор для Windows

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

Один из проверенных временем и надёжных методов, не требующий сложной специализированной инфраструктуры, — это туннелирование TCP-соединений с использованием SSH. Этот протокол является критически важным для стабильности работы интернета, и вероятность его массовой блокировки выглядит крайне малой. Вероятно, наибольшими трудностями, с которыми мы можем столкнуться, являются ограничения на скорость соединения. Уникальной особенностью SSH является встроенный SOCKS5 прокси-сервер, который предоставляет функционал аналогичный VPN с возможностью реализации split tunneling на уровне отдельных приложений.

Читать далее

Reciprocal throughput

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

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

Читать далее

Display scaling в Linux. Часть 1 — системные настройки

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

Дисплеи с высокой плотностью пикселей уже давно не редкость. И для того, чтобы UI не выглядел слишком мелко, применяется масштабирование. В разных системах используются разные подходы и имеются различные возможности настроек. Но одно объединяет их все - безмерное количество кривизны, костылей и глюков. Посмотрим как на сегодняшний день обстоит ситуация в лагере Linux.

Читать далее

Display scaling в Linux. Часть 2 — определение scale factor для X11 приложений

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

В первой части были рассмотрены системные настройки масштабирования, предоставляемые встроенными утилитами, и набор возможностей отличается кардинально. Почему? Потому что в Linux нет единого API для работы с масштабированием, каждое окружение конфигурирует по своему и каждый UI-toolkit определяет их по своему, в итоге шанс того, что что-то где-то будет отображаться криво очень велик.

В этой статье мы рассмотрим то, как определить коэффициенты масштабирования для X11 приложения самостоятельно.

Читать далее

Моделирование высокочастотных схем при помощи Qucs-S и Ngspice

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

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux и Windows) и написан на С++ с использованием набора библиотек Qt. О базовых принципах работы с Qucs-S рассказывает моя предыдущая статья: https://habr.com/ru/articles/678526/ Для работы Qucs рекомендуется использовать также открытый движок моделирования Ngspice. Актуальным релизом Qucs-S на текущий момент является версия 1.0.2.

В Ngspice начиная с версии 37 добавлена возможность моделирования матрицы рассеяния (иначе называемое моделирование S-параметров). Qucs-S также поддерживает данные вид моделирования начиная с версии 0.0.24. Моделирование S-параметров и анализ ВЧ схем всегда было ключевой возможностью симулятора Qucs, наследником которого является Qucs-S. Но для Qucs-S, имеются некоторые отличия, о которых будет рассказано далее. На КДПВ приведён пример моделирования полосового фильтра на диапазон 40 метров для любительского КВ трансивера.

Читать далее

ChatGPT и чтение книг в оригинале

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

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

Читать далее

.NET 7 против российской криптографии

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

Разрабатывая один проект на свежем .NET 7 столкнулся с необходимостью подписывать данные с использованием отечественных криптоалгоритмов. Ранее, в .NET Framework хорошая поддержка работы с со сторонними криптопровайдерами, реализующими семейство алгоритмов ГОСТ (CryptoPro CSP, ViPNet CSP и пр.), шла "из коробки". К сожалению, в новые версии фреймворка часть ранее работающего функционала по работе с CMS-сообщениями не попала, и пришлось восполнять пробел надёжными дедовскими методами, т. е. с помощью старого доброго WinAPI.

Читать далее

RSync на стероидах с поддержкой Windows

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


На Хабре периодически рассказывают о новых инструментах для синхронизации данных. Это интересная тема. Такие программы используются:

  • для синхронизации файлов на разных устройствах,
  • дедупликации,
  • резервного копирования,
  • сжатия.

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

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

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

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

Mojo — это новый язык программирования, основанный на Python, который устраняет имеющиеся у него проблемы производительности и развёртывания.

Об авторе: Джереми Говард (Jeremy Howard) — Data Scientist, исследователь, разработчик, преподаватель и предприниматель. Джереми является одним из основателей исследовательского института fast.ai, занимающегося тем, чтобы сделать глубокое обучение более доступным, а также он является почётным профессором Университета Квинсленда. Ранее Джереми был выдающимся научным сотрудником в Университете Сан‑Франциско, где он был основателем Инициативы Уиклоу «Искусственный интеллект в медицинских исследованиях».

Mojo – это Python++

Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов

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


Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытаться его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat). Получилось ли у меня это? Узнаем в статье!
Читать дальше →

GUI на Golang: GTK+ 3

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

Решил я написать одно кроссплатформенное десктопное приложение на Go. Сделал CLI-версию, всё работает отлично. Да ещё и кросскомпиляция в Go поддерживается. Всё в общем отлично. Но понадобилась также и GUI-версия. И тут началось...


Golang gotk3

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

Kotlin Coding Conventions

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

От автора поста: ниже представлен Kotlin Code Style на 2 мая 2023 года. Конвенция постоянно меняется, но основные принципы уже заложены и неизменны. Перевод предоставлен без комментариев, как есть.

Читать далее

Dyson Air Purifier. Реверс ИК протокола. Интеграция в Home Assistant (продолжение)

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

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

был разобран протокол, используемый при передаче диагностической информации очистителя воздуха;
осуществлено подключение модуля ESP32 для сбора и парсинга данных;
выполнена первоначальная интеграция с Home Assistant.

По результатам первого тайма часть поставленной задачи была выполнена, наиболее значимые параметры работы dyson’a отображались в Home Assistant (HA). Однако управлять работой очистителя непосредственно из HA мы всё ещё не могли. Решением этой проблемы мы и займёмся в рамках данной статьи.

Читать далее

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

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

Недавно мне для личных целей понадобилось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.

Все это привело меня к закономерному выводу, что сначала нужно изучить формат FB2. А потом подумать, как прочитать его стандартными способами и вывести на экран. После того, как я немного разобралась со структурой FB2, начала догадываться, почему нет готовых библиотек. Дело в том, что этот формат довольно простой, и нет особой необходимости писать для него отдельную библиотеку. Можно довольно быстро наваять свой код, который будет читать практически все файлы FB2. И вы сможете убедиться в этом, если дочитаете статью до конца.

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

Читать далее

Mailu, fetchmail, imapsync или мой опыт переезда с Яндекс 360 на собственный сервер

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

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

Читать далее

Дампер картриджей для Денди/Famicom

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров22K
Восемь лет назад я уже писал статью о том, как я делал простенький дампер (устройство для чтения картриджей) для Денди/Famicom. Думаю, пора рассказать о том, как этот проект преобразился спустя эти годы вместе с ростом моих скиллов.


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

Информация

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

Специализация

Фулстек разработчик, DevOps-инженер
Средний
C#
.NET
ASP.NET
Git
SQL
Linux
Docker
Python
Базы данных
Bash