Обновить
-30
Ошнуров Андрей@andreoshread⁠-⁠only

Программист

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

Мультиплеерная игра на Rust + gRPC со спектатор модом. Часть 2

Время на прочтение6 мин
Охват и читатели4.2K

В этой заметке мы продолжим создавать мультиплеерный пинг понг на rust.

Читать далее

Консольное приложение, которое рисует сердечко на C#

Время на прочтение3 мин
Охват и читатели38K

Данный код не является оптимизированным или идеализированным, он очень простой и будет понятен новичкам(кем я и являюсь), потому надеюсь на понимание). Ну и еще это приложение было создано скорей смеха ради.

Читать далее

Мультиплеерная игра на Rust + gRPC со спектатор модом

Время на прочтение15 мин
Охват и читатели7.5K

Rust и gRPC. Все это вкупе с простым игровым движком. Небольшой туториал по разработке мультиплеерной игры.

Читать далее

Открытый проект беспроводной системы сбора данных на модулях 433 МГЦ

Время на прочтение18 мин
Охват и читатели16K

И еще раз о передатчиках и приемниках 433 МГц. Попробуем как можно проще и дешевле подключить их к ATMEGA8, добиться дальности более 2 км и сделать крипто-защищенную беспроводную сеть-шлюз к 1-Wire сетям сенсоров DS18S20. Для этого привлечем оверсэмплинг, ортогональные сигналы и помощь MATLAB Simulink.

Техническое описание

Используем контейнеры Podman вместо виртуальных машин

Время на прочтение2 мин
Охват и читатели13K

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

Контейнеризация — эффективный способ виртуализации на уровне ядра ОС. В системах контейнеризации гипервизора нет, но есть Container Engine, который создаёт контейнеры и управляет ими. В качестве движка контейнеризации мы будем использовать Podman.

Почему не Docker?

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

Большинство традиционных сетей контейнеров обрабатываются мостами bridge, преобразованием сетевых адресов (NAT) или путем привязки к сети хоста. Если вы хотите, чтобы ваши контейнеры выглядели как физические хосты в вашей сети и каждый с уникальным MAC-адресом, то самый простой способ — это использовать плагины macvlan и dhcp, которые поставляются с пакетом containernetworking-plugins.

Читать далее

Настройка VSCode для программирования stm32 в Linux и не только в Linux

Время на прочтение7 мин
Охват и читатели38K

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

Всё ниже описанное является следствием моего личного опыта, и ни на какую истинность не претендует. Все советы рассчитаны не людей только решившихся на переход с AVR на STM32

Вопросы типа почему Linux, VSCode и прочее, думаю, освещения не требуют. Считаю, что все заинтересованные в вопросе, на эти мелочи давно нашли СВОЙ ответ. Однако отмечу, в Винде всё это тоже работает, проверено, и проекты спокойно переживают миграцию между машинами.

Пожалуй начнём!

Читать далее

Подключение телеграм бота к гугл таблицам

Время на прочтение4 мин
Охват и читатели123K

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

Читать далее

Как научиться работать в Blazor, делая что-то полезное. Часть I

Время на прочтение9 мин
Охват и читатели12K

Когда я вижу, как кто-то учит кого-то языку программирования, то частенько замечаю тенденцию показывать новичкам примитивные примеры в виде ToDo list. Помимо того, что подобные примеры не учат ничему полезному в программировании, они очень однобоки и не позволяют оценить все плюсы и минусы какой-либо среды разработки.

Меня это удручает. Давайте попробуем написать что-нибудь полезное и при этом показать вам, что можно и чего не нужно делать с достаточно новой технологией Microsoft под названием Blazor.
Читать дальше →

Docker: по ту сторону Hello World

Время на прочтение8 мин
Охват и читатели24K

В мире программирования существуют технологии, must have для каждого разработчика, к числу которых относится и Docker. Подразумевается, что это просто, как таблица умножения, и известно всем. О том, зачем в 2021 году в 100500й раз заводить разговор про докер — статья Сергея Кушнарева, руководителя отдела разработки ZeBrains.

С одной стороны — про него все знают. С другой — если тебя устраивают небольшие веб-проекты, особенно на какой-то конкретной CMS, то докер очень часто оказывается тем самым «первым лишним», и все сводится к инструкции «возьми готовый докер-файл, запусти в терминале docker run и будет тебе счастье». А когда понимаешь, что этого уже недостаточно — натыкаешься на статьи, написанные по тому же принципу «скачайте-запустите-получите». Кому этого мало — читайте дальше.

Читать далее

Запрет криптовалюты в Китае: масштабы трагедии

Время на прочтение5 мин
Охват и читатели71K


Добыча биткоинов в Китае упала почти до нуля после недавних репрессий со стороны государства. Это уже оказало огромное влияние на весь рынок, в том числе (особенно) на Россию. Изменения касаются не только энтузиастов, в последний месяц их чувствуют все, даже бабушки из Иркутска.

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

CloudReady: личные впечатления от облачной ОС

Время на прочтение5 мин
Охват и читатели33K


У каждого взрослого самостоятельного человека имеется в хозяйстве как минимум один кот древний ноутбук, который продать за вменяемые деньги невозможно, а выкинуть — жалко. У меня это Acer Aspire One с процессором AMD C50 и гигабайтом оперативки. Ноут настолько тормозной, что на нем ворочается с трудом даже довольно «легкий» Linux с XFCE. После долгих и мучительных поисков операционки, способной работать на этом агрегате без лагов, я услышал о проекте CloudReady (https://www.neverware.com/freedownload#home-edition-install), который, как обещали его создатели, «способен вдохнуть вторую жизнь в старое железо». Что ж, попробуем, — решил я. Тому, как прошли эти «пробы», посвящена сегодняшняя заметка.
Читать дальше →

Raspberry Pi в роли роутера с единственным сетевым интерфейсом

Время на прочтение7 мин
Охват и читатели45K
Сразу скажу, что эта статья предназначена для обычных пользователей и для тех, для кого сетевые технологии — это хобби.



Если вам нужен собственный домашний роутер — отличной аппаратной платформой для него может стать Raspberry Pi 4 Model B. Более старые модели Raspberry Pi отличаются значительными ограничениями в плане поддерживаемой ими скорости передачи данных по сети. Эти ограничения столь велики, что они не подойдут для создания интернет-роутеров в том случае, если скорость доступа к интернету превышает 100 Мбит/с.
Читать дальше →

Tun2Socks: прокси-сервер в качестве шлюза, или VPN через прокси

Время на прочтение9 мин
Охват и читатели101K

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

Какой бы сценарий использования прокси у вас ни был, использовать шлюз по умолчанию в большинстве случаев удобнее. Хотя бы потому, что некоторые приложения не умеют работать через прокси.

Читать далее

Нейросети могут оказаться проще, чем принято считать

Время на прочтение11 мин
Охват и читатели20K

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

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

Читать далее

Делаем визуализацию распределения доходов населения России на основе данных Росстата

Время на прочтение5 мин
Охват и читатели46K

По данным Росстта в среднем житель России имеет доход 35 700 ₽ в месяц. Эта цифра мало что говорит о благосостоянии населения. Если взять двух человек — одного с доходом 70 000 ₽ и 1400 ₽, их средний ежемесячный доход будет равен ровно 35 700 ₽. Чтобы лучше продемонстрировать распределение доходов, я смастерил калькулятор, который позволяет посчитать количество людей с заданным диапазоном дохода и наглядно продемонстрировать их вклад в общий уровень доходов.

В этом посте я расскажу как от довольно скупых данных, которые доступны на сайте Росстата сгенерировать датасет для подробной инфографики.

Поехали!

Немного сложнее чем мигание светодиодом или усилитель с DSP обработкой сигнала и веб интерфейсом

Время на прочтение6 мин
Охват и читатели7.4K

Начать свою статью хочу с известных многим слов:

«Что нам стоит, дом построить?
нарисуем, будем жить,
и уж, точно, непременно,
в нём не будем мы тужить.»

Что нам стоит собрать усилитель с ДСП обработкой сигнала, да еще с красивым веб интерфейсом и различными другими интерфейсами управления? Легко? На практике это оказывается достаточно сложная задача.

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

ВАЖНО: это мой личный взгляд на разработку, он не обязательно будет совпадать с вашим мнением. А возможно наоборот, я озвучу некоторые мысли, которые вам кажутся родными, но это просто совпадение. Мой взгляд может не совпадать с классическими подходами к разработке оборудования. Но он имеет место быть, так как подтвержден успешным запуском в производство некоторого количества оборудования.

Если интересно - добро пожаловать.

Читать далее

Как Rust-разработчики делают Веб безопаснее

Время на прочтение8 мин
Охват и читатели9.5K

Язык программирования Rust упрощает разработку более безопасного программного обеспечения. Что ещё предстоит делать?

Читать далее

Удаленный мониторинг состояния квартиры и управление домашними устройствами

Время на прочтение8 мин
Охват и читатели11K


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

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

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

Arduino ракета на 3D принтере — учимся приземлять ракеты дома

Время на прочтение7 мин
Охват и читатели25K

Сегодня я хотел бы поделиться своим опытом проектирования ракеты типа «Батут-М» с управлением вектора тяги (thrust vector control), все детали будем печатать на 3D принтере, а в качестве микроконтроллера использовать Arduino Nano BLE.

Читать далее

Как я начал писать макросы для Rust на Gluon

Время на прочтение2 мин
Охват и читатели4.3K

Во многих языках есть специальный механихм для кодогенерации - макросы. Иногда из реализуют на отдельном достаточно примитивном языке, основанном на простой подстановке текста (препроцессоры PL/I и C, m4), но даже в таком варианте удается делать интересные и полезные вещи. Другой популярный вариант - макросы реализуются на том же языке, что и программа, в которой они используются. Такой подход ведет свое начало из Lisp (удобный тем, что формат программ и данных там одинаков), активно применяется в Julia, OCaml(camlp4/5), Scala, Haskell, Rust, а наибольшего развития получил в Nemerle, где макрос может может запускаться как до, так и после проверки и вывода типов, и в последнем варианте иметь доступ к типам.

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

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Уфа, Башкортостан(Башкирия), Россия
Дата рождения
Зарегистрирован
Активность