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

Программист

Send message

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

Reading time3 min
Views32K

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

Читать далее

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

Reading time18 min
Views15K

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

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

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

Reading time2 min
Views12K

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

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

Почему не Docker?

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

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

Читать далее

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

Reading time7 min
Views32K

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

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

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

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

Читать далее

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

Reading time4 min
Views101K

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

Читать далее

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

Reading time9 min
Views9.9K

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

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

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

Reading time8 min
Views21K

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

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

Читать далее

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

Reading time5 min
Views65K


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

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

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

Reading time5 min
Views29K


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

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

Reading time7 min
Views37K
Сразу скажу, что эта статья предназначена для обычных пользователей и для тех, для кого сетевые технологии — это хобби.



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

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

Reading time9 min
Views74K

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

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

Читать далее

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

Reading time11 min
Views20K

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

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

Читать далее

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

Reading time5 min
Views44K

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

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

Поехали!

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

Reading time6 min
Views6.7K

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

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

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

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

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

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

Читать далее

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

Reading time8 min
Views9.3K

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

Читать далее

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

Reading time8 min
Views10K


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

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

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

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

Reading time7 min
Views23K

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

Читать далее

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

Reading time2 min
Views4.2K

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

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

Читать далее

Information

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