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

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

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

Что такое HTML импорт и как это работает?

Время на прочтение4 мин
Количество просмотров174K
Перевод статьи «What are HTML Imports and How Do They Work?», Paula Borowska.

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

Введение в HTML импорт


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

Интересно то, что HTML это самые простые файлы, но иногда с ними труднее всего работать. Даже PHP файлы имеют возможность включения, почему же HTML этого не может? Благодаря веб-компонентам, мы, теперь, можем включать одни HTML документы в другие. Также, при помощи этого же тега, мы можем подключать CSS и JavaScript. (Жить стало намного лучше.)
Читать дальше →

Примеры C++ кода до и после Ranges

Время на прочтение4 мин
Количество просмотров38K
Снова здравствуйте. Перевод следующего материала подготовлен специально для студентов курса «Разработчик C++», занятия по которому стартуют уже 27 июня.



Библиотека Ranges была принята в C++20 на совещании стандартного комитета в Сан-Диего в ноябре прошлого года. Библиотека предоставляет компоненты для обработки диапазонов значений, направленных на упрощение нашего кода. К сожалению, библиотека Ranges не очень хорошо документирована, из-за этого ее труднее понять тем, кто хотел бы ее освоить. Этот пост предназначен для ознакомления с примерами кода, написанного с использованием Ranges и без нее.
Читать дальше →

Децентрализованный поиск для свободного веба

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

Возможно ли создать поисковую систему, которую тяжело подвергнуть цензуре, влиянию и блокировке?

Говоря техническим языком, возможно ли выполнять полнотекстовый поиск не имея удаленного сервера, удобным для пользователя способом, одновременно храня поисковый индекс в peer-to-peer системе и имея возможность быстро обновлять поисковый индекс?

Да, это возможно!

Под катом описание архитектуры поискового движка Summa на Rust и набора приемов, позволивших ответить утвердительно на все вопрос

Читать далее

Что есть что в CMake 3.10+ и как это использовать

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

Популярность CMake растёт. Многие крупные проекты переходят с собственных инструментов для сборки на CMake. Проект Conan предлагает интеграцию с CMake для управления зависимостями.

Разработчики CMake активно развивают инструмент и добавляю новые функции, решающие общие проблемы, возникающие при сборке проектов. Переход с CMake 2 на CMake 3 был достаточно болезнен. Документация не покрывает все аспекты использования. Функционал крайне обширен, а возникающие трудности различаются от проекта к проекту. В статье я расскажу о инструментах, которые предлагает CMake 3.10 и выше. В каждой новой версии появляются новые детали или улучшаются старые. Об актуальном состоянии лучше проанализировать Changelog, так как многие улучшения последних версий весьма специфичны для отдельных проектов, как например улучшение поддержки Cuda компиляторов. Я же сфокусируюсь на общих понятиях, которые помогут организовать проект на С++ оптимальным образом с точки зрения использования CMake как основной системы сборки.

CMake предлагает широкий набор инструментов. Чтобы не потеряться, в статье сперва будут определены сущности, через которые будут объяснены конкретные примеры. Названия сущностей я продублирую на английском. Некоторые термины не имеют однозначного перевода в русский язык.

Читать далее

Развертывание Spring Boot приложения с помощью Nginx, Let's Encrypt и Docker Compose

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

Привет, Хабр! В своей первой статье я бы хотел поделиться опытом в развертывании Spring Boot приложения. Но для начала небольшое отступление, которое должно ответить на вопросы зачем и почему.

Недавно я столкнулся с задачей разработать Telegram бота. Казалось бы, что тут сложного? Ну раз надо, то разрабатывай, где тут могут быть сложности? Но вот беда, ранее я не сталкивался с задачей развертывания проекта, тем более было много вопросов касаемо получения SSL сертификата так как Telegram API работает только с HTTPS протоколом. Увы после долгих поисков я так и не нашел статьи, которая ответила бы на все вопросы, поэтому процесс деплоя затянулся из-за того, что пришлось собирать весь материал по кусочкам. Теперь, когда у меня получилось разобраться с этой проблемой, я бы хотел вам рассказать как это сделать, чтобы сэкономить вам время и бонусом 2000 рублей за SSL сертификат.

Читать далее

Асинхронный ввод-вывод в Linux: select, poll и epoll

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

На этой неделе я получила по почте новую книгу: Программный интерфейс Linux (The Linux Programming Interface). Она написана мейнтейнером проекта Linux man-pages Майклом Керриском (Michael Kerrisk). В ней рассказывается об программном интерфейсе Linux, начиная с ядра версии 2.6.x.

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

В нашей игре кубы будут соединены, когда они динамичны и разделены, когда они статичны.
Читать дальше →

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

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

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

Читать далее

C++20. Coroutines

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

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


image

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

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

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



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

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

Сейчас я расскажу о том, как возникла идея userver, как фреймворк развивался, в каких задачах его сейчас используют и почему именно выход в опенсорс был логичным следующим шагом. А затем приведу пример написания нового микросервиса.
Читать дальше →

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

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

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 смоделировать схему.


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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Поехали!

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Большая часть материала будет разобрана на «сквозном» примере схемы предусилителя-корректора, по характеристике RIAA на одном ОУ.
Читать дальше →

Информация

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