Предисловие
В этой статье я расскажу про свою C++ библиотеку KASWeb (Kandelaber's Async & Safe Web requests), ставящей во главу своих принципов удобство и безопасность асинхронного кода для выполнения web запросов и реакций на их результаты.
В этой статье я расскажу про свою C++ библиотеку KASWeb (Kandelaber's Async & Safe Web requests), ставящей во главу своих принципов удобство и безопасность асинхронного кода для выполнения web запросов и реакций на их результаты.
Funxy (фанкси, fun x(y)) — гибридный язык программирования со статической типизацией, pattern matching и удобной работой с бинарными данными.
Гибридный означает сочетание императивного и функционального стилей. Можно писать привычные конструкции if/for, а можно — map/filter/match с pipes и композицией. Зависит от задачи и ваших предпочтений — стили спокойно можно смешивать.
Статическая типизация с выводом типов — компилятор проверяет типы до выполнения, но в большинстве случаев их не нужно указывать явно:
Читать полностью »
Навигация внутри помещений может быть нетривиальной задачей, учитывая низкую точность GPS из-за искажений сигнала во время его прохождения через стены. Можно по всему помещению развесить маячки, но это требует больших затрат на оборудование и обслуживание. При этом, Wi-Fi роутеры, которые уже есть в помещениях, как раз могут выступать такими маячками. Измеряя мощность сигнала на устройствах, можно определять местоположение с довольно большой точностью.
Часто доводится слышать, будто протокол HTTP прост. Естественно, чаще всего — от тех, кто не слишком поднаторел в обращении с ним и слабо представляет, как именно этот протокол реализован. Думаю, сам я тоже мыслил в таком ключе, когда ещё только начинал работать с HTTP.
К настоящему времени я уже без малого три десятка лет усердно пишу клиентский код, взаимодействующий с HTTP. Я участвую в работе IETF и приложил руку ко всем спецификациям HTTP, составленным примерно с 2008 года. Поэтому полагаю, что вполне имею право развёрнуто высказаться об этом протоколе. Протокол HTTP не прост.Читать полностью »
Привет!
Недавно в рамках одного из проектов на стеке KMP, Ktor и Kotlin Serialization мы с командой решили провести эксперимент и определить возможность и целесобразность минификации тел запросов / ответов на Json.
Да, мы знаем про GraphQL, Protobuf и др., но в нашем случае имел место необузданный интерес наколхозить такое решение. И при всей его наивности удалось сократить средний размер итоговых джсонов (после всех внутренних оптимизаций) на 15–20%.
Вводные данные:
Большое приложение на KMP с таргетами iOS, Android, Web и Desktop;
Фронтенд и бэкенд написаны на Ktor и швыряются Json'ами по HTTP;
Здравствуйте, уважаемые читатели и почитатели старинных ретро-компьютеров!
Сегодня я предлагаю вам вспомнить отечественную ЭВМ «Поиск-1». Уклон статьи будет в сторону настройки сетевых параметров. Мы увидим аспекты сетевой конфигурации под операционную систему MS-DOS, попробуем ряд основных сетевых сервисов, TELNET, FTP, HTTP и подключение к BBS. Демонстрацию работы я представлю в виде видеороликов.
На мой взгляд, будет интересно настроить сетевое подключение для такой древней, в хорошем смысле этого слова, машины.
Описание компьютера «Поиск-1» есть Читать полностью »
Однажды передо мной встала довольно интересная задача: обеспечить взаимодействие стороннего веб-приложения - и набора сервисов, имеющих gRPC интерфейс.
Нужно было проводить обработку данных от веб-приложения через конвейеры AI-агентов, собирать конечный результат, и отдавать его приложению.
А также, что немаловажно, обеспечить наглядность мониторинга и управления всем хозяйством.
Мне потребовалось поддержать три типа интерфейсов. Во-первых,RestAPI для веб-приложения. Во-вторых, gRPC для взаимодействия с сервисами. В-третьих, HTTP + Websocket для интерактивного мониторинга и управления.
В мире разработки веб‑приложений (да, да, это тот самый хайп про «хайлоад», «легковесные потоки», «io‑bound нагрузки» и другое) Go завоевал популярность благодаря своей производительности, легкости и надежности. Одним из ключевых компонентов экосистемы Go является стандартный пакет net/http, который предоставляет инструменты для создания HTTP‑серверов и клиентов. Однако, несмотря на кажущуюся простоту использования этого пакета, понимание внутренних механизмов работы сервера может значительно повысить эффективность вашего кода и помочь избежать распространенных ошибок.