<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>mizzy.org: Category program</title>
    <link>http://blog.mizzy.org/articles/category/program</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>FLV::Info &#12391; ustream &#12398; FLV &#12501;&#12449;&#12452;&#12523;&#24773;&#22577;&#12434;&#12392;&#12429;&#12358;&#12392;&#12377;&#12427;&#12392;&#12456;&#12521;&#12540;&#12395;&#12394;&#12427;&#20214;</title>
      <description>&lt;p&gt;ustream &#12398; &lt;span class="caps"&gt;FLV&lt;/span&gt; &#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12375;&#12390;&#38899;&#22768;&#22793;&#25563;&#12377;&#12427;&#26041;&#27861;&#12399;&#12289;&lt;a href="http://unknownplace.org/memo/2007/10/03"&gt;typester&#12373;&#12435;&#12398;&#12392;&#12371;&#12395;&#35443;&#12375;&#12367;&#26360;&#12356;&#12390;&#12354;&#12427;&lt;/a&gt; &#12431;&#12369;&#12391;&#12377;&#12364;&#12289;sox &#12395;&#28193;&#12377;&#12392;&#12365;&#12395;&#12469;&#12531;&#12503;&#12523;&#12524;&#12540;&#12488;&#12434;&#25351;&#23450;&#12377;&#12427;&#24517;&#35201;&#12364;&#12354;&#12387;&#12383;&#12426;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;&#12391;&#12289;&#12371;&#12428;&#12434; Plagger &#12503;&#12521;&#12464;&#12452;&#12531;&#12391;&#23455;&#29694;&#12377;&#12427;&#12383;&#12417;&#12395;&#12399;&#12289;&#20309;&#12425;&#12363;&#12398;&#26041;&#27861;&#12391;&#20803;&#12501;&#12449;&#12452;&#12523;&#12398;&#12469;&#12531;&#12503;&#12523;&#12524;&#12540;&#12488;&#12434;&#21462;&#24471;&#12375;&#12394;&#12356;&#12392;&#12356;&#12369;&#12394;&#12356;&#12431;&#12369;&#12391;&#12289;&lt;a href="http://search.cpan.org/dist/FLV-Info/"&gt;&lt;span class="caps"&gt;FLV&lt;/span&gt;::Info&lt;/a&gt; &#12391;&#12391;&#12365;&#12381;&#12358;&#12384;&#12394;&#12289;&#12392;&#24605;&#12387;&#12383;&#12392;&#12371;&#12429;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Failed to read FLV file: Tag size is too small (0) at byte 193 (0xc1) at /usr/local/lib/perl5/site_perl/5.8.7/FLV/Tag.pm line 81.
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12392;&#12356;&#12387;&#12383;&#12456;&#12521;&#12540;&#12364;&#20986;&#12414;&#12377;&#12290;&#33394;&#12293;&#35519;&#12409;&#12390;&#12415;&#12383;&#12392;&#12371;&#12429;&#12289;ustream &#12398; &lt;span class="caps"&gt;FLV&lt;/span&gt; &#12501;&#12449;&#12452;&#12523;&#20013;&#12395;&#12289;&#12508;&#12487;&#12451;&#12364; 0 &#12398;&#12458;&#12540;&#12487;&#12451;&#12458;&#12479;&#12464;&#12364;&#23384;&#22312;&#12377;&#12427;&#12363;&#12425;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12364;&#12431;&#12363;&#12387;&#12383;&#12398;&#12391;&#12289;&lt;a href="https://rt.cpan.org/Ticket/Display.html?id=29831"&gt;&#12497;&#12483;&#12481;&#12434;&#26360;&#12356;&#12390; RT &#12395;&#25237;&#12370;&#12390;&#12362;&#12365;&#12414;&#12375;&#12383;&#12290;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&#12497;&#12483;&#12481;&#33258;&#20307;&#12399;&#25968;&#34892;&#12467;&#12513;&#12531;&#12488;&#12450;&#12454;&#12488;&#12375;&#12390;1&#34892;&#36861;&#21152;&#12375;&#12383;&#12384;&#12369;&#12289;&#12392;&#12356;&#12358;&#31777;&#21336;&#12394;&#12418;&#12398;&#12394;&#12398;&#12391;&#12377;&#12364;&#12289;&#12371;&#12398;&#12497;&#12483;&#12481;&#12434;&#26360;&#12367;&#12383;&#12417;&#12395;&#12289;&lt;a href="http://osflash.org/flv"&gt;&lt;span class="caps"&gt;FLV&lt;/span&gt;&#12398;&#12501;&#12449;&#12452;&#12523;&#12501;&#12457;&#12540;&#12510;&#12483;&#12488;&lt;/a&gt; &#12434;&#35519;&#12409;&#12390;&#12289;&#38899;&#22768;&#12501;&#12457;&#12540;&#12510;&#12483;&#12488;&#12434;&#21462;&#24471;&#12377;&#12427; Perl &#12473;&#12463;&#12522;&#12503;&#12488;&#12434;&#33258;&#20998;&#12391;&#26360;&#12356;&#12390;&#12415;&#12383;&#12426;&#12392;&#12289;&#12360;&#12425;&#12367;&#22238;&#12426;&#36947;&#12375;&#12414;&#12375;&#12383;&#12290;&#12379;&#12387;&#12363;&#12367;&#12394;&#12435;&#12391;&#12473;&#12463;&#12522;&#12503;&#12488;&#12434;&#36617;&#12379;&#12390;&#12362;&#12365;&#12414;&#12377;&#12290;&#12473;&#12463;&#12522;&#12503;&#12488;&#20316;&#25104;&#12395;&#12354;&#12383;&#12387;&#12390;&#12289;&lt;a href="http://code.google.com/p/nelly2pcm/"&gt;nelly2pcm&lt;/a&gt; &#12398;&#12477;&#12540;&#12473;&#12418;&#21442;&#32771;&#12395;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;#!/usr/bin/perl

use strict;
use warnings;
use Readonly;

Readonly my $FLV_TAG_TYPE_AUDIO                =&amp;gt; 0x08;
Readonly my $AUDIO_MASK_STEREO                 =&amp;gt; 0x01;
Readonly my $AUDIO_MASK_16bit                  =&amp;gt; 0x02;
Readonly my $AUDIO_MASK_RATE                   =&amp;gt; 0x0c;
Readonly my $AUDIO_RATE_5point5KHZ             =&amp;gt; 0x00;
Readonly my $AUDIO_RATE_11KHZ                  =&amp;gt; 0x04;
Readonly my $AUDIO_RATE_22KHZ                  =&amp;gt; 0x08;
Readonly my $AUDIO_RATE_44KHZ                  =&amp;gt; 0x0c;
Readonly my $AUDIO_MASK_FORMAT                 =&amp;gt; 0xf0;
Readonly my $AUDIO_FORMAT_UNCOMPRESSED         =&amp;gt; 0x00;
Readonly my $AUDIO_FORMAT_ADPCM                =&amp;gt; 0x10;
Readonly my $AUDIO_FORMAT_MP3                  =&amp;gt; 0x20;
Readonly my $AUDIO_FORMAT_NELLYMOSER_8KHZ_MONO =&amp;gt; 0x50;
Readonly my $AUDIO_FORMAT_NELLYMOSER           =&amp;gt; 0x60;

Readonly my %AUDIO_RATE =&amp;gt; (
    $AUDIO_RATE_5point5KHZ =&amp;gt; 5.5,
    $AUDIO_RATE_11KHZ      =&amp;gt; 11,
    $AUDIO_RATE_22KHZ      =&amp;gt; 22,
    $AUDIO_RATE_44KHZ      =&amp;gt; 44,
);

Readonly my %AUDIO_FORMAT =&amp;gt; (
    $AUDIO_FORMAT_UNCOMPRESSED         =&amp;gt; 'Uncompressed',
    $AUDIO_FORMAT_ADPCM                =&amp;gt; 'ADPCM',
    $AUDIO_FORMAT_MP3                  =&amp;gt; 'MP3',
    $AUDIO_FORMAT_NELLYMOSER_8KHZ_MONO =&amp;gt; 'Nellymoser 8kHz mono',
    $AUDIO_FORMAT_NELLYMOSER           =&amp;gt; 'Nellymoser',
);

my $file = shift;

open my $fh, '&amp;lt;', $file;

my $header = read_header($fh);

while ( ! eof $fh ) {
    my $tag = read_tag($fh);
    if ( $tag-&amp;gt;{type} == $FLV_TAG_TYPE_AUDIO and $tag-&amp;gt;{length} ) {
        my $first_byte = $tag-&amp;gt;{first_byte};

    my $stereo       = $first_byte &amp;#38; $AUDIO_MASK_STEREO;
    my $audio_size  = $first_byte &amp;#38; $AUDIO_MASK_16bit ? 16 : 8;
        my $audio_rate   = $AUDIO_RATE{ $first_byte &amp;#38; $AUDIO_MASK_RATE } || 'unknown';
        my $audio_format = $AUDIO_FORMAT{ $first_byte &amp;#38; $AUDIO_MASK_FORMAT } || 'unknown';

        print 'audio type: ' . ( $stereo ? 'stereo' : 'mono' ) . "\n";
        print "audio size: $audio_size bit\n";
        print "audio rate: $audio_rate Hz\n";
        print "audio format: $audio_format\n";
        last;
    }
}

sub read_header {
    my $fh = shift;
    read $fh, my $sig,       3;
    read $fh, my $version,   1;
    read $fh, my $flag,      1;
    read $fh, my $offset,    4;
    read $fh, my $prev_tag,  4;

    return {
        sig =&amp;gt; $sig,
        version =&amp;gt; unpack('H*', $version),
        flag    =&amp;gt; unpack('H*', $flag),
        offset  =&amp;gt; unpack('H*', $offset),
    };
}

sub read_tag {
    my $fh = shift;
    read $fh, my $type,               1;
    read $fh, my $length,             3;
    read $fh, my $timestamp,          3;
    read $fh, my $timestamp_extended, 1;
    read $fh, my $stream_id,          3;
    read $fh, my $first_byte,         1;

    my $pos = hex unpack 'H*', $length;
    seek $fh, $pos - 1, 1;

    read $fh, my $prev_tag,  4;

    return {
        type       =&amp;gt; unpack('C', $type),
        length     =&amp;gt; $pos,
        first_byte =&amp;gt; unpack('C', $first_byte),
    };
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12371;&#12435;&#12394;&#24863;&#12376;&#12391; &lt;span class="caps"&gt;FLV&lt;/span&gt; &#12501;&#12449;&#12452;&#12523;&#12398;&#38899;&#22768;&#24773;&#22577;&#12434;&#34920;&#31034;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ ./get_flv_info.pl broadcast_35957_1191232400660.flv
audio type: mono
audio size: 16 bit
audio rate: 11 Hz
audio format: Nellymoser  
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12354;&#12392;&#12399; Plagger &#12503;&#12521;&#12464;&#12452;&#12531;&#12434;&#26360;&#12367;&#12384;&#12369;&#12289;&#12392;&#12356;&#12358;&#24863;&#12376;&#12394;&#12398;&#12391;&#12377;&#12364;&#12289;&#12522;&#12499;&#12489;&#12540;&#12364;&#27832;&#12356;&#12390;&#12371;&#12394;&#12356;&#12398;&#12391;&#12385;&#12423;&#12387;&#12392;&#20445;&#30041;&#12290;FFmpeg &#12391; Nellymoser &#12395;&#23550;&#24540;&#12377;&#12427;&#20104;&#23450;&#12364;&#12354;&#12427;&#65288;&#26082;&#12395; &lt;span class="caps"&gt;SVN HEAD&lt;/span&gt; &#12395;&#12399; Nellymoser &#12392;&#12356;&#12358;&#25991;&#23383;&#21015;&#12364;&#12467;&#12540;&#12489;&#20013;&#12395;&#12354;&#12427;&#65289;&#12424;&#12358;&#12394;&#12398;&#12391;&#12289;&#12381;&#12428;&#12414;&#12391;&#24453;&#12387;&#12390;&#12418;&#12356;&#12356;&#12363;&#12394;&#12540;&#12289;&#12392;&#12290;&lt;/p&gt;


	&lt;p&gt;&#38899;&#22768;&#22793;&#25563;&#12377;&#12427;&#12503;&#12521;&#12464;&#12452;&#12531; &lt;a href="http://coderepos.org/share/browser/lang/perl/plagger/lib/Plagger/Plugin/Filter/Audio.pm"&gt;Filter::Audio&lt;/a&gt; &#12399; coderepos &#12395;&#12354;&#12370;&#12390;&#12354;&#12426;&#12414;&#12377;&#12398;&#12391;&#12289;&#20474;&#12364;&#23550;&#24540;&#12375;&#12390;&#12420;&#12427;&#12380;&#12289;&#12392;&#12356;&#12358;&#26041;&#12399;&#12362;&#22909;&#12365;&#12394;&#12424;&#12358;&#12395;&#12356;&#12376;&#12387;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;&lt;/p&gt;</description>
      <pubDate>Mon, 08 Oct 2007 14:07:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:8e786461-25a1-4c71-ab05-dc26ec4abb6b</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/10/08/flv-info-ustream</link>
      <category>program</category>
    </item>
    <item>
      <title>Shibuya.pm &#12486;&#12463;&#12491;&#12459;&#12523;&#12488;&#12540;&#12463; #8 &#12391;&#12375;&#12419;&#12409;&#12387;&#12390;&#12365;&#12414;&#12375;&#12383;</title>
      <description>&lt;p&gt;&#12503;&#12524;&#12476;&#12531;&#36884;&#20013;&#12395;&#12496;&#12483;&#12486;&#12522;&#12540;&#12364;&#20999;&#12428;&#12427;&#12392;&#12356;&#12358;&#22833;&#24907;&#12434;&#12420;&#12425;&#12363;&#12375;&#12383;&#12383;&#12417;&#12289;yusukebe&#12373;&#12435;&#35328;&#12358;&#12392;&#12371;&#12429;&#12398;&#12300;&#12362;&#21475;&#12391;&#12301;&#12398;&#12415;&#12398;&#12503;&#12524;&#12476;&#12531;&#12392;&#12394;&#12387;&#12390;&#12375;&#12414;&#12356;&#12414;&#12375;&#12383;&#12290;&#12372;&#12417;&#12435;&#12394;&#12373;&#12356;&#12290;&lt;a href="http://mizzy.org/archives/2007/pushmi_shibuya_pm_8.pdf"&gt;&#20250;&#22580;&#12391;&#12362;&#35211;&#12379;&#12391;&#12365;&#12394;&#12363;&#12387;&#12383;&#24187;&#12398;&#36039;&#26009;&#12399;&#12371;&#12385;&#12425;&#12395;&#12450;&#12483;&#12503;&#12375;&#12390;&#12362;&#12365;&#12414;&#12377;&lt;/a&gt;&#12290;&lt;/p&gt;

&lt;p&gt;Thinkpad X60s&#12399;&#12496;&#12483;&#12486;&#12522;&#12540;&#27531;&#37327;&#34920;&#31034;&#12364;1&#26178;&#38291;&#12395;&#12394;&#12387;&#12390;&#12356;&#12390;&#12418;&#12289;&#12503;&#12524;&#12476;&#12531;&#12420;&#12427;&#12392;2,3&#20998;&#12391;&#12496;&#12483;&#12486;&#12522;&#12540;&#20999;&#12428;&#12414;&#12377;&#12398;&#12391;&#12289;&#12415;&#12394;&#12373;&#12435;&#12372;&#27880;&#24847;&#19979;&#12373;&#12356;&#12290;&lt;/p&gt;</description>
      <pubDate>Mon, 01 Oct 2007 23:18:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:3ac39d4f-0073-4d23-8159-9a6928141de9</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/10/01/shibuya-pm-tech-talk-8</link>
      <category>program</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/528</trackback:ping>
    </item>
    <item>
      <title>Trac &#12398; SearchHyperEstraierPlugin &#12434; Trac 0.10.x &#12391;&#21205;&#12363;&#12377;&#12497;&#12483;&#12481;</title>
      <description>&lt;p&gt;&lt;a href="http://weekbuild.sakura.ne.jp/trac/wiki/TracDoc/SearchHyperEstraierPlugin"&gt;SearchHyperEstraierPlugin&lt;/a&gt; &#12364;&#12289;Trac 0.10.x &#12392;&#12356;&#12358;&#12363;&#12289;&#12358;&#12385;&#12398;&#29872;&#22659;&#12391;&#21205;&#12363;&#12394;&#12356;&#12398;&#12391;&#12289;&#12497;&#12483;&#12481;&#26360;&#12356;&#12383;&#12290;&#21021; Python &#12503;&#12525;&#12464;&#12521;&#12511;&#12531;&#12464;&#12290;&#65288;&#12392;&#12356;&#12358;&#12411;&#12393;&#12398;&#12418;&#12398;&#12376;&#12419;&#12394;&#12356;&#12369;&#12393;&#12290;&#65289;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
=== searchhyperestraier/searchhyperestraier.py
==================================================================
--- searchhyperestraier/searchhyperestraier.py    (revision 892)
+++ searchhyperestraier/searchhyperestraier.py    (local)
@@ -2,8 +2,9 @@
 # SearchRepositoryWithNamazu plugin

 from trac.core import *
-from trac.Search import ISearchSource, query_to_sql, shorten_result
+from trac.Search import ISearchSource, shorten_result
 from trac.util import NaivePopen
+from trac.util.text import to_unicode
 from StringIO import StringIO
 import urllib
 import time
@@ -44,9 +45,9 @@
         browse_trac = self.env.config.get('searchhyperestraier', 'browse_trac','enabled')

-        cmdline = "%s %s %s %s" % (estcmd_path,estcmd_arg,index_path,unicode(query,'utf-8').encode(estcmd_encode))
+        cmdline = "%s %s %s %s" % (estcmd_path,estcmd_arg,index_path,' '.join(query))
         self.log.debug('SearchHyperEstraier:%s' % cmdline)
-        np = NaivePopen(cmdline)
+        np = NaivePopen( cmdline.encode(estcmd_encode) )
         #self.log.debug('Result:%s' % unicode(np.out,'utf-8').encode('mbcs'))
         #self.log.debug('Result:%s' % np.out)
         if np.errorlevel or np.err:
@@ -74,7 +75,7 @@
             attrelem_array = element.getElementsByTagName("attribute")
             for attrelem in attrelem_array:
                 attr_name = attrelem.getAttribute("name")
-                attr_value = unicode(attrelem.getAttribute("value")).encode('utf-8')
+                attr_value = to_unicode(attrelem.getAttribute("value"))
                 #URL&#12392;&#12479;&#12452;&#12488;&#12523;&#12434;&#29983;&#25104;
                 if attr_name == "_lreal":
                     attr_value=attr_value[len(replace_left):].replace("\\","/")
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12456;&#12521;&#12540;&#12364;&#20986;&#12427;&#12383;&#12403;&#12395;&#12289;&#36969;&#24403;&#12395;&#12356;&#12376;&#12387;&#12390;&#12383;&#12425;&#21205;&#12356;&#12383;&#12289;&#12392;&#12356;&#12358;&#24863;&#12376;&#12290;&#12394;&#12398;&#12391;&#12289;&#12371;&#12435;&#12394;&#12435;&#12391;&#12356;&#12356;&#12398;&#12363;&#12399;&#12424;&#12367;&#20998;&#12363;&#12425;&#12394;&#12356;&#12290;&lt;/p&gt;</description>
      <pubDate>Thu, 09 Aug 2007 03:03:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:caf9c890-84e5-43df-baec-aa809c1324ce</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/08/09/SearchHyperEstraierPlugin</link>
      <category>program</category>
      <category>linux</category>
    </item>
    <item>
      <title>Pushmi &#12388;&#12363;&#12387;&#12390;&#12414;&#12377; &amp;amp; &#25216;&#34899;&#32773;&#21215;&#38598;&#20013; at &#31119;&#23713;</title>
      <description>&lt;p&gt;&lt;a href="http://www.paperboy.co.jp/"&gt;&#24330;&#31038;&lt;/a&gt; &#12399;&#26481;&#20140;&#12392;&#31119;&#23713;&#12395;&#12458;&#12501;&#12451;&#12473;&#12364;&#12354;&#12426;&#12289;&#12381;&#12428;&#12382;&#12428;&#12398;&#25312;&#28857;&#12395; Subversion + Trac &#29872;&#22659;&#12434;&#27083;&#31689;&#12375;&#12289;&lt;a href="http://openvpn.net/"&gt;OpenVPN&lt;/a&gt; &#12395;&#12424;&#12426; &lt;span class="caps"&gt;VPN&lt;/span&gt; &#25509;&#32154;&#12375;&#12390;&#12362;&#20114;&#12356;&#12398;&#38283;&#30330;&#29366;&#27841;&#12434;&#20844;&#38283;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&#12469;&#12540;&#12499;&#12473;&#32097;&#12415;&#12398;&#38283;&#30330;&#12399;&#22522;&#26412;&#30340;&#12395;&#12289;&#26481;&#20140;&#12399;&#26481;&#20140;&#12289;&#31119;&#23713;&#12399;&#31119;&#23713;&#12391;&#23436;&#32080;&#12375;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#12371;&#12398;&#26041;&#24335;&#12391;&#21839;&#38988;&#12399;&#12394;&#12356;&#12398;&#12391;&#12377;&#12364;&#12289;&#12469;&#12540;&#12496;&#31649;&#29702;&#38306;&#36899;&#12398;&#12473;&#12463;&#12522;&#12503;&#12488;&#12394;&#12435;&#12363;&#12399;&#12289;&#26481;&#20140;&#12392;&#31119;&#23713;&#12391;&#20849;&#36890;&#12377;&#12427;&#12418;&#12398;&#12364;&#22810;&#12356;&#12383;&#12417;&#12289;&#21029;&#12293;&#12398; &lt;span class="caps"&gt;SVN&lt;/span&gt; &#12522;&#12509;&#12472;&#12488;&#12522;&#12391;&#31649;&#29702;&#12373;&#12428;&#12390;&#12427;&#12392;&#19981;&#20415;&#12394;&#12435;&#12391;&#12377;&#12424;&#12397;&#12290;&#12363;&#12392;&#12356;&#12387;&#12390;&#12289;&#12393;&#12385;&#12425;&#12363;&#12398;&#25312;&#28857;&#12384;&#12369;&#12375;&#12363;&#12522;&#12509;&#12472;&#12488;&#12522;&#12364;&#12394;&#12356;&#12392;&#12289;VPN &#12398;&#38556;&#23475;&#30330;&#29983;&#26178;&#12395;&#12289;&#12522;&#12509;&#12472;&#12488;&#12522;&#12398;&#12394;&#12356;&#25312;&#28857;&#12363;&#12425;&#12399;&#12414;&#12387;&#12383;&#12367;&#12450;&#12463;&#12475;&#12473;&#12364;&#12391;&#12365;&#12394;&#12356;&#12289;&#12392;&#12356;&#12358;&#22256;&#12387;&#12383;&#12371;&#12392;&#12395;&#12394;&#12387;&#12390;&#12375;&#12414;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;&#12381;&#12371;&#12391;&#12289;SVN &#12522;&#12509;&#12472;&#12488;&#12522;&#12524;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12484;&#12540;&#12523; &lt;a href="http://search.cpan.org/dist/Pushmi/lib/Pushmi.pm"&gt;Pushmi&lt;/a&gt; &#12434;&#23566;&#20837;&#12375;&#12390;&#12415;&#12414;&#12375;&#12383;&#12290;&#35443;&#32048;&#12399; &lt;a href="http://video.google.com/videoplay?docid=-7181301487103062288&amp;#38;q=yapc+asia+2007&amp;#38;total=46&amp;#38;start=0&amp;#38;num=50&amp;#38;so=1&amp;#38;type=search&amp;#38;plindex=13"&gt;&lt;span class="caps"&gt;YAPC&lt;/span&gt;::Asia &#12391;&#12398; &#20316;&#32773; Cl Kao &#12395;&#12424;&#12427;&#12473;&#12500;&#12540;&#12481;&#21205;&#30011;&lt;/a&gt; &#12434;&#35211;&#12390;&#38914;&#12367;&#12392;&#12375;&#12390;&#12289;&#12371;&#12371;&#12391;&#12399;&#34892;&#12387;&#12383;&#35373;&#23450;&#12395;&#12388;&#12356;&#12390;&#12513;&#12514;&#12434;&#27531;&#12375;&#12390;&#12362;&#12365;&#12414;&#12377;&#12290;&#12411;&#12392;&#12435;&#12393; perldoc Pushmi &#12398;&#20869;&#23481;&#12392;&#21516;&#12376;&#12391;&#12377;&#12364;&#12290;&lt;/p&gt;


	&lt;p&gt;&#12414;&#12378;&#24403;&#28982; Pushmi &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12364;&#24517;&#35201;&#12391;&#12377;&#12290;&#12371;&#12428;&#12398;&#25163;&#38918;&#12399;&#30465;&#30053;&#12290;&#12414;&#12383;&#12289;&#12424;&#12426;&#33391;&#12356;&#12450;&#12488;&#12511;&#12483;&#12463;&#12525;&#12483;&#12463;&#23455;&#29694;&#12398;&#12383;&#12417;&#12395; &lt;a href="http://www.danga.com/memcached/"&gt;memcached&lt;/a&gt; &#12434;&#21033;&#29992;&#12375;&#12390;&#12356;&#12427;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12394;&#12398;&#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12362;&#12365;&#12414;&#12377;&#12290;&#12371;&#12428;&#12418;&#25163;&#38918;&#12399;&#30465;&#30053;&#12290;&lt;/p&gt;


	&lt;p&gt;memcached &#12434;&#36215;&#21205;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ sudo /usr/bin/memcached -p 8123 -dP /var/run/memcached.pid -u nobody
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;/etc/pushmi.conf &#12434;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;&#24330;&#31038;&#12398;&#29872;&#22659;&#12391;&#12399; memcached &#12398;&#12509;&#12540;&#12488;&#12398;&#12415;&#25351;&#23450;&#12375;&#12390;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;authproxy_port: 8123
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12511;&#12521;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12434;&#20316;&#25104;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ pushmi mirror /var/db/my-local-mirror http://master.repository/svn
Mirror initialized.
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12511;&#12521;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12392;&#12510;&#12473;&#12479;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12434;&#21516;&#26399;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ pushmi sync /var/db/my-local-mirror
Retrieving log information from 1 to 62
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12511;&#12521;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12399;&#12289;svnadmin create &#12391;&#20316;&#25104;&#12377;&#12427;&#12398;&#12392;&#21516;&#27096;&#12394;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12289;&#12501;&#12449;&#12452;&#12523;&#27083;&#36896;&#12395;&#12394;&#12387;&#12390;&#12414;&#12377;&#12364;&#12289;Pushmi &#29992;&#12398; pre-commit &#12473;&#12463;&#12522;&#12503;&#12488;&#12392; post-commit &#12473;&#12463;&#12522;&#12503;&#12488;&#12364;&#32622;&#12363;&#12428;&#12390;&#12356;&#12427;&#12289;&#12392;&#12356;&#12358;&#12392;&#12371;&#12429;&#12364;&#30064;&#12394;&#12426;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;pre-commit &#12391;&#12399;&#20197;&#19979;&#12398;&#27096;&#12394;&#12467;&#12510;&#12531;&#12489;&#12364;&#23455;&#34892;&#12373;&#12428;&#12289;&#12511;&#12521;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12395;&#12467;&#12511;&#12483;&#12488;&#12373;&#12428;&#12383;&#20869;&#23481;&#12434;&#12289;&#12510;&#12473;&#12479;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12395;&#12467;&#12511;&#12483;&#12488;&#12375;&#12395;&#34892;&#12365;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;/usr/bin/pushmi runhook $1 --txnname $2
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;post-commit &#12391;&#12399;&#20197;&#19979;&#12398;&#27096;&#12394;&#12467;&#12510;&#12531;&#12489;&#12364;&#23455;&#34892;&#12373;&#12428;&#12289;&#12511;&#12521;&#12540;&#12392;&#12510;&#12473;&#12479;&#12540;&#12398;&#25972;&#21512;&#24615;&#12434;&#30906;&#35469;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;/usr/bin/pushmi verify $1 --revision $2
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Apache + WebDAV &#12391; &lt;span class="caps"&gt;SVN&lt;/span&gt; &#12522;&#12509;&#12472;&#12488;&#12522;&#12395;&#12450;&#12463;&#12475;&#12473;&#12377;&#12427;&#12383;&#12417;&#12395;&#12289;&#20197;&#19979;&#12398;&#27096;&#12394;&#35373;&#23450;&#12434; Apache &#12391;&#34892;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;Location /svn/server&amp;gt;
  PerlSetVar SVNPath /var/db/my-local-mirror
  PerlSetVar Pushmi /usr/bin/pushmi
  PerlSetVar PushmiConfig /etc/pushmi.conf
  &amp;lt;LimitExcept GET PROPFIND OPTIONS REPORT&amp;gt;
    AuthName "mirrored private area" 
    AuthType Basic
    Require valid-user
    AuthLDAPURL ldap://localhost:389/ou=people,o=paperboy?uid?sub?(objectclass=*)
    PerlAuthenHandler Pushmi::Apache::AuthCommit
  &amp;lt;/LimitExcept&amp;gt;
&amp;lt;/Location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#35373;&#23450;&#35211;&#12390;&#20998;&#12363;&#12427;&#12392;&#24605;&#12356;&#12414;&#12377;&#12364;&#12289;mod_perl &#12434;&#21033;&#29992;&#12375;&#12390;&#12356;&#12390;&#12289;Apche2 + mod_perl &#12398;&#29872;&#22659;&#12364;&#24517;&#35201;&#12391;&#12377;&#12290;Apache &#12399; 2.0 &#31995;&#12391;&#12418; 2.2 &#31995;&#12391;&#12418;&#22823;&#19976;&#22827;&#12394;&#12424;&#12358;&#12391;&#12377;&#12290;&#24330;&#31038;&#12391;&#12399; 2.0 &#31995;&#12434;&#21033;&#29992;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;&#29305;&#12395;&#12509;&#12452;&#12531;&#12488;&#12392;&#12394;&#12427;&#12398;&#12399;&#12289;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;PerlAuthenHandler Pushmi::Apache::AuthCommit
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12398;&#37096;&#20998;&#12391;&#12289;&#35469;&#35388;&#12391;&#28193;&#12373;&#12428;&#12383;&#12518;&#12540;&#12470;&#21517;&#12289;&#12497;&#12473;&#12527;&#12540;&#12489;&#12434;&#12371;&#12398;&#12514;&#12472;&#12517;&#12540;&#12523;&#12391; memcached &#12395;&#12461;&#12515;&#12483;&#12471;&#12517;&#12375;&#12390;&#12362;&#12365;&#12289;&#12510;&#12473;&#12479;&#12522;&#12509;&#12472;&#12488;&#12522;&#12408;&#12398;&#12467;&#12511;&#12483;&#12488;&#26178;&#12398;&#35469;&#35388;&#12395;&#21033;&#29992;&#12375;&#12414;&#12377;&#12290;Apache 2.2 &#31995;&#12398;&#22580;&#21512;&#12395;&#12399;&#12289;&#20197;&#19979;&#12398;&#27096;&#12395;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;AuthBasicProvider Pushmi::Apache::RelayProvider
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12371;&#12398;&#29366;&#24907;&#12391;&#12399;&#12289;&#12511;&#12521;&#12540;&#12408;&#12398;&#12467;&#12511;&#12483;&#12488;&#12399;&#21363;&#12510;&#12473;&#12479;&#12540;&#12395;&#21453;&#26144;&#12373;&#12428;&#12414;&#12377;&#12364;&#12289;&#12510;&#12473;&#12479;&#12540;&#12408;&#12398;&#12467;&#12511;&#12483;&#12488;&#12399;&#12511;&#12521;&#12540;&#12395;&#21453;&#26144;&#12373;&#12428;&#12414;&#12379;&#12435;&#12398;&#12391;&#12289;&#20197;&#19979;&#12398;&#27096;&#12394; cron &#35373;&#23450;&#12434;&#34892;&#12356;&#12289;5&#20998;&#12362;&#12365;&#12395;&#12510;&#12473;&#12479;&#12540;&#12392;&#12511;&#12521;&#12540;&#12434;&#21516;&#26399;&#12377;&#12427;&#12424;&#12358;&#12395;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;*/5 * * * * /usr/bin/pushmi sync --nowait /var/db/my-local-mirror
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#20170;&#12398;&#12392;&#12371;&#12429;&#12371;&#12428;&#12391;&#21839;&#38988;&#12394;&#12367;&#21205;&#12356;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;&#35441;&#22793;&#12431;&#12426;&#12414;&#12375;&#12390;&#12289;&#24330;&#31038;&#31119;&#23713;&#25903;&#31038;&#12391;&#12399;&#12289;&lt;a href="http://tenshoku.mynavi.jp/jobset/index.cfm?fuseaction=mrjt_Jobinfo_form&amp;#38;client_id=87984&amp;#38;plan_id=1&amp;#38;contract_id=1&amp;#38;job_seq_no=1&amp;#38;ty=0&amp;#38;rm=0"&gt;&#12503;&#12525;&#12464;&#12521;&#12510;&lt;/a&gt; &#12392; &lt;a href="http://tenshoku.mynavi.jp/jobset/index.cfm?fuseaction=mrjt_Jobinfo_form&amp;#38;client_id=87984&amp;#38;plan_id=1&amp;#38;contract_id=1&amp;#38;job_seq_no=2&amp;#38;ty=0&amp;#38;rm=0"&gt;&#12469;&#12540;&#12496;&#12456;&#12531;&#12472;&#12491;&#12450;&lt;/a&gt; &#12434;&#21215;&#38598;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;Pushmi &#12434;&#23455;&#25126;&#12391;&#20351;&#12387;&#12390;&#12415;&#12383;&#12356;&#65281;&#12392;&#12356;&#12358;&#26041;&#12399;&#12380;&#12402;&#12290;&#12513;&#12460;&#12493;&#22899;&#23376;&#12503;&#12525;&#12464;&#12521;&#12510;&#12418;&#12356;&#12414;&#12377;&#12424;&#12290;&#65288;&#26481;&#20140;&#26412;&#31038;&#12395;&#12418;&#12356;&#12414;&#12377;&#12290;&#20154;&#22971;&#12391;&#12377;&#12364;&#12290;&#65289;&lt;/p&gt;</description>
      <pubDate>Fri, 03 Aug 2007 01:52:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:6d2d583e-23c3-4f6d-92a5-8de8d5bfa6d2</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/08/03/pushmi</link>
      <category>program</category>
      <category>linux</category>
    </item>
    <item>
      <title>FizzBuzz &#12450;&#12475;&#12531;&#12502;&#12521;&#29256; for x86/Linux</title>
      <description>&lt;p&gt;&lt;a href="http://labs.cybozu.co.jp/blog/takesako/2007/05/fizzbuzz_x86.html"&gt;&#31481;&#36843;&#12373;&#12435;&lt;/a&gt;&#12289;&lt;a href="http://subtech.g.hatena.ne.jp/yappo/20070511/1178907299"&gt;Yappo &#12373;&#12435;&lt;/a&gt; &#12395;&#35302;&#30330;&#12373;&#12428;&#12390;&#12289;FizzBuzz &#12450;&#12475;&#12531;&#12502;&#12521;&#29256; for x86/Linux &#12434;&#12388;&#12367;&#12387;&#12390;&#12415;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;20&#24180;&#12411;&#12393;&#21069;&#12395; Z80 &#12391;&#12450;&#12475;&#12531;&#12502;&#12521;&#12434;&#12385;&#12423;&#12387;&#12392;&#12363;&#12376;&#12387;&#12383;&#31243;&#24230;&#12398;&#30693;&#35672;&#12375;&#12363;&#12394;&#12356;&#12398;&#12391;&#12289;&#12505;&#12473;&#12488;&#12395;&#12399;&#31243;&#36960;&#12356;&#12467;&#12540;&#12489;&#12384;&#12392;&#24605;&#12356;&#12414;&#12377;&#12290;&#12384;&#12428;&#12363;&#12418;&#12387;&#12392;&#12356;&#12356;&#12467;&#12540;&#12489;&#12434;&#25945;&#12360;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#26368;&#21021;&#31481;&#36843;&#12373;&#12435;&#12398;&#12467;&#12540;&#12489;&#12392;&#21516;&#12376;&#12424;&#12358;&#12395;&#26360;&#12369;&#12427;&#12363;&#12394;&#12289;&#12392;&#24605;&#12387;&#12383;&#12398;&#12391;&#12377;&#12364;&#12289;Windows &#12392;&#12385;&#12364;&#12387;&#12390;&#12289;&#30011;&#38754;&#12395;&#34920;&#31034;&#12377;&#12427;&#12384;&#12369;&#12391; EAX, EBX, ECX, EDX &#12524;&#12472;&#12473;&#12479;&#20351;&#12358;&#12398;&#12391;&#12289;&#31481;&#36843;&#12373;&#12435;&#12398;&#12424;&#12358;&#12395; BX &#12524;&#12472;&#12473;&#12479;&#12434;&#35211;&#24373;&#12426;&#24441;&#12395;&#12289;CX &#12524;&#12472;&#12473;&#12479;&#12434;&#12459;&#12454;&#12531;&#12479;&#12395;&#12289;&#12387;&#12390;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12379;&#12435;&#12391;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12392;&#12426;&#12354;&#12360;&#12378;&#26360;&#12356;&#12383;&#12384;&#12369;&#12391;&#30130;&#12428;&#12383;&#12398;&#12391;&#12289;&#12467;&#12540;&#12489;&#12468;&#12523;&#12501;&#12395;&#12481;&#12515;&#12524;&#12531;&#12472;&#12377;&#12427;&#27671;&#21147;&#12399;&#12354;&#12426;&#12414;&#12379;&#12435;&#12290;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;global  _start

_start:
        mov     si, 0

mawasu: 
        call    space
        inc     si
        mov     ax, si

        mov     di, 3
        xor     edx, edx
        div     di
        cmp     dx, 0
        je      pfizz

        mov     ax, si
        mov     di, 5
        xor     edx, edx
        div     di
        cmp     dx, 0
        je      pbuzz

        call    num
        cmp     si, 100
        jb      mawasu

pfizz:
        call    fizz

        mov     ax, si
        mov     di, 5
        xor     edx, edx
        div     di
        cmp     dx, 0
        je      pbuzz

        jmp     mawasu

pbuzz:
        call    buzz
        jmp     mawasu

num:
        mov     ax, si

        mov     di, 100
        cmp     ax, di
        jnge    num2

        jmp     end

num2:
        mov     di, 10
        cmp     ax, di
        jnge    num3

        xor     edx, edx
        div     di
        add     ax, 48
        call    print

num3:   
        mov     ax, si
        mov     di, 10
        xor     edx, edx
        div     di
        mov     al, dl
        add     al, 48
        call    print
        ret

fizz:
        mov     al, 0x46
        call    print
        mov     al, 0x69
        call    print
        mov     al, 0x7a
        call    print
        call    print
        ret

buzz:
        mov     al, 0x42
        call    print
        mov     al, 0x75
        call    print
        mov     al, 0x7a
        call    print
        call    print
        ret

space:
        mov     al, 0x20
        call    print
        ret

print:
        push    eax
        mov     eax, 4
        mov     ebx, 1
        mov     ecx, esp
        mov     edx, 1
        int     0x80
        pop     eax
        ret

end:    
        mov     al, 0x0a
        call    print

        mov     al, 1
        mov     bl, 0
        int     0x80
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;nasm &#12434;&#20351;&#12387;&#12390;&#12371;&#12435;&#12394;&#24863;&#12376;&#12391;&#21205;&#12363;&#12377;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ nasm -f elf fizzbuzz.asm
$ ld -s -o fizzbuzz fizzbuzz.o
$ ./fizzbuzz
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="/files/fizzbuzz.jpg" alt="fizzbuzz.asm"/&gt;&lt;/p&gt;

&lt;p&gt;&#26360;&#12356;&#12390;&#12356;&#12390;&#12450;&#12475;&#12531;&#12502;&#12521;&#12398; TMTOWTDI &#12387;&#12407;&#12426;&#12399; Perl &#12398;&#27604;&#12376;&#12419;&#12394;&#12356;&#12392;&#24605;&#12387;&#12383;&#12290;&lt;/p&gt;</description>
      <pubDate>Sun, 13 May 2007 21:01:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:b3dd3ff5-a0b9-4046-a2b6-14f2fda8e247</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/05/13/fizzbuzz-x86-assembler-for-linux</link>
      <category>program</category>
      <category>linux</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/511</trackback:ping>
    </item>
    <item>
      <title>Re: DBIC&#12392;DBIx::Class::Schema::Loader &#20693;&#12398;&#12356;&#12429;&#12356;&#12429;&#12394;&#21208;&#36949;&#12356;</title>
      <description>&lt;p&gt;&lt;a href="http://en.yummy.stripper.jp/?eid=550053"&gt;&#12502;&#12525;&#12464;&#12364;&#32154;&#12363;&#12394;&#12356;&#12431;&#12369; | DBIC&#12392;DBIx::Class::Schema::Loader &#20693;&#12398;&#12356;&#12429;&#12356;&#12429;&#12394;&#21208;&#36949;&#12356;&lt;/a&gt; &#12395;&#12390;&#12289;&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;&#12392;&#12399;&#12356;&#12360;&#12289;&#20693;&#12398;&#31292;&#20685;&#20013;&#12398;&#12450;&#12503;&#12522;&#12399;&#12377;&#12391;&#12395;&#25163;&#21205;&#22411;&#12398;Schema &#12391;&#21205;&#12356;&#12390;&#12356;&#12427;&#12290;&#12473;&#12461;&#12540;&#12510;&#12434;&#20316;&#12426;&#30452;&#12375;&#12383;&#12425;&#12289;&#12522;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#35373;&#23450;&#12434;&#20840;&#12390;&#12375;&#12394;&#12362;&#12373;&#12394;&#12369;&#12428;&#12400;&#12394;&#12425;&#12394;&#12356;&#12398;&#12391;&#12289;&#12381;&#12428;&#12399;&#29694;&#23455;&#30340;&#12376;&#12419;&#12394;&#12356;&#12290;inflate, deflate &#12398;&#25351;&#23450;&#12399;&#12289;&#12420;&#12387;&#12401;&#12426;&#12377;&#12409;&#12390;&#12398;Schema &#12395;&#12363;&#12363;&#12394;&#12365;&#12419;&#12384;&#12417;&#12381;&#12358;&#12384;&#12290;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&#12392;&#12354;&#12387;&#12383;&#12398;&#12391;&#12289;&#12371;&#12428;&#12395;&#38306;&#12375;&#12390;&#23569;&#12375;&#27005;&#12364;&#12391;&#12365;&#12427;&#26041;&#27861;&#12434;&#12467;&#12513;&#12531;&#12488;&#12375;&#12424;&#12358;&#12392;&#24605;&#12387;&#12383;&#12369;&#12428;&#12393;&#12289;&#12467;&#12513;&#12531;&#12488;&#27396;&#12391;&#12399;&#12358;&#12414;&#12367;&#20253;&#12360;&#12425;&#12428;&#12427;&#33258;&#20449;&#12364;&#12394;&#12356;&#12398;&#12391;&#12289;&#12371;&#12385;&#12425;&#12391;&#26360;&#12356;&#12390;&#12415;&#12427;&#12371;&#12392;&#12395;&#12375;&#12414;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;h3&gt;load_components &#12391; &#35501;&#12415;&#36796;&#12416;&#26041;&#27861;&lt;/h3&gt;

&lt;p&gt;DBIx::Class::Schema::Loader &#12391;&#12399;&#12394;&#12367; DBIx::Class::Schema &#12434;&#32153;&#25215;&#12375;&#12383;&#12473;&#12461;&#12540;&#12510;&#12398;&#22580;&#21512;&#12395;&#12399;&#12289;&#21508;&#12473;&#12461;&#12540;&#12510;&#12501;&#12449;&#12452;&#12523;&#12395;&#20197;&#19979;&#12398;&#27096;&#12395;&#26360;&#12356;&#12390;&#12354;&#12370;&#12428;&#12400; OK &#12391;&#12377;&#12290;&#65288;&#26082;&#12395;&#12372;&#23384;&#30693;&#12363;&#12418;&#12375;&#12428;&#12414;&#12379;&#12435;&#12364;&#12290;&#65289;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;package My::Schema::Table;

__PACKAGE__-&amp;gt;load_components(
  "InflateColumn::DateTime",
  "PK::Auto",
  "Core",
);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12377;&#12409;&#12390;&#12398;&#12473;&#12461;&#12540;&#12510;&#12501;&#12449;&#12452;&#12523;&#12395;&#26360;&#12363;&#12394;&#12365;&#12419;&#12356;&#12369;&#12394;&#12356;&#12371;&#12392;&#12395;&#12399;&#22793;&#12431;&#12426;&#12354;&#12426;&#12414;&#12379;&#12435;&#12364;&#12289;&#21508;&#12459;&#12521;&#12512;&#12395; inflate/deflate &#12434;&#35373;&#23450;&#12377;&#12427;&#12424;&#12426;&#12399;&#12399;&#12427;&#12363;&#12395;&#27005;&#12384;&#12392;&#24605;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;h3&gt;make_schema_at &#12434;&#20351;&#12358;&#26041;&#27861;&lt;/h3&gt;

&lt;p&gt;make_schema_at &#12391;&#12473;&#12461;&#12540;&#12510;&#12501;&#12449;&#12452;&#12523;&#12434;&#29983;&#25104;&#12375;&#12390;&#12356;&#12427;&#12398;&#12391;&#12354;&#12428;&#12400;&#12289;&#12371;&#12435;&#12394;&#24863;&#12376;&#12391;&#12522;&#12524;&#12540;&#12471;&#12519;&#12531;&#12384;&#12369;&#23450;&#32681;&#12375;&#12383; ./tmp/lib/My/Schema/Table.pm &#12434;&#12414;&#12378;&#29992;&#24847;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;package My::Schema::Table;

__PACKAGE__-&amp;gt;belongs_to(
    realation =&amp;gt; 'My::Schema::OtherTable
    { 'foreign.id' =&amp;gt; 'self.other_table_id' },
);

1;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12391;&#12418;&#12387;&#12390;&#12289;&#12371;&#12435;&#12394;&#12473;&#12463;&#12522;&#12503;&#12488;&#12434;&#23455;&#34892;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/perl

use strict;
use warnings;

use lib qw( ./tmp/lib );
use Carp;
use DBIx::Class::Schema::Loader qw( make_schema_at dump_to_dir:lib dump_overwrite );

make_schema_at(
    'My::Schema::Table',
    {
        components     =&amp;gt; [qw/ ResultSetManager UTF8Columns InflateColumn::DateTime /],
        dump_overwrite =&amp;gt; 1,
    },
    ['dbi:mysql:dbname' ,'user', 'password'],
);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12381;&#12358;&#12377;&#12427;&#12392;&#12289;lib/My/Schema/Table.pm &#12395;&#20197;&#19979;&#12398;&#20869;&#23481;&#12434;&#21520;&#12365;&#20986;&#12375;&#12390;&#12367;&#12428;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;package My::Schema::Table;

# Created by DBIx::Class::Schema::Loader v0.03009 @ 2007-04-26 18:21:23

use strict;
use warnings;

use base 'DBIx::Class';

__PACKAGE__-&amp;gt;load_components(
  "ResultSetManager",
  "UTF8Columns",
  "InflateColumn::DateTime",
  "PK::Auto",
  "Core",
);
__PACKAGE__-&amp;gt;table("table");
__PACKAGE__-&amp;gt;add_columns(
  "id",
  { data_type =&amp;gt; "INT", default_value =&amp;gt; undef, is_nullable =&amp;gt; 0, size =&amp;gt; 11 },
  "other_table_id",
  { data_type =&amp;gt; "INT", default_value =&amp;gt; 0, is_nullable =&amp;gt; 0, size =&amp;gt; 11 },
  "date",
  { data_type =&amp;gt; "DATE", default_value =&amp;gt; undef, is_nullable =&amp;gt; 1, size =&amp;gt; 10 },

__PACKAGE__-&amp;gt;set_primary_key("id");
# These lines loaded from user-supplied external file:
package My::Schema::Table;

__PACKAGE__-&amp;gt;belongs_to(
    employees =&amp;gt; 'My::Schema::Table',
    { 'foreign.id' =&amp;gt; 'self.other_table_id' },
);

1;
# End of lines loaded from user-supplied external file
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12398;&#26041;&#27861;&#12434;&#20351;&#12358;&#12392;&#12289;&#12473;&#12461;&#12540;&#12510;&#12434;&#20316;&#12426;&#30452;&#12375;&#12390;&#12418;&#12289;&#12522;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#20877;&#35373;&#23450;&#12434;&#12375;&#12394;&#12367;&#12390;&#28168;&#12415;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;&#25163;&#21205;&#12391;&#12420;&#12427;&#12398;&#12364;&#27005;&#12394;&#12398;&#12363;&#12289;&#19978;&#12398;&#26041;&#27861;&#12398;&#12356;&#12378;&#12428;&#12363;&#12434;&#20351;&#12358;&#12398;&#12364;&#27005;&#12394;&#12398;&#12363;&#12399;&#12289;&#29366;&#27841;&#12395;&#12418;&#12424;&#12427;&#12392;&#24605;&#12356;&#12414;&#12377;&#12364;&#12289;&#12371;&#12435;&#12394;&#26041;&#27861;&#12418;&#12354;&#12426;&#12414;&#12377;&#12424;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#12289;&#12372;&#21442;&#32771;&#12395;&#12394;&#12428;&#12400;&#24184;&#12356;&#12391;&#12377;&#12290;&lt;/p&gt;</description>
      <pubDate>Sun, 06 May 2007 19:11:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:dba54a9e-675c-4e8f-96af-5773336fe4d0</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/05/06/dbix-class-schema-loader</link>
      <category>program</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/508</trackback:ping>
    </item>
    <item>
      <title>SVN::TracWiki #2</title>
      <description>&lt;p&gt;
&lt;a class="ext-link" href="http://trac.mizzy.org/public/browser/SVN-TracWiki"&gt;&lt;span class="icon"&gt;&lt;/span&gt;SVN::TracWiki&lt;/a&gt; (&lt;a class="ext-link" href="http://svn.mizzy.org/public/SVN-TracWiki/"&gt;&lt;span class="icon"&gt;&lt;/span&gt;svn repos&lt;/a&gt;) &#12434;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#12290;&#20197;&#19979;&#12398;&#27231;&#33021;&#12434;&#23455;&#29694;&#12377;&#12427;&#12497;&#12483;&#12481;&#12434;&#12289;Assurer &#12398;&#38283;&#30330;&#12395;&#12418;&#21442;&#21152;&#12375;&#12390;&#12367;&#12428;&#12390;&#12356;&#12427; &lt;a class="ext-link" href="http://search.cpan.org/~franckc/"&gt;&lt;span class="icon"&gt;&lt;/span&gt;franck&lt;/a&gt; &#12364;&#36865;&#12387;&#12390;&#12367;&#12428;&#12414;&#12375;&#12383;&#12290;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Plugin::Extract::Pod &#12391; Perl &#12503;&#12525;&#12464;&#12521;&#12512;&#12398;&#12467;&#12511;&#12483;&#12488;&#26178;&#12395;&#12289;pod &#12434;&#33258;&#21205;&#12391;&#25277;&#20986;&#12375;&#12390; Wiki &#12395;&#12450;&#12483;&#12503;&#12290;&lt;/li&gt;
&lt;li&gt;xmlrpc &#12503;&#12521;&#12464;&#12452;&#12531;&#12364;&#12394;&#12367;&#12390;&#12418; Wiki &#12509;&#12473;&#12488;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
Trac &#12399;&#12477;&#12540;&#12473;&#12467;&#12540;&#12489;&#33258;&#20307;&#12398;&#26908;&#32034;&#12364;&#12391;&#12365;&#12394;&#12356;&#12398;&#12391;&#12289;&#24403;&#28982; pod &#12398;&#20869;&#23481;&#12418;&#26908;&#32034;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12394;&#12356;&#12398;&#12391;&#12377;&#12364;&#12289;&#12371;&#12398;&#12503;&#12521;&#12464;&#12452;&#12531;&#12395;&#12424;&#12426;&#12289;pod &#12398;&#26908;&#32034;&#12364;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12426;&#12414;&#12377;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#12414;&#12383;&#12289;&#26908;&#32034;&#12384;&#12369;&#12391;&#12399;&#12394;&#12367;&#12289;&lt;a class="ext-link" href="http://trac.mizzy.org/public/wiki/SVN-TracWiki/lib/SVN/TracWiki.pm"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&#12371;&#12435;&#12394;&#24863;&#12376;&lt;/a&gt; &#12391; pod &#12434; Trac &#12398; Wiki &#12501;&#12457;&#12540;&#12510;&#12483;&#12488;&#12395;&#22793;&#25563;&#12375;&#12390;&#12461;&#12524;&#12452;&#12395;&#34920;&#31034;&#12375;&#12390;&#12367;&#12428;&#12414;&#12377;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#35430;&#12375;&#12395;&#25163;&#20803;&#12395;&#12354;&#12387;&#12383; XML::Atom &#12434;&#12388;&#12387;&#12371;&#12435;&#12391;&#12415;&#12427;&#12392;&#12289;&lt;a class="ext-link" href="http://trac.mizzy.org/public/wiki/XML-Atom-0.22/lib/XML/Atom/Server.pm"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&#12371;&#12435;&#12394;&#24863;&#12376;&lt;/a&gt; &#12395;&#12394;&#12426;&#12414;&#12377;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#12354;&#12392;&#12289;File::Extract &#20869;&#37096;&#12391;&#21033;&#29992;&#12375;&#12390;&#12356;&#12427; File::MMagic::XS &#12364;&#35598;&#12398; Segmentation Fault &#12391;&#33853;&#12385;&#12427;&#12398;&#12391;&#12289;File::MMagic &#12434;&#20351;&#12358;&#12424;&#12358;&#12395;&#24375;&#24341;&#12395;&#26360;&#12365;&#25563;&#12360;&#12383;&#12426;&#12290;
&lt;/p&gt;

</description>
      <pubDate>Tue, 01 May 2007 00:30:12 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:7585D8B0-FB43-11DB-B19E-9689BF6E4193</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/05/01/svn-tracwiki02</link>
      <category>program</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/332</trackback:ping>
    </item>
    <item>
      <title>SVN::TracWiki #1</title>
      <description>&lt;p&gt;
&lt;a class="ext-link" href="http://trac.mizzy.org/public/browser/SVN-TracWiki"&gt;&lt;span class="icon"&gt;&lt;/span&gt;SVN::TracWiki&lt;/a&gt; (&lt;a class="ext-link" href="http://svn.mizzy.org/public/SVN-TracWiki/"&gt;&lt;span class="icon"&gt;&lt;/span&gt;svn repos&lt;/a&gt;) &#12395;&#12388;&#12356;&#12390;&#12289;&#12502;&#12463;&#12510;&#12467;&#12513;&#12531;&#12488;&#12391; miyagawa &#12373;&#12435;&#12363;&#12425;&#12300;File::Extract?&#12301;&#12392;&#12356;&#12358;&#12450;&#12489;&#12496;&#12452;&#12473;&#65311;&#12434;&#38914;&#12365;&#12414;&#12375;&#12383;&#12398;&#12391;&#12289;&#12486;&#12461;&#12473;&#12488;&#25277;&#20986;&#37096;&#20998;&#12434; File::Extract &#12505;&#12540;&#12473;&#12395;&#26360;&#12365;&#25563;&#12360;&#12390;&#12415;&#12414;&#12375;&#12383;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#12362;&#12363;&#12370;&#12391;&#12503;&#12521;&#12464;&#12452;&#12531;&#12414;&#12431;&#12426;&#12398;&#20966;&#29702;&#12364;&#23569;&#12375;&#12377;&#12387;&#12365;&#12426;&#12375;&#12383;&#19978;&#12395;&#12289;File::Extract &#12391;&#23550;&#24540;&#12375;&#12390;&#12356;&#12427;&#12501;&#12449;&#12452;&#12523;&#12501;&#12457;&#12540;&#12510;&#12483;&#12488;&#12391;&#12354;&#12428;&#12400;&#12289;SVN::TracWiki &#29992;&#12398;&#12503;&#12521;&#12464;&#12452;&#12531;&#12434;&#26360;&#12363;&#12394;&#12367;&#12390;&#12418;&#12486;&#12461;&#12473;&#12488;&#25277;&#20986;&#12364;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12426;&#12414;&#12375;&#12383;&#12290;&#65288;Excel &#12391;&#35430;&#12375;&#12414;&#12375;&#12383;&#12364;&#12289;&#12400;&#12387;&#12385;&#12426;&#21205;&#20316;&#12375;&#12414;&#12375;&#12383;&#12290;&#65289;
&lt;/p&gt;

</description>
      <pubDate>Sun, 22 Apr 2007 15:07:01 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:7286548C-FB43-11DB-B19E-9689BF6E4193</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/04/22/svn-tracwiki01</link>
      <category>program</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/310</trackback:ping>
    </item>
    <item>
      <title>SVN::TracWiki #0</title>
      <description>&lt;p&gt;
&lt;a class="ext-link" href="http://trac.mizzy.org/public/browser/SVN-TracWiki"&gt;&lt;span class="icon"&gt;&lt;/span&gt;SVN::TracWiki&lt;/a&gt; &#12392;&#12356;&#12358;&#12484;&#12540;&#12523;&#12434;&#12388;&#12367;&#12387;&#12390;&#12415;&#12414;&#12375;&#12383;&#12290;&lt;a class="ext-link" href="http://svn.mizzy.org/public/SVN-TracWiki/"&gt;&lt;span class="icon"&gt;&lt;/span&gt;svn repos &#12399;&#12371;&#12385;&#12425;&lt;/a&gt;&#12290; 
&lt;/p&gt;
&lt;p&gt;
&#20309;&#12434;&#12377;&#12427;&#12418;&#12398;&#12363;&#12392;&#12356;&#12358;&#12392;&#12289;Subversion &#12398; post-commit &#12473;&#12463;&#12522;&#12503;&#12488;&#12392;&#12375;&#12390;&#21205;&#20316;&#12375;&#12390;&#12289;&#12467;&#12511;&#12483;&#12488;&#12373;&#12428;&#12383;&#12501;&#12449;&#12452;&#12523;&#12363;&#12425;&#12486;&#12461;&#12473;&#12488;&#12434;&#25277;&#20986;&#12289;&#12381;&#12398;&#12501;&#12449;&#12452;&#12523;&#12398;&#23455;&#20307;&#12408;&#12398;&#12522;&#12531;&#12463;&#12434;&#20184;&#21152;&#12375;&#12390;&#12289;Trac &#12398; Wiki &#12408;&#33258;&#21205;&#12509;&#12473;&#12488;&#12377;&#12427;&#12392;&#12356;&#12358;&#12418;&#12398;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#20855;&#20307;&#30340;&#12394;&#20363;&#12392;&#12375;&#12390;&#12399;&#12289;PowerPoint &#12501;&#12449;&#12452;&#12523;&#12434;&#12467;&#12511;&#12483;&#12488;&#12375;&#12383;&#12425;&#12289;&#12381;&#12398;&#12501;&#12449;&#12452;&#12523;&#12363;&#12425;&#12486;&#12461;&#12473;&#12488;&#12398;&#12415;&#12434;&#25277;&#20986;&#12375;&#12390; Wiki &#12408;&#33258;&#21205;&#12509;&#12473;&#12488;&#12290;&lt;a class="ext-link" href="http://trac.mizzy.org/public/wiki/docs/YAPC-Assurer-ja-public.ppt"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&#12371;&#12435;&#12394;&#24863;&#12376;&#12391;&lt;/a&gt;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#12371;&#12428;&#12391;&#20309;&#12364;&#12358;&#12428;&#12375;&#12356;&#12363;&#12392;&#12356;&#12358;&#12392;&#12289;Subversion &#12391;&#31649;&#29702;&#12375;&#12390;&#12356;&#12427; PowerPoint &#12501;&#12449;&#12452;&#12523;&#12434;&#12289;Trac &#19978;&#12391;&#26908;&#32034;&#12364;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12426;&#12414;&#12377;&#12290;&lt;a class="ext-link" href="http://trac.mizzy.org/public/search?q=%E8%87%AA%E5%B7%B1%E7%B4%B9%E4%BB%8B&amp;wiki=on&amp;changeset=on&amp;ticket=on"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&#12371;&#12435;&#12394;&#24863;&#12376;&#12391;&#12377;&#12397;&lt;/a&gt;&#12290;&#20803;&#12501;&#12449;&#12452;&#12523;&#12408;&#12398;&#12522;&#12531;&#12463;&#12418;&#12354;&#12427;&#12398;&#12391;&#12289;&#26908;&#32034;&#12375;&#12390;&#20803;&#12501;&#12449;&#12452;&#12523;&#12434;&#38283;&#12356;&#12390;&#35501;&#12416;&#12289;&#12387;&#12390;&#12371;&#12392;&#12364;&#31777;&#21336;&#12395;&#12391;&#12365;&#12414;&#12377;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#20363;&#12395;&#12424;&#12387;&#12390; YAML&#12391;&#35373;&#23450; and &#12503;&#12521;&#12460;&#12502;&#12523;&#12290;&#12501;&#12449;&#12452;&#12523;&#12363;&#12425;&#12486;&#12461;&#12473;&#12488;&#12434;&#25277;&#20986;&#12377;&#12427;&#37096;&#20998;&#12364;&#12503;&#12521;&#12464;&#12452;&#12531;&#12395;&#12394;&#12387;&#12390;&#12356;&#12390;&#12289;&#31777;&#21336;&#12395;&#25313;&#24373;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#29694;&#22312;&#12399; PowerPoint &#29992;&#12501;&#12451;&#12523;&#12479;&#12503;&#12521;&#12464;&#12452;&#12531;&#12375;&#12363;&#12394;&#12356;&#12398;&#12391;&#12377;&#12364;&#12289;&#20197;&#19979;&#12398;&#27096;&#12394;&#12467;&#12540;&#12489;&#12395;&#12394;&#12387;&#12390;&#12356;&#12390;&#12289;&#12501;&#12451;&#12523;&#12479;&#23550;&#35937;&#12501;&#12449;&#12452;&#12523;&#12398; MIME &#12479;&#12452;&#12503;&#12434; register() &#12391;&#25351;&#23450;&#12289;&#12486;&#12461;&#12473;&#12488;&#25277;&#20986;&#12523;&#12540;&#12481;&#12531;&#12434; filter() &#12395;&#35352;&#36848;&#12289;&#12392;&#12356;&#12358;&#24863;&#12376;&#12391;&#26360;&#12365;&#12414;&#12377;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
package SVN::TracWiki::Plugin::Filter::PowerPoint;

use strict;
use warnings;
use base qw( SVN::TracWiki::Plugin::Filter );
use Encode;

sub register {
    my $self = shift;
    $self-&gt;register_mime_types( qw! application/vnd.ms-powerpoint !);
}

sub filter {
    my ( $self, $file ) = @_;
    my $html = `/usr/local/bin/ppthtml $file`;
    my $text = $self-&gt;strip_html($html);

    $text = Encode::decode('utf8', $text);
    $text = Encode::encode('utf8', $text);

    return $text;
}

1;
&lt;/pre&gt;
&lt;p&gt;
&#12392;&#12426;&#12354;&#12360;&#12378;&#21205;&#12367;&#12424;&#12358;&#12395;&#12394;&#12387;&#12383;&#12384;&#12369;&#12391;&#12289;&#12356;&#12369;&#12390;&#12394;&#12356;&#37096;&#20998;&#30427;&#12426;&#12384;&#12367;&#12373;&#12435;&#12391;&#12377;&#12364;&#12289;&#12371;&#12435;&#12394;&#12398;&#12388;&#12367;&#12387;&#12390;&#12415;&#12414;&#12375;&#12383;&#12289;&#12387;&#12390;&#12371;&#12392;&#12391;&#12290;
&lt;/p&gt;

</description>
      <pubDate>Sun, 22 Apr 2007 04:55:57 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:6DE930DE-FB43-11DB-B19E-9689BF6E4193</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/04/22/svn-tracwiki00</link>
      <category>program</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/289</trackback:ping>
    </item>
    <item>
      <title>html-tt-mode &#12434; sgml-mode &#12398;&#12510;&#12452;&#12490;&#12540;&#12514;&#12540;&#12489;&#12391;&#21205;&#12367;&#12424;&#12358;&#12395;&#12375;&#12390;&#12415;&#12383;</title>
      <description>&lt;p&gt;
&lt;a class="ext-link" href="http://clouder.jp/yoshiki/mt/archives/000377.html"&gt;&lt;span class="icon"&gt;&lt;/span&gt;Clouder::Blogger: html-tt - emacs&#12398;Template Toolkit&#29992;&#12398;mode&lt;/a&gt; &#12434; html-helper-mode &#12391;&#12399;&#12394;&#12367;&#12289;sgml-mode &#12398;&#12510;&#12452;&#12490;&#12540;&#12514;&#12540;&#12489;&#12391;&#21205;&#12367;&#12424;&#12358;&#12395;&#12375;&#12383;&#12497;&#12483;&#12481;&#12290;&#65288;&#32622;&#25563;&#12375;&#12383;&#12384;&#12369;&#12290;&#65289;
&lt;/p&gt;
&lt;p&gt;
&#21029;&#12395; sgml-mode &#12395;&#24605;&#12356;&#20837;&#12428;&#12399;&#12394;&#12367;&#12289;Meadow &#12391;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#21205;&#12356;&#12390;&#12427;&#12363;&#12425;&#12381;&#12398;&#12414;&#12414;&#20351;&#12387;&#12390;&#12427;&#12384;&#12369;&#12394;&#12398;&#12391;&#12289;html-helper-mode &#12395;&#12375;&#12390;&#12418;&#12356;&#12356;&#12435;&#12384;&#12369;&#12393;&#12289;&#12393;&#12358;&#12418; Meadow &#12391;&#12358;&#12414;&#12367;&#33394;&#12389;&#12369;&#12373;&#12428;&#12394;&#12356;&#12398;&#12391;&#12289;&#12381;&#12398;&#21407;&#22240;&#36861;&#27714;&#12377;&#12427;&#12424;&#12426;&#12418;&#12289;sgml-mode &#12391;&#21205;&#12367;&#12424;&#12358;&#12395;&#12375;&#12383;&#26041;&#12364;&#12399;&#12420;&#12363;&#12387;&#12383;&#12398;&#12391;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#26412;&#24403;&#12399;&#12393;&#12387;&#12385;&#12391;&#12418;&#21205;&#12367;&#12424;&#12358;&#12395;&#12377;&#12427;&#12398;&#12364;&#12356;&#12356;&#12435;&#12384;&#12429;&#12358;&#12369;&#12393;&#12289;&#12381;&#12428;&#12399;&#12414;&#12383;&#20170;&#24230;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
=== html-tt.el
==================================================================
--- html-tt.el	(revision 193)
+++ html-tt.el	(local)
@@ -66,7 +66,7 @@
 ;; Code:
 
 (provide 'html-tt)
-(require 'html-helper-mode)
+(require 'sgml-mode)
 (require 'tempo)
 (require 'font-lock)
 
@@ -217,38 +217,38 @@
 (defun html-tt-load-hook ()
   (interactive)
   ;; define key bind
-  ;(define-key html-helper-mode-map "\C-cs"
+  ;(define-key sgml-mode-map "\C-cs"
   ;  'html-tt-insert-sequence)
-  (define-key html-helper-mode-map "\C-cs"
+  (define-key sgml-mode-map "\C-cs"
     'tempo-template-html-tt-insert-sequence)
-  (define-key html-helper-mode-map "\C-cd"
+  (define-key sgml-mode-map "\C-cd"
     'html-tt-insert-directive)
-  (define-key html-helper-mode-map "\C-cn"
+  (define-key sgml-mode-map "\C-cn"
     'tempo-template-html-tt-insert-directive)
-  (define-key html-helper-mode-map "\C-ci"
+  (define-key sgml-mode-map "\C-ci"
     'tempo-template-html-tt-insert-if)
-  (define-key html-helper-mode-map "\C-cl"
+  (define-key sgml-mode-map "\C-cl"
     'tempo-template-html-tt-insert-elsif)
-  (define-key html-helper-mode-map "\C-ce"
+  (define-key sgml-mode-map "\C-ce"
     'tempo-template-html-tt-insert-else)
-  (define-key html-helper-mode-map "\C-cf"
+  (define-key sgml-mode-map "\C-cf"
     'tempo-template-html-tt-insert-foreach)
-  (define-key html-helper-mode-map "\C-cw"
+  (define-key sgml-mode-map "\C-cw"
     'tempo-template-html-tt-insert-while)
-  (define-key html-helper-mode-map "\C-cm"
+  (define-key sgml-mode-map "\C-cm"
     'tempo-template-html-tt-insert-switch)
-  (define-key html-helper-mode-map "\C-cn"
+  (define-key sgml-mode-map "\C-cn"
     'tempo-template-html-tt-insert-include)

   ;; add hilit-set-mode-pattern, if use hilit19.
   (if (featurep 'hilit19)
-      (hilit-add-pattern "\\&amp;#x5b;%" "%\\&amp;#x5d;" 'midnightblue 'html-helper-mode)
+      (hilit-add-pattern "\\&amp;#x5b;%" "%\\&amp;#x5d;" 'midnightblue 'sgml-mode)
     )
 
   ;; set font-lock
   (make-local-variable 'font-lock-defaults)
   (setq html-tt-font-lock-keywords
-	(append html-helper-font-lock-keywords html-tt-font-lock-keywords))
+	(append sgml-font-lock-keywords html-tt-font-lock-keywords))
   (setq font-lock-defaults '(html-tt-font-lock-keywords t t))
   ) 
&lt;/pre&gt;
&lt;p&gt;
.emacs &#12391;&#12398;&#35373;&#23450;&#12399;&#12371;&#12435;&#12394;&#24863;&#12376;&#12391;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
(require 'html-tt)
(add-hook 'sgml-mode-hook 'html-tt-load-hook)
&lt;/pre&gt;

</description>
      <pubDate>Mon, 09 Apr 2007 17:36:45 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:83C2733E-FB43-11DB-B19E-9689BF6E4193</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/04/09/html-tt-diff</link>
      <category>program</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/411</trackback:ping>
    </item>
  </channel>
</rss>
