Читать дальше →
Максим Мотыльков @motylkov
User
Как мы улетели и с трудом вернулись: подробный отчет о нашем участии в соревнованиях летающих роботов компании КРОК
8 min
19K3 сентября 2012 года, прочитав на сайте Habrahabr новость о соревнованиях летающих роботов, мы поняли – вот оно, дождались! К тому моменту мы уже несколько месяцев думали о том, что пора переводить свой многолетний интерес к робототехнике в профессиональное русло, и искали для этого повод.
Поэтому вопросов об участии не возникало – начались обсуждения. Сразу же решили использовать готовый дрон, сосредоточившись на программном обеспечении. На первый взгляд, условия казались простыми, поэтому иллюзий, что мы сможем победить, не было – команд много, приз всего один. Решили, что будем использовать только камеру, продемонстрировав, таким образом, свою компетентность в области компьютерного зрения.
Забегая вперед, хочется отдельно отметить высокий уровень организации соревнований. Такого в России еще не было. Мы рады, что приняли участие в этом мероприятии и рады, что смогли победить.
Поэтому вопросов об участии не возникало – начались обсуждения. Сразу же решили использовать готовый дрон, сосредоточившись на программном обеспечении. На первый взгляд, условия казались простыми, поэтому иллюзий, что мы сможем победить, не было – команд много, приз всего один. Решили, что будем использовать только камеру, продемонстрировав, таким образом, свою компетентность в области компьютерного зрения.
Забегая вперед, хочется отдельно отметить высокий уровень организации соревнований. Такого в России еще не было. Мы рады, что приняли участие в этом мероприятии и рады, что смогли победить.
+58
Список Javascript библиотек для рисования графиков и диаграмм 2
2 min
37KПродолжаем тему визуализации данных в интернете.
Предыдущие топики:
Предыдущие топики:
- Изумительные диаграммы с новым Chart контролом
- Визуализация направленных графов в вебе
- Список Javascript библиотек для рисования графиков и диаграмм — habrahabr.ru/blogs/javascript/79960 (публикация в блоге — msug.vn.ua/blogs/akrakovetsky/archive/2010/01/04/javascript-charting-libraries.aspx)
+42
Mini-FAQ по Perl (Частые вопросы, ЧаВо)
4 min
19KМеня часто спрашивают, как я учил Perl — какие книги читал, какие сайты посещал и так далее. Многие считают, что Perl имеет сложный синтаксис, и потому не хотят или бояться его учить. В этом FAQ я хотел бы поделиться своим мнением относительно языка Perl.
+45
Управляем любой AV-техникой с телефона. ИК-приёмопередатчик для Raspberry
4 min
63KПотихоньку делаю свой дом немножко умнее. Сначала сделал управление светом с телефона с помощью платы расширения RaZBerry (Z-Wave) для Raspberry, затем увлекся программирование AVR микроконтроллеров и собрал небольшую метеостанцию, показывающую температуру на LED дисплее. Теперь очередь дошла до управления TV с помощью iPhone.
В качестве медиаплеера использую Raspberry с дистрибутивом Xbian, поэтому сразу же понял как буду управлять телевизором. Raspberry стоит на полочке под телевизором в прямой видимости. На один из выводов GPIO нужно установить ИК LED от пульта и подавать на него сигналы, которые понимает мой телевизор. В реализации затея оказалась не сложной!
Далее речь пойдет о том, как спаять плату ИК приемо-передатчика для Raspberry и как настроить софт, чтобы с телефона переключать каналы, регулировать громкость, включать и выключать телевизор.
+27
Asm.js практика
6 min
35KЭтим прохладным днём я искал алгоритмы и реализации вычисления числа пи. Алгоритмов нашлось какое-то несметное множество, но тут нашёлся пост с описанием алгоритма и его реализацией на си.
Алгоритм подкупает своей скоростью, хоть и выдаёт hex представление, но так уж вышло, что мне нужен был вариант на js. Моментальная, практически, переработка на обычный js показала очень плохую статистику, работа при подсчёте 1000000-ого знака заняла… 48 секунд (4ГГц FF).
О том, как возился с asmjs и каких камней повстречал можно узнать под катом.
+40
Как хвост виляет собакой. Азбука пропаганды
4 min
210KЧем доступнее информация, тем больше её вокруг. Чем быстрее она распространяется, тем меньше остаётся времени на то, чтобы её проверить. Постепенно информационная среда превращается в некое подобие «белого шума». Всё труднее строить внутри себя новые информационные фильтры, чтобы отсеять лишнее: убрать в сторону лозунги, агитацию, пропаганду, а оставить только то, что на самом деле кроется за ними. А манипулировать нашими мыслями пытаются постоянно, и я говорю не о 25-ом кадре (он не работает), а о более земных вещах — приёмах пропаганды, которые так умело (а зачастую — очень топорно) используют политики, рекламщики и вообще, все, кому не лень. Об этих приёмах и пойдёт речь в статье.
Хвост виляет собакой. ("Wag the dog") — чтобы избежать большого скандала или «замять», оставить незамеченным какое-нибудь важное, но неприятное событие, часто используется простой, но хитрый и ловкий приём, который англоязычные политтехнологи называют «Wag the dog», а русскоязычные — «Хвост виляет собакой». Он заключается в том, чтобы вовремя поднять волну обсуждения вокруг вопроса второстепенной важности, на фоне которой другое, более важное событие или действие пройдёт незаметно.
Примеры таких вопросов: Отмена перехода на зимнее время, российское гражданство Депардье, поездка Путина или Саши Грей на Ладе Калине по России, полёты со стерхами и т.д.
Своё название этот приём получил в честь английского выражения tail wagging the dog, который, в свою очередь, появился из следующего народного пассажа:
Хвост виляет собакой. ("Wag the dog") — чтобы избежать большого скандала или «замять», оставить незамеченным какое-нибудь важное, но неприятное событие, часто используется простой, но хитрый и ловкий приём, который англоязычные политтехнологи называют «Wag the dog», а русскоязычные — «Хвост виляет собакой». Он заключается в том, чтобы вовремя поднять волну обсуждения вокруг вопроса второстепенной важности, на фоне которой другое, более важное событие или действие пройдёт незаметно.
Примеры таких вопросов: Отмена перехода на зимнее время, российское гражданство Депардье, поездка Путина или Саши Грей на Ладе Калине по России, полёты со стерхами и т.д.
Своё название этот приём получил в честь английского выражения tail wagging the dog, который, в свою очередь, появился из следующего народного пассажа:
— Почему собака виляет хвостом?
— Потому, что собака умнее, чем хвост. Если бы хвост был умнее, он вилял бы собакой.
+302
Raspisco — удалённый доступ к Cisco через Raspberry Pi
3 min
28KВ работе ( инженера | системного администратора | просто хорошего парня) иногда начинает казаться что время тратится неэффективно, задачи которые решаются, решаются неоптимальным образом, вот тогда может понадобиться Расписко
+24
Учёные разрабатывают робота-ищейку для пожарных
2 min
5.3KИсследователи из Калифорнийского университета в Сан-Диего разработали прототип двухколёсного робота для разведки и поиска людей во время пожара. Предполагается, что робот будет недорогим, быстрым и простым в использовании, кроме того, подобно своре опытных охотничьих собак, несколько роботов смогут совместно обследовать горящее здание, за считанные минуты составляя трёхмерную карту помещений и обнаруживая людей, заблокированных в здании пожаром.
Робот напоминает электросамокат Сигвей, но в отличие от него умеет преодолевать ступеньки и довольно высокие препятствия. Это достигается простым и элегантным инженерным решением: “туловище” робота представляет собой плоскую доску, которая может двигаться вверх и вниз относительно шасси. Выдвигаясь, нижний конец этой доски поднимает шасси робота в воздух, причём, чтобы удержать равновесие, робот балансирует колёсами, используя их как силовые гироскопы. Как только колёса поднимаются на нужную высоту, робот опирается ими о препятствие и подтягивает “туловище” вверх.
Робот напоминает электросамокат Сигвей, но в отличие от него умеет преодолевать ступеньки и довольно высокие препятствия. Это достигается простым и элегантным инженерным решением: “туловище” робота представляет собой плоскую доску, которая может двигаться вверх и вниз относительно шасси. Выдвигаясь, нижний конец этой доски поднимает шасси робота в воздух, причём, чтобы удержать равновесие, робот балансирует колёсами, используя их как силовые гироскопы. Как только колёса поднимаются на нужную высоту, робот опирается ими о препятствие и подтягивает “туловище” вверх.
+10
Отказоустойчивый кластер Master-Slave на PostgreSQL
9 min
124KПриветствую, хаброжители!
В этой статье я хочу поделиться опытом развертывания кластера Master-slave на СУБД PostgreSQL. Отказоустойчивость достигается с помощью возможностей pgpool-II (failover, online recovery).
pgpool — это прекрасное средство для масштабирования и распределения нагрузки между серверами и, думаю, немногие знают о возможностях автоматического создания failover на ведомом сервере при отказе ведущего и как добавить новые мощности в уже работающий кластер без отключения всего кластера.
В этой статье я хочу поделиться опытом развертывания кластера Master-slave на СУБД PostgreSQL. Отказоустойчивость достигается с помощью возможностей pgpool-II (failover, online recovery).
pgpool — это прекрасное средство для масштабирования и распределения нагрузки между серверами и, думаю, немногие знают о возможностях автоматического создания failover на ведомом сервере при отказе ведущего и как добавить новые мощности в уже работающий кластер без отключения всего кластера.
+47
Настоящий многопоточный веб-сервер на ассемблере под Linux
7 min
74KДобрый день, хабр!
Сегодня я вам расскажу как написать свой настоящий веб-сервер на асме.
Сразу скажу, что мы не будем использовать дополнительные библиотеки типа libc. А будем пользоваться тем, что предоставляет нам ядро.
Уже только ленивый не писал подобных статей, — сервер на perl, node.js, по-моему даже были попытки на php.
Вот только на ассемблере еще не было, — значит нужно заполнить пробелы.
Сегодня я вам расскажу как написать свой настоящий веб-сервер на асме.
Сразу скажу, что мы не будем использовать дополнительные библиотеки типа libc. А будем пользоваться тем, что предоставляет нам ядро.
Уже только ленивый не писал подобных статей, — сервер на perl, node.js, по-моему даже были попытки на php.
Вот только на ассемблере еще не было, — значит нужно заполнить пробелы.
+171
HackPoint. Опыт самостоятельной организации провинциального хакатона с нуля
6 min
23KВ этом посте я поведаю о том, как за короткий промежуток времени запланировать и организовать полноценный провинциальный хакатон с обедами и чекпойнтами. Как найти спонсоров, как организовать подготовку мероприятия и найти участников, а так же не забыть про всякие важные мелочи. Всем заинтересованным читателям — добро пожаловать под кат.
+30
STM32F1xx — лечимся от ардуинозависимости вместе
14 min
267KДобрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
+155
ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery
5 min
395KПри изучении любого незнакомого дела, особенно когда речь идет о микроконтроллерах, возникает вопрос — «С чего начать». Ведутся поиски статей по ключевым словам «Getting Started», неизбежно появляется дилема выбора среды разработки и программатора-отладчика. Чтобы помочь вам определиться с ответами на возникшие вопросы, я поделюсь своим опытом в освоении 32-битных контроллеров семейства STM32F от ST Microelectronics.
Вариантов по сути дела было два — STM32F или NXP (LPC1xxx). На микроконтроллеры STM32F мой выбор пал по нескольким причинам.
Выбор контроллера
Вариантов по сути дела было два — STM32F или NXP (LPC1xxx). На микроконтроллеры STM32F мой выбор пал по нескольким причинам.
+48
Android + Arduino + 4 колеса. Часть 2
15 min
53KЭтот пост продолжение моей статьи «Android + Arduino + 4 колеса». Совсем не то, что я планировал описать следующим шагом. Я собирался решить задачу передачи видео от робота к ПК, но до сих пор нахожусь в стадии сбора информации. К сожалению мало свободного времени, а тут ещё пришлось переставлять систему на домашнем компьютере с нуля и заново настраивать среду разработки.
На фоне вопросов, заданных мне по почте о запуске исходников Мити (имя, зацепившееся за моим роботом) и моей внеплановой перестановки системы, решил описать, какой средой пользуюсь я, как её настраивать, как развернуть исходники и как запустить Митю. Если интересно, приглашаю читать далее. Картинок почти нет, никакого видео, сухой поток текста по настройке среды разработки. Суровая изнанка робототехники.
Надеюсь, эта статья пригодиться тем любителям DIY, кто испытывает недостаток опыта в части организации программирования .NET-приложений или Android-приложений. Вопросы языков программирования я поднимать не буду, но главный вопрос: «с чего начать?», думаю, здесь будет раскрыт.
На фоне вопросов, заданных мне по почте о запуске исходников Мити (имя, зацепившееся за моим роботом) и моей внеплановой перестановки системы, решил описать, какой средой пользуюсь я, как её настраивать, как развернуть исходники и как запустить Митю. Если интересно, приглашаю читать далее. Картинок почти нет, никакого видео, сухой поток текста по настройке среды разработки. Суровая изнанка робототехники.
Надеюсь, эта статья пригодиться тем любителям DIY, кто испытывает недостаток опыта в части организации программирования .NET-приложений или Android-приложений. Вопросы языков программирования я поднимать не буду, но главный вопрос: «с чего начать?», думаю, здесь будет раскрыт.
+23
Если нет денег на AXIS, или управляемая вебкамера своими, в меру кривыми, руками
6 min
42KКогда я впервые увидел трансляцию видео с управляемой вебкамеры на 13-м этаже МГУ, меня это очень впечатлило. Настолько, что захотелось устроить нечто аналогичное. На камеры типа AXIS 214PTZ лишних денег у меня нет, так что пришлось на некоторое время эту идею оставить. До тех пор, пока я не узнал про Arduino и про то, что к ней можно приделать «сетевую карту» и моторчики. Необходимые комплектующие быстренько были приобретены и у меня в наличии оказалось всё для сооружения полноценной вебкамеры, управляемой по сети.
Изучение интернетов показало что идея приделать камеру к сервам приходит первой ко всем счастливым обладателей ардуины и сервомашинок. Однако, ни одна из уже реализованных схем управления (кнопками, мышкой PS/2, с управляемого роутера, с компа, с вебстранички на встроенном в ардуину сервере) меня не впечатлило, ибо неудобно, имхо. Хотелось чего-то универсального, чтобы можно было выложить веб-интерфейс на сайт и с него управлять.
В итоге появилась вот такая штукенция:
Изучение интернетов показало что идея приделать камеру к сервам приходит первой ко всем счастливым обладателей ардуины и сервомашинок. Однако, ни одна из уже реализованных схем управления (кнопками, мышкой PS/2, с управляемого роутера, с компа, с вебстранички на встроенном в ардуину сервере) меня не впечатлило, ибо неудобно, имхо. Хотелось чего-то универсального, чтобы можно было выложить веб-интерфейс на сайт и с него управлять.
В итоге появилась вот такая штукенция:
+239
Асинхронное программирование на JavaScript — Остаться в живых
14 min
35KTranslation
Программисты принимают некоторые особенности как должное — последовательное программирование, к примеру, при записи алгоритма, который делает один шаг только после другого.
Однако, если вы пишете код на JavaScript, который использует блокирующийся ввод/вывод или другие длительные операции, о последовательном кодировании не может быть и речи, так как блокирование единственного потока исполнения в системе является очень плохой идеей. Решение состоит в реализации алгоритмов с использованием асинхронных обратных вызовов, то есть, в разбиении последовательного кода на несколько обратных вызовов.
Это решает проблему, но означает, что мы теряем способность записывать последовательный алгоритм, а нетривиальный последовательный код преобразуется в граф функций обратного вызова.
Это становится ещё более критичным для приложений большого масштаба, которые широко используют асинхронность. Использование передачи функций обратного вызова для асинхронных действий не очень удобно и может создавать сложные процессы передачи обратных вызовов в связи с необходимостью обрабатывать возвращаемые значения.
Сообщество JavaScript в курсе этого, особенно сообщество Node.JS, так как Node.JS ставит акцент на асинхронном коде.
Однако, если вы пишете код на JavaScript, который использует блокирующийся ввод/вывод или другие длительные операции, о последовательном кодировании не может быть и речи, так как блокирование единственного потока исполнения в системе является очень плохой идеей. Решение состоит в реализации алгоритмов с использованием асинхронных обратных вызовов, то есть, в разбиении последовательного кода на несколько обратных вызовов.
Это решает проблему, но означает, что мы теряем способность записывать последовательный алгоритм, а нетривиальный последовательный код преобразуется в граф функций обратного вызова.
Это становится ещё более критичным для приложений большого масштаба, которые широко используют асинхронность. Использование передачи функций обратного вызова для асинхронных действий не очень удобно и может создавать сложные процессы передачи обратных вызовов в связи с необходимостью обрабатывать возвращаемые значения.
Сообщество JavaScript в курсе этого, особенно сообщество Node.JS, так как Node.JS ставит акцент на асинхронном коде.
+30
Есть что-то волшебное в Firefox OS
8 min
129KTranslation
Последние полтора года я уделял все больше времени работе над новым проектом Mozilla — Firefox OS. За это время я буквально влюбился в него и в его идею, испытав то, чего не испытывал прежде.
Скриншот Firefox OS
Скриншот Firefox OS
+104
Синтез русской речи в Linux
3 min
55KПрочитал статью про SAPI и Powershell (Учим PowerShell разговаривать), и мне стало интересно как же с синтезом русскоязычной речи в родной для меня операционке, Linux'e. Как выяснилось все далеко не так радужно, да и качество синтеза далеко до голоса Алены, но все же.
+51
Народный 3D принтер
2 min
32KРепликатор – это прибор, который впервые был представлен в американском научно-фантастическом сериале Звездный путь (Стар трек/Star trek) и который позволяет создавать любые другие вещи/приборы. С конца 60-х годов, когда первые эпизоды сериала были сняты прошло немало времени, и сегодня, я вам расскажу о 3D принтере который можно назвать одним из первых версий Репликатора из Звездного пути и который в действительности позволяет материализовывать вещи используя технологии 3D печати – Cupcake CNC от MakerBot industries).
+23
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity