<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xml:lang="ja-JP">
  <channel rdf:about="http://www.trashsuite.org/?c=rss">
    <title>TrashSUITE : Recent Changes</title>
    <link>http://www.trashsuite.org/?c=recent</link>
    <description>TrashSUITE Recent Changes</description>
    <dc:language>ja</dc:language>
    <dc:rights>Copyright (C) minase</dc:rights>
    <dc:date>2010-03-31T02:14:44+00:00</dc:date>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://www.trashsuite.org/?%E5%BF%85%E9%A0%88+Mac+%E3%82%A2%E3%83%97%E3%83%AA%E3%83%A1%E3%83%A2"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?Linux+%3A%3A+iproute2"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?Dev+%3A%3A+Hiki+%3A%3A+Plugin+%3A%3A+HikiDoc%3A%3ASuperPre"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?Hiki%40UTF8+++FastCGI"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?Haskell+%3A%3A+memo"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?About%3A%3ALicense"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?test"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?Dev+%3A%3A+Git"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?MacOSX+%3A%3A+TimeMachine"/>
        <rdf:li rdf:resource="http://www.trashsuite.org/?Hardware+%3A%3A+IX2015"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="http://www.trashsuite.org/?%E5%BF%85%E9%A0%88+Mac+%E3%82%A2%E3%83%97%E3%83%AA%E3%83%A1%E3%83%A2">
    <title>必須 Mac アプリメモ</title>
    <link>http://www.trashsuite.org/?%E5%BF%85%E9%A0%88+Mac+%E3%82%A2%E3%83%97%E3%83%AA%E3%83%A1%E3%83%A2</link>
    <dc:date>2010-03-31T02:14:44+00:00</dc:date>
    <content:encoded><![CDATA[<div><p>再インストール時に必ず導入しないと泣けるアプリの備忘録</p>
<p>MacPorts<a class="nodisp" href="./?c=edit;p=MacPorts" title="Create and edit the page MacPorts.">?</a> は精査しないとなぁ…</p>
<h2><span class="date"><a name="l0"> </a></span><span class="title">いろいろ</span></h2>
<ul>
<li>Firefox, Chromium</li>
<li>iTerm</li>
<li>TweetDeck<a class="nodisp" href="./?c=edit;p=TweetDeck" title="Create and edit the page TweetDeck.">?</a>, Skype, LimeChat<a class="nodisp" href="./?c=edit;p=LimeChat" title="Create and edit the page LimeChat.">?</a>, ManyCam<a class="nodisp" href="./?c=edit;p=ManyCam" title="Create and edit the page ManyCam.">?</a></li>
<li>Transmission</li>
<li>spwave, Audacity, LadioCast<a class="nodisp" href="./?c=edit;p=LadioCast" title="Create and edit the page LadioCast.">?</a>, VLC</li>
<li>StuffIt<a class="nodisp" href="./?c=edit;p=StuffIt" title="Create and edit the page StuffIt.">?</a> Expander</li>
<li>Parallels Desktop</li>
<li>RemoteDesktopConnection<a class="nodisp" href="./?c=edit;p=RemoteDesktopConnection" title="Create and edit the page RemoteDesktopConnection.">?</a>, Flip4Mac<a class="nodisp" href="./?c=edit;p=Flip4Mac" title="Create and edit the page Flip4Mac.">?</a></li>
<li>Pixelmator</li>
<li>ATOK</li>
<li>OpenOffice<a class="nodisp" href="./?c=edit;p=OpenOffice" title="Create and edit the page OpenOffice.">?</a>.org</li>
<li>XCode, MacPorts<a class="nodisp" href="./?c=edit;p=MacPorts" title="Create and edit the page MacPorts.">?</a></li>
<li>KeyRemap4MacBook<a class="nodisp" href="./?c=edit;p=KeyRemap4MacBook" title="Create and edit the page KeyRemap4MacBook.">?</a>, iStat menus, Rember, Xbench</li>
</ul>
<h2><span class="date"><a name="l1"> </a></span><span class="title">MacPorts<a class="nodisp" href="./?c=edit;p=MacPorts" title="Create and edit the page MacPorts.">?</a></span></h2>
<ul>
<li>git-core, subversion</li>
<li>coreutils, findutils, gsed, watch, wget, rsync, bzip2</li>
<li>vim, ctags, (ruby, ruby19 || rvm), tcl, nasm, gawk</li>
<li>zsh-devel</li>
<li>sqlite3</li>
</ul>
<h2><span class="date"><a name="l2"> </a></span><span class="title">Firefox 拡張</span></h2>
<ul>
<li>Firebug</li>
<li>Greasemonkey</li>
<li>Vimperator</li>
<li>Google Toolbar</li>
<li>Hatena Toolbar</li>
<li>FireGestures<a class="nodisp" href="./?c=edit;p=FireGestures" title="Create and edit the page FireGestures.">?</a></li>
<li>タブカタログ</li>
<li>Stylish</li>
<li>Adblock Plus</li>
<li>User Agent Switcher</li>
<li>FireMobileSimulator<a class="nodisp" href="./?c=edit;p=FireMobileSimulator" title="Create and edit the page FireMobileSimulator.">?</a></li>
<li>Live HTTP Headers</li>
</ul>
<h2><span class="date"><a name="l3"> </a></span><span class="title">リカバリ時</span></h2>
<pre class="syntax-highlight">
<span class="synComment"># Finder にドットファイルを表示する(TimeMachine<a class="nodisp" href="./?c=edit;p=TimeMachine" title="Create and edit the page TimeMachine.">?</a> 対策)</span>
% defaults write com.apple<span class="synshOK">.fi</span>nder AppleShowAllFiles<a class="nodisp" href="./?c=edit;p=AppleShowAllFiles" title="Create and edit the page AppleShowAllFiles.">?</a> <span class="synSpecial">-bool</span> YES. See <span class="synSpecial">[[</span><span class="synshDblBrace">dissertation help</span><span class="synStatement">|</span><span class="synshDblBrace">http://dissertations.superiorpapers.com/</span><span class="synSpecial">]]</span>

<span class="synComment"># rvm で macports の readline を使う</span>
% rvm <span class="synStatement">install</span> <span class="synConstant">1</span>.<span class="synConstant">8</span>.<span class="synConstant">7</span> <span class="synSpecial">-C</span> <span class="synSpecial">--with-readline-dir=/opt/local</span></pre>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?Linux+%3A%3A+iproute2">
    <title>Linux :: iproute2</title>
    <link>http://www.trashsuite.org/?Linux+%3A%3A+iproute2</link>
    <dc:date>2010-01-27T12:52:03+00:00</dc:date>
    <content:encoded><![CDATA[<div><h2><span class="date"><a name="l0"> </a></span><span class="title">iproute2</span></h2>
<p>書く &gt; 忘れる &gt; 思い出す &gt; 書く &gt; 忘れる…のエンドレスループなのでザックリとメモ．ブランクって怖いよね！</p>
<h2><span class="date"><a name="l1"> </a></span><span class="title">ポリシールーティング@ソースアドレス</span></h2>
<p>パケットのソースアドレスが 172.16.0.100 の場合，通常のデフォルトルート(main の default)を無視し，あたかも 172.16.0.2 がデフォルトルートであるかのように振る舞う</p>
<pre class="syntax-highlight">
% ip rule show
<span class="synConstant">0</span>:      from all lookup <span class="synStatement">local</span>
<span class="synConstant">32766</span>:  from all lookup main
<span class="synConstant">32767</span>:  from all lookup default

% <span class="synIdentifier">OTHER_ROUTER</span><span class="synshSetIdentifier">=</span><span class="synStatement">&#39;</span><span class="synConstant">172.16.0.2</span><span class="synStatement">&#39;</span>
% <span class="synIdentifier">OTHER_ADDR</span><span class="synshSetIdentifier">=</span><span class="synStatement">&#39;</span><span class="synConstant">172.16.0.100</span><span class="synStatement">&#39;</span>
% <span class="synIdentifier">OTHER_TABLE</span><span class="synshSetIdentifier">=</span><span class="synStatement">&#39;</span><span class="synConstant">other-route</span><span class="synStatement">&#39;</span>

% sudo sh <span class="synSpecial">-c</span> <span class="synStatement">&quot;</span><span class="synConstant">echo &#39;200 </span><span class="synPreProc">$OTHER_TABLE</span><span class="synConstant">&#39; &gt;&gt; /etc/iproute2/rt_tables</span><span class="synStatement">&quot;</span>     <span class="synComment">## 永続化する必要がなければ要らない</span>
% sudo ip rule add from <span class="synPreProc">$OTHER_ADDR</span> table <span class="synPreProc">$OTHER_TABLE</span>                <span class="synComment">## rt_tables で永続化した場合</span>
% sudo ip rule add from <span class="synPreProc">$OTHER_ADDR</span> table <span class="synPreProc">$OTHER_TABLE</span> priority <span class="synConstant">32765</span> <span class="synComment">## rt_tables を使わない場合</span>

% ip rule show
<span class="synConstant">0</span>:      from all lookup <span class="synStatement">local</span>
<span class="synConstant">32765</span>:  from <span class="synConstant">172</span>.<span class="synConstant">16</span>.<span class="synConstant">0</span>.<span class="synConstant">100</span> lookup other-route
<span class="synConstant">32766</span>:  from all lookup main
<span class="synConstant">32767</span>:  from all lookup default

% ip route add default via <span class="synPreProc">$OTHER_ROUTER</span> dev eth1 table <span class="synPreProc">$OTHER_TABLE</span>
% ip route show table <span class="synPreProc">$OTHER_TABLE</span>
default via <span class="synConstant">172</span>.<span class="synConstant">17</span>.<span class="synConstant">0</span>.<span class="synConstant">2</span> dev eth1</pre>
<h2><span class="date"><a name="l2"> </a></span><span class="title">死なないために</span></h2>
<p>例えば，</p>
<pre class="syntax-highlight">
% sudo ip route flush cache <span class="synComment">## &lt; のつもりで</span>
% sudo ip rule  flush       <span class="synComment">## &lt; などと typo すると死ねる</span></pre>
<p>うっかりこんなことをしてしまうと，ルーティングキャッシュをクリアするつもりが，ルーティングテーブルが華麗にぶっ飛びネットワーク難民になるので，土下座して現地へ走るハメになりかねないというか走ったことがあるという．リモートでクリティカルな作業をおこなう場合，しくじった時の保険として at などでリカバリ策を仕込んでおいた方が好い</p>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?Dev+%3A%3A+Hiki+%3A%3A+Plugin+%3A%3A+HikiDoc%3A%3ASuperPre">
    <title>Dev :: Hiki :: Plugin :: HikiDoc::SuperPre</title>
    <link>http://www.trashsuite.org/?Dev+%3A%3A+Hiki+%3A%3A+Plugin+%3A%3A+HikiDoc%3A%3ASuperPre</link>
    <dc:date>2010-01-27T12:34:03+00:00</dc:date>
    <content:encoded><![CDATA[<div><h2><span class="date"><a name="l0"> </a></span><span class="title">これは何？</span></h2>
<p>HikiDoc<a class="nodisp" href="./?c=edit;p=HikiDoc" title="Create and edit the page HikiDoc.">?</a> を<a href="http://d.hatena.ne.jp/" class="external">はてなダイアリー</a>の<a href="http://hatenadiary.g.hatena.ne.jp/keyword/%e3%82%bd%e3%83%bc%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%89%e3%82%92%e8%89%b2%e4%bb%98%e3%81%91%e3%81%97%e3%81%a6%e8%a8%98%e8%bf%b0%e3%81%99%e3%82%8b%ef%bc%88%e3%82%b7%e3%83%b3%e3%82%bf%e3%83%83%e3%82%af%e3%82%b9%e3%83%bb%e3%83%8f%e3%82%a4%e3%83%a9%e3%82%a4%e3%83%88%ef%bc%89" class="external">スーパー pre 記法</a>に対応させるプラグインです．コード片にシンタックスハイライトを適用することができます</p>
<h2><span class="date"><a name="l1"> </a></span><span class="title">プラグイン</span></h2>
<ul>
<li><a href="http://github.com/minase/hikidoc_super_pre_plugin" class="external">github trunk</a></li>
<li><span class="plugin">{{attach_anchor 'hikidoc-super-pre-plugin-20100127.tar.gz'}}</span></li>
<li><span class="plugin">{{attach_anchor 'hikidoc-super-pre-plugin-20090730.tar.gz'}}</span></li>
</ul>
<h2><span class="date"><a name="l2"> </a></span><span class="title">インストールおよび設定方法</span></h2>
<ul>
<li>アーカイブの中身を，hiki/misc/plugin 内に展開</li>
<li>『管理』&gt;『プラグイン選択』にて hikidoc-super-pre.rb を有効化</li>
</ul>
<h2><span class="date"><a name="l3"> </a></span><span class="title">使い方</span></h2>
<pre>
&gt;|ruby|
class Oppai
  def shout
    puts 'everybody say, oppai!!'
  end
end
||&lt;
</pre>
<pre class="syntax-highlight">
<span class="synPreProc">class</span><span class="synrubyBlock"> </span><span class="synType">Oppai</span>
<span class="synrubyBlock">  </span><span class="synPreProc">def</span><span class="synrubyBlock"> </span><span class="synIdentifier">shout</span>
<span class="synrubyBlock">    puts </span><span class="synSpecial">&#39;</span><span class="synConstant">everybody say, oppai!!</span><span class="synSpecial">&#39;</span>
<span class="synrubyBlock">  </span><span class="synPreProc">end</span>
<span class="synPreProc">end</span></pre>
<h2><span class="date"><a name="l4"> </a></span><span class="title">参考にしたサイト</span></h2>
<ul>
<li><a href="http://d.hatena.ne.jp/viver/20071228/p1" class="external">http://d.hatena.ne.jp/viver/20071228/p1</a></li>
<li><a href="http://coderepos.org/share/browser/lang/ruby/vimcolor" class="external">http://coderepos.org/share/browser/lang/ruby/vimcolor</a></li>
<li>こちらの VimColor<a class="nodisp" href="./?c=edit;p=VimColor" title="Create and edit the page VimColor.">?</a> を同梱させていただきました</li>
</ul>
<div class="plugin">{{trackback}}</div>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?Hiki%40UTF8+++FastCGI">
    <title>Hiki@UTF8   FastCGI</title>
    <link>http://www.trashsuite.org/?Hiki%40UTF8+++FastCGI</link>
    <dc:date>2009-10-25T10:20:26+00:00</dc:date>
    <content:encoded><![CDATA[<div><p>.</p>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?Haskell+%3A%3A+memo">
    <title>Haskell :: memo</title>
    <link>http://www.trashsuite.org/?Haskell+%3A%3A+memo</link>
    <dc:date>2009-10-04T04:41:07+00:00</dc:date>
    <content:encoded><![CDATA[<div><div class="plugin">{{toc}}</div>
<h2><span class="date"><a name="l0"> </a></span><span class="title">Hello World</span></h2>
<pre class="syntax-highlight">
<span class="synVarId">main</span> <span class="synStatement">=</span> <span class="synVarId">putStrLn</span> <span class="synConstant">&quot;Oppai Futomomo Pantie OK!!&quot;</span>
<span class="synComment">-- &gt; Oppai Futomomo Pantie OK!! </span></pre>
<ul>
<li>putStrLn 関数は，文字列リテラルを引数に取り，文字列に改行コードを付与して出力するアクションを返す</li>
<li>putStrLn 関数を，文字列リテラル "Oppai Futomomo Pantie OK!!" に適用(apply)</li>
<li>変数 main を，アクションに束縛(bind)</li>
<li>エントリポイントは main 変数(アクション)</li>
<li>実行すると main が評価され，"Oppai Futomomo Pantie OK!!\n" を出力</li>
</ul>
<h2><span class="date"><a name="l1"> </a></span><span class="title">オフサイドルール</span></h2>
<pre class="syntax-highlight">
<span class="synVarId">main</span> <span class="synStatement">=</span> <span class="synStatement">do</span> <span class="synVarId">cs</span> <span class="synStatement">&lt;-</span> <span class="synVarId">getContents</span>
          <span class="synVarId">putStr</span> <span class="synVarId">cs</span>
<span class="synComment">-- &gt; % echo &#39;Oppai&#39; | runghc do.hs</span>
<span class="synComment">-- &gt; Oppai</span></pre>
<ul>
<li>ABC や Python 等のように，インデントが構文として意味を持つ</li>
<li>do 式は，インデントでまとめられた複数のアクションを上から下へ逐次評価するブロック的なアレ</li>
</ul>
<h2><span class="date"><a name="l2"> </a></span><span class="title">リスト</span></h2>
<pre class="syntax-highlight">
<span class="synhsDelimiter">[</span><span class="synConstant">1</span><span class="synhsDelimiter">,</span> <span class="synConstant">2</span><span class="synhsDelimiter">,</span> <span class="synConstant">3</span><span class="synhsDelimiter">,</span> <span class="synConstant">4</span><span class="synhsDelimiter">]</span>               <span class="synComment">-- valid</span>
<span class="synhsDelimiter">[</span><span class="synConstant">&quot;Hello&quot;</span><span class="synhsDelimiter">,</span> <span class="synConstant">&quot;Oppai&quot;</span><span class="synhsDelimiter">]</span>         <span class="synComment">-- valid</span>
<span class="synhsDelimiter">[</span><span class="synConstant">&#39;o&#39;</span><span class="synhsDelimiter">,</span> <span class="synConstant">&#39;p&#39;</span><span class="synhsDelimiter">,</span> <span class="synConstant">&#39;p&#39;</span><span class="synhsDelimiter">,</span> <span class="synConstant">&#39;a&#39;</span><span class="synhsDelimiter">,</span> <span class="synConstant">&#39;i&#39;</span><span class="synhsDelimiter">]</span>  <span class="synComment">-- valid</span>
<span class="synhsDelimiter">[</span><span class="synConstant">1</span><span class="synhsDelimiter">,</span> <span class="synConstant">2</span><span class="synhsDelimiter">,</span> <span class="synConstant">&quot;oppai&quot;</span><span class="synhsDelimiter">]</span>            <span class="synComment">-- invalid</span></pre>
<ul>
<li>リストはデータの単方向リンクリストで，空リストで終端する</li>
<li>複数の型を同じリストに含めることはできない</li>
<li>リストリテラルは [1, 2, 3] と記述でき，終端の空リストは明示しない</li>
<li>文字列は，内部的には文字のリスト [Char](String) である</li>
</ul>
<h2><span class="date"><a name="l3"> </a></span><span class="title">$ 演算子</span></h2>
<pre class="syntax-highlight">
<span class="synVarId">main</span> <span class="synStatement">=</span> <span class="synStatement">do</span> <span class="synVarId">cs</span> <span class="synStatement">&lt;-</span> <span class="synVarId">getContents</span>
          <span class="synVarId">print</span> <span class="synStatement">$</span> <span class="synVarId">length</span> <span class="synStatement">$</span> <span class="synVarId">lines</span> <span class="synVarId">cs</span>
<span class="synComment">-- &gt; % runghc wcl.hs &lt; /etc/passwd</span>
<span class="synComment">-- &gt; 65</span></pre>
<ul>
<li>$ は二項演算子の一つで，関数の後に書くとそれ以降の式が全て引数として扱われる性質を持つ</li>
<li>print(length(lines cs)) と等価</li>
<li>lines 関数は，文字列を改行コードで分割したリストを返す</li>
<li>length 関数はリストの長さを返す</li>
<li>print 関数は値を文字列化して標準出力へ吐き出すアクションを返す</li>
</ul>
<h2><span class="date"><a name="l4"> </a></span><span class="title">関数定義</span></h2>
<pre class="syntax-highlight">
<span class="synVarId">functionName</span> <span class="synVarId">arg1</span> <span class="synVarId">arg2</span> <span class="synStatement">=</span> <span class="synVarId">logic</span></pre>
<ul>
<li>arg1, arg2 という二つの引数を取る functionName 関数の定義</li>
</ul>
<h2><span class="date"><a name="l5"> </a></span><span class="title">パターンマッチ</span></h2>
<pre class="syntax-highlight">
<span class="synVarId">main</span> <span class="synStatement">=</span> <span class="synVarId">print</span> <span class="synStatement">$</span> <span class="synVarId">fact</span> <span class="synConstant">10</span> <span class="synComment">-- &gt; 3628800</span>

<span class="synVarId">fact</span> <span class="synConstant">0</span> <span class="synStatement">=</span> <span class="synConstant">1</span>
<span class="synVarId">fact</span> <span class="synVarId">n</span> <span class="synStatement">=</span> <span class="synVarId">n</span> <span class="synStatement">*</span> <span class="synVarId">fact</span> <span class="synhsDelimiter">(</span><span class="synVarId">n</span> <span class="synStatement">-</span> <span class="synConstant">1</span><span class="synhsDelimiter">)</span></pre>
<ul>
<li>オーバーロードの概念に似ている</li>
<li>引数が異なる同名関数を定義順に探索し，マッチした時点で適用する</li>
<li>マッチした定義以降は適用されない</li>
<li>上記の場合，fact 0 と fact n の定義順が逆であれば，再帰し続けスタックオーバーフローとなる</li>
</ul>
<h2><span class="date"><a name="l6"> </a></span><span class="title">ワイルドカード</span></h2>
<pre class="syntax-highlight">
<span class="synVarId">main</span> <span class="synStatement">=</span> <span class="synVarId">print</span> <span class="synStatement">$</span> <span class="synVarId">sumList</span> <span class="synhsDelimiter">[</span><span class="synConstant">1</span><span class="synhsDelimiter">,</span><span class="synConstant">2</span><span class="synhsDelimiter">,</span><span class="synConstant">3</span><span class="synhsDelimiter">,</span><span class="synConstant">4</span><span class="synhsDelimiter">,</span><span class="synConstant">5</span><span class="synhsDelimiter">]</span> <span class="synComment">-- &gt; 15</span>

<span class="synVarId">sumList</span> <span class="synhsDelimiter">(</span><span class="synVarId">x</span><span class="synStatement">:</span><span class="synVarId">xs</span><span class="synhsDelimiter">)</span> <span class="synStatement">=</span> <span class="synVarId">x</span> <span class="synStatement">+</span> <span class="synVarId">sumList</span> <span class="synVarId">xs</span>
<span class="synVarId">sumList</span> <span class="synhsDelimiter">_</span>      <span class="synStatement">=</span> <span class="synConstant">0</span> </pre>
<ul>
<li>引数を _ と定義すると，渡された引数に関わらずマッチする</li>
<li>変数の束縛は生じない</li>
<li>上記の場合，[] は (x:xs) にマッチしないので，sumList _ へ落ちて 0 が返る</li>
<li>switch case における default のように使えて便利</li>
</ul>
<h2><span class="date"><a name="l7"> </a></span><span class="title">局所変数，シャドウ</span></h2>
<pre class="syntax-highlight">
<span class="synVarId">lets</span> <span class="synStatement">=</span> <span class="synStatement">let</span> <span class="synVarId">x</span> <span class="synStatement">=</span> <span class="synConstant">1</span>
           <span class="synVarId">y</span> <span class="synStatement">=</span> <span class="synConstant">2</span>
       <span class="synStatement">in</span> <span class="synhsDelimiter">[</span><span class="synVarId">x</span><span class="synhsDelimiter">,</span> <span class="synVarId">y</span><span class="synhsDelimiter">]</span>

<span class="synVarId">shadow</span> <span class="synStatement">=</span> <span class="synStatement">let</span> <span class="synVarId">x</span> <span class="synStatement">=</span> <span class="synConstant">1</span>
         <span class="synStatement">in</span> <span class="synhsDelimiter">[(</span><span class="synStatement">let</span> <span class="synVarId">x</span> <span class="synStatement">=</span> <span class="synConstant">2</span> <span class="synStatement">in</span> <span class="synVarId">x</span><span class="synhsDelimiter">),</span> <span class="synVarId">x</span><span class="synhsDelimiter">]</span>

<span class="synVarId">main</span> <span class="synStatement">=</span> <span class="synStatement">do</span> <span class="synVarId">print</span> <span class="synVarId">lets</span>   <span class="synComment">-- &gt; [1,2]</span>
          <span class="synVarId">print</span> <span class="synVarId">shadow</span> <span class="synComment">-- &gt; [2,1]</span></pre>
<ul>
<li>局所変数は let ブロックで定義する</li>
<li>定義した変数は，let ブロック内および in に続く式の中で使用できる</li>
<li>let がネストし，同名変数が存在する場合，内側の変数が外側の変数を隠蔽(シャドウ)する</li>
<li>ghc にオプション -fwarn-name-shadowing を付けるとシャドウの検出・警告をおこなう</li>
</ul>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?About%3A%3ALicense">
    <title>About::License</title>
    <link>http://www.trashsuite.org/?About%3A%3ALicense</link>
    <dc:date>2009-09-09T02:34:09+00:00</dc:date>
    <content:encoded><![CDATA[<div><h2><span class="date"><a name="l0"> </a></span><span class="title">ライセンス - テキストやコードの再利用について</span></h2>
<p>コンテンツに含まれるテキストやコード(あるいはコード片)のライセンスは，原則として <a href="http://creativecommons.org/licenses/by/2.1/jp/" class="external">Creative Commons(CC-BY)</a> および <a href="http://www.opensource.org/licenses/mit-license.php" class="external">MIT License</a> としています</p>
<p>よって，それぞれのライセンスの下に，商用・非商用を問わずご自由に複製・改変・再配布して下さって構いません</p>
<p>ただし内容の保証は致しませんので，それらを信用・利用したことによって何かしらの問題が発生した場合，当方はその責任を負えませんのであしからずご了承ください</p>
<ul>
<li><img src="http://f.hatena.ne.jp/images/fotolife/t/trashsuite/20090909/20090909104903.png" alt="20090909104903.png" /> <img src="http://f.hatena.ne.jp/images/fotolife/t/trashsuite/20090909/20090909104904.png" alt="20090909104904.png" /></li>
<li>Copyright (c) &lt;2000-2009&gt; &lt;MINASE Kaede&gt;</li>
</ul>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?test">
    <title>test</title>
    <link>http://www.trashsuite.org/?test</link>
    <dc:date>2009-07-29T17:02:35+00:00</dc:date>
    <content:encoded><![CDATA[<div><h2><span class="date"><a name="l0"> </a></span><span class="title">スーパー pre 記法</span></h2>
<pre class="syntax-highlight">
<span class="synPreProc">class</span><span class="synrubyBlock"> </span><span class="synType">Oppai</span>
<span class="synrubyBlock">  </span><span class="synPreProc">def</span><span class="synrubyBlock"> </span><span class="synIdentifier">say</span>
<span class="synrubyBlock">    puts </span><span class="synSpecial">&#39;</span><span class="synConstant">oppai!!</span><span class="synSpecial">&#39;</span>
<span class="synrubyBlock">  </span><span class="synPreProc">end</span>
<span class="synPreProc">end</span></pre>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?Dev+%3A%3A+Git">
    <title>Dev :: Git</title>
    <link>http://www.trashsuite.org/?Dev+%3A%3A+Git</link>
    <dc:date>2009-05-13T02:06:24+00:00</dc:date>
    <content:encoded><![CDATA[<div><p>あれこれメモしながら勉強</p>
<h2><span class="date"><a name="l0"> </a></span><span class="title">シグネチャ設定</span></h2>
<pre>
% git config --global user.name 'MINASE Kaede'
% git config --global user.email trashsuite@gmail.com
</pre>
<h2><span class="date"><a name="l1"> </a></span><span class="title">コミッター用のグループを追加</span></h2>
<pre>
% sudo groupadd git
% sudo usermod -aG git minase
</pre>
<h2><span class="date"><a name="l2"> </a></span><span class="title">リポジトリ用ディレクトリを掘る</span></h2>
<pre>
% sudo mkdir -m u=rwx,g=rwxs,o=rx /home/git
% sudo chgrp git git
% cd /home/git
% git init
</pre>
<h2><span class="date"><a name="l3"> </a></span><span class="title">ファイルをリポジトリに突っ込む</span></h2>
<pre>
% mkdir -p /home/git/dotfile/minase
% cp -a ~/{.vim,.vimrc} dotfile/minase
% cd /home/git
% git add .
% git commit -m 'add vim configs'
</pre>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?MacOSX+%3A%3A+TimeMachine">
    <title>MacOSX :: TimeMachine</title>
    <link>http://www.trashsuite.org/?MacOSX+%3A%3A+TimeMachine</link>
    <dc:date>2009-05-12T18:21:29+00:00</dc:date>
    <content:encoded><![CDATA[<div><h3><a name="l0"><span class="sanchor"> </span></a>バックアップ保存先に指定可能なデバイス</h3>
<ul>
<li>内蔵ハードディスク（起動ディスク以外）</li>
<li>外部ディスク</li>
<li>Time Capsule</li>
</ul>
<h3><a name="l1"><span class="sanchor"> </span></a>ネットワークドライブにバックアップできるようにする(安定しないけど)</h3>
<pre>
% defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
</pre>
<p>これで，バックアップ先のリストにネットワークボリュームが出てきて選択可能になるが，実際にバックアップを実行するとイメージファイルの生成ができずに失敗する</p>
<h4><a name="l2"> </a>イメージファイルを自前で生成する</h4>
<p>ディスクユーティリティで，下記のようなディスクイメージを作成する</p>
<div class="plugin">{{attach_view('screenshot 8.jpg')}}</div>
<p>名前は『ホスト名_有線 NIC の Mac アドレスから:を除いた文字列』でなくてはならず，下記のようなコマンドで生成するとよい</p>
<pre>
% echo `hostname`'_'`ifconfig en0 | grep ether | sed 's/://g' | awk '{print $2}'`
trashsuite_0023df991ee4
</pre>
<p>ディスクイメージが出来上がると自動的にマウントされるのでアンマウントし，ネットワークボリュームの root にイメージファイルをコピーする．この時，ネットワークボリューム上に ._ から始まるメタデータが生成される場合があり，こいつが存在するとバックアップに失敗するので，生成されていれば削除しておく</p>
<pre>
% rm /Volumes/share/._trashsuite_0023df991ee4.sparsebundle
</pre>
<h4><a name="l3"> </a>バックアップする</h4>
<p>ここまで完了すれば TimeMachine<a class="nodisp" href="./?c=edit;p=TimeMachine" title="Create and edit the page TimeMachine.">?</a> でバックアップを採ることができる</p>
</div>]]></content:encoded>  </item>  <item rdf:about="http://www.trashsuite.org/?Hardware+%3A%3A+IX2015">
    <title>Hardware :: IX2015</title>
    <link>http://www.trashsuite.org/?Hardware+%3A%3A+IX2015</link>
    <dc:date>2009-05-10T16:43:29+00:00</dc:date>
    <content:encoded><![CDATA[<div><h3><a name="l0"><span class="sanchor"> </span></a>MacOSX が DHCP クライアントの時にサーバ ID ではねられる件</h3>
<pre>
2009/05/11 01:01:47  DHS.014: send offer (172.17.0.43) to 255.255.255.255, hw 1-6-0023DF991EE4 (gwy 0.0.0.0) profile fe1
2009/05/11 01:01:47  DHS.016: client's server ID 169.254.111.111 does not match our ID 172.17.0.2 in the request packet
2009/05/11 01:01:49  DHS.011: ignore decline (169.254.111.112), lease for 1-6-0023DF991EE4 is not found on 172.17.0.2
</pre>
</div>]]></content:encoded>  </item></rdf:RDF>
