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

Комментарии 34

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Вот еще интересный подход к созданию десктопных приложений используя веб-технологии — web4gui — http://stunnix.com/prod/aws/

Там поднимается локально веб-сервер (и mysql, если надо) и открывается окно браузера (без меню и тулбаров). В качестве браузера кстати можно использовать nwjs. А логику — можно писать даже на php.

Правда это не бесплатное. Но тоже поддерживает win/mac/linux.
НЛО прилетело и опубликовало эту надпись здесь
ну вот вы когда visual studio у майкрософт покупаете, отчитываетесь в Редмонд о всех разработанных вами в visual studio проектах, да?
НЛО прилетело и опубликовало эту надпись здесь
если вам надо какое-либо демо — качайте на том сайте его.

Если вам надо именно сделанное Dell'ом — напишите в Dell, может дадут его скачать.
НЛО прилетело и опубликовало эту надпись здесь
https://ru.wikipedia.org/wiki/HTML_Application
вот была перспективная технология
возродить бы MS эту штуку и сделать кроссплатформенной и кроссбраузерной и использовать со своим браузером который уже установлен.

а так тащить ради приложения целый браузер да еще с нодой — спасибо но нет.

Не виндовсом единым живет и пользуется IT мир)
Мы переводили проект с NW.js на Electron где-то год назад потому, что в Electron можно было легко сделать инсталлятор и авто-апдейтер
(для nodewebkit пришлось писать свое решение)
Лол. Инсталлятор делается простейшим скриптом и одной командой NSIS. Автоапдейт рализуется в несколько десятков строк с учетом всех трех платформ. Не понимаю… Кроме того, для nwjs автоапдейты уже давно есть — в чате или гугл группе кидали ссылки на исходники. Даже у меня вон где-то завалялся.
Думаю, здесь стоит применить аксиому Эскобара
У Electron'e в дистрибутиве сразу в комплекте идут видео кодеки

В NW.js их нет, мейнтейнеры говорят — сами вытаскиваейте билд кодека из Chrome

Для меня это был огромный перевес в сторону Electron'a
НЛО прилетело и опубликовало эту надпись здесь
первый предварительно скомпилированный ffmpeg был только с 29 марта

у меня проблема возникла гораздо раньше, еще в начале 2015-го

тогда этого не было
Я мало что знаю о NW.js, но за Electron слежу регулярно и очень доволен тем, как он развивается. Сама идея мне импонирует — у них главным продуктом является Atom, а Electron просто платформа для него. Таким образом предпочтение отдается реально нужным фичам. Команда разработчиков очень отзывчивая, старается вчитываться в открытые issues и адекватно реагирует. Постоянно пилят API, не только дополняя его новыми возможностями, но и не забывая о рефакторинге. Они не боялись ломать обратную совместимость, в итоге API сейчас довольно стройный и кучерявый, в отличие от того, что было всего лишь полгода назад. Очень много тонких моментов, которые помогают сделать приложение больше похожим на родное.
Ой да ладно, отзывчивая, очень. Ага. А чего они отказались фиксить баг с jQuery-то??? «Грузите его через ноду». Ага, а вы воду пейте вниз головой из носика чайника. Нет, спасибо, я лучше продолжу использовать стабильный NWJS.
Ещё Electron не работает на Windows XP. Если вдруг нужна поддержка, то выбор за NW.js.
НЛО прилетело и опубликовало эту надпись здесь
Был опыт написания небольшого проекта на связке Electron + Polymer. Дело было прошлой зимой и были кое где баги в самом движке электрона. В принципе все решилось танцами с бубном. Проблему безопасности решили просто: всю «секретную» логику вынесли в Node Native Addon. Там на на плюсах все написали. Конечно туда же можно и библиотеки впилить. У нас была например Crypto++. Далее во время сборки джава скиптового билда собрали хэши каждого файла и включили в аддон как константы. В аддоне поток мониторил файлы и при обнаружении разницы убивал процесс. Сам аддон защитили Arxan и Whitecryption. К слову сказать оба варианта прошли тест на проникновение в одной из кантор по безопасности (я в США живу — у нас тут их куча). Получилась комплексная зашита — зашифрованый бинарный код который в рантайм проверяет джаваскрипт (и конечно сам по себе имеет некоторую секретную логику аппликации).
Это должно стать темой для статьи!
К сожалению проект закрыли сразу после репорта по безопасности. Причина во многом политическая: оказалось что кросс-платформенные и безопасные приложения можно писать на электроне с нод-аддонами, в результате пошло недовольство платформенных групп и они начали давить на руководство. Ведь до самого репорта никто не верил что можно добиться безопасности корпоративного уровня в приложении на Javascript / Polymer. Далее я переключился на мак и с тех пор уже много воды утекло. Примеры в статье придется делать самому так как оригинал под строгим копирайтом даже будучи в мусоре. К сожалению времени на статью нет. Но тому кому понадобиться, то что я написал уже достаточно для воодушевления! А инженерные задачи они всегда решаемы.
Добавлю свои пять копеек:

Недавно решал задачу по сборке NW.js из исходников в 32 битном линуксе с GLIBC 2.14 и 32 битным gcc 4.9.2. Сертификация, российские реалии, все такое. Долго и много разбирался с исходным кодом NW.js. В результате пришел к выводу, что это сделать невозможно. nw.js собирается только в debian wheezy x64 и только в static mode. Хочу поделиться здесь своими впечатлениями.

В начале про оригинальный chromium:

— Оригинальный chromium можно собрать на 32 битной системе и можно собрать в dynamic mode (с использованием shared библиотек).
— Разработчики chromium нашли фатальные недостатки в существующих системах сборки и написали для сборки свои инструменты: gyp (аналог cmake) — для верхнего уровня и ninja (аналог make) — для нижнего. Кроме того, они используют свой инструмент-обертку над системами контроля версий: depot_tools.
— Проекты, которые зависят от webkit, v8 и chromium также стараются использовать эти инструменты для сборки и контроля версий.
— Так как эти инструменты больше почти нигде не используются, документация и примеры по ним довольно скудные.

Теперь про nw.js, как я для себя понял структуру его исходного кода:

— Разработчики проекта nw.js клонировали исходный код проекта chromium в свой репозитрий. Вместе с wibkit, v8 и еще кучей всего, что входит в оригинальные проект.
— Клонировали туда исходный код проекта node.js.
— Добавили туда код, который дает возможность получать доступ из node,js к компонентам chromium и наоборот. Частично он внедрен в оригинальные файлы chromium и node.js.
— Добавили много хаотично расположенного кода, в том числе изменяя оригинальные файлы проектов chromium и node.js, который там и тут костылями устраняет появившиеся проблемы с безопасностью.
— Для сборки всего этого использовали инструменты и файлы конфигурации оригинального chromium, на живую и очень грубо внедряя свои модули в процесс компиляции, описанный в gyp файлах конфигурации.

Что получилось в итоге:

— Самое важное для меня: сломались все типы сборок под линукс, доступных в оригинальном chromium, кроме одной. Собрать nw.js можно только под debian wheezy x64, 64 битным gcc и только в static mode.
— Код, который отвечает за связывание node.js и chromium выглядит очень не аккуратно. Так выглядит код человека,
которому нужно, чтобы к утру заработало, а остальное можно будет поправить позже, когда спешка закончится. Например после добавления костылей в оригинальный код chromium появились кольцевые зависимости когда один модуль ссылается на другой и наоборот (из-за этого он и не собирается в shared mode).
— Не завидую разработчикам nw.js: у них теперь огромная проблема с обновлением оригинальных проектов, которые они использовали. Раз они залезли прямо в исходный код этих проектов со своими костылями, значит теперь после каждого обновления например chromium им придется все мержить со своими изменениями, тестировать что ничего не отвалилось и только после этого добавлять в свой репозиторий.
— Нормальной документации по сборке (да и по самому проекту) нет. То, что есть по сборке — это просто документация, которая кусками скопирована (причем в разное время) с документации оригинального проекта chromium.

Мое мнение такое:

— этот проект не является дальнейшим развитием проекта node.js. Это отдельный проект, который взял проекты chromium и node.js и на их основе сделал свой продукт.
— этот проект должен был называться не «nw.js» и не «webkit + node.js», а «chromium + node.js + костыли». В таком случае было бы сразу понятно, с чем придется иметь дело.
— проект делается в спешке и очень небольшим количеством разработчиков.
— деньги, которые были выделены на развитие проекта, в основном, видимо, ушли на рекламу, раскрутку и супер красивый сайт.

Я считаю, что именно поэтому о nw.js сейчас столько говорят, но никто пока не торопится его использовать. Деньги, потраченные на рекламу, дали свой результат, но сам проект из-за выбранного разработчиками способа реализации содержит несколько трудно разрешаемых системных проблем и поэтому до сих пор находится в достаточно сыром состоянии.
НЛО прилетело и опубликовало эту надпись здесь
Все верно, в nw.js при сборке и chromium, и node.js используют одну и ту же версию v8.
Версия v8 у них обновляется вместе со всеми изменениями проекта chromuim, который они регулярно мержат со своим проектом nw.js.
Интересно кстати тестируют ли разработчики проекта nw.js работу node.js + последняя версия v8, если разработчики node.js сами ещё не включили эту версию в свой релиз?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории