$ hg log -Gもしくは
$ hg log --graph--
My Emacs Files At GitHub
go1.2.2.darwin-amd64-osx10.8.pkg ダウンロードして,インストールする.$ export GOROOT=/usr/local/go
$ export PATH=$PATH:$GOROOT/bin
GOROOT はGo がインストールされた先を設定する./usr/local/go になる.GOPATH という環境変数で設定する必要がある.$HOME/go にインストールするようにした.go get で,Capstan のGit リポジトリを指定し,インストールする.$ mkdir $HOME/go
$ export GOPATH=$HOME/go
$ go get github.com/cloudius-systems/capstan
$HOME/go/bin 以下にある.cd $HOME/go/bin
./capstan run cloudius/osv
[/] % と表示される.ls とか ifconfig が使える.help コマンドで表示できる.-p vbox といった感じ.cloudius/osv というインスタンスが実行中になっていることが確認できる.exit コマンドを叩くと止まる) 以下のコマンドで再度OSv を起動する../capstan run -f 2222:22 cloudius/osv
admin, パスワードも admin である.$ ssh admin@localhost -p 2222
$ git config --global color.ui true
lv になっていると文字化けしてうまくdiffが表示されないらしい.$ git config --global core.pager "less"
radikorec をインストールしてみた.git clone https://github.com/akiradeveloper/radikorec.git
distributete というpython のライブラリ? をインストール.distributete でなはく setuptools というライブラリが主流だったらしい.setuptools の開発は止まっており,それを引き継いで開発されているのが distribute ということらしい.distribute をインストールする.$ curl -O http://python-distribute.org/distribute_setup.py$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py $ sudo python distribute_setup.py
sudo apt-get update sudo apt-get install libssl-dev sudo apt-get install ffmpeg
compile と setup.py ファイルを編集.compile の方は rtmpdump のソースコードをgitリポジトリからクローンしてくるのだが,このリポジトリの指定先が参照できないので,変更.setup.py は setuptools ではなく distributete をインストールしたための変更.$ git --no-pager diff diff --git a/compile b/compile index ef82607..8cf921e 100755 --- a/compile +++ b/compile @@ -6,7 +6,8 @@ pwd make cd - -git clone https://github.com/svnpenn/rtmpdump.git +git clone git://git.ffmpeg.org/rtmpdump +# git clone https://github.com/svnpenn/rtmpdump.git cd rtmpdump pwd make SYS=posixdiff --git a/setup.py b/setup.py index ecba8a4..5b2df88 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ -#from distutils.core import setup -from setuptools import setup +from distutils.core import setup +#from setuptools import setup setup( name = 'radikorec',
sudo make install ./compile sudo ./setup
./runtest
/tmp/ 以下にログや録音した音声ファイルができるはず.ffmpeg のインストールを忘れてると,録音したのにエンコードできなくて音声ファイルが出力されない.ffmpeg がないことに気づくので,実際に ./runtest で音声ファイルを出力したことはなかったりする.<station io=hoge> の hoge の部分が放送局コード<name> に書いている.ffmpeg -i NHR-2014-03-30-04-20.m4a hoge.mp3
mpg321 をインストールして使えばOKっぽい.mpg321 のインストールおよび再生コマンドは以下の通り.sudo apt-get install mpg321 sudo mpg321 hoge.mp3
git clone https://github.com/akiradeveloper/radikorec.git cd radikorec/ curl -O http://python-distribute.org/distribute_setup.py sudo python distribute_setup.py vi ./compile vi ./setup.py sudo make install ./compile #失敗 sudo apt-get update sudo apt-get install libssl-dev ./compile sudo ./setup sudo apt-get install ffmpeg ./runtest vi my_script.sh chmod +x my_script.sh mkdir ../radiko_data ./my_script.sh ffmpeg -i NHR-2014-03-30-04-20.m4a hoge.mp3 sudo apt-get install mpg321 sudo mpg321 hoge.mp3
#!/bin/sh radikorec \ --channel=LFR \ --duration=1 \ --prefix=NHR \ --directory=/home/deep/radiko_data
$ sudo port selfupdate
---> Updating MacPorts base sources using rsync
MacPorts base version 2.1.2 installed,
MacPorts base version 2.2.1 downloaded.
---> Updating the ports tree
---> MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl
Error: /opt/local/bin/port: port selfupdate failed: Error installing new MacPorts base: command execution failed
$ sudo xcode-select --install
$ sudo port selfupdate
Password:
---> Updating MacPorts base sources using rsync
MacPorts base version 2.1.2 installed,
MacPorts base version 2.2.1 downloaded.
---> Updating the ports tree
---> MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl
The ports tree has been updated. To upgrade your installed ports, you should run
port upgrade outdated
$ port version
Version: 2.2.1
port --version ではないので注意.port --version と叩くと,以下の様に怒られる.$ port --version
Error: global does not accept --version
Usage: port
[-bcdfknopqRstuvy] [-D portdir] [-F cmdfile] action [privopts] [actionflags]
[[portname|pseudo-portname|port-url] [@version] [+-variant]... [option=value]...]...
"port help" or "man 1 port" for more information.
前回の記事 で紹介したGNU Globalを使ってブラウザでコードを読む方法は非常に便利.
しかし,このGNU Global,対応言語はC, C++, Yacc, Java, PHP4しかない
そう言われても,他の言語で書かれたソースコードもブラウザで読みたい時はでてくる.
というわけで,GNU GlobalでGNU Globalで対応していない言語もブラウザで読めるようにする方法をここに書いておく.
概要を一文で書いてしまうと,GNU Globalよりも多くの言語に対応し(そのかわりに機能が少ない)Ctagsを用い,TAGSファイルを生成し,これをhtagsにかける.
Ctagsを用いるので,Globalを用いて解析したのと同じように,とはいかない.
具体的には,ある関数や変数が参照されている場所の情報(Reference)は表示できない.
なぜなら,CtagsはGlobalと違い,Referenceを探す機能が存在しないからである.
また,htagsの結果表示されるhtmlも,関数や変数の定義にリンクは貼られいない.
結局,htmlで表示しても,Syntax highlightもリンクもないソースコードが表示されるだけである.
しかし,grepやdefinitionの検索には引っかかるようになるため,何も使わないよりは読みやすくなる.
対応言語の解析に比べれば,機能は多少劣るものの,同じ環境でより多くの言語のソースコードを表示できる,という点では便利である.
sudo apt-get install ctags
/usr/share/doc/global/examples/gtags.conf を適当なファイルにコピー.ctags-exuberant|Exuberant Ctags|ctags by Darren Hiebert:\
:tc=common:\
:suffixes=s,a,sa,asm,C,H,cpp,cxx,hxx,hpp,cc,c,h,y:\
:extractmethod:\
:GTAGS=/usr/local/bin/ctags-exuberant -xu %s | perl -ne '\
if (/^operator \\S+\\s+function\\s/) { s/^operator //; }\
($name, $type, $no, $path, $line) = split(/[ \\t]+/, $_, 5);\
printf(STDOUT "%-16s %4d %-16s %s", $name, $no, $path, $line);':
:suffixes の右辺に py を追加.:GTAGS の右辺でctagsの実行ファイルのパスを指定する部分を変更.which ctags コマンドで実行ファイルのパスを確認し,指定する.$ gtags --gtagsconf=<編集した設定ファイルのパス> --gtagslabel=ctags-exuberant
--gtagsconf には先程編集した設定ファイルを指定する.
あとは,前回の記事 と同様にhtagsを実行して,htmlファイルを生成すればよい.
とりあえず,非対応言語のソースコードもgtags, htagsを用いてhtmlページで表示することが可能になった.
しかし,やはり非対応言語の解析は貧弱であることは否めまい.
非対応言語が主なソースツリーを読む場合は,無理してGNU Global を使うよりも IDEを使ったほうがいいだろう.
この方法が有用なのは,主にCやJavaで書かれたソースツリーの中に少し多言語も混じってる,という場合だと思う.