月: 2012年1月

色コード取得に便利なGoogle Chrome 拡張機能

投稿者:isc_blog

WEB制作中にこのGIFのバックの色なんだっけ・・・って思って調べるのにいちいち画像ソフト立ち上げなくてすむGoogle Chrome 拡張機能を見つけました!

Eye Dropper

要するにカラーピッカーなんですけど、WEB制作中(主に修正中)にブラウザとテキストエディタで終わっちゃうとPCが重くなくて良い!

年度末なので
テキストエディタ(愛用の秀丸こちゃん)×5枚くらい・・・エクセル多数・・・ワード1枚・・・ブラウザ二種類・・・Eclipse・・・xampp・・・Thunderbird・・・etc…
立ち上げ過ぎなのでたすかります。

2012年1月27日

CodeIgniter2.x 系のバッチとして呼び出し について訂正

投稿者:isc_blog

先日、CodeIgniterをバッチとして呼び出せるようにしたいという記事の中で cron.php を使って・・・という説明を展開したのですが、CodeIgniter2.X系ではもっと簡単な方法があることがわかりましたので訂正させてください。

CodeIgniter 日本語版のユーザガイド(ここではver.2.0.3)の記事がありました。
↓↓

CLI からの実行 : CodeIgniter ユーザガイド 日本語版.

こちらの説明を引用させてください。
[php]
<?php
class Tools extends CI_Controller {

public function message($to = ‘World’)
{
echo "Hello {$to}!".PHP_EOL;
}
}
?>
[/php]
このようなコードをtools.php というファイル名で
application/controllers に保存します。

ブラウザからは
http://example.com/index.php/tools/message
というURLで呼び出せます。

結果は
「Hello World!」と表示されます。

これをターミナル(コマンドプロンプト)から呼び出す方法が下記の通りです。

[java]
$ cd /path/to/project
$ php index.php tools message
[/java]
これで
[java]
$ Hello World!
[/java]
と表示されます。

[java]
$ php index.php tools message "John Smith"
[/java]
URL の引数と同じように引数を渡すことができます。”John Smith” を引数として渡すことで、次のように表示されます。
[java]
$ Hello John Smith!.
[/java]

・・・これだけでした。
前回の記事は全部訂正です。
すみません。

2012年1月19日

WordPress用スパム投稿対策プラグイン「Throws SPAM Away」がトラックバックスパムにも対応しました。

投稿者:isc_blog

今回、WordPress用海外からのスパム投稿対策プラグイン「Throws SPAM Away」にもう一つ機能を追加しトラックバックにも対応するようにしました。

現在まで「Throws SPAM Away」で対応している拒否(無視)方法は下記のとおりです。

・日本語を含まないコメント投稿を無視する(日本語を○文字以上含まないといけないしきい値設定付き)
・特定キーワードを設定しそのキーワードが含まれている場合は日本語での投稿でも無視する(複数キーワード指定可・特定キーワード拒否機能のみの使用も可能)
・上記それぞれに対する警告文及び警告文の表示時間の設定(共通)
・上記の設定をトラックバックにも適用するか設定
・トラックバックにも適用した際についでに自サイトのURLが含まれているかのチェックをするか設定

以上です。

このプラグイン開発のきっかけになったコンセプト「管理工数を減らす」という観点から一貫して「捨てる」ということにこだわっているため
ログ出力やDBへの格納は行なっていません。

海外からのスパム投稿・スパムトラックバックでそのたびに来るメール及び投稿の削除管理工数を削減したい方におすすめです!

また、WordPressのプラグインサイトで前バージョンまで英語でインストール方法を記述しておりましたが、よく考えたら日本人以外このプラグインを利用する方はいらっしゃらないと思いますので日本語にしました。(気づくの遅いw)

http://wordpress.org/extend/plugins/throws-spam-away/

2012年1月18日

WordPressのコメントの表示を日付降順(新しいものが上)に変えてみたい

投稿者:isc_blog

WordPressで制作中のサイトでコメントを多用するところがありまして、一番上が最新のものにしたいという要件がありました。

で、調べたのですが、2通りありまして・・・

こちらの記事を参考にしたもの

コメントを昇順/降順で表示【WPCMS.jp】.

foreach でコメントを表示しているところを下記のように変更する。
[php]
<?php foreach (array_reverse($comments) as $comment) : ?>
[/php]

・・・あれ?
今回のテーマにはそんな記述はないです・・・
wp_list_comments();
っていうメソッドで表示されてます。

・・・ということで検索した記事がこちら

wp_list_comments array "reverse_top_level" => true ;

引用元: wp_list_commentsで表示される投稿順序をかえてみる | photopoto.net.

wp_list_comments(); の部分を下記のように変更します。
[php]
wp_list_comments( array( "reverse_top_level" => true ) );
[/php]

これでOKです!

2012年1月13日

Poderosaで複数サーバーへドンドン接続しちゃうマクロ

投稿者:isc_blog

ログ監視とか複数サーバーで同時に作業を行うことが多い方に・・・
Poderosaというターミナルアプリケーション(Windows用)で複数のサーバーに一気につないじゃう(そして必要であればコマンドも複数発行しちゃう!)方法を教えます。

Poderosaの詳細は下記より
Terminal Emulator Poderosa
※ただし、上記は開発が終了しておりますのでアプリケーション本体は下記からダウンロードしてください。
Poderosa Project on sourceforge ※sourceforgeにて開発が再開したそうです。

ちなみに動作確認は4.3.5b にて行いました。

まずはどんなことになるのか画像にてご紹介します!

—- やり方はここから —-
Poderosa(予め接続サーバー数分割しておくと便利!)
まずはPoderosa本体を起動します。
Poderosaは画面を分割出来てすごく便利なので、例えばこのように4分割も出来ますし
縦に6分割とかも出来ます!超便利!


マクロ登録
後にご紹介するスクリプトをファイルにしたものをマクロとしてPoderosaに登録します。
マクロファイルの配置はPoderosaのインストールフォルダ内のMacroフォルダでいいと思います。
メニューから[ツール]→[マクロ]→[環境設定] をクリックします。


マクロ設定
初めて登録する場合は画面の「新規」ボタンを押して
「タイトル」「ファイル」(マクロファイルの指定)、「追加のアセンブリ」(今回不使用)と
「このマクロを実行するときトレースウィンドウを開く」(任意)を設定します。
例では
タイトル「複数ログイン」
ファイル「(Poderosaインストールフォルダ)\Macro\MultiAutoLogin.js」
そして
「このマクロを実行するとき~」でログウィンドウを出すようにしてます。


マクロ実行!
登録が終わったらメニューから実行します。
[ツール]→[マクロ]→[複数ログイン(※例の場合)]と選択すると実行します。


実行結果は・・・こんな感じ
↓↓↓↓
実行後
ポコポコっとログイン処理(+コマンド)を行い
処理完了でメッセージ表示します。
※これ、不要かもしれないですね・・・
※不要な方は「env.Util.MessageBox(“処理終了しました!”);」をコメントアウトなり削除なりしてください。
で、そのマクロは下記のソースになります。
このソースをコピペして必要箇所を適宜修正したあと
UTF-8エンコード(bomなし)にてファイル作成します。
ファイル名を「MultiAutoLogin.js」にします。
で、~やり方~の通り設定してみてください。

「ターミナル1」~「ターミナル4」の部分は3まででもいいし逆に8まででもOKです。
増減は配列の数(カギ括弧内の数字)に気をつけてコピペ・削除してください。

[java]
/**
* 複数の接続を一気に行うマクロ
* MultiAutoLogin.js
*/
import Poderosa;
import Poderosa.ConnectionParam;
import Poderosa.Terminal;
import Poderosa.Macro;

var env = new Environment();

// エンコード ※エンコードはすべてUTF8のつもりで書いています。
var ENCODE_TYPE = EncodingType.UTF8;

// 接続先リスト
var hostList = new Array();

// —- ターミナル1 —-
hostList[0] = new Array();
hostList[0][‘host’] = "www.example.ext"; // ドメイン OR IP
hostList[0][‘id’] = "hogeuser"; // ログインアカウント
hostList[0][‘pwd’] = "hogepass"; // ログインパスワード
hostList[0][‘title’] = "Terminal 1"; // タブのタイトル
// 実行コマンドがあれば定義
hostList[0][‘commands’] = new Array(); // コマンド発行の場合必要(任意)
hostList[0][‘commands’][0] = "pwd"; // コマンド1(任意)
hostList[0][‘commands’][1] = "ls -lat"; // コマンド2(任意)

// —- ターミナル2 —-
hostList[1] = new Array();
hostList[1][‘host’] = "www.example1.ext";
hostList[1][‘id’] = "hogeuser";
hostList[1][‘pwd’] = "hogepass";
hostList[1][‘title’] = "Terminal 2";
// 実行コマンドがあれば定義
hostList[1][‘commands’] = new Array();
hostList[1][‘commands’][0] = "cd /var/www/html";
hostList[1][‘commands’][1] = "pwd";

// —- ターミナル3 —-
hostList[2] = new Array();
hostList[2][‘host’] = "www.example2.ext";
hostList[2][‘id’] = "hogeuser";
hostList[2][‘pwd’] = "hogepass";
hostList[2][‘title’] = "Terminal 3";
// 実行コマンドがなければ定義しなくて良い
// hostList[2][‘commands’][0] = "cd /var/www/logs";
// hostList[2][‘commands’][1] = "tail -f error_log";

// —- ターミナル4 —-
hostList[3] = new Array();
hostList[3][‘host’] = "www.example3.ext";
hostList[3][‘id’] = "hogeuser";
hostList[3][‘pwd’] = "hogepass";
hostList[3][‘title’] = "Terminal 4";
// 実行コマンドがなければ定義しなくて良い
// hostList[3][‘commands’][0] = "";

// SSH接続
for (var i = 0; i < hostList.length; i++) { var conn = connect(hostList[i][‘host’], ConnectionMethod.SSH2, 22, ENCODE_TYPE, hostList[i][‘id’], hostList[i][‘pwd’], hostList[i][‘title’]); if (hostList[i][‘commands’]) { if (hostList[i][‘commands’].length > 0) {
for (var j = 0; j < hostList[i][‘commands’].length; j ++) {
sendln(hostList[i][‘commands’][j], conn);
}
}
}
}
env.Util.MessageBox("処理終了しました!");

// SSH接続
function connect(host, method, port, encoding, id, password, title) {
var param = new SSHTerminalParam(method, host, id, password);
param.Caption = title+"["+host+"]";
param.Port = port;
param.Encoding = encoding;
var connection = env.Connections.Open(param);
return connection;
}

function sendln(s, connection) {
connection.TransmitLn(s);
}
[/java]

※このソースはもともとPoderosaインストールフォルダのMacroのSampleにあったソースを参考にして組み立てました。
※ソース内にもありますがUTF8ではないサーバーが含まれる場合はエンコードも条件として追加すればOKです。(’title’同様にすればいいはず・・・)
※ちょっとコマンド実行できない場合があります。プロンプト待って実行という風に改造できればいいんですが・・・

この記事で「助かった~!」という方がいらっしゃいましたら幸いです。

2012年1月9日

Poderosaでcygwin 1.7に接続する方法

投稿者:isc_blog

ずっと愛用していた Poderosaというターミナルアプリケーション。
Windows上で開発しているとログを見るためにCygwinを入れてやってます。

で、この2つが以前は接続できてたような気がしたのですが・・・
現在のPC環境「Windows7 professional(64bit)」に上記インストール(Poderosa4, Cygwin1.7.9)状態でPoderosaからCygwin接続しようとしたところ

「レジストリキー SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/ がみつかりません。」

というエラーメッセージが出てつながりませんでした・・・

で、まぁ要するに作ればいいんだろうな・・と思いながらGoogle先生に聞いてみたところ、下記の記事を発見しました。

うえちょこ@ぼろぐ» [cygwin]WinXP+Poderosaでcygwin 1.7接続.

ああ、やっぱりそうすればいいんだ~と思いながら記事を読むと・・・
「Poderosaをcygwin 1.7対応させたパッチと、パッチ済みバイナリを配布している方がいらっしゃいます。」
という文言が・・・

で、そちらからパッチ済みバイナリをいただきまして
現在のPoderosaをアンインストールしそちらを解凍して使用しています。(インストール作業不要みたいです。)

Poderosaのcygwin1.7対応 – doda の日記
元記事の うえちょこ@ぼろぐ さんの方から読むと経緯がわかります!

※後日、追記
dodaの日記著者様よりコメントがありました。ありがとうございます!
現在はPoderosaの開発がsourceforge.netにて再開しているようです。そちらから4.3系のバイナリーをダウンロードしてください!

私はPoderosa-4.3.5b-bin.zip (1.6 MB) をダウンロードしました!

2012年1月6日

LinuxでMySQLでディレクトリ内のSQLファイルをバシバシ流すシェルスクリプト

投稿者:isc_blog

2012年一発目の記事ということで・・・まずはご挨拶。
あけましておめでとうございます!
本年もよろしくお願いします。

ということで本題(笑)

LinuxへのWEBアプリのインストールとかで
MySQLへのデータ投入がめんどくさかったので作ってみました。
同一ディレクトリにある「.sql」拡張子のファイルをどんどん流すだけ・・・というシンプルなものです。

こんなの需要があるかわかりませんが社内向けも兼ねて備忘録的に掲載しておきます!

※下記内容を 「test.sh」などの名前で作成します。
[perl]
#!/bin/bash

db_user="hogeuser" #ここを適宜書き換え
db_pass="hogepass" #ここを適宜書き換え

files="*.sql"

for filepath in ${files}

do
#mysqlへのパスはとおっているものとします。
mysql -u ${db_user} -p${db_pass}<${filepath}
echo — ${filepath} Finished.
done
[/perl]

作成したら
起動できるように属性変更します。
[perl]
chmod 755 test.sh
[/perl]

その後、このファイルをSQLファイルがいっぱい入ったディレクトリにコピーし
起動します。

[perl]
./test.sh
[/perl]

実行結果はこんな感じに出ます。
[perl]
[tsato@kingserver sql]$ ./test.sh
— TEST_CREATE.sql Finished.
— TEST_MASTER.sql Finished.
— TEST_DATA_1.sql Finished.
— TEST_DATA_2.sql Finished.
— TEST_DATA_3.sql Finished.
— TEST_DATA_4.sql Finished.
— TEST_DATA_5.sql Finished.
— TEST_DATA_6.sql Finished.
— TEST_DATA_7.sql Finished.


[/perl]

終わったら終わりです。

もっと高機能なスクリプトどこにでもありそうですが・・・・(笑)
一応参考まで。

2012年1月5日