Решил собрать сервисы, которые могут быть полезны веб-разработчикам и дизайнерам. Буду рад, если кто-то найдет для себя полезный сервис. Осторожно, под катом куча картинок!
Сергей @sav6622read-only
Пользователь
Резистор изгиба своими руками
2 min
145KНаверняка те, кто увлекается электроникой и программированием микроконтроллеров слышали о датчике изгиба, который меняет свое сопротивление в зависимости от степени его изгиба. Сегодня я расскажу о том, как можно изготовить такой датчик (резистор) изгиба своими руками.
Когда мне понадобился такой датчик, то первым делом я зашел и нашел его на Амперке. Но цена, 890 рублей за штуку (за датчик длинной 95мм именно такая цена), меня не устроила и тогда в голову пришла отличная идея
Идея
Когда мне понадобился такой датчик, то первым делом я зашел и нашел его на Амперке. Но цена, 890 рублей за штуку (за датчик длинной 95мм именно такая цена), меня не устроила и тогда в голову пришла отличная идея
+111
Распознавание речи в Asterisk с использованием Yandex SpeechKit HTTP API
2 min
34K
Статья написана по мотивам Синтез и распознавание речи от Google для Asterisk, с
+19
Энергоснабжение частного дома
5 min
96K
В этой статье хочу начать описание концепции умного дома в моем понимании и рассмотреть некоторые аспекты ее реализации. Сразу оговорюсь, что я практически не вижу применения понятия «Умный дом» к квартире, так как в ней практически отсутствуют системы, требующие автоматизации. Совсем другое дело — частный дом. Он содержит множество систем, которые можно и нужно автоматизировать — начиная от водоснабжения и заканчивая освещением сада. Итак, мое определение. Умный дом — это набор автоматических систем, которые функционируют при минимальном участии его обитателей, обеспечивая при этом максимальный комфорт, безопасность и энергосбережение. При этом реализация должна быть по возможности простой и доступной.
Начну я с реализации энергоснабжения дома.
+30
Micro Python — эффективная реализация Python 3 для микроконтроллеров
1 min
42K
Английский разработчик Дэмьен Джордж (Damien George) сегодня официально объявил о выпуске Micro Python — эффективной реализация Python 3 для встроенных систем с малым объёмом оперативной памяти. Разработка этой версии началась в декабре, после удачной кампании по сбору средств на выпуск Pyboard — контроллера, работающего на Питоне.
+61
Эксплуатация концептуальных недостатков беспроводных сетей
3 min
91K
Беспроводные сети окружают нас повсеместно, вокруг миллионы гаджетов, постоянно обменивающихся информацией с Всемирной Паутиной. Как известно — информация правит миром, а значит рядом всегда может оказаться кто-то очень сильно интересующийся данными, что передают ваши беспроводные устройства.
Это может быть как криминальный интерес, так и вполне законное исследование безопасности компании со всеми предварительными условиями. Для таких исследователей и написана эта коротенькая статья, потому как лишняя точка сбора информации во время пентеста не помешает.
+63
В Asterisk версии 12 появился REST интерфейс (Asterisk REST Interface — ARI)
2 min
37KВ Asterisk версии 12 появился REST интерфейс (Asterisk REST Interface — ARI).
Да, это RESTful API в натуре.
Пока имеются следующие ресурсы:
Или, интерфейсы к Каналам, Девайсам, Бриджам, Записям, Звукам. Вероятно, будут наращивать мощности :-)
Ну и главная фишка, это возможность подключения через WebSocket на /ari/events и в режиме постоянного соединения получать события.
В отличие от AMI, тут гуляют объекты в JSON формате, и работать с событиями крайне удобно.
Пример скрипта на ARI:
Да, это RESTful API в натуре.
Пока имеются следующие ресурсы:
- Asterisk
- Bridges
- Channels
- Endpoints
- Events
- Recordings
- Sounds
- Applications
- Playbacks
- Devicestates
- Mailboxes
Или, интерфейсы к Каналам, Девайсам, Бриджам, Записям, Звукам. Вероятно, будут наращивать мощности :-)
Ну и главная фишка, это возможность подключения через WebSocket на /ari/events и в режиме постоянного соединения получать события.
В отличие от AMI, тут гуляют объекты в JSON формате, и работать с событиями крайне удобно.
Пример скрипта на ARI:
+22
VIM как IDE для разработки на Python
10 min
163KTutorial

Данная статья будет посвящена настройке vim, в которой я поделюсь своим «скромным» пониманием того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п.
Весь процесс постараюсь описать как можно более подробно, чтобы вопросов по мере чтения для начинающих осваивать vim возникало как можно меньше.
+46
Wi-Fi сети: проникновение и защита. 1) Матчасть
9 min
633K
Синоптики предсказывают, что к 2016 году
При таком тренде не может
Этим циклом статей я хочу собрать воедино описания существующих технологии защит, их проблемы и способы обхода, таким образом, что в конце читатель сам сможет сказать, как сделать свою сеть непробиваемой,
Статья по мере написания выросла с 5 страниц до 40, поэтому я решил разбить её на части. Этот цикл — не просто инструкция, как нужно и не нужно делать, а подробное объяснение причин для этого. Ну, а кто хочет инструкций — они такие:
Используйте WPA2-PSK-CCMP с паролем от 12 символовa-z
(2000+ лет перебора на ATI-кластере). Измените имя сети по умолчанию на нечто уникальное (защита от rainbow-таблиц). Отключите WPS (достаточно перебрать 10000 комбинаций PIN). Не полагайтесь на MAC-фильтрацию и скрытие SSID.
Оглавление:
1) Матчасть
2) Kali. Скрытие SSID. MAC-фильтрация. WPS
3) WPA. OpenCL/CUDA. Статистика подбора
+167
Бутлоадер с AES-128 и EAX на AVR Assembler в 1024 байта
23 min
80K
Или как я перестал бояться и полюбил ассемблер
Однажды летом, я устроился в родном университете программистом микроконтроллеров. В процессе общения с нашим главным инженером (здравствуйте, Алексей!), я узнал, что чипы спиливают, проекты воруют, заказчики кидают и появление китайского клона наших программаторов для автомобильной электроники — лишь вопрос времени, задавить их можно только высоким качеством. При всем этом, в паранойю впадать нельзя, пользователи вряд ли захотят работать с нашими железками в ошейниках со взрывчаткой.
Хорошая мера защиты — обновления программного обеспечения. Китайские клоны автоматически отмирают после каждой новой прошивки, а лояльные пользователи получают нашу любовь, заботу и новые возможности. Робин Гуды при таком раскладе, естественно, достанут свои логические анализаторы, HEX-редакторы и начнут ковырять процесс прошивки с целью ублажения русско-китайского сообщества.
Хоть у нас и не было проектов, которые требуют подобных мер защиты, было понятно: заняться этим надо, когда-то это пригодится. Погуглено — не найдено, придумано — сделано. В этой статье, я расскажу, как уместить полноценное шифрование в 1 килобайт и почему ассемблер — это прекрасно. Много текста, кода и небольшой сюрприз для любителей старого железа.
+149
3 проекта недорогих мини-ПК с Indiegogo
2 min
112K
Можно с уверенностью сказать, что Raspberry Pi стал одним из самых успешных краудфандинговых проектов в электронике. Само собой, популярность этого устройства вызвала появление некоторого количества схожих проектов, из которых ни один не затмил «малинку».
Тем не менее, интересные проекты подобного рода появляются до сих пор, и некоторые из них заслуживают того, чтобы быть описанными на Хабре. Предлагаю оценить 3 проекта, каждый из которых сейчас собирает средства на Indiegogo.
+48
Идеи и возможности разработки электроники в России
10 min
36KИногда мне приходят в голову интересные идеи о том, разработкой какого устройства можно было бы заняться, если бы нашёлся заказчик и потребитель. Иногда — это примерно раз в час. Эти идеи не дают мне спать, не дают работать. Я прикладываю нечеловеческие усилия, чтобы остаться в рамках задач, по которым заключены контракты. Я использовал разные способы, чтобы отвлечься от этих идей: рассказывал их самому большому критику из тех, что я знаю; заставлял себя детально просчитывать стоимость реализации каждой новой идеи, клал под подушку старые MCS51-ые…, но ничего не помогает.
И вот я хочу опробовать очередной способ: рассказать о своих идеях и мыслях на Хабре.
И вот я хочу опробовать очередной способ: рассказать о своих идеях и мыслях на Хабре.
+19
Синтезатор речи. Теперь и на русском
2 min
102KМеня всегда огорчало, что в Android не было синтезатора речи на русском. Изначально выбор языков был ограничен английским, испанским, французским, немецким и итальянским. Существовали отдельные коммерческие движки, а также производители могли добавить в свои устройства какой-нибудь движок с нужным языком, видимо договорившись с разработчиком. Но хотелось поддержки из коробки от самой «корпорации добра».
+24
Делаем Smart Point или «Интернет-вещь» своими руками
22 min
26KВ этой статье я опишу концепцию и пример практической реализации компактной платформы для создания решений в области домашней автоматики и Интернета Вещей.

Заинтересовашихся прошу под кат.

Заинтересовашихся прошу под кат.
+22
СС1101 под управлением PIC-контроллера или построение одноранговой сети для радиоинженера
4 min
29KПредистория
Как-то некоторое время назад я участвовал в проектировании одной сети сбора данных. Сеть использовала диапазон 869 МГц и протокол SimpliciTI. По своей структуре сеть была по сути одноранговой с центральным узлом накопления данных. Однако в сети был предусмотрен и вариант ретрансляции данных, хотя он был, скорее, вспомогательным.
Дальше прототипов дело не пошло, хотя дело поставлено было очень серьёзно, вплоть до сертификации по ЭМС.
Одной из причин неудачи было то, что штатный программист не сумел полностью овладеть управлением CC1101.
Штука в том, что пакет SimpliciTI, взятый с сайта Texas Instruments, уже имеет какие-то настройки по-умолчанию. Эти настройки далеко не оптимальны для задачи редкого сбора данных (раз в месяц) в сети, которая располагается в доме с железобетонными стенами, да ещё испытывает воздействие помех различного происхождения.
С самого начала было понятно, что параметры должны быть, скажем, вот такими, а не такими. Для установки параметров в CC1101 имеется целый ряд регистров. Это всё описано, несколько путано, но, в конце концов, после некоторых усилий осваивается.
И вот берётся программа SmartRF Studio, устанавливаются в ней нужные параметры, проверяются. После успешной проверки нужно бы эти параметры перенести в реальную аппаратуру. Для этого в приложении, использующем SimpliciTI, делаются установки в начале программы.
Но не тут-то было! После успешного старта где-то на какой-то функции из пакета SimpliciTI происходит откат к параметрам, которые устанавливались разработчиками пакета. И программист так и не нашёл, где это происходит. В частности, ему так и не удалось запустить пакеты с фиксированной длиной и FEC. А без последнего работа системы в условиях замирания сигнала и помех практически невозможна.
+14
Сайт TrueCrypt сообщает о закрытии проекта и предлагает переходить на BitLocker
5 min
300K
Разработчик TrueCrypt «David»: «Мы были счастливы, что аудит ничего не выявил. Мы усердно работали над проектом 10 лет, но ничего не длится вечно.»
Steven Barnhart: (перефразировано) разработчик считает, что форк навредит еще больше: «Исходный код в любом случае доступен, можете подглядывать» (The source is still available as a reference though). «Я спросил, и было очевидно в последнем ответе, что разработчики считают форк вредным, т.к. только они сами разбираются в коде». «Также он сказал, что никакого контакта с правительством, кроме когда ему предлагали „контракт на поддержку“, у него не было».
Разработчик TrueCrypt «David»: «Битлокер 'достаточно хорош' и Windows был основной целью разработки»
Цитируя разработчика: «Больше нет интереса».
TL;DR: «Новая» версия может только дешифровывать данные, и может содержать троян (хотя я и не нашел, но вы мне не верьте на слово). Бинарник подписан верным ключом разработчика. Все старые версии удалены, репозиторий тоже очищен.
На странице рассказывается о том, что разработка TrueCrypt была прекращена в мае этого года, после того, как Microsoft прекратила поддержку Windows XP, и что TrueCrypt более небезопасен и может содержать уязвимости.
Далее, на странице содержится подробная инструкция миграции с TrueCrypt на BitLocker.
На сайте есть также ссылки на бинарный файл TrueCrypt, которые ведут в раздел загрузок SourceForge, вместе с цифровой подписью. Этот файл подписан корректным (старым) ключом, а внутри него:
+155
Разработка коммерческого электронного устройства с нуля
6 min
84KПриветствую!
Хочу поделиться собственным опытом разработки электронного устройства. Сначала расскажу небольшую предысторию, чтобы было понятно, зачем это, собственно, нужно было мне.
Изначально мы занимались разработкой программного обеспечения для чип-тюнинга. Одна из основных задач которого — считать прошивку из ЭБУ (электронный блок управления двигателем) и записать ее обратно. Понятное дело, что для этих целей нужно каким-то образом связать компьютер и ЭБУ при помощи адаптера. Когда раньше подавляющее количество ЭБУ использовало простейший способ приема-передачи данных, достаточно было использовать простейший адаптер на транзисторах или специализированной микросхеме. Однако на сегодняшний день большинство автомобилей для «общения» своих компонентов со внешней средой используют CAN шину. Адаптер для CAN шины на транзисторах уже не соберешь, и тут однозначно нужен процессор, который будет управлять всем по определенной программе.
Так возникла первая проблема — как побороть CAN шину. Для того, чтобы не изобретать велосипед выбор сделан на использовании готового адаптера, который работает по стандарту J2534. Для тех, кто не в курсе, стандарт J2534 это стандарт, описывающий аппаратную и программную части устройства, с помощью которого можно произвести подключение к ЭБУ посредством компьютера. Разработали его американцы. Основной причиной его разработки стало законодательное закрепление возможности обновление прошивки ЭБУ не специализированным дилерским сервисом, а любым желающим. Собственно, если каждый желающий может обновить прошивку на своем телефоне, то почему он не может это сделать со своим автомобилем.
Самый доступный импортный аналог стоит в районе 200 долл. США. Как впоследствии оказалось, два одинаковых устройства, удовлетворяющие стандарту J2534, могут работать по-разному с одним и тем же программным обеспечением. Поэтому изначально пришлось привязаться к конкретному производителю и его устройству.
Хочу поделиться собственным опытом разработки электронного устройства. Сначала расскажу небольшую предысторию, чтобы было понятно, зачем это, собственно, нужно было мне.
С чего все начиналось
Изначально мы занимались разработкой программного обеспечения для чип-тюнинга. Одна из основных задач которого — считать прошивку из ЭБУ (электронный блок управления двигателем) и записать ее обратно. Понятное дело, что для этих целей нужно каким-то образом связать компьютер и ЭБУ при помощи адаптера. Когда раньше подавляющее количество ЭБУ использовало простейший способ приема-передачи данных, достаточно было использовать простейший адаптер на транзисторах или специализированной микросхеме. Однако на сегодняшний день большинство автомобилей для «общения» своих компонентов со внешней средой используют CAN шину. Адаптер для CAN шины на транзисторах уже не соберешь, и тут однозначно нужен процессор, который будет управлять всем по определенной программе.
Так возникла первая проблема — как побороть CAN шину. Для того, чтобы не изобретать велосипед выбор сделан на использовании готового адаптера, который работает по стандарту J2534. Для тех, кто не в курсе, стандарт J2534 это стандарт, описывающий аппаратную и программную части устройства, с помощью которого можно произвести подключение к ЭБУ посредством компьютера. Разработали его американцы. Основной причиной его разработки стало законодательное закрепление возможности обновление прошивки ЭБУ не специализированным дилерским сервисом, а любым желающим. Собственно, если каждый желающий может обновить прошивку на своем телефоне, то почему он не может это сделать со своим автомобилем.
Самый доступный импортный аналог стоит в районе 200 долл. США. Как впоследствии оказалось, два одинаковых устройства, удовлетворяющие стандарту J2534, могут работать по-разному с одним и тем же программным обеспечением. Поэтому изначально пришлось привязаться к конкретному производителю и его устройству.
+53
Звуковая карта как последовательный порт
6 min
17KВ современных ПК есть проблема отсутствия простых в использовании интерфейсов. Для использования USB требуется большой объем непростого кода, а для UART нужен переходник USB-COM. Если внешнее устройство несложное, то разработка интерфейса может занять больше времени, чем разработка самого устройства. В то же время во многих устройствах есть аналоговый интерфейс для аудиоустройств, который можно использовать для ввода или вывода данных без какой бы то ни было доработки. Здесь пример ввода данных с платы STM32VLDISCOVERY в ПК с ОС Windows ХР через микрофонный вход. Интерфейс не чисто цифровой, а цифро-аналоговый. Данные с платы передаются пачками из 4-х прямоугольных импульсов разной амплитуды, через ЦАП контроллера. Частота следования импульсов соответствует верхней частоте входного усилителя большинства звуковых карт – 20 кГц. Начало пачки отмечается импульсом удвоенной ширины. Следующие 3 импульса несут информацию, которая заложена в амплитуде импульса. Скорость передачи данных при 4-х разрядном кодировании амплитуды составляет примерно 45 кбит/с.
Код для прошивки STM32VLDISCOVERY:
Код для прошивки STM32VLDISCOVERY:
+34
Взламываем D-Link DSP-W215 Smart Plug. Снова
4 min
12KTranslation

Недавно, D-Link выпустил прошивку v1.02 для DSP-W215, в которой исправлен баг HNAP с переполнением буфера в my_cgi.cgi. Хоть они и быстренько убрали прошивку с сайта: «Вы можете обновить прошивку через мобильное приложение», я успел ее скачать перед моим рейсом в Мюнхен, и 8-часовой перелет предоставил мне достаточно времени для качественного анализа новой версии прошивки.
К сожалению, баг с HNAP был не единственной проблемой этого устройства. Конфигурационный файл lighttpd показывает нам, что my_cgi.cgi используется для обработки некоторых страниц, а не только HNAP-запросов:
alias.url += ( "/HNAP1/" => "/www/my_cgi.cgi",
"/HNAP1" => "/www/my_cgi.cgi",
"/router_info.xml" => "/www/my_cgi.cgi",
"/post_login.xml" => "/www/my_cgi.cgi",
"/get_shareport_info" => "/www/my_cgi.cgi",
"/secmark1524.cgi" => "/www/my_cgi.cgi",
"/common/info.cgi" => "/www/my_cgi.cgi"
)
Главная функция в my_cgi.cgi имеет два ветвления кода: один для обработки HNAP-запросов, а другой — для всего остального:

+41
Система домашнего видеонаблюдения
7 min
186KДоброго времени суток уважаемые Хабровчани! Решил поделиться с вами своей маленькой слабостью, с детства люблю все знать и за всеми наблюдать! Именно эта идея и привела меня к желанию построить свою собственную систему видеонаблюдения в рамках квартиры. Мой путь оказался несколько тернист, но обо всем по порядку.
+3
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity