Знакомые лица: алгоритмы создания «типичного» портрета


Автор: Андрей Сорокин, Senior Developer DataArt

В конце прошлого года мы завершили R&D-проект, посвященный методам машинного зрения в обработке изображений. В результате мы создали ряд усредненных портретов IT-специалистов, работающих с разными технологиями. В этой статье я расскажу об изображениях «типичных» Java и .NET-программистов, подходящих для этого фреймворках и оптимизации процесса.

Тема машинного зрения меня интересует еще с аспирантуры — моя кандидатская была посвящена распознаванию рукописных текстов. За последние несколько лет произошли существенные изменения в методологии и программном обеспечении для машинного зрения, появились новые инструменты и фреймворки, которые хотелось попробовать. В этом проекте мы не претендовали на изобретение уникального решения — главный вклад мы внесли в оптимизацию обработки изображений. Читать дальше →

7 шагов на пути к карьере разработчика Xamarin

Вы подумываете сменить основную профессию и однажды стать разработчиком Xamarin? И вы нуждаетесь в практических советах, которые в будущем помогут вам найти работу, связанную с Xamarin? В этой статье хочу поделиться советами лидера российского Xamarin-сообщества, Саши Алексеева, о начале карьеры разработчика Xamarin.

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

Взаимодействие C# и C++ кроссплатформенно

Вам приходилось сталкиваться с необходимостью взаимодействия кода на C# и native-C++ (или скорее С)? Причины могли быть разными: библиотека уже есть, на С/С++ написать проще, разработка частей приложения ведётся разными командами, _______________ (нужное вписать).

Известно, что языки базируются на совершенно разных наборах аксиом.

В С# (CLR, если точнее) вы имеете дело с типами фиксированных размеров (за редкими оговорками), код может быть скомпилирован JIT-компилятором под любую из поддерживаемых целевых платформ (если явно не оговорено иное).

В мире C++ всё совсем иначе: одни и те же типы могут иметь разные размеры при компиляции на разные платформы (привет, size_t), код генерируется по-разному для разных платформ, операционных систем и прочих прелестей.

Под катом будем пробовать их подружить с учётом указанных особенностей.
Читать дальше →

Конференция C++ Russia 2018

Всем привет!

Я надеюсь, вы успели соскучиться по плюсовым докладам и общению с коллегами, потому что очередная конференция C++ Russia уже не за горами. В этом году конференция снова пройдёт в городе трёх революций.
Конференция состоится 19-21 апреля в Санкт-Петербурге. 19 апреля — день мастер-классов, 20-21 — основная программа. Jon Kalb открывает первый день конференции. Темы докладов конференции: память, краш-репорты, асинхронность, software transactional memory, reflective metaprogramming, ranges, акторы, Herb Sutter.

Подробности под катом.
Читать дальше →

Читаем данные из открытой части файлов КОМПАС-3D для интеграции с Pilot-ICE

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

image
Добавление документа в систему документооборота (Карточка документа)

Данные, которые нужно ввести в карточку, уже могут быть в исходном файле, и поэтому процесс ввода можно автоматизировать.
Читать дальше →

Micro-UART для МикроКонтроллера (ATtiny13A)

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


Речь пойдет о программной реализации UART, для микроконтроллеров AVR компании Atmel, интеллектуальной собственностью которой с некоторых пор владеет компания Microchip.
Читать дальше →

Январская починка дыр в .NET Framework и Core

Аккурат к концу новогодних каникул в России, 9-го января, Microsoft выпустили обновления, исправляющие CVE-2018-0786 и CVE-2018-0764. Починили так, что кое-где ещё и сломали. В этом коротком посте мы ещё раз вспомним, что это такое и что нам теперь делать.


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


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

ТАУ для самых маленьких: пример реализации ПИД-регулятора в Unity3D

Вместо введения


Системы автоматического управления (САУ) предназначены для автоматического изменения одного или нескольких параметров объекта управления с целью установления требуемого режима его работы. САУ обеспечивает поддержание постоянства заданных значений регулируемых параметров или их изменение по заданному закону либо оптимизирует определенные критерии качества управления.

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

[Перевод] 640 КБ на самом деле хватит всем

image

Никогда не сдавайтесь


Действительно ли Билл Гейтс произнёс фразу «640 КБ должно хватить всем»? Её история довольно туманна, однако чаще всего её приписывают Биллу, так что, возможно, он действительно такое говорил.

Его довольно часто за это высмеивали. Мысль о общем пространстве памяти размером всего 640 КБ по современным стандартам смехотворна. В этот размер не уместится даже исполняемые файлы большинства программ-установщиков.

Для сравнения: калькулятор в Windows 10 занимает в состоянии простоя 16,2 МБ оперативной памяти — почти в 26 раз больше, чем объём доступной DOS-программам памяти в 1980-х.

Странные дела


Поверите ли вы мне, если я скажу, что до сих пор существует активное сообщество, использующее эту устаревшую платформу и разрабатывающее для неё ПО?

Наверно, вашим первым вопросом будет «Но зачем?» И я хорошо вас понимаю. Давайте рассмотрим некоторые группы, которые до сих пор заинтересованы во вложениях усилий в DOS.
Читать дальше →

[Из песочницы] Тюнинг toolchain для Arduino для продолжающих

Давным-давно случилось мне поработать над проектом с Arduino, где были довольно специфические требования к предсказуемости генерации кода, а работать с чёрным ящиком местами раздражало. Так родилась идея несколько поднастроить процесс сборки и внедрить некоторые дополнительные шаги при сборке.
Читать дальше →


Последние посты