Pull to refresh
6
0
Дмитрий Волочаев @dmitryvolochaev

Разработчик

Send message

.NET nanoFramework — платформа для разработки приложений на C# для микроконтроллеров

Reading time14 min
Views23K
nanoframework

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

.NET nanoFramework является малой версией «большого» .NET Framework предназначенного для настольных систем. Разработка приложений ведется на языке C# в среде разработки Visual Studio. Сама платформа является исполнительной средой .NET кода, это позволяет абстрагироваться от аппаратного обеспечения и дает возможность переносить программный код с одного микроконтроллера на другой, который тоже поддерживает .NET nanoFramework. Программный код на C# для настольных систем, без изменений или с небольшой адаптацией (необходимо помнить про малый объем оперативной памяти) исполнится на микроконтроллере. Благодаря этому, разработчики на .NET с минимальными знаниями в области микроэлектроники смогут разрабатывать различные устройства на .NET nanoFramework.
Читать дальше →
Total votes 35: ↑34 and ↓1+40
Comments54

Пишем XGBoost с нуля — часть 1: деревья решений

Reading time13 min
Views34K


Привет, Хабр!

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

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


Читать дальше →
Total votes 77: ↑76 and ↓1+75
Comments4

Гибкая индексация элементов в контейнере на С++ и при чём тут Boost.MultiIndex

Reading time9 min
Views9.7K

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

Мультииндекснуться
Total votes 26: ↑26 and ↓0+26
Comments22

Минимальные API в .NET 6

Reading time10 min
Views27K

Создание REST API является основной частью многих проектов разработки. Выбор для создания таких проектов широк, но если вы разработчик на C#, варианты будут весьма ограничены. API на основе контроллеров были наиболее распространенными в течение долгого времени, но .NET 6 меняет эту ситуацию, предлагая новую возможность. 

Читать далее
Total votes 17: ↑16 and ↓1+17
Comments12

Очень странные дела. Что спрятано под капотом FreeDOS в современном ноутбуке

Reading time6 min
Views65K

HP Zbook Fury 17.8 G8 в режиме FreeDOS из коробки

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

Например, FreeDOS, как в нашем случае. Казалось бы, очень старая ОС, но её действительно используют в современной технике.

Разработчик компьютерных игр и специалист по виртуализации Linux Хайн-Питер ван Браам-Стюарт решил разобраться и посмотреть, что скрывается под капотом современного ноутбука HP ZBook 17.8 G8. Это оказалось как раз из его профессиональной области (извините за спойлер...).

Итак, слово автору…
Читать дальше →
Total votes 204: ↑204 and ↓0+204
Comments136

Разбираемся с декораторами в Python

Reading time9 min
Views67K

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

Читать далее
Total votes 22: ↑18 and ↓4+15
Comments11

Почему я ушел из Netflix с позиции разработчика с окладом 450000$

Reading time7 min
Views94K

Я думал, что буду работать в Netflix вечно. Самые высокие зарплаты по рынку. Свобода и уважение. Нелимитированные оплачиваемые нерабочие часы. Чего еще можно хотеть?

Поэтому, когда я ушел из Netflix в мае 21 года, все подумали, что я чокнулся. Родители первыми подняли бучу. Приехав из Китая, где им едва хватало еды, они думали, что я бросаю любую работу при возникновении каких-то сложностей, через которые им приходилось проходить, чтобы приехать в Америку.

“Просто не высовывайся и делай свою работу!” - говорили они.

“Будь благодарен за то, что у тебя есть!” - продолжали они возмущаться.

Никто из моих друзей также не мог в это поверить.

“А как же бесплатная еда?!”

”Ты работаешь в компании, которая входит в пятерку крупнейших IT-гигантов!" 

“Просто отдыхай и инвестируй, братан!”

Читать далее
Total votes 84: ↑60 and ↓24+53
Comments253

Симулятор x86 подобного процессора на машине Тьюринга

Reading time17 min
Views15K

Привет, Хабр! В свободное от работы время по вечерам мне нравится воплощать в жизнь свои сумасшедшие идеи. В один из таких вечеров родилась мысль реализовать компилятор кода в машину Тьюринга. Осознав всю тщетность бытия сложность реализации, было принято решение начать с чего-то более простого – симулятора простенького процессора со своим собственным ассемблером, в котором команды выполнялись бы с помощью различных состояний машины Тьюринга, а данные хранились бы на одной ленте. В конечном итоге удалось осуществить практически первоначальную задумку, а именно получить одну единственную машину Тьюринга, способную выполнять скомпилированную из NASM подобного ассемблера программу без какого-либо внешнего взаимодействия.

Читать далее
Total votes 56: ↑55 and ↓1+72
Comments6

Манифест В++, социальные сети + Википедия + каталог всего на одном движке

Reading time21 min
Views5K

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

 Соцсеть, и не только соцсеть является сочетанием нескольких разных объектов.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments56

Машина Тьюринга в Doom

Reading time9 min
Views13K

DOOM (игра 1993 года для DOS) полон по Тьюрингу. Это значит, что можно запустить DOOM в DOOM. В статье приводятся подробности реализации.

Предисловие


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

Что такое полнота по Тьюрингу?


Итак, какую-то видеоигру можно назвать универсальной, полной по Тьюрингу или программируемой. Что это означает? По сути, это значит, что в этой игре можно реализовать компьютер. Но тут есть свои тонкости: если для этого игроку придётся делать слишком много, то это будет уже не так интересно.
Читать дальше →
Total votes 25: ↑24 and ↓1+34
Comments9

«Я не халявщик, я партнер»: как обещали надежные 20% годовых в долларах на блокчейне, и почему всё развалилось

Reading time10 min
Views59K

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

Читать далее
Total votes 124: ↑121 and ↓3+153
Comments167

Встречайте UUID нового поколения для ключей высоконагруженных систем

Reading time3 min
Views29K

31 марта 2022 года на сайте IETF был официально размещен текст рабочего документа (копия 1, копия 2) New UUID Formats (далее – стандарт), который должен формально обновить, а фактически заменить давно устаревший и изначально ущербный RFC 4122.

В долгих и жарких спорах удалось выработать стандарт высокого качества. Можно надеяться, что этот стандарт заменит многочисленные «самоделки» энтузиастов и отдельных компаний: ULID, KSUID, CUID и т.д., а в СУБД будут встроены генераторы UUID новых форматов, предназначенных для ключей высоконагруженных систем.

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments104

Неубиваемый P2P-интернет

Reading time7 min
Views35K


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

Например, в апреле 2022 года запустилась пиринговая сеть Lantern. Также недавно разработана децентрализованная платформа Locutus для запуска любых P2P-приложений (от создателя легендарной пиринговой сети Freenet). Это далеко не полный список новых пиринговых проектов, созданных в последнее время для помощи людям, испытывающим затруднения в работе интернета.
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments18

Как рисовать с помощью SQL?

Reading time4 min
Views28K

Видимо я сделала какое-то очень плохое зло, поэтому живу во время перемен. Справиться с эмоциями и повысить конкурентоспособность на рынке Data Enigneer’ов мне помогает сайт Hackerrank. На пути к решению вообще всех задач по SQL с этого сайта мне попалась задачка на нетривиальные запросы.

В задачке требовалось звёздочками нарисовать прямоугольный треугольник...

Порисуем с помощью SQL
Total votes 54: ↑50 and ↓4+58
Comments30

Матчинг шаблона в Python 3.10

Reading time3 min
Views7.4K

В Python 3.10 имплементирован своего рода оператор switch — что-то вроде него. Оператор switch в других языках, таких как C или Java, выполняет простой матчинг значения переменной и исполняет код в зависимости от этой величины.

Он может использоваться просто, как обычный оператор switch, но способен на гораздо большее.

Возможно, этого было бы достаточно для языка C, но ведь речь о Python, а в Python 3.10 реализована гораздо более мощная и гибкая конструкция, называемая структурным сопоставлением шаблона. Она может использоваться как простой оператор switch, но способна на гораздо большее.

Давайте рассмотрим несложный пример с оператором switch. Ниже приведен сниппет, который осуществляет выбор одного значения. Мы проверим его, запустив в цикле со значениями 1,2,3 и 4.

Читать далее
Total votes 13: ↑11 and ↓2+10
Comments12

Квазигосударство Amazon

Reading time14 min
Views28K

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

«Идиллия» оплачена тяжелым трудом, уходом от налогов и экономическими махинациями.

Читать далее
Total votes 73: ↑62 and ↓11+65
Comments42

25+1 лучших OSINT расширений для Google Chrome

Reading time5 min
Views21K

Здравствуй Хабр! А мы тут продолжаем цикл статей об OSINT и, самое главное, о полезных для этого нелегкого дела инструментах.

Сегодня мы разберем расширения для Google Chrome которые помогут нам собирать и анализировать данные из открытых источников, ну и в целом улучшат наш опыт проведения расследований.

DISCLAIMER: Данная статья написана в ознакомительных целях и не является руководством к неправомерным действиям или обучающим материалом для сокрытия правонарушений.

Читать далее
Total votes 18: ↑16 and ↓2+17
Comments0

Замена ZOOM и MS Teams: облачное решение ВКС Yealink Cloud

Reading time14 min
Views5.6K

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

Качество видеоконференций - поддержка 1080p подключений. На рынке крайне мало предложений с поддержкой FullHD разрешения в облаке. Если для персональных звонков с телефона или ПК достаточно качества до 720р, то для мероприятий в переговорных комнатах, оборудованных панелями с большой диагональю, этого крайне недостаточно.

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

Поддержка всех вариантов подключения - SIP/H.323/WebRTC/Desktop/Mobile. Доступом через браузер сейчас никого не удивишь. Многие также имеют программные клиенты, в том числе и для мобильных устройств. Но вот поддержка облачным сервисом ВКС подключений аппаратных терминалов по протоколам SIP/H.323 - это весьма редкий функционал даже для коммерческих продуктов, доступных сейчас на рынке.

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

Всё о решении Yealink Meeting Cloud
Total votes 12: ↑10 and ↓2+8
Comments3

Преобразование офисных файлов в текст

Reading time4 min
Views5.3K

Представление документа в виде простого текста понадобится для анализа его содержимого: индексирования и поиска, классификации, предварительной проверки.

В нашем случае, стояла задача предварительного анализа (скоринга) документов по их содержимому. Верхнеуровневый процесс обработки документов построен с использованием MS Power Automate, поэтому конвертор нужно было реализовать в виде некоего облачного сервиса, доступного через HTTP.

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments2

Изменяемые и неизменяемые объекты в Python

Reading time4 min
Views77K

Все в Python – это объект. Каждый новичок должен сразу усвоить, что все объекты в Python могут быть либо изменяемыми (мутабельным), либо неизменяемыми (иммутабельным). 

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments3

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Works in
Date of birth
Registered
Activity