Gentoo Prefix Bootstrap Process for Mac OS X
を参考に,Gentoo Prefixをインストールしてみて,色々ひっかかったのでメモ.
@naota344 さんに色々と手助けしてもらい感謝.
まず,最初にひっかかったのが,1.11 の emerge portarge.
どうもPythonのビルドが上手くいかない.最初に
USE=-aqua
と付けておくと上手くいく.
次にひっかかったのが,1.16.1.15でmake.confを設定したものの,
-marchが上手く認識されないので外した.更に,mpfr-3.1.0の
インストールが上手くいかない.どうも見てみると,ドキュメントの
フォルダがmpfrという名前で生成されているのに,mpfr-3.1.0という
ドキュメントのフォルダを探しに行っている.
$EPREFIX/usr/portage/dev-libs/mpfr/mpfr-3.1.0.ebuild
の66行目のpushdの${PF}をmpfrに書き換えてやって,
$ ebuild $EPREFIX/usr/portage/dev-libs/mpfr/mpfr-3.1.0.ebuild digest
とやってから,1.16を再開するとmpfrは抜けられる.
がしかし,またもやPythonでひっかかったので,USE=-aquaを付けて
やり直す.
これで無事Gentoo Prefix on Macがインストールできた.
けど入れてみたはいいけど,はっきり言って使い道を知らなかったりする.
今度使っている人に聞いてみるか.
2011年11月28日月曜日
2011年11月24日木曜日
Mac + Jenkins + C++
MacにJenkinsを入れて,C++で書いたコードを自動的にビルドして色々チェックしてくれる環境を構築してみた.で,色々引っかかったりしたことをメモ.もっと簡単にする方法があるのかもしれない.
インストールそのものはこちら
1. JAVA_HOMEが上手く設定されない
とりあえずシェルスクリプトを実行させようとすると,JAVA_HOMEが上手く設定されていなくて,上手く動かなかったりしたので,シェルスクリプトで無理矢理設定した.
ここで,MacでJAVA_HOMEを設定する場合,どうも特殊な方法があるようで.
export JAVA_HOME=`/usr/libexec/java_home`
バッククォートってことは何かを実行しているのかな.
2. PATHが上手く設定されない
仕方ないのでPATHもシェルスクリプト内でexportすることに.
で,取りあえず入れてみたプラグインが,cppcheck(スタイルチェック),cppncss(サイクロマチック数計測),xUnit (cppunitなどのxUnitの結果をまとめてくれる),doxygen.ここでもまた問題が・・・
3. cppcheckがメモリが確保できない,と文句を言う
Lionを使っているんですが,どうもLLVMベースのgccでビルドすると上手く動かないようで.とりあえず,MacPortsでインストールされてしまった通常版のgccを使ってビルドし直すと上手く動いた.
/opt/local/bin/gcc-apple-4.2 を指定してビルド.
4. プラグインはあくまでも結果をまとめるだけ
どのプラグインにも共通して言えるのは,あくまでも結果をまとめるだけ,ということ.まとめるための結果を出力する部分はこちらでやる必要がある.最初勝手に実行してくれるものと思って何故エラーになる,とか思ってた.
5. 一部の設定は入力が必須
どうも一部の設定は入力していないとエラーになるようで.プラグインの作りがデフォルト値が無かった場合例外投げて無理矢理終わってしまうものがあるらしい.とりあえず適当に値を設定したら動いた.
とりあえずここまで来たら,後は適当にコードを書いていくだけかな.
追記
gitとかも,システムの設定で直接パスを指定しておいて,それを使うようにしておかないと上手く動かなかったり.この辺自動的に設定できないんだろうか.多分,daemonにホームディレクトリを設定して,そこに.bashrcとか持たせたら上手くいくような気がしないでも無い.
インストールそのものはこちら
1. JAVA_HOMEが上手く設定されない
とりあえずシェルスクリプトを実行させようとすると,JAVA_HOMEが上手く設定されていなくて,上手く動かなかったりしたので,シェルスクリプトで無理矢理設定した.
ここで,MacでJAVA_HOMEを設定する場合,どうも特殊な方法があるようで.
export JAVA_HOME=`/usr/libexec/java_home`
バッククォートってことは何かを実行しているのかな.
2. PATHが上手く設定されない
仕方ないのでPATHもシェルスクリプト内でexportすることに.
で,取りあえず入れてみたプラグインが,cppcheck(スタイルチェック),cppncss(サイクロマチック数計測),xUnit (cppunitなどのxUnitの結果をまとめてくれる),doxygen.ここでもまた問題が・・・
3. cppcheckがメモリが確保できない,と文句を言う
Lionを使っているんですが,どうもLLVMベースのgccでビルドすると上手く動かないようで.とりあえず,MacPortsでインストールされてしまった通常版のgccを使ってビルドし直すと上手く動いた.
/opt/local/bin/gcc-apple-4.2 を指定してビルド.
4. プラグインはあくまでも結果をまとめるだけ
どのプラグインにも共通して言えるのは,あくまでも結果をまとめるだけ,ということ.まとめるための結果を出力する部分はこちらでやる必要がある.最初勝手に実行してくれるものと思って何故エラーになる,とか思ってた.
5. 一部の設定は入力が必須
どうも一部の設定は入力していないとエラーになるようで.プラグインの作りがデフォルト値が無かった場合例外投げて無理矢理終わってしまうものがあるらしい.とりあえず適当に値を設定したら動いた.
とりあえずここまで来たら,後は適当にコードを書いていくだけかな.
追記
gitとかも,システムの設定で直接パスを指定しておいて,それを使うようにしておかないと上手く動かなかったり.この辺自動的に設定できないんだろうか.多分,daemonにホームディレクトリを設定して,そこに.bashrcとか持たせたら上手くいくような気がしないでも無い.
2011年11月21日月曜日
無償で手に入る電子書籍2
On Lisp 日本語版草稿
翻訳した上に草稿とは言え公開するなんて凄いですね.
Lexical Analysis and Parsing Using C++
著者のサイトからダウンロード可能なようなので,著作権的に問題無いはず.
面白そうなので読んでみよう.他にも面白そうなのがある.
Parallel Programming with Microsoft Visual C++
電子書籍そのものというよりも,電子書籍のウェブ版が無償で見れる.
これ保存してしまえばePub作れそうな気がしてしまうが,良いのだろうか?
The Function Pointer Tutorials
一応PDFもダウンロードできるよう.面白そうなので後で読もう.
Data Structures and Algorithm Analysis
C++版とJava版があって,教育目的のためならということで配布している.素晴らしい.
後で読もう.
こうして積読が増えていく・・・今日は疲れたからこれくらいにしておこう.
翻訳した上に草稿とは言え公開するなんて凄いですね.
Lexical Analysis and Parsing Using C++
著者のサイトからダウンロード可能なようなので,著作権的に問題無いはず.
面白そうなので読んでみよう.他にも面白そうなのがある.
Parallel Programming with Microsoft Visual C++
電子書籍そのものというよりも,電子書籍のウェブ版が無償で見れる.
これ保存してしまえばePub作れそうな気がしてしまうが,良いのだろうか?
The Function Pointer Tutorials
一応PDFもダウンロードできるよう.面白そうなので後で読もう.
Data Structures and Algorithm Analysis
C++版とJava版があって,教育目的のためならということで配布している.素晴らしい.
後で読もう.
こうして積読が増えていく・・・今日は疲れたからこれくらいにしておこう.
2011年11月20日日曜日
MacでJenkinsをインストール
Jenkins実践入門を購入したので,MacにJenkinsをインストールしたのは良いのだけれど,上手く起動しない,ということで調べてたら,どうもJenkinsのMac用インストーラは所有権を適切に設定してくれないらしい.
sudo chown -R daemon /Users/Shared/Jenkins
とJenkinsがインストールされるフォルダ以下の所有権をdaemon (Jenkinsがインストールされるときに設定されているユーザ名)にしてやれば良い.
そして,後はJenkinsを再起動してやればいいわけだが・・・えっ,GUIが無い? Windowsだとサービスとして動いているのを制御できるGUIがあるんだが.まぁ,CUI好きの自分としては気にならないけれど,まずはコマンドを調べないといけない.どうもlaunchctlというコマンドで行けるらしい.
sudo launchctl stop org.jenkins-ci
sudo launchctl start org.jenkins-ci
おそらくこれで動くようになる.上手くいかない場合,
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
と設定を再読み込みさせればいいらしい.
で,ふとlaunchctlのヘルプを表示させようとコマンド名のみを入力したら,インタラクティブモードに入ったのでちょっとびっくり.どうもCPANやportのようにlaunchctlを通して行う作業をインタラクティブに繰り返し行えるよう.でも,なんで再起動のコマンドが無いんだろう.
とりあえず,これで起動することはできた.
sudo chown -R daemon /Users/Shared/Jenkins
とJenkinsがインストールされるフォルダ以下の所有権をdaemon (Jenkinsがインストールされるときに設定されているユーザ名)にしてやれば良い.
そして,後はJenkinsを再起動してやればいいわけだが・・・えっ,GUIが無い? Windowsだとサービスとして動いているのを制御できるGUIがあるんだが.まぁ,CUI好きの自分としては気にならないけれど,まずはコマンドを調べないといけない.どうもlaunchctlというコマンドで行けるらしい.
sudo launchctl stop org.jenkins-ci
sudo launchctl start org.jenkins-ci
おそらくこれで動くようになる.上手くいかない場合,
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
と設定を再読み込みさせればいいらしい.
で,ふとlaunchctlのヘルプを表示させようとコマンド名のみを入力したら,インタラクティブモードに入ったのでちょっとびっくり.どうもCPANやportのようにlaunchctlを通して行う作業をインタラクティブに繰り返し行えるよう.でも,なんで再起動のコマンドが無いんだろう.
とりあえず,これで起動することはできた.
2011年11月18日金曜日
JScriptのCopy-Fileではまった
今日はJScriptを触ってました.でまたはまった.
Copy-File 送り元 送り先
の順序だったとは.逆だと思ってました.しかし,それだけでは終わらない.
送り先をファイル名にしておかないと,ファイルがコピーされない.
どうもWindows 7から変わったようなのだけれど,本当にそうなっているのかが分からない.
MSDNのドキュメントでも送り先にフォルダを指定しているのに・・・
Copy-File 送り元 送り先
の順序だったとは.逆だと思ってました.しかし,それだけでは終わらない.
送り先をファイル名にしておかないと,ファイルがコピーされない.
どうもWindows 7から変わったようなのだけれど,本当にそうなっているのかが分からない.
MSDNのドキュメントでも送り先にフォルダを指定しているのに・・・
2011年11月17日木曜日
PowerShellのリダイレクトではまった
今日もPowerShellと戯れていたわけですが,またはまった.
という感じで書いていたわけですが,どうもこうすると文字コードがUnicodeにされてしまうらしく,UTF-8で保存されないらしい.そのせいでファイルフォーマットがおかしいって文句言われたよ・・・
とパイプを使ってエンコーディングを指定できる形で保存するとうまくいった.まさかリダイレクトが単純にそのままはき出すのではなく文字コード変換をかけてくるとは思いもよらなかった.
Get-Content hoge -Encoding UTF8 > foo
という感じで書いていたわけですが,どうもこうすると文字コードがUnicodeにされてしまうらしく,UTF-8で保存されないらしい.そのせいでファイルフォーマットがおかしいって文句言われたよ・・・
Get-Content hoge -Encoding UTF8 | Set-Content foo -Encoding UTF8
とパイプを使ってエンコーディングを指定できる形で保存するとうまくいった.まさかリダイレクトが単純にそのままはき出すのではなく文字コード変換をかけてくるとは思いもよらなかった.
2011年11月15日火曜日
PowerShellでXMLを弄っていてはまった
PowerShellでXMLを弄っていて,ImportNodeが非破壊だと知らなくてはまった.
$A = [xml](Get-Content ファイルパスA) $B = [xml](Get-Content ファイルパスB) $node = $A.hoge $B.ImportNode($node, $true) $B.AppendChild($node) # 別ドキュメントだと文句言われる実際には次のようにしないといけなかったらしい.
$node = $B.ImportNode($A.hoge, $true) $B.AppendChild($node)その辺のウェブサイトじゃなく,ドキュメントをちゃんと読んだら確かに非破壊だって書いてあるよ. 困ったらまずはドキュメント確認しないと駄目だなぁ.
2011年11月13日日曜日
Vim勉強会#10 に行ってきました.
午前中だけという短い時間でしたが,色々と面白い話が聞けて良かったです.
個人的に,EmacsのEvilというVimをシミュレートするelispの話が面白かったです.
一流のVim使いはEmacsを監視して虎視眈々と面白そうな機能を見つけてはVimに移植し,
それVimでもできるよ,という機会を狙っているようです.(逆もまた然り?)
しかし,このために買ったといっても良いMacbook Air よりもiPadの方が活躍したって
どうよw
Vimに興味を持っている後輩も来ていたようで,うちの大学もまだまだ捨てたもんじゃ
ないな,とちょっと嬉しくなったりして.
個人的に,EmacsのEvilというVimをシミュレートするelispの話が面白かったです.
一流のVim使いはEmacsを監視して虎視眈々と面白そうな機能を見つけてはVimに移植し,
それVimでもできるよ,という機会を狙っているようです.(逆もまた然り?)
しかし,このために買ったといっても良いMacbook Air よりもiPadの方が活躍したって
どうよw
Vimに興味を持っている後輩も来ていたようで,うちの大学もまだまだ捨てたもんじゃ
ないな,とちょっと嬉しくなったりして.
2011年11月11日金曜日
Higher-Order Vim
家に帰ったらC#やるぞっ,と思っていたのに何を思ったか,Higher-Order Perlという本に出てくる例題をVim Scriptで書いてみるか,となった.
とりあえずこんな感じ. 自然数を二進数表現の文字列に変換する関数.ちなみに,負数を与えると大変なことに.
後は単体テストとかの書き方を覚えると良いかな.
function! Binary(n) if a:n == 0 || a:n == 1 return "" + a:n endif let l:k = float2nr(a:n / 2) let l:b = "" + (a:n % 2) let l:e = Binary(k) return l:e . l:b endfunction
とりあえずこんな感じ. 自然数を二進数表現の文字列に変換する関数.ちなみに,負数を与えると大変なことに.
後は単体テストとかの書き方を覚えると良いかな.
2011年11月9日水曜日
無償で手に入る電子書籍
何かMathJaxのフォントの読み込みが重いようなので切ってみた.
Web上には絶版などの理由から無償で手に入るようになっている電子書籍が存在する.
たまに探すのだけれど,ダウンロードし終わったものは後から入手しようとして名前すら忘れていることもあるので,メモっておこう.
なお,読んでない本多数.
Higher-Order Perl
Perlで関数型言語のような高階関数とかをやろうという本.
The Scientist and Engineer's Guide to Digital Signal Processing
デジタル信号処理について幅広く扱っている.
Graphics Programming Black Book
アセンブリで画像処理という本?
Practical Common Lisp
On Lisp
PostScript Language Reference, third edition (赤本)
PostScript Language Tutorial and Cookbook (青本,zip)
PostScritp Language Programming Design (緑本,zip)
PostScriptはプログラミング言語なんです.
Invent Your Own Computer Games With Python
追記
FreeComputerBooks.com
こんなのがあるらしいけど,権利的に問題が無い本ばかりなのかな?
Web上には絶版などの理由から無償で手に入るようになっている電子書籍が存在する.
たまに探すのだけれど,ダウンロードし終わったものは後から入手しようとして名前すら忘れていることもあるので,メモっておこう.
なお,読んでない本多数.
Higher-Order Perl
Perlで関数型言語のような高階関数とかをやろうという本.
The Scientist and Engineer's Guide to Digital Signal Processing
デジタル信号処理について幅広く扱っている.
Graphics Programming Black Book
アセンブリで画像処理という本?
Practical Common Lisp
On Lisp
PostScript Language Reference, third edition (赤本)
PostScript Language Tutorial and Cookbook (青本,zip)
PostScritp Language Programming Design (緑本,zip)
PostScriptはプログラミング言語なんです.
Invent Your Own Computer Games With Python
追記
FreeComputerBooks.com
こんなのがあるらしいけど,権利的に問題が無い本ばかりなのかな?
2011年11月8日火曜日
Windowsでnpmのインストール
Windowsにnpmをインストールしようとして,何故か上手くいかないなぁ,と思っていたらドキュメントをちゃんと読んでいなかっただけ,というオチだった.
じゃなく
と再帰的に取ってくる必要があった.
そして,インストールするぞ,と思ったら今度はnodeの置いてある場所に問題が.
パスに空白が含まれていると動かない様子.
とりあえず,node.exeをパスに空白が含まれない場所に移動して,再度npmを
インストールしたら上手くいった.
git clone git://github.com/issaacs/npm.git
じゃなく
git clone --recursive git://github.com/issacs/npm.git
と再帰的に取ってくる必要があった.
そして,インストールするぞ,と思ったら今度はnodeの置いてある場所に問題が.
パスに空白が含まれていると動かない様子.
とりあえず,node.exeをパスに空白が含まれない場所に移動して,再度npmを
インストールしたら上手くいった.
cd npm node cli.js install npm -gf
2011年11月7日月曜日
WindowsでCoffeeScript
いちいちVMを起動するのが面倒になってきた今日この頃.
色々な環境をWindowsでも動くようにしつつある.
で,CoffeeScriptをWindowsで動くようにしようとしたところ,
npmのインストールでつまずいた.が,どうもnpmがなくても
CoffeeScriptはインストールできるみたい.
gitでcloneしてきたソースコードの場所をCOFFEE_SCRIPT_SRC_PATHとして,
色々な環境をWindowsでも動くようにしつつある.
で,CoffeeScriptをWindowsで動くようにしようとしたところ,
npmのインストールでつまずいた.が,どうもnpmがなくても
CoffeeScriptはインストールできるみたい.
gitでcloneしてきたソースコードの場所をCOFFEE_SCRIPT_SRC_PATHとして,
git clone git://github.com/jashkenas/coffee-script.git以下のような内容のcoffee.cmdというバッチファイルをパスが通っている場所に設置する.
@echo off node %COFFEE_SCRIPT_SRC_PATH%/bin/coffee %*あとは,coffeeと実行するだけでOK.
2011年11月6日日曜日
ヒアドキュメントチートシート
ヒアドキュメントって便利なんだけど,複数の言語を使っているとどれがどの構文だったか忘れそうなので,
まとめておこう.
Perl
変数展開無し (<<'シンボル'; からシンボルまで)<<'EOT'; $HOME EOT変数展開有り (<<シンボル; からシンボルまで)
<<EOT; $HOME EOT
Perlでヒアドキュメントを書く場合,たまにヒアドキュメントのシンボルの後にセミコロンを忘れて失敗することがある. それと,終了を示すシンボルは行頭に無いと駄目だったはず.
あと,バッククォート ( ` ) でシンボルを囲むとコマンドの実行結果を得られるというのもあるらしい.
PowerShell
変数展開無し (@' から '@ まで)
@' $HOME '@
変数展開有り (@" から "@ まで)
@" $HOME "@
Python
シングルクォート3つで囲むか,ダブルクォート3つで囲む. 違いは無いみたい?
変数展開はできない?''' here ''' """ document """formatメソッドを使えば変数展開はできるみたい.
''' {message} '''.format(message="hello world") """ {message} """.format(message="hello world")気が向いたら追加するかも.
PowerShellでのヘルプの見方
最近PowerShellを使うようになってきた.今までは,Windowsってバッチ作るの面倒だから嫌だわ,と思ってたけれど,PowerShell使い始めたら,もうこれ無しでは無理だわ,と思えるくらいに.
で,新しい言語に触る際にはヘルプの見方を覚えるのが重要だと思っているので,よく使うヘルプの見方というかキーワードの見つけ方をメモっておく.PowerShellではコマンドではなくコマンドレットって言うらしい.
で,新しい言語に触る際にはヘルプの見方を覚えるのが重要だと思っているので,よく使うヘルプの見方というかキーワードの見つけ方をメモっておく.PowerShellではコマンドではなくコマンドレットって言うらしい.
- Get-Help コマンドレット
- helpとかmanみたいなもの
- コマンドレット | Get-Member
- PowerShellでコマンドレットが返してくるオブジェクトがどういうメンバ変数とかメンバメソッドを持っているかを確認する.
LLVM2JavaScript Compiler
LLVMのビットコードからJavaScriptに変換するコンパイラらしい.
面白そうなので,後で見るためにアドレスだけメモっておこう.
Emscripten
MathJaxの導入
MathJaxも導入してみた.以下の内容をテンプレートの<head>内に記入するだけ.
とりあえずテスト.
$e^{i\pi} = -1$
これで,$\TeX$形式で記入して数式が出せる.
2011年11月5日土曜日
Twitterとブクログのウィジェット追加
SyntaxHighlighterの導入
とりあえずブログを作って最初にやったのが,構文強調機能を追加すること.
SyntaxHighlighter
これを導入してみた.あちこちで参照されている How To Add Syntax Highlighter(V3) To Blogger Blogs にあるフォームを利用しても良かったのだけれど,手作業でインストールしてみることに.
ここに最新版にアクセスする方法が書いてあるので,参照しつつテンプレートに導入してみた.
Bloggerの投稿などのタブからデザイン > HTMLの編集を選び,テンプレートをダウンロードし,ダウンロードしたテンプレートの</head>の直前に以下の内容を追加して,アップロードする.
HTMLを構文強調する際に問題になったのが,<pre>を使うとBloggerが自動的に追加しているタグ(アドレスを自動的にリンクに変更するなど)が見えてしまう,ということ.それを避けるために,インストール方法の一番下を参考に,<pre>ではなく<script>を使った構文強調に置き換えたら上手くいった.
とりあえず,C++でhello worldでも書いて構文強調のテストをしておこう.
新しいインターフェースだと,テンプレートは左側のメニューからテンプレートを選んで,ブログで使用中,の下のHTMLの編集を選んで,タグを追加すると良いようです.
SyntaxHighlighter
これを導入してみた.あちこちで参照されている How To Add Syntax Highlighter(V3) To Blogger Blogs にあるフォームを利用しても良かったのだけれど,手作業でインストールしてみることに.
ここに最新版にアクセスする方法が書いてあるので,参照しつつテンプレートに導入してみた.
Bloggerの投稿などのタブからデザイン > HTMLの編集を選び,テンプレートをダウンロードし,ダウンロードしたテンプレートの</head>の直前に以下の内容を追加して,アップロードする.
HTMLを構文強調する際に問題になったのが,<pre>を使うとBloggerが自動的に追加しているタグ(アドレスを自動的にリンクに変更するなど)が見えてしまう,ということ.それを避けるために,インストール方法の一番下を参考に,<pre>ではなく<script>を使った構文強調に置き換えたら上手くいった.
とりあえず,C++でhello worldでも書いて構文強調のテストをしておこう.
#include <iostream> int main() { std::cout << "hello world" << std::endl; return 0; }追記
新しいインターフェースだと,テンプレートは左側のメニューからテンプレートを選んで,ブログで使用中,の下のHTMLの編集を選んで,タグを追加すると良いようです.
登録:
投稿 (Atom)