Рубрика «модули»

Компилятор WebAssembly, который помещается в один твит - 1

▍ Введение

Наш первый «компилятор WebAssembly в твите» имел длину 269 байт; с тех пор мы смогли снизить её всего до 192 байтов.

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

let c=(b,l)=>WebAssembly.instantiate(new Int8Array(
[,97,115,109,1,,,,1,5,1,96,,1,127,3,2,1,,7,4,1,,,,10,
l=(b=b.split` `.flatMap(t=>t>-1?[65,t]:107+'-*/'.indexOf(t)))
.length+4,1,l-2,,...b,11]))

А вот пример его использования:

(await c('11 11 1 - + 4 * 2 /')).instance.exports['']()

Но это не просто хитрый трюк — если вы начнёте разбираться, как работает этот код, то на удивление много узнаете о WebAssembly! В этом посте мы объясним, как это всё работает, пошагово деобфусцируя код.Читать полностью »

Модули INA226: действительно ли «хорошие» хороши, а «плохие» плохи? - 1

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

В моём распоряжении оказались несколько модулей INA226, так называемых «плохих» и «хороших» по той же классификации из интернета. Сегодня мы их протестируем и посмотрим что же они выдают на самом деле и можно ли их вообще использовать для измерения тока и напряжения в своих проектах.

А заодно попытаемся установить, что же за микросхемы установлены в этих модулях.
Читать полностью »

Закон распределения делителей числа (расширенная версия) - 1

В арифметике известны элементарные действия с числами (+), (–), (×), (/) и др., использование которых при заданных исходных данных дает нам возможность получать определенные результаты: сумму, разность, произведение, частное. Обратное действие с результатами в качестве исходных данных возможно далеко не всегда. Например, возведение в третью степень числа 7 3 = 343, Читать полностью »

Прим. перев.: системный архитектор Avery Pennarun, создавший VPN-решение Tailscale на базе WireGuard, размышляет об отличиях монолитов с модулями от микросервисов. Он рассказывает об эволюции подхода к модульности вообще и о том, почему изоляция до сих пор далека от совершенства, а также делится своим мнением о том, когда проводить границы между сервисами рационально.

В последнее время меня часто спрашивают, в каких случаях переход на микросервисы — хорошая затея. В статье «Systems design explains the worldЧитать полностью »

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

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

С++20Читать полностью »

Псс, парень, не хочешь сделать модуль для Flipper Zero? - 1

У Flipper Zero на боку есть отверстия GPIO под стандартную гребенку 2.54 мм, к которым выведены ноги микроконтроллера. Там есть аппаратный SPI, I2C, UART и много другой периферии, доступной в нашем чипе STM32. Эти контакты можно использовать для подключения к сторонним устройствам по промышленным протоколам. На GPIO выведено питание 3.3V и 5V, чтобы можно было питать подключенное устройство сразу от Флиппера.

Подобно Arduino, для Флиппера можно изготовить железные модули расширения с разными интересными функциями. Но в отличие от Arduino, где модули (шилды) это просто голые платы, модули для Флиппера можно сразу сделать продолжением корпуса.

Мы приглашаем разработчиков сделать собственные модули для Флиппера и заработать на этом. Если вы сделаете свой готовый модуль, мы будем его рекламировать вместе с Флиппером во всех рассылках и на нашем сайте. При этом вы можете продавать его самостоятельно, мы не будем требовать никакой комиссии и отчислений.
Читать полностью »

Node.js 13.2.0 идет с поддержкой ECMAScript модулей, известных по своему синтаксису import и export. Ранее эта функциональность была за флагом --experimental-modules, который больше не требуется. Однако, реализация все еще экспериментальная и может меняться.

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

Читать полностью »

Часть I. Дроби
Часть II. Модули

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

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

Рассмотрим метод оценок при решении неравенств.

Предположим, что цена за одну единицу товара может колебаться в пределах от 5 до 10 RUB. Дать оценку сверху означает определить максимальное значение, которое может принимать искомая величина. Для двух единиц товара, цена за который не превышает 10 оценка сверху составит 10+10=20.

Рассмотрим задачу из задачника профильной направленности М.И. Башмакова
37. Известны оценки для переменных $ x $ и $ y: 0<x<5, 2<y<3.$

Дайте оценки сверху для следующих выражений:
1. $ 2x+3y $
2. $ xy $

Указание к решению задач 5 и 6

Для оценки дробных выражений необходимо воспользоваться следующим свойством числовых неравенств:

  • Если $a<b$ и оба числа положительны, то $ frac{ 1 }{a}>frac{ 1 }{b}$

5. $ frac{ 1 }{y} $
6. $ frac{ x }{y} $

8. $ x-y $
9. $ 3x-2y $

Ответы

1. $ 2x+3y<19 $
5. $ frac{ 1 }{y} < frac{ 1 }{2} $
9. $ 3x-2y<11 $

Читать полностью »

Аспектно-ориентированное программирование (АОП) — это парадигма программирования являющейся дальнейшим развитием процедурного и объектно-ориентированного программирования (ООП). Идея АОП заключается в выделении так называемой сквозной функциональности. И так все по порядку, здесь я покажу как это сделать в Java — Spring @AspectJ annotation стиле (есть еще schema-based xml стиль, функциональность аналогичная).

Выделении сквозной функциональности

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

Join point

Читать полностью »

В эту пятницу состоялся релиз Go 1.11. Ключевые вещи релиза — экспериментальная поддержка WebAssembly, а также новая концепция Модулей, которые призваны стать стандартом распространения кода.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js