Pull to refresh
4
0
Konstantin S. @HavenDV

C# Developer

Send message

Service Mesh на стероидах: как построить управляемое взаимодействие между сотнями микросервисов

Reading time15 min
Views11K

Сталкивались ли вы с задачей построить Enterprise-grade-приложение из десятков приложений, слабо связанных друг с другом, разрабатываемых разными командами, с разными моделями релиза?

Мы хотим поделиться опытом, как решили эту задачу в Netcracker. Как в этом помогла концепция Service Mesh и идея применить «микросервисную модель» и к структуре Service Mesh. Мы реализовали Non Uniform Service Mesh (NUM), который представляет собой продукт и набор паттернов его применения.

Сама статья основана на расшифровке выступления на SaintHighload 2021 в Питере Алексея Ефимова, системного архитектора Netcracker и руководителя отдела Cloud Core. Ссылка на запись — в конце статьи.

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

Как хранить данные в png, не привлекая внимания санитаров

Reading time13 min
Views70K

Всё началось с мема, который вы видите выше.

Сначала я посмеялся. А потом задумался: может ли быть так, что скриншот базы равноценен её снэпшоту?

Для этого у нас должно быть такое графическое представление базы, которое 1 к 1 отображает данные и структуру. Если сделать скриншот такого представления, из него можно восстановить базу.

Или... графическое представление и должно быть базой!

Это как?
Total votes 200: ↑199 and ↓1+253
Comments88

Отрабатываем Git hooks на автоматизации commit message

Reading time8 min
Views35K

Привет, Хабр! В этой статье я расскажу о Git hooks и о том, как они могут помочь с некоторыми насущными кейсами организации создания commit’ов и commit message. Пост основан на реальном опыте из моей практики: как я упрощал то, что всем надоело делать руками. Я уверен, что хуки могут оказаться полезны почти каждому разработчику. Ведь все мы пишем в сообщении коммита чуть больше, чем «fixed what was broken», верно?

Меня зовут Роман Горбатенко, я Java-разработчик в компании DINS, на момент написания текста тружусь в команде Contact Center. Занимаюсь разработкой больше 3-х лет и прошел путь от личинки стажера до middle разработчика. Считаю Git одним из самых полезных инструментов разработчика. Многие не используют его возможности на полную, возможно, мне удастся это немного исправить.

Узнать больше о Git hooks
Total votes 13: ↑13 and ↓0+13
Comments23

NextMind Dev Kit: обзор первого нейроинтерфейса реального времени

Reading time7 min
Views9.6K

Мечта об управлении компьютером силой мысли вот уже более полувека будоражит умы людей. Еще с 1960 года специалисты DARPA рассматривали возможность симбиоза человека и компьютера. Казалось бы, задачка элементарная: считать электрический сигнал от мозга, сформировать на его основе команду и исполнить ее на компьютере. Но даже на первом этапе возникают очень большие сложности. Дело в том, что сигнал от мозга настолько слабый, что его требуется усиливать почти в 20000 раз.

Собрать такую схему сейчас не проблема, но тут возникает еще один существенный нюанс. Для того, чтобы снять полезный сигнал с кожи головы, необходима как можно большая площадь контакта датчиков. При малой площади контакта неизбежно начнут возникать проблемы из-за резкого увеличения сопротивления. Полезный сигнал просто не будет различим на фоне шумов.
Читать дальше →
Total votes 20: ↑18 and ↓2+25
Comments26

Запуск Adobe Flash в Chromium браузере после 12 января 2021

Reading time2 min
Views70K

В сети все еще существует какое-то количество страниц, написанных с использованием веб-фреймворка Adobe Flex, а также языка Action Script. Для того, чтобы переписать их на современный лад, многие будут рады продолжить пользоваться инструментами разработчика (Dev Tools), как в Google Chrome.

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments15

Нейронная Сеть CLIP от OpenAI: Классификатор, который не нужно обучать. Да здравствует Обучение без Обучения

Reading time18 min
Views44K

Можете представить себе классификатор изображений, решающий практически любую задачу, и который вообще не нужно обучать? Это новая нейросеть CLIP от OpenAI. Разбор CLIP из рубрики: Разбираем и Собираем Нейронные Сети на примере Звездных Войн!

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

Готов и туториал: Собираем нейросети. Классификатор животных из мультфильмов.
Без данных и за 5 минут. CLIP: Обучение без Обучения + код

Подробно и доступно разбираем что такое "обучение без обучения" и саму нейросеть CLIP от OpenAI. Стираем границы между Текстом и Изображением. Внимание: статья подходит под любой уровень: от нулевого до профи. Приятного прочтения!

Поехали!
Total votes 28: ↑28 and ↓0+28
Comments24

Я сделаю свою «умную» колонку… «with blackjack and hookers!»

Reading time7 min
Views57K

Я сделаю свою «умную» колонку… «with blackjack and hookers!»

Привет всем. В данной статье я расскажу историю как мы с двоюродным братом сделали свою «умную» колонку-голову робота Бендера из Футурамы.

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

Как сделать Data Science приложение для Windows (и не только) с графическим интерфейсом с помощью PySimpleGUI

Reading time6 min
Views32K
Работать с Data Science в Jupyter, конечно, очень приятно, но если вы хотите пойти дальше и развернуть свой проект или модель на облачном сервере, то здесь есть много отличных решений — с помощью Flask, Django или Streamlit. Хотя облачные решения по-прежнему самые популярные, часто хочется создать быстрое приложение с графическим интерфейсом. Например:

  • Модель ML тестируется на различных наборах данных. Вы можете перетащить файлы CSV в модель и отрисовать кривую AUS/ROC. Здесь GUI проявит себя прекрасно, правда?
  • Построить случайную переменную или статистическое распределение в заданном диапазоне и динамически управлять параметрами с помощью графического интерфейса.
  • Быстро запустить некоторые задачи обработки или предварительной обработки данных в наборе с помощью GUI вместо того, чтобы писать кучу кода.

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


Приятного чтения!
Total votes 23: ↑21 and ↓2+24
Comments10

OpenIn.app — MacOS приложения для ссылок и файлов

Reading time2 min
Views9.1K

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

Давно я ничего не публиковал на Хабре, но вот решил сегодня написать в Я пиарюсь (читай карма-самоуничтожение или как это называется сейчас?)

Решил в свободное время заняться разработкой под MacOS и iOS. Начал пока с MacOS. Идей много, так что приложений будет много в этом году. В последние 8 лет занимался в основном разработкой серверных приложение, до этого был опыт написания разных приложений под Windows. Было даже популярное приложение для прослушивания музыки из Google Music (покойся с миром Google Music), которое я так же написал в свободное время. Заработал в один год с него $40,000.

Ближе к делу. Если вы пользуетесь MacOS, и используете версии 10.15 (Catalina) или 11 (Big Sur), предлагаю вам бесплатное приложение (есть In-App-Purchase, но об этом ниже) для работы с множеством браузеров, email приложений и приложений для файлов. Сегодня засветился на Product Hunt (5-е место за день).

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

Constraint Programming или как решить задачу коммивояжёра, просто описав её

Reading time7 min
Views12K

Пожалуй, наиболее популярной парадигмой программирования является императивное программирование, но это не единственный вид программирования, широки известны функциональное и логическое программирование. Constraint Programming (Программирование в ограничениях/Ограниченное программирование) не так популярно. Но это очень мощный инструмент для решения комбинаторных задач. Вместо реализации алгоритма, который решает задачу, с последующей тратой кучи времени на его отладку, рефакторинг и оптимизацию, программирование с ограничениями позволяет вам просто описать модель в специальном синтаксисе, а особая программа (решатель) найдет решение для вас (или скажет, если их нет). Впечатляет не правда ли? Мне кажется, каждый программист должен знать о такой возможности.

Read more
Total votes 14: ↑14 and ↓0+14
Comments7

20 месяцев, 2000 часов работы, 200 000 евро убытков: история об упорстве и невозвратных затратах

Reading time13 min
Views12K


Если выразить идею статьи в двух словах: иногда бывает сложно понять, то ли ты проявляешь настойчивость, то ли попался в ловушку невозвратных затрат. Своему текущему проекту я отдал двадцать месяцев, проработал над ним в общей сложности две тысячи часов и «потерял» двести тысяч евро на своём решении заниматься этим, а не чем-то другим. Проект до сих пор не завершён. Под катом – история о том, как это было.
Читать дальше →
Total votes 17: ↑13 and ↓4+17
Comments40

Как преобразовать аудиоданные в изображения

Reading time5 min
Views13K

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


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

Сегодня, специально к старту нового потока курса по машинному обучению делюсь с вами статьей, в которой авторы, в качестве примера определяют вид птиц по их пению. Они находят в записях, сделанных в естественных условиях, фрагменты с пением птиц, и классифицируют виды. Преобразовав аудиоданные в данные изображений и применив модели компьютерного зрения, авторы этой статьи получили серебряную медаль (как лучшие 2 %) на соревновании Kaggle Cornell Birdcall Identification.


Приятного чтения!
Total votes 24: ↑19 and ↓5+20
Comments6

5 причин грустить из-за смерти Adobe Flash

Reading time4 min
Views46K

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

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

Но сейчас речь пойдёт не о том что я считаю большой проблемой, а о том что будет вызывать у меня грусть. И сейчас я расскажу о 5 причинах для грусти из-за сверти Adobe Flash.

Погрустить вместе с автором
Total votes 37: ↑29 and ↓8+32
Comments178

Вышел .NET 5. И что?

Reading time7 min
Views63K

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


image

Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments102

Windows: достучаться до железа

Reading time11 min
Views55K

Меня всегда интересовало низкоуровневое программирование – общаться напрямую с оборудованием, жонглировать регистрами, детально разбираться как что устроено... Увы, современные операционные системы максимально изолируют железо от пользователя, и просто так в физическую память или регистры устройств что-то записать нельзя. Точнее я так думал, а на самом деле оказалось, что чуть ли не каждый производитель железа так делает!

Читать далее
Total votes 132: ↑131 and ↓1+173
Comments90

Внедряем оплату BTC куда угодно (Python)

Reading time7 min
Views46K

Внедряем оплату BTC куда угодно (Python)

- генерация кошелька на основе seed фразы

- проверка баланса и транзакций

- отправка BTC на другие кошельки

- создаем телеграм бота для выполнения операций с BTC

- исходники бота (github)

Читать далее
Total votes 12: ↑8 and ↓4+8
Comments23

OCR для PDF в среде .NET — как извлечь текст из недоступных для поиска PDF документов

Reading time19 min
Views21K

Извлечение текста — одна из популярных задач обработки PDF документов. Вам потребуется извлечь текст из PDF, чтобы:


  • проиндексировать документ для полнотекстового поиска
  • распарсить некоторые данные (например, названия и цены товаров в прайс-листе)
  • выделить, удалить или заменить некоторое слово или фразу

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


Многие PDF библиотеки умеют извлекать текст из доступных для поиска PDF.


Однако, часто встречаются и недоступные для поиска PDF ("non-searchable PDF") документы. В них текст обычно выводится как растровое изображение. Типичный пример — сканированный PDF документ. Также текст в недоступных для поиска PDF может выводиться векторными путями без использования шрифтов и специальных PDF операторов.


Для извлечения текста из недоступных для поиска PDF выполняйте оптическое распознавание текста (OCR). Оптическое распознавание не гарантирует правильного извлечения текста в 100% случаев. Результат зависит от качества документа и алгоритма распознавания. Также OCR существенно медленней, чем извлечение текста из доступных для поиска PDF.


Посмотрим, как выполнить оптическое распознавание и извлечь текст из PDF документов в программе для платформы .NET.

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments7

Что нового в C# 8?

Reading time14 min
Views73K

«Восьмерка» еще даже не вышла RTM а я уже пишу про нее пост. Зачем? Ну, основная идея что тот, кто предупрежден — вооружен. Так что в этом посте будет про то что известно на текущий момент, а если это все подстава, ну, поделом.


Читать дальше →
Total votes 108: ↑98 and ↓10+88
Comments230

Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET

Reading time9 min
Views50K

Кто из нас не косячит? Я регулярно встречаюсь с ошибками в асинхронном коде и делаю их сам. Чтобы прекратить это колесо Сансары делюсь с вами самыми типичными косяками из тех, которые иногда довольно сложно отловить и починить.



Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments64

Mask R-CNN: архитектура современной нейронной сети для сегментации объектов на изображениях

Reading time13 min
Views94K


Времена, когда одной из самых актуальных задач компьютерного зрения была способность отличать фотографии собак от фотографий кошек, уже остались в прошлом. На данный момент нейронные сети способны выполнять куда более сложные и интересные задания по обработке изображений. В частности, сеть с архитектурой Mask R-CNN позволяет выделять на фотографиях контуры («маски») экземпляров разных объектов, даже если таких экземпляров несколько, они имеют различный размер и частично перекрываются. Сеть так же способна к распознаванию поз людей на изображении.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments9
1

Information

Rating
Does not participate
Location
Хабаровск, Хабаровский край, Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Application Developer
Lead
From 500,000 ₽
C#
Software development
Algorithms and data structures
WPF
MVVM
Multiple thread
Windows Forms
Visual Studio
XAML
SOLID