<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>アキラのＩＴメモ</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/" />
    <link rel="self" type="application/atom+xml" href="http://akira-site.net/computer/atom.xml" />
   <id>tag:akira-site.net,2008:/computer//5</id>
    <link rel="service.post" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5" title="アキラのＩＴメモ" />
    <updated>2007-04-20T19:35:27Z</updated>
    <subtitle>ＩＴ関係、技術関係のメモです。</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.33-ja</generator>
 
<entry>
    <title>二段組で最後のページをあわせる</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000465.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=465" title="二段組で最後のページをあわせる" />
    <id>tag:akira-site.net,2007:/computer//5.465</id>
    
    <published>2007-04-20T19:31:21Z</published>
    <updated>2007-04-20T19:35:27Z</updated>
    
    <summary>二段組み (two column)の文章で、最後のページが左右均等になるようにあ...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="LaTeX" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>二段組み (two column)の文章で、最後のページが左右均等になるようにあわせないといけないということになっていろいろ試してみたんですが、2段ぶち抜きのfigureを最後のページの下部に無理やり入れることでなんとかなりました。以下は書き方です。</p>]]>
        <![CDATA[<pre>
\usepackage{nidanfloat}

% 文章の一番最後
\begin{figure*}[b]
\begin{minipage}[b]{\textwidth}
\vspace*{6cm}  % ここの値を微調整していく
\end{minipage}
\end{figure*}

\end{document}
</pre>
<p>こんな感じです。もう少し良いやり方があるかもしれませんが。なお、下部に二段ぶち抜きの図をいれるために、nidanfloatというパッケージが必要なようです。</p>]]>
    </content>
</entry>
<entry>
    <title>シリアルポートの通信</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000464.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=464" title="シリアルポートの通信" />
    <id>tag:akira-site.net,2007:/computer//5.464</id>
    
    <published>2007-04-06T11:36:53Z</published>
    <updated>2007-04-06T11:54:15Z</updated>
    
    <summary>Windows上にてシリアルポートを使った通信をしようと思い、JAVAやPerl...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="C言語" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>Windows上にてシリアルポートを使った通信をしようと思い、JAVAやPerl、Cなどいろいろな言語で試してみたのですがなかなかうまくいかず、結局cygwin＋C言語で書きました。以下はその時のメモです。<a href="http://www.si-linux.co.jp/wiki/cat/index.php?%A5%B7%A5%EA%A5%A2%A5%EB%A5%DD%A1%BC%A5%C8%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0">ここのプログラム</a>を参考にしました。</p>]]>
        <![CDATA[<p>単純にシリアルポート（COM1）から読み込んできたバイナリデータを出力するのはこんな感じに書けばOKです。</p>
<pre>
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;unistd.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;string.h&gt;
#include &lt;termios.h&gt;
#include &lt;time.h&gt;

void main() {
  int fd;
  struct termios tio;

  // open and set port
  fd = open(&quot;/dev/COM1&quot;, O_RDWR);
  memset(&tio, 0, sizeof(tio));
  tio.c_cflag = CS8 | CLOCAL | CREAD;
  tio.c_cc[VTIME] = 100;
  cfsetispeed(&tio, B57600);
  cfsetospeed(&tio, B57600);
  tcsetattr(fd, TCSANOW, &tio);

  // read from serial port
  while(1){
    int i;
    int len;
    unsigned char buffer[256];
    if ((len = read(fd, buffer, 256)) &lt; 0) {
      exit(0);
    }
    for(i=0; i&lt;len; i++){
       printf(&quot;%02X &quot;,buffer[i]);
    }
  }
}
</pre>]]>
    </content>
</entry>
<entry>
    <title>メールの自動返信</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000463.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=463" title="メールの自動返信" />
    <id>tag:akira-site.net,2007:/computer//5.463</id>
    
    <published>2007-03-02T03:19:35Z</published>
    <updated>2007-03-02T03:25:35Z</updated>
    
    <summary>自分のメールを受信拒否するようにとのわけのわからない依頼を受けどうしたものかと思...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="Linux Tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>自分のメールを受信拒否するようにとのわけのわからない依頼を受けどうしたものかと思っていたのですが、簡単にmaildropを使ってやってみる事にしました。単純に、特定のアドレスから来たメールに自動返信するようにしているだけです。さくらのレンタルサーバでの設定例です。</p>]]>
        <![CDATA[<p>まず、/home/account/MailBox/mailacount/.mailfilterを以下のように記述します。日本語を使わない場合は-c ISO-2022-JPは要らないでしょう。わからなければmaildropとmailbotのmanを見れば分かるはず。多分。</p>
<pre>
if (/^From:*!.*/ &amp;&amp; lookup($MATCH2, "rejectlist"))
{
to "| mailbot -c ISO-2022-JP \
-t /home/account/MailBox/mailaccount/reply \ 
-A 'From: Mail Delivery System &lt;hoge@hoge.com&gt;' \
/usr/sbin/sendmail -t"
}
</pre>
<p>次に、/home/account/MailBox/mailaccount/replyに返信内容を書きます。適当に。</p>
<pre>
I'm sorry to have to inform you that the message could not 
be delivered to one or more destinations.
</pre>
<p>また、拒否をするリストを/home/account/MailBox/mailaccount/rejectlistに書きます。</p>
<pre>
test@test.com
hoge@hoge.hoge
</pre>
<p>以上で完了です。rejectlistに書かれている人からのメールは自動的にreplyの内容で返信されます。replyの内容を日本語にしたい場合は、ISO-2022-JPで書いておけば多分大丈夫。ちなみに.mailfilter中、toをccにすれば、自分にメールが届いた上で自動返信されます。</p>]]>
    </content>
</entry>
<entry>
    <title>乱数の初期化とtime関数</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000461.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=461" title="乱数の初期化とtime関数" />
    <id>tag:akira-site.net,2007:/computer//5.461</id>
    
    <published>2007-02-14T11:37:07Z</published>
    <updated>2007-05-09T18:46:28Z</updated>
    
    <summary>とある乱数を使うプログラムを作って、何回か動作させてみたのですが、どうも一定期間...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="C言語" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>とある乱数を使うプログラムを作って、何回か動作させてみたのですが、どうも一定期間同じ出力を出しているようでどうしたものかとソースコードをみていたのですが、srand(time(NULL));とやっていました。乱数のシードを初期化する方法としてはよく以下のような方法が使われるのですが、</p>]]>
        <![CDATA[<pre>
#include &lt;time.h&gt;

srand(time(NULL));
</pre>
<p>ご存知、time関数は1970年1月1日からの経過秒数を秒単位で返す関数で、1秒以内に終わるようなプログラムを何度も実行する場合、同じシードで乱数が初期化されて結果が同じになるという事態が起きるようです。そういうわけで、マイクロ秒単位で取得できるgettimeofdayを使うことで事なきを得ました。</p>
<pre>
#include &lt;sys/time.h&gt;

struct timeval tv;
gettimeofday(&amp;tv, NULL);
srand(tv.tv_usec);
</pre>
<p>ちなみに、timevalは/sys/time.hで定義されています。通常、</p>
<pre>
struct timeval {
    time_t      tv_sec;     /* 秒 */
    suseconds_t tv_usec;    /* マイクロ秒 */
};
</pre>
<p>らしいですが、cygwinでは</p>
<pre>
struct timeval {
    long      tv_sec;     /* 秒 */
    long      tv_usec;    /* マイクロ秒 */
};
</pre>
<p>でした。</p>]]>
    </content>
</entry>
<entry>
    <title>携帯電話の振り分け方</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000460.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=460" title="携帯電話の振り分け方" />
    <id>tag:akira-site.net,2007:/computer//5.460</id>
    
    <published>2007-02-10T06:58:42Z</published>
    <updated>2007-02-10T07:20:32Z</updated>
    
    <summary>これまで携帯電話を振り分けるのに、CGIなどのプログラムを使って振り分けていたの...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="その他" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>これまで携帯電話を振り分けるのに、CGIなどのプログラムを使って振り分けていたのですが、.htaccessのみで簡単に振り分けられることを知りました。どちらも一長一短があるとは思うのですが、両方を紹介しておきます。ちなみに携帯電話用のサイトは自分ひとりで作成したことがないのですが、結構面白そうなので手を出してみたいです。とりあえず、持ってるサイトのうち一部に携帯電話用のページを構築中な今日この頃です。</p>]]>
        <![CDATA[<p>以下は、http://www.example.com/index.htmlがPC用のページ、http://www.example.com/m/index.htmlが携帯用のページだった場合に、http://www.example.com/にアクセスしてきた端末を自動でそれぞれのページに振り分ける方法です。いずれもhttp://www.example.com/以外にアクセスされた場合には振り分けられません。また、いずれもUserAgentから判別していますが、IPアドレスから判別することも可能です。UserAgentは比較的簡単に変えれることを考えると、厳密に携帯を振り分けたい場合はIPアドレスも合わせて使うほうが良いでしょう。各キャリアの端末が出すUserAgentとIPアドレス空間は以下で公開されているので参考にどうぞ。</p>
<ul>
<li><a href="http://www.nttdocomo.co.jp/service/imode/make/content/">DoCoMo</a> http://www.nttdocomo.co.jp/service/imode/make/content/</li>
<li><a href="http://www.au.kddi.com/ezfactory/tec/">au</a> http://www.au.kddi.com/ezfactory/tec/</li>
<li><a href="http://developers.softbankmobile.co.jp/dp/">SoftBank</a> http://developers.softbankmobile.co.jp/dp/</li>
</ul>
<h3>CGIによる振り分け方法</h3>
<p>CGIによる振り分け方法を簡単に書きます。ここではUserAgentを見て振り分けていますが、IPアドレスを見て振り分けることも出来ます。振り分け用のコードは以下のように書けばいいでしょう。</p>
<pre>
#!/usr/bin/perl
$ua = $ENV{'HTTP_USER_AGENT'};
if ($ua =~ /DoCoMo|UP.Browser|J-PHONE|Vodafone|SoftBank/) {
  print &quot;Location: http://www.example.com/m/index.html\n\n&quot;;
}
else {
  print &quot;Location: http://www.example/index.html\n\n&quot;;
}
</pre>
<p>これをhttp://www.example.com/index.cgiなどに設置し、http://www.example.com/.htaccessに</p>
<pre>
DirectoryIndex index.cgi index.html 
</pre>
<p>とでも記述すれば完了です。</p>
<h3>.htaccessによる振り分け方法</h3>
<p>以下のように記述した.htaccessをhttp://www.example.com/.htaccessとしておいておくだけです。ただし、mod_rewriteが使えるサーバでないと使えません。こちらのほうが一つのファイルを追加するだけで良いので簡単ですね。</p>
<pre>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} &quot;DoCoMo&quot; [NC,OR]
RewriteCond %{HTTP_USER_AGENT} &quot;J-PHONE&quot; [NC,OR]
RewriteCond %{HTTP_USER_AGENT} &quot;Vodafone&quot; [NC,OR]
RewriteCond %{HTTP_USER_AGENT} &quot;SoftBank&quot; [NC,OR]
RewriteCond %{HTTP_USER_AGENT} &quot;KDDI&quot; [NC,OR]
RewriteCond %{HTTP_USER_AGENT} &quot;UP.Browser&quot; [NC]
RewriteRule ^$ http://www.example.com/m/ [L] 
</pre>]]>
    </content>
</entry>
<entry>
    <title>さくらのサブドメインのインデックス数を調べる</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000459.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=459" title="さくらのサブドメインのインデックス数を調べる" />
    <id>tag:akira-site.net,2007:/computer//5.459</id>
    
    <published>2007-02-09T18:43:07Z</published>
    <updated>2007-02-10T06:40:10Z</updated>
    
    <summary>さくらのレンタルサーバを使っているのですが、さくらのレンタルサーバでは、特典でさ...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="コネタ" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>さくらのレンタルサーバを使っているのですが、さくらのレンタルサーバでは、特典でさくらが管理しているドメインの中から2つサブドメインを貰うことができます。せっかくなので取得してみようということで、どのドメインがいいのかなあと思いつつ見ていたのですが、どのドメインがどれくらい使われているのだろうとふと気になりました。それぞれのドメインがGoogleにどれくらいインデックスされているかみることで、ドメインの人気の参考にしようと思い、簡単なコードを書いて調べてみました。</p>]]>
        <![CDATA[<p>コードは最後に付記しておきますがかなり汚いです。Google Web API？でしたっけ？を使えばAPIで取得できるようなのですが、なくなったという情報やブラウザで行う検索と結果が異なるという情報が頭の記憶の片隅にあったので、HTTPを使ってGoogleに直接聞きに行くことにしました。連続して聞きに行くのも悪いなあと思い、1秒おきに情報を取得しています。なお、結果はこのような感じになりました。</p>
<table class="border" summary="さくらのサブドメインのインデックス数"><tr><th>URL</th><th>number of index</th><th>URL</th><th>number of index</th></tr>
<tr><td>uh-oh.jp</td><td style="text-align:right;">11700</td><td>jeez.jp</td><td style="text-align:right;">34900</td></tr>
<tr><td>websozai.jp</td><td style="text-align:right;">16200</td><td>2-d.jp</td><td style="text-align:right;">41300</td></tr>
<tr><td>netgamers.jp</td><td style="text-align:right;">106000</td><td>tank.jp</td><td style="text-align:right;">126000</td></tr>
<tr><td>razor.jp</td><td style="text-align:right;">17000</td><td>rulez.jp</td><td style="text-align:right;">99500</td></tr>
<tr><td>matrix.jp</td><td style="text-align:right;">99900</td><td>spawn.jp</td><td style="text-align:right;">9220</td></tr>
<tr><td>dojin.com</td><td style="text-align:right;">25500</td><td>sakuratan.com</td><td style="text-align:right;">22000</td></tr>
<tr><td>halfmoon.jp</td><td style="text-align:right;">273000</td><td>ivory.ne.jp</td><td style="text-align:right;">37300</td></tr>
<tr><td>opal.ne.jp</td><td style="text-align:right;">39600</td><td>topaz.ne.jp</td><td style="text-align:right;">17900</td></tr>
<tr><td>mints.ne.jp</td><td style="text-align:right;">52000</td><td>sumomo.ne.jp</td><td style="text-align:right;">36700</td></tr>
<tr><td>mokuren.ne.jp</td><td style="text-align:right;">0</td><td>mail-box.ne.jp</td><td style="text-align:right;">1090</td></tr>
<tr><td>sakuraweb.com</td><td style="text-align:right;">79100</td><td>jpn.org</td><td style="text-align:right;">588000</td></tr>
<tr><td>x0.com</td><td style="text-align:right;">226000</td><td>squares.net</td><td style="text-align:right;">144000</td></tr>
<tr><td>rgr.jp</td><td style="text-align:right;">62900</td><td>rdy.jp</td><td style="text-align:right;">139000</td></tr>
<tr><td>skr.jp</td><td style="text-align:right;">130000</td><td>eek.jp</td><td style="text-align:right;">195000</td></tr>
<tr><td>flop.jp</td><td style="text-align:right;">106000</td><td>whoa.jp</td><td style="text-align:right;">21700</td></tr>
<tr><td>noob.jp</td><td style="text-align:right;">61800</td><td>achoo.jp</td><td style="text-align:right;">52600</td></tr>
<tr><td>bona.jp</td><td style="text-align:right;">64300</td><td>chew.jp</td><td style="text-align:right;">27400</td></tr>
<tr><td>crap.jp</td><td style="text-align:right;">51800</td><td>grats.jp</td><td style="text-align:right;">19800</td></tr>
<tr><td>grrr.jp</td><td style="text-align:right;">16200</td><td>rash.jp</td><td style="text-align:right;">48400</td></tr>
<tr><td>thyme.jp</td><td style="text-align:right;">728</td><td>amaretto.jp</td><td style="text-align:right;">2350</td></tr>
<tr><td>mimoza.jp</td><td style="text-align:right;">13100</td><td>nyanta.jp</td><td style="text-align:right;">9910</td></tr>
<tr><td>xii.jp</td><td style="text-align:right;">145000</td><td>deko8.jp</td><td style="text-align:right;">37900</td></tr>
<tr><td>o0o0.jp</td><td style="text-align:right;">3080</td><td>undo.jp</td><td style="text-align:right;">12600</td></tr>
<tr><td>saloon.jp</td><td style="text-align:right;">52100</td><td>rojo.jp</td><td style="text-align:right;">2860</td></tr>
<tr><td>daynight.jp</td><td style="text-align:right;">9900</td><td>gokujou.biz</td><td style="text-align:right;">2320</td></tr>
<tr><td>saikyou.biz</td><td style="text-align:right;">3310</td><td>fubuki.info</td><td style="text-align:right;">1560</td></tr>
<tr><td>180r.com</td><td style="text-align:right;">26200</td><td>rossa.cc</td><td style="text-align:right;">13600</td></tr>
<tr><td>kokage.cc</td><td style="text-align:right;">9070</td><td>nazo.cc</td><td style="text-align:right;">26500</td></tr>
<tr><td>x0.to</td><td style="text-align:right;">27100</td><td>silk.to</td><td style="text-align:right;">11100</td></tr>
<tr><td>rusk.to</td><td style="text-align:right;">42400</td><td>sakura.tv</td><td style="text-align:right;">11200</td></tr>
<tr><td>from.tv</td><td style="text-align:right;">57900</td><td>kirara.st</td><td style="text-align:right;">26700</td></tr>
<tr><th>total</th><td style="text-align:right;">3649298</td><td colspan="2"></td></tr></table>
<p>さて、これを参考にしつつ、どこで取るか決めるかな。どうせならあまり人がいないドメインの方が面白いかなあと。mokuren.ne.jpが0なのは、誰もいないのか、まだ新しいドメインなのか、スパム認定されたのか、どうなんでしょう？？？使いやすそうなjpn.orgは一番インデックス数が多いですね。</p>
<p>なお、以下はスクリプトです。GoogleのHTMLの表示の仕様が変わると使えなくなるという代物です。一応動いているし使い捨てスクリプトだしいいかなと。<a href="http://akira-site.net/computer/archives/000438.html">HTTP::Lite</a>を使ってます。</p>
<pre>
#!/usr/bin/perl

use HTTP::Lite;

my $baseurl = 'http://www.google.co.jp/search?q=site:';
my @url = (
'uh-oh.jp','jeez.jp','websozai.jp','2-d.jp','netgamers.jp',
'tank.jp','razor.jp','rulez.jp','matrix.jp','spawn.jp',
'dojin.com','sakuratan.com','halfmoon.jp','ivory.ne.jp',
'opal.ne.jp','topaz.ne.jp','mints.ne.jp','sumomo.ne.jp',
'mokuren.ne.jp','mail-box.ne.jp','sakuraweb.com',
'jpn.org','x0.com','squares.net','rgr.jp','rdy.jp',
'skr.jp','eek.jp','flop.jp','whoa.jp','noob.jp','achoo.jp',
'bona.jp','chew.jp','crap.jp','grats.jp','grrr.jp',
'rash.jp','thyme.jp','amaretto.jp','mimoza.jp','nyanta.jp',
'xii.jp','deko8.jp','o0o0.jp','undo.jp','saloon.jp','rojo.jp',
'daynight.jp','gokujou.biz','saikyou.biz','fubuki.info','180r.com',
'rossa.cc','kokage.cc','nazo.cc','x0.to','silk.to','rusk.to',
'sakura.tv','from.tv',
'kirara.st');

print &quot;&lt;table&gt;&lt;tr&gt;&lt;th&gt;URL&lt;/th&gt;&lt;th&gt;number of index&lt;/th&gt;&lt;/tr&gt;\n&quot;;
my $total = 0;
for ($i=0;$i&lt;@url;$i++) {
 my $http = new HTTP::Lite;
 my $req = $http-&gt;request(&quot;$baseurl$url[$i]&quot;);
 if ($req eq &quot;200&quot;) {
  my $body = $http-&gt;body();
  if ($body =~ /&lt;b&gt;$url[$i]&lt;\/b&gt;(.*?)&lt;b&gt;([0-9,]+)&lt;\/b&gt;/m) {
   $num = $2;
   $num =~ s/,//g;
   $total += $num;
  }
  else {
   $num = 0;
  }
  print &quot;&lt;tr&gt;&lt;td&gt;@url[$i]&lt;/td&gt;&lt;td&gt;$num&lt;/td&gt;&lt;/tr&gt;\n&quot;;
  sleep(1);
 }
}
print &quot;&lt;tr&gt;&lt;th&gt;total&lt;/th&gt;&lt;td&gt;$total&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;\n&quot;;
</pre>
]]>
    </content>
</entry>
<entry>
    <title>Unicode制御文字RLOとファイル名</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000458.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=458" title="Unicode制御文字RLOとファイル名" />
    <id>tag:akira-site.net,2007:/computer//5.458</id>
    
    <published>2007-02-03T19:32:35Z</published>
    <updated>2007-02-03T19:35:48Z</updated>
    
    <summary>まずは、この記事を「こんなにお手軽な、ファイル拡張子の偽装方法が・・・Unico...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="Win Tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>まずは、この記事を「<a href="http://www.nutsecurity.com/?date=20061209">こんなにお手軽な、ファイル拡張子の偽装方法が・・・Unicode 制御文字の挿入（RLO）- nut security</a>」。Unicodeの制御文字の中に、文字の並びをright-to-left文字（右から読む文字）に強制的に変更するRLOという制御文字があるようなのですが、それを使うとファイル名の偽装ができてしまうようです。アイコン偽装までされると見た目には判別できなさそうで怖いですね。ファイルは安易にダブルクリックしないのが吉なのかも。</p>]]>
        <![CDATA[<p>調べてみたところ、「<a href="http://d.hatena.ne.jp/hasegawayosuke/20061222/p1">Unicodeで拡張子を偽装された実行ファイルの防御方法</a>」という記事を見つけ、どうやらWindowsのセキュリティポリシーに、RLOを含む文字を実行しないという規則を追加することで、回避できるようです。件のページから引用＋追記すると以下のとおりでできました。</p>
<ol>
<li>メモ帳を開き&quot;**&quot;と入力。</li>
<li>&quot;*&quot;と&quot;*&quot;の間にカーソルを合わせ右クリック、「Unicode制御文字の挿入」から「RLO Start of right-to-left override」を選択する。</li>
<li>Ctrl-A（Ctrlを押しながらAを押す）で全てを選択し、Ctrl-Cでクリップボードにコピーする。（マウスで選択してコピーしてもできるかも）</li>
<li>「コントロールパネル」（スタートメニューから設定を選択する）から「管理ツール」を開き「ローカルセキュリティポリシー」を開く。</li>
<li>初めてポリシーを作る場合は「ソフトウェア制限のポリシー」から「新しいポリシーの作成」を選択する。</li>
<li>「ソフトウェア制限のポリシー」から「追加の規則」を選択し、右クリック、「新しいパスの規則」を選択する。</li>
<li>「パス」欄でCtrl-Vをしてメモ帳に入力した内容を貼り付ける。（マウスで選択した場合は貼り付けを選択すればできるかと）</li>
<li>「適用」を押す。ただし、セキュリティレベルが「許可しない」となってることを確認しておく。</li>
</ol>
<p>いずれの記事も結構最近の記事なんですが、原理的にはかなり昔からできた方法だろうなあという気もしていて、どれくらい昔から使われていた手法なんでしょうかね？ちなみにUnicode関係の話としては上の解決法を書いておられる方の資料「<a href="http://openmya.hacker.jp/hasegawa/public/20061209/momiji.html">それ Unicode で</a>」も結構面白い内容でしたので是非一読あれ。</p>]]>
    </content>
</entry>
<entry>
    <title>bashの設定</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000457.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=457" title="bashの設定" />
    <id>tag:akira-site.net,2007:/computer//5.457</id>
    
    <published>2007-02-02T03:08:17Z</published>
    <updated>2007-02-02T03:28:26Z</updated>
    
    <summary>cygwinを入れた時のデフォルトのプロンプト表示（USER@COMPUTER ...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="Linux Tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>cygwinを入れた時のデフォルトのプロンプト表示（USER@COMPUTER $となる）が気に食わないのでcygwinを入れるたびに設定を変えるのですが、その時のメモ書きです。~/.bashrcあるいは/etc/profileを変えればいいのですが、以下のような行を追加すればOKです。</p>]]>
        <![CDATA[<pre>
PS1='[\u@\h \W]$ '
</pre>
<p>この場合、こういうプロンプトになります。</p>
<pre>
[akira@computer ~]$ 
</pre>
<p>プロンプトの表示をいろいろと変えたい場合は、man bashを見ればいいのですが、manは長いのでプロンプトで使えるエスケープシーケンスを少しだけ引用しておきます。</p>
<pre>
\a   ASCII のベル文字 (07) 
\d   "曜日 月 日" という形式の日付 (例: "Tue May 26") 
\e   ASCII のエスケープ文字 (033) 
\h   ホスト名のうち最初の `.' までの部分 
\H   ホスト名 
\j   シェルによって現在管理されているジョブの数 
\l   シェルの端末デバイスのベース名 (basename) 
\n   改行 
\r   復帰 
\s   シェルの名前。つまり $0 のベース名 (最後のスラッシュ以降の部分) 
\t   24 時間の HH:MM:SS 形式の現在の時刻 
\T   12 時間の HH:MM:SS 形式の現在の時刻 
\@   12 時間の HH:MM am/pm 形式の現在の時刻 
\u   現在のユーザのユーザ名 
\v   bash のバージョン
\V   bash のリリース。バージョンにパッチレベルを加えたもの
\w   現在の作業ディレクトリ 
\W   現在の作業ディレクトリのベース名 
\!   このコマンドの履歴番号 
\#   このコマンドのコマンド番号 
\$   実効 UID が 0 の場合に #、 それ以外の場合は $ 
\nnn 8進数 nnn に対応する文字 
\\   バックスラッシュ 
\[   非表示文字のシーケンスの開始。
\]   非表示文字のシーケンスを終了します。 
</pre>
<p>.bashrcが読み込まれていない場合は/etc/profileあるいは~/.bash_login に 以下の行を追加しておけばOKのようです。</p>
<pre>
test -f ~/.bashrc &amp;&amp; . ~/.bashrc
</pre>
]]>
    </content>
</entry>
<entry>
    <title>Net::Amazonの使用</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000456.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=456" title="Net::Amazonの使用" />
    <id>tag:akira-site.net,2007:/computer//5.456</id>
    
    <published>2007-02-01T08:06:13Z</published>
    <updated>2007-02-01T08:23:03Z</updated>
    
    <summary>Net-Amazon-0.38をダウンロード、設置、使用してみたときのメモです。...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="Perl" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>Net-Amazon-0.38をダウンロード、設置、使用してみたときのメモです。説明書に書かれていることと若干違う部分があって結構はまりました。こういうのは結局ソースを読むのが一番早いのかな。</p>]]>
        <![CDATA[<p>はまったところとしては例えば、画像のURLを取得するメソッドはドキュメントではImageUrlLarge()、ImageUrlMedium()、ImageUrlSmall()なのですが実際はLargeImageUrl()、MediumImageUrl()、SmallImageUrl()でした。また、商品名を表すProductName()もなくてTitle()でとれました。他にも、Amazon.pmの上部でロケールの指定ができるのですが、ここでjpと書いておいたほうが良いかもしれません。</p>
<p>動作サンプルとしては、以下のようなコードで簡単に動作確認ができると思います。多分。</p>
<pre>
use Net::Amazon;

my $ua = Net::Amazon-&gt;new(token =&gt; 'AMZN_TOKEN', locale =&gt; 'jp');

my $response = $ua-&gt;search(asin =&gt; '01234567');
#my $response = $ua-&gt;search(blended =&gt; &quot;Perl&quot;);

if(not $response-&gt;is_success()) {
  print &quot;Error: &quot;, $response-&gt;message(), &quot;\n&quot;;
  exit;
}
print $response-&gt;as_string(), &quot;\n&quot;;

foreach my $item ($response-&gt;properties()) {
  print &quot;Title: &quot;, $item-&gt;Title(), &quot;\n&quot;;
  print &quot;Catalog: &quot;, $item-&gt;Catalog(), &quot;\n&quot;;
  print &quot;LargeImageUrl: &quot;, $item-&gt;LargeImageUrl(), &quot;\n&quot;;
  print &quot;MediumImageUrl: &quot;, $item-&gt;MediumImageUrl(), &quot;\n&quot;;
  print &quot;SmallImageUrl: &quot;, $item-&gt;SmallImageUrl(), &quot;\n&quot;;
  print &quot;OurPrice: &quot;, $item-&gt;OurPrice(), &quot;\n&quot;;

  my $review = $item-&gt;review_set;
  if ($review-&gt;total_reviews) {
    print &quot;AverageCustomerRating: &quot;, 
      $review-&gt;average_customer_rating, &quot;\n&quot;;
    foreach my $rev ($review-&gt;reviews) {
      print &quot;Rating: &quot;, $rev-&gt;rating, &quot;\n&quot;;
      print &quot;Summary: &quot;, $rev-&gt;summary, &quot;\n&quot;;
      print &quot;Comment: &quot;, $rev-&gt;comment, &quot;\n&quot;;
     }
  }
}
</pre>
<p>なお、<a href="http://search.cpan.org/~boumenot/Net-Amazon-0.38/lib/Net/Amazon.pm">ここ</a>と<a href="http://www2u.biglobe.ne.jp/~MAS/perl/waza/amazon.html">ここ</a>と<a href="http://nais.to/~yto/clog/2006-10-17-2.html">ここ</a>を参考にしました。このモジュールはいろいろ面白そうなので、キャッシュの使い方も含めてもう少しいろいろ触ってみる必要がありそうです。まあ、問題はこれを使って何をしようかということなんですが。。</p>]]>
    </content>
</entry>
<entry>
    <title>mod_rewriteがうまく動かない</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000455.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=455" title="mod_rewriteがうまく動かない" />
    <id>tag:akira-site.net,2007:/computer//5.455</id>
    
    <published>2007-01-30T17:00:50Z</published>
    <updated>2007-01-30T17:38:10Z</updated>
    
    <summary>monom.jpさんのところで配布されていた楽天ショップのCGIを設置していたの...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="その他" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p><a href="http://monom.jp/xp/">monom.jpさん</a>のところで配布されていた楽天ショップのCGIを設置していたのですが、mod_rewriteの部分でうまくいかず四苦八苦していました。これまでmod_writeでここまで四苦八苦したことは無かったんですが。。mod_rewriteはなかなか奥が深いです。</p>]]>
        <![CDATA[<p>htaccessの整形ルール部分を抜粋すると以下のような感じなのですが、</p>
<pre>
RewriteEngine on
RewriteBase /
RewriteRule ^list/([0-9]+)/$ index.php?m=list&amp;g=$1 [L]
</pre>
<p>正規表現部分の^（行頭）と$（行末）を表す部分を外して以下のように書いたらうまくいきました。</p>
<pre>
RewriteEngine on
RewriteBase /
RewriteRule list/([0-9]+)/ index.php?m=list&amp;g=$1 [L]
</pre>
<p>うーん、なんでなんでしょう？？ちなみに、ここはさくらのレンタルサーバで動いています。まあ動いたからとりあえずこれでいいかな。なお、<a href="http://rak.akira-site.net/">楽天ショップCGIはこちらに設置</a>しておきました。</p>
<p>このスクリプト、<a href="http://monom.jp/xp/modules/bwiki/index.php?%CD%F8%CD%D1%B5%AC%C4%EA">利用規定</a>を見ると改造も著作権表示も自由みたいなんですが凄いですね。時間が有ればこれを自分なりのものに改造、改良していきたいですが、まあ、当分はこのまま放置することになりそうです。</p>]]>
    </content>
</entry>
<entry>
    <title>日本インターネット接続図</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000454.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=454" title="日本インターネット接続図" />
    <id>tag:akira-site.net,2007:/computer//5.454</id>
    
    <published>2007-01-27T16:42:15Z</published>
    <updated>2007-01-28T08:14:06Z</updated>
    
    <summary>最近、日本のインターネットの接続図がどうなっているのかなあと思って調べることがあ...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="コネタ" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>最近、日本のインターネットの接続図がどうなっているのかなあと思って調べることがありました。SINETとかOCNとかPLALAとか、一部のネットワークについてはWeb上に接続図が載っているのですが、それらがどのようにつながっているのか、とか、載っていないところはどうなのかというところが気になります。また、全てのネットワークについて網羅的に個人で調べるのには限界がありまして、なんとかまとめたものはないものかと調査してました。どこかで手に入らないんですかね？</p>]]>
        <![CDATA[<p>ちなみに、過去のインターネットマガジン (Internet Magagine) には付録で「商用ネットワークサービスプロバイダー接続マップ」が載ってていたらしいんですが今はもうないようです。また、インプレスのサイト http://internet.impress.co.jp/provider/download/ にて同じもの？が公開されていたようですが、これまたもうありません。なんでやめたのかな？複雑になりすぎたのか、セキュリティの問題なのか。<a href="http://web.archive.org/web/20021031070447/http://internet.impress.co.jp/provider/download/">archive.org</a>にも肝心のPDFファイルは残ってませんでした。残念。</p>]]>
    </content>
</entry>
<entry>
    <title>誕生日からの経過日数を取得</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000453.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=453" title="誕生日からの経過日数を取得" />
    <id>tag:akira-site.net,2007:/computer//5.453</id>
    
    <published>2007-01-25T16:48:17Z</published>
    <updated>2007-01-25T17:15:10Z</updated>
    
    <summary>誕生日からの経過日数を取得するスクリプトをかけないかなあと思って書いてみました。...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="Perl" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>誕生日からの経過日数を取得するスクリプトをかけないかなあと思って書いてみました。といってもかなり簡易なものです。入力チェックもしてないですし、エポック秒で計算しているので1970年以前だとうまく動かないかもしれません。スクリプトはこんな感じです。なお、CGIで動かすことを想定して書いていますが、$bday、$bmonth、$byearを手入力で与えても動くと思います。時間があればもっときちんとしたものを作りたいのですがとりあえずはこんなもので。</p>]]>
        <![CDATA[<pre>
#!/usr/bin/perl

use CGI;
use Time::Local;

# 誕生日の入手
my $query = CGI-&gt;new;
my $bday = $query-&gt;param(&quot;bday&quot;);
my $bmonth = $query-&gt;param(&quot;bmonth&quot;);
my $byear = $query-&gt;param(&quot;byear&quot;);
my $btime = timelocal(0,0,0,$bday,$bmonth,$byear);
my $bymd = sprintf(&quot;%d年%d月%d日&quot;,$byear-1900,$bmonth-1,$bday);

# 現在日時の取得
my $nowtime = time;
my ($day,$month,$year) = (localtime($nowtime))[3,4,5];
$year += 1900;
$month += 1;
my $ymd = sprintf(&quot;%d年%d月%d日&quot;,$year,$month,$day);

# 計算＋表示
my $pastday = int(($nowtime-$btime)/(60*60*24));
print &quot;Content-type: text/plain\n\n&quot;;
print &quot;$ymdは$bymdから$pastday日後です。&quot;;
</pre>
<p>ちなみに上をbday.cgiという名前で保存し、以下のようなHTMLから呼び出せば使えるでしょう。</p>
<pre>
&lt;html&gt;
&lt;head&gt;&lt;title&gt;誕生日からの経過日数&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;誕生日からの経過日数を計算します。
下のフォームに誕生日を入力してみてください。&lt;/p&gt;
&lt;form method=&quot;post&quot; action=&quot;bday.cgi&quot;&gt;
&lt;p&gt;誕生日：
&lt;input name=&quot;byear&quot; size=&quot;4&quot; /&gt; 年
&lt;input name=&quot;bmonth&quot; size=&quot;2&quot; /&gt; 月
&lt;input name=&quot;bday&quot; size=&quot;2&quot; /&gt; 日
&lt;input type=&quot;submit&quot; value=&quot;送信&quot; /&gt;&lt;/p&gt;
&lt;/form&gt;
&lt;/body&gt;&lt;/html&gt;
</pre>]]>
    </content>
</entry>
<entry>
    <title>.htaccessのBasic認証がうまくいかない時</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000452.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=452" title=".htaccessのBasic認証がうまくいかない時" />
    <id>tag:akira-site.net,2007:/computer//5.452</id>
    
    <published>2007-01-24T15:29:26Z</published>
    <updated>2007-01-24T15:38:15Z</updated>
    
    <summary>他の所で使用しているサーバの仕様が若干変わったのですが、Webサーバの設定も変わ...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="その他" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>他の所で使用しているサーバの仕様が若干変わったのですが、Webサーバの設定も変わってhtaccessによるbasic認証部分がうまく動かなくなり、なぜだろうと思っていろいろ調べてみました。これはそのときのメモ書きです。</p>]]>
        <![CDATA[<p>あるディレクトリにアクセス制限をかけたいときは.htaccessに以下のような記述をすれば簡単な認証制限をかけることができます。</p>
<pre>
AuthUserFile /home/akira/www/.htpasswd
AuthName &quot;Please enter username and password&quot;
AuthType Basic
require valid-user
</pre>
<p>しかし、mod_auth_pamというPAMモジュールが入っている場合は、その設定をしてやらないとうまく動かないようです。急に動かなかったとなったときには、手軽に以下のようにAuthPAM_Enabled offという行を追加すれば動くなるようになるみたいです。僕の使っていたサーバでもこれでうまく動くようになりました。</p>
<pre>
AuthUserFile /home/akira/www/.htpasswd
AuthName &quot;Please enter username and password&quot;
AuthType Basic
AuthPAM_Enabled off
require valid-user
</pre>
]]>
    </content>
</entry>
<entry>
    <title>bringing up interface eth0で止まる</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000451.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=451" title="bringing up interface eth0で止まる" />
    <id>tag:akira-site.net,2007:/computer//5.451</id>
    
    <published>2007-01-23T09:22:27Z</published>
    <updated>2007-01-23T10:34:24Z</updated>
    
    <summary>最近、あるPC（linux）をたちあげると、bringing up interf...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="Linux Tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>最近、あるPC（linux）をたちあげると、bringing up interface eth0のところで永久に止まってしまい、何もできないという状況が良くありました。dhcpのタイムアウトを待ってるとかそういうのではなく、本当に止まった状態になってしまいます。うーん、何故だろうと思いつつNICを刺しなおしたららうまく動作するようになりました。刺し方が悪かったのかな。。</p>]]>
        <![CDATA[<p>ちなみに、/etc/sysconfig/network-scritpts/ifcfg-eth0のところのONBOOTのところをnoと設定すると起動時にNICが勝手に起動しない設定になります。</p>
<pre>
ONBOOT=no
</pre>
]]>
    </content>
</entry>
<entry>
    <title>CPU使用率を見る</title>
    <link rel="alternate" type="text/html" href="http://akira-site.net/computer/archives/000450.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://akira-site.net/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=450" title="CPU使用率を見る" />
    <id>tag:akira-site.net,2007:/computer//5.450</id>
    
    <published>2007-01-23T06:25:46Z</published>
    <updated>2007-01-23T07:30:13Z</updated>
    
    <summary>CPU使用率を見るコマンドがないものかといろいろ調べてみたのですが、top、sa...</summary>
    <author>
        <name>アキラ</name>
        <uri>http://akira-site.net/</uri>
    </author>
            <category term="Linux Tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://akira-site.net/computer/">
        <![CDATA[<p>CPU使用率を見るコマンドがないものかといろいろ調べてみたのですが、top、sar、vmstat、mpstat、mrtgなどのコマンド、ツールがあるようです。以下、簡単に備忘録として残しておきます。</p>]]>
        <![CDATA[<h3>top</h3>
<p>おなじみのコマンドです。一番使いやすいかも。CPU使用率やメモリ使用率をプロセスごとに表示してくれます。どのプロセスがリソースを消費しているか確認する時に便利です。起動する時に引数を指定すると、-bでバッチモード、-dで表示頻度の変更、-uで監視するユーザの指定、-pで監視するプロセスの指定、などができます。</p>
<h3>sadc、sar</h3>
<p>sadc コマンドはシステムの使用状況データを収集して後日に分析できるようファイルに書き込むコマンドで、sarコマンドはsadcで収集されたデータに基づいてシステムの使用状況レポートを生成します（<a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/admin-guide/s1-resource-rhlspec.html">参考</a>）。sadcはsa1スクリプトで、sarはsa2スクリプトで実行され、cronと組み合わせて使われるようです。異常が起きたときに自動的にメール送信するようにしてたら便利かも。</p>
<h3>vmstat</h3>
<p>プロセス・メモリ・ページング・ブロック IO・トラップ・CPU 稼働状況などに関する情報を報告してくれるコマンドです。引数に数値を入れることで、指定した秒数間隔で報告してくれます。プロセスとメモリに関する報告は、いずれも報告の瞬間のものらしいです。</p>
<h3>mpstat</h3>
<p>SMPシステムでの各CPUの負荷を計測してくれます。vmstatと同じく、引数を指定してやることで報告間隔を変えることが出来ます。</p>
<h3>mrtg</h3>
<p>ネットワーク帯域、CPU使用率、メモリ使用率、ディスク使用率をグラフ化して表示してくれます。自分でサーバを持っている人にとっては便利そうなツールです。</p>]]>
    </content>
</entry>

</feed> 

