Pull to refresh
-30
Ошнуров Андрей @andreoshread⁠-⁠only

Программист

Send message

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

Reading time5 min
Views55K

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

Поехали!

[В закладки] Базовая карта законодательства РФ по защите информации и как ей пользоваться

Reading time5 min
Views20K

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

Она сбережет время и поможет найти документы, в которых прописаны те или иные требования по защите информации, инструкции по работе с различными видами данных, состав проектной документации и так далее.

Читать далее

Рабочие предложения, включенные в грядущий стандарт ECMAScript 2022 для JavaScript

Reading time6 min
Views9K

Только ES2021 (или ES12) был зарелижен этим летом, как многие члены сообщества уже начали заглядывать в будущее, размышляя, в частности, о том, какие новые фичи принесет нам ES2022.

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

Каждое предложение фичи должно следовать определенному сценарию, в рамках которого оно проходит несколько стадий отбора вплоть до четвертой (stage 4), которая указывает на то, что это дополнение готово для включения в формальный стандарт ECMAScript и будет доступно в его ближайшей ревизии. Следующие фичи являются уже готовыми рабочими предложениями, которые находятся на четвертой стадии и уже добавлены в последний драфт ECMAScript.

Читать далее

Использование Golang для разработки Node.js приложений (Node.js: In Go We Trust)

Reading time7 min
Views11K

Меня зовут Алексей Новохацкий, я – Software Engineer. Сейчас работаю над архитектурой высоконагруженных систем, провожу технические собеседования, воплощаю в жизнь собственные проекты.

Как известно, Node.js хорошо справляется с I/O intensive задачами. А вот для решения CPU bound мы имеем несколько вариантов – child processes/cluster, worker threads. Также есть возможность использовать другой язык программирования (C, C++, Rust, Golang) в качестве отдельного сервиса/микросервиса или через WebAssembly скрипты.

В данной обзорной статье будут описаны подходы к использованию Golang в разработке Node.js приложений для запуска некоторых CPU intensive задач (простой суммы чисел, последовательности Фибоначчи, а также для таких хеш-функций как md5 и sha256).

Какие у нас есть варианты?

1. Попытаться решить CPU bound задачи только с помощью Node.js

2. Создать отдельный сервис, написанный на Golang и "общаться" с нашим приложением с помощью запросов/брокера сообщений и т.д. (в данной статье будут использованы обычные http запросы)

3. Использовать Golang для создания wasm файла, что позволит использовать дополнительные методы в Node.js

Читать далее

Больше операционных систем, хороших и разных: что умеет ToaruOS 2.0

Reading time4 min
Views12K

В мире информационных технологий много всего интересного — как среди аппаратного обеспечения, то есть «железа», так и программного. Одна из таких интересных вещей — Unix-подобная операционная система ToaruOS 2.0. Она началась едва ли не со студенческой курсовой работы, но постепенно превратилась во вполне серьезный проект, коммьюнити которого быстро расширяется.

Ну а поскольку на днях появилась уже версия 2.0, то о ней стоит поговорить, поскольку проект явно не собирается затухать, а развивается. Краткая история ОС и список ее возможностей, включая новую версию — под катом.
Читать дальше →

Пример использования WebAssembly-модуля, скомпилированного из Rust, в React-приложении

Reading time5 min
Views9.8K


Привет, друзья!


На днях прочитал интересную статью, в которой демонстрируется возможность использования WebAssembly-модулей (далее — Wasm), скомпилированных из Rust, в React-приложении.


Так вот, статья интересная, но автор толком ничего не объясняет, видимо, исходя из предположения, что читатели, как и он, владеют обоими языками программирования (JavaScript и Rust).


Поскольку я не отношусь к этой категории (пока не знаю Rust), но люблю как следует разбираться в интересующих меня вещах, представляю вашему вниманию собственную версию.


Исходный код проекта.


Если вам это интересно, прошу под кат.

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

Плагин «Билеты-ТеатрКино» продажа билетов на сайте, с поддержкой Пушкинской карты

Reading time3 min
Views4.4K

Здравствуйте друзья, коллеги и остальные Хаброюзеры.

Хочу рассказать как используя бесплатные модули для сайта создать полноценный сайт для продажи билетов с платежами онлайн для Кинотеатров, Музеев, Театров, Выставок, Тренингов, Уроков, Цирков, Мастер-классов и прочих.

Ожидается полная поддержка Пушкинской Карты. (Работает только приём платежей)

Уже много лет я разрабатываю модуль для продажи билетов, прежде были ошибки в модуле, сейчас он работает стабильно и качественно. Мой модуль работает со свободной CMS Joomla, что гарантирует надежность работы сайта.

Читать далее

Разработка приложения на Flutter с нуля до релиза: Идея + Базовая инфраструктура

Reading time11 min
Views37K

Привет! В данном цикле статей я хотел бы показать, как может происходить создание приложений с использованием Flutter. У меня есть несколько Open Source решений, которые будут использованы в данном приложении. Что из этого получится - увидим в скором будущем.

Если долго мучаться...

Vange-rs: взгляд на реализацию WebAssembly в Rust

Reading time7 min
Views8.1K

Вангеры одна из самых почитаемых и технологичных игр своего времени, продолжает жить и развиваться. Благодаря сплоченному сообществу игра получила множество усовершенствований: HD, 60 FPS, новые сетевые режимы и много другое. Vange-rs один из интереснейших проектов по Вангерам. Это rust версия игры, основной изюминкой которой является 3D рендер основанный на wgpu.

Запустить в браузере

Node.js: документирование и визуализация API с помощью Swagger

Reading time8 min
Views28K



Привет, друзья!


В этой небольшой заметке я расскажу вам о том, как генерировать и визуализировать документацию к API с помощью Swagger.


Мы разработаем простой Express-сервер, способный обрабатывать стандартные CRUD-запросы, с фиктивной базой данных, реализованной с помощью lowdb.


Затем мы подробно опишем наше API, сгенерируем JSON-файл с описанием и визуализируем его.


Так, например, будет выглядеть описание POST-запроса к нашему API:





Исходный код проекта.


Если вам это интересно, прошу под кат.

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

Как я заменил актрису в сцене из фильма без использования DeepFake

Reading time3 min
Views12K

Расскажу, как я заменил Еву Грин другой актрисой в сцене из фильма "Город грехов 2: Женщина, ради которой стоит убивать". Делал все сам, бюджет ролика нулевой.

Читать далее

Лопасти для ветряка на 3D-принтере (создание ветрогенератора, часть 1)

Reading time2 min
Views18K

Уже 15 лет, как мечта построить ветрогенератор оставалась нереализованной. Казалось-бы, давно канули в лету попытки электрифицировать дачу с помощью бочки и генератора от жигулей, хотя нет, до сих пор людям не дает покоя публикация в "Юном технике" 80-х ;-)

Но современные технологии вдохнули новую жизнь в старую идею. И подход будет куда более научным.

Для начала, я построил ультразвуковой анемометр с вычислением энергии ветра. Полевые испытания не за горизонтом.

Теперь следует определиться с типом ротора - горизонтальный или вертикальный- это скорее вопрос релиигии и тема для холиваров.

Поэтому безо всяких обьяснений скажу- я выбрал ротор Дарье с вертикальной осью, вот такой:

Читать далее

Poetry — прекрасная альтернатива pip (шпаргалка)

Reading time6 min
Views203K

Poetry - это инструмент для управления зависимостями в Python проектах (аналог встроенного pip). Идея реализации данного инструмента пришла его создателю в связи с тем, что различные способы менеджмента пакетов (requirements.txt, setup.cfg, MANIFEST.ini и другие) показались создателю Poetry не очень-то удобными. 

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

Ознакомиться

Как написать эмулятор CHIP-8 на JS

Reading time18 min
Views8.1K
Chip-8

Автор провёл детство за играми в эмуляторах NES и SNES на своём компьютере, но никогда не думал, что однажды сам напишет эмулятор. Иван Сергеев поставил перед автором задачу написать интерпретатор Chip-8, чтобы изучить основные понятия низкоуровневых языков программирования и то, как работает процессор.

Результат — эмулятор Chip-8 на JavaScript, который автор написал под его руководством. Подробности рассказываем, пока у нас начинается курс по Fullstack-разработке на Python.
Читать дальше →

Основы HTTPS, TLS, SSL. Создание собственных X.509 сертификатов. Пример настройки TLSv1.2 в Spring Boot

Reading time10 min
Views109K

Привет, Хабр! В современном мире абсолютное большинство сайтов используют HTTPS (Google даже снижает рейтинг сайтов работающих по HTTP в поисковой выдаче), а подключение к различным системам происходит по протоколу TLS/SSL. Поэтому любой разработчик рано или поздно сталкивается с этими технологиями на практике. Данная статья призвана помочь разобраться, если вы совершенно не в курсе что это такое и как оно устроено. Мы разберем как работает соединение по протоколу TLS, как выпустить собственные сертификаты и настроем TLS в Spring Boot приложении. Поехали!

Читать далее

Дорожная карта по изучению C++

Reading time6 min
Views133K

Привет!

Представляем вашему вниманию дорожную карту для изучения языка программирования C++. Идея дорожной карты возникла после проведения десятков собеседований молодых разработчиков, которые претендовали на роль Junior Developer C++, но обладали довольно слабой подготовкой по различным причинам.

Заинтересовавшихся приглашаем к прочтению статьи, а также ознакомиться с дорожной картой.

Читать далее

gocorpus: открытый корпус Go кода, поддерживающий запросы

Reading time5 min
Views4.3K

На днях я запустил wasm-приложение, которое позволяет запускать gogrep шаблоны на относительно крупном корпусе Go кода (~11 миллионов строк кода).


В этой заметке я напишу как этим пользоваться и зачем оно вообще может быть нужно.


Звёздочки нести сюда Исходный код можно найти здесь.


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

Node.js: шаблон сервера для аутентификации и авторизации

Reading time11 min
Views38K


Привет, друзья!


На досуге разработал шаблон Node.js-сервера для аутентификации/авторизации, которым хочу с вами поделиться. Надеюсь, кому-нибудь пригодится.


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


Также обратите внимание, что в коде имеется несколько console.log для облегчения процесса разработки приложения. В продакшне они не нужны. В производственном режиме также не следует возвращать столь информативные message.


Если возможностей, реализованных в шаблоне, окажется недостаточно, вот парочка более продвинутых инструментов:


  • oidc-client — разработчик отказался от дальнейшей поддержки, новый мейнтейнер пока не нашелся
  • oidc-provider — рекомендация моих более опытных коллег

Если вас интересует полноценная платформа для аутентификации/авторизации "из коробки", рассмотрите возможность использования Auth0.


Репозиторий


Сервер реализован с помощью Express.js


В качестве базы данных используется MongoDB Atlas

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

Применение Rust в разработке: страдания и высокий порог входа. Григорий Петров разбирается, когда этот язык необходим

Reading time8 min
Views35K

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

Первая статья в серии - интервью с Григорием Петровым, DevRel из Evrone. Применять новомодный Rust в заказной разработке - решение, на первый взгляд, неочевидное. Готовых разработчиков мало, порог входа - высокий. Давайте узнаем, в каких условиях использовать Rust все-таки полезно? 

Гриша, расскажи, как вы в Evrone пришли к использованию Rust? 

13 лет назад, когда Evrone только начинался, мы специализировались на full stack Ruby решениях. Но с годами мы начали расширять палитру того, что предлагаем клиентам. Вначале у нас выделилось направление фронтенд - это React, Vue.js. Затем к нам приполз Python, как альтернатива Ruby, потому что многие клиенты выбирают стек технологий под уже существующие команды и процессы. 

И уже несколько лет мы используем Rust как комплементарную технологию, которая позволяет точечно ускорять наши решения на Python и Ruby в 10, а иногда и 100 раз. 

Теперь, когда к нам приходит бизнес и говорит: «Ну вы же знаете, что Ruby нетороплив, наша система уже 100 000 запросов в секунду, нам надо потратить еще вагон денег и переписать ее на Java. Да?» Мы такие: «Нет! Мы выделяем вот эти три точки, которые у вас под нагрузкой, и наши ребята переписывают их на Rust. У вас всё начинает работать быстро, надежно и при этом поддерживаемо, а бизнес фичи продолжают фигачиться с той же страшной скоростью». 

Читать далее

Блокчейн на C# (.Net Core 3.1), Часть 0

Reading time5 min
Views19K

Вдохновившись парой статей на Хабре, посвященных созданию блокчейна на коленке, я и сам решил ввязаться во все это, написав блокчейн на C#. Если вам интересно, что получилось, добро пожаловать.

под кат

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity