2009年10月26日月曜日

便利なクリップボード履歴ソフト

便利なクリップボードソフトを見つけたのでご紹介。

名前は、「CLCL」というフリーソフトです。
http://www.nakka.com/soft/clcl/

Ctrlキーをダブルクリックして起動という設定にし、スタートアップに登録しておくと、
いつでもクリップボードの履歴を閲覧でき、過去のクリップボードからペーストができるので、
いろいろな場面で便利です。

ただ、UNICODEの対応は追加プラグインの導入が必要なので、
それをしないとUTF-8などで文字化けします。

対策は以下の方がされていて参考になりました。
http://kirschfarbe.blog.so-net.ne.jp/2008-07-31
プラグインの場所は以下です。
http://www.nakka.com/soft/clcl/plugin/fmtunicode001.zip

これでUNICODEも対応してくれて、幸せです。

2009年10月25日日曜日

ルビだらけのword文から、正規表現でルビを一括削除。

wordでルビだらけの文章からルビを抜く方法を試行錯誤して、やっと実現したのでメモ。。

word文章からテキストエディタにコピペして、正規表現で置換する方法で、

\(([あ-ん]*)\)

という風に正規表現で置換をかけたら出来た。嬉しいっす。

ちなみにwz editorでの実行なので、他のエディタの場合はどうなのかわかりません。
正規表現って、同じなのかな・・。
正規表現っていうぐらいだから。。

■追記1
半角¥マークはウェブ上ではバックスラッシュとして表示されてますね。。
上記のバックスラッシュ\は、¥マークです。念のため。
(追記1の追記。半角の¥マークは、環境によって¥マーク(便宜上全角で表現します)に見えていたりバックスラッシュに見えていたりするので、「上記のバックスラッシュ\は」という表現は不十分な表現でした。日本語環境では、この半角円マークとバックスラッシュの文字コードが一緒、ということで悩まされますね。)

■追記2
さて、上記の自分にとってはかなり意味不明なことの内訳は以下のようなことのようです。

【¥(】  で半角括弧を文字として認識させ(¥マークを便宜上全角で書いてます。本当は半角。)、
【()】で囲んだ部分をひとつの文字として扱わせ(何文字であってもかわらない、という意味で)、
【[あ-ん]】」という表現でひらがな全部の中から一文字を検索させ、
【*】で「あ-ん」の文字検索が無限回繰り返されるという寸法らしいです。

文系である私に、正規表現はなじみがうすいっすが、実は文系にも正規表現が便利だということがわかった次第でした。

現在、PHPをピヨピヨと勉強中ですが、正規表現マスターには道遠し。。

■追記3
【()】半角括弧でくくると、「一つの文字として扱う」ということがわかりにくかったっす。
でもこれがあると、一括でルビを選択できて、大変便利でした。

■追記4(2010,5,19追加)
現在、PHPでPerl互換正規表現を学習中です。

PHPにて、preg_replaceで行うと、
$text="サンプル(さんぷる)文字列を代入。。。";
$result=preg_replace("/\(.*?\)/","",$text);
echo $result;
などでOKでした。
もしくは、
$result=preg_replace("/\([あ-ん]+\)/","",$text);
みたいな。

2009年10月24日土曜日

xamppでMySQLへパスワード設定するための簡単メモ。

xamppでMySQLのパスワード設定をするための簡単ツールへのアドレスメモです。

http://localhost/security/xamppsecurity.php

◆以下、参考にさせていただいたサイトm(_ _)m
http://www.7438.com/archives/2007/07/20070711_2303.php

MS IMEの辞書データ格納場所メモ(windows7)

windows7でのMS IMEの辞書データの格納場所のメモ。

C:\Users\ユーザー名\AppData\Roaming\Microsoft\IMJP10\imjp10.dic

このファイルをコピーしてきて、辞書ツールの登録で読み込んだらOKになりました。

Chromeの全ブックマーク引継ぎ(windows7)

windows7のRC版から製品版へ、google chromeのブックマークを引きついた際のメモです。
適用は、自己責任で。

C:\Users\ユーザー名\AppData\Local\Google\Chrome\User Data\bookmarks
とbookmarks.bak
を旧環境から新環境にコピペしたら、すべて引き継げました。

2009年10月20日火曜日

MyNETSで「全員マイフレンド」に。

とあるSNSをMyNETSで立ち上げ準備中で、「全員をマイフレンドに」という要望なのでカスタマイズしたメモです。

■まず以下から、0.9.0をダウンロード(テストバージョンじゃなくても大丈夫でした)。

http://blog.justoneplanet.info/2008/09/06/openpneで全員マイフレンドになるphpを書いてみよう/

■ダウンロードしたものを解凍。そして、inc/function.phpの46行目に「$c_member_id = trim($c_member_id); 」の部分を追加。(このtrimを入れないと、重複登録されます。この部分を忘れて、慌てました(^^;)

$c_member_id = mysql_real_escape_string($_GET['c_member_id']);$c_member_id = trim($c_member_id);



■そして、modules/にpc/というディレクトリをつくり、アップロード。

■また、
webapp/modules/pc/templates/new_templates/my_friend_list.tpl
ノ127行目あたりに、
<a href="/modules/pc/add_all_friends/set.php?c_member_id= ({$c_member.c_member_id})">みんなフレンド!</a>

を追加。

■後は、ログインした人ごとに、「みんなフレンド」というリンクをクリックしてもらえば、全員がマイフレンドに登録されます。

社内SNSなどで、全員フレンド状態のSNSを作る際には有益です。

メモでした。

==========================

重要な追記です。
(以下の追記は、いつもお世話になっている、Usagi Project concrete5日本チームリーダーのKatzさんからご指摘いただきました。この場を借りてお礼申し上げます。)

MyNETSは、データベースにprefixを設定できます。
しかし、上記の大本のソースは、元々OpenPNE用でしたので、MyNETS1系prefix対応の部分がありませんでした。
もしMyNETS1系でprefix設定されている方は、以下のソースのように、" . MYNETS_PREFIX_NAME . "を加える修正が必要となります。
修正箇所は四か所です。
ソースにおけるだいたいの行番号は、16行、30行、63行、86行です。

以上、よろしくお願いいたします。

<?php
/**
 * Mitsuaki Ishimoto
 * justoneplanet.info
 * 2009-04-07
 * ver 0.9.0
 * functions.php
/*==========================================================================================*/
/**
 * get all user list
 * @return (array) all users list
 */
function getAllUserList(){
    global $dbh;
    $user_id_list = array();
    $sql = "SELECT DISTINCT `c_member_id` FROM `" . MYNETS_PREFIX_NAME . "c_member`";
    $result = mysql_query($sql, $dbh);
    while($row = mysql_fetch_array($result)){
        $user_id_list[] = $row['c_member_id'];
    }
    return $user_id_list;
}
/**
 * get all combinations
 * @return (array) all users combinations
 */
function getAllCombinations(){
    global $dbh;
    $combination_list = array();
    $sql = "SELECT `c_member_id_from`,`c_member_id_to` FROM `" . MYNETS_PREFIX_NAME . "c_friend`";
    $result = mysql_query($sql, $dbh);
    while($row = mysql_fetch_array($result)){
        $combination_list[] = "'$row[c_member_id_from]','$row[c_member_id_to]'";
    }
    return $combination_list;
}
/**
 * set friends
 * @return (array) result status
 */
function setFriends($user_id_list, $combination_list){
    global $dbh;
    $date = date("Y-m-d H:i:s");
    $msg = MSG_BECAME;
    if(isset($_GET['c_member_id']) && in_array($_GET['c_member_id'], $user_id_list)){
        $c_member_id = mysql_real_escape_string($_GET['c_member_id']);
        $c_member_id = trim($c_member_id);
        $value_list = '';
        for($i=0; $i<count($user_id_list); $i++){
            if($c_member_id != $user_id_list[$i]){
                $register_list = "'$c_member_id','$user_id_list[$i]'";
                if(!in_array($register_list, $combination_list)){
                    $value_list .= ",('',$register_list,'$date','','')";
                }
                $register_list = "'$user_id_list[$i]','$c_member_id'";
                if(!in_array($register_list, $combination_list)){
                    $value_list .= ",('',$register_list,'$date','','')";
                }
            }
        }
        if($value_list != ''){
            $value_list = substr($value_list, 1);
            $sql = "INSERT INTO " . MYNETS_PREFIX_NAME . "c_friend (`c_friend_id`,`c_member_id_from`,`c_member_id_to`,`r_datetime`,`intro`,`r_datetime_intro`) VALUES $value_list";
            $result = mysql_query($sql, $dbh);
        }
        else{
            $msg = MSG_ALREADY;
        }
    }
    else{
        $register_list = array();
        for($s=0; $s<count($user_id_list); $s++){
            for($t=0; $t<count($user_id_list); $t++){
                if($s != $t){
                    $register_list[] = "'$user_id_list[$s]','$user_id_list[$t]'";
                }
            }
        }
        for($i=0; $i<count($register_list); $i++){
            if(!in_array($register_list[$i], $combination_list)){
                $value_list .= ",('',$register_list[$i],'$date','','')";
            }
        }
        if($value_list != ''){
            $value_list = substr($value_list, 1);
            $sql = "INSERT INTO" . MYNETS_PREFIX_NAME . "c_friend (`c_friend_id`,`c_member_id_from`,`c_member_id_to`,`r_datetime`,`intro`,`r_datetime_intro`) VALUES $value_list";
            $result = mysql_query($sql, $dbh);
        }
        else{
            $msg = MSG_ALREADY;
        }
    }
    return $msg;
}
?>

2009年10月16日金曜日

windows7で勝手に休止状態から復帰してしまう。。

http://social.technet.microsoft.com/forums/ja-JP/windowsvistaja/thread/740dc32f-e1a6-4514-bfca-44c5a97daa63/


windows7のRC版で、休止状態から勝手に復帰してしまう、という症状が起きています。
どうも、Vistaでは結構あるようで、対処法が載っていました。
メモメモ。

さて、大丈夫になるかな。。

追記:
大丈夫になりました!
やはりデバイスマネージャーで、LAN関連の設定をし直すのが鍵でした。
情報を上げてくださった方、感謝いたしますm(_ _)m

パスを選択範囲へ(オプションも便利)


photoshopでパスを選択範囲に変換する際のメモ。

パスの選択範囲への変換は、パスパネルで。
その選択範囲を、先の選択範囲に追加するのは、winならALTキーを押しながらパスパネルの「パスを選択範囲に読み込む」をクリック。
その後のダイアログで、ALT+Aで、「選択範囲に追加」するとどんどん選択範囲を追加できる。

便利だな。

参照元:アドビサイト