<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/common/rss.xsl" type="text/xsl" media="screen"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/"
  xml:lang="ja"
>

  <channel rdf:about="http://www.avoidnote.com/">
    <title>avoidnote</title>
    <link>http://www.avoidnote.com/</link>
    <description>Mac OS X, Web and Music</description>
    <dc:language>ja</dc:language>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-10-22T19:59:04+09:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=3.2-ja" />
    <cc:license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/1.0/" />
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/10/webkit_nightly_builds.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/09/ctrl-key-typing.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/09/itms_sound_quality.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/09/shima_uta_itms.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/09/itms_sme.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/08/mt_mysql41.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/08/amazon_image.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/08/srv_jeff_beck.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/08/cba_live.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/08/markdown.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/08/nested_ul.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/08/separate_by_space.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/07/coteditor_perl.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/07/defaultkeybinding.php" />
        <rdf:li rdf:resource="http://www.avoidnote.com/archives/2005/07/coteditor.php" />
      </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="http://www.avoidnote.com/archives/2005/10/webkit_nightly_builds.php">
    <title>WebKit Nightly Builds</title>
    <link>http://www.avoidnote.com/archives/2005/10/webkit_nightly_builds.php</link>
    <description>WebKit Nightly Builds がダウンロード可能になっています。</description>
    <content:encoded><![CDATA[<p><a href="http://nightly.webkit.org/builds/" title="WebKit Nightly Builds">WebKit Nightly Builds</a> がダウンロード可能になっています。</p>
<h2>WebKit.app</h2>
<p class="small_pic"><img src="http://www.avoidnote.com/images/2005/10/webkit.png" title="WebKit.app" alt="WebKit.app" width="128" height="128" /></p>
<p>既存の /System/Library/Frameworks/WebKit.framework を置き換えるのではなく、WebKit.framework を内包した <strong>WebKit.app</strong> という独立したアプリーケーションになっているので、Safari.app との表示比較もできる。ヒラギノフォントの斜体表示ができるようになっています。
Webkit.app の他に <abbr title="Scalable Vector Graphics">SVG</abbr> ビューワーの <strong>DrawTest.app</strong>、<strong>WebKit+SVG.app</strong> がダウンロード可能になっています。</p>
<h2>NightShift</h2>
<p class="small_pic"><a href="http://homepage.mac.com/WebObjects/FileSharing.woa/wa/default?user=reinholdpenner&amp;templatefn=FileSharing4.html&amp;xmlfn=TKDocument.4.xml&amp;sitefn=RootSite.xml&amp;aff=consumer&amp;cty=US&amp;lang=en" title="NightShift のダウンロードサイト"><img src="http://www.avoidnote.com/images/2005/10/nightshift.png" title="NightShift.app" alt="NightShift.app" width="128" height="128" /></a></p>
<p>こちらは WebKit.app の 最新版の Nightly Builds をダウンロード、バックアップ、インストールを自動で行ってくれるアプリケーション。</p>
<p><a href="http://homepage.mac.com/WebObjects/FileSharing.woa/wa/default?user=reinholdpenner&amp;templatefn=FileSharing4.html&amp;xmlfn=TKDocument.4.xml&amp;sitefn=RootSite.xml&amp;aff=consumer&amp;cty=US&amp;lang=en" title="NightShift のダウンロードサイト">NightShift のダウンロードサイト</a></p>]]></content:encoded>
    <dc:subject>Macintosh</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-10-22T19:59:04+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/09/ctrl-key-typing.php">
    <title>Emacs 風キーバインドと Ctrl キーの位置</title>
    <link>http://www.avoidnote.com/archives/2005/09/ctrl-key-typing.php</link>
    <description>Emacs 風のキーバインドを使うときに、問題になるのが Ctrl キーの位置。キーボードの両側の下にある Ctrl キーを手のひらで押すという発想。</description>
    <content:encoded><![CDATA[<p>Emacs 風のキーバインドを使うときに、問題になるのが <kbd>Ctrl</kbd> キー の位置。Mac OS X 10.4 Tiger からは System Preferences で <kbd>Ctrl</kbd> や <kbd>Caps Lock</kbd> などの修飾キーを再配置可能になっているので <kbd>Caps Lock</kbd> キーを <kbd>Ctrl</kbd> に再配置している人も多いと思います。僕は、Emacs は使わないのですが、Cocoa アプリケーションや Shell のキーバインドは Emacs 風のキーバインドを使っています。そんな訳でコンパクトな <a href="http://www.pfu.fujitsu.com/hhkeyboard/" title="株式会社PFU | Happy Hacking Keyboard"><abbr title="Happy Hacking Keyboard">HHK</abbr></a> に惹かれて愛用していたのですが、<a href="http://writepad.oldwolf.jp/index.php" title="思考のエンジン">思考のエンジン</a>さんで <a href="http://writepad.oldwolf.jp/article.php?id=32" title="思考のエンジン : Ctrlキーをどうやって押すか？">Ctrlキーをどうやって押すか？</a>という記事を見つけました。</p>

<blockquote cite="http://writepad.oldwolf.jp/article.php?id=32" title="Ctrlキーをどうやって押すか？">
<p>文字キーを打つ手と反対の手で(手のひらで) Ctrl キーを押せば良いのだ、そう気付くと、もうこれ以外の方法があることなんて考えられないほど馴染んでしまった。</p>
</blockquote>

<p><kbd>Ctrl</kbd> と <kbd>Caps Lock</kbd> を再配置するんじゃなくて、キーボードの両側の下にある <kbd>Ctrl</kbd> キーを<em>手のひら</em>で押すのだそうです。「へぇー」と思って、Apple 純正の US キーボードで実際にやってみた。手のひら、というか小指の付け根の関節のあたりを押し付けるようにしてみると、思ったより簡単に <kbd>Ctrl</kbd> キーを押せました。ノートだとちょっと厳しいけど、外付けキーボードでは小指で <kbd>A</kbd> の隣を押すより楽な感じがします。</p>

<p>HHK はサイズもコンパクトで場所をとらないし、少ないキーでホームポジションを離れないですべてのキーを押せるのでテキストエディタ等を使用しているときは快適です。実際にはないキー、ファンクションキーやカーソルキーも <kbd>Fn</kbd> キーとのコンビネーションで押すようになっています。でも、グラフィックアプリケーション等を使うときの右手にマウス、左手でキーボードで入力といった操作をするにはちょっと不便、やっぱり片手でファンクションキーやカーソルキー押せた方がいいのです。</p>

<p>久しぶりに使ったわりには、意外と違和感のない Apple 純正のキーボード、今さらですが、<a href="http://www.apple.com/jp/keyboard/index.html" title="アップル - ワイヤレスキーボード＆マウス">ワイヤレス</a> という選択肢もあるし、純正キーボードを使ってみる事にしました。</p>
]]></content:encoded>
    <dc:subject>Macintosh</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-09-19T01:27:02+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/09/itms_sound_quality.php">
    <title>iTMS の音質</title>
    <link>http://www.avoidnote.com/archives/2005/09/itms_sound_quality.php</link>
    <description>「iTMS で配信されている曲の音がいいなあ」と感じるのは気のせいじゃなかった。</description>
    <content:encoded><![CDATA[<p><abbr title="iTunes Music Store">iTMS</abbr> がスタートしたときから感じていたのですが、iTMS で購入した曲は自分でリッピングしたものと比べて音質が良い。「気のせいかな」とも思っていたんですが、これを Logic Pro 7.1 を使って検証している記事を見つけました。</p>

<ul class="ref">
<li><a href="http://applesound.at.webry.info/200509/article_2.html" title="iTMSの音質を検証してみた（iTMS：iTunes Music Store） Appleにまつわる音楽/ウェブリブログ">iTMSの音質を検証してみた（iTMS：iTunes Music Store） </a>[<cite>Appleにまつわる音楽</cite>]</li>
</ul>

<p>どうやら、iTMS から入手できる曲の音質が良いと感じるのは気のせいじゃないようです。
同じ AAC 128kbps でも元の音源が違うようです。</p>

<p>これに対して他の音楽配信サービスはどうかというと、これも検証されている方がいました。</p>

<ul class="ref">
<li><a href="http://www.watch.impress.co.jp/av/docs/20040531/dal147.htm" title="藤本健のDigital Audio Laboratory">自分でリッピング&amp;エンコードするよりも高音質か? </a>[<cite>藤本健のDigital Audio Laboratory</cite>]</li>
</ul>

<p>Mora や Excite Music Store が提供している曲は CD からリッピングしたものと同等のものであるという事のようです。僕は iTMS 以外の音楽配信サービスを利用した事はないのですが、音質の面でも iTMS が一歩リードしているようですね。</p>

<p>iTMS 以外でもエイベックスの <a href="http://blog.avexnet.or.jp/hd/" title="avex HD SOUND LABORATORY">avex HD SOUND LABORATORY</a> の様な音楽配信の高音質化を目指す姿勢は大歓迎で、今後も iTMS につまらないところで妥協してほしくないなあと思います。</p>]]></content:encoded>
    <dc:subject>Music</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-09-12T22:54:28+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/09/shima_uta_itms.php">
    <title>iTMS で「島唄」が 世界20カ国に配信される</title>
    <link>http://www.avoidnote.com/archives/2005/09/shima_uta_itms.php</link>
    <description>宮沢和史さんが、世界に向けて「島唄」を含む5曲の未発表音源を iTMS で世界20カ国に向けて配信するようです。未発表音源の20カ国同時配信は、日本人アーティスト初ということです。</description>
    <content:encoded><![CDATA[<ul class="ref">
<li><a href="http://internet.watch.impress.co.jp/cda/news/2005/09/06/9051.html" title="iTunes Music Store、宮沢和史氏の未発表楽曲を世界20カ国に同時配信">iTunes Music Store、宮沢和史氏の未発表楽曲を世界20カ国に同時配信</a> [INTERNET Watch]</li>
<li><a href="http://www.five-d.co.jp/miyazawa/jp/" title="MIYAZAWA official website">MIYAZAWA official website</a></li>
</ul>
<p>宮沢和史さんが、世界に向けて「島唄」を含む5曲の未発表音源を iTMS で世界20カ国に向けて配信するようです。未発表音源の20カ国同時配信は、日本人アーティスト初ということです。</p>
<p>今回配信される「SHIMA-UTA（島唄）」は CD未収録の最新バージョンの音源のようです。彼 (THE BOOM) の代表曲である「島唄」は以前所属していたレーベル（SME）が iTMS に参加していないため国際配信できない事が理由でしょう。<a href="http://www.globalplus.jp/" title="GLOBAL PLUS Web Site">GLOBAL PLUS Web Site</a>とも契約を交わしているようで音楽配信に対してはかなり積極的なようですね。</p>
<p>「島唄」はアルゼンチンの歌手がカバーして大ヒットしたこともある楽曲で今回の iTMS バージョンも世界で火がついたりしたらソニーはかなりマヌケでですね。</p>
<p>先日の<a href="http://www.yomiuri.co.jp/atmoney/news/20050905i301.htm" title="ソニー、ネット音楽配信でアップルに楽曲提供 : 経済ニュース : 経済・マネー : YOMIURI ONLINE（読売新聞）">読売新聞の記事</a>でもこんな事が書かれていました。</p>
<blockquote cite="http://www.yomiuri.co.jp/atmoney/news/20050905i301.htm">
<p>音楽配信に意欲的な所属アーティストの不満が高まる恐れもあり、配信代行手数料などで合意し次第、曲の提供を始めることになった。</p>
</blockquote>
<p>アーティストの不満も、ユーザーの不満も高まっているということですね。</p>]]></content:encoded>
    <dc:subject>Music</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-09-07T00:40:31+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/09/itms_sme.php">
    <title>iTMS にソニーも参加？</title>
    <link>http://www.avoidnote.com/archives/2005/09/itms_sme.php</link>
    <description>「やっとソニーも参加するのか」と思ってよく読んでみると、「年内にも」とか、「配信代行手数料などで合意し次第」とかまだまだ先が長そうな感じ。</description>
    <content:encoded><![CDATA[<ul class="ref">
<li><a href="http://www.yomiuri.co.jp/atmoney/news/20050905i301.htm" title="ソニー、ネット音楽配信でアップルに楽曲提供 : YOMIURI ONLINE（読売新聞）">ソニー、ネット音楽配信でアップルに楽曲提供 : YOMIURI ONLINE（読売新聞）</a></li>
</ul>

<p>「やっとソニーも参加するのか」と思ってよく読んでみると、「年内にも」とか、「配信代行手数料などで合意し次第」とかまだまだ先が長そうな感じ。そもそも水面下で進行していた両者の交渉で <abbr title="Sony Music Entertainment">SME</abbr> が iTMS に参加しない理由の一番の理由は「楽曲価格の決定権を放棄したくない」ってことだったはず。この記事を読んだ限りでは交渉が新たな段階に入ったとは思えないのだがどうなんだろう。</p>
<p><abbr title="iTnunes Music Store">iTMS</abbr> をデファクトスタンダードとして定着させるために、CD の購入は控えて iTMS の利用を多くしていかないといけないな。</p>

<ul class="ref">
<li><a href="http://pbx.homeunix.org/jam_log/article.php?id=625" title="JAM LOG : iTMS頑張れ">JAM LOG : iTMS頑張れ</a></li>
</ul>

<p><strong><q cite="http://pbx.homeunix.org/jam_log/article.php?id=625">入手困難という音源がなくなること</q></strong></p>

<p>僕が、インターネット音楽配信に一番期待しているのはまさにコレです。過去に CD としてセールスがよくなく市場からいつの間にか消えてしまってどこかに眠っている楽曲の中にも優れた作品はたくさんあると思います。CD として入手できない（困難な）楽曲からでもいいから少しずつ参加してもらえないものだろうか。別の世代の新しいリスナーが iTMS で見つけてダウンロードなん事が普通にできる状況にならないと。</p>
]]></content:encoded>
    <dc:subject>Music</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-09-06T06:31:41+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/08/mt_mysql41.php">
    <title>MySQL 4.0x Movable Type のデータを MySQL 4.1 へ</title>
    <link>http://www.avoidnote.com/archives/2005/08/mt_mysql41.php</link>
    <description>MySQL 4.0x Movable Type のデータを MySQL 4.1 へインポートする際のメモ。</description>
    <content:encoded><![CDATA[<p>Movable Type のデータベースに MySQL を利用している場合、データベースのバックアップは <a href="http://www.phpmyadmin.net/home_page/index.php" title="The phpMyAdmin Project">phpMyAdmin</a> を使って簡単にできます。</p>
<ul class="ref">
<li><a href="http://piroblog2.pirosy.com/archives/200404/301245.php" title="MovableType + MySQL のバックアップ - PIROBLOG2">MovableType + MySQL のバックアップ - PIROBLOG2</a></li>
</ul>
<p>ただ、MySQL 4.0 から 4.1 へとデータを移行する場合、ちょっと注意が必要。MySQL 4.1 ではパスワード認証プロトコル、文字コードの自動変換など大幅に改良されているようでそのままでは文字化け、接続できないなどのの不具合が発生します。MySQL 4.1 での変更点は<a href="http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ" title="MyNA Web Site">日本MySQLユーザ会の FAQ</a> にまとめられています。この Blog で使用している MySQL 4.0 のデータをローカル環境(Mac OS X 10.4.2) に MySQL 4.1.14 をインストール、インポートしてみました。</p>
<h2>MySQL 4.1 のインストール</h2>
<p>まずは、ローカル環境に MySQL 4.1 をインストール。インストールは <a href="http://dev.mysql.com/downloads/mysql/4.1.html" title="MySQL AB :: MySQL 4.1 Downloads">MySQL AB :: MySQL 4.1 Downloads</a> から最新版の Installer package (Mac OS X v10.4) をインストール。
パッケージからインストールの場合は デフォルト文字セットが <code>latin1</code> になっているので <a href="http://iandeth.dyndns.org/mt/ian/archives/000108.html" title="MySQL 4.1 日本語環境設定方法 (キャラクタセット設定方法) : iandeth.">MySQL 4.1 日本語環境設定方法 (キャラクタセット設定方法) : iandeth.</a>を参考に <code>/etc/my.cnf</code> を以下のように設定。ここでは Movable Type の <a href="http://www.sixapart.jp/movabletype/manual/mtmanual_configuration.html#item_publishcharset" title="PublishCharset -Movable Type 設定ガイド"><code>PublishCharset</code></a> に設定している <code>utf-8</code> に変更。</p>

<pre><code>
[mysqld]
default-character-set=utf8
# old-passwords

[client]
default-character-set=utf8


[mysql]
default-character-set=utf8

[mysqldump] 
default-character-set=utf8
</code></pre>


<h2>Movable Type の設定</h2>
<p>このままだと日本語が全部 ? に変換されてしまうので Movable Type の設定ファイル <code>mt.cfg</code> の適当なところにに以下の 1 行を追加します。</p>
<pre><code>
SQLSetNames 1
</code></pre>
<p>これで <a href="http://www.sixapart.jp/movabletype/manual/mtmanual_configuration.html#item_publishcharset" title="PublishCharset -Movable Type 設定ガイド"><code>PublishCharset</code></a> で指定したキャラクタセットデータベースへの接続をで行うようになります。詳しいことは設定ガイドの <a href="http://www.sixapart.jp/movabletype/manual/mtmanual_configuration.html#item_SQLSetNames" title="SQLSetNames -Movable Type 設定ガイド"><code>SQLSetNames</code></a>を参照。</p>
<p>Movable Type 3.17 より古いバージョンで MySQL 4.1 を使う場合は、Lucky bag::blog さんの <a href="http://www.lucky-bag.com/archives/2005/03/mt_mysql41.html" title="Lucky bag::blog: MTとMySQL4.1の組み合わせで不具合">MTとMySQL4.1の組み合わせで不具合</a> というエントリで <code>lib/MT/ObjectDriver/DBI/mysql.pm</code> を直接修正する方法が書かれています。</p>
<h2>PHPからの接続</h2>
<p>このままでは Mac OS X に標準インストールされている PHP からでは接続できないのでphpMyAdmin が使えません。先にインストールした MySQL 4.1.14 の <code>libmysqlclient</code> にリンクし直して、 PHP をコンパイルする必要があります。PHP をコンパイルし直したくない場合は上記の <code>my.cnf</code> の設定で <code>old-passwords</code> の行のコメントを外すことで接続はできるようです。PHP をコンパイルし直す場合は JAM LOG さんの <a href="http://pbx.homeunix.org/jam_log/maclib/index.php?id=php43x_build1" title="JAM LOG : Mac Lib">PHP4.3.xをソースからビルド</a>が参考になります。</p>]]></content:encoded>
    <dc:subject>Movable Type</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-08-30T06:14:38+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/08/amazon_image.php">
    <title>amazon の画像をちょっとだけクールに</title>
    <link>http://www.avoidnote.com/archives/2005/08/amazon_image.php</link>
    <description>普段、何気なく使っている amazon 商品のリンク画像、URI にちょっと手を加えるだけでいろいろな画像効果が得られます。</description>
    <content:encoded><![CDATA[<ul class="ref">
<li><a href="http://aaugh.com/imageabuse.html" title="Abusing Amazon images">Abusing Amazon images</a> [<a href="http://blog.drikin.com/node/55" title="Amazonz画像活用テクニック">Drift Diary5</a> さん経由]</li>
</ul>

<p>普段、何気なく使っている amazon 商品のリンク画像。スタイルシートで見栄えよく表示されるように工夫しているサイトも時々見かけますが、URI にちょっとプロパティを与えてやるだけで、画像のサイズ、ドロップシャドウ、回転などの効果を加えたり、値引き表示のスタンプ、ディスクイメージなど貼付けたりできるようです。</p>
<p>
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00006IIGX/avoidnote-22" title="美ら歌よ~沖縄ベスト・ソング・コレクション~"><img src="http://images-jp.amazon.com/images/P/B00006IIGX.09._PA10,-10,10,09_PE10_PV_12_SCMZZZZZZZ_.jpg" alt="美ら歌よ~沖縄ベスト・ソング・コレクション~" width="183" height="164" /></a>
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0000BHZH7/avoidnote-22" title="ベスト~サンシャイン・イン・ザ・ミュージック~"><img src="http://images-jp.amazon.com/images/P/B0000BHZH7.09._PE05_PU05_SCMZZZZZZZ_.jpg" alt="ベスト~サンシャイン・イン・ザ・ミュージック~" width="154" height="154" /></a>
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00092QROW/avoidnote-22" title="ザ・ボサノヴァ・フォーエヴァー"><img src="http://images-jp.amazon.com/images/P/B00092QROW.09.THUMBZZZ.jpg" alt="ザ・ボサノヴァ・フォーエヴァー" width="75" height="75" /></a>
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00008DYVU/avoidnote-22" title="アット・ジャズ・カフェ・ボサ・エディション"><img src="http://images-jp.amazon.com/images/P/B00008DYVU.09._PF_PE10_PU12_SCMZZZZZZZ_.jpg" alt="アット・ジャズ・カフェ・ボサ・エディション" width="166" height="154" /></a>
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0000635N3/avoidnote-22" title="フレスカ〜ボサノバ〜"><img src="http://images-jp.amazon.com/images/P/B0000635N3.09._PA10,-10,10,09_PE15_SCLZZZZZZZ_.jpg" alt="フレスカ〜ボサノバ〜" width="352" height="326" /></a>
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000063KZO/avoidnote-22" title="ザ・ボサノヴァ"><img src="http://images-jp.amazon.com/images/P/B000063KZO.09._PA10,-10,10,09_PE15_SCMZZZZZZZ_.jpg" alt="ザ・ボサノヴァ" width="165" height="143" /></a>
</p>
<p>この他にも任意のテキストを入れたり、画像をぼかしたりといろいろあるようです。詳しい解説は <a href="http://aaugh.com/imageabuse.html" title="Abusing Amazon images">Abusing Amazon images</a> を読んでみてください。</p>
]]></content:encoded>
    <dc:subject>Web</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-08-21T23:56:43+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/08/srv_jeff_beck.php">
    <title>Stevie Ray Vaughan と Jeff Beck のギターバトル</title>
    <link>http://www.avoidnote.com/archives/2005/08/srv_jeff_beck.php</link>
    <description>Stevie Ray Vaughan と Jeff Beck のギターバトルのムービー。Jeff Beck が物足りない感じだけど、貴重なムービーです。</description>
    <content:encoded><![CDATA[<p><strong>Stevie Ray Vaughan</strong> と <strong>Jeff Beck</strong> のギターバトルのムービー。Jeff Beck が物足りない感じだけど、貴重なムービーです。</p>
<p><a href="http://cresus21.free.fr/Stevie%20Ray%20Vaughan%20&amp;%20Jeff%20Beck%20I&#39;m%20Down%20.avi"><img src="http://www.avoidnote.com/images/2005/08/srv_jb.jpg" alt="SRV &amp; Jeff Beck" width="433" height="375" /></a></p>
<ul class="ref">
<li><a href="http://cresus21.free.fr/Stevie%20Ray%20Vaughan%20&amp;%20Jeff%20Beck%20I&#39;m%20Down%20.avi" title="Stevie Ray Vaughan &amp; Jeff Beck I&#39;m Down">Stevie Ray Vaughan &amp; Jeff Beck I&#39;m Down .avi</a></li>
</ul>]]></content:encoded>
    <dc:subject>Music</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-08-18T00:23:38+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/08/cba_live.php">
    <title>CBA Live</title>
    <link>http://www.avoidnote.com/archives/2005/08/cba_live.php</link>
    <description>BBA の Jeff Beck の代わりに Char が加わった CBA Live を iTunes Music Store で購入した。</description>
    <content:encoded><![CDATA[<p class="cd_cut"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00005FK09/avoidnote-22" title="CBA を amazonで見る"><img src="http://images-jp.amazon.com/images/P/B00005FK09.09._PA10,3,3,10_SCMZZZZZZZ_.jpg" alt="CBA LIVE!" width="135" height="134" /></a></p>

<p><abbr title="iTunes Music Store">iTMS</abbr> が目出たく日本でもスタートしたものの、本当に欲しいものは CD で買った方がいいし、どんな利用の仕方がいいんだろうと思って眺めていたところ、見つけたのが <strong><abbr title="Char Bogert Appice">CBA</abbr></strong> のライブアルバム。<em>Jeff Beck</em>(Guitar), <em>Tim Bogert</em>(bass), <em>Carmine Appice</em>(Drums) の 3 人編成で結成されたロックトリオ <strong><abbr title="Beck Bogert Appice">BBA</abbr></strong> の <em>Jeff Beck</em> の代わりに <em>Char</em> が参加して結成された <strong>CBA</strong>。このアルバムが発売された当初から、気になってはいたんだけど、あまり良い評判を耳にしていなかったので結局、聴かずじまいでいつの間にか忘れていたこのバンド。思い出したときに買っておこうということで iTMS で購入してみました。</p>

<ul class="ref">
<li><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?playlistId=73440716" title="iTunes Music Store で CBA Live を聴いてみる">CBA Live : iTunes Music Store</a></li>
</ul>

<p>いろいろな意味で話題になったこのユニット。即席ユニットということもあるんだろうけど、曲を全然覚えていない Carmine Appice に怒った Char はステージ上でギター投げたり、アンプけり倒したりすったもんだあったらしいんだけど、このアルバムを聴くかぎりマズイ所はおおむねカットされているようです。</p>

<p>Char と Jeff Beck のギタープレイを比較するのはナンセンスの感じがしますが、Jeff Beck はトリオよりはキーボードがある編成 ( ヤンハマーはだめ ) の方が映える感じがするし、トリオユニットの中のギターということでは Char の方が合っているような気がしました。</p>

<p>BBA が好きな人にとってはたまらないアルバムなのかもしれないが、僕にとっては <em>Jim Copley</em> や <em>Simon Phillips</em> のドラムの方が好みだし、Jeff にも Char にも合っているなあとも思いました。</p>

<p>もしや、と思って調べてみたらなんと、<em>Rick Derringer</em> を加えた <a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0006213VC/avoidnote-22" title="Doin&#39; Business As...">DBA</a> なんていうのもあるんですねー。これには驚いた。"<em>B</em>", "<em>C</em>", "<em>D</em>" とアルファベット順にきているので今後 EBA なんていうのもあるのかな。</p>]]></content:encoded>
    <dc:subject>Music</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-08-17T00:50:54+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/08/markdown.php">
    <title>Markdown</title>
    <link>http://www.avoidnote.com/archives/2005/08/markdown.php</link>
    <description>シンプルな HTML 簡略記法 Markdown を CotEditor や MovableType で使う。</description>
    <content:encoded><![CDATA[<p>ここのところ、HTML 記述ミスを連発してまして、<a href="http://tidy.sourceforge.net/" title="HTML Tidy Project Page">Tidy</a> や <a href="http://www.aynimac.com/p_blog/files/index2.php" title="AYNiMac : 自作ソフト">AHL-Runner</a> を <a href="http://www.aynimac.com/p_blog/files/index2.php" title="AYNiMac : 自作ソフト">CotEditor</a> のスクリプトメニューに追加してみたりしてたんですが。<a href="http://pbx.homeunix.org/jam_log/" title="JAM LOG">JAM LOG</a> さんで見つけた、この <a href="http://daringfireball.net/projects/markdown/" title="Daring Fireball: Markdown">MarkDown</a> の記事。</p>

<ul class="ref">
<li><a href="http://pbx.homeunix.org/jam_log/article.php?id=605">CotEditorでMarkdown</a> [ <cite>JAM LOG</cite> ]</li>
</ul>

<p>やっぱり 記述方法をシンプルにしないとね。</p>
<p>いままで Wiki 記法とかはどうも苦手で、いくつもある類似記法の中からどれを選べばいいんだろうなんて思いつつ、拒絶してたんですが、この Markdown はイイ。
Kaz さんが言われるようにプレインテキストとしてもスマートで読みやすいし、普通のテキストと同じ感覚で書ける。今までとは比較ににならないくらい快適になりそうです。やっぱり食わず嫌いはいけませんね。</p>
<p>Movable Type プラグインとしても使えるみたいだけど CotEditor で使ってみようと思います。それにしても何でも繋げられる CotEditor って本当に便利です。</p>
]]></content:encoded>
    <dc:subject>CotEditor</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-08-04T01:11:36+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/08/nested_ul.php">
    <title>改行で区切った文字列をリスト化する(CotEditor)</title>
    <link>http://www.avoidnote.com/archives/2005/08/nested_ul.php</link>
    <description>CotEditor 用 Perl スクリプト。複数のリストがネストちょっと複雑な HTML リストを生成するスクリプト。</description>
    <content:encoded><![CDATA[<p>一次元のリストは手書きでもなんとかなるとしても、複数のリストをネストさせたりすると、だんだんめんどくさくなったりします。このスクリプトはタブによって表現された階層をもとに多次元構造のネストしたリスト要素を生成します。スクリプトを適用する元の文書はタブで階層化してください。スクリプトを適用するとタブ整形して出力します。出力整形に用いる文字は変数 <code>$indent</code> の値 <code>\t</code> を別の文字(例えば任意の数のスペースとか)に変更することでできます。</p>
<p><img src="http://www.avoidnote.com/images/2005/08/list_before.png" width="400" height="365" alt="" /></p>
<p><img src="http://www.avoidnote.com/images/2005/08/list_after.png" width="400" height="760" alt="" /></p>
<p><a href="http://www.avoidnote.com/lib/coteditor/nested_ul.pl.txt">nested_ul.pl.txt</a></p>
<pre><code>
<span class="PreProc">#!/usr/local/bin/perl</span>
<span class="Comment"># %%%{CotEditorXInput=Selection}%%%</span>
<span class="Comment"># %%%{CotEditorXOutput=ReplaceSelection}%%%</span>
<span class="Statement">use strict</span>;
<span class="Statement">use warnings</span>;
<span class="Statement">use encoding</span> <span class="Constant">'</span><span class="Constant">utf8</span><span class="Constant">'</span>;
<span class="Statement">my</span> <span class="Identifier">$indent</span> = <span class="Constant">&quot;</span><span class="Special">\t</span><span class="Constant">&quot;</span>; <span class="Comment"># indent character</span>
<span class="Statement">my</span> <span class="Identifier">$level</span> = <span class="Constant">0</span>;
<span class="Statement">my</span> <span class="Identifier">$run</span> = <span class="Constant">0</span>;

<span class="Statement">print</span> <span class="Constant">&quot;</span><span class="Constant">&lt;ul&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>;
<span class="Statement">while</span> (&lt;&gt;) {
    <span class="Statement">chomp</span>;
    <span class="Statement">my</span> <span class="Identifier">$i</span> = <span class="Constant">0</span>;
    <span class="Identifier">$i</span>++ <span class="Statement">while</span> (<span class="Identifier">$_</span> =~ <span class="Statement">s/</span><span class="Constant">^</span><span class="Special">\t</span><span class="Statement">//g</span>);

    <span class="Statement">if</span> (<span class="Identifier">$run</span>) {
        <span class="Statement">if</span> (<span class="Identifier">$i</span>==<span class="Identifier">$level</span>) {
            <span class="Statement">print</span> <span class="Constant">&quot;</span><span class="Constant">&lt;/li&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>;

        } <span class="Statement">elsif</span> (<span class="Identifier">$i</span>&gt;<span class="Identifier">$level</span>) {
            <span class="Identifier">$level</span>++;
            <span class="Statement">print</span> <span class="Constant">&quot;</span><span class="Special">\n</span><span class="Constant">&quot;</span>, <span class="Identifier">$indent</span> x (<span class="Constant">2</span>*<span class="Identifier">$level</span>), <span class="Constant">&quot;</span><span class="Constant">&lt;ul&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>;

        } <span class="Statement">elsif</span> (<span class="Identifier">$i</span>&lt;<span class="Identifier">$level</span>) {
            <span class="Statement">until</span> ( <span class="Identifier">$i</span> == <span class="Identifier">$level</span>) {
                <span class="Statement">print</span> <span class="Constant">&quot;</span><span class="Constant">&lt;/li&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>, <span class="Identifier">$indent</span> x (<span class="Constant">2</span>*<span class="Identifier">$level</span>), <span class="Constant">&quot;</span><span class="Constant">&lt;/ul&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>, <span class="Identifier">$indent</span> x (<span class="Constant">2</span>*<span class="Identifier">$level</span><span class="Constant">-1</span>);
                <span class="Identifier">$level</span>--;
            }
                <span class="Statement">print</span>  <span class="Constant">&quot;</span><span class="Constant">&lt;/li&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span> ;
        }
    }

    <span class="Statement">print</span> <span class="Identifier">$indent</span> x (<span class="Constant">2</span>*<span class="Identifier">$level</span><span class="Constant">+1</span>), <span class="Constant">&quot;</span><span class="Constant">&lt;li&gt;</span><span class="Constant">&quot;</span>;
    <span class="Statement">print</span> <span class="Constant">&quot;</span><span class="Identifier">$_</span><span class="Constant">&quot;</span>;
    <span class="Identifier">$run</span>++
}
<span class="Statement">while</span> (<span class="Identifier">$level</span>) {
    <span class="Statement">print</span> <span class="Constant">&quot;</span><span class="Constant">&lt;/li&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>;
    <span class="Statement">print</span> <span class="Identifier">$indent</span> x (<span class="Constant">2</span>*<span class="Identifier">$level</span>),<span class="Constant">&quot;</span><span class="Constant">&lt;/ul&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>;
    <span class="Identifier">$level</span>--;
    <span class="Statement">print</span> <span class="Identifier">$indent</span> x (<span class="Constant">2</span>*<span class="Identifier">$level</span><span class="Constant">+1</span>);
}
<span class="Statement">print</span> <span class="Constant">&quot;</span><span class="Constant">&lt;/li&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>;
<span class="Statement">print</span> <span class="Constant">&quot;</span><span class="Constant">&lt;/ul&gt;</span><span class="Special">\n</span><span class="Constant">&quot;</span>;
</code></pre>]]></content:encoded>
    <dc:subject>CotEditor</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-08-01T19:53:07+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/08/separate_by_space.php">
    <title>英単語を半角スペースで区切る(CotEditor)</title>
    <link>http://www.avoidnote.com/archives/2005/08/separate_by_space.php</link>
    <description>CotEditor 用 Perl スクリプト。日本語などの全角文字との間に半角スペースを挿入します。</description>
    <content:encoded><![CDATA[<p><a href="http://appling.jp/p_blog/index.php" title="appling 2nd">appling 2nd</a>さんからのご要望、<strong>英単語を半角スペースで区切る </strong><a href="http://www.aynimac.com/p_blog/files/index2.php">CoteEditor</a> 用スクリプトを作ってみました。<a href="http://www.artman21.net/product/JeditX/index_E.html" title="Artman21 - Jedit X">Jedit X</a>の<a href="http://www.artman21.net/product/JeditX/library_E.html" title="Artman21 - Jedit X - Library">スクリプトライブラリ</a>のにあるサンプルちょっと変形したものです。英単語(アルファベットの a-z,A-Z で構成される文字列）と日本語などの全角文字との間に半角スペースを挿入します。(全角のスペース、句読点、括弧が隣接している場合は半角スペースを挿入しません。)</p>
<p><img src="http://www.avoidnote.com/images/2005/08/separate_before.png" alt ="separate_before" title="separate_before" width="431" height="102" /></p>
<p><img src="http://www.avoidnote.com/images/2005/08/separete_after.png" alt ="separete_after" title="separete_after" width="434" height="109" /></p>
<p><a href="http://www.avoidnote.com/lib/coteditor/separate_by_space.pl.txt">separate_by_space.pl.txt</a></p>
<pre><code>
<span class="PreProc">#!/usr/bin/perl</span>
<span class="Comment"># Separate english word by space</span>
<span class="Comment"># %%%{CotEditorXInput=Selection}%%%</span>
<span class="Comment"># %%%{CotEditorXOutput=ReplaceSelection}%%%</span>
<span class="Statement">use strict</span>;
<span class="Statement">use warnings</span>;
<span class="Statement">use encoding</span> <span class="Constant">'</span><span class="Constant">utf8</span><span class="Constant">'</span>;

<span class="Comment"># my $none_english_char = qr/([\x{3020}-\x{2FFF0}])/;</span>
<span class="Statement">my</span> <span class="Identifier">$none_english_char</span> = <span class="Constant">qr/</span><span class="Special">(</span><span class="Constant">[</span><span class="Special">\x</span><span class="Constant">{3020}-</span><span class="Special">\x</span><span class="Constant">{ff07}</span><span class="Special">\x</span><span class="Constant">{ff10}-</span><span class="Special">\x</span><span class="Constant">{2FFF0}]</span><span class="Special">)</span><span class="Constant">/</span>;
<span class="Statement">my</span> <span class="Identifier">$english_char</span> = <span class="Constant">qr/</span><span class="Special">(</span><span class="Constant">[</span><span class="Special">[:upper:][:lower:]</span><span class="Constant">]</span><span class="Special">+)</span><span class="Constant">/</span>;

<span class="Statement">while</span> (&lt;&gt;) {
    <span class="Statement">s/</span><span class="Identifier">$none_english_char$english_char</span><span class="Statement">/</span><span class="Identifier">$1</span> <span class="Identifier">$2</span><span class="Statement">/g</span>;
    <span class="Statement">s/</span><span class="Identifier">$english_char$none_english_char</span><span class="Statement">/</span><span class="Identifier">$1</span> <span class="Identifier">$2</span><span class="Statement">/g</span>;
    <span class="Statement">print</span>;
}
</code></pre>]]></content:encoded>
    <dc:subject>CotEditor</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-08-01T19:05:24+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/07/coteditor_perl.php">
    <title>CotEditor 用スクリプト(Perl)</title>
    <link>http://www.avoidnote.com/archives/2005/07/coteditor_perl.php</link>
    <description>CotEditor は AppleScript の他に Shell Script もスクリプトメニューに登録できるということなので、フィルタスリプトを Perl を使って書いてみた。</description>
    <content:encoded><![CDATA[<p><a href="http://www.aynimac.com/p_blog/files/index2.php" title="AYNiMac : 自作ソフト">CotEditor</a> は AppleScript の他に Shell Script もスクリプトメニューに登録できるということなので、フィルタスリプトを Perl を使って書いてみた。</p>
<h2 class="heading2">標準入出力の設定</h2>
<p>フィルタスクリプトなのでまずは標準入出力の設定。付属のドキュメントによるとプログラムの冒頭にコメントアウトされたの２行を加えることで <code><strong>STDIN</strong></code>、<code><strong>STDOUT</strong></code> の設定ができるらしい。</p>
<h3>標準入力 (STDIN)</h3>
<pre><code><span class="Comment"># %%%{CotEditorXInput=<var>parameter</var>}%%%</span></code></pre>
<p>標準入力 (STDIN) として指定できるもの</p>
<table summary="標準入力として指定できるものを 1 列目に parameter、2 列目に説明を列挙した表">
<tr><th>parameter</th><th>説明</th></tr>
<tr><td><code>Selection</code></td><td>選択文字列</td></tr>
<tr><td><code>AllText</code></td><td>ドキュメントのすべての文字列</td></tr>
<tr><td><code>None</code></td><td>入力を使用しない(デフォルト)</td></tr>
</table>
<h3>標準出力 (STDOUT)</h3>
<pre><code><span class="Comment"># %%%{CotEditorXOutput=<var>parameter</var>}%%%</span></code></pre>
<p>標準出力 (STDOUT) として指定できるもの</p>
<table summary="標準出力として指定できるものを 1 列目に parameter、2 列目に説明を列挙した表">
<tr><th>parameter</th><th>説明</th></tr>
<tr><td><code>ReplaceSelection</code></td><td>選択文字列を出力内容で置き換える</td></tr>
<tr><td><code>ReplaceAllText</code></td><td>ドキュメントのすべての文字列を出力内容で置き換える</td></tr>
<tr><td><code>InsertAfterSelection</code></td><td>選択範囲の直後に出力内容を挿入する</td></tr>
<tr><td><code>AppendToAllText</code></td><td>ドキュメントの末尾に出力内容を追加する</td></tr>
<tr><td><code>Pasteboard puts</code></td><td>ペーストボード(クリップボード)に出力内容を格納する</td></tr>
<tr><td><code>Discard</code></td><td>出力内容を使用しない(デフォルト)</td></tr>
</table>
<p>次の例では CotEditor 上での選択範囲を標準出入力に指定している。</p>
<pre><code><span class="Comment"># %%%{CotEditorXInput=Selection}%%%</span>
<span class="Comment"># %%%{CotEditorXOutput=ReplaceSelection}%%%</span></code></pre>
<p>入出力の encoding は はファイルの保存エンコーディングに関係なく utf-8 で改行コードは LF のようです。</p>
<h3>標準エラー出力 (STDERR)</h3>
<p>CotEditor Script Errors: という別ウィンドウが開いてエラーメッセージが表示される。</p>

<h2 class="heading2">Perl スクリプトの設定</h2>
<p>入出力が決まればあとは普通の Perl スクリプトと同じように書けます。ただし、日本語などのマルチバイト文字列を扱うには、ちょっと注意が必要。</p>

<pre><code><span class="Statement">use encoding</span> <span class="Constant">'</span><span class="Constant">utf-8</span><span class="Constant">'</span>;</code></pre>
<p>Perl スクリプトを UTF-8 で保存し、この一行を加えることによって標準入出力のエンコーディングを指定できます。標準入力から受け取ったデータは Perl 内部コードに変換され、utf8 で標準出力に出力されます。スクリプトを utf-8 で保存するだけでも文字化けはしないのでいいように思うかもしれませんが、全ての文字列はバイト列として扱われます。encoding 'utf8' を指定しないと次の例は正しく動作しません。</p>

<pre><code><span class="Comment"># 文字数を数える</span>
<span class="Comment"># use encoding 'utf8' を指定しないと 9 と表示される</span>
<span class="Statement">length</span> <span class="Constant">&quot;</span><span class="Constant">日本語</span><span class="Constant">&quot;</span>;

<span class="Comment"># use encoding 'utf8' を指定しないと動作しない</span>
<span class="Statement">tr/</span><span class="Constant">あ-ん</span><span class="Statement">/</span><span class="Constant">ア-ン</span><span class="Statement">/</span>;</code></pre>

<p>標準エラー出力のエンコーディングは特に問題はないようですが、念のため次の一行も加えておいてもいいかもしれません。これは標準エラーのエンコーディングを UTF-8 に指定しています。</p>
<pre><code><span class="Statement">binmode</span>(<span class="Identifier">STDERR</span>, <span class="Constant">'</span><span class="Constant">:raw :encoding(utf8)</span><span class="Constant">'</span>);</code></pre>

<h2 class="heading2">サンプル Perl スクリプト</h2>
<p>たいしたものではないけど Perl をつかってフィルタを作ってみました。AppleScript と連携したスクリプトを書くとパラメータを渡せるのでもう少し凝ったものが作れると思います。</p>
<h3>タブを 4 文字スペースに展開する</h3>
<p>タブを 4 文字スペースに展開するサンプル。CotEditor に組み込まれている<a href="http://www8.ocn.ne.jp/~sonoisa/OgreKit/" title="OgreKit -- OniGuruma Regular Expression Framework for Cocoa --">OgreKit</a> の正規表現は強力なのでわざわざ Perl を呼び出す必要もないのだが、ループを使うと簡単にできるサンプルを書いてみた。(Auto Expand Tabs to Spaces と言う項目があるのであまりいい例ではないが)</p>

<pre><code><span class="PreProc">#!/usr/local/bin/perl</span>
<span class="Comment"># %%%{CotEditorXInput=Selection}%%%</span>
<span class="Comment"># %%%{CotEditorXOutput=ReplaceSelection}%%%</span>
<span class="Statement">use strict</span>;
<span class="Statement">use warnings</span>;
<span class="Statement">use encoding</span> <span class="Constant">'</span><span class="Constant">utf8</span><span class="Constant">'</span>; <span class="Comment"># perl の内部コードに変換(UTF-8 フラグを付ける)</span>
<span class="Statement">binmode</span>(<span class="Identifier">STDERR</span>, <span class="Constant">'</span><span class="Constant">:raw :encoding(utf8)</span><span class="Constant">'</span>);

<span class="Comment"># 4 文字スペースに</span>
<span class="Statement">my</span> <span class="Identifier">$column</span> = <span class="Constant">4</span>;

<span class="Comment"># STDIN を 1 行ずつ処理</span>
<span class="Statement">while</span> (&lt;&gt;) {
    <span class="Constant">1</span> <span class="Statement">while</span> <span class="Statement">s/</span><span class="Special">\t</span><span class="Special">+</span><span class="Statement">/</span><span class="Constant">' ' x (length(</span><span class="Identifier">$&amp;</span>) * <span class="Identifier">$column</span><span class="Constant"> - length(</span><span class="Identifier">$`</span><span class="Constant">) % </span><span class="Identifier">$column</span><span class="Constant">)</span><span class="Statement">/e</span>;
    <span class="Statement">print</span>;
}</code></pre>


<h3>実体参照エンコーディング</h3>
<p>選択範囲を実体参照にエンコードするサンプル。既に実体参照、数値参照に置き換えられている '&amp;' を二重にエンコードをしない。</p>

<pre><code><span class="PreProc">#!/usr/local/bin/perl</span>
<span class="Comment"># %%%{CotEditorXInput=Selection}%%%</span>
<span class="Comment"># %%%{CotEditorXOutput=ReplaceSelection}%%%</span>
<span class="Statement">use strict</span>;
<span class="Statement">use warnings</span>;
<span class="Statement">use encoding</span> <span class="Constant">'</span><span class="Constant">utf8</span><span class="Constant">'</span>;
<span class="Statement">binmode</span>(<span class="Identifier">STDERR</span>, <span class="Constant">'</span><span class="Constant">:raw :encoding(utf8)</span><span class="Constant">'</span>);

<span class="Statement">my</span> <span class="Identifier">$in</span> = <span class="Statement">do</span> { <span class="Statement">local</span> <span class="Identifier">$/</span>; &lt;&gt; };      <span class="Comment"># STDIN を一気に代入</span>
<span class="Identifier">$in</span> =~ <span class="Statement">s/</span><span class="Constant">&amp;</span><span class="Special">(?!</span><span class="Constant">#</span><span class="Special">?[xX]?(?:[0-9a-fA-F]+</span><span class="Constant">|</span><span class="Special">\w</span><span class="Special">{1,8})</span><span class="Constant">;</span><span class="Special">)</span><span class="Statement">/</span><span class="Constant">&amp;amp;</span><span class="Statement">/g</span>;
<span class="Identifier">$in</span> =~ <span class="Statement">s/</span><span class="Special">&quot;</span><span class="Statement">/</span><span class="Constant">&amp;quot;</span><span class="Statement">/g</span>;
<span class="Identifier">$in</span> =~ <span class="Statement">s/</span><span class="Constant">&lt;</span><span class="Statement">/</span><span class="Constant">&amp;lt;</span><span class="Statement">/g</span>;
<span class="Identifier">$in</span> =~ <span class="Statement">s/</span><span class="Constant">&gt;</span><span class="Statement">/</span><span class="Constant">&amp;gt;</span><span class="Statement">/g</span>;
<span class="Identifier">$in</span> =~ <span class="Statement">s/</span><span class="Constant">'</span><span class="Statement">/</span><span class="Constant">&amp;apos;</span><span class="Statement">/g</span>;
<span class="Statement">print</span> <span class="Identifier">$in</span>;
</code></pre>

<p>もう少しまともなのができたらまとめて公開したいと思います。</p>]]></content:encoded>
    <dc:subject>CotEditor</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-07-28T14:15:03+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/07/defaultkeybinding.php">
    <title>Cocoa アプリケーションのキーバインド</title>
    <link>http://www.avoidnote.com/archives/2005/07/defaultkeybinding.php</link>
    <description>Cocoa アプリケーションは標準で Emacs 風のキーバインディングが使えるようになっている。DefaultKeyBinding.dic を編集すればより詳細なマッピングが可能になる。</description>
    <content:encoded><![CDATA[<p>テキストエディタを mi から CotEditor へ移行するにあたって、Cocoa アプリケーションのキーバインディングを改めて設定し直してみた。Cocoa アプリケーションは標準で Emacs 風キーバインディングが使えるようになっていて、システムのデフォルトマッピングが記述されているファイルは</p>
<pre><code>/System/Library/Frameworks/AppKit.framework/Versions/C/Resources/StandardKeyBinding.dict</code></pre>
<p>ホームディレクトリ以下に次のファイルがあるとシステムディフォルトを読み込んだ後に読み込まれる。</p>
<pre><code>~/Library/KeyBindings/DefaultKeyBinding.dic</code></pre>
<p>このファイルは自分で作成する必要がある。システムでフォルト設定ファイルをコピーしてきて、Property List Editor で編集すればいいんだろうけど、 これは xml でなくてもよく、次のような書式でも可能なようだ。</p>

<pre><code>{
    "<var>key-combination</var>" = "<var>Action:</var>";
}</code></pre>

<p>キーに割り当てられるアクションは <a href="http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Classes/NSResponder.html">NSResponder class (Objective-C)</a> にリストされています。例えば、シェルで使い慣れている <kbd>Ctrl</kbd> + <kbd>u</kbd> に「カーソル位置からパラグラフの先頭までをカット」と言うアクションを割り当てたければ次のようにすればいい。</p>

<pre><code>{
    <span class="Constant">&quot;^u&quot;</span> = <span class="Constant">&quot;deleteToBeginningOfParagraph:&quot;</span>;
}</code></pre>


<p>Emacs のような <kbd>Esc</kbd> キーを使った２アクションのキーバインディングも可能です。</p>
<pre><code>{
    <span class="Constant">&quot;</span><span class="Special">\033</span><span class="Constant">&quot;</span> = {
        <span class="Constant">&quot;f&quot;</span> = <span class="Constant">&quot;moveWordForward:&quot;</span>;   <span class="Comment">/*</span><span class="Comment"> Esc Ctrl-f １つ後ろの単語に移動 </span><span class="Comment">*/</span>
        <span class="Constant">&quot;b&quot;</span> = <span class="Constant">&quot;moveWordBackward:&quot;</span>;  <span class="Comment">/*</span><span class="Comment"> Esc Ctrl-b １つ前の単語に移動 </span><span class="Comment">*/</span>
    }

    <span class="Constant">&quot;^x&quot;</span> = {
        <span class="Constant">&quot;^s&quot;</span> = <span class="Constant">&quot;save:&quot;</span>;             <span class="Comment">/*</span><span class="Comment"> Ctrl-x Ctrl-s 保存 </span><span class="Comment">*/</span>
    }
}</code></pre>


<table summary="キーバインディンドのマッピングに使えるモディファイアを1列目に modifire、2列目にキーを列挙した表">
<caption>記述に使えるキーモディファイア</caption>
<tr><th>modifire</th><th>Key</th></tr>
<tr><th><kbd>^</kbd></th><td><kbd>Ctrl (コントロール)</kbd></td></tr>
<tr><th><kbd>$</kbd></th><td><kbd>Shift (シフト)</kbd></td></tr>
<tr><th><kbd>~</kbd></th><td><kbd>Option (オプション)</kbd></td></tr>
<tr><th><kbd>@</kbd></th><td><kbd>Command (コマンド)</kbd></td></tr>
</table>
<p>テキスト編集系の Cocoa アプリケーションに標準で備わっている<strong>補完機能 (Complete)</strong>。とても便利な機能なのだが、標準のキーバインドは <kbd>F5</kbd> または <kbd>Option</kbd> + <kbd>Esc</kbd> と使いにくいコンビネーションが割り当てられているので使いやすいコンビネーションに変更してみた。僕の設定はこんな感じ <a href="http://www.avoidnote.com/lib/DefaultKeyBinding.dict.txt">DefaultKeyBinding.dict</a></p>

<p>ただ残念なことにこの補完候補が表示されるウィンドウでカーソルを移動するキーバインドの設定の仕方が分からない。矢印キーで移動するしかないのだ。<kbd>Ctrl</kbd>-<kbd>N</kbd> と <kbd>Ctrl</kbd>-<kbd>P</kbd> で上下に移動したいのだがどうすればいいんだろう。</p>
<ul class="ref">
<li><a href="http://developer.apple.com/documentation/Cocoa/Conceptual/BasicEventHandling/Tasks/TextDefaultsAndBindings.html">Basic Event Handling: Text System Defaults and Key Bindings</a> [ <cite>Apple Developer Connection</cite> ]</li>
<li><a href="http://pcweb.mycom.co.jp/column/osx/103/">Cocoaアプリのキーバインドにこだわる(1)</a> [<cite>【コラム】OS X ハッキング!</cite> ]</li>
<li><a href="http://pcweb.mycom.co.jp/column/osx/104/">Cocoaアプリのキーバインドにこだわる(2)</a> [<cite>【コラム】OS X ハッキング!</cite> ]</li>
</ul>]]></content:encoded>
    <dc:subject>Macintosh</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-07-25T17:08:40+09:00</dc:date>
  </item>
  <item rdf:about="http://www.avoidnote.com/archives/2005/07/coteditor.php">
    <title>CotEditor</title>
    <link>http://www.avoidnote.com/archives/2005/07/coteditor.php</link>
    <description>Cocoa ベースのテキストエディタ CotEditor をしばらく使ってみようと思います。スクリプトメニューに登録できる のはAppleScript だけじゃなく Shell Script も登録できる。これっていいかも。</description>
    <content:encoded><![CDATA[<p class="small_pic"><img alt="icn_CotEditor.png" src="http://www.avoidnote.com/images/2005/07/icn_CotEditor.png" width="128" height="128" /></p>
<p>Cocoa ベースのテキストエディタ <a href="http://www.aynimac.com/p_blog/files/index2.php" title="AYNiMac : 自作ソフト">CotEditor</a> をしばらく使ってみようと思います。スクリプトメニューに登録できるのは AppleScript だけじゃなく Shell Script も登録できる。これっていいかも。AppleScript をスクリプトメニューとして登録できるエディタは他にもたくさんあるのだが、Shell Script を登録できるのは少ないような気がする。AppleScript が苦手なのでこれはありがたい。特別なパラメータを渡す必要がない場合などは AppleScript を経由しないで、Perl とかに渡せるので効率が良いかもしれない。<a href="http://www.mimikaki.net/" title="mi">mi</a> に代わる HTML エディタとして使ってみよう。</p>
<p>現在は次の３つを用途に応じて使ってます。</p>
<dl>
<dt><a href="http://www.vim.org/" title="welcome home : vim online">Vim</a></dt>
<dd>カーボン版 gvim というのがあるが、僕は自分でコンパイルしたやつ (+perl +multibyte) を Terminal 上で使っている。キーバインドに癖があるが慣れると他のどのエディタより速く編集できるし、Terminal からインタプリタへ渡すのも簡単。補完機能、キーワードのカラーリングが豊富なのでミスタイプが少ない。ただ、日本語を多く含む文章なんかを編集する場合、インプッドメソッドの切替と vim のモードの切り替え操作がめんどくさいので不向き。HTML の編集などには使わないで、perl とか shell などの日本語をあまり使わないプログラムのプログラミング用として使っている。</dd>
<dt><a href="http://www.artman21.net/product/JeditX/index.html" title="Artman21 - Jedit X">Jedit X</a></dt>
<dd>テキストエディタというよりはむしろリッチテキストエディタとして使っている。Mac OS X 付属のエディタ TextEdit の代わりに使っている。Macro メニューに AppleScript を登録できる。</dd>
<dt><a href="http://www.mimikaki.net/" title="mi">mi</a></dt>
<dd>HTML の編集に使っている。この blog を書くのもこのエディタ。「かゆいところに手が届く」(旧名 ミミカキエディット)と言われてるだけあって、細かいところまで気が行き届いているような気がする。古い付き合いなので手になじんでいるんですが、カーボンアプリなので他のアプリと並べてみるとインターフェイスがちょっと古いのとこの先 Intel CPU になってもサポートされるのかなあと思ったりもする。</dd>
</dl>]]></content:encoded>
    <dc:subject>CotEditor</dc:subject>
    <dc:creator>atz</dc:creator>
    <dc:date>2005-07-20T06:10:57+09:00</dc:date>
  </item>


</rdf:RDF>