<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>WAY TO GO</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.kreis-net.jp/blog/atom.xml" />
    <id>tag:www.kreis-net.jp,2008-02-22:/blog//1</id>
    <updated>2009-01-01T16:22:17Z</updated>
    <subtitle>つれづれなるままに、方法を求めて。</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>

<entry>
    <title>謹賀新年</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2009/01/post-27.html" />
    <id>tag:www.kreis-net.jp,2009:/blog//1.85</id>

    <published>2009-01-01T16:03:32Z</published>
    <updated>2009-01-01T16:22:17Z</updated>

    <summary>あけましておめでとうございます。 本年もよろしくお願いします。 はっきり言ってこ...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="WAY TO GO" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>あけましておめでとうございます。<br />
本年もよろしくお願いします。</p>

<p>はっきり言ってこのブログはかなり放置プレイしてました...<br />
これからもっと技術的な事も含め色々書いていきたいものです。</p>

<p>昨年はネットの露出をほとんどしなかったせいでいろいろ取り残されてる感が強いので、<br />
今年はもっとアンテナ張って頑張って参りたいと思います。</p>]]>
        
    </content>
</entry>

<entry>
    <title>汎用apache起動スクリプトをでっちあげた</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2008/03/apache.html" />
    <id>tag:www.kreis-net.jp,2008:/blog//1.84</id>

    <published>2008-03-07T19:00:18Z</published>
    <updated>2008-04-11T18:18:00Z</updated>

    <summary>自宅のVMware Server上のCentOS 4.5で、いろいろhttpdを...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>自宅のVMware Server上のCentOS 4.5で、いろいろhttpdを立ち上げて開発環境を区別していて、いちいち開発環境を立ち上げるたびに起動スクリプトを書くのが億劫になってきて、汎用スクリプトをでっちあげた。</p> <p>basenameで起動パスを識別するようにしたので、シンボリックリンクで別名を付けてやるだけで任意のhttpdを立ち上げてくれるという仕組み。</p> <p>こうしておけば、apacheを使ったWebアプリのプロジェクトを複数抱えてても面倒臭くないよ！</p> <p>apache以下一連の環境をconfigureする手間はやっぱりかかるけどｗ</p> <p>あととりあえずhttpd.workerは捨ててます(PHP(笑))</p> <p>使い方：(※注：以下、fooは任意の文字列)</p> <p>まずシンボリックリンクを張って</p>  <pre class="code">
ln -s /etc/rc.d/init.d/httpd_template /etc/rc.d/init.d/httpd_foo
</pre>  <p>あとは普通に呼び出すだけ</p>  <pre class="code">
/etc/rc.d/init.d/httpd_foo start
/etc/rc.d/init.d/httpd_foo stop
/etc/rc.d/init.d/httpd_foo restart
などなど
</pre>  <p>このスクリプトを使用する際の前提条件：</p> <ul>     <li>configure時に--prefix=/usr/local/apache_foo でビルドされていること</li>     <li>起動スクリプトは /etc/sysconfig/httpd_foo を読み込みます</li>     <li>httpd.conf で PidFile が /var/run/httpd_foo.pid に設定されていること</li>     <li>ロックファイルは /var/lock/subsys/httpd_foo を見に行きます</li>     <li>シンボリックリンクを張ること(killallするときに便利だから)：/usr/local/apache_foo/bin/httpd -&gt; /usr/local/apache_foo/bin/httpd_foo</li> </ul> <p>おすすめの構成はこんな感じ：</p> <ul>     <li>/usr/local/apache_base (port 80, mod_rewrite + mod_proxy にて各プロジェクト用にポート転送)     <ul>         <li>/usr/local/apache_foo (port 10080)</li>         <li>/usr/local/apache_bar (port 10081)</li>         <li>and so on.</li>     </ul></li> </ul> <p>スクリプトはhttpd-2.2.8に付属していたbuild/rpm/httpd.initをベースにしています。</p>]]>
        <![CDATA[<p>/etc/rc.d/init.d/httpd_template</p> <pre class="code">
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the &quot;License&quot;); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Startup script for the Apache Web Server
#
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#	       HTML files and CGI.

base=`/bin/basename $0`
base=${base##S85}
base=${base##K15}
label=${base##httpd_}
[ $label == &quot;template&quot; ] &amp;&amp; exit 1

sysconfig=/etc/sysconfig/$base

# Source function library.
. /etc/rc.d/init.d/functions

# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=&quot;&quot;

[ -f $sysconfig ] &amp;&amp; . $sysconfig

# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based &quot;worker&quot; MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.

# Path to the apachectl script, server binary, and short-form for messages.
apachebasedir=/usr/local/apache2_$label
apachectl=$apachebasedir/bin/apachectl
httpd=${HTTPD-$apachebasedir/bin/$base}
prog=$base
lockfile=/var/lock/subsys/$prog
pidfile=/var/run/${prog}.pid
RETVAL=0

# check for 1.3 configuration
check13 () {
    CONFFILE=$apachebasedir/conf/httpd.conf
    GONE=&quot;(ServerType|BindAddress|Port|AddModule|ClearModuleList|&quot;
    GONE=&quot;${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|&quot;
    GONE=&quot;${GONE}AccessConfig|ResourceConfig)&quot;
    if grep -Eiq &quot;^[[:space:]]*($GONE)&quot; $CONFFILE; then
        echo
        echo 1&gt;&amp;2 &quot; Apache 1.3 configuration directives found&quot;
        echo 1&gt;&amp;2 &quot; please read @docdir@/migration.html&quot;
        failure &quot;Apache 1.3 config directives test&quot;
        echo
        exit 1
    fi
}

# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure.  So we just do it the way init scripts
# are expected to behave here.
start() {
    echo -n $&quot;Starting $prog: &quot;
    check13 || exit 1
    daemon --check $prog $httpd $OPTIONS
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] &amp;&amp; touch $lockfile
    return $RETVAL
}

stop() {
    echo -n $&quot;Stopping $prog: &quot;
    killproc $prog
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] &amp;&amp; rm -f $lockfile $pidfile
}

restart() {
    stop
    start
}

condrestart() {
    [ -f $pidfile ] &amp;&amp; restart
}

reload() {
    echo -n $&quot;Reloading $prog: &quot;
    check13 || exit 1
    killproc $prog -HUP
    RETVAL=$?
    echo
}

# See how we were called.
case &quot;$1&quot; in
    start)       start         ;;
    stop)        stop          ;;
    status)      status $httpd ;;
    restart)     restart       ;;
    condrestart) condrestart   ;;
    reload)      reload        ;;
    graceful|help|configtest|fullstatus)
        $apachectl $@
        RETVAL=$?
        ;;
    *)
        echo $&quot;Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}&quot;
        exit 1
esac

exit $RETVAL
</pre> <p>&nbsp;2008/3/25：起動ファイル「S85httpd_*」「K15httpd_*」に対応のため微修正。</p>]]>
    </content>
</entry>

<entry>
    <title>Wayback Machine</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2008/02/wayback-machine.html" />
    <id>tag:www.kreis-net.jp,2008:/blog//1.82</id>

    <published>2008-02-28T11:22:13Z</published>
    <updated>2008-02-28T20:22:59Z</updated>

    <summary>先日、ブログエンジンを movabletype 4.1 に更新したんですが、更新...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="WAY TO GO" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>先日、ブログエンジンを movabletype 4.1 に更新したんですが、更新したときにうっかり<strong>画像フォルダを消してしまってました</strong>(汗</p>  <p>しかも、PC内をいくら探せども<strong>バックアップがない</strong>(汗</p>  <p>更新といいつつ、新規にフォルダ作ってエントリーとコメントとトラックバックだけ移し替えたもんだから、ブログ内の画像フォルダの存在を忘れてたよ&#8230;orz</p>  <p>4年前の画像とか、やべーもうどこにも残ってねーよなあ&#8230;とがっくり来てたんですが&#8230;</p>  <p><a href="http://www.archive.org/web/web.php" target="_blank">Wayback Machine</a> が保存してくれてました&#8230;ｗ</p>  <p>おかげで失われた画像は元通り表示されるようになりましたとさ。</p>  <p>バックアップはきちんと取りましょう、という教訓でございましたorz</p>]]>
        
    </content>
</entry>

<entry>
    <title>ActivePerl 5.10.x用のppm</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2008/02/activeperl-510xppm.html" />
    <id>tag:www.kreis-net.jp,2008:/blog//1.80</id>

    <published>2008-02-22T09:31:35Z</published>
    <updated>2008-02-22T15:00:18Z</updated>

    <summary>いくつかActivePerl 5.10.x用のppmを作ったので公開してみる。 ...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>いくつかActivePerl 5.10.x用のppmを作ったので<a href="/downloads/activeperl/5.10/ppm/" target="_blank">公開してみる</a>。</p>

<p><a href="http://search.cpan.org/~pia/Win32-FindWindow/" target="_blank">Win32-FindWindow</a>というPerlモジュールを作ってCPANにUPしてあるんだけど、そのモジュールのテストで必要なTest-Perl-CriticをWin32環境で手軽にインストールできないかなあといろいろやってるうちにVC6で自分でppm作っちゃったという...。</p>

<p>つかいかた：</p>

<pre class="code">
  ppm repo add http://www.kreis-net.jp/downloads/activeperl/5.10/ppm/ "WAY TO GO"
  ppm install Test-Perl-Critic
  ppm install Test-Spelling
</pre>]]>
        
    </content>
</entry>

<entry>
    <title>synergyその後(2)</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2007/10/synergy2.html" />
    <id>tag:www.kreis-net.jp,2007:/blog//1.79</id>

    <published>2007-10-30T20:36:55Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>Tab Mix Plusとか、userChrome.jsとかいろいろ書きましたが...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="synergy" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>Tab Mix Plusとか、userChrome.jsとかいろいろ書きましたが…<br />
NICのせいらしい。orz<br />
けどドライバ入れ替えてもダメ　＆　うちの環境以外で再現しない　orz</p>

<p>どうみても私のマシン固有の問題です。本当にありがとうございました　orz</p>]]>
        
    </content>
</entry>

<entry>
    <title>synergyその後</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2007/10/synergy-2.html" />
    <id>tag:www.kreis-net.jp,2007:/blog//1.78</id>

    <published>2007-10-26T12:54:59Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>前のエントリで、Tab Mix Plusが原因と書いたけど、userChrome...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="synergy" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>前のエントリで、Tab Mix Plusが原因と書いたけど、userChrome.jsのせいかもしれない…。<br />
どうやらFirefoxが立ち上がっていないときは正常に動作するっぽいことまでは確実っぽい。</p>

<p>うーん。もうちょっと調べてみよう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>synergy + Firefox with Tab Mix Plus</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2007/10/synergy-firefox-with-tab-mix-p.html" />
    <id>tag:www.kreis-net.jp,2007:/blog//1.77</id>

    <published>2007-10-25T20:49:28Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>タイトルの通りの環境だと、マウスは正常に動作するけど、キーボードが正常に動作しな...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="synergy" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>タイトルの通りの環境だと、マウスは正常に動作するけど、キーボードが正常に動作しない模様。<br />
Tab Mix Plusを有効にするとキーイベントがフックされて、synergyがそれを検知できないくさい。<br />
マウスはサーバの外へ出られるけど、キーボードだけがサーバ内に捕まっちゃってる感じ。<br />
仕方が無いのでTab Mix Plusは無効にしてFirefoxを使ってます。(削除をする必要は無さげ。)</p>

<p>WindowsXP SP2 + synergy 1.3.1 ( + <a href="/downloads/synergy-1.3.1jp.zip">自作パッチ</a>) + Bon Echo 2.0.0.8 (<a href="http://marilab.hp.infoseek.co.jp/buildfx/" target="_blank">ayakawa SSE2-PGU</a>) or Firefox 2.0.0.8にて確認。</p>]]>
        
    </content>
</entry>

<entry>
    <title>サイトの設定を変更しました</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2007/06/post-26.html" />
    <id>tag:www.kreis-net.jp,2007:/blog//1.76</id>

    <published>2007-06-28T15:21:29Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>長らく絶賛放置中ですみませんｗ 最近書きたいことも無く、少し色々な事に対して熱意...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="movabletype" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>長らく絶賛放置中ですみませんｗ</p>

<p>最近書きたいことも無く、少し色々な事に対して熱意も冷めがちな今日この頃です。<br />
またぼちぼち更新できたらいいなと思ってます。<br />
もう巡回ルートに入れてくれている方も少ないとは思いますが。</p>

<p>さて、この度<br />
・トラックバックを無効に<br />
・コメント投稿をTypeKey認証に<br />
設定変更します。</p>

<p>主にコメント／トラックバックスパムに対する消極的対応が理由です。<br />
先ほどコメントスパム約5000件、トラックバックスパム約3000件を削除しました。</p>

<p>もはやブログというシステムに対する性善説的思想は成立しえず破綻しているように思います。<br />
特にうちのブログは、最近何も発信していないですし。<br />
このS/N比を打開し得るコンテンツを私が発信できるようになったら、その時はまた考えてみたいと思います。</p>

<p>何より、スパムにまみれた、価値の低いサイトを晒しておくのがみっともないですしね。</p>

<p>というわけですので、何卒ご了承くださいませ。</p>]]>
        
    </content>
</entry>

<entry>
    <title>S25R + tarpitting + greylisting = taRgrey</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2006/08/s25r-tarpitting-greylisting-ta.html" />
    <id>tag:www.kreis-net.jp,2006:/blog//1.75</id>

    <published>2006-08-17T01:24:04Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>前のエントリで少し毛嫌いしてたけども、 Starpit の手法であれば「まだマシ...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>前のエントリで少し毛嫌いしてたけども、 <a href="http://d.hatena.ne.jp/stealthinu/20060706/p5" target="_blank">Starpit</a> の手法であれば「まだマシ」かなぁと思った。 greylisting では確実に該当 IP からの一発目のメールが遅延してしまうけど、こっちならば遅延はない ( その代わりにサーバの初期応答が 1 分半ほど遅れる ( 応答遅延時間は設定による ) ) 。<br />
ただ問題なのは、<a href="http://d.hatena.ne.jp/stealthinu/20060728/p1" target="_blank">ここ</a>で述べられているけど、 Postfix 本体でこれを実現しているので、 RCPT TO 単位で tarpitting が起こってしまう。つまり 1 通のメールだったとしても宛先が 10 件あれば、 90 秒の tarpitting だとすると、全ての宛先に送りきるまでに 15 分待たされてしまう。<br />
この構造的にまずい点については、<a href="http://www.kozupon.com/postgrey/index.html" target="_blank">postgrey</a> による greylisting のように Postfix の filter で実現できるといい感じらしい。 この考えを取り入れた <a href="http://d.hatena.ne.jp/stealthinu/20060728/p2" target="_blank">taRgrey</a> というハイブリッドな手法にすれば、これらの弱点は克服できるそうだ。ふむふむ。しかしまだこの手法に対する実装は無いとのこと。</p>

<p>ここまで調べて、うちの鯖に実装するなら taRgrey だなぁと確信…。<br />
taRgrey なら、まずスパムのほとんどは tarpitting によって阻止可能。この部分の設定はメンテナンスフリー。<br />
スパムではないのに tarpitting で接続が切れてしまったものに対しては greylisting で救済する。この部分の設定は、ホワイトリスト & ブラックリストのメンテナンスが必要だが、そもそも tarpitting での誤検出はごくまれらしいので、単体で greylisting するよりもメンテナンスが容易 ( なはず ) 。<br />
S25R に該当する正当なメールに対して tarpitting してしまっても良いのであれば、ホワイトリストのメンテすらやらなくて良い ( はず ) 。</p>

<p>うーん、やっぱり「メンテナンスフリー」は大事ですよ。<br />
単体の greylisting なんて、趣味の自鯖では到底やろうとは思えない。いや、むしろ仕事なら尚更かも。<br />
taRgrey の実装が待ち遠しい今日この頃です。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Spamassassin とか S25R とか</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2006/08/spamassassin-s25r.html" />
    <id>tag:www.kreis-net.jp,2006:/blog//1.74</id>

    <published>2006-08-16T01:58:41Z</published>
    <updated>2008-02-22T15:01:37Z</updated>

    <summary>自宅サーバでダイナミック DNS を使ってメールサーバを活用しようと思い立ったの...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>自宅サーバでダイナミック DNS を使ってメールサーバを活用しようと思い立ったので、 Spamassassin とかいじってみる。</p>

<p>下記、 /etc/procmailrc の記述：</p>

<pre class="code">
  PATH=/bin:/usr/bin:/usr/local/bin
  MAILDIR=$HOME/Maildir
  DEFAULT=$MAILDIR/
  LOGFILE=$MAILDIR/procmaillog
  LOCKFILE=$HOME/.lockmail
  SPAM=$HOME/.spam
  
  # at first, check 'X-Spam*' and filter
  :0fw
  *!^X-Spam.*
  |spamassassin
  
  # already filtered, then send to '.Spam' folder
  :0
  * ^X-Spam-Status: Yes
  $MAILDIR/.Spam/
</pre>

<p>こうしとけば、 IMAP で繋いだとき、スパム判定を食らったメールは自動的に「Spam」フォルダに入る。<br />
判定漏れで INBOX に入っちゃったものはメーラ上で手動で Spam フォルダへ移した上で</p>

<pre class="code">
  # SPAM 学習
  /usr/bin/sa-learn --spam /home/*/Maildir/.Spam/cur
  # 非 SPAM 学習
  /usr/bin/sa-learn --ham /home/*/Maildir/cur
</pre>

<p>とか定期的にやっとけば後は手間要らず。のはず。 cron に入れておけばさらに手間要らず。<br />
もう少し突っ込んで Web 上を調べてると <a href="http://www.gabacho-net.jp/anti-spam/anti-spam-system.html" target="_blank">S25R</a> とか <a href="http://d.hatena.ne.jp/keyword/greylisting" target="_blank">greylisting</a> とか <a href="http://d.hatena.ne.jp/stealthinu/20060706/p5" target="_blank">tarpitting ( greet pause )</a> とか面白そうな技術も発見。<br />
これって、とりあえず怪しい IP やドメインを正規表現ではじいて、そいつらからのメールはとりあえず応答を遅らせてみたり reject してみたりして、それでもちゃんとメールサーバの作法通り再送してきた奴だけは許可します、っていう仕組みなのね。<br />
確かにこれでいけば「スパムうぜえ！」って思うことは少なくなるだろうけど、「応答を遅らせてみたり reject したり」はしたくないなぁ。そんなヘンな挙動が「当たり前」にはなってほしくない。<br />
というわけでこれは今回は見送ったけど、そうは言っても「とにかくスパムを受け取りたくない」って人には効果抜群なわけで、なんだか有名になりそうなのが微妙...</p>]]>
        <![CDATA[<p>8/17 追記：<br />
当たり前な挙動にはなって欲しくないけど、 taRgrey ならば「一発目の挙動」だけに収束できるし、スパム対策としてはやっぱりかなり有効なので、手の平返すようだけど「taRgrey は」支持したい。ｗ</p>]]>
    </content>
</entry>

<entry>
    <title>MT4i/2.11</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2006/08/mt4i211.html" />
    <id>tag:www.kreis-net.jp,2006:/blog//1.73</id>

    <published>2006-08-16T01:47:54Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>MT4i/2.11へバージョンアップ。前までは自分で改造した Unicode::...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="moblog" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="movabletype" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p><a href="http://www.hazama.nu/pukiwiki/index.php?MT4i%2F2.1" target="_blank">MT4i/2.11</a>へバージョンアップ。前までは自分で改造した Unicode::Japanese 版を使ってたんだけど、 ver 2.0 から Perl 5.8 の Encode.pm に対応してたのでようやく踏み切ってみました。<br />
あと、旧版では MT4i 経由でのコメントスパムがうざかったのでとりあえず当面コメント禁止設定で。<br />
また時間があったらいじろう…</p>]]>
        
    </content>
</entry>

<entry>
    <title>PHP4 で SHA-256 以上のハッシュ関数</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2006/07/php4-sha256.html" />
    <id>tag:www.kreis-net.jp,2006:/blog//1.72</id>

    <published>2006-07-23T09:01:03Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>を使うためには PECL から hash モジュールを落としてきてインストールす...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>を使うためには <a href="http://pecl.php.net/" target="_blank">PECL</a> から <a href="http://pecl.php.net/package/hash" target="_blank">hash モジュール</a>を落としてきてインストールすれば良いんだけど、 PHP5 から対応している <a href="http://jp2.php.net/manual/ja/ref.session.php#ini.session.hash-function" target="_blank">session_id() の SHA-1 化</a>とかって、 PHP4 では対応してなさげじゃん…<br />
ていうか、 SHA-1 すら<a href="http://slashdot.jp/security/05/02/16/0725239.shtml?topic=28" target="_blank">半年も前にコリジョン発見</a>されてるし、同じ SHA なら 256 以上に対応していて欲しいところなんだけど、 PHP4 ってメンテナンスバージョンだから新機能追加はほとんど期待できないよね…<br />
今時 PHP4 なんか使うなって言われたらおしまいですが…ｗ<br />
ただのぼやきですんません(汗<br />
<a href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" target="_blank">NIST の文献</a>とか見つけたけど、腰据えて訳さないとわけわかんねーし。<br />
誰か対応してくんないかなー。</p>

<p>こうしてる間にも納期は迫ってくるし…(結局それかよ)</p>]]>
        
    </content>
</entry>

<entry>
    <title>Synergy パッチ</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2006/07/synergy-1.html" />
    <id>tag:www.kreis-net.jp,2006:/blog//1.71</id>

    <published>2006-07-11T20:42:38Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>以前バイナリで公開したsynergy 1.3.1の差分(パッチ)を公開してみる。...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="synergy" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>以前<a href="http://www.kreis-net.jp/blog/archives/000069.php" target="_blank">バイナリで公開</a>した<a href="http://synergy2.sourceforge.net/" target="_blank">synergy</a> 1.3.1の差分(パッチ)を公開してみる。<br />
下記に対応しています。<br />
<ul><br />
<li>無変換キー<br />
<li>変換キー<br />
<li>半角/全角キー<br />
<li>ひらがな・カタカナキー<br />
</ul><br />
<a href="http://www.kreis-net.jp/downloads/synergy-1.3.1-PIA_20060712.patch" target="_blank">どうぞご利用ください。</a>Windows版バイナリは<a href="http://www.kreis-net.jp/downloads/synergy-1.3.1jp.zip" target="_blank">こちら</a>。<br />
ただし、上記を使用した場合の責任は全て自己責任でお願いします。</p>

<p>これ、本家に報告したほうがいいかな？</p>

<p>追記：<br />
上記パッチ及びソフトウェアの改変物は、オリジナルの<a href="http://synergy2.sourceforge.net/" target="_blank">Synergy</a>と同様<a href="http://www.gnu.org/licenses/gpl.txt" target="_blank">GNU GPLライセンス</a>のもとに頒布されるものです。</p>]]>
        
    </content>
</entry>

<entry>
    <title>PHP4で動的メソッド生成</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2006/06/php4.html" />
    <id>tag:www.kreis-net.jp,2006:/blog//1.70</id>

    <published>2006-06-23T18:19:31Z</published>
    <updated>2008-02-22T15:05:02Z</updated>

    <summary>以下のようにすれば、クラスを定義した後でも、インスタンス変数にアクセスするメソッ...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>以下のようにすれば、クラスを定義した後でも、インスタンス変数にアクセスするメソッド(のようなもの)を動的に生成できる。<br />
無名関数のスコープが生成時のスコープに依存しないため、引数に<code>&$this</code>を与えるのがポイント。</p>

<pre class="code">
  class Foo {
      var $str;
      function setStr($str) { $this->str = $str; }
      function doAnonFunc($argsdef, $code, $arg) {
          $func = create_function($argsdef, $code);
          return $func(&$this, $arg);
      }
  
  }
  
  $obj = new Foo;
  $obj->setStr('baz');
  
  echo 'STEP0:'.$obj->str."\n";
  echo 'STEP1:'.$obj->doAnonFunc('&$this, $str', '$this->setStr($str); return $this->str;', 'test')."\n";
  echo 'STEP2:'.$obj->str."\n";
</pre>

<p>出力：</p>

<pre class="code">
  STEP0:baz
  STEP1:test
  STEP2:test
</pre>]]>
        
    </content>
</entry>

<entry>
    <title>また衝動買い</title>
    <link rel="alternate" type="text/html" href="http://www.kreis-net.jp/blog/2006/06/post-25.html" />
    <id>tag:www.kreis-net.jp,2006:/blog//1.69</id>

    <published>2006-06-16T02:34:55Z</published>
    <updated>2008-02-22T13:51:26Z</updated>

    <summary>えぇ、クセですね衝動買いｗ 百式トートバッグ買っちゃいました。完全受注生産、8月...</summary>
    <author>
        <name>PIA</name>
        
    </author>
    
        <category term="WAY TO GO" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.kreis-net.jp/blog/">
        <![CDATA[<p>えぇ、クセですね衝動買いｗ</p>

<p><a href="http://1001010.jp/archives/000115.html" target="_blank">百式トートバッグ</a>買っちゃいました。完全受注生産、8月25日から順次発送だって。楽しみ～。</p>

<p>あの百式さんが企画・開発されたモノですよ。<a href="http://1001010.jp/archives/1001010_final_design.jpg" target="_blank">仕様書</a>も公開されてます。<br />
メインコンセプトのon/offスイッチがただの飾りではなく、本物のスイッチ部品が付いてるってとこが洒落てますね。配線すれば実際に使えるという。</p>

<p><a href="http://1001010.jp/" target="_blank">プロジェクトサイト</a>や仕様書を見る限り、とてもよく考えられていてすごく使いやすそう！</p>

<p>しかし、クレジットカード番号の入力とか、もう暗記しててカード見なくても決済できるようになってた自分にﾃﾗﾜﾛｽ。</p>]]>
        
    </content>
</entry>

</feed>
