Pull to refresh
-15
0
Дмитрий Бойко @DmitryNBoyko

Full Stack Developer

Send message

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

Level of difficultyEasy
Reading time3 min
Views1.9K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Views1.5K

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views3K

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

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

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

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

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time4 min
Views15K

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views11K

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

Читать далее

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

Level of difficultyHard
Reading time55 min
Views18K

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

Побег >>>

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

Reading time6 min
Views31K
Несколько моих проектов отправляют СМС и в последнее время после обновлений сервера, а может и ряда других причин, отправка СМС стала почти невозможной.

Старенький 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

Reading time6 min
Views18K
Недавно, на одном интервью меня спросили, а работал ли я с распределенными транзакциями, в том смысле, что нужно было делать вставку/обновление таких записей при условии:

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

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

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

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

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

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

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

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

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

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

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

Reading time15 min
Views71K

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


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

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

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();

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

Information

Rating
Does not participate
Location
Белово, Кемеровская обл., Россия
Date of birth
Registered
Activity