Как стать автором
Обновить
9
0

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

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

OAuth2.0 авторизация в Vk средствами Qt5.8 и выше

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

Qt5.8 принёс нам QNetworkAuthorization -- модуль авторизации на сторонних сервисах. Пока что поддерживаются только протоколы OAuth и OAuth2.0, но обещали позже подвезти и OpenID.

А пока разберёмся, как использовать этот инструмент совместно с VkApi для Authorization Code Flow

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

Пособие по программированию модулей ядра Linux. Ч.2

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

Продолжение последней версии руководства по написанию модулей ядра от 2 июля 2022. В первой половине текущей части мы подробнее разберём структуру и принцип действия модулей, узнаем, чем отличается пространство пользователя от пространства ядра, а также немного поговорим об использовании памяти. Вторая же половина будет посвящена одному из типов модулей — драйверам устройств, основы работы с которыми мы также подробно рассмотрим.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+46
Комментарии0

Руководство по CMake для разработчиков C++ библиотек

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

Данное руководство позволит читателю составить полную картину того, как организовать сборку C++ библиотек с использованием современных возможностей CMake. Предполагается, что читатель имеет представление о базовых понятиях из мира CMake и динамических/статических C++ библиотек, так как в руководстве они могут не объясняться.

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

Как создать игру Tetris с помощью Three.js

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

Вспомните, как мы играем в «Тетрис». При движении блока мы свободно перемещаем и вращаем его. Кубы, из которых состоят блоки, соединены, поэтому должно быть соединено и их описание в коде. С другой стороны, когда мы завершаем горизонтальный срез (в 2D это строка), кубы удаляются и блок, к которым они принадлежали, на этом этапе уже не важны. На самом деле, они и не должны быть важны, ведь некоторые кубы из блока могут удалиться, а другие остаться на поле.

Для отслеживания начальной точки куба пришлось бы постоянно разделять и объединять геометрию, и поверьте мне, это был бы сущий хаос. В оригинальном двухмерном «Тетрисе» показателем исходного блока был цвет квадрата. Однако в 3D нам нужен удобный способ демонстрации оси Z, и лучше всего для этого подходит цвет.

В нашей игре кубы будут соединены, когда они динамичны и разделены, когда они статичны.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии6

Технология разработки оптимальных составов жаропрочных сплавов

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

В телепередачах и кинофильмах мы часто видим эффектный взлет истребителей в ночное небо, как из сопла двигателей рвется раскаленное пламя с температурой выше 1100 градусов и не задумываемся, какие же материалы могут работать в этой раскаленной среде. Такие металлические сплавы существуют, и разработка их началась еще в 30-е годы прошлого века. Сегодня в блоге ЛАНИТ я расскажу о некоторых вариантах разработки составов таких сплавов.

Читать далее
Всего голосов 59: ↑55 и ↓4+64
Комментарии22

C++20. Coroutines

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

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


image

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

Яндекс выложил в опенсорс бету фреймворка userver

Время на прочтение10 мин
Количество просмотров76K
Сегодня мы анонсируем выход в опенсорс фреймворка userver для создания высоконагруженных приложений. Для нас это важный способ поделиться опытом в разработке микросервисов, который мы накопили. Вот ссылка на Гитхаб-репозиторий c исходным кодом, документацией, примерами, шаблоном для создания своих сервисов (с настроенным CI, сборкой и тестовым окружением) и сервисом динамических конфигов. Всё это опубликовано под лицензией Apache 2.0.



🐙userver позволяет быстро создавать эффективные микросервисы на языке C++ и уже много лет активно используется в Яндекс Go, Еде, Лавке, Доставке, Маркете, финтехе и других проектах. Вот из каких требований мы исходили в процессе разработки:

  • Простота. Стажёр или студент, приходя к нам, может уже через неделю написать и отправить в продакшен новый микросервис.
  • Надёжность. Многие ошибки, в том числе и связанные с многопоточностью, можно поймать на этапе компиляции. Кроме того, фреймворк даёт подсказки по исправлению проблем.
  • Полнота. В userver есть всё необходимое для тестирования, работы с разными базами данных, кеширования, логирования, трейсинга, распределённых блокировок, работы с JSON, BSON, YAML, изменения параметров сервиса на лету и так далее.

Сейчас я расскажу о том, как возникла идея userver, как фреймворк развивался, в каких задачах его сейчас используют и почему именно выход в опенсорс был логичным следующим шагом. А затем приведу пример написания нового микросервиса.
Читать дальше →
Всего голосов 141: ↑137 и ↓4+169
Комментарии142

Симулятор электронных схем Qucs-S снова жив

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

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux, Windows и FreeBSD), написан на С++ с использованием набора библиотек Qt и разрабатывается полностью в частном порядке (в отличие, например от KiCAD, который имеет спонсора в лице CERN). В феврале этого года проект восстал из мёртвых и вышел релиз 0.0.23. Главным новшеством версии 0.0.23 было то, что программа теперь портирована на Qt5, чем обеспечена собираемость на современных дистрибутивах Linux. Актуальным релизом на текущий момент является 0.0.24 https://github.com/ra3xdh/qucs_s/releases/tag/0.0.24, в котором добавлено несколько новых видов моделирования. Далее будут рассмотрены основные возможности программы и показано как в Qucs-S смоделировать схему.


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

Manticore — альтернатива Эластику на C++ с 21-летней историей

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

5 лет назад мы форкнули Manticore из open source версии некогда популярного open source поискового движка Sphinx 2.3.2. У нас было два пакетика травы, семьдесят пять ампул мескалина, три C++ разработчика, один саппорт-инженер, опытный пользователь, менеджер, мать пятерых детей, помогающая нам на полставки и гора багов, крэшей и технических долгов. И вот, по прошествии 5 лет и сотен новых пользователей мы готовы сказать, что Manticore можно использовать как альтернативу Elasticsearch и для полнотекстового поиска и для аналитики данных.

В этой статье хочется: вспомнить как всё начиналось и что было до SOLR и Elasticsearch, максимально объективно обрисовать текущую ситуацию, попытаться понять куда нам двигаться дальше.

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

Ресурсы в архиве или как уменьшить количество подгружаемых файлов

Время на прочтение3 мин
Количество просмотров7K
Ранним жарким утром спросонья пришла в голову идея. Подозреваю, что у этой идеи есть минусы либо ее уже реализовали куда более годным способом — но, авось да пригодится кому-нибудь.

Очень часто веб-разработчики сталкиваются с проблемой большого количества мелких файлов. Картинки, скрипты, css — неудобно, все дела. Нужно как-то бороться с этим. import, спрайты, блаблабла — это хорошо, но можно попробовать и иначе. Мой вариант — упаковка всех необходимых ресурсов в архив на стороне сервера(реализация — на php), получение данных на клиенте, установка ресурсов в нужных местах.

Проблемы на данный момент: не придумал толком, как кешировать полученный архив, таким способом не стоит паковать динамический контент или большие файлы.
Для распаковки архива на клиенте использована библиотека JSZip, для удобства — jQuery.

Читать дальше →
Всего голосов 40: ↑19 и ↓21-2
Комментарии38

Простой backend на C++: это возможно?

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

Была у меня мечта - писать backend на C++. А вот разбираться в unix socket'ах, TCP, многопоточной/асинхронной обработке запросов и во многом другом совсем не хотелось. Не верил я, что до сих пор нет каких-то минималистичных фреймворков. И сегодня я вам расскажу, как можно просто сделать HTTP API микросервис на C++ с помощью фреймворка Drogon.

Поехали!
Всего голосов 32: ↑32 и ↓0+32
Комментарии24

Создание HTTP-запросов на C++

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

В этой статье я покажу вам, как создавать HTTP-запросы к REST-серверу с помощью библиотеки C++ Request, написанной Ху Нгуеном. При её написании мистер Нгуен во многом ориентировался на принципы проектирования из Python Requests, поэтому для тех, кто использовал или знаком с Python Requests, C++ Requests окажется вполне понятна.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+30
Комментарии7

Проектирование и настройка микрополосковых полосно-пропускающих фильтров СВЧ диапазона

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

При проектировании СВЧ электроники часто приходится использовать микрополосковые фильтры реализованные на плате в виде проводящих дорожек. Если нужен не очень качественный фильтр (2-3 порядка), то рассчитать его топологию не составит труда. Но иногда необходимо настроить фильтр высокого порядка и получить хорошую селективность и высокое ослабление в полосах заграждения. Тогда задача становится нетривиальной. В таком случае на помощь приходить такой замечательный инструмент современного инженера, как САПР.

В данной статье я расскажу про свой опыт настройки СВЧ фильтров с применением Microwave office от AWR. Данная программа представляет собой классический инструмент для симуляции электрических схем и обладает рядом преимуществ, призванных облегчить жизнь инженеру разработку СВЧ электроники.

Это моя первая статья на Хабре, поэтому прошу строго не судить. Конструктивную критику воспринимаю хорошо.

Читать далее
Всего голосов 16: ↑14 и ↓2+18
Комментарии22

Операционные усилители. Часть 6: Однополярное включение ОУ. Помехи, экранирование, «развязки» и защиты

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

В предыдущей публикации цикла были рассмотрены примеры реализации активных фильтров и генераторов на ОУ.

В данной публикации цикла мы разберём аспекты питания ОУ, защиту от помех (как входных, так и по питанию), а также защиты и «развязки» входных цепей.

Большая часть материала будет разобрана на «сквозном» примере схемы предусилителя-корректора, по характеристике RIAA на одном ОУ.
Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии9

Как написать рефлексию для C++

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

C++ поистине противоречивый язык. Старый добрый С существует аж с 1972 года, С++ появился в 1985 и сохранил с ним обратную совместимость. За это время его хоронили ни раз и ни два, сперва Java, теперь его потихоньку продолжают хоронить Go и Rust. Все его недостатки пережеваны множество раз. Если вы пришли в мир С++ из других ООП языков, то здесь вы не найдете...

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

Если гипотеза Римана не верна…

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

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

Или нет? Что если мы грубо пошуруем ломиком в святая святых математики и подвигаем нетривиальные нули зета функции? Сдвинутся ли со своих мест простые числа? Вас ждут картинки и видео, и очень мало формул.

Читать далее
Всего голосов 25: ↑19 и ↓6+20
Комментарии13

Согласование импедансов: переходные процессы и переходные отверстия

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

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

Металлизировать отверстия
Всего голосов 54: ↑53 и ↓1+66
Комментарии25

Код доступа Termux

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

Лонгрид посвящается любителям CLI в знак солидарности лучшего эмулятора терминала на OS Android, который испытывает «кошмарную» монополию Google.

В данной работе вербализация пойдет о нижеизложенном со всеми остановками:

[+] глубоко настраивать средý (флэшка, виджет, стиль, зеркала и конфиги);
[+] управлять серверами через ssh;
[+] скачивать ролики/отрывки с YouTube;
[+] нарезать видео, создавать gif;
[+] воспроизводить текст/музыку/радио прямо в CLI;
[+] нарезать mp3-бигфайлы (аналогов приложений на Android попросту нет), и склеивать аудиофайлы;
[+] редактировать документы;
[+] проверять орфографию: как текстовых файлов, так и различных статей по url, например, проверка орфографии статей на Habr-e;
[+] генерировать словари различной сложности со скоростью Си;
[+] создавать блок-схемы; графики; облако слов и даже 3D-визуализацию;
[+] заниматься Data Science на Android-мощностях;
[+] тестировать интернет соединение/интерфейс (требуется частично Root);
[+] сниффить/сканировать сети (требуется частично Root);
[+] запускать и управлять TOR-сетью (deleted);
[+] управлять приложениями и процессами в ОС Android (требуется Root);
[+] анализировать память;
[+] защищать любые данные от случайного редактирования/уничтожения (требуется Root);
[+] автоматически шифровать и бэкапить по ночам любые данные в своё облако;
[+] чекать username(s) и e-mail(s);
[+] проводить аудит безопасности (об опасности сердить скрипт-кидди с их любимыми: «сниффить, парсить, брутить, дампить, сканить, фишить»);
[+] работать с электропочтой;
[+] изучать UNIX/shell;
[+] программировать на Android (на выбор пользователя. В Termux портированы несколько интерпретируемых и компилируемых языков программирования);
[+] запускать python/php/npm скрипты в т.ч. в одно касание с рабочего стола;
[+] работать с криптографией, стеганографией и цифровыми подписями;
[+] парсить данные;
[*] и даже запускать GNU-GUI-софт из CLI.

Погрузиться в GNU культуру
Всего голосов 28: ↑27 и ↓1+28
Комментарии46

Рецепты Nginx: авторизация через auth0

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

Для приготовления авторизации через auth0 нам понадобится сам nginx и его плагины encrypted-session, headers-more, auth_request, set-misc, echo, json, evaluate и jwt. Можно также воспользоваться готовым образом.

Для начала
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

Как сделать ERP и причем здесь Odoo

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

Хотелось бы поговорить про ERP системы в 2022 году, и можно было бы здесь описать стати из wiki про то, что такое ERP система общими словами и многое другое, но я не про это, а про то, есть ли вообще место ERP системам в современно микросервисном мире.

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

Информация

В рейтинге
Не участвует
Откуда
Йошкар-Ола, Марий Эл, Россия
Дата рождения
Зарегистрирован
Активность