Pull to refresh
7
0
Максим Буренков @byria

User

Send message

Проектирование программного обеспечения

Reading time5 min
Views128K
Если бы мы запланировали статью, которая не будет никому интересна, то наверное написали про важность проектирования зданий перед их постройкой. Но, к счастью, любой человек понимает, почему не стоит строить дома на глазок, добавляя фичи прямо в процессе строительства. При разработке же программного обеспечения по-прежнему полезно напоминать о том, что начинать её следует с проектирования — т.е. с полного планирования того, что непосредственно нам придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом.



За 13 лет опыта компании «Эдисон» в аутсорс-разработке для средних и крупных компаний из России, США, Европы и Австралии мы выработали собственную схему проектирования ПО, о которой в этом посте и расскажем.
Читать дальше →
Total votes 31: ↑18 and ↓13+5
Comments21

Распознавание речи с помощью CMU Sphinx

Reading time4 min
Views84K
CMU Sphinx сейчас является крупнейшим проектом по распознаванию человеческой речи. В инструментарий входят следующие программы и библиотеки:

  • Pocketsphinx — небольшая программа, которая принимает на вход произвольные акустические модели, грамматики и словари, а также звуковой поток(либо звуковой файл, либо сам берет поток с микрофона). На выходе получается распознанный текст. Написана на C, работает быстро.
  • Sphinxbase — библиотека необходимая для работы Pocketsphinx
  • Sphinx4 — гибкая библиотека для распознавания, написана на Java.
  • Sphinxtrain — программа для обучения акустических моделей.

Для работы со CMU Sphinx важно запомнить несколько определений и понять их отличия.

  • Акустическая модель — отвечает за сопоставление звуку произнесенной фонемы. Акустическую модель для русского языка можно скачать на сайте проекта. Русская акустическая и языковая модели. А также словарь.
  • Словарь — это файл, в котором написаны сопоставлены лексемы и фонемы (слово и его транскрипция). Например, калькулятор (k ay ll k u ll ja t ay r). Он необходим для преобразования фонем, распознанных акустической моделью в лексемы.
  • Грамматика — это формальные правила, которые описывают простые правила построения предложений. Лексемы, полученные на предыдущем шаге пытаются сопоставиться с грамматикой и если удачно, то выводится результат.
  • Языковая модель — это статистическая модель языка. Она описывает вероятности слов и их комбинаций. Таким образом распознавание лексем — это максимизация правдоподобности распознанной фразы.

Чем сложнее язык, чем обширней правила и размер словаря, тем хуже точность распознавания. Поэтому, для минимизации ошибки, имеет смысл создания упрощенных правил, которые будут описывать конкретную задачу.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments2

Как успешно продать свой товар? Смотрите и учитесь

Reading time4 min
Views15K


Три недели назад директор по маркетингу одного из стартапов в Сан-Франциско, в который вложили средства известные инвесторы, написала мне по поводу своей презентации.

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

Я люблю помогать предпринимателям в создании лучших презентаций для сбора средств, продаж, привлечения нового персонала – да чего угодно. Я работал над другим проектом и не мог сразу же выполнить просьбу моей подруги, поэтому я просто отправил одну ссылку парню из маркетингового отдела по имени Зак, который создавал эту презентацию.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments2

Buzz, язык программирования для самоорганизующегося роя беспилотников

Reading time3 min
Views7.7K


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

Эта же тема заинтересовала канадца итальянского происхождения, Карло Пинцироли (Carlo Pinciroli), который с 2007 года занимается исследованиями в области управления большим количеством полуавтономных роботов. Он вместе с коллегами рассказал о последнем достижении в этой области — язык для программирования роя роботов Buzz. Разработку ведут учёные из политехнической лаборатории MIST канадского института École Polytechnique de Montréal и их зарубежные коллеги.

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

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

image
Рой роботов из проекта МакЛюркина, другого исследователя в этой области
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments3

Применение технологий 3D-печати и 3D-сканирования при создании фильма «Терминатор: Генезис»

Reading time1 min
Views12K


Все чаще можно встретить новости о применении 3D-технологий в массовой культуре и это не может не радовать.
В последнем фильме с участием Арнольда Шварценеггера отметилась компания Artec 3D и Stratasys при создании мэйк-апа для главного героя.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments5

Японцы создали гидрогель, работающий как искусственный мускул

Reading time2 min
Views6.4K
image

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



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

Полученный японцами необычный гидрогель работает, как искусственная мышца. При увеличении температуры он значительно растягивается в одном направлении, и слегка сжимается в других, сохраняя первоначальный объём. Квадратный образец становится прямоугольным, а изготовленный учёными уголок из этого материала бодро шагал по ровной поверхности.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments4

Онлайн-программа по основам программирования

Reading time2 min
Views34K

Осенью Академический университет и Computer Science Center запускают годовую образовательную программу по основам программирования (code.stepic.org). Программа запускается на платформе онлайн-обучения Stepic. При успешном завершении программы студентам будет выдан диплом о профессиональной переподготовке от Академического университета.

Подробнее о программе
Total votes 31: ↑29 and ↓2+27
Comments15

Как мы робота «WayBot» собирали или цикл статей «Как стать инженером». Часть 1

Reading time3 min
Views8.5K
В 2013 году на научной выставке в Москве я увидел интерактивного промо-робота. Идея показалась мне интересной, но опыта для построения копии у меня не было. В то время я заканчивал 4 курс университета и работал на себя в сфере систем безопасности. Ходил в детстве на радиокружок, хорошо понимал зачем нужны те или иные радиоэлементы, но вот с программированием микроконтроллеров и настройке unix-like систем опыта не было. Для получения опыта в этой сфере я решил собрать копию этого робота, улучшив некоторые моменты. Конечно сразу стартовать с такого проекта было бы глупо, и в качестве теста был собран 3д-куб 5х5х5, потом увлёкшись идеей был собран 3д-куб посерьёзней разрешающей способностью 10х10х10 пикселей:

image

Набравшись ещё опыта на несложных проектах, было решено приступить к давней идее, а именно собрать промо-робота. В лучших традициях жанра на кухне вечером обсудили функционал и заложили основные принципы построения. Если с платформой и технической реализацией было в принципе понятно, то как сделать корпус, голову, и вообще красивый внешний вид, понятия мы не имели.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments3

Как красиво оформить публикацию на Хабре

Reading time7 min
Views45K
Публикация – основная единица связи автора с читателем. Практика показывает, что на Хабре можно разместить почти любой формат: небольшой анонс и лонгрид-обзор, интервью, фотоотчёт, трансляцию события, урок и многое-многое другое. Нередко успех публикации зависит и от её оформления – приятно оформленный материал читать одно удовольствие. В этой статье мы постараемся предоставить вам много полезных советов по хорошему оформлению материала.

И первый лайфхак – кликабельная картинка до ката, которая ведёт сразу внутрь публикации:


Читать дальше →
Total votes 140: ↑121 and ↓19+102
Comments112

Spring без XML. Часть 1

Reading time23 min
Views49K
Привет, хабрахабр!

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

Итак, если вам хочется попробовать Spring MVC с сохранением в базе и 0(нулем) файлов xml-конфигураций, прошу под кат!



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

1. Подготовка к запуску


1.1 IDE


Вся разработка будет вестись на Intellij IDEA, но не думаю что реализация в другой IDE будет сильно сложнее.
Читать дальше →
Total votes 16: ↑11 and ↓5+6
Comments33

STM32, C++ и FreeRTOS. Разработка с нуля. Часть 3 (LCD и Экраны)

Reading time20 min
Views27K

Введение


В двух предыдущих частях STM32, C++ и FreeRTOS. Разработка с нуля. Часть 1 и STM32, C++ и FreeRTOS. Разработка с нуля. Часть 2 мною уже были реализованы требования SR0, SR7, SR4 и SR6. Опять нужно вспомнить, какие вообще требования есть.
SR0: Устройство должно измерять три параметра (иметь три переменных): Температуру микропроцессора, Напряжение VDDA, Напряжение с переменного резистора
SR1: Устройство должно выводить значение этих переменных на индикатор.
SR2: Единицы измерения для Температуры микропроцессора — градусы Цельсия, для остальных параметров — вольты.
SR3: При нажатии на кнопку 1, на индикаторе должен показываться экран со следующей измеряемой переменной,
SR4: При нажатии на кнопку 1 Светодиод 1 должен изменять свое состояние
SR5: При нажатии на кнопку 2, на индикаторе должен поменяться режим отображения переменных с постоянного показывания переменной на последовательное (менять экраны раз в 1.5 секунды) при следующем нажатии с последовательного на постоянное,
SR6: При нажатии на кнопку 2 светодиод 2 должен менять свое состояние.
SR7: Светодиод 3 должен моргать раз в 1 секунду.

Значит остались самые «вкусные» требования связанные c отображением всей измеренной информации на индикаторе: SR1, SR2, SR3, SR5. Ну что же начнем.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments0

Превращаем бытовой роутер в хак-станцию

Reading time3 min
Views75K
Решил написать статью о своём опыте превращения бытового роутера в хак-станцию.
Атака на WPS иногда занимает более 10 часов. Чем же брутить? Выбор не большой:
PC – совместимые железяки
Android – устройства
— Специализированные девайсы вроде WiFi Pineapple
Встала задача брутить на работе, оставлять ноутбук не хотелось. Решил попробовать Android смартфоном. Выяснилось, что, режим монитора в драйвере Wi-Fi отказывается корректно работать. Свою задачу, осуществил роутером.

Выбор беспроводного роутера

Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments6

ПЛИС — мои первые шаги

Reading time11 min
Views153K
Недавно я все-таки сделал свой первый шаг к ПЛИС и призвал вас за собой. Мое фанатическое увлечение ПЛИС и идея о том, что ПЛИС является лучшей платформой для создания любых устройств приобрела религиозный характер. Моя секта ПЛИСоводов проповедует полный отказ от микроконтроллеров, а особо экстремистская ветвь проповедует отказ не только от софт процессоров, но и вообще от последовательных вычислений!

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

Эта статья для новичков. В ней я опишу типичные проблемы, вопросы, заблуждения, ошибки, которые могут появиться в самом начале обучения (потому что они появились у меня). Однако, контекст статьи ограничен тем, что разработка ведется на ПЛИС от Altera в среде Quartus на языке Verilog.

Подробности
Total votes 37: ↑36 and ↓1+35
Comments41

Открыто видео курса «Multicore programming in Java» на русском (30+30 часов)

Reading time2 min
Views60K
Добрый день.

Я занимаюсь IT-преподаванием. Читал Java Core (материалы тут).
Сейчас написал и продаю курс «Scala for Java Developers»

В этом посте решил открыть видео двух курсов (проходивших в режиме вебинаров) по многопоточности под JVM (это 16 + 16 двухчасовых лекций).

Больше о материалах (программа, полезные ссылки) можно прочитать в постах-объявлениях о вебинарах (Программа курса «Multicore programming in Java» (25 марта 2014), Программа и материалы курса «Multicore programming in Java» (31 июля)).

Курс рассчитан на слушателей, которые начинают изучать многопоточность с нуля (после крепкого курса Java Core, Middle Developer из чистого web-а или перешедшим из скриптовых/интерпретируемых языков программирования). Он не будет подходить тем, кто перешел из «суровых» С/С++ или ищет «академической высоты».

Детально рассматриваются темы Hardware, New Java memory Model, java.util.concurrent (atomics, blocking queues, thread pool, locks, synchronizers), message passing alternative, software transactional memory alternative, Java 7 Fork/Join, Java 8 Parallel Streams (+Lambdas, +Stream API), CSP/JCSP alternative

Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments1

Микроконтроллеры семейства Kinetis от NXP-Freescale для встраиваемой электроники. Открываем для себя

Reading time7 min
Views42K

Время от времени меня тоже охватывает потребность что-то поменять. И чаще всего я меняю в своих разработках семейство микроконтроллеров. И я не одинок в этом. Каждый год не менее 50% разработчиков меняют процессор, на котором будут выполнять следующие проекты. На этот раз я решил попробовать семейство Kinetis.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments13

5 роботов с открытым исходным кодом

Reading time3 min
Views10K


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

Именно в этой плоскости развиваются последние популярные проекты по созданию простейших роботов с открытыми программными и аппаратными платформами. И пять из них — в нашей подборке.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments10

Обзор: SLA DLP по-русски. Чем ответить зарубежным монстрам?

Reading time3 min
Views12K
Уважаемые любители и профессионалы 3D-печати, в этом посте я хочу рассказать о решении в области печати фотополимерами, созданного российскими специалистами в российском же городе под названием Санкт-Петербург. Полученные после выращивания модели можно использовать для прямого литься, либо снятия холодной или горячей резины, а можно и как готовое решение.



Речь пойдёт о 3D SLA DLP принтере под названием Starlight и его младшей модели Russian DLP, теперь rev.7. Данный проект существует уже больше года, но пришла пора рассказать о нём подробнее. За прошедший период были доработаны основные узлы, улучшен фотополимер (разработаны несколько разных по составу материалов — об этом в отдельной статье) и проведены «полевые» испытания первыми обладателями.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments11

PyOpenGL с шейдерами

Reading time8 min
Views43K
image

В предыдущей статье были рассмотрены основы работы с OpenGL в Python. Для вывода графики использовались встроенные функции модуля glut и фиксированный конвейер OpenGL без шейдеров. По просьбе пользователей habrahabr.ru, на базе предыдущего урока был создан шаблон PyOpenGL приложения, использующего шейдеры и буферные объекты.
Роскошной графики, как и в предыдущей статье, ожидать не стоит. Цель данной статьи — продемонстрировать возможность работы с шейдерами и буферными объектами с использованием модуля PyOpenGL.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments7

Диссертационный проект или строим Hexapod своми руками

Reading time2 min
Views66K
На третьем курсе бакалавра электронной инженерии мне требовалось выбрать диссертационный проект. Он мог быть чисто теоретическим, либо практическим, что включает в себя производство на свет демонстрационного продукта. Сердце легло ко второму варианту, ведь практические задания куда интересней скучной писанины.

В то время я увлекался робототехникой. Имел опыт строительства дронов и роботов поменьше, которые то следовали за линией по полу, то решали лабиринт за короткий промежуток времени. К тому же, мотивация была приподнята недавней поездкой в Лос-Анджелес на ежегодный VEX Robotics World Championship, где, к слову, не удалось занять призового места, но удалось зарядиться позитивной энергией на весь последующий год. В общем, решил я построить Hexapod своими руками, включая механику, электронику и код.

image
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments59

Мелкосерийное производство несложной электроники: в России или в Китае?

Reading time3 min
Views161K
Недавно я разработал одно простое устройство. Пришлось решать вопрос, как изготовить пробную партию в 50 плат. Думаю, этот опыт будет полезен всем DIY энтузиастам, кто уже думает о том, что делать дальше после того, как девайс готов.

Замечу, что настоящая заметка — это не маркетинговое исследование или что-то подобное, претендующее на объективное освещение вопроса. Это исключительно один частный личный опыт.
Читать дальше →
Total votes 87: ↑79 and ↓8+71
Comments134

Information

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