This is test post

hoge hoge huga child

Shumway の AVM2 だけを Spidermonkey 上で動かす方法

基本的には Shumway wiki に乗っているビルド法と関連ツールの導入方法を熟読すれば良いのですが、ちょっと落とし穴があるのでその補足を含めたビルド方法を紹介します。

0. 想定環境
OSX 10.7 (Lion)
Homebrew を導入済み。 (brew コマンドを用いているものは適宜 port なり apt-get に読み替えてもできるかもしれません。)

1. 必要なツールの確認
今回、Shumway をビルドし実行するために以下のものを導入しました。

  1. wget (version 1.14)
  2. git (version 1.8.2.1)
  3. Mercurial (version 2.5.2)
  4. java (jdk 7u17)
  5. autoconf 2.13
  6. SpiderMonkey Shell 1.8.5+
  7. ActionScript Compiler (asc.jar)
  8. Tamarin Shell

※ wiki にはさらに node.js の導入も書かれていますが、リグレッションテストにしか用いていないようです。

2. 比較的楽に入れられるものを導入

さらに、jdk7.java.net から JDK 7u11 のインストーラーをダウンロードし、インストーラーの指示に従ってインストールを済ませます。

3. SpiderMonkey Shell のビルドとインストール
NOTE : 2013-04-16 時点、brew でインストールできるものは古いバージョンです。
まず、SpiderMonkey のビルドには autoconf (version 2.13) が必要なので導入します。
(少なくとも、2.69 では動作しないことが確認されています。)

program-suffixを指定して、既存のものに上書きしないようにしている点がミソです。
導入のチェックをしてみると、

と出るでしょう。
では、SpiderMonkey Shell をビルドしてインストールしてみましょう。

これで一応 SpiderMonkey をビルドする準備ができますが、Mozilla エンジンのソースコードも落としてくる為に hg コマンドでそうとう待たされます。
その間に、状況によっては 2, 3 時間ほど別の作業ができたりしますが、待てない人は SpiderMonkey に必要なものだけを tarball に固めたものも Mozilla から配布されているので、それを使っても良いでしょう。
以下に mozilla-central リポジトリの代わりに tarball を用いてソースコードを手に入れる場合の作業を示します。
(ただし、tarball を用いた場合はこれ以降の js コマンドをすべて js17 に読み替えてください。)

では、実際にビルドしてみましょう。

ビルドができたら、バージョンをもう一度確認しましょう。

先ほど、mozilla-central ではなく tarballでビルドした人は、

となります。
NOTE : JavaScript-C 1.8.5 2011-03-31 は古いバージョンであり、これでは実行できません。
それでは、インストールしましょう。

4. Shumway のソースコードのダウンロード
まだ、導入していないツールがありますが、そのツールの導入の為に先に Shumway のソースコードをリポジトリから落としておきます。

5. ActionScript Compiler のダウンロード
Tamarin Shell のビルドや ActionScript をバイトコードにコンパイルするときに使う asc.jar を落とします。

また、後ほどのために環境変数も設定します。

今回は一時的に設定していますが、後ほど出てくる shu.py にて設定しておく必要があるので、毎回設定することが面倒な場合は .bash_profile に書き込んでしまいましょう。

4. Tamarin Shell のビルド
最後のビルド作業です。まずは、コードを落としてきましょう。

では、実際にビルドしていきますが、ここで環境によって若干パラメータがかわるので注意してください。

osx では –mac-sdk と –target の指定が必要です。–mac-sdk にはピリオドを抜いた上位 3 桁の数字を指定してください。(10.8.x なら 108, 10.6.x なら 106 です。)
ここでも、後にでる shu.py のために環境変数を設定しておきます。

5. Shumway で hello world!
やっとお待ちかねの AVM2 実行のお時間がやって参りました。
ひとまず、適当に Shumway に付属されている hello-world.as を abc にコンパイルしてみましょう。

これで、コンパイルされて hello-world.abc が生成されるので…

無事に実行できたら、お疲れさまでした。
ほかにも tests ディレクトリにいろいろあるので、コンパイルしてみたり、
avm.js のオプションとして、abc の構造を出力する -d オプションなどもあるので、気になる方はどうぞ。
また、実際に js を弄って動きを確認するのも良いでしょう。

それでは、よい Shumway ライフを。

参考
Getting Started with AVM2 · mozila/shumway Wiki · GitHub
SpiderMonkey Build Documentation – SpiderMonkey | MDN

sudo使用時の環境変数の引き継ぎ方

引き継ぎたい環境変数を指定する場合:
  • visudoで Defaults:[ユーザ名] env_keep += “[環境変数]“ という行を追加する.

全ての環境変数を引き継ぐ場合:

  1. sudo -E (Eオプションを使う)
  2. visudoで Defaults:[ユーザ名] !env_reset という行を追加する.
% env
% sudo env
というコマンドで設定が確かめられる.

複数人でgitレポジトリを共有する方法

sshを通してgitを利用する場合はgitを共有して利用するためのグループを作り, そのグループにパーミションを付与する.

管理側:
gitグループを追加
% sudo pw groupadd git
taroユーザを追加
% sudo adduser taro
taroユーザをgitグループに追加
% sudo pw usermod -n taro -G taro,wheel,git

ユーザ側:
% sudo mkdir hoge.git
% cd hoge.git
% sudo git init –bare –shared

% cd ..
% chgrp -R git hoge.git
% ls -l
drwxrwsr-x 7 root git 4096 6月 18 00:42 hoge.git

taro% mkdir hoge
taro% cd hoge
taro% git init
taro% git remote add origin ssh://taro@hogehoge.com/var/git/hoge.git #ローカルリポジトリに共有リポジトリを登録
taro% touch README
taro% git add .
taro% git commit -m “Initial import”
taro% git push origin master #共有リポジトリ(origin)にローカルリポジトリ(master)の更新を反映

参考:

続 せっかちな人のための git 入門 – 共有リポジトリの作り方 – 僕は発展途上技術者

学内ネットワークからftp接続する方法

学内から直接ftpで接続できないので, proxyを通して接続する.

~% ftp proxy.sras.sic.shibaura-it.ac.jp
Trying 202.18.118.128…
Connected to proxy.sic.shibaura-it.ac.jp.220- ocache01 PROXY-FTP server (DeleGate/9.9.7) ready.
220- @ @
220- ( – ) { DeleGate/9.9.7 (March 31, 2010) }
220- AIST-Product-ID: 2000-ETL-198715-01, H14PRO-049, H15PRO-165, H18PRO-443
220- Copyright (c) 1994-2000 Yutaka Sato and ETL,AIST,MITI
220- Copyright (c) 2001-2010 National Institute of Advanced Industrial Science a
nd Technology (AIST)
220- WWW: http://www.delegate.org/delegate/
220- –
220- You can connect to a SERVER by user' command:
220- ftp> user username@SERVER
220- or by
cd’ command (after logged in as an anonymous user):
220- ftp> cd //SERVER
220- Cache is enabled by default and can be disabled by cd .' (toggle)
220- This (proxy) service is maintained by 'goiken@sic.shibaura-it.ac.jp'
220-
220-extended FTP [MODE XDC][XDC/BASE64]
220
Name (proxy.sras.sic.shibaura-it.ac.jp:l08100): ftp@ftp.freebsd.org
331 Password required for ftp.
Password:
230-- PASS for ftp@ftp.freebsd.org.
220 ftp.beastie.tdk.net FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230- Guest login ok, access restrictions apply.
230-- @ @
230 \( - )/ -- { connected to
ftp.freebsd.org’ }
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||34337|)
150 Opening ASCII mode data connection for ‘/bin/ls’.
total 10
drwxrwxr-x 2 0 5 512 Jul 19 2007 .snap
drwx—— 2 0 0 2048 Jul 19 2007 lost+found
drwxr-xr-x 3 1006 1006 512 Sep 21 2009 pub
drwxr-xr-x 3 1006 1006 512 Jun 5 2007 sup
drwxr-xr-x 4 1006 0 512 Sep 18 2009 www
226 Transfer complete.
ftp>

<ユーザ名>@<接続先IP>で接続する. anonymous接続する場合はユーザ名にftpを指定するらしい.

参考URLにはGUIソフトでの設定もあるので,GUIソフトで繋ぎたい場合は要参照.

参考:

ftp プロキシサーバ

androidでipアドレスを調べる

androidの実機のipアドレスを調べる方法を示す. エミュレータは未確認.

基本的にadb shellのifconfigを使うのだが引数にインターフェース名を指定しないといけないらしい.

インターフェースの一覧を取得するには

~% adb shell ls /sys/class/net

lo
svnet0
usb0
sit0
eth0

とする. そして,

~% adb shell ifconfig eth0
eth0: ip 192.168.26.4 mask 255.255.255.0 flags [up broadcast running multicast]

とする.

 

 

 

卒論の書き方

卒論の書き方として学習したことをまとめる.

卒論を書く時に意識するべきこと:

1.abstractと1章で研究の概要がわかるように書く.他の章はそれを詳しくしたものを書く.また,各章は冒頭にその章で説明することを書く(論文の読者は途中で読むのをやめるかもしれない).

2.論理的に書く.誰が読んでも納得できるように書く.論理の飛躍がないように書く.

3.なるべく解釈の幅を少なくするように書く.色々な意味でとれる文章を書かない.

4.流れを意識して書く.突然意味の分からない用語を出さない.

5.過不足なく研究内容を伝える(なるべく質問がなくなるように書く).多少くどいぐらいでも大丈夫.

卒論を書く時の注意点:

1.句読点の書き方(。→. 、→,).また,句読点の後は半角スペース空ける.

2.表や図はページの一番上か下.TeXのfigureのオプションは[tb]

Emacsでpythonデバッグ

前回Emacs上でpythonのreplを動かす方法を書きましたが、今回はEmacs上でpdb(gdbのpython版のようなもの)を動かす方法です。

1. M+x shellでshellを立ち上げる
2. $/usr/lib/python2.6/pdb.py デバッグファイル名

M+x pdbなるコマンドも存在するが、Macだとなぜかうまくいかないので上記のような方法をとる。

デバックするファイルを別窓で開いて、ステップ実行などをすると実行中の行の先頭に矢印がでます。
ブレイクポイントの設定などはこれから確認します。

参考:
ScriptLabo 【Python】 Emacs23でpdbを使うメモ

Emacsでpython

Emacs上でM-x run-pythonと入力するとpythonのreplが起動します。
*.pyバッファ上でC-c C-lでファイルをrepl上にロードできます。

参考:

遠い海: lispとrubyとpythonと (REPL)