Search
Write a publication
Pull to refresh
9
0.2
Send message

CAN-USB адаптер из stm32vldiscovery

Reading time15 min
Views146K


При разработке устройств с CAN-интерфейсом желательно иметь удобный инструмент для отслеживания сообщений в сети. Для RS232/485 существует множество бюджетных USB адаптеров и куча разнообразного софта, а вот для CAN мне не удалось найти недорогое готовое решение.

В то же самое время на сайтах автолюбителей находились самодельные устройства для подключения к CAN шине автомобиля. Одними из готовых проектов были USB<>CAN Bus Interface (CAN Hacker), реализованный на Atmega+SJA1000 и проект STM32-CAN-Busadapter, реализованный на STM32F105. Работают они с программой CAN Hacker, которая выглядит достаточно удобной для работы. Беглый анализ протокола команд по USB показал, что эти устройства представляются COM портом, и дальнейшее общение происходит в виде передачи команд из ASCII символов.

В закромах была найдена плата STM32VLDiscovery, которая и стала объектом испытаний. На ней мы будем повторять «STM32-CAN-Busadapter».
Что из этого получилось

Taobao официально открыт в России

Reading time1 min
Views77K
Раздел «Привет, Taobao» на AliExpress — это официальный способ для пользователей из России покупать товары, продающиеся на Taobao в Китае. Не нужно оплачивать комиссионные, доставку или искать перекупщиков. Всё так же просто, как и с другими товарами AliExpress.
t.aliexpress.com/ru
Читать дальше →

Как я автоматизировал дачу на 90%

Reading time9 min
Views138K


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

Когда мы с женой начинали строить новую дачу вместо старой (где электрика прокладывалась многими поколениями и представляла собой жуткую мешанину из проводов и распаячных коробок), то прежде всего решили, что электрика будет грамотной, а дача – умной.
Читать дальше →

Дегустация Чайки. В арсенал радио-хакера

Reading time3 min
Views17K

image


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


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


И тут до меня дошло: если нет навигации, то ведь и точного времени тоже нет! (Тут я и вспомнил старика Мюнхаузена, который тоже хотел вытащить себя самого за волосы из воды) Почти все сегодня, включая меня, еще не до конца на бытовом уровне чувствуют эту технологическую и, в то же время, принципиальную связь пространства и времени, и те беды, которые несет наплевательское к нему отношение.


Но выход, конечно же, есть. Ведь все хорошее придумано до нас.

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

select / poll / epoll: практическая разница

Reading time10 min
Views81K
При проектировании высокопроизводительных сетевых приложения с неблокирующими сокетами важно решить, какой именно метод мониторинга сетевых событий мы будем использовать. Их есть несколько и каждый хорош и плох по-своему. Выбор правильного метода может быть критически важной вещью для архитектуры вашего приложения.

В этой статье мы рассмотрим:

  • select()
  • poll()
  • epoll()
  • libevent
Читать дальше →

Wiren Board 6: снова на Хабре с новой версией контроллера для автоматизации

Reading time6 min
Views43K
Всем привет!

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


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

IGNG — инкрементальный алгоритм растущего нейронного газа

Reading time11 min
Views9.5K


При написании статьи о разработке детектора аномалий я реализовывал один из алгоритмов, который называется "Инкрементальный растущий нейронный газ".


В советской литературе российском сегменте Интернета эта тема освещена достаточно слабо, и нашлась только одна статья, да и то с прикладным применением данного алгоритма.


Итак, что же такое — алгоритм инкрементального растущего нейронного газа?

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

Написание МКЭ расчетчика в менее чем 180 строк кода

Reading time28 min
Views57K
В наши дни, МКЭ — это наверное самый распространенный метод для решения широкого спектра прикладных инженерных задач. Исторически, он появился из механики, однако впоследствии был применен к всевозможным не механическим задачам.

Сегодня имеется большое разнообразие программных пакетов, таких как ANSYS, Abaqus, Patran, Cosmos, и т.д. Эти программные пакеты позволяют решать задачи строительной механики, механики жидкости, термодинамики, электродинамики и многие другие. Сама реализация метода, как правило считается достаточно сложной и объемной.

Здесь я хочу показать, что в настоящее время, используя современные инструменты, написание простейшего МКЭ расчетчика с нуля, для двумерной задачи плоско-напряженного состояния не является чем-то очень сложным и громоздким. Я выбрал этот вид задачи потому, что это был первый успешный пример применения метода конечных элементов. Ну и конечно он являются самым простым для реализации. Я собираюсь использовать линейный, трех-узловой элемент, так как это единственный плоский элемент, в случае которого не требуется численное интегрирования, как это будет показано ниже. Для элементов более высокого порядка, за исключением операции интегрирования (которая не совсем тривиальная, но при этом ее реализация достаточно интересная) идея абсолютно такая же.

Картинка для привлечения внимания:

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

Нагрузочное тестирование в облаке Azure. Как протестировать крупный интернет-магазин в условиях, близких к реальным?

Reading time6 min
Views5.6K
В данной статье мы поделимся собственным практическим опытом, который мы приобрели при тестировании Web Apps приложения (интернет-магазина), работающего в облаке MS Azure, а также опишем, какими инструментами мы пользовались для решения этой задачи и о выводах, которые были сделаны по полученным результатам.

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

Технопорно с WebAssembly

Reading time13 min
Views10K

По просьбам трудящихся, пишу о внутреннем устройстве WebAssembly.


WebAssembly — байткод для стековой виртуальной машины. Значит, для запуска кода такой нужны интерпретатор, стек и хранилище кода. Если мы хотим взаимодействовать с внешним миром, нужен интерфейс к внешней машине, хосту. Дополнительно стандарт определяет две структуры: непрерывную память и таблицы. В версии MVP стандарта их может быть по одной штуке каждого, или не быть вовсе.


В итоге, наш технобордель выглядит так:



  • Интерпретатор
  • Интерфейс к хосту
  • Стек
  • Хранилище кода
  • Память
  • Таблица

Займёмся делом!

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

DDoS в обход Куратора: простые действия для спокойной жизни

Reading time8 min
Views20K

Недавно в Москве прошла вторая конференция по эксплуатации и администрированию информационных систем Uptime.commuinty, на которой мы тоже поделились своим опытом. У нас, как обычно, о наболевшем — про DDoS.



DDoS-атаки на Хабр начались лет десять назад и до сих пор представляют для нас неприятную проблему. Сначала были робкие попытки чуть-чуть подзалить, а сейчас для нас обычный DDoS — это порядка 30 Гбит/с. Это и не удивительно, потому что сейчас у каждой бабушки в Москве есть 50Мб. Всё по классике: одна старушка — 50, 10 старушек — 500…

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

Как Amazon использует новую систему распознавания лиц, и за что её ненавидят

Reading time9 min
Views43K


Amazon разработала новую мощную систему для распознавания лиц в режиме реального времени. Нейросетям «кормят» фото и видео, а они определяют, что (или кто) там показывается. Воспользоваться ей может любой пользователь AWS. В США с её помощью шерифы уже успешно ловят преступников, а телестанции находят знаменитостей в живых трансляциях. Но у технологии нашлись и ярые оппоненты. Которые пишут Безосу письма и призывают Amazon немедленно прекратить разработку системы, иначе последствия могут быть самыми непредсказуемыми.

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

Марвин Мински «The Emotion Machine»: Глава 5 «Воображение»

Reading time8 min
Views2.5K
Как привнести «человеческое» в технологии и как технологии помогают понять и улучшить и масштабировать «человеческое»?

В этом нам поможет суровый Марвин Мински, который своим беспощадным разумом анализирует чувства, эмоции, боль, влюбленность и сознание.

image


§5-7. Воображение


«Мы не видим вещи, как они есть. Мы видим вещи как мы их видим.»
— Анаис Нин

Когда Кэрол подбирает один из блоков, это действие кажется невероятно простым для неё: она попросту тянется к блоку, берёт его и поднимает. Она видит блок и просто начинает действовать. Кажется, что никакого «мышления» тут нет.

Однако, кажущаяся «простота» окружающего мира – это иллюзия, которая проистекает из нашей неспособности ощутить его сложность. Ибо, большая часть того, что мы видим проистекает из наших знаний и воображения. Таким образом, рассмотрим портрет Авраама Линкольна, сделанный моим старым другом Леон Хармоном – пионером в области компьютерной графики. (Слева находится портрет который я сделал из Леона)

image


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

3D лазерный сканер на Android телефоне

Reading time6 min
Views45K

Представляю вниманию DIY сканер на базе Android смартфона.

При проектировании и создании сканера, в первую очередь, интересовало сканирование крупных объектов. Минимум – фигура человека в полный рост с точность – хотя бы 1-2 мм.

Данные критерии успешно достигнуты. Успешно сканируются объекты при естественном освещении (без прямого солнечного света). Поле сканирования определяется углом захвата камеры смартфона и расстоянием, на котором лазерный луч сохраняет достаточную для детектирования яркость (днем в помещении). Это фигура человека в полный рост (1.8 метров) с шириной захвата в 1.2 метров.

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

Как показал опыт, для сканера такого типа ПО — это вторично и на него было потрачено меньше всего времени (на окончательный вариант. Не считая эксперименты и тупиковые варианты). Поэтому в статье особенностей ПО касаться не буду (Ссылка на исходные коды в конце статьи.)

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

Масштабируя TLS

Reading time17 min
Views15K


Хабр, это доклад с одного из «не главных» залов Highload++ 2016. Артём ximaera Гавриченков, технический директор Qrator Labs, рассказывает про прикладное шифрование, в том числе, в высоконагруженных проектах. Видео и презентация в конце поста — спасибо Олегу Бунину.

Приветствую! Мы продолжаем находиться на сессии про HTTPS, TLS, SSL и всё такое.
То, о чём я сейчас буду говорить — не какой-то туториал. Как говорил мой преподаватель в университете по базам данных, Сергей Дмитриевич Кузнецов: «Я не буду учить вас настраивать Microsoft SQL сервер — пусть это делает Microsoft; не буду учить вас настраивать Oracle — пусть это делает Oracle; не буду учить вас настраивать MySQL — делайте это сами».

Точно так же и я не буду учить вас настраивать NGINX — это всё есть на сайте у Игоря Сысоева. Что мы обсудим, так это некий общий взгляд на проблематику и на возможности для решения проблем, которые возникают при внедрении шифрования на публичных сервисах.

Интересная фича Grub2: загрузка из ISO-файла

Reading time3 min
Views75K
Собственно, захотелось мне посмотреть на Unity. По картинкам и видео – вроде ничего. Да вот беда. В виртуальной машине его не запустишь — 3D требует. Сам я KDEшник. Основной ОС на ноутбуке является kubuntu. Ну, думаю, можно поставить второй системой. Свободное место, вроде, есть.

Ок. Качаю образ Natty, прожигаю а вот хрен. Оказалось, не работает мой CD-ROM. Ноут уже довольно старенький. Загрузки с флешек в биосе тоже нет. После кратковременной паники было найдено решение.

Оказалось, что grub2 научился понимать формат ISO 9660 и может загружать ОС прямо из ISO-образа, расположеного на жестком диске. Как выяснилось далее, не все системы готовы к такому повороту событий. Многие по тем или иным причинам приходят в замешательство при загрузке. К счастью, Ubuntu не является одной из них.
Читать дальше →

Первая микросхема :)

Reading time5 min
Views79K

Предисловие


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

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



Без дальнейших церемоний представляю первую интегральную схему (ИС), изготовленную литографическим способом в домашних (гаражных) условиях — PMOS-чип двойного дифференциального усилителя Z1.
Читать дальше →

Мифы о кэше процессора, в которые верят программисты

Reading time6 min
Views76K
Как компьютерный инженер, который пять лет занимался проблемами кэша в Intel и Sun, я немного разбираюсь в когерентности кэша. Это одна из самых трудных концепций, которые пришлось изучить ещё в колледже. Но как только вы действительно её освоили, то приходит гораздо лучшее понимание принципов проектирования систем.

Вы можете удивиться: зачем же разработчику ПО думать о механизме кэширования в CPU? Отвечу. С одной стороны, многие понятия из концепции когерентности кэша непосредственно применимы в распределённых системах и на уровнях изоляции СУБД. Например, представление реализации когерентности в аппаратных кэшах помогает лучше понять разницу в моделях согласованности (консистентности) — отличие строгой согласованности (strong consistency) от согласованности в конечном счёте (eventual consistency). У вас могут появиться новые идеи, как лучше обеспечить согласованность в распределённых системах, используя исследования и принципы из аппаратного обеспечения.

С другой стороны, неправильные представления о кэшах часто приводят к ложным утверждениям, особенно когда речь идёт о параллелизме и состоянии гонки. Например, часто говорят о трудности параллельного программирования, потому что «у разных ядер в кэшах могут быть разные/устаревшие значения». Или что квалификатор volatile в языках вроде Java нужен, чтобы «предотвратить локальное кэширование общих данных» и принудительно «читать/записывать только в основную память».
Читать дальше →

DevConf: переход Uber с PostgreSQL на MySQL

Reading time20 min
Views56K
18 мая 2018 года в Digital October состоится DevConf 2018. И мы решили пересказать некоторые интересные доклады с прошлогодней конференции. Там был доклад с несколько холиварным заголовком: "О чём молчит политрук: к дискуссии о переходе Uber с PostgreSQL на MySQL". В нем разработчик MySQL Алексей Копытов рассмотрел различия InnoDb и PostgreSQL на самом низком уровне, включая организацию данных, памяти и репликаций. Предлагаем вашему вниманию краткий пересказ доклада.


История вопроса


Uber перешел с MySQL на Postgres в 2013 году и причины, которые они перечисляют, были во-первых: PostGIS — это геоинформационное расширение для PostgreSQL и хайп. То есть, у PostgreSQL есть некий ореол серьезный, солидная СУБД, совершенный, без недостатков. По крайней мере, если сравнивать с MySQL. Они мало что знали о PostgreSQL, но повелись на весь этот хайп и перешли, а через 3 года пришлось переезжать обратно. И основные причины, если просуммировать их доклад — это плохие эксплуатационные характеристики при эксплуатации в production.
Читать дальше →

Знакомство с облаком: как работают динамические методы распределения трафика

Reading time4 min
Views6.4K
В одном из наших прошлых материалов мы рассказывали про статические методы балансировки нагрузки в облаке IaaS-провайдера. Сегодня на очереди динамические методы: «пчелиный» и «муравьиный» алгоритмы, а также подход Biased Random Sampling.

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

Information

Rating
4,171-st
Registered
Activity