Home > 2009年11月

2009年11月

macでApache、Perl、SQLite

  • 2009-11-06 (Fri)
  • Perl

Canvasでゲームの戦闘シーンを作るのに飽きたので(!)
気分転換に久々にPerlをやってみる。

といってもmacにperlの環境を構築してなかったので、そこから。
SQLiteを叩けるところまでが目標。

Apache

$ which httpd
/usr/sbin/httpd
入ってた。
起動はGUIでやるらしい。せっかくUnixなのに何かやだ。
かといって毎回「sudo apachectl start」してパスワード入力も勘弁。

じゃ、ソースから入れ直そう。

curl -O http://ftp.riken.jp/net/apache/httpd/httpd-2.2.14.tar.gz
tar xf httpd-2.2.14.tar.gz
cd httpd-2.2.14

./configure --prefix=/Users/t/apache --enable-ssl
make
make install

cd
vi apache/conf/httpd.conf
Listen 8080

vi .profile 
export PATH=/Users/t/apache/bin:/opt/local/bin:/opt/local/sbin:$PATH
source .profile
apachectl start

http://localhost:8080/

よしOK。
(SSLはめんどかったので省略)

Perl

which perl
/usr/bin/perl
which cpan
/user/bin/perl
あった

cpan
ごちゃごちゃ設定・・・はなく自動で終わった。

vi apache/cgi-bin/index.cgi
#!/usr/bin/perl

use strict;
use warnings;

use CGI;

my $q = CGI->new;

print $q->header;

print 'Hello, Perl on Apache on Snow Leopard!!';

chmod a+x apache/cgi-bin/index.cgi

http://localhost:8080/cgi-bin/index.cgi

SQLite

最後。
参考→Mac(Leopard) に DBD::SQLite をいれる時には注意 | Supernova
yohsuke.net ++: DBD::SQLiteのお勉強
Perl と SQLite についてお尋ねします。 PerlとSQLiteを使ったソースを多く見てみたいのですが、 初心者向けのソースがあるHPを紹介していただけないでしょうか? いろ.. - 人力検索はてな

which sqlite3
/usr/bin/sqlite3
あった

sudo cpan
cpan[1]> o conf makepl_arg USE_LOCAL_SQLITE=true
cpan[2]> install DBD::SQLite

mkdir apache/data

vi apache/cgi-bin/sqlite.cgi
#!/usr/bin/perl

use strict;
use warnings;

use CGI;
use DBI;

my $q = CGI->new;

my $db = '../data/test.db';

my $dbh = DBI->connect("dbi:SQLite:dbname=$db");
$dbh->do('CREATE TABLE foo (id integer primary key, name)');

my $insert = $dbh->prepare("INSERT INTO foo VALUES(?, ?)");
$insert->execute(undef,'t');

my $select = $dbh->prepare("SELECT * FROM foo WHERE id=?");
$select->execute('1');
my @row = $select->fetchrow_array;

print $q->header;

print '<pre>';
print "id\tname\n";
print join("\t", @row);
print '</pre>';


chmod a+x sqlite.cgi

http://localhost:8080/cgi-bin/sqlite.cgi

なんか最後のスクリプトがとてつもなく怪しいけど、
一応できた。

うーん、Perl使いへの道のりは遠いなぁ!

Canvasでゲーム〜黒猫に反撃

好評(?)のCanvasで粛々とゲームを作る連載企画(?)。

前回は敵(クロネコ)を登場させました。
しかし、一方的にこちらがいじめられるだけでした。

というわけで、反撃できるようにしました。

攻撃

ダメージを受けたときの挙動が、
「向いている方向の逆に飛ぶ」
なので、端っこで外側を向いている敵に攻撃すると自爆します。

まぁファミコンのゲームとかって、こういう理不尽な仕様あったよね・・・ってことで。

さて、このままだとエンドレスで戦闘が続いちゃうので、
次はダメージ計算でもやってみますか。
(あと、スーパークラス作って、主人公、敵、剣を継承させるようにしなとメンテが大変^^)

Canvasでゲーム〜リファクタリングと影、背景、敵

さて、珍しくまだ飽きずにCanvasプログラミングを続けています。

いつも通り、行き当たりばったりでコードを書いてたら汚くなってきたので、
ここらでリファクタリングしました。
(速度的にはあまりよくないけど、オブジェクト毎にファイルを分けました。
個々のソースは汚いまんまです^^)

ついでに背景と影をつけて、敵を登場させました。
※ 攻撃が効かないので、ひたすらやられるのみですが・・・



次は反撃できるようにします。

MacでFTP(Cyberduck)、画像反転・結合・透過色設定(ImageMagick)

  • 2009-11-01 (Sun)
  • mac

近頃はCanvasでプログラミングしながら、
Macのお勉強をしています。
一石二鳥です。

というわけで今日はFTPと画像編集。

FTP

いろいろ方法はありますが、
Cyberduck | FTP, SFTP, WebDAV, Cloud Files & Amazon S3 Browser for Mac OS X |
を使いました。

FFFTP風じゃなきゃ嫌だって人は、FireFTPがいいみたい。
僕も2ペイン派でしたが、1ペインも意外と使いやすいもんですねー。

画像編集

ペイントツール(Seashore)も使ってみましたが、
せっかくなのでターミナルでやってみました。

まずはMacのパッケージ管理システム、MacPortsを入れます。

終わったらターミナルを再起動後、


sudo port install ImageMagick

と入力しImageMagickをインストールします。(結構時間がかかります。)

これで準備は完了です。
※ ちなみにファイルのDLはwgetの代わりに「curl -O」が使えます。
  (sudo port install wgetで入れればいいんですが・・・)

画像の結合

画像の結合は以下のコマンドを実行します。

縦方向
convert -append src1.png src2.png result.png

横方向
convert +append src1.png src2.png result.png

画像の反転

画像の反転もコマンド一発です。

縦方向
convert -flip src.png result.png

横方向
convert -flop src.png result.png

透過色設定

透過色設定は次の通り。
※ ちなみに画面上の色は、
  アプリケーション > ユーティリティ > DigitalColor Meter
  で確認できます。(Windowsでいう色々の色みたいな感じ)

convert -transparent black src.png result.png
convert -transparent "#007575" src.png result.png

以上、まだまだMacに慣れなくて作業効率が悪くなってしまっている状況ですが、
徐々に使いこなしていきたいと思います。

Home > 2009年11月

Page Top