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

Команда Wasmtime перешла в Fastly в рамках работы Bytecode Alliance

Open source *Системное программирование *API *IT-компании WebAssembly *
image

Bytecode Alliance, который появился почти год назад, объявил о слиянии Lucet и Wasmtime. Команда Wasmtime переходит на работу в Fastly.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 1.3K
Комментарии 0

Smart Engines предоставила безопасную альтернативу сервисам распознавания документов в Интернете

Блог компании Smart Engines Обработка изображений *Браузеры Машинное обучение *WebAssembly *

Компания Smart Engines первой в России представила промышленные технологии распознавания документов в браузере, не предполагающие пересылку исходных, промежуточных или справочных данных с клиентского устройства. Новое решение подходит для персональных устройств, объектов интернета вещей (IoT) и позволяет минимизировать риск утечки изображений с паспортными данными клиентов через Интернет. Исследователи компании решили сложную научно-техническую задачу разработки алгоритмов ИИ режима реального времени для полноценного распознавания в браузере и предложили качественную и безопасную альтернативу сервисам распознавания для пользователей, разработчиков и бизнеса.

Читать далее
Всего голосов 10: ↑4 и ↓6 -2
Просмотры 2K
Комментарии 6

Клиенты банков смогут в 4 раза быстрее распознавать QR-коды, карты и номера телефонов через веб-браузеры

Блог компании Smart Engines Алгоритмы *Браузеры Искусственный интеллект WebAssembly *

AI-компания Smart Engines обновила систему распознавания банковских карт, QR-кодов и номеров телефонов. В Smart Code Engine 1.13.0 скорость считывания в веб-браузере возросла в 4 раза. По сравнению с предыдущей версией существенно улучшилось и качество распознавания.

Smart Code Engine используется банками для платежей. Встроенное в приложение ПО сканирует QR-коды, банковские карты, номера телефонов через камеру смартфона. Распознавание банковской карты на современном смартфоне происходит за 0,035 с.

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 693
Комментарии 0

Список ресурсов для изучения Ассемблера

Assembler *
Доброго времени суток!
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…

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

UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.
Читать дальше →
Всего голосов 135: ↑130 и ↓5 +125
Просмотры 420K
Комментарии 46

Три основных браузера добавили поддержку низкоуровневого бинарного формата WebAssembly

Разработка веб-сайтов *JavaScript *Браузеры WebAssembly *
Перевод
Google, Microsoft и Mozilla на этой неделе синхронно выпустили экспериментальные билды браузеров с поддержкой WebAssembly (wasm) — эффективного низкоуровневого языка программирования, выполняющегося в браузере с производительностью гораздо выше, чем у самых современных и скоростных компиляторов JavaScript.

Разработчик из Mozilla Люк Вагнер рассказал на Mozilla Hacks о преимуществах WebAssembly, а также сообщил о портировании на WebAssembly научно-фантастического шутера Angry Bots. Демка запускается в браузерах с поддержкой WebAssembly — это последние версии Chrome Canary, Firefox Nightly и Microsoft Edge. Скоро к ним присоединится Safari на WebKit.
Читать дальше →
Всего голосов 43: ↑39 и ↓4 +35
Просмотры 37K
Комментарии 31

64-битная арифметика в браузере и WebAssembly

Разработка веб-сайтов *JavaScript *Компиляторы *Браузеры WebAssembly *

WebAssembly активно разрабатывается и уже достиг состояния, когда собранный модуль можно попробовать в Chrome Canary и Firefox Nightly, включив флажок в настройках.


Сравним производительность арифметических вычислений с 64-битными числами в WebAssembly, asm.js, PNaCl и native-коде. Посмотрим на инструменты, которые есть для WebAssembly сейчас, и заглянем в недалёкое будущее.

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

Пробуем делать web-frontend на Rust (WebAssembly)

Firefox Разработка веб-сайтов *JavaScript *Rust *WebAssembly *

Недавно вышла новость про то, что webassembly теперь включен в firefox 52 из коробки. А потом еще и chrome 57 подтянулся (правда, там вроде бы были какие-то баги с запуском). Я решил, что обязательно надо попробовать.


Для тех, кто не знает, что такое webassembly краткая информация: webassembly (или wasm) — это низкоуровневый язык, который понимают браузеры, и в который можно будет скомпилировать программы, написанные на популярных языках. Это гораздо более выгодно по скорости парсинга и выполнения, чем компилировать эти языки в чистый javascript или какой-нибудь asm.js.


Wasm задумывался в основном для c/c++, но, на удивление, уже все готово, чтобы скомпилировать программу на rust. Давайте сделаем небольшое приложение и посмотрим, что получится. Все это будем компилировать на Ubuntu. Без теоретических деталей, просто "пощупаем".

Читать дальше →
Всего голосов 63: ↑61 и ↓2 +59
Просмотры 36K
Комментарии 144

C++ креши в WebAssembly на разных браузерах

C++ *WebAssembly *

Заметка задумывалась как продолжение предыдущей заметки о том, как собираем C++ креши на различных платформах включая asm.js и wasm. По количеству материала, это тянет только на заметку, а не полноценную статью, да и нужно быть наркоманом, что бы делать нативный клиент на C++, а потом засовывать его в браузер.


Но! Мы недавно делали доклад об опыте использования wasm на cppconf. Оказалось, что наркоманов больше чем я думал, да и новость Beta for Qt for WebAssembly Technology Preview. Данная заметка может быть полезна, если вы захотите сделать отлов крешей в production окружении.


Под катом:


  • отлов падений в asm.js и wasm;
  • как выглядит стек вызовов в Safari, Firefox, Chrome.
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 4K
Комментарии 0

Как писать на ассемблере в 2018 году

Программирование *Assembler *


Статья посвящена языку ассемблер с учетом актуальных реалий. Представлены преимущества и отличия от ЯВУ, произведено небольшое сравнение компиляторов, скрупулёзно собрано значительное количество лучшей тематической литературы.
Читать дальше →
Всего голосов 117: ↑102 и ↓15 +87
Просмотры 314K
Комментарии 167

Ещё большее ускорение WebAssembly: новый потоковый и многоуровневый компилятор в Firefox

Firefox JavaScript *Assembler *Компиляторы *WebAssembly *
Перевод
Оба авторе: Лин Кларк — разработчик в группе Mozilla Developer Relations. Занимается JavaScript, WebAssembly, Rust и Servo, а также рисует комиксы о коде.

Люди называют WebAssembly фактором, меняющим правила игры, потому что эта технология ускоряет выполнение кода в вебе. Некоторые из ускорений уже реализованы, а другие появятся позже.

Одна из техник — потоковая компиляция, когда браузер компилирует код во время его загрузки. До настоящего времени эта технология рассматривалась лишь как потенциальный вариант ускорения. Но с выпуском Firefox 58 она станет реальностью.

Firefox 58 также включает в себя двухуровневый компилятор. Новый базовый компилятор компилирует код в 10–15 раз быстрее, чем оптимизирующий компилятор.

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



На десктопе мы компилируем 30-60 МБ кода WebAssembly в секунду. Это быстрее, чем сеть доставляет пакеты.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Просмотры 14K
Комментарии 49

От JavaScript к Rust и обратно: рассказ о wasm-bindgen

Разработка веб-сайтов *JavaScript *Rust *WebAssembly *
Перевод

Мы уже видели насколько WebAssembly быстро компилируется, ускоряет js библиотеки и генерирует более компактные бинарники. У нас даже есть общее представление как наладить взаимодействие не только между сообществами Rust и JavaScript, но и с сообществами других языков. В прошлой статье мы упоминали специальный инструмент wasm-bindgen и сейчас я бы хотел остановиться на нем более подробно.

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

Опыт с WebAssembly или как С++ undefined behavior выстрелил в ногу

Программирование *C++ *

На прошедшем C++ Russia 2018 мы рассказывали о нашем опыте перехода на WebAssembly, как наткнулись на UB и как его героически закостыляли, немного о самой технологии и как работает на разных устройствах. Под катом же будет текстовая версия всего относительно UB. Код используемых тестов доступен на GitHub.


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

Вышел Firefox 52 c поддержкой WebAssembly

Firefox Игры и игровые консоли WebAssembly *

3D-рендеринг демки Zen Garden в браузере Firefox 52 c поддержкой WebAssembly

Mozilla выпустила Firefox 52, последнюю версию браузера с поддержкой операционной системы Windows XP. Сделан ряд важных изменений: упрощено подключение к хотспотам, где нужно сначала залогиниться в браузере, появились предупреждения об опасности, если страница запрашивает пароль по небезопасносму соединению (не HTTPS), исчезла поддержка плагинов NPAPI (кроме Flash, а в билде ESR останется полная поддержка), закрыто 28 уязвимостей.

Но ничто это не сравнится с главным и фундаментальным нововведением — поддержкой низкоуровневого языка программирования WebAssembly (wasm) типа ассемблера, который называют одной из самых значительных инноваций веб-платформы за последнее десятилетие. Это то, чего не хватало JavaScript.
Читать дальше →
Всего голосов 27: ↑24 и ↓3 +21
Просмотры 27K
Комментарии 125

Новости Rust #1 (Сентябрь 2018)

Open source *Программирование *Системное программирование *Rust *WebAssembly *

кдпв


Мой комментарий к новости про Rust 1.28 с обзором ржавых событий за месяц неплохо зашел, так что вот держите очень субъективный срез ржавых новостей за прошлый месяц.


В этой подборке: Rust 1.29, записи докладов с Rustconf 2018, gfx-rs, Rust2018, порт Flatbuffers, новые версии ripgrep и Alacritty.


Rust 1.29


Вышел Rust 1.29. Основные нововведения — доступные сразу из rustupcargo fix и cargo clippy (подробнее в хабропереводе).


Следом была выпущена версия 1.29.1, закрывшая ошибку в std::repeat (обсуждение).


Rust 1.30 и 1.31 будут очень значительными.

Точного списка пока нет, но ожидается что:


  • в 1.30 (2018.10.26) войдет частичная стабилизация процедурных макросов;
  • в 1.31 (2018.12.07) войдут Rust 2018 + non-lexical lifetimes (NLL).
Читать дальше →
Всего голосов 43: ↑42 и ↓1 +41
Просмотры 6.8K
Комментарии 6

Новости Rust #2 (октябрь 2018)

Open source *Программирование *Системное программирование *Rust *WebAssembly *

КДПВ с тыквой, потому что хэллоуин


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


В этой подборке: Rust 1.30, Rust 2018, конференция RustRush, Amethyst 0.9, сквотинг crates.io, сборщик мусора, споры про 2D графику, Non-lexical lifetimes, функциональный GUI.


Rust 1.30 и тестирование Rust2018


Вышел Rust 1.30 (обсуждение). Основные нововведения — частичная стабилизация процедурных макросов, импорт макросов через обычный use, улучшение системы модулей, "сырые" идентификаторы и поддержка no_std приложений (подробнее в хабропереводе).


Rust 1.31 будет первым выпуском редакции (edition) "Rust2018" (что за "редакции"?), в связи с чем всех желающих приглашают подключаться к тестированию бета версии 1.31 и cargo fix.


RustRush 2018: конференция 15-16 декабря в Москве


RustRush 2018 — конференция для разработчиков на Rust, посвящённая вебу, блокчейну, высокой производительности и системному программированию.


Обновился сайт (rustrush.ru) — опубликован почти полный список докладчиков и программа, начата продажа основной партии билетов.


Будут четыре участника проекта Rust Language: Стив Клабник, Эшли Уильямс, Паскаль Хертлиф, Катарина Фей. Из других звёзд локальных и не очень — Максим Лапшин с прошивкой IP-камеры, Костя Степанов и Пьер Кригер aka tomaka. Программа.

Читать дальше →
Всего голосов 45: ↑44 и ↓1 +43
Просмотры 5.4K
Комментарии 9

Rust новости #3 (ноябрь 2018)

Open source *Программирование *Системное программирование *Rust *WebAssembly *

КДПВ про Rust2018


Предлагаю вашему вниманию субъективную подборку ржавых новостей за ноябрь. В этой подборке: Rust 2018, RustRush, видео с конференций, Amazon Lambda и Firecracker, квизы, переход exonum на actix-web, 10 причин использовать Rust.


Результаты Rust опроса 2018


график из опроса про сложность изучения тем


Опубликованы результаты ежегодного Rust-опроса (обсуждение), который шел с августа.

Читать дальше →
Всего голосов 42: ↑41 и ↓1 +40
Просмотры 6.3K
Комментарии 12

Разработка под WebAssembly: реальные грабли и примеры

Блог компании JUG Ru Group JavaScript *C++ *WebAssembly *


Анонс WebAssembly состоялся в 2015-м — но сейчас, спустя годы, всё ещё немногие могут похвастаться им в продакшне. Тем ценнее материалы о подобном опыте: информация из первых рук о том, каково с этим жить на практике, пока что в дефиците.

На конференции HolyJS доклад об опыте использования WebAssembly получил высокие оценки зрителей, и теперь специально для Хабра подготовлена текстовая версия этого доклада (видеозапись также приложена).
Читать дальше →
Всего голосов 73: ↑72 и ↓1 +71
Просмотры 41K
Комментарии 59

Writing a wasm loader for Ghidra. Part 1: Problem statement and setting up environment

Информационная безопасность *Assembler *Реверс-инжиниринг *
Из песочницы

This week, NSA (National Security Agency) all of a sudden made a gift to humanity, opening sources of their software reverse engineering framework. Community of the reverse engineers and security experts with great enthusiasm started to explore the new toy. According to the feedback, it’s really amazing tool, able to compete with existing solutions, such as IDA Pro, R2 and JEB. The tool is called Ghidra and professional resources are full of impressions from researchers. Actually, they had a good reason: not every day government organizations provide access to their internal tools. Myself as a professional reverse engineer and malware analyst couldn’t pass by as well. I decided to spend a weekend or two and get a first impression of the tool. I had played a bit with disassembly and decided to check extensibility of the tool. In this series of articles, I'll explain the development of Ghidra add-on, which loads custom format, used to solve CTF task. As it’s a large framework and I've chosen quite complicated task, I’ll break the article into several parts.

By the end of this part I hope to setup development environment and build minimal module, which will be able to recognize format of the WebAssembly file and will suggest the right disassembler to process it.
Read more →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 10K
Комментарии 1

QEMU.js: теперь по-серьёзному и с WASM

Ненормальное программирование *JavaScript *Виртуализация *C *WebAssembly *

Когда-то давно я смеха ради решил доказать обратимость процесса и научиться генерировать JavaScript (а точнее, Asm.js) из машинного кода. Для эксперимента был выбран QEMU, некоторое время спустя была написана статья на Хабр. В комментариях мне посоветовали переделать проект на WebAssembly, да и самому бросать почти законченный проект как-то не хотелось… Работа шла, но уж очень медленно, и вот, недавно в той статье появился комментарий на тему «Так и чем всё закончилось?». На мой развёрнутый ответ я услышал «Это тянет на статью». Ну, раз тянет, то будет статья. Может, кому пригодится. Из неё читатель узнает некоторые факты про устройство бекендов кодогенерации QEMU, а также как написать Just-in-Time компилятор для веб-приложения.

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

Решение японских кроссвордов c P̶y̶t̶h̶o̶̶n̶ Rust и WebAssembly

Python *Алгоритмы *Rust *WebAssembly *
Из песочницы

Rust logo as nonogram


Как сделать решатель (солвер) нонограмм на Python, переписать его на Rust, чтобы запускать прямо в браузере через WebAssembly.


TL;DR

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