Search
Write a publication
Pull to refresh
38
0
Danov @Danov

Dev UWP/Mobile, Data Scientist, EduTech

Send message

Простая эмуляция USB клавиатуры при помощи PIC18F2550 в CarPC на базе Android

Reading time14 min
Views51K
Здравствуйте, уважаемые участники Habrahabr.

При том, что Хабр — портал, ориентированный на программистов, обратил внимание, что последнее время появляется много статей о программировании микроконтроллеров и создании девайсов на их базе. Решил поделиться одной своей разработкой. В прошлом я много писал для МК, даже работал разработчиком ПО и схемотехники в одной из фирм, а до этого программил на АСМе под Z80 и i8080. Сейчас, во взрослой жизни, в основном пишу на PHP/MySQL для собственных интернет-проектов и к программированию МК не возвращался очень давно. Назвать полноценным программистом я себя не могу, т.к. освоить, например, OOP так и не смог, но немного пишу на С по мере надобности.

Некоторое время назад у меня возникла задача создать эмулятор USB клавиатуры для CarPC проекта. Использоваться она должна была в магнитоле Becker BE2580, устанавливаемой на автомобили немецкого производства 2000-х годов. Эмулятор должен был опрашивать штатные кнопки магнитолы и генерировать нажатия на виртуальной USB клавиатуре, подключенной к материнской плате CarPC на базе Android. Что из этого получилось, под катом.
Читать дальше →

Реализация Restricted Boltzmann machine на c#

Reading time12 min
Views42K
Привет. Закончился курс по нейронным сетям. Хороший курс, но мало практики. Так что в этом посте мы рассмотрим, напишем и протестим ограниченную машину Больцманастохастическую, генеративную модель нейронной сети. Обучим ее, используя алгоритм Contrastive Divergence (CD-k), разработанный профессором Джеффри Хинтоном, который кстати и ведет тот курс. Тестировать мы будем на наборе печатных английских букв. В следующем посте будет рассмотрен один из недостатков алгоритма обратного распространения ошибки и способ первоначальной инициализации весов с помощью машины Больцмана. Кто не боится формулок и простыней текста, прошу под кат.

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

Попробуй R

Reading time2 min
Views41K


С утра я обнаружил у себя в почте приятный предновогодний сюрприз: Code School совместно с O'Reilly выпустили бесплатный курс по языку R.

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

Чему нас не научил профессор Ng

Reading time6 min
Views33K
Как видно по дискуссиям на хабре, несколько десятков хабровчан прослушали курс ml-class.org Стэнфордского университета, который провел обаятельнейший профессор Andrew Ng. Я тоже с удовольствием прослушал этот курс. К сожалению, из лекций выпала очень интересная тема, заявленная в плане: комбинирование обучения с учителем и обучения без учителя. Как оказалось, профессор Ng опубликовал отличный курс по этой теме — Unsupervised Feature Learning and Deep Learning (спонтанное выделение признаков и глубокое обучение). Предлагаю краткий конспект этого курса, без строгого изложения и обилия формул. В оригинале все это есть.
Читать дальше →

От домашней автоматизации и умных домов в общем к конкретному примеру

Reading time17 min
Views212K

В последнее время здесь много пишут о домашней автоматизации и умных домах. Хотел бы поделиться своим опытом, общими соображениями и конкретным проектом. Эта статься будет полезна тем кто просто хотел бы знать чем может быть в принцыпе полезен/удобен умный дом а также тем, кто хотел бы управлять(или просто наблюдать) с любого устройства с браузером(телефон, планшет, читалка, HTPC, ноутбук, настольный компьютер и тд) системой домашней автоматизации. Причём это можно делать из любой точки мира. Мой опыт и пример описанный во второй части этой статьи (Arduino, JQuery Mobile Web интерфейс и прочее) могут пригодиться тем у кто уже есть какая-то система домашней автоматизации (например X10) или тем кто начинает этот тернистый путь.
Читать дальше →

Google запускает «Граф знаний» для русскоязычных пользователей

Reading time2 min
Views41K

Сегодня в русскоязычном блоге компании Google появилась новость о том, что к недавнему нововведению Knowledge Graph добавляется поддержка еще нескольких языков, а именно русского, немецкого, французского, португальского, итальянского, испанского и японского. Представитель компании рассказал, что в течении нескольких недель функционал будет доступен для всех и выдача изменится.
Читать дальше →

Прогресс в разработке нейросетей для машинного обучения

Reading time3 min
Views44K
В пятничном номере NY Times опубликована статья о значительных успехах, который демонстрируют в последние годы разработчики алгоритмов для самообучаемых нейросетей. В глубоких структурах есть несколько скрытых слоёв, которые традиционно тяжело было обучать. Но всё изменилось с использованием стека из машин Больцмана (RBM) для предварительной тренировки. После этого можно удобно перенастраивать веса, применяя метод обратного распространения ошибки (backpropagation). Плюс появление быстрых GPU — всё это привело к существенному прогрессу, который мы наблюдаем в последние годы.

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

Как стать миллионером в AppStore или немного формул про продвижение и продажи. Часть 2

Reading time5 min
Views61K

Great Appeal или девушка на миллион



Девушка на миллион

Итак, в прошлой статье мы закончили на том, что разобрались с тем, как получить «показы» нашего приложения в AppStore.

Иногда ошибочно считается, что запуск – это самое сложное. Это, мягко скажем, не так. Настоящая работа начинается после запуска.

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

Кто виноват и что делать?

Умный дом, как я до такого докатился. Часть 1-я

Reading time4 min
Views467K

Пару лет назад, когда стоял вопрос отделки новой квартиры, возникла тривиальная, казалось бы, задача.
Дано:
  • Кухня-студия (кухня совмещенная с холлом/коридором), три точки освещения.
  • Необходимо управлять освещением из двух точек. У входа в квартиру и на кухне.

Варианты решения:
  • Покупаем, так называемые, проходные выключатели, ставим три штуки на кухню, три в коридоре — вот оно счастье. Вот только получилось, что от коридора на кухню нужно вести 9 жил кабеля, некрасиво, спрятать некуда.
  • Покупаем готовые решения по управлению одним источником с нескольких точек.
    Точных чисел не помню, но получалось что-то около 10000р за точку освещения + 1000р за каждый выключатель, итого 36000р. Жаба.
  • Как это ни странно, но эту идею высказала жена, в общем-то далекая от IT: “ А помнишь, ты светофор в Яндексе делал? Может тут тоже что-то сам сообразишь?”
    В самом деле, а почему бы и нет, подумал я?

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

Парадигмы программирования. Data Driven vs Domain Driven

Reading time7 min
Views64K
Информационные технологии развиваются семимильными шагами, появляются новые устройства, платформы, операционные системы, и вместе с этим растет спектр задач, который приходится решать разработчикам. Но, не все так плохо — на помощь программистам спешат новые средства разработки, ide’шки, новые языки программирования, методологии и т.д. Один только список парадигм программирования впечатляет, а с учетом современных мультипарадигменных ЯП (например, C#) резонно встает вопрос: «Как с этим всем быть? Что выбрать?».

Попробуем немного разобраться.
Читать дальше →

Введение в моделирование пешеходных потоков

Reading time13 min
Views36K
Наверное многие из хабражителей слышали о таком направлении исследований, как управление транспортными потоками. Над этой проблемой люди работают уже давно и, в результате, добились определенных успехов – адекватное моделированное городских транспортных потоков позволяет значительно облегчить работы по разгрузке городских дорог, снизить аварийность за счет оптимальной расстановки и настройки светофоров, определить оптимальные варианты устранения пробок на наиболее загруженных местах.
Однако, серьезно заниматься близкой к вышеупомянутой проблемой достоверного моделирования поведения пешеходных потоков ученые начали сравнительно недавно. В данной статье я постараюсь познакомить читателей с некоторыми существующими моделями пешеходных потоков, и рассказать об их свойствах и особенностях.
Читать дальше

Инженерный подход к подготовке специалистов по программной инженерии

Reading time15 min
Views37K
Статья посвящена использованию методологий и инструментов, применяемых в программной инженерии, для организации процессов воспитания и обучения студентов по IT-специальностям. Предложено использовать модель зрелости процессов (CMM) для образования, системы управления версиями, системы отслеживания ошибок, формальные онтологии, проектную методологию и коллективные формы изучения дисциплин.



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

Письмо программиста — дизайнерам (в процессе подготовки нового проекта Winx...)

Reading time2 min
Views37K
Вчера на почту «упало» письмо от программиста (mihinn) — о цикле жизни графики после ее нарезки и про ее «удобоваримость» для программиста — мне оно показалось интересным, возможно кто-то тоже сделает какие-то выводы с него и обнаружит такую же проблему у себя (а еще было бы замечательно, если бы кто-то поделился опытом, как это организовано у вас).

Ответ от дизайнеров — тут.

Собственно, письмо...

Десять правил спокойной разработки

Reading time2 min
Views51K

Введение


Современный темп разработки ПО просто поражает своей скоростью. Функционал всегда «нужен вчера». Зачем? Конкуренция — обойдут, обгонят. Времени тестировать нет, надо отгружать функционал, надо, надо, надо.

На помощь командам разработки приходят практики, методологии, подходы и четкие регламенты. Попробую сформулировать в виде десяти правил концепцию «спокойной» разработки. А она то вынудит использовать современные методологии разработки ПО. И заказчик спокоен, и нервы свои целы. Profit!
Читать дальше →

Применение Data mining в продажах

Reading time6 min
Views18K
Существует множество компаний, которые продают товары клиентам или оказывают какие-то услуги. Часто продавцы интуитивно принимают решения, какой именно товар из всей существующей линейки лучше подходит клиенту. Также интуитивно определяется, какой массив клиентов более интересен для компании, а для каких клиентов продажа и дальнейшее обслуживание будут слишком затратные и невыгодные.
Для технологичного понимания всех этих вопросов хорошо подходит анализ информации с помощью технологии Data mining. Автоматизируя процесс сегментации клиентов с помощью кластеризации Data mining, компания может найти ответы на множество вопросов.
Рассмотрим вариант, когда компания занимается продажей товаров или услуг и дальнейшим послепродажным обслуживанием. Соответственно у компании есть потенциальные клиенты, которым осуществляются продажи. Также есть клиенты, которые обслуживаются или были ранее на обслуживании, т.е. которым ранее уже продавали. Для простоты будем их называть обслуживаемыми клиентами.
Кратко опишу цель и идею. Для анализа необходимо взять несколько показателей (15-20), которые есть у потенциальных и обслуживаемых клиентов одновременно. Также надо выбрать 2-3 показателя, которые есть только у обслуживаемых клиентов – это целевые показатели. Провести анализ кластеризации Data mining на массиве обслуживаемых клиентов. На выходе получим несколько кластеров со своими характеристиками. Далее кластеры группируем в сегменты по целевым показателям и даем какие-то понятные для маркетологов определения. Полученную модель анализируем, и полученные кластеры проецируем на потенциальных клиентов. На выходе получаем просегментированных потенциальных клиентов. На основании полученных сегментов можно выстроить стратегию и методологию продаж для каждого сегмента клиентов.
Рассмотрим подробнее данную методику и последовательность шагов для достижения результата.
Читать дальше →

Фонд посевного финансирования Microsoft в России — очередной цикл приема заявок на гранты заканчивается 18 ноября

Reading time1 min
Views2.4K
image

Всем привет!

На случай, если кто-то пропустил, Фонд посевного финансирования Microsoft в России заканчивает очередной цикл приема заявок на гранты 18 ноября. Подробности — далее…

Несколько важных моментов, которые позволят сэкономить время вам и отборочному комитету:

— Проекты рассматриваются исключительно в области программное обеспечения и интернет-сервисов;
— Финансируется только разработка (не маркетинг и т.п.);
— Должен быть прототип и внятный бизнес-план, проекты на стадии идеи по опыту не проходят дальше первой ступени отбора (не выдерживают конкуренции);
— Должно предполагаться использование по крайне мере одной из стратегических платформ MS: Windows Azure, Windows Phone, Windows 8. Использование сразу и клиента и облака — большой плюс.
— Фонд не выделяет финансирование на целевое портирование продуктов с других платформ на платформу MS. Суть в том, что грантовые деньги должны быть критичны для компании — для того, чтобы довести прототип до стадии коммерческого продукта и вывести его на рынок. И это должно быть очевидно из заявки.
— при отправке заявки требуется идентификатор в BizSpark. Заявку в BizSpark можно онлайн заполнить за 10 минут, но подтверждать ее могут 3-5 дней. Так что, если собираетесь подавать заявку на грант, лучше зарегистрироваться в BizSpark заранее, а потом уже спокойно заполнять формы на грант. Чтобы заявку в BIzSpark не отклонили, надо нормально заполнять инфо о компании/проекте. Желающих получить на халяву софт, облако, эккаунты в Windows Store и Windows Phone marketplace предостаточно, поэтому невнятные заявки сразу отклоняются.

Остальное — на www.ms-start.ru.
Читать дальше →

Мобильные сервисы, блобы и Windows 8. Храним данные в облаке

Reading time8 min
Views9.7K


Добрый день.

Мы живем в мире тотальной глобализации как в реальной жизни, так и в виртуальной. Я имею в виду, что нам хочется иметь одни и те же данные, одни и те же настройки и одно и то же поведение программ на разных устройствах. Такой синхронизации всего и вся в наше время легко добиться с помощью облаков. Об этом и пойдет речь в данной статье, а именно о скрещивании приложения для Windows 8 (WinRT) с облаком Windows Azure для хранения данных и метаданных.

Вводная


Итак, предположим, что у нас есть приложение для Windows 8 (пусть это будет сервис хранения неких текстовых записей), которое:
1) Должно отображать список записей с минимальной информацией о каждой из них (допустим, заголовок или дату создания). Назовем это метаданными.
2) Должно иметь возможность показать подробную информацию о записи (контент) при переходе к конкретному элементу. Назовем это данными.
3) Должно синхронизировать данные между различными устройствами под управлением Windows 8 (создал запись дома, просмотрел ее же на работе).

Наиболее правильный подход, который я вижу, это разбить данные и метаданные и хранить их в разных местах. Это позволит нам быстро получить небольшие по объему метаданные для отображения в виде списке, и подгружать «тяжелые» данные по запросу пользователя.

По ходу этой статьи мы познакомимся с Windows Azure Mobile Services для хранения метаданных и Windows Azure Blob Storage для хранения данных. Впереди много текста и картинки.
Приступим!

Обзор свежих материалов, июль-сентябрь 2012

Reading time19 min
Views20K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-июнь 2012.



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

Технологии трекинга и сканирования с помощью обычной веб-камеры

Reading time2 min
Views38K

Трекинг лица




Решение, позволяющее распознавать лицо человека и отслеживать положение губ, бровей, глаз в режиме реального времени. Компания SeeingMachines предоставляет API для сторонних разработчиков. Компания Ray-Ban довольно давно разместила на сайте flash-приложение, позволяющее примерить очки в реальном времени.
Читать дальше →

Простой способ подготовки отчетов на основе rtf-бланков

Reading time4 min
Views16K
При практической эксплуатации информационных систем уровня предприятия, особенно при недостаточно развитой системе подготовки отчетов, часто бывает необходимо заполнить разного рода бланки (например, заявления, справки, заключения и т.д.) или подготовить отчеты для распечатки на лазерном принтере, примерно в таком виде:

Пример rtf-бланка
Заголовок документа: PARAM1
Строка 1 Значение PARAM2
Строка 2 Значение PARAM3

Подпись под документом: PARAM4

Рис.1 Пример бланка в виде rtf-файла, переменные описаны в виде полей типа “QUOTE” – PARAM1,PARAM2,PARAM3,PARAM4

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

Information

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