Erlangをインストールしてみた

Posted at 2010-08-19T15:26:48+09:00 in Software

Erlang for Windowsをインストールしてみた

昨日名古屋に遊びに行ったとき、ジュンク堂書店の名古屋ロフト店で見かけた、

Erlangプログラミング

タイトル Erlangプログラミング
ASIN 4873114659
価格 Amazon.co.jpで確認
発売元 オライリージャパン
発売日 2010-07-26

が猛烈にほしくなり衝動買いしたので、Erlangをはじめるために、 WindowsにErlangをインストールしてみた。

手順は簡単。

Erlang.orgにアクセスしてdownloadページに行き、 erlangのWindowsバイナリ(インストーラー)をゲット、 あとはインストーラにしたがってインストールするだけ!

ね、簡単でしょ。

……

ちなみに。

僕は最初Cygwinバイナリを作ろうと一生懸命検索したり、 コンパイラオプションを探したりとかしてたんですが、 何度やってもコンパイルできなくて、 ヒントが隠されているだろうINSTALL-WIN32.txt

Q: Can/will I build a Cygwin binary with the procedure you describe?

A: No. (以下略)

超訳:

T. キョンくんキョンくん、 ErlangのCygwinバイナリは生成できるかい?

K. ざんねん それは まだできない

T. にょろーん(´・ω・`)

って書いてありました。mjd

これに気付かず、なんというか三時間ぐらい無駄にしました。

まあWindowsバイナリは会ったからよかったものの、なんかすげぇ敗北感がある。 Cygwinバイナリにしたかったよぅ。

まあそれはいいとして、Erlangの本はまだ読んでないので、これから読むのですが、 本格的に習得する三つ目の言語が軽量プロセスが魅力な変態言語なのはいいのかなぁと思ったり。

実は最初ジュンク堂の棚にはScalaの本が一緒に陳列されていたりして、 ScalaとErlangをどっちにするか迷ったのですが、とりあえずオライリーというのと、 ScalaはJavaVM要るしと思ってErlang選んだのですが、なんか超変態言語っぽいらしいので、 ちょっとドキドキしていまする。

まあとても面白そうな言語ではあるので、これからガッツリ習得していきたいと思います。

以上、Erlangをインストールしたという話でした。

Cygwin環境にmemcachedをインストールしてみた

Posted at 2010-08-14T18:03:40+09:00 in Software

Cygwinでmemcachedをコンパイルしてインストールする

個人的に作ってるライブラリ群(Applishのことです。詳しくは僕のリポジトリ参照) のキャッシュクラスで、memcachedを使ったクラスを作ってて、 実際に動かしてテストしてみたかったんで、Cygwinにmemcachedをインストールしてみました。

今回はすんなりいくかと思いきや、ソースコードにパッチを当てる必要があったので、 そこら辺もまとめて掲載してみる。

1. ソースコードの取得

$ cd ~/tmp
$ wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

2. libeventのインストール

memcachedの動作にはlibeventが必要なので、 先にlibeventをインストールします。

こっちは割りとすんなりいって、

$ wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gz
$ tar zxvf libevent-1.4.14b-stable.tar.gz
$ cd libevent-1.4.14b-stable
$ ./configure --prefix=/usr/local/libevent
$ make
$ make install

でインストールが終了しました。で、あと./configureのオプションについては各自で調整してください。

3. memcachedのソースコード修正

で、次にmemcachedにソースコード修正に行きます。

まず、最初がutil.cで、memcachedの生のコードだと、 CygwinとSolarisで問題が発生するみたいです。詳しくはIssue 111: compile errors: array subscript has type 'char' を参照。

で、この問題については、先のリンク先で、個人的に修正していた人がいたので、 そこからパクってきます。正確には、

のリポジトリのutil.cで、memcachedutil.cを上書きすればOKです。

で、今度はtestapp.cの修正をします。

testapp.cについてなんですが、このファイルはコンパイル時に、

testapp.c: In function 'cache_redzone_test':
testapp.c:125: error: unknown field 'sa_handler' specified in initializer
cc1: warnings being treated as errors

みたいなエラーを吐きます。

でこのエラーメッセージのunknown field 'sa_handler' specified in initializer でGoogle検索したら一発で出てくるんですが、どうもこのエラーは、Cygwinのヘッダファイルの都合上おきるそうです。

まあ僕は詳しいことは分からないんで詳細はDesignated Initializer - BOOLEANLABELを参照してください。

でリンク先で、

sa_handler がさらに内部で union のメンバになっているからというオチである。

ちなみに普通にメンバに代入するように書くと、コンパイルできるのは何故なのだろうか? *1

#include <signal.h>
void func(void)
{
struct sigaction action;
action.sa_handler = SIG_IGN;
action.sa_flags = 0;
}

と述べられているように、問題の箇所を上記のように書き換えれば、 コンパイルは可能になるようです。

で、testapp.cの問題の箇所はline 125の、

struct sigaction action = { .sa_handler = SIG_IGN, .sa_flags = 0};

となっているところを、

struct sigaction action;
                 action.sa_handler  = SIG_IGN;
                 action.sa_flags    = 0;

と書き換えればOKです。

4. memcachedのコンパイル

これでmemcachedのソースの修正は終わったので、あとは端末で、

$ cd ~/tmp/memcached-1.4.5
$ ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
$ make
$ make test
$ make install

すればCygwinにmemcachedをインストールできます。

ちなみに僕はmemcachedの動作確認をするのにmake testしかやってないので、 本番環境で本当に動くかどうかは確認できていません。

まあmake testでテストがこけるようなことはなかったので、多分大丈夫でしょう。

というわけで以上でmemcachedのインストールは終わりです。

5. 以上終了。以下感想

まあ今回memcachedを実際にインストールしてみたわけですが、 詰まった箇所が自分でなんとかできる範囲だったのが幸いでした。 これでわけの分からんエラーとか、ソースを大幅に書き換えないとダメな箇所とか出てきたら、 多分お手上げだったでしょう。 まあこれでmemcachedは手に入ったので、あとはmemcachedを使うテストを書くだけです。

というわけで、今日はCygwinにmemcachedをインストールしてみたというお話でした。

Linux Mintを試してみた

Posted at 2010-08-07T17:25:54+09:00 in OS

このあいたLubuntu試したばっかりじゃねぇか!?

昨日なんとなく、Linux Mintってマルチメディアに強いし、UbuntuベースだからUbuntuよりいいんじゃね? と思い立ち、今日色々とLinux Mintを試してみました。

で、試したのは

  • Linux Mint Standard edition
  • Linux Mint USA-Japan
  • Linux Mint LXDE

の三つ。

とりあえずどれもインストール手順や日本化などは一緒なので、 ここではStandard Editionのみの手順を紹介します

1. ISOイメージファイルのダウンロード

まず最初にLinux MintのISOファイルをダウンロードしてきます。

Downloadページから任意のISOをダウソしてきてください

2. VMware Playerのイメージを作成

で、次にVMware Playerのイメージを作成します。

細かい手順は省略しますが、VMware Playerのウィザードに従って、

  1. 仮想イメージ新規作成
  2. OSを後でインストール
  3. Linux -> Ubuntu
  4. イメージ名と保存場所を指定
  5. 仮想マシンの容量を設定
  6. 実行

という感じです。

最初OSのタイプを指定するときに迷ったのですが、 Linux MintはUbuntuベースのディストリービュージョンなので、 Ubuntuで問題ないだろうという感じで設定しました。

4. Linux Mintのインストール

で、VMware Player上のLinux Mint用のイメージに落としてきたISOをマウントして、 イメージを起動でISOをブートします。

でブートすると、待機画面というか、カウントダウンされるページになるのですが、 ここでF1を押すとgrubのメニューらしきものが出て、色々と選択できるようになります。

で、ここではOSをインストールするのが目的なのでメニューは無視するか、 メニューを出してInstallなんちゃらを選択してOSを起動させます。

んで起動が終わると、LiveCDのデスクトップ画面が出るのですが、 ここでデスクトップ上のInstall Linux Mint(だったけな……)をダブルクリックで実行します。

あとはまあウィザードをそって設定をして行けば、インストールできます。

でOSをインストールし終わったら、再起動はせずに、一旦シャットダウン->ISOをアンマウントで、 もう一回イメージを起動します。

5. Ubuntu Japanese Teamのリポジトリを追加する

で再起動が終わったら、今度は日本語環境を整えるため、 Ubuntuの日本語環境 | Ubuntu Japanese Teamにしたがって、 Ubuntu Japanese TeamのリポジトリをLinux Mintに追加します。

手順としては、上記リンクに書いてありますが、

$ wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
$ wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
$ sudo wget https://www.ubuntulinux.jp/sources.list.d/lucid.list -O /etc/apt/sources.list.d/ubuntu-ja.list
$ sudo aptitude update

という感じで作業しました。

6. Linux Mintのアップグレード

で、リポジトリの追加が終わったら、今度はOSのアップグレードを行います

これは好みなんですが、僕はターミナルで、

$ sudo aptitude safe-upgrade

しました。

これは結構時間がかかりますが、大体一時間もあれば終わるでしょう。

あとLinux Mintの場合、なんか設定ファイルが変更されてるんだけど、 新しいファイルで上書きする? みたいなことを聞かれるんですが、 これに関してはよく分からないので、とりあえずデフォルトのそのままにするを選択しました。

まあLinux Mintのupgradeはそれ以外特筆することはないです。

7. 言語サポートで日本語を選択

で、このままでは日本語が打てなかったりするので、 一旦マシンを再起動してから、言語サポートを起動して、 日本語の設定をします。

最初言語サポートを起動すると、足りないパッケージを追加しますか? みたいなことを聞かれるので、はいにして、足りないパッケ-ジを追加します。

で追加が終わると言語サポートのアプリケーションがいじれるようになるので、 あとは好みで設定します。

8. 以上終了。

というわけで以上でLinux Mintのインストールと設定は終了です。

ということで、Linux Mintの感想を。

Linux Mintはマルチメディアに強いと評判だけあって、 YouTubeも何も設定せずに見ることができました。 というより、LiveCD状態でフツーに閲覧できてます><

あとは他は試してないんですが、とりあえずUbuntu Japanese Teamのリポジトリを追加して日本語化すれば、 大抵の部分は日本語化されるんで、これも結構な利点かと思います。

まあUbuntuと比べると日本語化の面倒さはありますが、 マルチメディアに強いことを考えると、割と初心者向けなのかもしれません。

ちなみに。

僕は最初LXDEのやつを試したんですが、日本語化しても微妙に日本語化されてねーというか、 英語と日本語のまだら模様になっていました。

まあ英語はある程度読めるんで何とかはなりますが、個人的にまだら模様はイヤンということで、 低スペックマシンにインストールするとか以外では使わないかなーと思ったしだい。

まあ英語でもなんとかなるよ! って人はLXDE版使うと軽いんで幸せになるんじゃないでしょうか。

まあそれはいいとして。

Linux MintはUbuntuと比べると、マルチメディア関係に強いっぽいので、 Ubuntuのマルチメディア対応に不満のある方は、Linux Mintを試してみると、 意外といいかもしれません。

VMware Player上にLubuntu 10.04をインストールしてみる

Posted at 2010-07-25T18:28:19+09:00 in OS

Lubuntu 10.04を試してみる

今使ってるPCにはNAS買ってからUbuntu 10.04をインスコしようかなぁと目論んでたわけですが、 今日なんとなく、「軽いほうが良いし、lubuntuとかよさそうかなぁ」と思い至ったので、 事前のテストとしてVMware Playerにlubuntuをインストールしてみました。

1. ISOの準備

何はともあれISOがなけりゃ始まらないので、lubuntuのISOをdownloadしてきます。

で、最初lubuntuの公式サイトでISOを直接downloadしようとしたのですが、 全然速度が出ないため、torrentで落とす方法に変更、 んで、ぱっとみtorrentのありかが分からなかったので、 lubuntu torrentで検索、んで公式のtorrent配布ページが見つかったので、 そこからtorrentをdownload、であとはuTorrentを使ってdownloadしました。

2. VMwareの仮想マシンの作成

んで次にVMwareの仮想マシンを作ります。

面倒なので詳細な解説はしませんが、

  1. 仮想イメージ新規作成
  2. OSを後でインストール
  3. Linux -> Ubuntu
  4. イメージ名と保存場所を指定
  5. 仮想マシンの容量を設定
  6. 実行

という感じで設定しました。

で、その後ISOをマウントするように設定を変更、仮想マシンを起動します。

3. lubuntuのインストール

で、仮想マシンを起動するとlubuntuのISOがbootしてくるので、 最初の画面で日本語に設定、でinstall lubuntu(うろ覚え)を選択し、実行。

するとlubuntuを試用できるようになるので、デスクトップ上の、 lubuntuのインストール(これもうろ覚え)をダブルクリックで実行。

んで、ウィザードにしたがってlubuntuをインストールしていきます。

これは特筆することはないので詳細は省略。

5. パッケージのアップデート、および日本語環境の整備

んでインストールが終わったら、次にパッケージのアップデートと、 Ubuntuの日本語チームのリポジトリの追加を行います。

で、僕の場合、GUIからパッケージをupdateするのは面倒なので、 ターミナルを開いて、

$ sudo aptitude upgrade

を実行。んでアップデートが終了するのをまったりと待ちます。

そして次にUbuntu日本語チームのパッケージを追加します。

Ubuntu日本語チームのパッケージの追加については、Ubuntuの日本語環境 に書いてある作業をそのまま行いました。

一応書いておくと、

$ wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
$ wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
$ sudo wget https://www.ubuntulinux.jp/sources.list.d/lucid.list -O /etc/apt/sources.list.d/ubuntu-ja.list
$ sudo aptitude update
$ sudo aptitude upgrade

しただけです。

6. VMware Toolsのインストール

で、最後にVMware Toolsをインストールします。

これはVMware Playerのメニューから、仮想マシン->VMware Toolsのインストール で、VMware ToolsのISOをマウント、で、適当なディレクトリにアーカイブを解凍、 んでターミナルで解凍したディレクトリに移って、

$ sudo ./vmware-install.pl

を実行。あとはデフォルトのままでインストールしました。

7. 以上終了

というわけで以上lubutnuをVMware Playerにインストールしてみました。

lubuntuをちょっと使っただけなんで、具体的な感想まではいえませんが、 Ubuntuと比べて動作が軽快な感じがします。 あと、Ubuntuの良さである初心者に優しいのもそもままです。

まあ問題があるとすれば日本語化が行き届いてないというぐらいで、それ以外に困ったことはなさそうです。 まあでも正直なところ、Ubuntuをインストールした後に、lubuntu-desktopをインストールしてやったほうが簡単かも知れません。

まあ軽量さで言えばlubuntuの方が上だと思うんで、 古いマシンにインストールするときはlubuntuを選んでみてはどうでしょうか。

Google Account SwitcherをGoogle Appsに対応させる:更新編

Posted at 2010-07-15T16:11:15+09:00 in Software

改造したGoogle Account Switcherを更新に対応させる

以前Google Account SwitcherをGoogle Appsに対応させる方法という記事で、 Google Account SwitcherをGoogle Appsにやっつけで対応させていたのですが、 最近の更新でどうもうまく動かなくなってたので、 とりあえずまたやっつけで対応させてみましょうというのが今回の議題。

改造する箇所は前回と同じく、if (isGooglePage())ifブロックの部分で、今回は、

if(isGooglePage()) {
    if(window.location.href.indexOf("ServiceLogin?") > 0) { // ここを改造 `accounts/ServiceLogin?` => `ServiceLogin?`
        getUsernameToSignIn();
    } else if(window.location.href.indexOf("adsense/login") > 0) { 
        getAdSenseAutoSignInValue();
    } else {
        init();
    }
}

という感じ。

最初前とまったく同じ改造を施したんですが、なぜかうまくいかず、 とりあえず前の改造からa/thotep.netを取っ払ったらうまく言った次第。 まあとりあえず動いてるから問題ないでしょう。 あとは普通にGoogle Account Switcherを使えば、Google Appsのアカウント切り替えができます。

あと例によってこの改造を施すと、元のGoogle Accountの切り替え機能がうまく働かなくなる可能性があります。 もっとも僕の場合、Googleのアカウントは一つしか持ってないので、試せてませんが。

というわけで以上Google Account Switcherを再び改造するという話でした。

About Me

name
Naoki Okamura
nick
nyarla
contact
nyarla[ at ]thotep.net
Category
Log
Banners
Powered by
nim