Как стать автором
Обновить
0
0
n4k4m1sh1 @n4k4m1sh1

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

Отправить сообщение

Оптимизация энергопотребления STM32: практическое руководство

Время на прочтение19 мин
Количество просмотров55K
Привет, Хабр!

В сети довольно много статей про работу микроконтроллеров STM32 в энергоэффективных устройствах — как правило, это устройства на батарейном питании — однако среди них прискорбно мало разбирающих эту тему за пределами перечисления энергосберегающих режимов и команд SPL/HAL, их включающих (впрочем, та же претензия относится к подавляющему большинству статей про работу с STM32).

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

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



Практический результат должен выглядеть примерно так, как на фотографии выше (и да, о применимости мультиметров и других средств измерения к подобным задачам тоже поговорим).
Читать дальше →
Всего голосов 95: ↑92 и ↓3+89
Комментарии95

Переезд с Ubuntu на Windows 10, Hyper-V и избавление от железного маршрутизатора

Время на прочтение5 мин
Количество просмотров58K
Купив новый ноутбук, я с сожалением заметил, что моя любимая Ubuntu больше не поддерживает работу сенсоров и вентиляторы постоянно жужжат, делая работу не комфортной. В тоже время, если загрузить предустановленную Windows 10 Pro с оригинального жесткого диска, то наступает приятная для уха тишина. Пока на улице (и дома) было прохладно, было терпимо. Но как наступила жара, терпению пришел конец. Было решено мигрировать на Windows.
Читать дальше →
Всего голосов 60: ↑48 и ↓12+36
Комментарии187

Еще одна причина, почему тормозят Docker контейнеры

Время на прочтение5 мин
Количество просмотров33K

В последнем посте я рассказывал о Kubernetes, о том, как ThoughtSpot использует его для собственных нужд по поддержке разработки. Сегодня хотелось бы продолжить разговор о короткой, но от того не менее интересной истории отладки, которая произошла совсем недавно. Статья базируется на том, что containerization != virtualization. К тому же наглядно показывается, как контейнеризированные процессы конкурируют за ресурсы даже при оптимальных ограничениях по cgroup и высокой производительности машины.


image

Читать дальше →
Всего голосов 64: ↑57 и ↓7+50
Комментарии13

Как мы выстрелили себе в ногу и пытались разобраться, из чего именно

Время на прочтение5 мин
Количество просмотров8.6K

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


В нашей компании есть метрика, созданная для предотвращения больших факапов на виртуальном хостинге. На каждом сервере виртуального хостинга расположен тестовый сайт на WordPress, к которому периодически идут обращения.


image
Так выглядит тестовый сайт на каждом сервере виртуального хостинга


Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии20

Статический анализ мобильных приложений

Время на прочтение3 мин
Количество просмотров9K


Одним из этапов тестирования мобильного приложения — это статический анализ. Статический анализ приложения — это анализ приложения без выполнения каких либо функций приложения. Наиболее удобным для меня из open source фреймворков есть MobSF. Кому интересно, добро пожаловать под кат.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии1

Взломщики генома продемонстрировали, что ни одна ДНК уже не будет анонимной

Время на прочтение6 мин
Количество просмотров18K

В 2013 году молодой специалист по вычислительной биологии, Янив Эрлих, шокировал исследовательское сообщество, показав, как можно раскрыть личности людей, перечисленных в анонимной генетической базе данных, используя только соединение с интернетом. Регуляторы отреагировали на это, ограничив доступ к наборам анонимных биомедицинских генетических данных. Представитель Национальных институтов здоровья сообщил тогда: «Шансы на то, что это случится, для большинства людей малы, хотя и не нулевые».

Перенесёмся через пять лет, и мы обнаружим, что количество информации о ДНК, хранящейся в цифровых базах, увеличился взрывообразно, и этот рост не собирается замедляться. Потребительские компании вроде 23andMe и Ancestry составили генетические профили на более 12 млн людей, согласно недавним оценкам. Пользователи, скачавшие свою информацию, могут по желанию добавить её на публичные генеалогические сайты, например, GEDmatch, приобретший в этом году дурную славу благодаря своей роли в наводке полиции на подозреваемого в деле «убийцы Золотого штата».
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии54

ArduPilot для новичков. Установка и настройка на BeagleBone Blue

Время на прочтение12 мин
Количество просмотров37K
Мы с командой (к которой Вы можете присоединиться) единомышленников с Хабра разрабатываем робота для сбора мячей для гольфа на driving range. Это узкоспециализированный сервисный робот, поэтому мы планируем одновременно разработать так же единый программно-аппаратный комплекс, который в дальнейшем можно было бы использовать как основу для других сервисных роботов и UGV.



В прошлом посте мы описали, почему мы остановились на этом софте. При настройке нашего проекта мы использовали информацию из статьи. Собственно, здесь представляем перевод данного краткого руководства, возможно, для кого-то это окажется полезным и поможет Вам сделать своего первого или очередного робота.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии0

Так что же такое pod в Kubernetes?

Время на прочтение6 мин
Количество просмотров78K
Прим. перев.: Эта статья продолжает цикл материалов от технического писателя из Google, работающего над документацией для Kubernetes (Andrew Chen), и директора по software engineering из SAP (Dominik Tornow). Их цель — доступно и наглядно объяснить основы организации Kubernetes. В прошлый раз мы переводили статью про high availability, а теперь речь пойдет про такое базовое понятие в Kubernetes, как pod.



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

Pods (Поды) — базовые строительные блоки Kubernetes, однако даже опытные пользователи Kubernetes не всегда могут объяснить, что же это такое.

Данная публикация предлагает лаконичную мысленную модель, которая проливает свет на определяющие характеристики pod'ов Kubernetes. Ради этой краткости пришлось опустить некоторые другие особенности Pod'ов, такие как liveness и readiness probes, разделение ресурсов (включая появившееся недавно namespace sharingприм. перев.), работу с сетью.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии9

История о том, как запустить эмулятор Android или сэкономить на процессоре intel

Время на прочтение2 мин
Количество просмотров78K
Здравствуйте! Хочу поделиться решением одной проблемы. Как запустить эмулятор на amd-шном процессоре на Windows 10, используя WHPX.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии23

Делаем собственный имплант для электроники

Время на прочтение9 мин
Количество просмотров18K


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

Через несколько дней журнал Bloomberg выпустил статью с дополнительными доказательствами. Вот что конкретно подогрело наш интерес:
Легальный сервер отправлял сообщения одним способом, имплант – другим, но казалось, что весь трафик происходит от одного доверенного сервера.

Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии2

DevOps с Kubernetes и VSTS. Часть 2: Облачная история

Время на прочтение16 мин
Количество просмотров5.9K
Продолжение истории про Kubernetes, контейнеры и организацию CI/CD пайплайна. Наконец-то появляется облако Azure и Visual Studio Team Services. Интересно, что CI/CD пайплайн VSTS использует для работы с k8s кластером kubectl, поэтому развёртывать приложение можно не только в Azure Container Services, но и в любой другой инстраляции Kubernetes.



Читайте перевод второй части статьи DevOps с Kubernetes и VSTS.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

Советы по CSS, которые вы вряд ли найдете в самоучителях

Время на прочтение7 мин
Количество просмотров51K
Существуют определенные правила CSS, которые можно найти в любом учебнике. Но есть также правила CSS, которые вы не найдете в пособиях, но столкнетесь с ними, как только начнете писать код. Я уверен, вы уже разобрались в том, как выровнять элемент по вертикали или создать сложный макет. Мы не будем об этом говорить.

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



Ниже изложено то, чему руководства по CSS меня не научили.
Всего голосов 41: ↑37 и ↓4+33
Комментарии24

[в закладки] PDF-версия руководства по Node.js и новое руководство по JavaScript

Время на прочтение2 мин
Количество просмотров44K
Недавно мы опубликовали серию материалов, представляющую собой перевод руководства по Node.js. В первой публикации мы интересовались мнением аудитории о целесообразности перевода этого руководства и говорили, что планируется подготовить его PDF-версию.

image


PDF-версия документа состоит более чем из 120 страниц, содержит оглавление, немного картинок и всё необходимое форматирование. Просто закидывайте файлик в читалку и готово. Или в папочку с литературой. Или… решать вам.

Скачать PDF-версию [ 1.8 Мб ]



Сегодня мы хотим представить вашему вниманию новое руководство того же автора, посвящённое JavaScript.

Вот краткий перечень вопросов, которые оно раскрывает:
  • Общая характеристика языка и его стандартизация
  • Особенности стандартов ES6, ES7, ES8, ES9
  • Оформление кода, руководства по стилю
  • Лексическая структура языка
  • Переменные
  • Типы данных
  • Выражения
  • Логические выражения
  • Прототипное наследование
  • Классы
  • Исключения
  • Функции и замыкания
  • Массивы
  • Циклы
  • События
  • Асинхронное программирование
  • Таймеры
  • Строгий режим
  • Математические вычисления
  • Модули

Мы планируем это руководство перевести, но, прежде чем приняться за работу, хотели бы предложить вам поучаствовать в небольшом опросе
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии11

Знакомство с Azure DevOps

Время на прочтение4 мин
Количество просмотров54K
Вышел Azure DevOps! Сегодня мы кратко расскажем об этой новой платформе, ее решениях, процессе перехода с Visual Studio Team Services и об использовании в реальных проектах. Присоединяйтесь!

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

Пишем CLI на NodeJS

Время на прочтение4 мин
Количество просмотров8.1K


Добрый вечер всем.


Возникла задача написать свой immersive CLI на node.js. Ранее для этой цели использовал vorpal. В этот раз захотелось обойтись без лишних зависимостей и, помимо этого, рассматривал возможность по-другому принимать аргументы команд.


С vorpal команды писались следующим образом:


setValue -s 1 -v 0

Согласитесь, каждый раз писать -s — не очень удобно.


В конце концов, команда преобразовалась в следующую:


set 1: 0

Каким образом это можно реализовать — под катом

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии3

Функции высшего порядка в JavaScript

Время на прочтение7 мин
Количество просмотров67K
Если вы занимаетесь изучением JavaScript, то вы, наверняка, сталкивались с понятием «функция высшего порядка» (Higher-Order Function). Может показаться, что это что-то очень сложное, но, на самом деле, это не так.

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



Для того, чтобы в полной мере понять эту концепцию, вам сначала надо разобраться с понятием функционального программирования (Functional Programming) и с тем, что такое функции первого класса (First-Class Functions).

Материал, перевод которого мы публикуем, предназначен для начинающих, он направлен на объяснение концепции функций высшего порядка, и на демонстрацию того, как пользоваться ими в JavaScript.
Читать дальше →
Всего голосов 47: ↑33 и ↓14+19
Комментарии8

Конференция BLACK HAT USA. Ботнет из миллиона браузеров. Часть 2

Время на прочтение11 мин
Количество просмотров4.2K
Конференция BLACK HAT USA. Ботнет из миллиона браузеров. Часть 1

Мэтт Йохансон: сейчас я покажу, как вводить этот код. Существует множество рекламных сетей, но мы выбрали эту, потому что она позволяет нам делать то, что мы хотим.



Вы можете выбрать изображение баннера достаточно большого размера, вставить его сюда и присвоить ему URL, так, чтобы после нажатия на баннер пользователь переходил на нужный сайт. Владельцы этой рекламной сети предоставляют опцию HTML JavaScript, это звучит очень хорошо.
Мы начали с того, что показано в верхней части слайда и должны были пойти через весь процесс утверждения, что было, наверное, самое сложное в нашем исследовании. Это произошло не по тем причинам, о которых вы подумали, а потому, что они не очень хорошо представляют значение JavaScript и особо об этом не заботятся. На самом деле они заботились о том, чтобы объявление выглядело красиво и работало как реклама, так что я не мог продолжать идти нашим невидимым путём и просто разметить где-то на заднем плане наш мистический код JavaScript.

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



Например, один раз почтовое приложение раскрыло теги скриптов, весь код JavaScript исчез, и мне пришлось его переместить. Пришлось объяснять им, почему здесь нужно поставить меньше на 1 знак, а там на 1 знак больше, после чего они сообщили, что объявления не отображаются должным образом, в общем, это было весело.
Всего голосов 17: ↑13 и ↓4+9
Комментарии3

Hello World для получения данных с Bluetooth (BLE) устройства через C#

Время на прочтение4 мин
Количество просмотров30K
Добрый день.

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


Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии23

Pattern matching в C# 7

Время на прочтение7 мин
Количество просмотров33K
В C# 7 наконец-то появилась долгожданная функция под названием «сопоставление с образцом». Если вы знакомы с функциональными языками, такими как F#, то эта функция в том виде, в котором она существует на данный момент, может вас слегка разочаровать. Но даже сегодня она способна упростить код в самых разных случаях. Подробнее под катом!

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии9

Что записано в файле .ssh/known_hosts

Время на прочтение5 мин
Количество просмотров63K

Каждый раз, когда мы подключаемся по протоколу ssh к серверу, ssh клиент проверяет совпадает ли публичный ключ для этого сервера с тем, который был прошлый раз (по крайней мере так рекомендует делать стандарт ssh). В OpenSSH список известных ключей серверов хранится в файле known_hosts. Под катом коротко о том, что и как конкретно там хранится.

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии15
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность