五十路プログラマmaatinブログ

50歳の誕生日にブログを初めてみました。

無題

[ リスト | 詳細 ]

記事検索
検索

全2ページ

[1] [2]

[ 次のページ ]

Rubricksインストール時の覚え書き-1

以前、職場の情報共有のためにCMSとしてRubricksをインストールした時にはまったところがあるので、ここに書いておく。
(分かってしまえばどうと言うことも無いが、当時Webで調べてもなかなか解決法が見つからなかったので、誰かの参考になればと思う。)

参考URL:インストールガイド(Windows)

インストール環境

・OS:Windows XP (SP3)

Instant Rails のインストール

・以下のサイトから Instant Rails 1.7 をダウンロードする
 http://rubyforge.org/frs/?group_id=904

※インストールガイド記載のURLからダウンロードページへ行くのはちょっと難しいかも。
※なお、Instant Rails は 1.7 を使用すること。2.0 は Rails 2.0 対応のようだが、Rubrics で使用する「Components」機能が廃止されている。

・ダウンロードした「InstantRails-1.7-win.zip」を展開し、任意のフォルダに配置する
※特に支障がなければCドライブ直下に置くのが問題が少ない。以下の例では「C:\InstantRails」に配置したものとする。

・配置したフォルダ内の InstantRails.exe をダブルクリックして起動する
※InstantRails は初回起動時に現在のパスを元に各種設定情報を作成するので、一旦起動するとパス変更が難しい。

・MySqlの設定変更を行う
C:\InstantRails\mysql\my.ini を以下の様に修正する
[mysqld]
datadir=C:/InstantRails/mysql/data
basedir=C:/InstantRails/mysql
bind-address=127.0.0.1
default-character-set=utf8
skip-character-set-client-handshake
    
[client]
default-character-set=utf8
    
[mysqldump]
default-character-set=utf8
    
[mysql]
default-character-set=utf8
※上記設定をしないと全角文字が "????" のように文字化けする。
(僕はこれでハマりました。)

Rubricksのインストール

※ここはインストールガイド通りで問題ない。

・以下のサイトから Rubricks をダウンロードする
 http://rubyforge.org/frs/?group_id=1494

・ダウンロードした「rubricks-XXX.zip」を展開し、任意のフォルダに配置する

・Rubricks で使用するデータベースを作成する
コマンドプロンプトで以下を入力する。
> mysql -u root
mysql> CREATE DATABASE rubricks;
mysql> exit

・ 作成したデータベースにあわせて config/database.yml を修正する
config/database.ymlの設定例
common: &common
        adapter:        mysql
        host:           localhost
        port:           3306
        username:       root
        password:       
        encoding:       utf8

development:
        database:       rubricks_test
        <<: *common

test:
        database:       rubricks_test
        <<: *common

production:
        database:       rubricks
        <<: *common

・rake db:migrateを実行する
コマンドプロンプトで以下を入力する。
> set RAILS_ENV=production
> rake db:migrate

・動作を確認する
Mongrelを起動する。
> ruby script/server -e production

ブラウザで [http://localhost:3000/] にアクセスすると、Rubricksトップページが表示される。
管理者ユーザ(ID:"admin"、Passwd:"pass")でログインする。

(...続く。)

閉じる コメント(3)

閉じる トラックバック(0)

VC++のsizeof演算子のVS2003とVS2005での動作の違い

新システムで VC++ 2003 から VC++ 2005 への移行を行っていて、テストでエラーになったために分かったのだが、VC++ 2003 と VC++ 2005 でsizeof演算子の挙動に違いがある。
VC++ 2003で文字列のアドレスをsizeofすると文字列のサイズを返すのだ。

<VC++ 2003>
char a[10];
 sizeof(&a) → 10

sizeof演算子は対象のサイズを返すので、「&a」はアドレスであり、当然 sizeof1(&a) は 4 になると思っていたが、上記のような結果である。(VC++ 2005 では sizeof1(&a) → 4 になる)
普通、アドレスのサイズなんて取得しないよな。と思っていたが、既存のプログラムでcharの2次元配列のサイズを取得するのに以下のようなコーディングをしているものがあった。

#define A_SIZE 10;
char abc[5][A_SIZE];
int i;
char *bf;

bf = malloc(sizeof(&abc[0]));

memcpy(bf, abc[0], A_SIZE);

VC++2003 では、sizeof(&abc[0]) が 50 を返していたようなので、問題なく動作していたが、VC++2005 になると sizeof(&abc[0]) が 4 を返すので、bf は 4 バイトしか確保されず、memcpyでメモリ破壊を起こしていた。
しかも、上記のようなコードが何カ所もあった。
UNIX出身の僕には到底理解出来ないコードだ。
これはVC++ 2003 のバグなのかと思ってググってみたが、今のところ納得のいく情報が見つかっていない。

閉じる コメント(2)

閉じる トラックバック(0)

VC++の標準Cライブラリ関数のワーニング抑止について

VisualStudio .Net から VisualStudio 2005 へ移行すると、strcpy等の標準Cライブラリの関数に対して "warning C4996" が出力されるようになったので、ワーニングメッセージに従ってコンパイルオプションに "_CRT_SECURE_NO_DEPRECATE" を追加していたのだが、年末に作業用PCを更新し、VisualStudio等の開発環境をインストールし直したところ、いつの間にかまた "warning C4996" が出力されるようになってしまった。
しかも、ワーニングメッセージで使えといっているコンパイルオプションがいつの間にか "_CRT_SECURE_NO_WARNING" に変っている。
このオプションは VisualStudio 2008 の VC++ で "warning C4996" を抑止するものであることは分かっており、「なんでVisualStudio 2005 と違うんじゃ!?」と思っていたのだが、いつの間に 2005 も変ったのか?
ググってみたが、いまのところこのオプションに関する変更の情報が見つかっていない。
しかし、msdnのWebページの記述も変っているようなので、Windows Update あたりで変更になったのかも。
<http://msdn.microsoft.com/ja-jp/library/ms175759%28VS.80%29.aspx>

仕事が忙しくて、今のところあまり詳しく調べている暇がない。

こういうことがあると、せっかく治ってきたMS嫌いがぶり返しそうだ。

閉じる コメント(2)

閉じる トラックバック(0)

UNIX的思考について−2

これも以前担当したシステムでのこと。

全国数百拠点の数千台のサーバ・端末・ネットワーク機器を管理するシステムで、隔週で数拠点ずつ新システムへの移行工事を行うため、構成変更を行った後、その設定情報を変換してシステム運用管理ツールの入力データを生成するツールを開発していた。
ところがそのツールがUNIX初心者の作ったshellスクリプトで、数値の計算までコマンドで実装していたため、変換結果には問題ないものの、1装置あたり1秒弱の変換時間が掛かっていた。
システム移行開始時には変換対象装置が数百台だったため、処理には数分〜数十分で済んでいたが、最終的には変換に数時間掛かる見込みなので、速度改善を僕が担当することになった。
(移行工事が夕方まで掛かり、その後に変換処理を行ってからシステム運用管理ツールに反映する手順だったため、変換に時間が掛かると当日中に作業が終わらないことになり、翌日の業務に支障が出る。)

開発のリーダーは、shellで性能が出ないならCでプログラムを作成するしか無いという意見を言っていたが、普通のUNIX開発者なら、awkでしょう。
ということで、1日位でawkスクリプトに書き直したところ、数十分の処理を数十秒に短縮出来た。最終的にも数分で処理出来る見込みであり、また開発工数も当初見積もりの数分の1で済んだ。
(今だったら、僕はrubyで作るところだな。)

UNIX的な考え方では、十分な性能がでるのであれば手間は最小限になるようにするのが正しい。


アフィリエイト   私のおすすめ:
UNIXという考え方 その設計思想と哲学 [本]

閉じる コメント(0)

閉じる トラックバック(0)

UNIX的思考について−1

以前に担当したシステムでのこと。

そこでは、一年掛かりで全国の設備を旧システムから新システムに移行する計画で、隔週でシステムの構成情報のメンテナンスが必要だった。
そこで、事前に変更後の構成情報を作成し、変更前の差分をリスト出力するプログラムを開発することになった。
もともと、旧システムでも構成変更時の差分リストを出力するプログラムをCで書いていたらしく、見積もりで数Kstepという話だったが、要件を聞けば、「diffの出力でいいんじゃない?」という内容だった。
そこはWindowsのシステムで、diffの話をしてみたが具体的なイメージが分からなかったみたいなので、次の打ち合わせまでにWindows用のフリーのdiffコマンドを見つけ、構成情報の差分リストのサンプルを出力して持っていったところ、出力順を追加・変更・削除の順にしてほしいとの要望が出た。
そこで、次の打ち合わせにはWindows用のawkでdiffの出力を整形した差分リストを持っていったところ、それでほぼOKとなった。

もとの見積もりでは1人月以上の工数が必要だったと思うが、結果的には(その後の試験を含めても)2〜3人日の作業で済んでしまったことになる。

当時はWindows育ちは何でも最初から作りたがる傾向があり(つまり、車輪を何度も発明している訳だ)、対してUNIX育ちは既存の使えるものは大いに利用しようという考え方をする傾向にあったように思う。

閉じる コメント(0)

閉じる トラックバック(0)

全2ページ

[1] [2]

[ 次のページ ]


.

maatin
人気度

ヘルプ

Yahoo Image

  今日 全体
訪問者 2 1362
ブログリンク 0 0
コメント 0 7
トラックバック 0 0

ケータイで見る

モバイル版Yahoo!ブログにアクセス!

モバイル版Yahoo!ブログにアクセス!

URLをケータイに送信
(Yahoo! JAPAN IDでのログインが必要です)

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

標準グループ

登録されていません

開設日: 2010/1/3(日)


プライバシーポリシー -  利用規約 -  ガイドライン -  順守事項 -  ヘルプ・お問い合わせ

Copyright (C) 2012 Yahoo Japan Corporation. All Rights Reserved.