Search
Write a publication
Pull to refresh
10
0.3

JavaScript-разработчик

Send message

DIY: Робот-подводная лодка для исследования акватории Москвы-реки. Часть 1

Reading time8 min
Views38K
Это краткая история создания подводного автономного робота менеджером очень среднего звена. Текущей целью является создание актуальной карты фарватера Москвы-реки. При поиске нет проблем найти такую карту, но вызывает вопрос ее актуальность. Русло реки постоянно меняется. Происходит эрозия берегов реки и меняется карта фарватера. Эти процессы особенно заметны, учитывая питание Москвы-реки снеговое (61 %), грунтовое (27 %) и дождевое (12 %). Конечной целью является создание многофункционального подводного робота для исследование морских глубин. Мировой океан, покрывающий 2/3 поверхности Земли, изучен всего на 5%. Для создания автономного робота нужен простой «автопилот».

Как сделать доступный и простой автопилот для DIY-проектов и проплыть на нем по Москве-реке?




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

Движение робота к точке с заданными координатами

Reading time6 min
Views54K
Приветствуем вас, уважаемые хабравчане!
Наш научный коллектив, который носит название Студенческого конструкторского бюро кафедры СУиИ Университета ИТМО, продолжает разработку курсов по робототехнике, и хочет поделиться одним из последних проектов на Lego NXT.

Ранее мы публиковали курс «Практическая робототехника»на NXT. Сейчас этот курс используется для обучения студентов на кафедре, и на площадке «Открытое образование». Так же публиковались фрагменты этого курса с подробным описанием действий для идентификации модели двигателя и расчета регулятора для робота Segway.
В этот раз было решено реализовать объезд препятствий роботом с дифференциальным приводом. Конструкция робота достаточно простая: два колеса с двигателями, гироскоп и пара ультразвуковых датчиков. Для оценки пройденного расстояния используются энкодеры на валу двигателя, для ориентации робота, измеряется гироскопом его угловая скорость и рассчитывается угол поворота, а расстояние до препятствия измеряется ультразвуковыми дальномерами.

Читать далее

Статья про микроконтроллер EFM32ZG110F32

Reading time31 min
Views27K
Так уж вышло, что у нас на складе оказалось довольно много микроконтроллеров EFM32ZG110F32, это серия Zero Gecko от компании SiLabs. Контроллеры классные, но пока не особенно популярные, потому я и пишу эту статью.


На правах рекламы мы предлагаем вот такой набор: ARM Cortex-M0+, 32 Кбайт Flash, 4 Кбайт ОЗУ, DMA, I2C, UART, USART, 12-разрядный АЦП, токовый ЦАП, компаратор, аппаратный счетчик импульсов, часы реального времени и разные штуки для снижения энергопотребления в корпусе QFN-24 за $0.96.
upd: да, можно поштучно

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

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

Ещё одна аппроксимация полиномом функции нескольких переменных

Reading time5 min
Views26K
В задачах интерполяции функций по заданным значениям функции для заданного набора аргументов широко применяется формула аппроксимации функции полиномом, совпадающего в заданных точках со значениями исследуемой функции.
image
Такой вид аппроксимации широко используется в научных расчетах.
Пример: некоторую функцию очень дорого вычислять для каждого значения аргументов (а их много, допустим N) — поэтому строится таблица значений и при необходимости получения значения функции в определенной точке — интерполируется по табличке. Разумеется, изначальное построение таблицы и процедура интерполирования (N раз) должны быть «дешевле», чем точное вычисление самой функции N раз.


Обобщим эту формулу на случай функции нескольких переменных
Читать дальше →

Первые советские АВМ

Reading time8 min
Views13K
В 1945 — 1946 гг. под руководством Л.И. Гутенмахера были разработаны первые электронные аналоговые машины с повторением решения. Но с 1949 г. коллектив советских разработчиков, возглавляемых В.Б. Ушаковым и В.А. Трапезниковым, изобрел ряд АВМ на постоянном токе. С этого года началась история развития аналоговой вычислительной техники в СССР. Использование операционных усилителей, которые работали по принципу систем автоматического регулирования с глубокой отрицательной обратной связью, дало возможность осуществить точное моделирование математических операторов, а также параллельную обработку информации в реальном времени при решении систем дифференциальных уравнений.



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

Щелкаем реле правильно: коммутация мощных нагрузок

Reading time3 min
Views253K
Привет, Geektimes!

Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-то независимо от платформы: будь то Arduino, Rapsberry Pi, Unwired One или иная платформа, включать-выключать ей какой-нибудь обогреватель, котёл или канальный вентилятор рано или поздно приходится.

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

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



Я же хочу рассказать про простую и довольно очевидную, но при этом редко встречающуюся схему, умеющую вот такое:

  • Гальваническая развязка входа и нагрузки
  • Коммутация индуктивных нагрузок без выбросов тока и напряжения
  • Отсутствие значимого тепловыделения даже на максимальной мощности


Но сначала — чуть-чуть иллюстраций. Во всех случаях использовались реле TTI серий TRJ и TRIL, а в качестве нагрузки — пылесос мощностью 650 Вт.

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

Метеостанция на Arduino с визуализацией данных

Reading time6 min
Views35K
Paul Klee In The Style Of Kairouan

Введение


Про метеостанции на Arduino писали и не раз. В своё оправдание скажу, что был хакатон — а нашей команде (в составе меня и хабраюзера ViArt) хотелось попробовать работу с Arduino. Кроме того к нашей метеостанции прикручена визуализация данных. Если хотите узнать, какая база данных может получать данные по com-порту без промежуточных звеньев в виде web-сервера, файлов или ещё каких-то ухищрений, добро пожаловать под кат.
Читать дальше →

Вы зарабатываете на информации (зачем нужен API и как его грамотно спроектировать)

Reading time10 min
Views24K
Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик.
Информация — основа любого приложения или сервиса.



Более 10 лет назад я общался с владельцем покер-рума, и он показал мне страницу, приносившую около 10 000$ в день. Это была совершенно банально оформленная страница. На ней не было ни стилей, ни графики. Сплошной текст, разбитый заголовками, секциями и ссылками. У меня просто не укладывалось в голове — ну как вот это может приносить такие деньги?

Секрет в том, что «вот это» было одним из первых исчерпывающих руководств по игре в покер онлайн. У страницы был PageRank 10/10 (или 9, не суть), и в поисковой выдаче это было первое, на что натыкались.

Цель вашего приложения, какое бы оно ни было — донести (получить, обработать) некоторую информацию до пользователя.
Интернет магазин: информация о товаре, способы приобретения и доставки.
Даже если это будет ужасный, некрасивый и неудобный сайт, пользователи всё равно найдут тот товар, который искали. Особенно, если вы торгуете чем-то достаточно уникальным (хотя бы в вашем регионе). Плюс поисковики вам помогут, выводя пользователя сразу к нужному товару.

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

Я не рассматриваю магазины, продающие «на эмоциях», и покупки, о которых пользователь может потом пожалеть.

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

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

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

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

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

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


Думаю, идею вы уже уловили. Примеры можно приводить бесконечно (вот ещё один: на википедию не за дизайном ходят. Более того, часть информации с википедии выводится сразу в поисковой выдаче, без открытия даже самого сайта), и если думаете, что в вашем случае это неприменимо — напишите в комментариях (или на почту / в личку), и я объясню, почему всё же применимо.

Так вот: чем бы вы ни занимались, первичной всегда будет информация. Хорошую, качественную информацию пользователи обязательно найдут и обратятся к вам.

Я расскажу, как организовать работу с информацией так, чтобы это было:
1. Масштабируемо — репликация, шардирование и т.п. настраивается БЕЗ вмешательства в работу приложения.
2. Удобно для пользователей — легко документировать, понятно как использовать.
3. Удобно для ваших разработчиков — быстрое прототипирование, возможности оптимизации только необходимого.

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

Как же правильно работать с информацией?

Понимание сборки мусора и отлов утечек памяти в Node.js

Reading time7 min
Views35K
Плохие отзывы в прессе о Node.js часто относятся к проблемам с производительностью. Это не значит, что с Node.js больше проблем, чем с другими технологиями. Просто пользователь должен иметь в виду некоторые особенности её работы. Хотя у технологии пологая кривая обучения, обеспечивающие её работу механизмы довольно сложные. Необходимо понять их, чтобы предотвратить появление ошибок производительности. И если что-то пойдет не так, необходимо знать, как быстро привести всё в порядок. В этой статье Даниэль Хан рассказывает о том, как Node.js управляет памятью и как отследить связанные с памятью проблемы.


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

О специализированных бортовых ЭВМ замолвим слово

Reading time10 min
Views20K
В этой статье хотелось бы немного дополнить предыдущую статью о специализированных ЭВМ военного назначения. Развитие средств обороны начиная с 40 годов двигалось в сторону увеличения точности и дальности поражения, увеличения мощности средств уничтожения, скорости перемещения. Взят курс на автоматизацию операций управления оружием.



Возвращаясь немного назад. До Второй мировой получение данных для стрельбы производилось с использованием механических построителей, дифференциалов, следящих систем и коноидов. Были изобретены приборы управления зенитно-артиллерийским огнем (ПУАЗО), применялись в противосамолетной обороне, приборы управления стрельбой (ПУС) — в корабельной артиллерии, приборы стрельбы торпедами (ТАС) — для бомбомтания. К 50 году были созданы вращающиеся трансформаторы и сельсины, решающие усилители постоянного тока с отрицательной обратной связью. Это помогало решать задачи на определение данных для стрельбы и привело к уменьшению габаритов приборов и значительно сократило трудовые затраты на их изготовление. Такой переход на электромеханические и электронные устройства помог значительно уменьшить затраты на изготовление механических счетно-решающих устройств (ведь точность выдаваемых данных в этих счетно-решающих приборах была напрямую связана с точностью их изготовления).
читать дальше

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

Reading time1 min
Views36K
Идентичные, или однояйцевые близнецы, являются результатом оплодотворения одной яйцеклетки и развития двух или более плодов. Эти близнецы имеют не только портретное сходство, но и одинаковый генотип. Четверть таких близнецов — зеркальные, у них могут быть родинки на разных щеках и даже сердце, расположенное у одного из них справа. Но отпечатки пальцев у них всегда разные.

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

Алгоритм создания списка всех перестановок или размещений

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

Я столкнулся с необходимостью составления списка всех перестановок из n элементов. Для n = 4 или даже 5, задача решается вручную в считанные минуты, но для 6! = 720 и выше исписывать страницы мне уже было лень – нужна была автоматизация. Я был уверен, что этот «велосипед» уже изобретён многократно и в различных вариациях, но было интересно разобраться самостоятельно – поэтому, намеренно не заглядывая в профильную литературу, я засел за создание алгоритма.
Читать дальше →

SVG-файлы изнутри и вывод векторных изображений на canvas «вручную» (ч.1)

Reading time5 min
Views18K

Эта статья написана по следам создания плагина для чтения SVG файлов для анимационного векторного редактора NanoFL. В ней вы найдёте некоторые особенности того, как устроены файлы SVG изнутри и какие проблемы возникают при их разборе и последующем выводе на HTML5/Canvas средствами JavaScript.

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

Немного из истории специализированных ЭВМ военного назначения

Reading time15 min
Views39K
Середина ХХ столетия, СССР. Основное внимание было уделено созданию универсальных ЭВМ для решения сложных математических вычислительных задач, это были стационарные машины, которые ориентировались на последовательное или пакетное решение задач, вне связи с реальным масштабом времени и динамическим изменением параметров объектов внешней среды. Но уже к концу 50 годов в Министерстве обороны страны возник интерес к применению таких ЭВМ для решения задач обработки информации и управления в военных системах. Но сразу же возникли трудности, связанные с недостатками таких универсальных машин при использовании их в военных системах для решения задач управления в реальном времени. Поэтому начало ускоренными темпами развиваться направление вычислительной техники военного предназначения.



Четко стали различать два класса ЭВМ: стационарные и мобильные. Развитию мобильных типов ЭВМ содействовали разные требования заказчиков, так как планировалось применять их и в сухопутных, и в авиационных, и в морских, и в ракетных, и в других систем в оборонных отраслях промышленности и на предприятиях, цифровая вычислительная техника начала применяться для систем противовоздушной и противоракетной обороны, для контроля космического пространства и управления полетами в авиации и в космосе. Стационарные работали в помещениях, а мобильные, следовательно, должны были быть транспортабельными.
Подробности

«Digital Rain» для Windows в 314 байтах

Reading time3 min
Views27K
В комментариях к недавнему топику возникло обсуждение: до какого размера можно ужать Windows EXE, печатающий в консоли «Hello, World!» Ответ: 268 байт, меньшие файлы Windows просто отказывается загружать.

Раз для «Hello, World!» предел возможного ужатия уже достигнут, то мне стало интересно, до какой степени удастся ужать программу, делающую хоть что-нибудь более интересное.

Сначала похвастаюсь результатом: моя программа всего на 46 байт больше теоретического минимума!



base64
TVprZXJuZWwzMgAAUEUAAEwBAQC4AwABAPdlEIlFEMN4AA8BCwEFDL0UEEAAjXyNAFfraD
gQAAAzyesoDAAAAAAAQAAAEAAAAAIAAAAAAAACAgoCBAAAAAAAAAAAQAAAAAIAALFQ68AD
AAAAEgEAAAAAAABQABkAABAAAFAAGQADAAAAAAAAAAAAAAAoEQAAKAAAAAAAAAAAAAAA/9
Wr4vvrEQAAMAAAABAAADkBAAABAAAAi/df6wMAAAAzybFQV4sHgPwZdygPttyNHJvB4waN
HItQweAYwegei0RFOIhEMwKIpDPC/v///9WIJDNY/sSA/GR8Av/Vq+LFjUVcUFH/dWhWZI
tBMItAEP9wHP9VWOuiV3JpdGVDb25zb2xlT3V0cHV0QQBsEAAAAAAAAAAAAAACAAAAbBA=

(Если найдётся доброволец захостить эти 314 байт, добавлю сюда ссылку.)


Пояснения

Вышел Tor Browser 5.5

Reading time1 min
Views32K


Разработчики Tor Browser выпустили обновленную версию своего ПО, текущая версия — 5.5. Как и раньше, программа предназначается для пользователей, которые хотели бы обеспечить анонимность и безопасность своих личных данных в Сети. Разработчики обновили многие функции, плюс добавили несколько обновлений безопасности. Как известно, особенностью этого обозревателя является перенаправление трафика через сеть Tor. Основой служит Firefox. В результате определение IP пользователя практически невозможно.

Дополнение к браузеру HTTPS Everywhere позволяет обеспечить шифрование трафика на любых сайтах, которые поддерживают такую функцию. Также в комплекте пользователь получает дополнение NoScript, для того, чтобы пользователь не подвергался угрозе проведения атак с использованием JavaScript.
Читать дальше →

Минималистическая супер универсальная платка для ATtiny-24 / 44 / 84 / 441 / 841

Reading time3 min
Views15K
панорама превью

Небольшая платка для микроконтроллеров ATtiny 24 ----> 841 разведённая так, что на одну и ту же плату можно припаять (не одновременно) много разных типов транзисторов и регистров без переделки платы. Для всех, кому интересно или для желающих пересесть с ардуины на что-то подешевле, если мощность той ардуины для изделия избыточна.
16 картинок 760х640 суммарно полмегабайта

Автоматизация обработки текстовых документов с помощью Microsoft Word API

Reading time3 min
Views16K
Значительная часть текстовых документов сегодня создаётся и редактируется в программе Microsoft Word. Наличие этой программы практически на каждом компьютере даёт возможность автоматизировать печать, обработку и экспорт текстовых документов в PDF, используя API Microsoft Word.

В этой статье я расскажу, как автоматизировать печать текстовых документов и конвертирование документов в формат PDF.
Читать дальше →

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1

Reading time9 min
Views105K


Нечеткий поиск строк является весьма дорогостоящей в смысле вычислительных ресурсов задачей, особенно если вам необходима высокая точность получаемых результатов. В статье описан алгоритм нечеткого поиска в словаре, который обеспечивает высокую скорость поиска при сохранении 100% точности и сравнительно низком потреблении памяти. Именно автомат Левенштейна позволил разработчикам Lucene повысить скорость нечеткого поиска на два порядка
Читать дальше →

О действительно БОЛЬШИХ числах (часть 1)

Reading time9 min
Views60K
imageИдея написать популярно про большие числа пришла во время чтения недавней статьи, речь в которой шла о числах-гигантах, имеющих хоть какой-то физический смысл. И заканчивается она упоминанием числа Грэма. Того числа, которое будет точкой отсчета сегодняшней статьи. Чтобы представить себе масштабы бедствия я настоятельно рекомендую предварительно прочитать вот эту статью, в которое объясняется о числе Грэма на пальцахTM — там автор очень красочно и последовательно рассказывает о границах восприятия, в которые мы себя зажимаем, когда говорим о больших числах.
Внимание, дисклеймер!
Я не являюсь профессиональным математиком. Поэтому ошибки в специальной терминологии практически неизбежны, учитывая полное отсутствие материалов на русском языке. Более того, я даже не уверен, что те слова, которые я использую для перевода с английского, вообще используются русскоязычными математиками. С другой стороны, я попытался всё это понять и объяснить языком, доступным для обычных читателей. Любые замечания просьба отписывать в личку — будем улучшать текст вместе.
итак, поехали...

Information

Rating
3,662-nd
Location
Москва, Москва и Московская обл., Россия
Registered
Activity