Обновить
-16
-1
Дмитрий Бойко@DmitryNBoyko

Full Stack Developer

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

Расчет веса перевозимого груза самосвала

Уровень сложностиСложный
Время на прочтение21 мин
Охват и читатели4.5K

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

Три основных типа карьерных самосвалов в России

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

Классические карьерные самосвалы с жёсткой рамой, такие как БелАЗ 7555–7513 и CAT 777–793, оснащаются гидропневматической подвеской с датчиками давления. Эти датчики служат для оценки веса полезной нагрузки через измерение давления в подвеске. Однако их данные сильно зависят от темпа движения и амплитуды раскачки кузова, что создает шумы и неточности при динамическом движении. В качестве инженерного дополнения к измерению веса для таких моделей важно применять алгоритмы фильтрации и компенсации динамических колебаний, а также дополнять данные от датчиков давления весовыми сенсорами, установленными на шасси, для повышения точности оценки нагрузки и снижения влияния факторов движения. Для БелАЗ и CAT, реализованы высокоточные системы взвешивания с погрешностью в диапазоне до ±0,1–1%. Однако, из-за сильных вибраций и динамических пиков в процессе работы, количество данных с аномальными колебаниями составляет примерно 20–35%. Благодаря строгой конструкции и стабильной гидравлической и электронной схемам, такие системы обеспечивают относительно меньшую дисперсию и более предсказуемую точность, особенно при использовании фильтров и компенсационных алгоритмов.

Читать далее

Сравнение двух функций в Go с указателями и без

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели1.2K

Меня часто спрашивают, почему указатели лучше? Шёрт побери, вот почему!

Описание функций меняющих местами значения переменных:

1. Функция с указателями:

Читать далее

Функция скользящего среднего для регенерации на графике

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели922

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

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

Ниже я привожу код для C# который можно copy/paste для вашего использования.

Особенностями подхода является два момента:

Читать далее

10 практических применений языка Go

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2K

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

Ключевые особенности Go:

Высокая производительность: Go компилируется в машинный код, обеспечивая высокую скорость выполнения.

Простота использования: Синтаксис Go ясный и лаконичный, что упрощает процесс обучения и разработки.

Конкурентность: Go предоставляет встроенные средства для эффективного выполнения параллельных задач.

Статическая типизация: Статическая типизация помогает предотвращать ошибки во время компиляции.

Стандартная библиотека: Богатая стандартная библиотека Go предоставляет инструменты для различных задач, включая сетевое программирование, обработку данных и многое другое.

Читать далее

10 самых необычных вопросов на собеседовании по C#

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели12K

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

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

Читать далее

10 сложных вопросов по C# для собеседования и подробные ответы на них

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

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

Читать далее

Как сбежать из Симуляции

Уровень сложностиСложный
Время на прочтение55 мин
Охват и читатели13K

Многие исследователи предполагают, что человечество смоделировано вместе с остальной частью физической вселенной - эта идея является Гипотезой Симуляции ( Simulation Hypothesis). В этой статье мы не оцениваем доказательства за или против такого утверждения, а вместо этого задаем научный вопрос по информатике, а именно: можем ли мы взломать такую симуляцию? Более формально вопрос можно было бы сформулировать так: могут ли обычно разумные агенты (люди), помещенные в виртуальные среды, найти способ побега из них? Учитывая, что современная литература по сдерживанию ИИ дает утвердительный ответ (хотя ИИ не может быть сдержан в долгосрочной перспективе), мы приходим к выводу, что должно быть возможно вырваться из симуляции, по крайней мере, с помощью сверхразумного ИИ (AGI). Напротив, если побег из симуляции невозможен, сдерживание ИИ должно быть возможным. Наконец, в статье рассматриваются и предлагаются идеи для взлома симуляции и анализируются этические и философские вопросы такого начинания.

Побег >>>

Конвертация скрипта Bash в код С# для отправки СМС через usb модем HUAWEI E3372

Время на прочтение6 мин
Охват и читатели32K
Несколько моих проектов отправляют СМС и в последнее время после обновлений сервера, а может и ряда других причин, отправка СМС стала почти невозможной.

Старенький USB модем HUAWEI (марку не буду разглашать) перестал стабильно висеть на одном COM порту и временами переподключался на другие порты, совсем отключался и терял антенну.

Да и ситуация с библиотекой GSMComm была непонятной и болезненной.
GSMComm — это пакет для телефонов GSM, в основном для выполнения задач, связанных с SMS.
www.nuget.org/packages/GSMComm последня версия 1.21.1 от 10.10.2015 года.
Поиск по интерент показал, что есть возможность использовать встроенный функционал WEB API новых модемов HUAWEI, более эффективно, чем старый подход с AT командами реализованный в GSMComm.

Выяснилось, что есть прекрасный usb модем HUAWEI E3372, который почти хакерским способом способен отправлять СМС как из скрипта (Curl + Bash), так и из кода (Python, Perl), и, как я предположил, из C#.

Самое печальное, что компания HUAWEI не предоставляет никакой документации как это сделать и все найденные методы имели экспериментальный харктер и зависели от семейства устройств.

В общем, опираясь на найденный материал, не гарантирующий работу кода с момедом, был приобретен HUAWEI E3372.
Читать дальше →

Распределенные транзакции для разнородных баз данных в MS .NET

Время на прочтение6 мин
Охват и читатели19K
Недавно, на одном интервью меня спросили, а работал ли я с распределенными транзакциями, в том смысле, что нужно было делать вставку/обновление таких записей при условии:

  1. Одной транзакции.
  2. Это могут быть несколько разнообразных баз данных таких как Oracle, MS SQL Server и PostgreSQL.
  3. Отклик на CRUD операцию может быть значительным.
  4. Последовательность вставки не важна.

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

Самые популярные структуры данных

Время на прочтение9 мин
Охват и читатели32K
Что такое структура данных?
Проще говоря, структура данных — это контейнер, в котором хранятся данные в определенной компоновке (формате, или способе организации их в памяти). Эта «компоновка» позволяет структуре данных быть эффективной в одних операциях и неэффективной в других. Ваша цель — понять структуры данных, чтобы вы могли выбрать структуру данных, наиболее оптимальную для рассматриваемой проблемы.

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

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

Практическое использование шаблона Стратегия

Время на прочтение7 мин
Охват и читатели28K
Применение шаблонов (или паттернов) в объектно-ориентированном программировании проистекает из желания делать код проще, надежнее и не изобретать велосипед, а также позволить эффективно организовать совместную работу программистов с разным уровнем подготовки давая им единую основу для понимания исходного кода в концептуальных рамках бизнес-логики приложения. Это означает, что изучение шаблонов проектирования является ключевым этапом в профессиональном росте программиста.

Как же правильно изучать шаблоны проектирования? Есть два подхода: скучный и доходчивый (Нравится моя классификация?). Скучный подход подразумевает академическое изучение списка паттернов с использованием абстрактных примеров. Лично я предпочитаю, противоположный – доходчивый подход, когда постановка задачи на относительно высоком уровне формулировки позволяет выбрать шаблоны проектирования. Хотя вы можете комбинировать оба подхода.

Итак, поехали?
Читать дальше →

Ускоряемся в Entity Framework Core

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

Не будь жадиной!


При выборке данных выбирать нужно ровно столько сколько нужно за один раз. Никогда не извлекайте все данные из таблицы!

Неправильно:

using var ctx = new EFCoreTestContext(optionsBuilder.Options);                
// Мы возвращаем колонку ID с сервера, но никогда не используем и это неправильно!
ctx.FederalDistricts.Select(x=> new { x.ID, x.Name, x.ShortName }).ToList();

Правильно:

using var ctx = new EFCoreTestContext(optionsBuilder.Options);  
// Мы не возвращаем колонку ID с сервера и это правильно!
ctx.FederalDistricts.Select(x=> new { x.Name, x.ShortName }).ToList();
ctx.FederalDistricts.Select(x => new MyClass { Name = x.Name, ShortName = x.ShortName }).ToList();

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

Информация

В рейтинге
Не участвует
Откуда
Белово, Кемеровская обл., Россия
Дата рождения
Зарегистрирован
Активность