Как стать автором
Обновить
6
0
Михаил Кройтор @mcroitor

Лектор МолдГУ

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

Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++

Уровень сложности Средний
Время на прочтение 24 мин
Количество просмотров 6.8K

Привет, Хабр! Меня зовут Кирилл Колодяжный, я ведущий инженер-программист в YADRO. Помимо основных рабочих задач, включающих исследование проблем производительности СХД, я увлекаюсь машинным обучением. Участвовал в коммерческих проектах, связанных с техническим зрением, 3D-сканерами и обработкой фотографий. В задачах часто использовал С++, хотя машинное обучение традиционно ассоциируется с Python. Этот язык программирования буквально захватил сферу, его используют повсюду — от обучающих курсов до серьезных ML-проектов.

Однако Python — не единственный язык, на котором можно решать задачи машинного обучения. Так, альтернативой может стать С++. Если последний вам ближе, вам будет интересен и полезен этот текст.

Под катом разберемся:

как организовать работу с данными и загрузку обучающего датасета, 

как описать структуру нейронной сети, 

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

как организовать конвейер обучения сети, 

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

Читать далее
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 15

60 антипаттернов для С++ программиста, часть 12 (совет 56 — 60)

Уровень сложности Простой
Время на прочтение 14 мин
Количество просмотров 11K

1053_60_cpp_antipatterns_ru/image2.png


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

Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 21

60 антипаттернов для С++ программиста, часть 7 (совет 31 — 35)

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 3.1K

1053_60_cpp_antipatterns_ru/image2.png


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

Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 23

В изоляции. История появления и развития контейнеров

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 8.4K


У всего на свете есть своя история. В некоторых случаях она полна неожиданных поворотов, как сюжет детективного романа, в других довольно-таки проста и незатейлива. Имеется история и у двух самых популярных систем контейнеризации: Docker и Kubernetes. О появлении и эволюции развития этих востребованных технологий рассказывает сегодняшняя статья.
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 7

Почему вы никогда не должны использовать MongoDB

Время на прочтение 16 мин
Количество просмотров 286K
Дисклеймер от автора (автор — девушка): Я не разрабатываю движки баз данных. Я создаю веб-приложения. Я участвую в 4-6 разных проектах каждый год, то есть создаю много веб-приложений. Я вижу много приложений с различными требованиями и различными потребностями хранения данных. Я разворачивала большинство хранилищ, о которых вы слышали, и несколько, о которых даже не подозреваете.

Несколько раз я делала неправильный выбор СУБД. Эта история об одном таком выборе — почему мы сделали такой выбор, как бы узнали что выбор был неверен и как мы с этим боролись.Это все произошло на проекте с открытым исходным кодом, называемым Diaspora.
Читать дальше →
Всего голосов 219: ↑181 и ↓38 +143
Комментарии 245

Спектрометр своими руками за 5 долларов и немного OpenCV

Время на прочтение 6 мин
Количество просмотров 23K

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

Читать далее
Всего голосов 39: ↑39 и ↓0 +39
Комментарии 24

Вебинар «Стандарт С++20»: обзор новых возможностей C++, введённых Стандартом C++20

Время на прочтение 1 мин
Количество просмотров 4.6K
25 февраля Яндекс.Практикум проводит открытый вебинар «Стандарт С++20». Приглашаем разработчиков С++, которые хотят использовать последние возможности языка, а также программистов на других языках, которые хотят узнать, какие преимущества даёт разработка на C++.

На вебинаре максимально кратко и содержательно расскажем о новых фичах Стандарта: зачем они нужны, насколько они круты, когда и для чего их можно будет использовать в своих программах. Особое внимание уделим модулям, концептам, диапазонам (Ranges), корутинам и трёхстороннему сравнению. Также поговорим и об остальных нововведениях.

Вебинар будет состоять из двух частей: 70 минут — обзор новых возможностей, 20 минут — ответы на вопросы.


Читать дальше →
Всего голосов 21: ↑17 и ↓4 +13
Комментарии 5

Получение исходного кода PowerPacker Cruncher от AmigaOS

Время на прочтение 5 мин
Количество просмотров 3.5K


Всем привет,


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


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

Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 11

10 бесплатных курсов для продвинутых специалистов от Microsoft

Время на прочтение 6 мин
Количество просмотров 17K
Привет, Хабр! Совсем недавно мы делились подборками наших бесплатных курсов для начинающих специалистов в IT. Ну и теперь, конечно же, пришла очередь продвинутых коллег. В этой статье мы подобрали курсы для уровней upper-intermediate и advanced. Среди тем — SQL Server на Linux, облачная разработка, безопасность, Microsoft 365, DevOps, бессерверные приложения и другое.

Кстати!

  • Все курсы бесплатные (вы даже сможете попробовать платные продукты бесплатно);
  • 9/10 на русском языке;
  • Начать обучение можно мгновенно;
  • По окончании вы получите бейдж об успешном прохождении обучения.

Присоединяйтесь, подробности под катом!

Эта серия статей


Предыдущая серия статей, начало 2020 года


Более ранняя серия статей, 2019 год


Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 0

Аппаратный ключ шифрования за 3$ — возможно ли это?

Время на прочтение 10 мин
Количество просмотров 68K

Итоговый результат — ключ размером с флешку

Повсеместное шифрование и, как следствие, обилие ключей заставляет задуматься об их надежном хранении. Хранение ключей на внешних устройствах, откуда они не могут быть скопированы, уже давно считается хорошей практикой. Я расскажу о том, как за 3$ и 2 часа сделать такой девайс.
Читать дальше →
Всего голосов 151: ↑151 и ↓0 +151
Комментарии 151

Профессия: системный администратор

Время на прочтение 11 мин
Количество просмотров 201K
Нередко от старшего поколения мы слышим магические слова о «единственной записи в трудовой книжке». И правда, приходилось встречать совершенно потрясающие истории: слесарь — слесарь высшего разряда — мастер цеха — начальник смены — главный инженер — директор завода. Это не может не впечатлять наше поколение, которое меняет работу раз, два, да что там — порой и пять, и больше. У нас есть возможность не просто менять компанию, можно менять профессию и довольно быстро в ней осваиваться. Особенно заметно это в ИТ-сфере, где встречаются весьма причудливые карьерные трансферы и кардинальные сдвиги по карьерной лестнице, как вверх, так и вниз. 

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


Всё так
Читать дальше →
Всего голосов 35: ↑33 и ↓2 +31
Комментарии 28

Российский математик опроверг 53-летнюю гипотезу о раскраске сетей

Время на прочтение 8 мин
Количество просмотров 48K

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




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

Задачи по раскраске сетей [см. хроматическое число / прим. перев.], вдохновлённые вопросом такой раскраски карт, при которой соседние страны имеют разные цвета, находятся в фокусе исследований математиков почти 200 лет. Задача состоит в том, чтобы понять, как раскрашивать узлы некоей сети (или графа, как зовут их математики) так, чтобы у любых двух связанных узлов были разные цвета. В зависимости от контекста, эта раскраска может предоставить эффективный способ рассадки гостей на свадьбе, расстановке производственных задач по свободным временным промежуткам, или даже решения судоку.
Читать дальше →
Всего голосов 105: ↑97 и ↓8 +89
Комментарии 78

Криптография в Java. Утилита Keytool

Время на прочтение 6 мин
Количество просмотров 50K

Привет, Хабр! Представляю вашему вниманию перевод 10 статьи "Java Keytool" автора Jakob Jenkov из серии статей для начинающих, желающих освоить основы криптографии в Java.

Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 0

Криптография в Java. Класс KeyStore

Время на прочтение 4 мин
Количество просмотров 29K

Привет, Хабр! Представляю вашему вниманию перевод 9 статьи "Java KeyStore" автора Jakob Jenkov из серии статей для начинающих, желающих освоить основы криптографии в Java.

Читать дальше →
Всего голосов 10: ↑6 и ↓4 +2
Комментарии 0

Компрессия больших массивов простых чисел

Время на прочтение 20 мин
Количество просмотров 17K
песочница

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

 

Так, формат 16-разрядных беззнаковых целых при размере такой таблицы около 13 килобайт вмещает всего лишь 6542 простых числа: вслед за числом 65531 идут значения более высокой разрядности. Такая таблица годится разве что в качестве игрушки.

 

Наиболее ходовой в программировании формат 32-разрядных целых выглядит значительно солиднее — он позволяет хранить около 203 млн простых. Но такая таблица занимает уже около 775 мегабайт.

 

Еще больше перспектив у 64-разрядного формата. Однако при теоретической мощности порядка 1e+19 значений, таблица имела бы размер 64 экзабайта.


Читать дальше →
Всего голосов 55: ↑54 и ↓1 +53
Комментарии 58

Чек-лист: что нужно было делать до того, как запускать микросервисы в prod

Время на прочтение 9 мин
Количество просмотров 50K

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


К сожалению, некоторые невысокие программисты всерьёз полагают, что Dockerfile с какой-нибудь вообще любой командой внутри — это уже сам по себе микросервис и его можно деплоить хоть сейчас. Докеры крутятся, лавешка мутится. Такой подход оборачивается проблемами начиная с падения производительности, невозможностью отладки и отказами обслуживания и заканчивая кошмарным сном под названием Data Inconsistency.


Если вы ощущаете, что пришло время запустить ещё одну аппку в Kubernetes/ECS/whatever, то мне есть чем вам возразить.


English version is also available.

Читать дальше →
Всего голосов 138: ↑135 и ↓3 +132
Комментарии 71

PVS-Studio и Bug Bounties on Free and Open Source Software

Время на прочтение 2 мин
Количество просмотров 5.2K
PVS-Studio дарит багиЕвропейский союз стартовал в январе очередную большую охоту за ошибками в открытых программных проектах. Суммарный призовой фонд составляет около 850 тысяч евро. А теперь даём подсказку. Одним из способов поиска ошибок в исходном коде программ является использование статических анализаторов кода. Например, можно использовать для этих целей PVS-Studio, тем более что недавно был предложен новый вариант его бесплатного лицензирования для открытых проектов.
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Комментарии 1

Информация

В рейтинге
Не участвует
Откуда
Молдова
Зарегистрирован
Активность

Специализация

Software Developer, Fullstack Developer
Git
SQL
OOP
Linux
MySQL
PHP
C++
C
Software development
Object-oriented design