{imgicourl}{zamok}
<< предыдущая заметкаследующая заметка >>
23 января 2020
Пишем веб на C и ассемблере

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

Пишем код, например, на языке C:

double lomain(double k) {
  for(int i=0;i<1000;i++) k+=0.00001;
  return k;
}

С помощью, например, этого онлайн-инструмента https://wasdk.github.io/WasmFiddle/ комплируем его в бинарник и получаем в итоге для браузера такие строчки, которые позволят JS обратиться к бинарнику и получить результат его работы:

<script>
var wasmCode = new Uint8Array([0,97,115,109,1,0,0,0,1,134,128,128,128,0,1,96,1,124,1,124,3,130,128,128,128,0,1,0,4,132,128,128,128,0,1,112,0,0,5,131,128,128,128,0,1,0,1,6,129,128,128,128,0,0,7,147,128,128,128,0,2,6,109,101,109,111,114,121,2,0,6,108,111,109,97,105,110,0,0,10,171,128,128,128,0,1,165,128,128,128,0,1,1,127,65,232,7,33,1,3,64,32,0,68,241,104,227,136,181,248,228,62,160,33,0,32,1,65,127,106,34,1,13,0,11,32,0,11]);

var wasmModule = new WebAssembly.Module(wasmCode);
var wasmInstance = new WebAssembly.Instance(wasmModule, []);
alert('wasmo','У вас всё работает: '+wasmInstance.exports.lomain(10.2));
</script>

Разумеется, есть и нормальные компиляторы с любого языка (вот, например, статья более подробная: https://habr.com/ru/post/342180/), но пока речь о самом принципе. Итак, если в этом окошке вы увидите число, похожее на "10.20999999999962", значит в вашем браузере wasm работает:

Опс! Вот как раз у вас не сработало! Напишите, пожалуйста, в комментарии, что у вас за система, интересно, какие еще не поддерживаются.

Я проверил у себя на Линуксе с Firefox, Сhrome, Opera и на мобильнике Chrome — везде сработало. Надеюсь, в WebView мобильных приложений тоже (пока не проверял).

Для чего это нужно? Да для чего угодно. Пал последний бастион, отделяющий браузер от любой другой среды программирования. Теперь любые вычислительные алгоритмы, нейросети, сложный анализ звука и изображений, динамические игры — всё может делать браузер ровно с той же скоростью. Лично я пока не придумал, для чего мне это может пригодиться в движке и на сайте. Но, с другой стороны, я и узнал-то об этом всего лишь позавчера ;)

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Linux Ubuntu Firefox
 Москва
1
0
Adamos
> Я проверил у себя на Линуксе с Firefox, Сhrome, Opera и на мобильнике Chrome — везде сработало. Надеюсь, в WebView мобильных приложений тоже (пока не проверял).

Есть же данные, необязательно проверять лично:
https://caniuse.com/#feat=wasm
Linux Ubuntu Firefox
 Москва
0
0
Adamos
Страница (видимо, из-за включения этой скриптоты) сыплет ошибками при вызове комментария.
Linux Ubuntu Firefox
 Москва
0
0
LLeo
Вот это вряд ли. Попробуйте предыдущую страницу, там будут те же ошибки. Ошибки могут быть незначительными неточностями моего движка, либо особенностями каких-то ваших баннерорезок, спам-фильтров или плагинов браузера. Мне иногда пишут читатели со словами, что у них мой сайт не работает, но всякий раз выясняется, что они на своей стороне забанили какой-нибудь main.js или еще что-то важное.
Linux Ubuntu Firefox
 Москва
0
0
Adamos
Да, на любой странице то же самое. Только баннерорезки тут ни при чем, ошибки в самом скрипте main.js

В 27 строке к тексту лога добавляется закомментированная выше переменная s.

При вызове в 236 строке функции newdiv в 320 строке функция appendChild применяется к объекту {cls: 'tenek'}, не являющемуся узлом DOM-дерева.

Работе сайта эти ошибки не препятствуют.
Linux Ubuntu Firefox
 Москва
0
0
LLeo
Ну и норм, ящитаю. Работает так уже много лет - я не буду тратить полдня, чтобы разобраться и что-то поменять.

К слову, вы можете открыть свою личную карточку и поставить галочку на "мобильный формат". Тогда все эти оранжевые всплывающие окна с теньком вообще не будут вас отныне беспокоить :)
Linux Firefox
 Boulder
2
0
Михаил (#1684620)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Кстати, как там у этого васма с сообщениями об ошибках?
А то судя по тому, как вы реагируете на сообщения об ошибках JS, когда кривые руки дойдут до байт-кода в движке и на сайте, будет совсем ой.
Windows Safari Chrome
 Москва
6
0
ew-gny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?


Linux Safari Chrome
 New York
0
0
Кто здесь?
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Это девиз современного веб-программизма.
Linux Ubuntu Firefox
 Владимир
1
0
Adamos
Это девиз веб-макак, получивших рыночное преимущество за счет дешевизны и некомпетентности заказчиков. А дешевизна происходит именно из экономии на качестве. Всегда ваш, К.О.
Windows Firefox
 Тольятти
0
0
oncle t
Тут нужно либо радоваться своей элитности, либо деградировать, потому как большинство никогда и никак не может быть элитой.
Windows Firefox
 Австрия
1
0
Alex Bird
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Леонид, приветствую!
Волею судеб использую TOR и винду 8.1. И он не смог...
"Опс! Вот как раз у вас не сработало! Напишите, пожалуйста, в комментарии, что у вас за система, интересно, какие еще не поддерживаются."
Windows Firefox
 Сумы
0
0
Fisher123
Прикольно, конечно, движется эволюция. А начиналось все с HTML, языка разметки.

А какие возможности/ограничения в работе у этого бинарного кода? Доступ к файловой системе, законнектиться куда-нибудь наружу, или хотя бы нарисовать что-нибудь на канвасе страницы напрямик?
Linux Safari Chrome
 Россия
1
0
20190604
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Если я правильно помню, то этот бинарный код напрямую доступа не имеет вообще никуда. Даже чтобы работать с элементами страницы (тем же канвасом) нужно будет писать прослойку на js.

Соответственно, в основном это планируется применять для тяжёлых расчётов, которые выполняются относительно независимо, т.к. если нужен объёмный ввод-вывод, то всё равно всё будет упираться в ограничения js-прослойки.
Linux Ubuntu Firefox
 Германия
0
0
kirushik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
wasm-бинарники в браузере вообще не могут никаких вызывать сисколлы. (Не в браузере — могут, есть специальный стандарт [WASI](https://www.opennet.ru/opennews/art.shtml?num=50406) для тех, кто хочет позволить какие-то внешние вызовы из wasm.)

Соответственно, выполнение таких бинарников настолько безопасно, насколько безопасен интерпретатор (и/или JIT-компилятор) wasm.
А их довольно легко написать безопасно, половина сил при дизайне ВебАссембли ушло собственно на обеспечение этих свойств: в wasm даже джампов нет, и память данных и байткода разделена, и тэ дэ.
В общем, я бы гораздо больше переживал за безопасность интерпретатора (и тем более JIT-компилятора) джаваскрипта, ибо там в десятки раз больше сильно нетривиального кода.
Windows Safari Chrome
 Москва
1
0
ew-gny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Мелкософты сделали такую хрень как Blazor. Это UI-движок.
У нее есть вариант с сервер-сайд рендерингом (и тут все как обычно), а есть вариант с работой прям в браузере.
И в этом случае, в браузере, оно подгружает полный .NET netstandard2.0 (а может даже 2.1) движок скомпилённый под wasm.
Windows
 Москва
0
0
Duker
У меня не сработало. IE 11, хрен знает какая винда, ещё какой-то софт для анализа скриптов на лету на вредоносность установлен (этот софт всегда тормозит, а иногда ещё и виснет).

Это у нас на работе так безопасность организована. С рабочих компов выхода в интернет нет, есть только на сервере, а мы на нём по rdp запускаем браузер. Именно поэтому я не знаю, что там за система и какой анализатор скриптов установлен. И по этой же причине я не могу поменять браузер на что-нибудь нормальное.
Windows Firefox
 Одесса
4
0
crispoid
>>«Для чего это нужно?»
Ну, кто о чем, а я в первую очередь думаю за то, чем выполнение бинарников на вебстранице ничего не подозревающему пользователю может угрожать. Не успели, блин, от флэша избавиться -- на те. Как будто скриптов-майнеров недостаточно.

пошел штукатурить бастион
Linux Ubuntu Firefox
 Владимир
1
0
Adamos
Что значит - "как будто недостаточно"? В посте и обсуждается технология, используемая по большей части для скриптов-майнеров.
Windows Firefox
 Одесса
0
0
crispoid
Но радостно-то как.
Windows Firefox
 Одесса
0
0
crispoid
>>Напишите, пожалуйста, в комментарии, что у вас за система, интересно, какие еще не поддерживаются.

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

На Android Firefox и Opera тоже все нормально троянится.
Windows Firefox
 Montreal
0
0
рпцл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Windows: chrome, firefox (только со включенными скриптами) - сработало. Slackware: PaleMoon 28.8.0, Firefox 45.2 esr - не сработало
Windows Firefox
 Одесса
1
0
crispoid
В FF поддержка wasm появилась с 52-й версии.
Linux Firefox
 Пенза
0
0
qwerty блинн которого сайт забыл
причем в 52 ESR оно не работает. именно с такой и пишу :)
Windows Firefox
 Санкт-Петербург
0
0
den_x2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Не:

User agent: Mozilla/5.0 (Windows NT 5.1; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.1
Mac Safari
 Чебоксары
0
0
Oleg Ku (2:5066/0)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Яндекс браузер на iPhone 7 — работает. «»
Mac Safari
 Чебоксары
0
0
Oleg Ku
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Сафари на iPhone 7 — тоже работает
Linux Safari Chrome
 Москва
1
0
Olegenka
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Древняя андроидная RSS-читалка gReader - встроенный просмотрщик не показывает.
Linux Safari Chrome
 Москва
1
0
Kuros85
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
В rss поток да и в ЖЖ тоже экспортировалась ошибка. У читалки не было шансов.
Linux Safari Chrome
 Москва
2
0
telepatus




Такой фон явно не оставит равнодушным Ваших посетителей

https://s-sd.ru/blog_studio_design/animirovannyj_fon_dlya_sa[...]
Windows Firefox
 США
3
0
Рахит
Этот фон явно символизирует жертв Холокоста в Берлине.
Windows Firefox
 Харьков
2
0
Дмитрий З.
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Не работает.
Windows XP sp3 Zver Edition с патчами под POSReady.
Браузер SeaMonkey 2.49.5
Запустил браузер Firefox 52.9.0 - тоже не работает.
Opera 12.17 - не работает
Vivaldi 1.0.435.46 () (32 бит) - не работает
k-meleon 75.1 - не работает.

Ну и замечательно. Чем меньше всякой скриптоты исполняет браузер - тем меньше проблем с безопасностью.
Windows Safari Chrome
 Болгария
14
1
уставший
«Windows XP sp3 Zver Edition»
«меньше проблем с безопасностью.»

Ооооок.
Mac Firefox
 Вьетнам
8
0
безобразие
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Нет безопасности - нет проблем.
Windows Safari Chrome
 Москва
13
1
Михаил
- Алло, техподдержка? У вас дыра в безопастности!
- Уфф, слава богу, хоть что-то у нас в безопастности.
Linux Safari Chrome
 Коломна
3
1
KPbICMAH
Срочно снести это решето и установить форточки 3.11!
Windows Safari Chrome
 Москва
2
0
Михаил
Ага, их хрен сломаешь (извне).
Linux Safari Chrome
 Россия
0
0
Слава Сомов
3.1 тогда уж. Там гарантия 100%
Linux Safari Chrome
 Москва
0
0
Steinkrauz
Забавно: WasmFiddler в качестве ассемблерного листинга выдаёт что-то лиспоподобное.

Странно, что не Форт, раз уж под капотом там стековая машина.
Windows Firefox
 Австрия
0
0
fffff00000
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
тор.
не работает.
Windows Safari Chrome
 Москва
0
0
glew
Вивальди. Работает.Ты уверен, что нативный код не принесёт.
Linux Safari Chrome
 Киев
0
0
фдуч2000
Всё верно.

1) сейчас wasm не может редактировать DOM, что делает неозможным откзаться от js

2) современный интерпретатор javascript работает весьма быстро, а если нужны мегасложные вычисления типа нейронных сетей, то возникает вопрос для чего это делать в браузере.
Linux Ubuntu Firefox
 Москва
1
0
Adamos
Теоретически это может использоваться для поддержки живого невидимого мира в браузерной игрушке. Но это сложно, майнить биткойны намного проще...
Windows Safari Chrome
 Москва
0
0
ew-gny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?


Windows Safari Chrome
 Домодедово
3
0
id
А светодиодиком как помигать?

Для нас, эмбеддеров, helloworld - это помигать светодиодиком. Есть тут такое?
Linux Ubuntu Firefox
 Германия
0
0
kirushik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Можно и светодиодиком.
Есть, скажем, минималистичный интерпретатор wasm https://github.com/wasm3/wasm3, который по идее должен собираться и работать в том числе на ESP8266.
Linux Ubuntu Firefox
 Германия
0
0
kirushik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
(Другое дело что аллокаторы приложений, собранных в wasm, обычно ожидают страницы по 64KB, и если на конкретном микроконтроллере останется меньше, абстрактная wasm-программа в вакууме скорее всего откажется работать.)
Windows Safari Chrome
 Домодедово
0
0
id
Каком таком ESP8266???

В сабже четко сказано: пишем, компилим, запускаем в браузере. Так каким образом надо написать прогу, чтобы запустить ее в браузере и помигать светодиодиком?
Linux Firefox
 Boulder
2
0
Михаил (#1684620)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Если запустить браузер на устройстве со светодиодным экраном (OLED подойдёт), то можно хоть всеми миллионами светодиодиков помигать. :–)
Linux Ubuntu Firefox
 Германия
1
0
kirushik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
В wasm нет ничего такого, чтобы непременно требовало браузера. Там даже доступа к DOM нет, для этого предлагается Javascript-прослойки использовать.

Вместо этого wasm можно рассматривать как платформонезависимый байткод, который одинаково легко/быстро запустить как на винде с 64-битным Интелом, так и на линуксе под armv7 на какой-нибудь "малинке". И на микроконтроллерах — тоже, как минимум в режиме интерпретации (потому что тащить полный JIT-компилятор туда, понятно, дураков нет).

Это удобно, например, для сборки всяких сложных для портирования библиотек "подо все платформы сразу", с незначительной потерей производительности; или, например, для кода, который обязательно должен выполняться бит-в-бит одинаково на разных платформах, без неожиданностей, привносимых какими-нибудь компиляторными идиосинкразиями под конкретную патформу.
Ну под веб-браузеры (со всем их разнообразием ОСей и процессорных архитектур) тоже удобно так писать/компилировать.
Linux Safari Konqueror Chrome
 Одесса
0
0
crispoid
А еще в убунтячьем Konqueror не взлетает
Linux Safari Chrome
 Москва
0
0
LLeo
Конкверрор мне запомнился на ранних этапах тестирования движка биноника тем, что по-детски клал хуй на все политики безопасности и охотно давал посетителю доступ к кукам из соседних доменов...
Windows Firefox
 Одесса
0
0
crispoid
Мне он представляется как непонятная попытка совместить бульдога с носорогом веббраузер с файловым менеджером и с трудом представляю того, кто добровольно им пользуется кроме как что-то потестить. Но вопрос был "в чем не взлетело" -- вот оно.
Windows Firefox
 Нижний Новгород
0
0
alxumuk2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вопрос что считать "чистым бинарником". WASM это не нативный бинарник для процессора, который исполняет код. Это все еще байт-код, исполняющийся в песочнице (по многим причинам).
Так что принципиальных различий между обфусцированном JS и WASM не так уж и много. Оба в песочнице, оба сжаты как только возможно (WASM, конечно, сжат значительно лучше, но так ли эти несколько килобайт значат), оба будут исполняться в песочнице, оба будут перед исполнением пытаться преобразовываться в нативные инструкции процессора через JIT компилятор.
Забавно, полезно местами, но не революция.
Mac Safari
 Emirates Integrated Telecommunications
1
0
ллллллл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
> но так ли эти несколько килобайт значат
Если у тебя миллионы запросов в день, то еще как значат. Для сервера.
Linux Safari Chrome
 New York
0
0
Кто здесь?
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ну как же - повесить на странице биткоин-майнер.
Ну и что, что медленно - зато пользователей миллионы.
Linux Ubuntu Firefox
 Израиль
3
0
200-1.95M
Hа ассемблере и C
Пишем веб всея Pycи
А на Виндоус и на DOS
Паутину ткёт пиндос
Mac Safari Chrome
 Москва
0
0
unclegluk
Странный результат вычислений. Должно быть 10.210000, а не 10.20999999999962. Надо было использовать long double. Он дает правильный результат:
Aluminium:temp unclegluk$ cat kaganov.c
#include <stdio.h>
long double k=10.2;
int main() {
for (int i=0;i<1000;i++) k+=0.00001;
printf("%2.14Lf\n",k);
}
Aluminium:temp unclegluk$ clang -o kaganov kaganov.c
Aluminium:temp unclegluk$ ./kaganov
10.21000000000000
Aluminium:temp unclegluk$
Linux Safari Chrome
 Москва
1
0
LLeo
А мне нравится.
Я вообще предпочитаю по возможности только целочисленную арифметику. А тут прекрасная иллюстрация погрешности плавающей точки, отлично вышло.
Mac Safari Chrome
 Москва
0
0
unclegluk
Эта прекрасная погрешность в космических масштабах может выйти боком. Не надо пренебрегать точностью —— это может привести к катастрофе.
UPD. Почему, когда я ставлю длинное тире оно превращается в два тире?
Linux Safari Chrome
 Москва
0
0
LLeo
К катастрофе приведет только привычка делать космические расчеты в браузере при помощи JS и wasm :)
Mac Safari Chrome
 Москва
0
0
unclegluk
К катастрофе приведет привычка делать неточные расчеты. Космические они или нет, но браузеры тут не при чем. 10,2 + 1000 раз по 0,00001 будет 10,21, но не 10,20999999999962.
Linux Safari Chrome
 Москва
1
0
LLeo
Я понимаю, вас очень пугают страшные вереницы девяток, и чем они были бы длиннее (три экрана девяток, например), тем чудовищней и непоправимей казалась бы ошибка. Но если вы хоть немного изучали математику, вы должны понимать, что речь тут об ошибке на единичку в ДВЕНАДЦАТОМ ЗНАКЕ ПОСЛЕ ЗАПЯТОЙ. Вас напугала пико-погрешность при работе с плавающей точкой :)
Mac Safari Chrome
 Москва
1
0
unclegluk
«вас очень пугают» — Это вы так решили. А теперь представим себе гипотетическую ситуацию, что человечество решило запустить на Плутон посадочную миссию. Расстояние до него 5,9 трлн. м. Это на один знак больше, чем 12. А теперь немного математики. Пусть скорость полета неограничена, а Плутон, Земля и Солнце находятся на одной линии. При ошибке угла полета в 0,00001 градуса аппарат окажется в 10 млн км от Плутона. Теперь 12-й знак играет роль?
Windows Safari Chrome
 Кременчуг
1
0
ЖК
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
> При ошибке угла полета в 0,00001 градуса аппарат окажется в 10 млн км от Плутона. Теперь 12-й знак играет роль?
Такая ошибка угла полета отражается не в 12-м знаке, а в пятом знаке после запятой.
Linux Safari Chrome
 Санкт-Петербург
0
0
LLeo
Абсолютно с вами согласен.

Также хочу добавить, что при полете в галактику UDFj-39546284 (13,4 млрд световых лет) потребуется такая точность угла, которая даже по самым дилетантским прикидкам не менее 40 знака. Значит ли это, что:

a) На все числа с ошибками в 30-м знаке надо смотреть с невыразимым пренебрежением

б) Делать расчет такой звёздной миссии по-прежнему следует в браузере при помощи wasm и JS
Mac Safari Chrome
 Москва
0
0
unclegluk
Может быть здесь, в этом треде, зарождается первый в мире полет в другую галактику, а вы тут со своими 12-ю знаками.
Mac Safari Chrome
 Москва
0
0
unclegluk
Угол да, а аппарат в 10 млн км.
Windows Safari Chrome
 Израиль
2
0
б
Как инженер, позволю себе заметить, что если в вашем проекте надо "прицелиться" с точностью до пятого знака, то ваш проект обречен. Все инженерные расчеты могут быть выполнены с помощью логарифмической линейки (три знака). По дороге к Плутону придется предусмотреть систему корректировки орбиты.
Windows Firefox
 Одесса
5
0
crispoid
Вы от какого числа отталкиваетесь, когда объем шара вычисляете?
Linux Safari Chrome
 Москва
0
0
Слава Сомов
Браво!
Mac Safari Chrome
 Москва
3
0
unclegluk
В мирное или военное время?
Linux Safari Chrome
 Санкт-Петербург
0
0
Онаним
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Андроид 6.0.1, предустановленный браузер — разумеется, не работает. Впрочем, в нём и от чистого htmlя память течёт так, что wpa_supplicant вышибает по oom (а мобильный интернет почему-то нет, из-за платности, что ли?).
Windows Firefox
 Fremont
0
0
Евгений-нелогинитьсясегодня
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Считать чего-нибудь очень нужное на чужих компьютерах. Вроде несколько лет назад была такая история, что сайт в качестве "оплаты" своих материалов запускал обсчет какой-то-коинов в браузере пользователя. Не помню, что там вышло и чем дело кончилось, но применение достаточно оформившееся. (Конечно, можно и просто запускать без всяких этих "в качестве оплаты")
Windows Firefox
 Москва
0
0
Michael27
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
У меня не сработало. У меня Windows XP, firefox.
Windows Firefox
 Санкт-Петербург
0
0
den_x2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Seamonkey - не работает. User agent: Mozilla/5.0 (Windows NT 5.1; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.1
Windows Firefox
 Санкт-Петербург
0
0
Tarn
И в Палемуне тоже. Windows-7.
Windows Safari Chrome
 Москва
0
0
Виктор Никитюк
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Довольно давно (несколько лет точно) существует такой проект как jsdos.com. В частности, можно прямо в браузере играть в старинные игрушки (загружаются abandonedware-бинарники): jsdos.com/games/
Linux Ubuntu Firefox
 Одесса
0
0
crispoid
Ubuntu 18.04, Chromium 79.0.3945.79 из коробки, без плагинов и расширений -- не взлетает
Linux Firefox
 rue de la ville l'eveque PARIS
0
0
albb
Не функциклирует, однако. Чем и доволен. Ибо нех.
И не Firefox а Seamonkey.

всего комментариев: 79

<< предыдущая заметка следующая заметка >>