3月
30
2009
2

サーバサイド高機能エディタ ecoder インストール方法

ecoder って何?

ブラウザ上でソースコード編集が可能な開発環境を提供「ecoder」:phpspot開発日誌 で紹介されている、激しく便利そうなエディタです。
ブラウザ上から、こんな感じでサーバ上のファイルを直接編集することができます。

HTML の編集CSS の編集JavaScript の編集PHP の編集

順に、HTML / CSS / JavaScript / PHP を編集している様子です。これらのファイルが、色分けされた状態でブラウザで編集できるなんて、よだれが止まりません。

そこで早速インストールしてみようとしたところ、まだベータ版ゆえか、公式ではいっさいドキュメントが用意されていなかったので、ソースを読みながらインストールした記録を公開することにしました。

対象者

  • PHP の動作するサーバを使用できる
  • Linux 設定について基本的な事を理解している or 自分で調べられる
  • Apache の設定について基本的な事を理解している or 自分で調べられる

ファイルのダウンロードと展開

ecoder のウェブサイトから、tar.gz ファイルをダウンロードして、ecoder を配置したい場所に展開します。
現在の最新版 (ver 0.3.2) の直 DL は http://downloads.sourceforge.net/ecoder/ecoder_0.3.2.tar.gz?use_mirror=jaist&filesize=406946 ですが、まだベータ版の状態なので、インストール時点での最新版を調べて DL した方が良いです。

Windows で作業をする場合は、ブラウザから DL して展開したファイルに対して、後述の設定変更を行った後に、FTP なりでアップすると良いでしょう。
ここでは、Linux 上で作業を完結させるためのコマンドを掲載しておきます。
DL するパスとか展開するパスは、それぞれの環境に合わせて読み替えてください。

$ su -
# cd /usr/local/src/
# mkdir ecoder_0.3.2
# cd ecoder_0.3.2
# wget http://downloads.sourceforge.net/ecoder/ecoder_0.3.2.tar.gz?use_mirror=jaist&filesize=406946
# tar xfvz ecoder_0.3.2.tar.gz
# mv ecoder_0.3.2.tar.gz ../
# cd ../
# cp -a ecoder_0.3.2/ /var/www/www.otchy.net/himitsu
# cd /var/www/www.otchy.net/
# chown -R apache:apache himitsu/
# cd himitsu/
# find -type d -exec chmod 755 {} \;
# find -type f -exec chmod 644 {} \;

※最後の権限変更は、デフォルトの設定がいろいろと気持ち悪かったのでなおしました

設定ファイルの編集

ルートディレクトリ直下にある code.php というファイルに、正しい設定を書かないと ecoder は動作しません。といっても、必要な設定はすべてここにまとめられているので、さほど難しくはないかと思います。
以下では、修正が必要な項目について、本サイトの設定を例に順番に説明します。
まずは、大抵の場合で修正が必要な項目です。

動作させるサイトのドメイン。

$code['domain'] = "http://www.otchy.net/";

クッキーを適用するドメイン。

$code['domain_cookie'] = "www.otchy.net";

編集するファイルのルート。スラッシュから始まるフルパスで記述する。

$code['root'] = '/var/www/www.otchy.net/';

エラーログの出力先。後述の .htaccess の設定と同じパスにする。
事前に Apache ユーザに対して書き込み許可を与えておく必要がある。

$dbug['error_path'] = '/var/log/ecoder/error.log';

続いて、必要に応じて修正するといいかも知れない項目です。

自動セーブ機能をデフォルトで ON にするかどうか。保存即公開の場合は、OFF 推奨。
デフォルト OFF になっていても、画面上から切り替えることが可能。

$code['autosave'] = 0;

自動セーブ機能を ON にした場合のセーブ間隔 (秒)

$code['autosave_time'] = 10;

編集時に裏でバックアップをするかどうか。

$code['backup'] = 1;

ツリービューに表示させるファイルの拡張子。

$_SESSION['tree_file_types'] = array( "php", "js", "html", "css", "txt", "htaccess", "ini" );

アップロードできないようにするファイルの拡張子。

$_SESSION['upload_banned'] = array( "exe" );

ツリービューの中で無視するファイル名。

$_SESSION['tree_file_ignore'] = array ( ".ftpquota" )

ツリービューの中で無視するディレクトリ名。

$_SESSION['tree_dir_ignore'] = array( ".", "..", ".files", ".snap", "logic", "cpanel", "ftp", "00", "01" );

セキュリティと .htaccess 設定

上記の設定を施しただけでも、とりあえず ecoder は動作し、ファイルの編集、保存を行うことができます。
ただ、セキュリティは全く考慮されておらず、URL さえ知っていれば、誰でも編集可能な状態になってしまいます。

実は、ecooder 自体でもセキュリティの仕組みを持っていて、code.php において、$code['secure'] = 1; と設定すれば、認証機能を有効にすることができます。
ただ、この認証は、別プログラムでアカウントを認証し、設定したキー名で PHP のセッションを発行する事により機能するようです。(推測)
既存のシステムにシングルサインオンで組み込むには非常に適した仕組みですが、認証プログラム自体は同梱されておらず、別途作り込む必要があります。

そんな面倒くさい作り込みはしたくないので却下して、ここでは簡単に BASIC 認証を設定しておくことにします。
平文でパスワードが流れるのが嫌な方は、SSL を同時に適用することをお勧めします。
自分専用の編集サイトであれば、おれおれ証明書でも十分ですし。
(その辺の設定については本記事の範疇外ですので別サイトなど参照してください。)

以上を踏まえた、.htaccess の編集箇所は以下の通りです。

ログファイルの出力先の権限を設定

<Files /var/log/ecoder/error.log>
  Order allow,deny
  Deny from all
  Satisfy All
</Files>

ログファイルの出力先を設定

php_value error_log /var/log/ecoder/error.log

BASIC 認証を追加

AuthUserFile /var/www/www.otchy.net/himitsu/.htpasswd
AuthGroupFile /dev/null
AuthName "ecoder login"
AuthType Basic
require valid-user

<Files .htpasswd>
  order allow,deny
  deny from all
</Files>

さらに、.htpasswd ファイルを作成する必要がありますが、ここでは詳しく説明しません。
Apache 同梱の htpasswd コマンドを使うのが一番楽かと思います。

$ htpasswd -c .htpasswd username

以上で、設定は完了です。
ファイル一式を配置したフォルダをブラウザから開けば、高機能なエディタが利用できます。
もし何らかの設定が間違っている場合、ecoder 側で結構丁寧なエラーメッセージを表示してくれるので、それを元に修正していけば大丈夫です。

この ecoder と AjaXplorer を組み合わせて使えば、簡単な開発はもう Web 上で完結できるんじゃないかという気がしてきますね。
すばらしい時代になったものです。

Written by Otchy in: Development | タグ: , , ,
3月
23
2009
2

TinyURL を利用する危険性とその解決策

TinyURL を利用する危険性なんていうのは、おそらく色々と論じられていると思いますが、改めて書いてみます。

大きく分けて、2つの危険性があると思われます。
まず 1 つめは、短縮 URL からはどこに飛ばされるか分からないため、変なサイトにいきなり飛ばされてしまうんじゃないかというもの。
そしてもう 1 つは、TinyURL がサービスを終了してしまった場合に、すべてのリンクが無効になってしまうというもの。

1 つめの遷移先が分からないという問題については、実は TinyURL 自身が 2 種類の解決方法を提示しています。

まず、http://tinyurl.com/XXXXXX という URL に対して、http://preview.tinyurl.com/XXXXXX という URL にアクセスするようにすれば、いきなり遷移せずプレビューが表示されるという機能があります。
自作ツールに TinyURL を仕込む際、セキュリティが不安であればこちらを利用するのがよいでしょう。

次は、http://tinyurl.com/preview.php にアクセスして、プレビュー機能を有効にするというもの。
こちらであれば、クッキーに設定が保存されるので、設定したブラウザで開く http://tinyurl.com/XXXXXX はすべてプレビューされる事になります。
個人的にはこちらを推奨したいです。

いずれの場合であってもリテラシの低い人が引っかかってしまう予防にはなってないですが、そもそも TinyURL だからといって警戒しないような層は、そのドメインがどんなものであっても警戒しないような気がするので、関係ない気がします。

もう 1 つの TinyURL が終了してしまうリスクはどうでしょうか?

これに関しては実はあまり心配ないと思っています。
仮に経営が行き詰まってこれ以上続ける事が出来ない状況になったとしても、経営層がよほど馬鹿でない限り、適切な買い手にサービスを売り渡すと考えられるからです。
現状ほど成長したサービスであれば、サービス自身の売り上げが赤字であったとしても、そのブランドや SEO 的価値を欲しがる企業はいくらでもあるでしょう。

その意味では、短縮 URL サービスを選ぶにあたっては、もっともシェアのあるサービスを選ぶのが安全だと考えられます。
シェアの低いサービスほど、終了された時にそのままデータが失われる可能性が高いからです。

さすがに、天変地異が起きて全てのデータが消えてしまうという状況になったら、短縮 URL から元の URL を取り出せないという事態も起こりえます。ですが、TinyURL ほどのサービスであればディザスタリカバリも恐らく考慮されているでしょうし、そこまで心配するならもう短縮 URL なんか使うな、っていう話なので。

そんなわけで 2 つの危険性について考察してみましたが、1 つめの対策をしっかりとしていれば、さほど心配せずに使い続けてもいいんじゃないかと思います。
逆に TinyURL の後に出てきた新興の短縮 URL サービスなんかは、2 つめの危険性があって、どんなに便利な機能があっても恒久的に表示されるリンクには使う気が起きないですね。

Written by Otchy in: Technology | タグ:
3月
19
2009
2

JavaScript から Twitter API を簡単操作―TwitterAPI.js 公開

JavaScript から簡単に Twitter API を操作する事が出来るライブラリ、TwitterAPI.js を公開しました。
最大のポイントは、Pure JavaScript 実装のためサーバサイドが不要という事でしょうか。
まだテストが不十分な部分も多く残っているので、ベータ版に近いできという意味で、バージョン 0.9.0 を付けています。
不具合の報告などありましたらお待ちしています。

さてそもそも、何で作り始めたかというと、発端は昨日の Twitter 上でつながった会話でした。

特定キーワードに反応してボットにフォローされるスパムフォローってうざくね?

うざいわー

腐女子的にはi/P/h/o/n/e みたいに検索避けするとか

文字数制限きつくね?

全角英数にすればいいじゃん

かっちょわりー

Geek 的にはボット迎撃ボットを作りたいところだ

フォローされたらどうせメールが飛ぶよな

フォロワの一覧から、その場で相手の情報確認と一括ブロックが出来るインターフェースがあれば、それで十分じゃね?

実装何がいいかな?PHP?JavaScript?

JavaScript+BASIC 認証だったら、ユーザのパスワード管理しなくていいから公開するにも好都合だね

JavaScript から Twitter API 呼ぶのにクロスドメインとか面倒くせ

でも楽できるライブラリみつかんね~

作った ←今ココ!

なので、ゴールはまだ先です。
ゴールに向けて TwitterAPI.js もリファインされたりバグが取れたりする見込みです。
出来たらまた公開しますー。

Written by Otchy in: Development | タグ: , ,
3月
16
2009
2

パッとしない桜の写真を鮮やかにする Photoshop チュートリアル

春一番が吹いてからだいぶたつというのに、関東地方は依然として寒い日が続いていますが、気分だけでも春にしようと、ブログの壁紙を桜に代えました。
でも桜の写真って記憶にある鮮やかさとは違って、どうも薄っぺらい印象じゃないですか?そんな桜の写真を記憶に近づけるための修正を行ったので、その過程を公開します。
(まあ、自分で撮った写真じゃないので記憶もへったくれも無いですが…)

元になる写真は、高画質壁紙写真集無料壁紙様からいただきました。

オリジナル加工後の壁紙写真はこんな感じです。

加工後全体的に鮮やかになって、記憶にあるような桜っぽさが増しているのではないかと思います。
では以下で、Photoshop を使った加工について解説します。

レベル補正

写真全体のベースとなる鮮やかさを増すために、レベル補正を行います。高輝度域のスライダを、ピークの手前に合わせるようにすると、寝ぼけた感じが緩和します。このとき、RGB それぞれ別に微調整すると、よりきれいな仕上がりになりますね。

レベル補正(赤)レベル補正(緑)レベル補正(青)明るさ・コントラスト

この調整を行うかどうかは、写真次第で感覚的なものでよいですが、桜写真の場合はコントラストをあげて、明るさを下げると、ダイナミックレンジが広がったような効果が出て桜の色が強調されて出てきます。
好みもあるかと思うので、プレビューを見ながら調整したい部分ですね。

明るさ・コントラスト色相・彩度

ここがキモになる部分です。写真の中で、鮮やかさを強調させたい部分の色域を選択してその部分だけ彩度と明度を上げます。記憶に残る桜が鮮やかなのは、人間の主観の中でこういったフィルタリングを行っている結果ではないでしょうか。

この写真では、桜と背景の山々を鮮やかに見せたかったので、レッド系の色域をピンクあたりまで広げて彩度と明度を上げて、ブルー系の色域を水色あたりまで広げて彩度を上げました。
ブルー系で明度を上げていないのは、元々明度が高く、最初のレベル補正で高輝度域を切り捨ててしまっているため、これ以上明度を上げると白飛びしてしまうためです。

色相・彩度(赤)色相・彩度(青)壁紙としての調整

写真加工としての調整ならばここまでで十分なのですが、ウェブサイトの壁紙として使用する都合上、上に乗った文字が読みにくくならないような修正を行いました。
完成品の写真を見ると、上部に行くほど霞みがかかった感じが分かると思いますが、その加工です。

まず、新規レイヤーを追加して真っ白に塗りつぶします。

新規レイヤー次に、クイックマスクを有効にして黒→白のグラデーションで画面の真ん中あたりまで塗ります。マスク色が赤なのでここではピンク色っぽくなっています。

クイックマスククイックマスクを解除して、グラデーション状の選択範囲が出来たらおもむろに Delete キーを押します。

マスク適用最後に、レイヤー自体の不透明度を 30% に設定して完了です。

不透明度調整まとめ

修正した順番に並べるとこんな感じです。
サイズを落としてしまうと、細かい変化はわかりにくいですね。参考までに。

まとめ

Written by Otchy in: Development | タグ: ,
3月
13
2009
2

別の PC のサービスをリモートで再起動する方法

普段仕事中は、2台の PC を使って作業をしています。
Synergy でキーボード共有をしていてウハウハなのですが、時たま調子が悪くなります。そんなときは、2台の PC のSynergy サービスを再起動すればいいんですが、そのためだけにわざわざサブ PC のキーボードを取り出すのはスマートじゃありません。

そこで、メイン PC から直接サブ PC のサービスを再起動するのですが、リモートでサービスをコントロールする方法が世間では意外と知られていないようなので、紹介してみようと思います。

使うのは mmc.exe というプログラムです。Win2k から標準搭載されています。

まず、Win+R (ファイル名を指定して実行) を呼び出し、mmc とタイプして Enter。mmc を立ち上げます。
次に、Ctrl+M (ファイル→スナップインの追加と削除) を選択し、Alt+D (追加ボタン) を押します。
スナップインの一覧が表示されたらその中から「サービス」を選択し、Alt+A (追加ボタン) を押します。

次がポイントになるのですが、サービスのスナップインを追加しようとする際に、接続先の PC を入力できるようになっています。ここで、Alt+A (別のコンピュータ) を選択し、「\\コンピュータ名」もしくは「\\IP」を入力して、Enter (完了ボタン) を押します。

ここまで出来たら、これまで開いたダイアログを閉じていくと、mmc 上にリモートコンピュータのサービスが参照できるようになっているので、サービスの起動も終了も思いのままになります。
もちろん、メイン PC でログオンしているユーザが、サブ PC の管理者権限を持っている事は必須ですので、その点はご注意を。

さてここではサービスを例にしましたが、mmc に追加できるスナップインはサービスだけでなく、他にも色々な事が出来ます。
その最たる例が「コンピュータの管理」スナップインで、これを追加すれば、リモートコンピュータに対して、サービスの再起動は元より、共有フォルダの追加、ローカルユーザの追加、イベントログの参照 etc. の事が出来てしまいます。

また、頻繁に使うようならば、開いたスナップインの状態を *.msc ファイルとして保存する事も出来ます。
*.msc ファイルのデフォルトの保存先はスタートメニューの管理ツール内で、次にそれを選べば関連づけられた mmc がすぐ立ち上がるという親切設計です。

そんなわけで、一度使うと手放せないツール mmc 。複数台の PC を使うならお勧めです。

Powered by WordPress | Aeros Theme | TheBuckmaker.com