2011/02/19

そろそろモダンな開発環境へシフトしよう(3)

今度は*nix環境。
正直、主だったCUIの操作説明は5分でわかるBazaarユーザーガイド嫁で終わる。
後は、好みに合わせてQBzrかbzr-gtk(olive)を入れるかどうか。

CentOS5は、QBzrを入れるにはPython関連が古すぎて面倒。
それでも、BazaarExplorerを使いたくて挑戦したが、Qt自体が古すぎて諦めた。
その代わり、meldがいい具合に使えそう。
最新版meld1.5はPython2.5以上必須な為、
CentOS5にはmeld1.4が最適。

Ubuntuは、どちらもイケる。
何れにしても、emacsenはdvcで大体満足出来る。
office系とか面倒なdiffは、調査中...

2011/02/15

自家製CMSにはCKEditor + KCFinderがオススメ

CKEditorTinyMCEは好みの問題もあるけど、
両方共に画像等のリソース管理ブラウザー機能が有償ライセンスになっている。
このお陰で同機能を導入出来ない方が多いみたい。
そんな方には、KCFinderがオススメ。
CKFinderと比べて名前が胡散臭い雰囲気だけど、必要機能は実装されている。
各種AjaxなHTMLエディタとの統合は、デモサイトを参照。

そんな訳で、お目当てのCKEditorとの統合に挑戦する。
早速は、それぞれダウンロードしてきて展開する。
今回は取説の通り、全て/var/www/html/* に配置した。
まずは、CKEditorの設定ファイル ( config.js )をKCFinderのサンプルを参考に編集する。


CKEDITOR.editorConfig = function(config) {
   config.language = 'ja';
config.filebrowserBrowseUrl = '/kcfinder/browse.php?type=files'; config.filebrowserImageBrowseUrl = '/kcfinder/browse.php?type=images'; config.filebrowserFlashBrowseUrl = '/kcfinder/browse.php?type=flash'; config.filebrowserUploadUrl = '/kcfinder/upload.php?type=files'; config.filebrowserImageUploadUrl = '/kcfinder/upload.php?type=images'; config.filebrowserFlashUploadUrl = '/kcfinder/upload.php?type=flash'; };


実際に利用する場合は、適宜/kcfinderを変更する。
又、flashを管理しない場合は、filebrowserFlash*を削除する。
尚、KCFinderは日本語言語ファイルが同梱されていない。
本家に翻訳関連の掲示板への誘導があって、そちらに日本語言語ファイルが投稿されている。
残念ながら一部未翻訳な部分などあったので、パッチと言語ファイルを投稿しておいた。
英語に拒否反応を示すユーザーを抱えている方は、良かったらそちらを適用して下さい。

以下、実際の操作画面。
日本語化済みのCKEditor本体


KCFinder連携設定前のイメージプロパティ画面

KCFinder連携設定後のイメージプロパティ画面

KCFinderによる画像表示画面 ( 英語版 )

KCFinderによる画像表示( 日本語版 )

KCFiderでアップロードした画像を
そちらで選択するとCKEditorに埋め込まれる

CKEditorの通常入力に帰ってきた

以下、ハマった点。
  • KCFinderのconfig.php内のdisabled値が'true'になっていて、サーバーブラウザーが起動しなかった。
  • KCFinderでセッションを正しく利用するには、_session*の設定が必要。
セッション関連については、本家のセッション設定を参照。


[追記]
CKEFinder本家Forumにも挙がっていたけど、CKEditorではサーバーブラウザー機能は
ポップアップウィンドウでしか利用出来ない模様。
利用ユーザーがポップアップブロック機能をセキュリティポリシー等で操作出来ない場合は、
TinyMCEで inlinepopupを利用するといい。
ちなみに、Firefoxユーザーで「新しいウィンドウではなく新しいタブで開く」を設定している場合、
開いたポップアップウィンドウのウィンドウサイズでFirefoxのウィンドウ自体がリサイズされて
強烈に使い心地が悪くなるので注意が必要。

[追記2]
CKEditorのライセンスを誤解されているサイトいくつか見受けられるけれど、
本家ライセンスにトリプルライセンス(GPLv3LGPLMPL)、CDL(クローズドソース利用)と明記されている。
いずれも商用利用可能。
但し、CDLは本家記載の利用料が生じる。
トリプルライセンスについては、ソース公開の義務が生じるけれど、JSなんだから通常利用では現状は無問題。
手を加えるにしても、パッチ書いたりしたら明示とフィードバックくらいする...よね?
ちなみに「GPL=売れない」なんてFUDはミスリードなので悪しからず。

※CKEditorのダイアログなどのリサイズ方法をお探しの方は、こちらをどうぞ。

2011/02/13

そろそろモダンな開発環境へシフトしよう(2)

前回で基本構築は完了したので、引き続き各種設定をする。
まずは、Windows環境から。
インストールが完了すると、コンテキストメニューにアイテムが追加される。
TortoiseBZRも入れた場合は、BazaarExplorerと両方ともに追加される。
機能的な重複があるので、個人的には若干微妙。
ただし、適宜使い分けをすれば良さそう。
例えば設定等はコンテキストから呼び出せると楽かも。
インストール後のコンテキストメニュー




















[TortoiseBZRの設定]
TortoiseBZR共々、この設定から開始する。
BazaarExplorerとも連動するBazzarの設定は、「一般Bazaarオプション」から行う。
TortoiseBZRの設定画面1





















2.2でのアイコンオーバーレイ設定は荒いけど、
2.3では少し設定を細かく出来る仕様になっている。
何にせよ、実施するドライブやパスを必要最小限にした方がExplorerの応答が良くなるらしい。
TortoiseBZRの設定画面2





















[一般Bazaarオプション]

※以降の設定画面は、BazaarExplorer側ではきっちりと日本語されているので、
英語に拒否反応を示す方々はそちらをどうぞ。

ユーザー毎の利用環境の設定を指定する。
Name値やEmail値は実行マシン名や実行ユーザー名から自動入力済み。
メールによる伝達等の運用を行う場合は、両値を適宜変更した方が良さそう。
社内1拠点での小規模運用程度なら、利用者氏名やニックネーム等をテキトーに。
Editor値は、BazaarExplorerの設定編集やコミットログ入力等に利用される模様。
未設定の場合は、Notepadが起動する。
E-mail Client値は、コミットログ等に付記される前述メールアドレスをクリックした際に利用するメーラー?を指定する。
Bazaar設定1





















各種外部コマンドのエイリアスを指定する。
試しにWinMergeをwdiff等と指定してものの、後述の外部コマンド呼び出しでは利用されなかった。
利用方法が違うのか?
Bazaar設定2





















 バグトラッカーを指定するらしい。
用途不明につき、調査中。
Bazaar設定3





















スペルチェック?
OSSで日本語のスペルチェッカー何てあるんだろうか?
Bazaar設定4





















差分表示に利用するdffアプリを指定する。
外部dffを利用する場合は、ファイルパス(利用出来るならalias)を指定する。※1
TortoiseSVNでOffice系バイナリデータの比較に触れて以来、
すっかりWinMerge + xdocdiff + SCMのスタックにハマってしまった。
画像のdiffには、TortoiseIDiffを指定してみるもの一興。
Bazaar設定5





















マージ処理時に利用するアプリを指定する。
 ファイルパス(利用出来るならalias)を指定する。※2
Bazaar設定6





















※1,2  日本語が比較対象ファイルパスに含まれると、外部アプリ呼び出し時にエラー終了する。
パッチが存在するものの、メインラインに取り込まれていない。
問題が発生する場合は、
DETROIT.DDO.JP - Bazaar plugins
「Windowsで外部コマンドが起動できないバグを修正するプラグイン」を導入するいい。