Открыть список
Как стать автором
Обновить
9
Карма
0
Рейтинг

Пользователь

Операционные усилители: 10 схем на (почти) все случаи жизни

СхемотехникаПроизводство и разработка электроникиDIY или Сделай самЭлектроника для начинающих
Всем привет!

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


Читать дальше →
Всего голосов 139: ↑137 и ↓2 +135
Просмотры142.4K
Комментарии 54

Выбор мобильных устройств: пошаговая инструкция для начинающих QA. Часть II

Разработка мобильных приложенийТестирование мобильных приложенийАналитика мобильных приложенийСтатистика в IT
Tutorial
Только за месяц этот вопрос был задан на трех митапах по тестированию, естественно в том формате ответ был очень общий. Информации совсем немного. Задача требует работы со статистикой, а это в основные обязанности тестировщика не входит. Я со статистикой работала плотно, есть что рассказать, чем поделиться и, что не менее важно, сейчас у меня есть время, а такая публикация требует его немало. Я ничего не продаю, я просто делюсь своими знаниями ).

Просьба к опытным QA mobile поделиться своим опытом в комментариях. Это не займет много времени. А новичкам это нужно.

В первой части мы заглянули в готовый список и прошли четыре первых шага: попытались получить свою статистику, проанализировали приложение и ЦА, подготовили шаблон требований/характеристик, изучив статистику производителей. И отдельно подумали нужен ли нам планшет(ы).

Во второй переходим к выбору конкретных моделей, попутно изучив лидеров и общие тенденции рынка.

Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры7.6K
Комментарии 6

Уязвимость Use-After-Free

Блог компании OTUSИнформационная безопасностьРеверс-инжиниринг
Перевод
Привет, хабр! В преддверии старта продвинутого курса «Реверс-инжиниринг» мы подготовили для вас еще один интересный перевод. Начнем!



Предварительные требования:

  1. Уязвимость Off-By-One
  2. Понимание работы malloc в glibc

Конфигурация виртуальной машины: Fedora 20 (x86).

Что такое Use-After-Free (UaF)?


Баг Use-After-Free возникает если указатель кучи продолжает использоваться уже после ее освобождения. Такая уязвимость может повлечь за собой выполнение производного кода.
Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры2.9K
Комментарии 6

Издатель/подписчик для распределённых отказоустойчивых бортовых систем реального времени в 1500 строк кода

Системное программированиеРазработка робототехникиПрограммирование микроконтроллеровРобототехникаТранспорт

Сап, котятки.


Я пришёл рассказать о проекте UAVCAN — новом сетевом стандарте для организации взаимодействия узлов и компонентов современных транспортных средств с высоким уровнем автономности/автоматизации. Название является акронимом от Uncomplicated Application-level Vehicular Computing And Networking (несложные бортовые сети и коммуникации уровня приложения).


В этой публикации объясняется текущее положение дел и тренды в области сложных бортовых систем, существующие и грядущие проблемы, как мы их решаем и каких успехов добились. Во второй части наши коллеги из Университета Иннополис подробно осветят практическую сторону внедрения UAVCAN на примере конкретных проектов.



Конъюнктура


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


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

Ну и что?
Всего голосов 21: ↑21 и ↓0 +21
Просмотры9.2K
Комментарии 16

JAMstack: Как создать свой блог используя Gatsby + Contentful + Netlify

CMSGitHubReactJSКонтент-маркетинг
Из песочницы


Вы уже слышали о новом подходе JAMstack? Возможность писать веб-приложения на любимом фреймворке, управлять контентом из админ панели, а на выходе получать полностью валидные HTML-страницы построенные согласно с самыми последними рекомендациями SEO, PWA и a11y.


Интересно? Тогда вот список рассматриваемых вопросов в этой статье:


  • Что это за новый стек и зачем он нужен?
  • Как запустить базовое приложение используя Gatsby?
  • Работа с Contentful и создание первой порции данных
  • Как связать Contentful и Gatsby используя GraphQL?
  • Настроить автоматический деплоймент используя Netlify
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры29.1K
Комментарии 2

Делаем ST-Link V2.1 из китайского ST-Link V2

Программирование микроконтроллеровDIY или Сделай самЛайфхаки для гиковЭлектроника для начинающих
Из песочницы
Tutorial
Привет, Хабр!

В данной статье расскажу как модифицировать ST-Link V2 до ST-Link V2.1.

Возможно для кого-то это не будет новостью, но особой инфы по данной теме в инете не нашел.

Кому интересно — прошу под кат.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры75.9K
Комментарии 102

Практическое функциональное программирование

Блог компании SkillFactoryПрограммированиеФункциональное программированиеУчебный процесс в IT
Перевод
image

Текст статьи взят из презентации, которую я показывал в LinkedIn в2016 году. В презентации была предпринята попытка объяснить функциональное программирование без использования таких понятий, как «монады», «неизменность» или «побочные эффекты». Вместо этого она фокусируется на том, как размышления о композиции могут сделать вас лучшим программистом, независимо от того, какой язык вы используете.

40 лет назад, 17 октября 1977 года, премия Тьюринга была вручена Джону Бэкусу за его вклад в разработку систем программирования высокого уровня, прежде всего языка программирования Fortran. Всем лауреатам премии Тьюринга предоставляется возможность выступить с лекцией по выбранной ими теме в течение года, в котором они получили премию. Как создатель языка программирования Фортран, можно было ожидать, что Бэкус выступит с лекцией о преимуществах Фортрана и будущих разработках в этом языке. Вместо этого он прочитал лекцию под названием «Можно ли освободить программирование от стиля фон Неймана»? в котором он критиковал некоторые из основных языков того времени, включая Фортран, за их недостатки. Он также предложил альтернативу: функциональный стиль программирования.
Читать дальше →
Всего голосов 17: ↑14 и ↓3 +11
Просмотры6.5K
Комментарии 30

Особенности применения языков программирования С и С++ при разработке ПО, связанного с функциональной безопасностью

Промышленное программирование
Из песочницы
image

Крис Хоббс (Chris Hobbs) в своей фундаментальной работе «Embedded Software Development for Safety-Critical Systems» [1] приводит распространенное среди программистов мнение о том, что накладывать ограничения на языки программирования, это как заказывать Пикассо создание картины, при этом запрещать ему использовать желтый цвет. Тем не менее, сложно представить себе предприятие, которое серьезно занимается разработкой программного обеспечения для систем ответственного назначения, у которого в писанных или неписанных стандартах не было бы указаний о том, какой язык программирования применять и, мало того, как его применять.

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

Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры7.1K
Комментарии 4

Маленькие задачи по физике

МатематикаФизика
Приведу несколько задач, в основном из физики. Мне они нравятся. Надеюсь они понравятся и Вам.

Забудем о черных дырах, темной энергии и материи; забудем о коте Шредингера, большом взрыве и эволюции Вселенной; забудем о струнах и суперструнах; и даже о фракталах забудем. В этих темах, как и в политике, большинство считает себя возможным высказаться. И высказываются. И много говорилось и говорится дельного, а еще больше говорилось и говорится путаницы и просто нелепицы. Каюсь, к этому и я приложил руку. А давайте вернемся к простоте классической физики и к ее понятным задачам. Иногда полезно спуститься с небес на землю.

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

Большинство задач, так или иначе, обсуждалось в Internete. Но время идет и приходят новые поколения и, может быть, для них задачи будут в новинку.
Читать дальше →
Всего голосов 52: ↑44 и ↓8 +36
Просмотры24.2K
Комментарии 108

Как я отказался от вычисления квадратного корня

AssemblerАлгоритмы
Из песочницы


Очень часто при цифровой обработке сигналов необходимо вычислить длину вектора, обычно это делается по формуле A=SQRТ(X^2+Y^2). Здесь возвести в квадрат значение не сложно, но операция вычисления квадратного корня не является простой операцией, особенно для микроконтроллеров. Кроме того, алгоритмы вычисления корня выполняются не стабильное время, и для алгоритмов, в которых таких вычислений много, становится сложно прогнозировать время, необходимое для вычислений.

С такой задачей столкнулся и я. О том, как я отказался от процедуры вычисления корня, читайте ниже.
Читать дальше →
Всего голосов 126: ↑119 и ↓7 +112
Просмотры45.4K
Комментарии 93

Lua на STM32

Блог компании EmboxOpen sourceСистемное программированиеLuaПрограммирование микроконтроллеров
Привет!

Иногда хочется быстро что-то попробовать на микроконтроллере, запрограммировать маленький работающий прототип какой-то идеи. Для этих целей, как известно, хорошо подходят скриптовые языки. В этой статье я хочу рассказать, как с помощью Embox запустить интерпретатор Lua (cтандартный, не eLua) на STM32. Для демонстрации помигаем светодиодом по сети с помощью библиотеки luasocket, а также немного поработаем с http.

Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Просмотры4.4K
Комментарии 0

Самодельный автопилот на одноплатном компьютере (SBC) Tinker board и Arduino DUE

Разработка под ArduinoРазработка на Raspberry PiDIY или Сделай сам
Из песочницы
image

Идея постройки автопилота появилась примерно 2 года назад. Хотелось создать полностью автономный аппарат способный добраться из точки А в точку Б с возможностью ухода от столкновений и облёта преград, способного преодолевать зоны глушения или отсутствия спутникового сигнала. Также хотелось иметь удобное и простое управление с помощью мышки как это реализовано в играх (стратегии) управляя движением ЛА с помощью точек. Начинать всё пришлось с нуля, как и эту статью поэтому если есть ошибки напишите об этом в комментариях. Начну по порядку.

Читать дальше →
Всего голосов 32: ↑31 и ↓1 +30
Просмотры21K
Комментарии 134

Продолжение участия (и победы) в Russian AI Cup 2019

Спортивное программированиеАлгоритмыИскусственный интеллект
Привет всем, меня зовут Андрей Токарев, и снова я бы хотел поделиться опытом участия и победой в Russian AI Cup.

Если кто не знает, Russian AI Cup (далее РАИК) это чемпионат по программированию искусственного интеллекта, где мы (точнее наша программа) должны управлять одним или несколькими персонажами (юнитами), которые соревнуются между собой. В этом году игра представляла собой 2-х мерный платформер, напоминающая компьютерные игры начала 90-х, а юниты являлись вооруженными человечками, которые должны были убивать таких же человечков противника. Более детально об этом можно почитать в анонсе



В этот раз заседания не было когда пришла повестка о начале РАИК-а, так что перейдем сразу к сути.

Читать дальше →
Всего голосов 30: ↑28 и ↓2 +26
Просмотры7.4K
Комментарии 3

Лёгкий способ сделать крохотный USB-хаб для Raspberry Pi

Разработка на Raspberry PiПериферияDIY или Сделай сам
Перевод


Перевод статьи с сайта самодельщика Retrocution

Бывало у вас такое, что вам не хватает USB-портов при создании проекта на Raspberry Pi Zero? Притом внешние USB-хабы или HATS не подходили из-за ограничений по размеру? Если да, или если вы просто ищете себе интересный проект с пайкой деталей, в результате которого получится нечто полезное, то этот проект – для вас!


Читать дальше →
Всего голосов 25: ↑21 и ↓4 +17
Просмотры17.9K
Комментарии 30

Сознание и существование. Квантовая механика без парадоксов

Научно-популярноеФизикаМозгКвантовые технологии

Является ли эксперимент с котом Шредингера парадоксом?


Профессор поднял голову от стола и говорит:

– Здравствуй, мальчик. Ты зачем пришёл?

– Я хочу у вас про кота спросить.

– А что про кота?

– Допустим, у вас был кот …

Эдуард Успенский «Дядя Фёдор, пёс и кот»

Квантовая суперпозиция и роль наблюдателя в квантовой физике


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


Например, ядро атома за которым не производится наблюдение

Читать дальше →
Всего голосов 31: ↑9 и ↓22 -13
Просмотры15.7K
Комментарии 52

ARM MBED OS. Работа с произвольным МК STM32 под PlatformIO

Программирование микроконтроллеров
imageКогда в январе сего года я писал материал о файловой системе LittleFS (интегрированной в состав arm mbed os), то обещал в скорейшем времени описать создание проекта с arm mbed os для произвольного микроконтроллера STM32. Как известно, онлайн IDE от ARM (а точнее, выделенного подразделения Arm mbed) поддерживает, во-первых, строго определенное число отладочных плат, и число их невелико; во-вторых, экспортирует онлайн-примеры, на базе которых можно строить какие-то свои проекты, только для наиболее известных IDE: ARM, uVision KEIL и IAR. Более того, некоторые примеры не экспортируются вовсе. То есть, доступны для экспорта или только варианты для IAR, или только для KEIL, и так далее. Так что, как в то время показалось, научиться “прикручивать” arm mbed os к любому МК было бы не лишним вовсе.

Однако, жизнь вносит свои коррективы в любые планы, и работать в этом направлении длительное время не получалось. Но вопрос оставался открытым, и теперь, по прошествии значительного времени, я возвращаюсь к тематике.
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры24.7K
Комментарии 7

Краткие заметки embed-программиста: дублирование секции в памяти микроконтроллера

CПрограммирование микроконтроллеров
Tutorial

Начальные условия


Есть устройство на базе микроконтроллера (для примера будет взят stm32f405rgt6). При включении оно настраивает свою периферию на основе предпочтений пользователя или настроек по-умолчанию. Пользователь может менять настройки во время работы устройства (как правило, только во время интеграции в комплекс) через один из возможных интерфейсов (CLI меню или утилита установки параметров работы, работающая через бинарный протокол). После установки параметров пользователь сохраняет настройки специальной командой (так же через один из возможных интерфейсов).
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры4.9K
Комментарии 50

Коты в коробочках, или Компактные структуры данных

Блог компании Mail.ru GroupПрограммированиеАлгоритмыМатематика
🔥 Технотекст 2020 🔥 Технотекст 2020

image


Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
[səkˈsɪŋkt]?

Читать дальше →
Всего голосов 127: ↑127 и ↓0 +127
Просмотры23.9K
Комментарии 42

Виртуальные функции в микроконтроллерах — темная сторона

C++Программирование микроконтроллеровРазработка под Arduino
Знакома ситуация, когда место на флэше закончилось, и требуется впихнуть невпихуемое, пожертвовав чем то нужным? Попробуем вместо этого пожертвовать ненужным, оно прячется в довольно неожиданных местах.
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры6.5K
Комментарии 59

Освободи свой Android

Информационная безопасностьРазработка под AndroidСмартфоныЛайфхаки для гиковСотовая связь


Некоторое время назад на Хабре вышла статья замечательной девушки fur_habr о проблемах безопасности, приватности и конфиденциальности мобильных коммуникаций и о путях решения этих проблем на платформе Android.

В момент выхода этой статьи я как-то не обратил на неё внимания — тема смартфонов и Андроида мне вообще не очень интересна. Потом, уже через несколько месяцев, я вновь случайно наткнулся на эту статью, вчитался, и проникся идеями, содержащимися в ней. Действительно, почему бы не стать хозяином своему собственному смартфону?

Вашему вниманию предлагается отчёт об эксперименте, проведённым мной по мотивам инструкций из вышеозначенной статьи и о том, что из всего этого может получиться.
Читать дальше →
Всего голосов 123: ↑115 и ↓8 +107
Просмотры121.6K
Комментарии 192

Информация

В рейтинге
3,872-й
Зарегистрирован
Активность