Google NaCl プログラミング 2mol

■ このスレッドは過去ログ倉庫に格納されています
2011/02/25(金) 15:17:57.50
GoogleのNaCl環境でプログラミングする人のためのスレ
Chromeブラウザーは7から--enable-naclオプションを付けて起動するとNaClが有効になります。
※ Chrome 10.x 以降推奨

Native Client SDK : ttp://code.google.com/intl/en/chrome/nativeclient/
Examples: ttp://code.google.com/intl/en/chrome/nativeclient/docs/examples.html
More Examples: ttp://code.google.com/p/naclports/source/browse/#svn%2Ftrunk%2Fsrc%2Fexamples

前スレ
http://hibari.2ch.net/test/read.cgi/tech/1291875057/
2011/07/21(木) 19:33:58.08
あー、でも最近はそうでもないか
JavaScript の処理速度はかなり上がったから、割と何でも気軽に JavaScript で実装出来てるわ
JavaScript で実装した他の言語のランタイムや、OS の仮想マシンも幾つかあるよね
2011/07/21(木) 20:02:06.29
>>117
http://jsbin.com/ubiyay/3/edit#preview
WebGLのスレにあったヤツだが、ここまで遅いと話しにならんだろ。

>>116
そんな処理サーバーに投げたらサーバー死ぬだろ。
クライアントは1台じゃないんだから。
2011/07/21(木) 20:07:22.14
>>118
>そんな処理サーバーに投げたらサーバー死ぬだろ。

どんなサーバのどんな処理かの前提も無しに面白いことを言うね
2011/07/21(木) 20:10:24.45
>>118
WebGL 普通にサクサク動くけど?

http://syllab.fr/projets/minecraft/minecraft.html
2011/07/21(木) 20:16:26.81
>>118
WebGL 普通にサクサク動くけど?

http://alteredqualia.com/
2011/07/21(木) 20:31:36.47
>>119
>ブラウザ上ででかくて重いプログラム
がするような処理じゃないのか?
2011/07/21(木) 20:34:25.94
>>122
具体的にどんな処理?
2011/07/21(木) 20:35:47.35
>>116 に聞けよ。
2011/07/21(木) 20:41:06.51
>>124
『君は』どんなプログラムを前提にして話してたの?
2011/07/21(木) 20:41:10.18
>>123
マジメな話、Google MapをGoogle Earthに置き換えるとかだろ。
あと、youtubeの動画編集をyoutube内でするとか。
てか>>114-116の流れ見れば具体的な話が解ると思うけど。
2011/07/21(木) 21:12:55.68
>>126
考えてみたけど、動画の編集は NaCl で作っても簡単には行かないと思うわ
ちょっとエフェクト足す程度なら JavaScript でも出来そうだし、ガシガシ
編集するなら制限の無いローカルアプリの方が圧倒的に良いし、微妙な感じ
2011/07/21(木) 21:32:16.61
スマホアプリのほとんどが、ブラウザで実行させると遅すぎて使いにくいから、ローカルというかネイティブというかになっている。
129デフォルトの名無しさん
垢版 |
2011/07/21(木) 21:39:26.97
Fedora13で
native_client_sdk_0_4_907/build_tools/nacl_sdk_scons/make_nacl_env.py
を使ったらbuild環境展開できるのかと思って実行してみたらこんなメッセージが出てきた

Traceback (most recent call last):
File "make_nacl_env.py", line 15, in <module>
from SCons import Script
ImportError: No module named SCons

sconsコマンド自体は入ってんだけど何でだろうか?
2011/07/21(木) 21:55:15.47
こんな感じかな。

□ JavaScript の場合
編集したい Youtube 動画のサムネイルを、サーバ側で切り出して、ブラウザ上に並べる。
そのサムネイルに対して、予め幾つか用意してあるエフェクトを指定したり、キャプションを
入力したり、編集したい内容を指定。編集内容をサブミットすると、サーバ側で合成。
→ 実際の処理は全てサーバ上で行われるので、動画データ自体をやりとりする必要は無い。
→ ローカルの環境への負荷は低いのでタブレットとかスマホでもオケ。

□ NaCl or ブラウザプラグインの場合
編集したい Youtube 動画を NaCl 上のプログラム内のメモリにダウンロード。
ブラウザ上で編集、プレビュー等を済ませ、完成したらアップロード。途中で作業を
中断する場合は、編集中のデータをサーバにアップロード。
→ 通信量多い、ローカルのCPU負荷高い、編集の自由度は高い。

□ ローカルアプリの場合
メモリもファイルシステムも使い放題なので、好きなだけ自由に編集して、気が済んだら
Youtube にアップロード。
→ 素材も好きなだけ使えるし、処理時間の掛かるエフェクトも好きなだけ使えるので
  編集の自由度は最も高い。
→ 動画サイトに載せたくない個人的なムービーも当然作成出来る。
2011/07/21(木) 22:08:03.59
ネイティブクライアントを邪気にしてないか?
サーバーに負荷がかからずシームレスな編集ができるってのは重要でしょ。
ただでさえエンコまちで数十分またされる動画サイトは多いわけだし。
ネカフェとかクライアントツールがない場所でも手直しができるも利点でしょ。
あと、クライアントのリソースを自由に使えるのは許可さえすればネイティブクライアントでも
できる訳だし殊更スタンドアロンアプリで強調する事じゃないよね。
2011/07/21(木) 22:26:03.37
>>131
真面目に動画編集をするなら、ファイルシステムにアクセス出来ないのは結構致命的じゃないの。

・メモリに入り切る処理しか出来ない(テンポラリデータをファイルに待避したり出来ない)
・ローカルにある素材(サウンドファイルとか別の動画とか)にアクセス出来ない

Youtube に上がってる数十 MB の動画を加工するだけなら NaCl でも充分だとは思うけど、
それにしても、音声を差し替えたいと思ったら先にデータをアップロードしておかないと
いけないのは面倒でしょ。
2011/07/21(木) 22:38:07.11
現状テンポラリが作れなくてもそのうち使えるようになるでしょ。
アルファ版状態の現状で用意されてないAPIをネイティブクライアントの
欠陥とみなすのは早計。もしかしたら、googleはブラウザをOS化する可能性も有るわけだし
#まぁ、既にネットブック用のブラウザOS作ったし時間の問題だと思うけど。
2011/07/21(木) 23:18:32.41
無い物は無いよ
何で現状無いのかを考えれば、今後も自由にはならないと思うけどね


答え)サンドボックスが売りだから
2011/07/21(木) 23:22:34.73
テンポラリデータがセキュリティホールになるかいな。
容量だってユーザーで制限できるだろうし。
ファイルアクセスだってアップロードダイアログと同じように作れば実績もあって十分だし。
2011/07/21(木) 23:25:34.09
タヌキの皮が何枚になろうがどうでもいいから具体的な開発の話をしてくれ。
とりあえず >>129 の辺り他の人はどうしてる?
2011/07/21(木) 23:32:27.96
>>135
夢を見るのは構わないけど、現状は JavaScript 経由で WebStorage を使うとか言ってるレベルでしょ?
あんまり時間が掛かると、ホントに Google Earth が JavaScript で実装される時代になるよw
2011/07/22(金) 00:11:31.53
>>136
Python の問題っぽいから Python スレで聞くと良いと思われ
2011/07/22(金) 00:35:31.93
>>137
Javascript経由しなくてもできなくはねぇなぁ。
プログラムをこうしてやればいい。限定的にstdioなんかが使えるようになる。
toolchain/bin/nacl-sel_ldr -a test.nexe
2011/07/22(金) 00:50:26.53
それを『誰が』やるのか考えた方が良いよ
2011/07/22(金) 01:03:16.39
このコマンド打つのはプログラマー。
実行許可すんのはブラウザのユーザーだけど?
Flashと同じじゃん。
2011/07/22(金) 01:35:13.41
>>137
流行るか廃れるかなんてどうでもいい。使うのは俺だ。
2011/07/22(金) 02:35:07.04
うん、広く使ってもらう為の話じゃないなら好きにしていいよ
2011/07/23(土) 03:41:52.49
最初、googleはWebGLとJSで3Dレンダリングするのは速度でないから(WebGLは)いらないという立場だったけど、
今は、速度に問題ないとして推進する立場。
NaClも開発進めてるけど用途は減っていってる。
自分は、Webで動くAndroidアプリ実装や言語エンジンがほしい。
2011/07/23(土) 05:25:24.59
米Googleは米国時間2011年7月20日、同社が開発中の技術を試験公開するサイト「Google Labs」の
活動を停止する意向を明らかにした。同社製品への取り組みを優先するためとしている。

 同社Research and Systems Infrastructure部門上級バイスプレジデントのBill Coughran氏は
「早期プロトタイプをGoogle Labsに投じることにより多くを学ぶことができたが、目の前にある
莫大な機会を最大限利用するには、これまで以上に集中することが極めて重要だ」と説明している。

 Google Labsの終了により、開発中の多くのプロジェクトは中止となり、一部の技術は既存製品に
統合される。また、Google Labsで手がけているAndroid向けアプリケーションは、同社のモバイル
アプリケーションストア「Android Market」で提供することになる。

 なお、各製品内で新機能を実験提供する「Gmail Labs」や「Maps Labs」といった試験チャネルに
ついては変更する予定はないという。

 Coughran氏は、「6月にSNS『Google+』のフィールドテストを早期開始したことが示すように、
当社はGoogle Labsを支えていたスピードとイノベーションを今後も推進していく」と付け加えた。

 Google+はSNS大手「Facebook」に対抗して立ち上げたプロジェクトで、6月28日より招待制で
試験運用を行っている(関連記事:Google、Facebook対抗のSNS「Google+」を発表、
「現実世界の人間関係を再現」)
2011/07/23(土) 08:01:40.14
>>144
>NaClも開発進めてるけど用途は減っていってる。

Google が持っている開発ターゲット環境は、Go もあるし JavaScript(V8/Traceur) もあるし
Java(Dalvik/GWT) もあるから、どうしても話題が埋もれちゃうよね
2011/07/27(水) 03:15:56.18
>>133,137
JavaScript経由でFileAPIのテンポラリストレージを使えば今でも1Gまでは保存できるよ。
ttp://code.google.com/p/nativeclient/issues/detail?id=566
を見るに、NaClから直にファイル使えるようにする気はあるらしい。
2011/07/30(土) 21:48:40.20
NaCLで
CからopenGL使ってるさんぷるがまったくみあたらない
ヘッダはあるけどまだ使えないの?
149デフォルトの名無しさん
垢版 |
2011/07/30(土) 22:52:49.86
>米Googleは米国時間2011年7月20日、同社が開発中の技術を試験公開するサイト「Google Labs」の
>活動を停止する意向を明らかにした。同社製品への取り組みを優先するためとしている。

エエエエェェェェ〜。 NaClどうなんの〜?
2011/07/30(土) 22:58:46.72
>>149
冷静に考えて、どうなると思う?
2011/07/30(土) 23:01:08.41
Qt ほどひどくはならないんじゃない?
2011/07/30(土) 23:02:03.98
何がどうしてひどくなると思うの?
2011/07/30(土) 23:53:27.01
ひどくなるかは知らんけど、SDKの開発は止まりそうな気がする。
ヤル気があるようにみえんし、リリース製品で本格稼働してる機能でもないし。
2011/07/31(日) 00:00:30.98
http://src.chromium.org/viewvc/native_client/
2011/07/31(日) 11:02:52.57
>>152
ひどくならいんだから
ひどくなるとは思ってない
2011/07/31(日) 11:05:38.00
つ ほど
2011/08/01(月) 00:18:41.09
GoogleLabsはWebサービス寄りの話だし、NaClの開発に関係するサービスも無かったかも。
2011/08/01(月) 00:31:20.56
http://code.google.com/intl/ja-JP/chrome/nativeclient/docs/releasenotes.html
SDK 0.5 (28 July 2011)
SDK 0.4 (20 June 2011)
SDK 0.3 (17 May 2011)
SDK 0.2 (19 April 2011)
SDK 0.1 "Arctic Sea" (17 February 2011)

0.5以降は、Chrome14以降に対してバイナリ互換の予定だって。
バイナリAPIが決まったなら、firefoxへ移植も有り得るのかな?
2011/08/01(月) 00:34:48.25
毎月0.1上げてるのをみると、年末には1.0の発表したいのかもしれない。
2011/08/01(月) 00:37:11.88
>>149
Google Code Labsとは別みたい。
http://code.google.com/intl/ja-JP/labs/
2011/08/01(月) 00:42:24.25
http://code.google.com/intl/en-us/labs/
おっと、日本語のトップページは更新されてなかった
2011/08/01(月) 00:54:06.96
毎月上がる理由は、Chromeが1ヶ月ごとにバージョン上がるのにあわせただけだった。
今後は、どうなるんだろう。
2011/08/01(月) 01:46:39.79
firefoxのバージョンアップあほすぎ
2011/08/01(月) 02:08:57.46
>>13
Chromeのプロジェクトページに、NaClのプロジェクトページができてた。
https://sites.google.com/a/chromium.org/dev/nativeclient

今後の開発ポイントは、下位レイヤーの残り(OpenGLとLLVM)と、Webアプリケーション開発キットだと。

・試験的なOpenGL ES 2.0 サポート(Chrome 15目標)
https://sites.google.com/a/chromium.org/dev/nativeclient/how-tos/guide-to-experimental-3d-support

・PNaClのリリースロードマップ(リリース目標8/1〜)
https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/release-roadmap

・c_salt: a Web Application Development Kit
https://sites.google.com/a/chromium.org/dev/nativeclient/sdk/sdk-experimental/c_salt-design
2011/08/01(月) 19:36:21.23
うっしゃぁまだ無事か。これで投げ出さずに済みそうだ。
関係ないがautotoolに手こずる。コンパイラをどうやって切り替えるんだ?
2011/08/07(日) 00:34:58.97
>164
LLVMの話はARMとx86以外かと思ったら、
・もともとx86で高速なネイティブサンドボックス化ができるところがプロジェクトの開始点
・AndroidやChromeOSとARMさんの方でやれる方がモバイルバッテリーで高効率ということでポイント高い
・ARMネイティブつくってみたけど、なんかしっくりいかない
・LLVMならARM最適化できそう
ってことなのね。
167166
垢版 |
2011/08/07(日) 00:39:39.11
おもいっきり違った。
LLVMは、x86でガッツリ開発して
それからARMもって話なのね。
2011/08/07(日) 01:01:18.95
ちょっと巡回してみたけど、まだかかるみたいだね。

https://groups.google.com/group/native-client-discuss/browse_thread/thread/68aeb10fd0ad763e?pli=1

Issue 135: NaCl runtime for ARM
http://code.google.com/p/nativeclient/issues/detail?id=135
> We are actively working on bringing NaCl to ARM, through the PNaCl effort.
> We currently target ARM "classic" and are working on a Thumb2 model we hope
> will be ready soon.
> We're also discussing internally how we could go forward on Android, but a
> number of issues currently remain to be resolved.
LLVM版のPNaCl使って、とりかかるけどChronium/Android(ARM)のNaClまでまだまだ障害があるよと。
2011/08/07(日) 23:21:07.13
Ubuntu 11.04 Desktop (日本語/32bit) でChrome Unstable (14.0.835.18 dev)でNaCl有効にしても
>>1のexamplesが一つも動かないんだけれどそういうものなんだろうか?
2011/08/07(日) 23:40:05.27
まだ、Chrome13用みたい
2011/08/07(日) 23:48:34.15
Chrome14がstableリリースされる2ヶ月後には、
14以降対応でnexeを放置できるようになるのか。
2011/08/08(月) 20:19:15.62
>>170
These Native Client applications cannot run in Google Chrome version 13.
2011/08/08(月) 21:50:57.09
だれか14か15で動いてる?
winの15だと有効にしてても、プラグインがありませんとなって動かない
2011/08/09(火) 01:36:10.63
winの14なら動くよ。pluginsとflagsの両方がONならば。ubuntuが動かない。
2011/08/13(土) 00:37:50.80
ubuntuの14,15でも動いてる。about:flagsでenableした後、chromeの再起動が必要だった。
2011/08/13(土) 03:30:35.91
解説記事: GoogleがNative ClientをChrome 14に実装, いよいよ次世代...
http://jp.techcrunch.com/archives/20110811chrome-native-client/


Androidで実装されたら本気出す
2011/08/13(土) 09:52:34.63
android は jna があるしな…また別系統
chromeos 早くきてくれ!
2011/08/17(水) 22:11:10.99
>>175
8/9の時点ではstable/bata/unstableのどれでも動かなかったが、今はubuntuでも動くみたいだね。
2011/08/17(水) 22:55:45.19
>>176
実装っていうか10月のversion14からデフォルトで有効になるってことだね
ただWeb Storeに登録しなきゃいけないのが何気にうざい
2011/08/18(木) 00:42:28.39
いずれは Android でも使える様になるんだろうけど、Safari や Firefox みたいな
主要ブラウザで採用される日は来るのかなあ
2011/08/18(木) 11:30:44.69
永遠に来ないよ
Gの囲い込み
2011/08/18(木) 21:14:43.25
これローカルでエミュレートできないのかな。
単に*.nexeを実行したらセグフォで落ちるし、
Wiki見てnacl64-ncvalで動かせるかと思ったら、
libcrypto.soが無いっていうし。
2011/08/19(金) 00:59:40.54
無いならaptで入れればいいじゃないか
2011/08/19(金) 01:02:50.24
今どき OpenSSL が入ってない環境ってあるんだな・・・
2011/08/19(金) 15:08:59.11
VMでテストすりゃええが
2011/08/20(土) 00:35:28.60
VM?

LLVMのlliの事かと思って lli a.nexe したら当然のごとくシグニチャが違うと言われた
2011/08/20(土) 00:53:25.67
>>184
openssl入っててもlibcrypto.soは入ってない。
64bit環境だからかはしらんけど。
2011/08/20(土) 02:08:55.12
CL6.0 64bitだと、/usr/lib64/libcrypto.so.1.0.0
Cent5.6 64bitだと、/lib64/libcrypto.so.0.9.8e
だった。
2011/08/20(土) 18:02:40.43
それがどうかしましたか?
2011/08/20(土) 18:36:09.77
>>189
187さん?
191デフォルトの名無しさん
垢版 |
2011/08/23(火) 21:04:51.58
NaClがサンプル(examples)ですら動かねぇでやんの。

Fedora13 64bit
Chrome 13
about:flagsによるnative client有効化済み
2011/08/23(火) 21:06:01.50
うちは動いてる
2011/08/25(木) 01:21:06.88
>>191
devtoolsのコンソールには何かでてる?
2011/08/25(木) 01:33:19.69
>>193
こんな感じ。
NaCl module load failed: manifest: has unrecognized top-level property "program".

本家のコミュニティー調べたら Chrome 14にすればとか書いてあるけど、
14にしても同じだったってなリプライもあるんだよな。それにLinuxじゃ14って
まだじゃない?
195609
垢版 |
2011/08/25(木) 07:26:11.36
about:flags
about:plugins
両方有効にした?
2011/08/25(木) 20:29:16.15
両方有効状態
2011/08/26(金) 08:29:41.54
>>194
NaClのバージョン違い。
Chrome14のNaClとそれ以前のではmanifestが変わってて互換がないよ。

どのOSでも13が安定板、14がβ版、15が開発版。
β版を入れるか、来月半ばあたりまで待てば動くはず。
2011/08/26(金) 19:55:29.68
なるほどありがと。
って事は、あれかNaClのmanifestが古い開発キットさがせば
ベータ版の14入れなくても動くってことか。
199デフォルトの名無しさん
垢版 |
2011/09/02(金) 00:50:18.72
2011/09/02(金) 07:05:04.43
win/osxならchrone canary buildとchrome(チャンネル一つ)が同時に起動出来るから、
canary(15)とstable channel(13)入れておけばいいと思う。
#最近osx版が追加された
2011/09/04(日) 03:46:29.53
OSXで動くとか言ってる人がいるけど
SDK0.5のrelease notesに書いてあるクラッシュの問題は解決したの?
Windowsでさえなんだか不安定だというのにMacで本当にちゃんと動くのか不安だ
2011/09/04(日) 19:09:25.06
LLVMベースだから、どっちかってとWindowsの方が外野臭いけどね。
Unix Likeな感じ。
2011/09/04(日) 20:57:04.09
LLVM版は開発中
nexeがpexeになるだったかな。
2011/09/28(水) 19:52:24.99
まだまともに動かないのかよこれ。
今のWebは糞遅いjsが跋扈してかなわん。
2011/09/28(水) 20:17:25.13
おまえは一生重い重い言ってろ
2011/09/28(水) 21:33:54.66
いつから tcl が早い言語ってことになったんだw
tcl もふつうに処理の遅い言語ですよお父さん…
2011/09/30(金) 21:32:40.24
画面更新が上手くいかん
IMageDataがローカル変数なのがマズイのか?
DidChangeViewのなかでしてるのがマズイのか?
WM_PAINTみたいなタイミングをどっかで待たなきゃいけないのか?
はたまた何か抜けてる?

namespace Nacl = pp;
virtual void DidChangeView( const Nacl::Rect &position, const Nacl::Rect &clip )
{
        Nacl::ImageData
                image( this, PP_IMAGEDATAFORMAT_RGBA_PREMUL, position.size(), true);
        Nacl::Graphics2D
                graphics( this, clip.size(), true );

        for( int i = 0 ; position.size().height() > i ; ++i )
        {
                static_cast<uint32_t*>( image.data() )[i] = 0x55555555;
        }

        graphics.PaintImageData( image, Nacl::Point() );
        graphics.Flush( Nacl::CompletionCallback() );
}
2011/10/01(土) 22:27:57.73
自己解決
BindGraphicsを呼び出してなかっただけだったわ
2011/10/05(水) 00:38:05.54
LLVMでも使えるのにSIMDライブラリが使えん。
GPUで何とかしろってことか。
2011/10/06(木) 00:06:37.33
めんごめんご。やっぱSSE使えたわ。-msseオプション入れてなかっただけだったわ
2011/10/08(土) 21:57:48.03
次期SDKのベータ来たな
ttp://code.google.com/intl/ja-JP/chrome/nativeclient/docs/beta-sdk.html
2011/10/08(土) 22:14:14.76
Manifest変えるのは勘弁してくれ
2011/10/09(日) 00:11:16.39
NaCl ABIが決まった後の開発の中心はPepper APIってやつなのか
2011/10/09(日) 00:54:09.89
http://code.google.com/intl/ja-JP/chrome/nativeclient/docs/compiling.html
http://code.google.com/intl/ja-JP/chrome/nativeclient/faq.html
>You must load the correct .nexe file for your machine's specific instruction set architecture (such as x86-32 or x86-64).
>You can ensure you're loading the correct .nexe file by building a separate .nexe for each architecture, and using a .nmf
>manifest file to let the browser select the correct .nexe file. Note: the need to select a processor-specifc .nexe will go
>away with PNaCl (Portable Native Client).

なるほど…確かに面白そうだ
2011/10/09(日) 01:35:49.78
http://src.chromium.org/viewvc/chrome/trunk/src/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_enable_feature.txt?revision=96510&view=markup

集約させたい気持ちも分からんでもないが
少々、いやだいぶ敷居は上がっていってる気もしないでもない
いいぞもっとやれと云うべきなのかw
2011/10/09(日) 14:56:49.46
Native Client プラグインは使用できません

とか出るな sdkベータ $httpd.cmd 5103
dev channel の chrome 15 以降で動くと書いてあるような気はするのだが…(汗
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況