2013年1月16日水曜日

redmineのインストール

Redmineはwebベースのプロジェクト管理ソフトウェアです。タスク管理、進捗管理、情報共有が行えます。ソフトウェア開発やwebサイト制作などITプロジェクトでの利用に最も適していますが、それ以外の業務でも幅広く活用できます。

オープンソースソフトウェアですので、誰でも自由に利用できます。


プロジェクトの進捗管理は重要ですよね。ってことでredmineを導入しようと試みてみましたよ。
まずはCentOS5.8に入れようとして、RMagickが入らなくてハマリましたよ。

結論から言うとImageMagickの最新版6.8.xにRMagickが対応してないですよっていうことでした。

ですので、ImageMagickの6.5.8をインストールすればできました。

基本的にはRedmine2.2をCentOS6.3にインストールする手順を参考にすすめました。

違ったのは下記2点でございます。

  • libyamlをソースからインストールした
  • ImageMagickはyumからではなくて、ソースから最新版ではなくて、6.5.8をインストールした

libyamlをソースからインストール


libyamlはEPELレポジトリを追加してとあるんですけど、
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm を取得中
警告: /var/tmp/rpm-xfer.v8PdyA: ヘッダ V3 RSA/SHA256 signature: NOKEY, key ID 0608b895
エラー: 依存性の欠如:
rpmlib(FileDigests) <= 4.6.0-1 は epel-release-6-8.noarch に必要とされています
rpmlib(PayloadIsXz) <= 5.2-1 は epel-release-6-8.noarch に必要とされています
# yum install rpm-devel
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
base | 1.1 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
Setting up Install Process
Package rpm-devel-4.4.2.3-28.el5_8.x86_64 already installed and latest version
Package rpm-devel-4.4.2.3-28.el5_8.i386 already installed and latest version
Nothing to do


って感じでインストールできなかったので、いっそソースからインストールしました。
libyaml
wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
tar zxf yaml-0.1.4.tar.gz
cd yaml-0.1.4
./configure
make
sudo make install



ImageMagick-6.5.8-10をソースからインストール

yumからインストールしたImageMagickだと古くてRMagick2.13がはいりませぬ。
なのでまずはソースから6.8.1-9をインストールしてやってみるけどだめなんすよ。
参考

最終的に「'InitializeMagick' is deprecated...」とかなんとかってエラーになりまして
.soはなんぞや?とか色々紆余曲折を経てImageMagickの最新版じゃRMagick入らないんじゃん!
というところへ行き着きます。
そしてImageMagick-6.5.8-10.tar.gzをインストールして、あとは手順通りでめでたしめでたし。

2013年1月3日木曜日

Bloggerの記事をFacebookでシェアしようとして自動的に付加された説明が記事ではなくてブログのdescriptionっぽくてどうにかならないかと悩んだ挙句Facebookなんかやめちまえばいいんだと思った。

Bloggerの記事をFacebookでシェアしようとして自動的に付加された説明が記事ではなくてブログのdescriptionっぽくてどうにかならないかと悩んだ。

FacebookのOpen Graphのとことか見たり、ブロガーのテンプレートのHTML覗いたりして、metaタグで設定するみたいだからどうにかなるとしてもちょっとめんどくせぇなと思った。

しかし、ここでgoogle+ではちゃんと記事の説明が付加されていることに気づいた。
いやほんとわざと不便にしてるんじゃないかとかは思うよ。うん。でも俺はgoogle信者だからいっそFacebookなんかやめちまえばいいんだと思ったわけさ。
まぁなぜか知り合いがFacebookで次々と現れるからFacebook使おうとしてたが、そもそもSNSとか基本めんどくせぇからGoogle+に生息するってことでいいんじゃねぇかな。


2013年1月2日水曜日

iPhoneがiPhoneなのは何故なのかが気になるのでパケットキャプチャしちゃうぞ^ー^

佐藤正伸さんは今wiresharkでパケットキャプチャしてあんなことやこんなことをしています。
なんのパケット覗いてるかって言うとiPhoneです。
squidで自PC経由させて覗いてます。ちょっと回りくどいような気もします。
CCNAやってた頃を思い出します。懐かしい。

事の発端は、スマホっていうのはWi-Fiからつないだ時点でPCと区別がつかなくなるはずなんじゃ?って思ったのでPCからiPhoneのフリしてapp storeにつないだり、アプリをごにょごにょしたりしてます。


要は好奇心ってことですねきっと。仕事関係ってのも多少ありますけども。


app storeのアプリって普通にsafariで開いた時とuser-agent違うんですね。

あとネイティブアプリかと思ったらウェブアプリだったりしたのとかちょっと驚いたっす。っていうかそんな上手にアニメーションできる時代なんすねみたいな。自分の技術不足実感する瞬間であります。

あ、これだけは言っときますが、誰かの不利益になるような事はしませんよ!

というわけで(?)wiresharkでパケットキャプチャする時のフィルターの仕方をついでにメモっときます。

 古い情報をみて混乱したけど、起動時の画面からインターフェースをダブルクリックしてinterface毎に設定するようになったってのがミソですね。
詳しくはWireshark 1.8 でちょっと変更された事 をどうぞ。
参考にさせていただきました。

2012年12月13日木曜日

Zend Frameworkでつくるソーシャルゲーム 第4回 Zend_Application_Resource_Db

毎度どうも佐藤です。

Zend Frameworkでつくるソーシャルゲーム第4回まできました。

ブログで書いたシリーズ物では最長ではないでしょうか(爆)

今回はZend FrameworkからDBを利用できるようにします。
ここみたら終わりますが→利用できるリソース-Zend Manual
それはそれという事にして始めましょうか。

まずは設定ファイルをiniからymlに変更します。

(個人的にiniよりymlが好きなので)

NetBeansから編集していきますよ!

iniをいじる前にindex.phpを変更します。(別にどっちからでもいいんですが)

23行目あたりのZend_Applicationをインスタンス化しているところにiniファイルを指定しているところがあるのでそこをymlに変えます。
//public/index.php
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.yml'
);


index.phpはこれで終わりです。CTRL+Sで保存しておきましょう。

次は「application/configs/application.ini」を編集します。

まずはapplication.iniを右クリックして拡張子をymlに変更します。

それから当然中身も書き換えなければならないのでyml風に書き換えます。
CTRL+Hとかうまく使ってささっと書き換えてください。
これを
;application/configs/application.ini
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1



こんな感じにします。
#application/configs/application.yml
production:
  phpSettings:
    display_startup_errors: false
    display_errors: false
  includePaths:
    library: APPLICATION_PATH/../library
  bootstrap:
    path: APPLICATION_PATH/Bootstrap.php
    class: "Bootstrap"
  appnamespace: "Application"
  resources:
    frontController:
      controllerDirectory: APPLICATION_PATH/controllers
      params:
        displayExceptions: false

staging:
  _extends: production

testing:
  _extends: production
  phpSettings:
    display_startup_errors: true
    display_errors: true

development:
  _extends: production
  phpSettings:
    display_startup_errors: true
    display_errors: true
  resources:
    frontController:
      params:
        displayExceptions: true



参考
Zend_Config_Yaml

書き換えが正常にできたか確認

これでまずは実行してみてください

余分なスペースとかインデントにタブ使ったりするとエラーがでたりします。
:の前にスペースはいってたらダメで5分ハマリました。
前回と同じくWelcome to the Zend Framework!が見えてればミスはないと思われます。
もしエラーがでてたらZendServerのMonitor→LogsとかからPHPエラーログあたりを見て原因をさぐり修正してください。
多分今のところスペルミスとか、無駄なスペースが・・・とかインデントが・・・とかよくあるケアレスミスだと思います。

DBの設定をymlに記入

表示できたらresourceのところにdbの設定を追記します。
※今動作しているlocalのサーバはこのブログの通りならdevelopmentですが、developmentはproductionの設定を継承しているのでどちらの箇所でも大丈夫です。

resources:
    db:
      adapter: Pdo_Mysql
      params:
        dbname: dragonfantasy
        username: dragon
        password: fantasy
        host: localhost


とかいう具合に。
追記したらまた実行して書き方にミスが無いか確認します。

コントローラからDBを呼び出す

正常なら「application/controllers/IndexController.php」を編集します。
indexAction()でDBからデータを取り出してみます。
public function indexAction()
    {
        $db = $this->getInvokeArg('bootstrap')->getPluginResource('db')->getDbAdapter();
        $db->query('set names utf8');
        $res = $db->fetchRow('select id,name from dfaccount where id=1');
        Zend_Debug::dump($res);
    }


どうでしょうか?DBから正常にデータを取り出せましたか!?
できなかった方は画面やlogファイルに書かれたエラーメッセージを元にがんばってみてください!
最後眠くなって来てたので何か書き間違えたかもしれないけれど・・・(ぇ
何か突っ込みどころがあれば気軽にコメントください。

Zend Frameworkでつくるソーシャルゲーム-第3回 DBの設定

二日目に続きました。おめでとう俺。

Zend Frameworkでつくるソーシャルゲーム

第3回はDBの設定です。


MySQLのユーザの作成とテスト用テーブルの作成までやります。

まずはユーザの作成です。

MySQL Workbenchを起動します。
ZendServerと一緒にMySQLがインストールしてあれば、既にworkbenchの方でコネクションが設定されていると思います。
rootでパスワードなしで接続可能な状態になっているはずです。
ローカルでしか動かしてないうちはあまり問題無いとは思いますが、念のためrootにパスワードを設定し、さらに開発で使うユーザを作成します。
ServerAdministrationからLocal_MySQL_Zendserver51とかそんなのをダブルクリックして接続します。
Users and PrivilegesからAdd Accountでユーザを追加します。
設定例

まずLoginタブ

Login Name:dragon
Limit Connectivity to Hosts Matching:localhost
password:fantasy

次にAdministrative Rolesタブ

DBManagerにチェックいれる
Applyボタンを押して完了

開発用DBの作成

ユーザーの追加が完了したらそのServerAdministrationのタブを閉じて、New Connectionから先ほど作ったユーザーで接続しましょう。
接続したら左上の左から3番目のアイコンをクリックして(Create a new schema in the connected server)開発用のDBを作りましょう。
name:dragonfantasy
collation:utf8-utf8_general_ci
Apply
Apply
Finish!

テーブルの作成

ついでにテスト用にテーブルを作っておきます。
できあがったDBのアイコンをダブルクリックしてTablesのところを右クリック→Create table
table name:dfaccount
collation:utf8-utf8_general_ci
engine:InnoDB
Columns
id int PK NN AI
name varchar(45) NN
という感じで適当に。

テスト用データの挿入

テーブルが作成できたらテーブルを右クリックしてedit table dataからテスト用データをいれておきます。
nameだけいれてapplyすればOKです。
idはAIにチェックを入れ忘れてなければ自動ではいります。

とりあえずMySQL側の準備はこれで完了です。
意外と長くなったので続きは第4回にします。