Pull to refresh
13
0
Алексей @AlexDevFx

Разработчик

Send message

Распознаем голосовые сообщения Telegram без СМС и пересылок ботам

Reading time7 min
Views14K

Как всем известно, люди делятся на две категории:

1. Те, кто любит отправлять голосовые сообщения

2. Те, кто кто надеются, что для первых приготовлен отдельный котел

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

Читать далее

Алгоритм ESG (Evolution of Social Groups). C#

Level of difficultyEasy
Reading time6 min
Views2.9K

Представляю вашему вниманию статью, посвященную авторскому алгоритму «Evolution of Social Groups» (ESG) C#. Этот уникальный метод оптимизации, основанный на взаимодействии социальных групп, открывает новые горизонты в области метаэвристики. В статье подробно рассматриваются основные принципы работы алгоритма, его преимущества и области применения. Присоединяйтесь, чтобы узнать больше о мире оптимизации и возможностях, которые он открывает. Поехали…

Читать далее

А в чем проблема работать с файлами?

Level of difficultyMedium
Reading time53 min
Views37K

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

Меня увлекла тема отказоустойчивости, а конкретно - отказоустойчивой работы с файлами. В этой статье я попытался соединить все полученные знания:

Кто участвует в процессе записи

Ошибки, которые могут произойти

Что от нас зависит, а что нет

И самое главное - как это этого защититься

Читать далее

CI/CD для проекта в GitHub с развертыванием на AWS EC2

Reading time6 min
Views12K

Имеем: проект web API на .net core с исходниками в GitHub.

Хотим: авторазвертывание на виртуалке AWS EC2 после завершения работы с кодом (для примера push в develop ветку).

Инструментарий: GitHub Actions, AWS CodeDeploy, S3, EC2.

Ниже flow процесса, который будем реализовывать, погнали.

Читать далее

Пишем Смарт-контракт на FunC для TON (The Open Network)

Reading time6 min
Views21K

В этом уроке мы напишем ваш первый смарт-контракт в тестовой сети The Open Network на языке FUNC, задеплоим его в тестовую сеть с помощью toncli, а также протестируем его с помощью сообщения на языке Fift.

Читать далее

Единственный полёт «Бурана»

Reading time10 min
Views40K
29 октября 1988 года, 6:23:49 мск. Космодром Байконур, стартовая площадка 110.

Только предпусковая подготовка длилась больше года, а финальные операции начались ещё в 13 часов накануне. Буран в пакете с ракетой-носителем уже некоторое время стоят на стартовом столе, обвешанный различными кабелями, шлангами, удерживаемые площадками обслуживания. За десять минут до непосредственно старта нажимается кнопка Пуск, и «Энергия»—«Буран» с пусковым комплексом становятся полностью автоматической системой, которая не запитана от земли и управляется лишь своими компьютерами. За эти десять минут должны отсоединиться все внешние системы.

За 51 секунду до старта по всем системам проходит код отмены пуска. От изделия невовремя, с задержкой на 38 секунд, отошла платформа азимутальной ориентации, регулирующая гироскопы, стартовый комплекс не получил от неё доклад о фиксации и мгновенно выдал команду на аварийное прекращение пуска. Тут же принимается решение об отмене старта, сливе компонентов топлива и переносе на 15 ноября.


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

Анатомия асинхронных фреймворков в С++ и других языках

Reading time20 min
Views47K
Привет! В этой статье я расскажу об устройстве асинхронных движков с корутинами и без них. Для начала сосредоточимся не на конкретном движке, а на том, почему во всех популярных языках программирования появились корутины и чем они так хороши. Это может быть интересно не только C++-разработчикам, но и всем, кто занимается разработкой сетевых приложений или интересуется архитектурой современных фреймворков.

Пройдёмся по разным архитектурам построения серверов — от самой простой синхронной к более интересным, посмотрим на типичную архитектуру корутинового движка, а после окунёмся в дебри C++ и взглянем на самое страшное на примере нашего фреймворка userver.

Пишем синхронный сервер


Представьте, что у вашего сервиса очень маленькая нагрузка — 100 rps, и вам дали задачу написать простой сервер, понятный каждому второму школьнику. У вас получится что-то наподобие следующего:

void naive_accept() {
  for (;;) {
    auto new_socket = accept(listener);

    std::thread thrd([socket = std::move(new_socket)] {
      auto data = socket.receive();
      process(data);
      socket.send(data);
    });

    thrd.detach();
  }
}
Читать дальше →

Базовые принципы Availability

Reading time5 min
Views13K

О чем статья

В этой статье речь пойдет о БАЗОВЫХ подходах и принципах к такому quality attribute (QA) как Availability. Никаких сложных случаев, ничего слишком сложного, только теория с двумя примерами, скипайте, если искали что-то эдакое.

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

Что такое Availability?

Перед тем, как рассматривать паттерны и техники для обеспечения availability мы должны определить сам термин.

Читать далее

Пакуем приложения ASP.NET Core с помощью Docker

Reading time11 min
Views123K

Приложения ASP.NET Core по-настоящему кросс-платформенны и могут запускаться в «никсах», а соответственно, и в Docker. Посмотрим, как их можно упаковать, чтобы развертывать на Linux и использовать в связке с Nginx. Подробности под катом!


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

Реализация пула соединений в WCF для .Net Core с использованием HttpClientFactory

Reading time4 min
Views8.9K
Наш продукт разрабатывается на платформе .Net Core 2.2 с использованием WCF 4.5 для взаимодействия с SOAP сервисом клиента. В процессе работы сервиса разработчики шины данных заметили высокую нагрузку на сервер. Далее стали появляться проблемы с доступом к сервису. В результате выяснили, что причина кроется в количестве активных соединений.

Существует такая проблема как connection exhaustion. Она может возникать из-за нехватки доступных портов при установлении соединения или ограничения на количество соединений с внешним или внутренним сервисом. Есть два варианта решения:

• Увеличение доступных ресурсов,
• Уменьшение количества соединений.

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


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

Как сделать ваш HTML отзывчивым, добавив одну строку кода на CSS

Reading time4 min
Views65K
Привет, Хабр! представляю вашему вниманию перевод статьи «How to make your HTML responsive by adding a single line of CSS» автора Per Harald Borgen.



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

Самое крутое, что для добавления отзывчивости потребуется написать одну строчку кода на CSS
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity