Как стать автором
Обновить
337
0
Сергей Парамонов @varagian

Data Scientist, PhD in AI

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

Ino — работа с Arduino из командной строки

Время на прочтение2 мин
Количество просмотров15K
imageХабрадевелоперам, привет!

Те, кто работал с Arduino, знает, что для его программирования существует специальная Arduino IDE. По сути это блокнот с двумя кнопками: «прошить» и «послушать через serial». Блокнот подходит для написания маленьких программок-экспериментов, но выбешивает при написании чего-то большего.

Многие привыкли работать в своих любимых Visual Studio, Eclipse, KDevelop и т.п. Я сам — убеждённый фанат Vim’а, окна терминала и кнопок Alt+Tab. Давно хотелось, чтобы сборка проектов для Arduino была такой же простой, как в официальной IDE, а вот их ужасный редактор на глаза больше не попадался. Тем более, что язык «Arduino» несмотря на позиционирование как отдельного, простого языка программирования — это не что иное, как C++. А собирается всё в конечном итоге инструментами avr-gcc.

Для решения проблемы Амперкой был создан Ino.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии29

Как мы придумывали конструктор для детской робототехники. #2

Время на прочтение7 мин
Количество просмотров21K
Привет, Хабр!

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




Проблема #1. Конструктивные элементы


Уже около года мы делаем забавные гаджеты из разных электронных полуфабрикатов.
Это может быть катер для кормления уток, система автополива цветка или странная штука, вроде RFID-магнитофона «Becha».
Результатом этой работы становится сам гаджет, видеообзор и wiki-статья. В статье описан процесс сборки устройства и идеи для его развития. Ну и исходный код заодно. В общем, стараемся сделать полноценную инструкцию для сборки, чтобы повторение устройства вызвало как можно меньше затруднений у начинающего киберсамодельщика.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии65

Пайка для начинающих

Время на прочтение6 мин
Количество просмотров828K
Мои отношения с радио- и микроэлектроникой можно описать прекрасным анекдотом про Льва Толстого, который любил играть на балалайке, но не умел. Порой пишет очередную главу Войны и Мира, а сам думает «тренди-бренди тренди-бренди...». После курсов электротехники и микроэлектроники в любимом МАИ, плюс бесконечные объяснения брата, которые я забываю практически сразу, в принципе, удается собирать несложные схемы и даже придумывать свои, благо сейчас, если неохота возиться с аналоговыми сигналами, усилениями, наводками и т.д. можно подыскать готовую микро-сборку и остаться в более-менее понятном мире цифровой микроэлектроники.

К делу. Сегодня речь пойдет о пайке. Знаю, что многих новичков, желающих поиграться с микроконтроллерами, это отпугивает. Но, во-первых, можно воспользоваться макетными платами, где просто втыкаешь детали в панель, без даже намека на пайку, как в конструкторе.
Читать дальше →
Всего голосов 131: ↑118 и ↓13+105
Комментарии100

Как превратить концепт-проект на Arduino в финальный прототип

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

Предыстория


Некоторое время назад я описал процесс изготовления "коробки от прокрастинации" – запирающейся коробочки, в которую нужно прятать смартфон, чтобы не отвлекаться на него. По поводу статьи мне пришло следующее письмо:
Привет! Мне очень понравилась твоя коробка от прокрастинации. Я веб-разработчик, и ищу кого-нибудь, кто сможет сделать мне прототип продукта, очень похожего на описанный тобою.


Я, конечно, обрадовался. Но потом подумал: я ведь не инженер. Одно дело – играться с доской для прототипирования, а другое – изготовить коммерческий продукт. К счастью, я был не первым новичком, стремящимся стать профессионалом, поэтому где-то через месяц я изготовил рабочий прототип (Cloister), и написал текст на 4 странички с пояснениями по информации, нарытой в сети.

Здесь я хочу собрать эту информацию воедино и структурировать её. Это не будет всеобъемлющая инструкция по прототипированию – я всё-таки новичок.

Наш прототип: the MoodCube


В педагогических целях мы с вами вместе изготовим простой прототип. Лично я всегда верил в обучение через примеры. Мы разработаем контур, чтобы получить плату специально для нашего проекта. Затем мы сделаем ей корпус и stl-файлы для распечатки его на 3д-принтере.

Уникальный продукт, который мы будем делать, и который принесёт нам богатство и славу – это MoodCube. Пластиковый кубик с RGB-светодиодами на 5 из 6 сторон. Управляться он будет с пульта.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии8

Russian AI Cup 2015: гонки на выживание для программистов

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


Мы рады сообщить о начале очередного международного чемпионата по программированию искусственного интеллекта — Russian AI Cup. В этот раз чемпионат получил название CodeRacing. Храбрецам, которые отважатся принять участие, предстоит программировать искусственный интеллект для управления гоночным автомобилем. Но он должен будет не просто исполнять роль водителя, но и одновременно расстреливать соперников. В «игровом» мире предусмотрено четыре типа юнитов: кодемобили, снаряды, бонусы и лужи мазута. Самые «грязные» приёмы на трассе будут только поощряться: можно толкать чужие машины, повреждать их и ломать.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии15

Распознавание образов. Метод потенциальных функций

Время на прочтение3 мин
Количество просмотров32K
Здравствуйте, я давно читаю Хабрахабр и часто мне попадались статьи про нейронные сети, в частности про однослойный перцептрон. Но пока еще мне не встретилась статья про другие виды распознающих функций перцептронного вида. Как следует из названия статьи данный вид распознающих функций называется методом потенциальных функций.

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

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

Основные понятия
Изображение — отображение объекта на воспринимающие органы. То есть, описание объекта, как множество признаков. Часто объект представляется в виде вектора. Если множество признаков постоянное, то объект отождествляется с его изображением.
Образ (класс) — подмножество множества объектов или изображений.
Решающая функция — функция, на вход которой подается изображение, определяющая принадлежность объекта некоторому классу.

Краткое описание
Суть данного метода, а впрочем, любого алгоритма, применяемого для распознавания образов состоит в том, чтобы составить такую решающую функцию, которая будет для каждого объекта определять принадлежность его к нужному классу.
В данном случае, решающая функция составляется итеративно, по маркированной обучающей выборке (для каждого объекта из ОВ известен его класс).
Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии14

Книга «Программируем Arduino: Основы работы со скетчами»

Время на прочтение3 мин
Количество просмотров32K
Привет, Хаброжители!
У нас вышла книга-новинка:

imageВпервые на русском языке выходит легендарный бестселлер Саймона Монка, который много лет занимает первые строчки в рейтингах Amazon. Хотите создать умный дом или запрограммировать робота? Нет ничего проще. Саймон Монк не только поможет разобраться с проволочками, контактами и датчиками, но и покажет, как заставить все это хитросплетение проводов и плат делать то, что вам нужно. Arduino — это не так сложно, как кажется с первого взгляда. Вы сразу будете покорены открывающимися возможностями.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии11

Стопроцентная Handmade электроника для начинающих

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


В статье рассказывается о некоторых этапах ручного изготовления электронных устройств, а особенно подробно о первом этапе: изготовлении печатной платы. Подробные фото процесса помогут разобраться в деталях. А «на десерт», для закрепления теоретического материала, мы соберём простейшее электронное пианино на интегральном таймере NE555.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии44

Непересекающиеся множества и загадочная функция Аккермана

Время на прочтение14 мин
Количество просмотров39K
Речь пойдёт о простой структуре данных — системе непересекающихся множеств. Вкратце: даны непересекающиеся множества (например, компоненты связности графа) и по двум элементам x и y можно: 1) узнать, находятся ли x и y в одном множестве; 2) объединить множества, содержащие x и y. Сама структура очень проста в реализации и описывалась много раз в различных местах (например, есть хорошая статья на хабре и ещё кое-где). Но это один из тех удивительных алгоритмов, написать который ничего не стоит, а вот разобраться, почему он работает эффективно совсем нелегко. Я постараюсь изложить относительно простое доказательство точной оценки на время работы этой структуры данных, придуманное Зейделем и Шариром в 2005 (оно отличается от того ужаса, который многие могли видеть в других местах). Конечно, сама структура тоже будет описана, а попутно разберёмся причём здесь обратная функция Аккермана, о которой многие знают только, что она оооочень медленно растёт.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии3

Большой список научно-фантастических сериалов

Время на прочтение20 мин
Количество просмотров437K
image
Кадр из заставки сериала «Грань»

Предисловие

На Geektimes и Habrahabr уже были статьи со списком Sci-Fi сериалов (Фантастические сериалы — обзор от фаната, Фантастические сериалы и др.). Но все они либо содержали достаточно мало сериалов и/или поверхностную информацию о них самих, либо были предвзяты в отношении тех или иных сериалов.

В данной публикации я постараюсь предоставить большой список научно-фантастических сериалов. А благодаря голосованию — узнать какие сериалы на самом деле нравятся пользователям Geektimes.
Читать дальше →
Всего голосов 58: ↑47 и ↓11+36
Комментарии189

Поисковые подсказки изнутри

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


Ночная зала. Тысячи таинственных ликов в темноте, подсвеченных голубоватым свечением мониторов. Оглушительный треск миллиона клавиш. Подобные выстрелам автомата удары по клавишам «Enter». Зловещее стрекотание сотен тысяч мышек… Так, наверняка, играло воображение каждого разработчика высоконагруженной системы. И если его вовремя не остановить, то может выйти целый триллер или фильм ужасов. Но в данной статье мы будем гораздо ближе к земле. Мы кратко рассмотрим известные подходы к решению задачи поисковых подсказок, как мы научились делать их полнотекстовыми, а также расскажем о парочке уловок, на которые мы пошли, чтобы придать им скорости, но при этом не научить жадности к ресурсам. В конце статьи вас ждёт бонус — небольшой рабочий пример.
Читать дальше →
Всего голосов 64: ↑60 и ↓4+56
Комментарии14

Простыми словами о преобразовании Фурье

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.1M
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Итак, приступим?
Всего голосов 203: ↑192 и ↓11+181
Комментарии190

Easy-программирование танка-шпиона

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

Хочу рассказать Вам, как можно управлять айГаджетами с PC, да еще и программировать их. Все, что описано в статье применимо как к Brookstone Rover Spy Tank, так и к AR Drone Parrot. На «Хабре» уже ни раз были статьи о серии высокотехнологичных гаджетов AR Drone Parrot. Как-то мало интереса проявляется Brokstone Rover Spy Tank, хотя, как ни странно, эта игрушка хоть и не такая эффектная, в силу того, что не летает, зато более практичная. Во первых заряда 6 элементов пиатния серии АА хватает на несколько часов непрерывной работы. Во вторых, его можно использовать как гиковскую веб-камеру, с помощью которой можно следить за тем, что происходит дома с любого другого компьютера, ну и, как бонус, гонять своих домашних животных. Настроив доступ по RDP к домашнему компьютеру, можно управлять этим изделием, как мобильной веб-камерой, которая не просто показывает картинку, но еще и передвигается по помещению.
Читать дальше →
Всего голосов 21: ↑16 и ↓5+11
Комментарии16

19 советов по повседневной работе с Git

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


Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!

Содержание:
  1. Параметры для удобного просмотра лога
  2. Вывод актуальных изменений в файл
  3. Просмотр изменений в определённых строках файла
  4. Просмотр ещё не влитых в родительскую ветку изменений
  5. Извлечение файла из другой ветки
  6. Пара слов о ребейзе
  7. Сохранение структуры ветки после локального мержа
  8. Исправление последнего коммита вместо создания нового
  9. Три состояния в Git и переключение между ними
  10. Мягкая отмена коммитов
  11. Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
  12. Игнорирование пробелов
  13. Добавление определённых изменений из файла
  14. Поиск и удаление старых веток
  15. Откладывание изменений определённых файлов
  16. Хорошие примечания к коммиту
  17. Автодополнения команд Git
  18. Создание алиасов для часто используемых команд
  19. Быстрый поиск плохого коммита

Читать дальше →
Всего голосов 152: ↑149 и ↓3+146
Комментарии62

Готовим к публикации пост с формулами

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

В последнее время на хабре появилось много постов с математическими формулами. Например, нельзя не вспомнить серию статей maisvendoo о теоретической механике.


В связи с этим стал актуальным вопрос о выборе удобного инструмента для создания и подготовки таких постов. SeptiM предложил скрипт, преобразующий маркдаун-разметку + латех в html-код. Я решил развить идею и упростить инструмент, и сделал для этих же целей онлайн-редактор с поддержкой латеха и маркдауна:


Скриншот редактора


Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии32

Vim по полной: Тестирование с помощью xUnit

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

Оглавление


  1. Введение (vim_lib)
  2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
  3. Уровень проекта и файловая система (vim_prj, nerdtree)
  4. Snippets и шаблоны файлов (UltiSnips, vim_template)
  5. Компиляция и выполнение чего угодно (vim-quickrun)
  6. Работа с Git (vim_git)
  7. Деплой (vim_deploy)
  8. Тестирование с помощью xUnit (vim_unittest)
  9. Библиотека, на которой все держится (vim_lib)
  10. Другие полезные плагины

Мне еще не приходилось работать в компаниях, которые тестируют свой код так, как это положено делать для последующего сопровождения и рефакторинга. В России даже крупные IT компании избегают процесс модульного тестирования, не говоря уже об общесистемном, что приводит к тоннам затхлого и окаменевшего кода. Да, я считаю, что тестируемый код, это качественный код, но почему же люди этого избегают? Как я понял, причины две:
  • Незнание методологий и инструментов тестирования
  • Сложность в запуске тест-случаев (test-case)

Первая проблема вне темы этой статьи, а вот вторую, особенно для пользователей редактора Vim, я постараюсь здесь решить.
Red line
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Как написать пост с формулами: markdown + LaTeX

Время на прочтение3 мин
Количество просмотров24K
Привет! На Хабре периодически появляются статьи, где авторы хотят вставить математические формулы: inline_formula, inline_formula или даже


У некоторых это получается, у некоторых — с трудом. parpalak сделал web-сервис для вставки svg формул, и это очень круто. Я хочу дополнить его небольшим скриптом, с которым вставка многих формул сведется к одной команде.

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

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

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

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


Читать дальше →
Всего голосов 140: ↑121 и ↓19+102
Комментарии112

Искусство командной строки

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


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Всего голосов 127: ↑122 и ↓5+117
Комментарии143

Лекция Дмитрия Ветрова о математике больших данных: тензоры, нейросети, байесовский вывод 

Время на прочтение2 мин
Количество просмотров49K
Сегодня лекция одного из самых известных в России специалистов по машинному обучению Дмитрия Ветрова, который руководит департаментом больших данных и информационного поиска на факультете компьютерных наук, работающим во ВШЭ при поддержке Яндекса.

Как можно хранить и обрабатывать многомерные массивы в линейных по памяти структурах? Что дает обучение нейронных сетей из триллионов триллионов нейронов и как можно осуществить его без переобучения? Можно ли обрабатывать информацию «на лету», не сохраняя поступающие последовательно данные? Как оптимизировать функцию за время меньшее чем уходит на ее вычисление в одной точке? Что дает обучение по слаборазмеченным данным? И почему для решения всех перечисленных выше задач надо хорошо знать математику? И другое дальше.



Люди и их устройства стали генерировать такое количество данных, что за их ростом не успевают даже вычислительные мощности крупных компаний. И хотя без таких ресурсов работа с данными невозможна, полезными их делают люди. Сейчас мы находимся на этапе, когда информации так много, что традиционные математические методы и модели становятся неприменимы. Из лекции Дмитрия Петровича вы узнаете, почему вам надо хорошо знать математику для работы с машинным обучением и обработкой данных. И какая «новая математика» понадобится вам для этого. Слайды презентации — под катом.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии16

Информация

В рейтинге
Не участвует
Откуда
Antwerpen, Бельгия
Дата рождения
Зарегистрирован
Активность