Pull to refresh
38
0
Георгий Оганисян @Grox

Full Stack Web Developer

Send message

Использование сверточных сетей для поиска, выделения и классификации

Reading time5 min
Views49K
Недавно ZlodeiBaal опубликовал статью «Нейрореволюция в головах и сёлах», в которой привел обзор возможностей современных нейронных сетей. Самым интересным, на мой взгляд, является подход с использованием сверточных сетей для сегментации изображений, про этот подход и пойдет речь в статье.

segnet.png


Уже давно появилось желание изучить сверточные сети и узнать что-то новое, к тому же под рукой есть несколько последних Tesla K40 с 12Гб памяти, Tesla c2050, обычные видеокарты, Jetson TK1 и ноутбук с мобильной GT525M, интереснее всего конечно попробовать на TK1, так как его можно использовать практически везде, хоть на столб фонарный повесить. Самое первое с чего начал, это распознавание цифр, тут конечно удивить нечем, цифры уже давно неплохо распознаются сетями, но при этом постоянно возникает потребность в новых приложениях, которые должны что-то распознавать: номера домов, номера автомобилей, номера вагонов и т.д. Все бы хорошо, но задача распознавания цифр является лишь частью более общих задач.
Читать дальше →

Vision-based SLAM: tutorial

Reading time7 min
Views31K
После опубликования статьи об опыте использования монокулярного SLAM мы получили несколько комментариев с вопросами о подробной настройке. Мы решили ответить песней серией статей-уроков о SLAM. Сегодня предлагаем ознакомиться с первой из них, в которой поставим все необходимые пакеты и подготовим окружение для дальнейшей работы.



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

Опыт лекций по введению в шаблоны проектирования

Reading time8 min
Views42K
Позвольте небольшое предисловие — обозначу в нём цель статьи.
Я по субботам студентам младших курсов преподаю введение в шаблоны проектирования. Вот, хочу поделиться опытом, описать план нескольких первых лекций. Большинству читателей, я полагаю, сам излагаемый мной материал давно знаком, но, возможно, порядок и способ изложения покажутся любопытными.
Слишком часто, увы, нам рассказывают что-то, но не говорят, зачем это нужно, или говорят даже, но будто вскользь. Скажем, обыкновенно, говоря о C#, расскажут, что такое базовый класс и интерфейс, каким синтаксисом нужно пользоваться, чтобы написать их, приведут пример, где базовым будет класс «Птица», а наследниками «Утка» и «Орёл», но зачем всё это нужно, какая от всей — потенциально сложной — иерархии классов достигается польза, не говорят: это будто бы в тени, подразумевается само собою. И вот потому у многих учеников, ещё не успевших набить свои шишки, в голове перевёрнутая картина мира — они неплохо представляют, что за инструменты даны им в руки, но зачем они изобретены и к чему применимы, понимают смутно.
Вот поэтому я сочинил несколько учебных примеров, на которых можно показать зачем нужны некоторые подходы. Правда, придётся принять условность — будем бить из пушки по воробьям, а то и по воображаемым мишеням. Зато пристреляемся и уж во вражеский бруствер точно попадём, случись что.
Сразу скажу, что от вопросов совсем простых мы быстро перейдем к довольно сложным (ну, скажем, к компоновщику), потому читайте до конца, если уж не с начала.
Читать дальше →

Универсальный контейнер данных

Reading time6 min
Views8.7K
В последние лет 5 я, по большей части, имею дело с приложениями на базе Magento, в основу которой заложены идеи максимальной гибкости, расширяемости и адаптивности. Популярность Magento в e-commerce и количество сторонних модулей расширений к ней говорят о том, что эта платформа и реализованные в ней идеи скорее успешные, чем наоборот. В основу большого количества объектов в Magento заложена концепция универсального контейнера данных (Varien_Object в Magento 1 и \Magento\Framework\DataObject в Magento 2). Я нахожу у подобных универсальных контейнеров определенные параллели с такими явлениями, как
  • POJO (Java)
  • JSON
  • XPath
  • DOM
  • СУБД (реляционные и не очень)
  • SPA (Single Page Applications)
ну и в конце концов — с Гарвардской архитектурой ЭВМ, разработанной Говардом Эйкеном в 1930-х годах.
Читать дальше →

Светодиодные лампы — стоит ли игра свеч?

Reading time5 min
Views115K
image

Читая публикации alexeynadezhin задумался — а не перейти ли мне дома на светодиодное освещение? Как всегда, к вопросу решил подойти скрупулёзно, досконально изучить все тонкости. В итоге пришёл к интересным выводам.
Читать дальше →

Третья волна Вычислительной Гидродинамики

Reading time24 min
Views20K

Введение


В данной статье описывается история развития инструментов моделирования потока, переноса тепла, массы: появление первых коммерческих программ в 1960-1980-х, последующая эра методов, основанных на неструктурированной сетке, начавшаяся приблизительно в 1990-х и закончившаяся в середине 2000-х. Эта эра характеризовалась появлением вычислительной гидродинамики (ВГД или CFD — Computational Fluid Dynamics) в научных и конструкторских отделах крупных компаний. После этих двух больших периодов-волн в разработке коммерческого ВГД программного обеспечения (ПО), наблюдается третья волна.



Рисунок 1. Моделирование потока воздуха в 1980-х, Ханна и Парри (2011).
Читать дальше →

Лекции Технопарка: мастер-класс Алексея Рыбака «Про то, что я бы хотел, чтобы мне рассказали, пока я учился»

Reading time25 min
Views47K
Сегодня мы начинаем серию публикаций новых мастер-классов Технопарка. И первая из них — мастер-класс Алексея Рыбака на свободную тему, в котором он поделился со студентами соображениями о том, чем работа в реальной жизни отличается от учебы. Видео смотрите на нашем сайте, а адаптированную расшифровку — ниже.

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

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


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

Разработка электроники: Процесс и продукт

Reading time7 min
Views16K


Одним из самых известных высказываний в мире стартапов является бессмертная фраза Цукерберга «Двигайся быстро и круши все на своем пути». Даже несмотря на то, что Facebook уже сменил свой слоган, скорость по-прежнему высоко цениться в Кремниевой долине.

Предприниматели постоянно заявляют о своей активности, используя такие фразы, как «я создал этот проект за выходные» или «мы проводим по пять итераций в день». Инвесторы хвастаются компаниями из своего портфеля, которые «нельзя остановить» и призывают компании «делать быстрее и больше».

Скорость – одно из необходимых условий существования в среде стартапов. Она позволяет небольшим и скромным стартапам опережать крупные и влиятельные компании. Сокращение цикла Build-Measure-Learn (реализуем, измеряем, делаем выводы) имеет большое значение для выживания стартапа.

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

ЧПУ станок с расширенными функциональными возможностями

Reading time3 min
Views38K
Хотел бы поведать вам о своем проекте, чтобы бы узнать мнение о нем. Обоснованная критика и пожелания приветствуются с распростертыми объятиями. Если появится интерес, напишу серию статей о том, как проект создавался, поделюсь крупицей своего опыта. Итак, начнем.
image

Недавно пришла идея по созданию полностью открытого проекта универсальной 3-координатной платформы, которая может выполнять функционал и 3d-принтера, и фрезерного станка для обработки пластика и многого другого. Платформа построена по модульному типу. Это означает, что в ней полностью взаимозаменяемые привода перемещения кареток и инструмент. Назвали мы эту штуку «Платформа RRaptor». В дальнейшем приведу ряд изображений и фотографий проектных моделей и того, что уже получилось реализовать.
Читать дальше →

Настоящее и будущее C++. Интервью с Эриком Ниблером

Reading time14 min
Views42K
Эрик Ниблер — известный эксперт по C++, один из важных контрибьюторов Boost, человек, который добавил в стандарт библиотеку Ranges.

26 августа в рамках C++ Party Эрик выступит в новосибирском офисе Яндекса, где как раз расскажет о библиотеке и поговорит с гостями о новых стандартах C++.

image

Я заранее поговорил с Эриком и задал ему несколько вопросов от себя и коллег о том, каким он видит настоящее и будущее C++, что ему кажется самым важным в программировании, будет ли в C++ когда-нибудь нормальный менеджер пакетов, модули, что будет со стандартной библиотекой и о многом другом.

Кстати, если у вас есть ещё хорошие вопросы к Эрику, — их можно задать в комментариях, и мы попросим его на них ответить.
Читать дальше →

Самодельный принтер на SCARA механике

Reading time6 min
Views19K


Что было не так


Что было не так c предыдущим принтером:
  • Шум — заглушал телевизор
  • Размеры — 40x30x80 на стол не поставить (не влез даже на балкон, точнее влез но катушка с пластиком уже не влазила)
  • Вес — 8кг (частично из за Nema23 и тяжелых мебельных щитов)


Что мне хотелось


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

Размеры — хочется принтер который легко умещается на стол с творческим беспорядком. Далее — размер печатной области должен быть не меньше чем 10x10x10+.
Почему я решил пожертвовать размерами печатной области — а потому что за полгода почти каждодневной печати мне не разу не понадобилось напечатать что то больше, чем 10x10. Я принял решение что мне этой области хватит с головой и даже останется.
Также, на прогрев области 10x10 надо в 4 раза меньше мощности блока питания, а это позволяет использовать обычные внешние блоки питания — я влез всего в 60ватт (с подогреваемой платформой), у меня 8.5A 12v. Большим плюсом является внешний блок питания, который лежит под столом и не занимает место.

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

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

Лоукостеры-производители печатных плат с социальным уклоном

Reading time5 min
Views23K
В США и Южной Америке уже много лет работают целые технопарки-лоукостеры с элементами социальности. В СНГ такое тоже встречается, но чаще это закрытые сообщества, как, например, Сколково. В этой мини-статье я расскажу, что это за явление на примере производителя печатных плат OSH Park, расположенном в штате Орегон. Это не единственный производитель такого типа, они есть и в Китае, и в Европе, что для российского заказчика может быть выгодней. Но во-первых я давно с ними работаю, во-вторых я не работал с другими, в-третьих они шлют заказы по всему миру бесплатно (ага, Free Shipping!).
Читать дальше →

Google обновила поиск по патентам

Reading time2 min
Views11K


Компания Google делает то, что давно должно было сделать Патентное ведомство США. Поиск по патентам с расширенной функциональностью, отображением похожих патентов, непатентуемых объектов prior art и т. д. Если бы у патентного ведомства был такой инструмент или они хотя бы использовали Google в своей работе (очевидно, они этого не делают), то можно было бы избежать многих проблем с патентными троллями.

Вчера Google выкатила новую версию патентного поиска на patents.google.com. Интерфейс теперь выполнен в стиле материального дизайна, на главной странице сделан чекбокс для поиска по базе за исключением текста патентов (Google Scholar).

На боковую панель вынесены продвинутые опции поиска.
Читать дальше →

STM32, C++ и FreeRTOS. Разработка с нуля. Часть 1

Reading time14 min
Views128K

Введение


Не так давно мой отдел столкнулся с трудностями поиска новых инженеров программистов для разработки встроенного ПО. Опытным и умным не нравился уровень зарплаты, а молодых просто нет в нашем городе. Поэтому под патронажем нашей доблестной глобальной компании со штаб квартирой где-то в Сент Луисе, мы начали сначала набирать студентов в интернатуру, а потом, решили пойти другим путем и сделать целых два курса по разработке ПО, а уже там самим выбирать самых “толковых” если понадобятся вдруг новые сотрудники. Это намного дешевле и позволяет охватить максимальное количество претендентов.
Немного отступлю от темы, сам я программировал последний раз очень давно, и вообще больше на С#, а последний глобальный проект на микроконтроллере (PIC16 на зыке Си) был сделан в далеком 2007 году.
Поэтому мне предстояло разобраться с современными микроконроллерами, языком С++ и операционной системой реального времени.
Конечно все наши проекты уже сейчас используют ОСРВ и пишутся на С++, но как разработчик я в них не учувствую, а занимаюсь тунеядством управлением проектами разработки такого ПО.

Выбор


Времени у меня на все про все было дано 1 месяц. С начала июня 2015 до начала июля 2015, потому что потом я собирался в отпуск, а после отпуска обычно полно работы. Надо было делать все быстро и четко.
Немного проконсультировавшись с коллегами, выяснил, что модное направление ARM Cortex различные ядра и из доступных отладочных плат можно заказать Olimex STM32P152 которые стоили 25 долларов. Они пришли очень быстро — 6 плат по цене примерно 2000 рублей. Стоит заметить, что эти платы были закуплены нами для университета, где собственно и будет проходить этот курс.
image
Читать дальше →

Быстрый фильтр каталога для интернет-магазинов на основе битмапов Redis

Reading time4 min
Views62K


Не секрет, что каждый интернет-магазин должен помогать пользователям найти то, что им нужно. Особенно, если товаров у вас много (> 10). На помощь приходит каталогизация товаров, но разбить товары по категориям — полдела. Товары внутри категории нужно уметь фильтровать по их свойствам. Особенно, если товары у вас разношёрстные, например, одежда, электроника, ювелирные изделия и т.д. И тут любой разработчик, пишущий свой e-commerce продукт, сталкивается с неприятными реалиями жизни: у товаров могут быть совершенно разные свойства, у некоторых товаров они могут отсутствовать, некоторые товары по одному свойству могут попадать под разные значения (цвет платья то ли синий, то ли голубой, соответственно, неплохо бы его показать и по синему и по голубому цвету). Проще говоря, у вас EAV. Бывает ещё, что EAV вам диагностирует заказчик ближе к концу разработки, а то и просит добавить фильтр по динамическим свойствам уже после релиза.
Читать дальше →

Программа для расчета минимальной цены радиодеталей в реальном времени

Reading time5 min
Views47K
Важнейшим вопросом в разработке радиоэлектронных устройств всегда является вопрос «сколько это будет стоить?» Причем точный ответ желательно знать еще до того, как вы втянулись в дебри разработки и вложились в нее временем и средствами. Чаще всего разработчики сосредотачивают внимание на себестоимости комплектующих.

На самом деле, расчет себестоимости по списку деталей — это неприятный и рутинный процесс, связанный с долгими поисками по on-line каталогам, обзвоном дистрибуторов, перепиской и ожиданием ответов и проч. и проч. Но хуже даже не это, а то, что это итерационный процесс. Увидев вдруг, что себестоимость оказалась выше допустимой, разработчик начинает искать другие варианты схемотехники и другие комплектующие. И снова поиски…. А рутина — это враг разработчика. Чтобы ее избежать, многие жертвуют оптимальностью. Но, к счастью, эту проблему можно облегчить.
Читать дальше →

Прототипы это объекты (и почему это важно)

Reading time4 min
Views22K
JavaScript – один из главных языков нашего стека в Хекслете. Мы используем ReactJS и NodeJS в интерактивных частях платформы, и сделали вводный курс (более продвинутые – на подходе). Любовь к JS помогла опубликовать этот перевод хорошего эссе «Prototypes are Objects (and why that matters)».

Этот пост рассчитан на тех, кто знаком с объектами в JavaScript и знает, как прототип определяет поведение объекта, что такое функция-конструктор и как свойство .property конструктора относится к объекту, который он конструирует. Общее понимание синтаксиса ECMAScript 2015 тоже не помешает.

Мы всегда могли создать класс в JavaScript таким образом:
Читать дальше →

Upgrade до Middle PHP-разработчика за 3 месяца

Reading time2 min
Views195K

В очередной раз на меня свалилась задача найти хорошего PHP-программиста.
По результатам прозвона потенциальных кандидатов, 90% тех, кто мнит себя Middle, на самом деле Junior и годы опыта не спасают, потому что клепают однотипный код в пределах заданий, посланных свыше.
Прописал минимальный план желающим сделать рывок и перейти на следующий уровень без отрыва от производства.


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

Как быстро раздать wifi с ноутбука — 3 простых команды

Reading time2 min
Views728K
Периодически я сталкиваюсь с ситуациями, когда необходимо быстро настроить раздачу интернета через WiFi со своего ноутбука и под рукой нет специальной программы. Вот и сейчас мой роутер приказал долго жить и оставил дом без интернета. А не так давно телефон друга отказался подключаться к моему роутеру и мы быстро организовали дополнительный wifi-сигнал с моего ноута, что спасло ситуацию.

И помогают мне в этом 3 команды:
netsh wlan set hostednetwork mode=allow
netsh wlan set hostednetwork mode=allow ssid=FastWifi key=12345678 keyUsage=persistent
netsh wlan start hostednetwork

Под катом я детально расскажу как и что нужно делать и покажу на примере настройки Windows 7.

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

Usability — один плагин Redmine, предоставляющий массу полезных мелочей. Часть вторая

Reading time2 min
Views12K


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

А сейчас я хочу рассказать о том, что еще полезного появилось в этом плагине, про что я не рассказывал в прошлый раз.

Продолжу перечислять преимущества, которые может предоставить плагин Usability, про предыдущие преимущества читайте в прошлой статье «Usability — один плагин Redmine, предоставляющий массу полезных мелочей».
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity