CMakeを使ってみた(1)経緯と簡単なアプリケーション

はじめに CMakeを調べた経緯 CやC++でプログラムを書くときは普通何らかのビルドツールを使う。Unix/LinuxならMakeが多いだろう。Makefileにビルド手順を書くわけだ。一方WindowsでVisual Studio(以下VS)を使うときはVS上でビルドの設定を行い、その結果は…

O'Reilly Japanの電子書籍に期待

昨日O'Reilly Japanからメールが来て、Ebook Storeがアップデートされたとのことでした。今回のアップデートで、過去に購入したEbookを再ダウンロードできるようになりました。 O'Reilly Japanの電子書籍のDRM これまで購入したPDFを失くしたわけではないの…

LLVMをちょっと調べてみた

最近LLVMについて調べてみたのでまとめてみる。自分はコンパイラの専門家でも何でもないので間違った内容があるかもしれない。 GCCとコンパイラの仕組み LLVMの前にまずはコンパイラ一般の話。コンパイラはまずソースコードを解析して内部表現にする。これは…

MSYSとmsysgitの共存

Windowsでgccを使う場合は普通MSYS+MinGWを入れ、MinGW Shellから使う。一方gitを使うときはmsysgitを入れ、Git Bashから使う。msysgitは名前の通りMSYSをベースにしたものだが、インストールは独立したものになっている(デフォルトではMSYS+MinGWはC:\MinG…

M-x compileとMakefileの疑問

EmacsでCのソースファイルを編集しているときにM-x compileすると通常はmake -kを実行するが、このときのディレクトリはそのソースファイルのあるディレクトリになる。しかし、ある程度の規模のプロジェクトになるとモジュール毎にサブディレクトリを作った…

M-x compileで成功したらウィンドウを閉じる

Emacs + gccで開発するときの話。EmacsでM-x compileをすると自動的に新しいウィンドウが開き、ビルドの結果を表示するバッファ(*compilation*)が表示されます。ここに警告やエラーのメッセージが表示されるためデバッグには便利なのですが、成功した場合…

Linux共有ライブラリの簡単なまとめ

Linuxで共有ライブラリ(*.so)を作るようになったのでちょっと勉強してみた。今までは使うだけだったので、以下のようなことは知っていた。 作るときはgccの-sharedオプションを使う。 使うときはgccの"-lライブラリ名"でリンクするライブラリを指定する。 …

ソースからビルドしたrubygemsで失敗

Ruby-1.9.1をソースからビルドしてgemコマンドを実行したところエラーメッセージが出て失敗。どうもzlib関連のモジュールの問題らしい。結局zlibのヘッダファイルなどがなかったためRubyのビルド時に有効になっていなかったのが原因ぽい。zlibの開発用パッケ…

imenuで関数定義に飛ぶ

Emacsではimenuという機能があって(多分デフォルトで使える)、M-x imenuとするとそのバッファの中にある関数に飛ぶことができます。C, Ruby, Schemeなど色々な言語で使えて、しかも事前準備も必要ないので結構便利です(C言語でもっと本格的なものならetag…

プログラマが小学校卒業までにやっておくべきこと

プログラマの間でも「〜は小学生まで」という言い回しが密かに流行っていますが、それらをまとめるとプログラマは小学校卒業までに以下をやっておかなかればなりません。 CVS (参照:naoya氏の資料) bash (参照:CVSと同じ) SOAP (参照:山本陽平氏の資料36ペー…

gauche.nightとプログラミングGauche

今日は[gauche.night|http://practical-scheme.net/wiliki/wiliki.cgi?gauche.night]に行ってきた。3/14発売の[プログラミングGauche|http://www.oreilly.co.jp/books/9784873113487/]を先行販売していたので購入。 最後のページのタイトルが間違っていて訂…

第2章(1)

2.2.4節では図形言語の例と問題がある。しかしScheme自身は画面への描画機能は持っていないため、本でも具体的な描画の方法は書かれていない。もちろん本に載っている関数や問題を実装しても実際に描画できるわけではない。もちろんそれではつまらないため、…

Ruby-1.9.0リリース

Ruby-1.9.0がリリースされたようです。クリスマスリリースの予定がちょっとだけ遅れて日付が変わってしまったようですが、リリースおめでとうございます。 なにはともあれ、とりあえずインストール。環境はVine Linux 4.1 on VMware-6。 # ./configure --ena…

Windows用のNASをLinuxから使う の続き2(autofs)

前回、前々回とmountコマンドを直接叩いたが、こういうのは面倒なのでautofsを使う。以下設定例。 //Server/Folderを /mnt/nasにマウントする。 パーミッションなどは以下のようにする。 ユーザ foo グループ foo ファイルのパーミッション 775 ディレクトリ…

Windows用のNASをLinuxから使う の続き(権限の設定)

前回のようにしてマウントすると書き込みはrootしかできない。これでは不便なので一般ユーザでも書込できるようにする。所有者と所有グループはuidとgid、ファイルのパーミッションはfmask、ディレクトリはdmaskで指定する。なおUnix上のファイルのように各…

Windows用のNASをLinuxから使う

PCのバックアップをとるなら外付けのHDDを使うのが一番楽。でもUSB接続だとPCが複数あるときに面倒。ということで以前にLAN接続のHDDを買った。Gibabit LANが使えて、しかも一定時間アクセスがないとディスクもファンも止まるため普段は騒音なしというなかな…

VMware 6購入

以前VMware 5を買って使っていたが、Vistaでは不具合があるようでVistaに移行してからはVMware Playerを使っていた。 最近やっと6の日本語版が出たので購入してみた。これからセットアップだ。

Emacsのruby-mode.elってどこだっけ

Emacsにはデフォルトでたくさんのmodeが用意されてるけど、ruby-modeは入ってない。Ruby本体のソースのruby-1.8.?/misc以下にあるし、たいていのLinuxディストリビューションにはパッケージが用意されているけど、Windowsバイナリ+Meadow環境だとちょっと面…

Emacs (Meadow) + GaucheでScheme開発

Scheme処理系は色々あるがGaucheを使うことにした。理由は特にない。Emacsで便利に使えそうなのをGoogleで検索してたら最初に見つかっただけ。Gauche本体はGauche本家のダウンロードページから取ってこれる。MinGWでコンパイルしたWindows版のリンクは404に…

第1章(5)

今日は疲れたので一問だけ。 問題1.17 これは問題1.16ができれば簡単かな。5x7なら以下のようになればいいだろう。 5 7 0 5 6 5 10 3 5 10 2 15 20 1 15 20 0 35 というように、偶数なら2倍、奇数なら足し算する。

SICP第1章(4)

問題1.15 a 実際に関数pの最初に (display (format "x = ~a\n" x)) を入れて実行してみれば簡単か。 x = 0.049999999999999996 x = 0.1495 x = 0.4351345505 x = 0.9758465331678772 x = -0.7895631144708228 となり、5回呼ばれた。 b sine関数が再帰的に呼…

第1章(3)

問題1.14 まずcount-changeが何をしているのか把握する。正直説明の日本語が分かりにくいためか、すぐには理解できなかった。amountセントを、kinds-of-coins種類のコインで両替する場合の数を求める関数がcc関数。なお、コインの種類が1種類のときは1セント…

第1章(2)

SICP読書の進捗。エントリタイトルの括弧内の数字はこのブログで書くときの通し番号であって本のページなどとは関係ないです。すでに前回ちょっと書いたので今日は(2)ということで。なんかだんだん難しくなってきた。問題1.13とか数学の証明問題になってる。…

最近LaTeX環境が使いやすくなってる件について

最近はWordばかりでLaTeXを使うことがめっきり少なくなってしまったが、やっぱりLaTeXは便利だと思う。 バージョン管理が楽 テキスト形式だからCVSやSubversionを使えばバージョン管理が簡単。Wordだとhoge-0.1.docとか作って、更新するときはコピーしてhoge…

ブログを書き続けるには

2日目にしてさっそく書くことがない。いや、もちろん過去にあったことや知ったことから何かを書くことはできる。でも過去を食いつぶすようなスタイルでは今後長く書き続けることは無理そう。そんなに毎日変わったことが起きたりすごい体験をしたりしてるわけ…

SICPを読み始める

SICP(isbn:9784894711631)を読み始めた。とりあえず20ページまで。さすがに最初はそれほどつまずくことなく読めた。 それでもいくつか疑問はある。 1.1.1の脚注7 p4あたりに >>Lispはすべての式には値があるという約束に従う. とあるけど、alternative(el…

wagavulinのブログスタート

さてさて、今まで何度となく三日坊主に終わったブログを再びスタートしてみよう。