Googleを支える技術
![Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ) Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)](https://images-fe.ssl-images-amazon.com/images/I/51m8phYZbyL._SL160_.jpg)
Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)
- 作者: 西田圭介
- 出版社/メーカー: 技術評論社
- 発売日: 2008/03/28
- メディア: 単行本(ソフトカバー)
- 購入: 47人 クリック: 1,166回
- この商品を含むブログ (374件) を見る
Googleが提供しているサービス群はどのようなバックエンドで動いているのか、が技術に明るくない人間にも伝わるような内容になっています。
最近流行りのcloudなどの根っこをさらっと知りたい方にもお勧めだと思います。
Armadillo-440でSQLiteを使いたい
経緯
Armadillo上で動くSQLiteを使用するプログラムを書きたくなったので、ATDE3でSQLite3のライブラリをビルドしてみました。
ビルドの流れ
ソースの取得と準備
SQLiteのサイトよりソースコードを落としてきてビルドの準備をします。
cd /home/atmark/build/app/ wget http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz tar -zxvf sqlite-autoconf-3070400.tar.gz
ビルドとインストール
cd sqlite-autoconf-3070400 ./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi CC=arm-linux-gnueabi-gcc --prefix=/usr/arm-linux-gnueabi --enable-static --disable-shared make sudo make install
ARMのEABI用静的ライブラリにコンフィグします。
結果
下記のファイルがインストールされました。
/usr/arm-linux-gnueabi/lib/libsqlite3.la /usr/arm-linux-gnueabi/lib/libsqlite3.a /usr/arm-linux-gnueabi/bin/sqlite3 /usr/arm-linux-gnueabi/include/sqlite3.h /usr/arm-linux-gnueabi/include/sqlite3ext.h /usr/arm-linux-gnueabi/share/man/man1/sqlite3.1 /usr/arm-linux-gnueabi/lib/pkgconfig/sqlite3.pc
次はこのライブラリを使って簡単なプログラムを書いてみます。
Subversionを導入しよう
導入
パッケージのインストール
yum install subversion
IPパケットのフィルタリング設定変更
svnが使用するポートに対するポートへのパケットを許可します。
#!/bin/sh iptables -I INPUT -p tcp -s クライアントのIP -d サーバのIP --dport 3690 -j ACCEPT
こんなスクリプトを書いて、 /etc/rc.d/init.d/filtertab として保存します。
これを起動時に適応させるために
chmod 755 /etc/rc.d/init.d/filtertab cd /etc/rc.d/rc3.d/ ln -s ../init.d/filtertab S98filtertab
これで、svnへのパケットが通るようになりました。
リポジトリ作成と設定
コードの置き場をリポジトリというらしいですが、それを作成しユーザの認証設定を行います。
svnadmin create /var/svn/repos
これでリポジトリルートが作成されたので、次に認証設定を変更します。
認証設定のファイルは /var/svn/repos/conf/svnserve.conf ですので、これを以下のように書き換えました。
[general] anon-access = read auth-access = write password-db = passwd
匿名アクセスは読み取りのみの権限、認証アクセスには読み書きの権限を与えます。
[users] #ユーザ名 = パスワード
を /var/svn/repos/conf/passwd に記述します。
xinetdでsvnserve起動
ずっとスーパーサーバはinetdだと思い込んでいたのですが、xinetdなんですね。古すぎました。
service svn { disable = no socket_type = stream port = 3690 wait = no user = svn server = /usr/bin/svnserve server_args = -i -r /var/svn/repos log_on_failure += USERID }
のような内容を /etc/xinetd.d/svn に記述します。
service名は /etc/services に記載されているものに合わせます。
結果
バージョン管理システムはcvsとvssしか使ったことがなかったのですが、svnはなかなかシンプルかつ直感的でいいですね。
svnを使いこんで、次はgitにチャレンジしてみようと思います。
GNU Global
ソースコード読みを容易にするために、静的解析ツールのGNU Globalを使ってみました。
- インストール
http://www.gnu.org/software/global/download.html
上記サイトよりWin32 binaryをドウンロードして、適当なフォルダに展開後パスを通して完了です。
- 使用方法
gtagsとhtags、2つのコマンドを使用します。
・gtags
解析したいコードツリーのトップ階層にて
gtags -v
と実行します。すると、そのフォルダにGPATH、GRTAGS、GTAGSが生成されます。
・htags
gtagsを実行したフォルダにて
htags -asfF
と実行します。HTMLフォルダが生成されますので、その中のindex.htmlを開くとブラウザからコードを参照する事が出来ます。
- はまったところ
htags実行後に
'cp' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と表示される場合、環境にcpコマンドが存在しません。
/Compiled Executables/cp.exeをダウンロード - nix32 - OSDN
からcp.exeをダウンロードして、windowsフォルダにでも入れておきましょう。
DevQuizやってみました
なんかGoogleのイベントに参加するのに、Quizに答える必要があったので
やってみました。
OAuthまでは調べれば出来たので良かったのですが、しりとりとパックマンは
考える必要があったので出来ませんでした。
しりとりで中途半端なプログラムを書いて2問解いたところで時間切れ。
数学的にものを考えるのが苦手(数学も苦手)なのが本当にネックです。
頑張って勉強してプログラマーになります。
で。今まで避けて通っていたアルゴリズムの勉強を始めました。
![アルゴリズム・サイエンス:入口からの超入門 (アルゴリズム・サイエンスシリーズ 1―超入門編) アルゴリズム・サイエンス:入口からの超入門 (アルゴリズム・サイエンスシリーズ 1―超入門編)](https://images-fe.ssl-images-amazon.com/images/I/41urNqZmz0L._SL160_.jpg)
アルゴリズム・サイエンス:入口からの超入門 (アルゴリズム・サイエンスシリーズ 1―超入門編)
- 作者: 浅野哲夫
- 出版社/メーカー: 共立出版
- 発売日: 2006/10/10
- メディア: 単行本
- 購入: 3人 クリック: 77回
- この商品を含むブログ (27件) を見る
サイエンス!とっても容易な内容だけど、僕にはとっても難しい。