August 2006アーカイブ

Shell で Carbon Emacs 起動

| コメント(0) | トラックバック(0) | このエントリーを含むはてなブックマーク

僕は Mac OSX でエディタ使うときは Carbon Emacs なんだけど、アプリから起動する Emacs のなかで Shell モードに入ると環境変数がなんか変で使いにくかったので Shell から起動することにした。

っで、Mac の場合普通にアプリを開く時は open コマンドを使うんだけど、アプリまでフルパスで書かないといけないのが激しく面倒なので zsh の設定ファイルで alias を設定。

alias Emacs='open -a /Applications/Emacs.app/Contents/MacOS/Emacs'

こんな感じ。引数にファイル名を付けると普通にファイルを開いてくれるのが嬉しい。

あと zsh の場合 alias とか環境変数とかの設定って何に書くのがクールなんだろう?.zlogin なのか .zshenv なのか .zshrc なのか悩むところ。環境変数なら .zshenv だと思うんだけど色々入れてみたい年頃。

最初 DarwinPorts に Perl5.8.8 を入れて諸々のソフトなども入れてあったんですが Term::ReadLine::Gnu を入れようとすると Linux の時と同じでやっりコンパイル時にエラーが出て make が出来なくなる。

結局 DarwinPorts をアンインストールして最初からやり直し。DarwinPorts 使うと最下層に op/ ってディレクトリが出来てなんだか気持ち悪いしやめた。けどよく考えたらインストール時に configure の設定でインストールディレクトリを /usr/local/bin/ とかにっしておけば問題なく出来ただろうワナw

しょうがないので CPAN から perl5.8.8 のソースとってきてビルド( デフォルトの Perl5.8.6 ではインストール出来ず )その間に screen 使って同時に他のもインストール。んで Term::ReadLine::Gnu の INSTALL を読んだ限りだと readline は /usr/local/gnu/ に入れると。ついでに ncurses も取ってきてインストール。

再インストールの前に gcc のバージョンを 4.1.1 にあげておいた。

んで cpan 起動で( perl -MCPAN -e shell ってしないでも cpan で入れるのは便利 ) Bundle::CPAN をインストール。その後 Term::ReadLine::Gnu を試したらすんなり入ってしまった。んで perlsh を PATH の通ったところへ移動させたらちゃんと動いたのでした。

僕の場合 PATH は .zshenv で設定してるので、とりあえず perl5.8.8 も入ったことだし /usr/local/bin/ の優先順位を一番前に持ってきてる。

再インストール前に今日一日を使ってしまった感じ。なぜか gcc がコンパイルに失敗するし、gep がありませんって言うし、ないない尽くしでわけわからん!全部英語だから検索かけても英語ばっかりだし、頑張って読むしかないんだけど難しいっすね。んで失敗してた理由だけど、たぶん PATH の設定が DarwinPorts とぐっちゃになっていたのと、シンボリックリンクが上手くいって無かったのが大きいのかもっと今になって思う。

手順をまとめると

  1. gcc のバージョンをあげておく
  2. perl5.8.8 のソースを取ってきてビルド
  3. ncurses のソースを取ってきてビルド
  4. readline のソースを取ってきて /usr/local/gnu/ にビルド
  5. cpan シェル起動後 Bundle::CPAN をインストール
  6. Term::ReadLine::Gnu をインストール
  7. ./cpan/build/term-readline-gnu-1.16/eg/perlsh を PATH の通ってるディレクトリに移動

これで perlsh を起動出来るようになるはず。次は perlsh を shell として使うための設定について書くかも。

perlsh 導入メモ

| コメント(0) | トラックバック(0) | このエントリーを含むはてなブックマーク

インタラクティブな対話的シェル perlsh にあこがれて Debian on coLinux にインストールを試みたんだけどどうにもうまくいかない、インストール時に小一時間どころではなく数日はまったのでメモ。

とりあえず Term::ReadLine::Gnu をインストールしないといけない。っがしかしインストールしようとすると libtermcap.a, libncurses.a or libncurses.so が必要ですと文句を言われる。 libtermcap.a を apt-cache search で検索かけると termcap-compat にあるというから調べてみたけどすでにインストールされてて libtermcap.a 自体はみつからない。/usr/lib/ の中も調べたけどみつからない。じゃあ libncurses.a を探してみたけどこれも見つからない。色々検索した結果 ncurses5-dev にそれらは入ってるらしいことがわかる。んでインストールしてみたら libtermcap.so ってのが入って libtermcap.a の代わりになるみたいだった。

んじゃぁもう一度 cpan だなとインストールかけると今度は readline が見つからないと文句を言い出した。これも探してみたらインストールされてますと Linux は言うんだけど、さっきの例があるから dev が怪しいなと思い libreadline5-dev をインストール、これがビンゴで見事インストールできた。

そうしたら、.cpna/ にソースが出来るから、この中の eg/ に入っている perlsh を PATH の通ったディレクトリに放り込む。これで OK ! あとはシェル使うみたいに .perlshrc を作ってそこに設定を書けば自由に使える。

僕の coLinux はそんなに多くのツール入れてなくて Perl 開発環境として動く最低限しか積んでなかったのが悪かったみたい。たぶん普通の人はコンパイルするのに色々ツールを入れてるんでしょうねぇ。

手順をまとめると

  1. apt-get install で ncurses5-dev と libreadline5-dev をインストール
  2. cpan 起動して Term::ReadLine::Gnu をインストール
  3. ホームディレクトリの .cpan/build/Term-ReadLine-Gnu-1.16/eg/perlsh を PATH の通ったディレクトリに入れる

以上。

ちなみに Mac OSX でも同じ症状で cpan 経由でインストール出来ない。たぶん似たような物がパッケージ化されてると思うので今度探してみます。あと色々調べた結果ですが、どうやら libtermcap や libncurses はちょっと古いライブラリみたいで最近のデストリビューションには含まれていないみたいです。/etc/terminfo/ 以下に含まれている物を使えみたいなことが書かれていました。英語弱いので確かではないですけど。

参考
Perlデータマンジング―データ加工のテクニック集

購入書籍紹介第四弾!この本、翻訳者が miyagawa さんだったので買いましたw

いまいちマンジングって言葉の意味がわからなかったのですが、マンジングってのはあるデータから必要なものを抜き出す技術みたいです。Perl って言語は元々データ加工のために作られた言語なわけで、この本を読んで更に Perl を Perl らしく使えるようになろうって内容になってます。

っでデータマンジングが出来ると何がいいのかと言うと、仕事で使うようなデータ加工が簡単にできちゃうってわけです。鬱陶しい GUI の Excel 使ってあーだこーだしてないで大好きな Perl で出来ちゃうぜってな調子。まださっと目を通しただけなんで大きなことは言えないのですが、全体的に中級者以上の内容だと思います。初心者向けの説明もあるのですが、一度他の本を読んでおいた方が良さそうです。

  • 第1部 基礎
  • 第2部 データマンジング
  • 第3章 シンプルなデータパージング
  • 第4部 全体像
  • 付録A モジュールリファレンス
  • 付録B Essential Perl

内容は三年以上前の本なんで古い部分もあるのでしょうが、Perl が Perl らしく使える技術が学べて(モジュール多いですけど)確実にレベルアップに使えそうです。

base-config でこける

| コメント(0) | トラックバック(0) | このエントリーを含むはてなブックマーク

なぜか解らなかったんだけど

apt-get update
apt-get upgrade

をすると

base-config (2.53.10.1) を設定しています ...
/var/lib/dpkg/info/base-config.templates のテンプレート #30 に `Template:' 行が ありません
dpkg: base-config の読み込みエラーです(--configure):
サブプロセス post-installation script はエラー終了ステータス 9 を返しました。。以下のパッケージの処理中にエラーが発生しました:
base-config

っとこける症状が多発。多発っていうかこれ以降 apt-get install も出来なくなってしまいました。apt-get upgrade しないといけるんだけど、それはそれで困る。だって新しいパッケージ欲しいし。

っつーことできっとネット上には同じような症状に出くわした人がいるだろうっと思ってググってみたところハンガリー語のサイト - 最近のKamaQって記事を発見。まさにビンゴ、僕と同じ症状だ。そこに対処方も書いてあって、

# vi +2271 /var/lib/dpkg/info/base-config.templates
dd
:wq
# apt-get -f install

vi を使って上記のようにすれば直るらしい。たったこれだけか?とか疑りながらやってみたところ見事に動きました。

vi の操作の意味を解らずやったんですが、どうやら dd は一行削除らしいです。っつーことは Emacs でも C - k でいけるのかな?とりあえず直ったんで試さないですけどね。

coLinux 上のファイルを Windows 側から操作出来るように Samba でファイル共有してみました。Windows 側から Linux 側にアクセスする方法が調べてもみつからず小一時間ぐらい検索しまくりましたよ。

Samba

同じ PC 上に存在しているのにネットワーク共有するのは気持ちが悪いんですが、これでローカルだろうが coLinux 上だろうが関係なしに開発できます。Console 上で Emacs 立ち上げて編集するより Meadow から編集する方がやり易い気がするんですよね僕は。そんなこんなで coLinux の設定に今日一日使っちゃったよ。まぁ Linux の勉強になったし、バッドノウハウみたいなもんの少しは身についたかなw

参考

コンソール日本語化

| コメント(1) | トラックバック(0) | このエントリーを含むはてなブックマーク

頑張って coLinux 上の Console を日本語に変えてみました。フォントが汚くて見にくいのですが system-config とかも日本語になったので意味が理解できて Happy です。

putty

とりあえずは持ち運んで Hack 出来るようにはなったと思います。

PuTTY の上の 192.168.1.2 ってやつはどうにかならないんですかねぇ?もっと意味のある情報に変えたい。

Cooperative Linux

今週末は coLinux をセットアップしているんですが、coLinux のハードディスクイメージはデフォルトで 1GB しかありません。これじゃ Apache, MySQL, Perl を入れたらすぐいっぱいになっちゃいます。Thinkpad X40 との兼ね合いを考えて最低でも 5GB は欲しいところ。どうやって HDD 増築するんだろうって悩んでたらid:higeponさんがタイムリーなエントリーを書いてました。

っということで HDD を 1GB -> 6GB に増築。そのおかげで X40 の空きがあと 13GB にw まぁ Windows 単体としては、ソフト入れる予定もないし十分かなぁって思います。

初めてのプログラミング

やってきました、購入書籍紹介第三弾です。

プログラミング入門 - Rubyを使って -というサイトがあります。これは Chris Pine 氏がネットにあげたチュートリアルを西山伸氏が翻訳したものです。この書籍"初めてのプログラミング"はまさにこのネットのチュートリアルを書籍化したものなのです。ですが今回書籍化するにあたりオブジェクト指向についての部分、ファイル操作の部分が追加され出版されました。僕はオンライン版は少し目を通していたのですが、やっぱり活字を読むほうが楽なので購入してみました。

今更入門を買うのはどうかと思われるかもしれませんが、この本は一般的なプログラミングの入門書で使われる C, Perl, Java ではなく Ruby という今話題の純国産言語を教材に書かれています。購入理由にRuby を学びたいというのもあったのですが、読み進めるうちにプログラミングの基礎的な思考もあり関心させられました。下手な入門書を買いわからない単語を覚えながら勉強するよりよっぽどこの本を読んだ方がプログラミングについて学べると思います。

  1. プログラミングを始める準備
  2. 数と計算
  3. 文字列
  4. 変数と代入
  5. 数と文字列の変換
  6. メソッド
  7. 流れ制御
  8. 配列とイテレータ
  9. メソッドの作り方
  10. 再帰とこれまでの復習
  11. ファイルの読み書き、そして覚えておきたいあること
  12. クラス
  13. 新しいクラスの作成と既存のクラスの更新
  14. ブロックと手続きオブジェクト
  15. この本を超えて
  16. Rubyと日本語環境

それなりにプログラミングについて理解のある人にとっては特に注目する章などはないのですが、本当に初心者の方はこの本を入門書にしてプログラミングについて学んでいけば楽しくプログラミングについて学習していけるのではないでしょうか。個人的には今まで読んできた本の中では、プログラミングをしたいって人進める本としてコレが一番お勧めかもしれません。

PHP Hacks―プロが教えるWebプログラミングテクニック

購入書籍紹介第二段はまたまた Hacks シリーズ。しかし今回の PHP Hacks は現在日本語化されているものでは唯一プログラミング言語を使ったものです。原書なら Perl Hacks もあるんですが、手軽さのためか最初に出たのは PHP でした。言語というものはどれかがある程度わかるようになれば乗り換えるのも多少は楽にになります。僕は最初が PHP だったため今回の日本語版心待ちにしてたんです。

PHP それ自体は Web Site 製作に特化した言語として世の中に登場したわけですが、バージョンがあがるごとにインタプリンタを備えたり、ワンライナーがかけるようになったりと広がりをみせています。この書籍ではデスクトップアプリケーションとの連携も取り扱っていて、ますます使いやすいものになっていることを実感させてくれます。

PHP Hacks 目次

  • 1章 インストールとPHPの基本
  • 2章 Webデザイン
  • 3章 DHTML
  • 4章 グラフィック
  • 5章 データベースとXML
  • 6章 アプリケーションの設計
  • 7章 デザインパターン
  • 8章 アプリケーションのテスト
  • 9章 デスクトップアプリケーション
  • 10章 エンターテインメント

時代を反映してか注目は AJAX との連携や XML の取り扱い ( データマンジング ) などかなと思います。最先端の技術が簡単に書かれていてある程度 PHP を扱える人が読めばテクニックの幅が広がるのではないでしょうか?

まだ流し読みしかしていないのですが、早く時間を作って読みながら実際に手を動かしたい衝動に駆られてしまいますね。

^[ を入力するには

| コメント(0) | トラックバック(0) | このエントリーを含むはてなブックマーク

Shell や Screen の設定をしていると出てくるこの ^[ 、ESC コードって言うらしい。vi の場合は [ C-v ESC ] で入力することが出来るんだけどEmacs ではどうやって入力するのか謎でした。

けどネットを巡回していたら方法を見つけたのでメモっておきます。

C-q ESC

Linux サーバ Hacks

| コメント(0) | トラックバック(0) | このエントリーを含むはてなブックマーク
LinuxサーバHacks―プロが使うテクニック&ツール100選

本日プログラミング関連の書籍を数点購入したので今日から毎日買った本を紹介したいと思います。っでまず今日紹介するのは Linux サーバーの Hack 本です。ハッカーご用達の O'Reilly 社か 2003 年に発行された本なんですが、IT 世界と違いプログラミングの世界では流れがゆっくりなせいか今読んでも色あせていない内容になっています。むしろ学ぶべきことが多く載っていてびっくりしました。

Hack 本の特徴は便利な Hack が 100 個も載っていることなんですが、ジャンルごとにわかりやすくまとめてありすばらしい出来になっています。注目は1章サーバ管理の基本,2章リビジョン管理,6章SSH、このあたりが僕の注目。一章は基本といいながら Linux の最適化の話などもあり玄人でも楽しめる内容です。二章はバージョン管理の話で、やはり2003年出版の影響か,まだ Subversion ではなく CVS がメイン。ですが、基本から説明してあるので初心者でも満足感がありますね。っで六章ですが、Linux サーバーとは切っても切られない関係の SSH について。これは絶対チェックすべき。っで他 Linux の Tips 満載で値段以上の価値がある本になってるとおもいます。

そしてなにより僕が気に入ったのは前書きで Hacker についての説明、Hacker の心構えなどレイモンドの言葉を引用して書いてある点です。この書籍の真の目的がこんなわかり易く書いてあり、感動すら覚えましたよ。サーバーに触れる機会のある人間は絶対読むべし!

Windows フリーソフトで快適生活

| コメント(0) | -2 | このエントリーを含むはてなブックマーク
Windows XP ロゴ

巷のビジネスマンは会社のデスクトップに Google Desktop Search をインストールして情報管理している今日この頃。そんなの Geek な方々にとってはどうでもいい話w っと言うことで今日は僕が Thinkpad にインストールした便利でフリーないけてるソフトをあげてみようと思います。

ここで紹介しているソフトを全部入れる必要はないにしてもきっと貴方の気に入るソフトが見つかるはず。一部 Deep 過ぎるソフトもあるので使い道、使い方がわからないものはインストールしない方がいいと思います。

coLinux セットアップ

| コメント(0) | トラックバック(0) | このエントリーを含むはてなブックマーク

今週に入ってやっと Thinkpad に開発環境を構築しだしました。とりあえず coLinux をセットアップ。現時点でインストールしたものをメモ。

  1. ssh
  2. zsh
  3. Screen
  4. Emacs
  5. subversion
  6. Apache
  7. Ruby
  8. Python
  9. PerlTidy
  10. Samba
  11. smbfs

とりあえず Samba インストールしてローカルからネットワークでファイルにアクセスしようと思ったけどユーザーとパス作って無かった。んで MySQL と PHP はバージョンが古いからどうしようか悩んでる。

明日は zsh と Screen の設定して Samba もちゃんとアクセス出来るようにするのが目標。Trac まで入れて開発環境を完璧にしたいなぁ〜

一日の間で時間が空く時って一時間強しかないので今日はここまで