<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
  <title>com.posed</title>
  
  <link href="https://composed.hateblo.jp/"/>
  <updated></updated>
  <author>
    <name>nain</name>
  </author>
  <generator uri="https://blog.hatena.ne.jp/" version="234d062903e3b763fe9ac6a335ebb7">Hatena::Blog</generator>
  <id>hatenablog://blog/8599973812293120111</id>

  
    
    
    <entry>
        <title>キーボード （と人間）の相性について</title>
        <link href="https://composed.hateblo.jp/entry/20170721/1500623781"/>
        <id>hatenablog://entry/8599973812293120211</id>
        <published>2017-07-21T16:56:21+09:00</published>
        <updated>2017-07-21T07:56:21+09:00</updated>        <summary type="html">最近、Gateronの白軸キーボードを買いました。Cherry MXの白軸はクリック感のあるスイッチですが、Gateronはクリック感のないスイッチです。その代わり、キーが非常に軽い。35gなので、無接点方式と同じぐらいです。 それまでは青軸や黒軸を使っていました。買う前は、「赤より軽いなんて、底打ちしまくって結局指に負担がかかるんじゃないか」と思っていました。というか、黒の反発を心地よいと感じていたので、赤すら軽すぎだと感じていました。 しかし、しばらく白軸に慣れてから青軸を使ってみると、文字が抜ける抜ける。 意外なことに、白軸はほとんど底打ちすることなく軽いタッチで打てています。病気で筋力…</summary>
        <content type="html">&lt;p&gt;最近、Gateronの白軸キーボードを買いました。Cherry MXの白軸はクリック感のあるスイッチですが、Gateronはクリック感のないスイッチです。その代わり、キーが非常に軽い。35gなので、無接点方式と同じぐらいです。&lt;br /&gt;
それまでは青軸や黒軸を使っていました。買う前は、「赤より軽いなんて、底打ちしまくって結局指に負担がかかるんじゃないか」と思っていました。というか、黒の反発を心地よいと感じていたので、赤すら軽すぎだと感じていました。&lt;br /&gt;
しかし、しばらく白軸に慣れてから青軸を使ってみると、文字が抜ける抜ける。&lt;br /&gt;
意外なことに、白軸はほとんど底打ちすることなく軽いタッチで打てています。病気で筋力が落ちていて、青だとすぐ指が痛くなってくる（底打ちしない黒はそれほどでもなかった）手が、全然痛みません。びっくりです。天国はここにあったんだ！&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DE&quot;&gt;プログラマ&lt;/a&gt;時代は、ずっと適当なキーボードばかり使っていました。職場ではずっと本体付属のキーボードでしたし、アキバに勤めていた頃は休憩時間に店へゆき、980円の特価品を買って職場へ戻ったりしたものです。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%EA%A5%B9%A5%C8%A5%EC%A5%B9%A5%C8&quot;&gt;リストレスト&lt;/a&gt;もなし。思い返せば、周囲の同僚もそんなもの使っている人は居ませんでした。&lt;br /&gt;
キーボードなんてただの入力機器ですが、ずっと触ることになるものなので、やっぱりいろいろと変わってきます。気分とか、体調とか。今更ですが、「なんで道具に金を払わなかったんだ！」と昔の自分を殴りたい。&lt;br /&gt;
力がなくなったが故に、最近は&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%EA%A5%B9%A5%C8%A5%EC%A5%B9%A5%C8&quot;&gt;リストレスト&lt;/a&gt;だキーボードの軽さだといった環境の部分を気にするようになりました。果たして良いことなのか、それとも悪いことなのか……。&lt;/p&gt;
</content>        
        <category term="その他" label="その他" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120211/1503994553" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title> ごぶさたとかいうレベルではなく</title>
        <link href="https://composed.hateblo.jp/entry/20170719/1500471798"/>
        <id>hatenablog://entry/8599973812293120227</id>
        <published>2017-07-19T22:43:18+09:00</published>
        <updated>2017-07-19T13:43:18+09:00</updated>        <summary type="html">めっちゃ期間空いてました。自分でもびっくりするぐらいです。 何をしていたかといえば、体を壊してダウンしておりました。病名的には頸肩腕症候群です。しかし一番悪かった時期には、線維筋痛症なのかな？と思うほど全身が痛み、日がな一日ベッドの上でした。 昨今はだいぶ安定してきていますが、プログラマーにはもう戻りたくない……というか、闘病している間プログラミングから完全に離れてしまっていたので、今更戻るのはしんどいというのが正直なところです。 最近は「筋力の落ちた指に負担のかからないメカニカルキーボード」だの、「安いビジネスチェアに長いこと座っていてもしんどくなりにくいランバーサポートクッション」だの、そ…</summary>
        <content type="html">&lt;p&gt;めっちゃ期間空いてました。自分でもびっくりするぐらいです。&lt;br /&gt;
何をしていたかといえば、体を壊してダウンしておりました。病名的には頸肩腕症候群です。しかし一番悪かった時期には、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%C0%FE%B0%DD%B6%DA%C4%CB%BE%C9&quot;&gt;線維筋痛症&lt;/a&gt;なのかな？と思うほど全身が痛み、日がな一日ベッドの上でした。&lt;br /&gt;
昨今はだいぶ安定してきていますが、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DE%A1%BC&quot;&gt;プログラマー&lt;/a&gt;にはもう戻りたくない……というか、闘病している間プログラミングから完全に離れてしまっていたので、今更戻るのはしんどいというのが正直なところです。&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;最近は「筋力の落ちた指に負担のかからないメカニカルキーボード」だの、「安いビジネスチェアに長いこと座っていてもしんどくなりにくいランバーサポートクッション」だの、そんなものばかりを自宅に揃えております。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DE%A1%BC&quot;&gt;プログラマー&lt;/a&gt;を辞めてもパソコンには向かうしね！&lt;br /&gt;
最近買ってよかったのはこれ。安い椅子がソファみたいな凭れ心地になります。ありがたや。&lt;div class=&quot;hatena-asin-detail&quot;&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B06XH86YGG/hatena-blog-22/&quot;&gt;&lt;img src=&quot;https://images-fe.ssl-images-amazon.com/images/I/41nCF5%2B%2BLRL._SL160_.jpg&quot; class=&quot;hatena-asin-detail-image&quot; alt=&quot;Anwiel 低反発 ランバーサポート クッション アーチ型 背当て 背もたれ 腰痛 骨盤サポート 椅子 車 オフィス ブラック&quot; title=&quot;Anwiel 低反発 ランバーサポート クッション アーチ型 背当て 背もたれ 腰痛 骨盤サポート 椅子 車 オフィス ブラック&quot;&gt;&lt;/a&gt;&lt;div class=&quot;hatena-asin-detail-info&quot;&gt;&lt;p class=&quot;hatena-asin-detail-title&quot;&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B06XH86YGG/hatena-blog-22/&quot;&gt;Anwiel 低反発 ランバーサポート クッション アーチ型 背当て 背もたれ 腰痛 骨盤サポート 椅子 車 オフィス ブラック&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;出版社/メーカー:&lt;/span&gt; Anwiel&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;メディア:&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://d.hatena.ne.jp/asin/B06XH86YGG/hatena-blog-22&quot; target=&quot;_blank&quot;&gt;この商品を含むブログ (1件) を見る&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;hatena-asin-detail-foot&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;プログラミングは嫌いではないものの、朝から晩まで職場でプログラミングはしんどい。そもそも体力が落ちまくっていて、職場往復出来るかどうかすら怪しい。&lt;br /&gt;
仕方がないので、自宅で底辺ライターの真似事なんぞをする毎日です。どうしたもんかなあ。&lt;/p&gt;
</content>        
        <category term="その他" label="その他" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/d455bb3e409a12c8bdaccb06338f383acb870640/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fimages-fe.ssl-images-amazon.com%2Fimages%2FI%2F41nCF5%252B%252BLRL._SL160_.jpg" type="image/jpeg" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>CapsLockでIMEのトグルをさせたい（Sierra対応）</title>
        <link href="https://composed.hateblo.jp/entry/20170719/1500476923"/>
        <id>hatenablog://entry/8599973812293120219</id>
        <published>2017-07-19T00:08:43+09:00</published>
        <updated>2017-07-18T15:08:43+09:00</updated>        <summary type="html">体調はまだ万全とは言い難い状態ですが、だからといって別にプログラミングがしたくない訳ではなく、「Karabiner（Macアプリ）の代替としてHammerspoonが使える」という記事を巷で見たら「Lua勉強するべきかなあ」と思う程度には興味が残っていたりします。 うちはまだEl CapitanなのでKarabinerを使ってCapsLockでIMEのトグルしてるんですが、同じことはHammerspoonで出来るんですかね？ 現在の設定は Seilで「Change the caps lock key = 102」 Karabinerで「Use EISUU as KANA/EISUU (togg…</summary>
        <content type="html">&lt;p&gt;体調はまだ万全とは言い難い状態ですが、だからといって別にプログラミングがしたくない訳ではなく、「Karabiner（&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Mac&quot;&gt;Mac&lt;/a&gt;アプリ）の代替としてHammerspoonが使える」という記事を巷で見たら「&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Lua&quot;&gt;Lua&lt;/a&gt;勉強するべきかなあ」と思う程度には興味が残っていたりします。&lt;br /&gt;
うちはまだ&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/El%20Capitan&quot;&gt;El Capitan&lt;/a&gt;なのでKarabinerを使ってCapsLockで&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/IME&quot;&gt;IME&lt;/a&gt;のトグルしてるんですが、同じことはHammerspoonで出来るんですかね？&lt;br /&gt;
現在の設定は&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seilで「Change the caps lock key = 102」&lt;/li&gt;
&lt;li&gt;Karabinerで「Use EISUU as KANA/EISUU (toggle)」&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;といった感じです。&lt;br /&gt;
ググってみたところ、Karabiner-ElementsでHyper Key（いわゆる存在しないキー）にマップした上でごにょごにょしなきゃ無理っぽいことをHammerspoonの開発者がおっしゃってるんですよね。ううむ、悩ましい。&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;※追記&lt;br /&gt;
Hammerspoonを使わずとも、Karabiner-Elements単体で設定出来ました。&lt;br /&gt;
ということで、いずれOSをバージョンアップする前準備として、今のうちにKarabiner+SeilからKarabiner-Elementsへ乗り換えてしまいました。&lt;/p&gt;&lt;p&gt;方法としては、&lt;br /&gt;
1. Hyper KeyにCapsLockを設定&lt;br /&gt;
私はF13を使いました。入力出来ないキーなので、ソフトウェアキーボードを使います。&lt;br /&gt;
&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;a href=&quot;http://f.hatena.ne.jp/nain/20170719235314&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;url&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/n/nain/20170719/20170719235314.png&quot; alt=&quot;f:id:nain:20170719235314p:image:w360&quot; title=&quot;f:id:nain:20170719235314p:image:w360&quot; class=&quot;hatena-fotolife&quot; style=&quot;width:360px&quot; itemprop=&quot;image&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2. &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Mac&quot;&gt;Mac&lt;/a&gt;側のショートカット設定で「前の入力ソースを選択」にHyper Keyを設定&lt;br /&gt;
&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;a href=&quot;http://f.hatena.ne.jp/nain/20170719235311&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;url&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/n/nain/20170719/20170719235311.png&quot; alt=&quot;f:id:nain:20170719235311p:image:w360&quot; title=&quot;f:id:nain:20170719235311p:image:w360&quot; class=&quot;hatena-fotolife&quot; style=&quot;width:360px&quot; itemprop=&quot;image&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Hyper Keyはやっぱり使わなきゃ駄目でしたが、拍子抜けするほど簡単でした。&lt;br /&gt;
ただ、この方法だと当然のことながらCtrl+Spaceで切り替えが出来なくなるので、それはそれで面倒ですね。&lt;br /&gt;
後はキーボード独自のキー設定（FNキーと組み合わせて実行するアレ）がKarabiner-Elementsのせいで軒並み死亡してしまったので、どうしたもんかなと。&lt;br /&gt;
とりあえずファンクションキーについてはこんな風にしてはみたものの、いまいちスマートじゃない。&lt;br /&gt;
&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;a href=&quot;http://f.hatena.ne.jp/nain/20170721013008&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;url&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/n/nain/20170721/20170721013008.png&quot; alt=&quot;f:id:nain:20170721013008p:image:w360&quot; title=&quot;f:id:nain:20170721013008p:image:w360&quot; class=&quot;hatena-fotolife&quot; style=&quot;width:360px&quot; itemprop=&quot;image&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
とりあえず、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Lua&quot;&gt;Lua&lt;/a&gt;覚える機会なくなっちゃいましたかね。&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;※補足2&lt;br /&gt;
結局Karabiner+Seilに戻してしまいました。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Parallels&quot;&gt;Parallels&lt;/a&gt;のバージョンアップをする気になるまではこれでいいかな…&lt;/p&gt;
</content>        
        <category term="mac" label="mac" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/61bc95d12584158d9628ddf5971e39d045d0f204/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fn%2Fnain%2F20170719%2F20170719235314.png" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>ごぶさたしてました</title>
        <link href="https://composed.hateblo.jp/entry/20111220/1324366603"/>
        <id>hatenablog://entry/8599973812293120232</id>
        <published>2011-12-20T16:36:43+09:00</published>
        <updated>2011-12-20T07:36:43+09:00</updated>        <summary type="html">例によってまた超久し振りだったりします。あーそういや前回（1年以上前）はRoRについてやってたっけなーと読み返してしみじみしてしまう程度には時間が空いてしまいました。そのRoRはといえば、2ヶ月そこらでプロジェクトが解散してしまいまして。それ以降使わずじまいだったりします。もったいないなあ。おうちにRubyの本はあるので再度読み返そうかな・・・。 でその後は延々LAMP現場に送り込まれて、業務的なあんちょこは溜まる一方だけど技術的には特に書くこともないよーな状態で。いやMySQLの関連でメモっておくようなものはあるっちゃあるんですが、なんとなく書かずに今に至るのです。そればっかりじゃやっぱりい…</summary>
        <content type="html">&lt;p&gt;例によってまた超久し振りだったりします。あーそういや前回（1年以上前）は&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RoR&quot;&gt;RoR&lt;/a&gt;についてやってたっけなーと読み返してしみじみしてしまう程度には時間が空いてしまいました。その&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RoR&quot;&gt;RoR&lt;/a&gt;はといえば、2ヶ月そこらでプロジェクトが解散してしまいまして。それ以降使わずじまいだったりします。もったいないなあ。おうちに&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt;の本はあるので再度読み返そうかな・・・。&lt;br /&gt;
でその後は延々&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/LAMP&quot;&gt;LAMP&lt;/a&gt;現場に送り込まれて、業務的なあんちょこは溜まる一方だけど技術的には特に書くこともないよーな状態で。いや&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/MySQL&quot;&gt;MySQL&lt;/a&gt;の関連でメモっておくようなものはあるっちゃあるんですが、なんとなく書かずに今に至るのです。&lt;/p&gt;&lt;p&gt;そればっかりじゃやっぱりいかんよなーと思い、ちょっと前に勉強し始めたのが&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CoffeeScript&quot;&gt;CoffeeScript&lt;/a&gt;。&lt;br /&gt;
なぜ&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CoffeeScript&quot;&gt;CoffeeScript&lt;/a&gt;よ？という感じですが、元々は「&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone%A5%A2%A5%D7%A5%EA&quot;&gt;iPhoneアプリ&lt;/a&gt;作りたいなー」が発端で。&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone%A5%A2%A5%D7%A5%EA&quot;&gt;iPhoneアプリ&lt;/a&gt;作りたいなー&lt;br /&gt;
　↓&lt;br /&gt;
でも&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/C%2B%2B&quot;&gt;C++&lt;/a&gt;できないから&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Objective-C&quot;&gt;Objective-C&lt;/a&gt;だと完全にいちからになるなー&lt;br /&gt;
　↓&lt;br /&gt;
Titaniumってどう？&lt;br /&gt;
　↓&lt;br /&gt;
これはいい！&lt;br /&gt;
でも&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/JavaScript&quot;&gt;JavaScript&lt;/a&gt;も&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/jQuery&quot;&gt;jQuery&lt;/a&gt;を使ってちょこっと書けるぐらいのレベルだし、大して書ける訳じゃないからなあ&lt;br /&gt;
　↓&lt;br /&gt;
最近&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CoffeeScript&quot;&gt;CoffeeScript&lt;/a&gt;っての流行ってるっぽいよ&lt;br /&gt;
　↓&lt;br /&gt;
ソース読みやすい！&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt;とか&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Python&quot;&gt;Python&lt;/a&gt;っぽい！（段落が）&lt;br /&gt;
　↓&lt;br /&gt;
よし覚えよう&lt;/p&gt;&lt;p&gt;こういう流れで、現在はHerokuに既存サイトを&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EC%A5%A4%A5%D4%A5%F3%A5%B0&quot;&gt;スクレイピング&lt;/a&gt;して表示するサイトとか、mongoDBを使ってちょろっとデータ表示するサイトをお試し作成中です。まだ&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone%A5%A2%A5%D7%A5%EA&quot;&gt;iPhoneアプリ&lt;/a&gt;まで全然届いてません。&lt;br /&gt;
GitとかHerokuとか、新しいものを試行錯誤しながら使うのはやっぱ楽しいですなー。（職場では&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CVS&quot;&gt;CVS&lt;/a&gt;か&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/SVN&quot;&gt;SVN&lt;/a&gt;だったので・・・）&lt;br /&gt;
この辺はそのうち書きたいです。&lt;/p&gt;
</content>        
        <category term="その他" label="その他" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120232/1503994557" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>Rubyの例外処理をPHPと比較してみるよ</title>
        <link href="https://composed.hateblo.jp/entry/20100820/1282294635"/>
        <id>hatenablog://entry/8599973812293120248</id>
        <published>2010-08-20T17:57:15+09:00</published>
        <updated>2010-08-20T08:57:15+09:00</updated>        <summary type="html">というか、まあ比較しながらじゃないと私が分からないだけなんだけど。 catchとthrow Rubyにおいてcatch・throwはループ処理のメソッドで、例外処理とは全く関係ない。例外処理はraise・rescueメソッドを使う。 catch ループを抜け出す為のラベルとして使う。 throw 設定されたcatchに抜ける為のメソッド。 throwはイメージとしてgotoみたいな感じ？ catch :ラベル名 do 処理 処理 for ほげほげ do 処理 throw :ラベル名 処理条件 end 処理 処理 end # ← throw :ラベル名 に引っかかったらここに抜ける こういうこと…</summary>
        <content type="html">&lt;p&gt;というか、まあ比較しながらじゃないと私が分からないだけなんだけど。&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h4&gt;catchとthrow&lt;/h4&gt;
    &lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt;においてcatch・throwはループ処理のメソッドで、例外処理とは全く関係ない。例外処理はraise・rescueメソッドを使う。&lt;/p&gt;

&lt;dl&gt;
&lt;dt&gt;catch&lt;/dt&gt;
&lt;dd&gt;ループを抜け出す為のラベルとして使う。&lt;/dd&gt;
&lt;dt&gt;throw&lt;/dt&gt;
&lt;dd&gt;設定されたcatchに抜ける為のメソッド。&lt;/dd&gt;
&lt;/dl&gt;&lt;p&gt;throwはイメージとしてgotoみたいな感じ？&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synStatement&quot;&gt;catch&lt;/span&gt; :ラベル名 &lt;span class=&quot;synStatement&quot;&gt;do&lt;/span&gt;
  処理
  処理
  &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; ほげほげ &lt;span class=&quot;synStatement&quot;&gt;do&lt;/span&gt;
    処理
    &lt;span class=&quot;synStatement&quot;&gt;throw&lt;/span&gt; :ラベル名 処理条件
  &lt;span class=&quot;synStatement&quot;&gt;end&lt;/span&gt;
  処理
  処理
&lt;span class=&quot;synStatement&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;# ← throw :ラベル名 に引っかかったらここに抜ける&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;こういうこと？&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4&gt;例外処理&lt;/h4&gt;
    &lt;p&gt;try〜catch〜exception は、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt;だとこんな感じになる。&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synStatement&quot;&gt;begin&lt;/span&gt;
  処理
  処理
&lt;span class=&quot;synStatement&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Exception&lt;/span&gt; =&amp;gt; e
  エラー処理
&lt;span class=&quot;synStatement&quot;&gt;ensure&lt;/span&gt;
  エラーに関係なく必ず通る処理
&lt;span class=&quot;synStatement&quot;&gt;end&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/PHP&quot;&gt;PHP&lt;/a&gt;でいうところの&lt;/p&gt;
&lt;pre class=&quot;code lang-php&quot; data-lang=&quot;php&quot; data-unlink&gt;try {
  処理
  処理
}
catch (&lt;span class=&quot;synIdentifier&quot;&gt;Exception&lt;/span&gt; $e) {
  エラー処理
}
finally {
  エラーに関係なく必ず通る処理
}
&lt;/pre&gt;&lt;p&gt;と同じ。&lt;/p&gt;

&lt;/div&gt;</content>        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120248/1503994558" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>画面ロード時にメッセージをフェイドアウト</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p1"/>
        <id>hatenablog://entry/8599973812293120444</id>
        <published>2010-08-11T00:00:17+09:00</published>
        <updated>2010-08-10T15:00:17+09:00</updated>        <summary type="html">前も使ってたんだけどいざもう一度使おうとしたら思い出せなくて、きっとまた忘れると思うのでメモっておく。JavaScript: $(function(){ $(&quot;.notice&quot;).fadeOut(6000); }); HTML: &lt;p class=&quot;notice&quot;&gt;ほげほげ&lt;/p&gt; こんな感じで書いておくと、HTMLファイルロード時にnoticeクラスを指定したタグがじわーっとフェイドアウトする。 タグには .notice { background-color: #5C832F; color: #fff; padding: 4px 10px; margin-bottom: 10px; } とか…</summary>
        <content type="html">&lt;p&gt;前も使ってたんだけどいざもう一度使おうとしたら思い出せなくて、きっとまた忘れると思うのでメモっておく。&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/JavaScript&quot;&gt;JavaScript&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;code lang-javascript&quot; data-lang=&quot;javascript&quot; data-unlink&gt;$(&lt;span class=&quot;synIdentifier&quot;&gt;function&lt;/span&gt;()&lt;span class=&quot;synIdentifier&quot;&gt;{&lt;/span&gt;
    $(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.notice&amp;quot;&lt;/span&gt;).fadeOut(6000);
&lt;span class=&quot;synIdentifier&quot;&gt;}&lt;/span&gt;);
&lt;/pre&gt;&lt;p&gt;HTML:&lt;/p&gt;
&lt;pre class=&quot;code lang-html&quot; data-lang=&quot;html&quot; data-unlink&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; &lt;/span&gt;&lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;notice&amp;quot;&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;ほげほげ&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;こんな感じで書いておくと、HTMLファイルロード時にnoticeクラスを指定したタグがじわーっと&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D5%A5%A7%A5%A4%A5%C9%A5%A2%A5%A6%A5%C8&quot;&gt;フェイドアウト&lt;/a&gt;する。&lt;br /&gt;
タグには&lt;/p&gt;
&lt;pre class=&quot;code lang-css&quot; data-lang=&quot;css&quot; data-unlink&gt;&lt;span class=&quot;synIdentifier&quot;&gt;.notice&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;synType&quot;&gt;background-color&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;#5C832F&lt;/span&gt;;
  &lt;span class=&quot;synType&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;#fff&lt;/span&gt;;
  &lt;span class=&quot;synType&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;10px&lt;/span&gt;;
  &lt;span class=&quot;synType&quot;&gt;margin-bottom&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;10px&lt;/span&gt;;
&lt;span class=&quot;synIdentifier&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;とかスタイル指定しとくと見た目よろしくていいかも。後は左端をパディング取って背景画像張ってみるとか。&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;参考：&lt;a href=&quot;http://semooh.jp/jquery/&quot;&gt;jQuery&amp;#x65E5;&amp;#x672C;&amp;#x8A9E;&amp;#x30EA;&amp;#x30D5;&amp;#x30A1;&amp;#x30EC;&amp;#x30F3;&amp;#x30B9;&lt;/a&gt;&lt;/p&gt;
</content>        
        <category term="javascript" label="javascript" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120444/1503994596" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>Simplenote restyledをいじる</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p2"/>
        <id>hatenablog://entry/8599973812293120436</id>
        <published>2010-08-11T00:00:16+09:00</published>
        <updated>2010-08-10T15:00:16+09:00</updated>        <summary type="html">iPhoneのメモアプリはSimplenoteを使っています。ちょっと前までWriteRoomを使ってたんだけど、SimpleText.wsと同期すると濁点つき日本語がおかしくなるので今は様子見中。SimpleText.wsすごく好きなので直ればいいんだけど、マルチバイトのお話だし海外サイトだしどうかなーぐぬぬ。そんな感じで待避先として使用しているSimplenoteも、Webアプリのエディタと同期する機能がついていてとても便利。会社で技術メモを取って後からこんな風に日記を更新するときには大活躍です。 しかしSimplenoteのブラウザインターフェースはちょっと難があって、見た目綺麗なんだけ…</summary>
        <content type="html">&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iPhone&quot;&gt;iPhone&lt;/a&gt;のメモアプリは&lt;a href=&quot;https://simple-note.appspot.com/&quot;&gt;Simplenote&lt;/a&gt;を使っています。ちょっと前まで&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/WriteRoom&quot;&gt;WriteRoom&lt;/a&gt;を使ってたんだけど、&lt;a href=&quot;http://www.simpletext.ws/&quot;&gt;SimpleText.ws&lt;/a&gt;と同期すると濁点つき日本語がおかしくなるので今は様子見中。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/SimpleText&quot;&gt;SimpleText&lt;/a&gt;.wsすごく好きなので直ればいいんだけど、マルチバイトのお話だし海外サイトだしどうかなー&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A4%B0%A4%CC%A4%CC&quot;&gt;ぐぬぬ&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;そんな感じで待避先として使用しているSimplenoteも、Webアプリのエディタと同期する機能がついていてとても便利。会社で技術メモを取って後からこんな風に日記を更新するときには大活躍です。&lt;br /&gt;
しかしSimplenoteのブラウザインターフェースはちょっと難があって、見た目綺麗なんだけど入力部分がちっちゃかったりフォントがserifなので寝ぼけて見づらかったり悩ましい。&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;ということで、SimplenoteのWeb画面をブラウザ全体に広げてくれる&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Greasemonkey&quot;&gt;Greasemonkey&lt;/a&gt;「&lt;a href=&quot;http://lab.mightydream.com/simplenote-restyled/&quot;&gt;Simplenote restyled&lt;/a&gt;」に頼ることに。&lt;br /&gt;
この&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Greasemonkey&quot;&gt;Greasemonkey&lt;/a&gt;は画面を広げるだけでフォントはデフォルトのままなので、jsファイルに追記してmonospaceに変更。&lt;br /&gt;
リスト側の文字サイズも若干大きめにしてみた。&lt;br /&gt;
やったことはといえば、jsファイルを開いて最後尾に2行追加しただけ。&lt;/p&gt;
&lt;pre class=&quot;code lang-javascript&quot; data-lang=&quot;javascript&quot; data-unlink&gt;GM_addStyle(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;#listContainer { font-size: medium; font-family: monospace; }&amp;quot;&lt;/span&gt;);
GM_addStyle(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;#text textarea { font-family: monospace; }&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;&lt;p&gt;お手軽だけど随分可視性が増した感じ。&lt;/p&gt;
</content>        
        <category term="greasemonkey" label="greasemonkey" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120436/1503994595" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>gemの使い方</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p3"/>
        <id>hatenablog://entry/8599973812293120424</id>
        <published>2010-08-11T00:00:15+09:00</published>
        <updated>2010-08-10T15:00:15+09:00</updated>        <summary type="html">しばらく音沙汰有りませんでしたが、お仕事でRubyをいじりはじめました。ということでメモメモ。 gem list インストールされているパッケージを一覧表示 gem install xxxxxx (-v=X.X.X) 指定パッケージのインストール（-vでバージョン指定） gem uninstall xxxxxx (-v=X.X.X) 指定パッケージのアンインストール（-vでバージョン指定） RadRailsで言われるままにあれこれインストールしているとバージョンが混在してくっちゃくちゃになったので、listでチェックして必要ないものをアンインストール。 でもこれってきっと config/env…</summary>
        <content type="html">&lt;p&gt;しばらく音沙汰有りませんでしたが、お仕事で&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt;をいじりはじめました。ということでメモメモ。&lt;/p&gt;

&lt;dl&gt;
&lt;dt&gt;gem list&lt;/dt&gt;
&lt;dd&gt;インストールされているパッケージを一覧表示&lt;/dd&gt;
&lt;dt&gt;gem install xxxxxx (-v=X.X.X)&lt;/dt&gt;
&lt;dd&gt;指定パッケージのインストール（-vでバージョン指定）&lt;/dd&gt;
&lt;dt&gt;gem uninstall xxxxxx (-v=X.X.X)&lt;/dt&gt;
&lt;dd&gt;指定パッケージのアンインストール（-vでバージョン指定）&lt;/dd&gt;
&lt;/dl&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RadRails&quot;&gt;RadRails&lt;/a&gt;で言われるままにあれこれインストールしているとバージョンが混在してくっちゃくちゃになったので、listでチェックして必要ないものをアンインストール。&lt;br /&gt;
でもこれってきっと config/environment.rb 辺りで使用バージョンを設定できるんだよね？&lt;/p&gt;&lt;p&gt;→できた！&lt;br /&gt;
config/environment.rb で以下のように記述。&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synComment&quot;&gt;# Specifies gem version of Rails to use when vendor/rails is not present&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;RAILS_GEM_VERSION&lt;/span&gt; = &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;2.1.2&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;defined?&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;RAILS_GEM_VERSION&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RAILS&quot;&gt;RAILS&lt;/a&gt;_GEM_VERSION に設定したバージョンで動く模様。&lt;br /&gt;
ただし上記のように指定した場合は「2.1.2」でないと動かない。例えば2.1.2↑のものが入っていても動かない。&lt;/p&gt;
</content>        
        <category term="ruby" label="ruby" />
        
        <category term="rails" label="rails" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120424/1503994593" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>Railsをはじめてみるよ</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p4"/>
        <id>hatenablog://entry/8599973812293120418</id>
        <published>2010-08-11T00:00:14+09:00</published>
        <updated>2010-08-10T15:00:14+09:00</updated>        <summary type="html">ということでRails。 CakePHPにもRoRのようなscaffold機能があったけど、いかんせん会社のカラム命名規則がおかしかったせいで自動作成周りの美味しい機能は全く使用しなかった（できなかったともいう）。 ということで、このへんの機能を触るのはほぼ初。実行環境： Ruby 1.8.7 Rails 2.3.8 開発環境： Ubuntu Linux 9.04 Aptana RadRails 2.0.5.1278709071 メイン資料（PDF）： four days on rails 2.0 日本語翻訳版 資料（手持ち）： はじめてのRuby 第2版 資料（借り物）： Ruby on R…</summary>
        <content type="html">&lt;p&gt;ということで&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Rails&quot;&gt;Rails&lt;/a&gt;。&lt;br /&gt;
&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CakePHP&quot;&gt;CakePHP&lt;/a&gt;にも&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RoR&quot;&gt;RoR&lt;/a&gt;のようなscaffold機能があったけど、いかんせん会社のカラム&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%CC%BF%CC%BE%B5%AC%C2%A7&quot;&gt;命名規則&lt;/a&gt;がおかしかったせいで自動作成周りの美味しい機能は全く使用しなかった（できなかったともいう）。&lt;br /&gt;
ということで、このへんの機能を触るのはほぼ初。&lt;/p&gt;&lt;p&gt;実行環境：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby%201.8.7&quot;&gt;Ruby 1.8.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Rails&quot;&gt;Rails&lt;/a&gt; 2.3.8&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;開発環境：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ubuntu%20Linux&quot;&gt;Ubuntu Linux&lt;/a&gt; 9.04&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Aptana&quot;&gt;Aptana&lt;/a&gt; &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RadRails&quot;&gt;RadRails&lt;/a&gt; 2.0.5.1278709071&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;メイン資料（PDF）：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://rails.to/pages/4daysonrails2&quot;&gt;four days on rails 2.0 &amp;#x65E5;&amp;#x672C;&amp;#x8A9E;&amp;#x7FFB;&amp;#x8A33;&amp;#x7248;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;資料（手持ち）：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;はじめての&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt; 第2版&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;資料（借り物）：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby%20on%20Rails&quot;&gt;Ruby on Rails&lt;/a&gt; 逆引きクイックリファレンス&lt;/li&gt;
&lt;li&gt;オレイリー本 / 実践 &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Rails&quot;&gt;Rails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;オレイリー本 / &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%C0%B8%EC&quot;&gt;プログラミング言語&lt;/a&gt; &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;しかしオレイリーの&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt;本、国内書籍\3,800円で&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/iTunes%20Store&quot;&gt;iTunes Store&lt;/a&gt;の英語版が\600ってそれどんな逆輸入なの。&lt;/p&gt;
</content>        
        <category term="ruby" label="ruby" />
        
        <category term="rails" label="rails" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120418/1503994592" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>まずはプロジェクト作成</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p5"/>
        <id>hatenablog://entry/8599973812293120412</id>
        <published>2010-08-11T00:00:13+09:00</published>
        <updated>2010-08-10T15:00:13+09:00</updated>        <summary type="html">RadRailsを起動 Ruby エクスプローラー上で右クリック＞新規＞Rails プロジェクト プロジェクト名に「ToDo」あとはデフォルトでOK。「プロジェクト作成後にサーバーを自動開始」にチェックを入れておくと自動実行されるのでチェックに便利。 新規プロジェクト「ToDo」が作成される 疑問点： マイグレーションとはなんぞや。自動生成の設定かな？ →「DBのスキーマ（テーブルやカラムなどの構造）の変更をツールで管理する仕組み」らしい。なるほど。</summary>
        <content type="html">
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RadRails&quot;&gt;RadRails&lt;/a&gt;を起動&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ruby&quot;&gt;Ruby&lt;/a&gt; &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A8%A5%AF%A5%B9%A5%D7%A5%ED%A1%BC%A5%E9&quot;&gt;エクスプローラ&lt;/a&gt;ー上で右クリック＞新規＞&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Rails&quot;&gt;Rails&lt;/a&gt; プロジェクト&lt;/li&gt;
&lt;li&gt;プロジェクト名に「ToDo」あとはデフォルトでOK。「プロジェクト作成後にサーバーを自動開始」にチェックを入れておくと自動実行されるのでチェックに便利。&lt;/li&gt;
&lt;li&gt;新規プロジェクト「ToDo」が作成される&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;
疑問点：&lt;br /&gt;
&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%B0%A5%EC%A1%BC%A5%B7%A5%E7%A5%F3&quot;&gt;マイグレーション&lt;/a&gt;とはなんぞや。自動生成の設定かな？&lt;br /&gt;
→「DBの&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%B9%A5%AD%A1%BC%A5%DE&quot;&gt;スキーマ&lt;/a&gt;（テーブルやカラムなどの構造）の変更をツールで管理する仕組み」らしい。なるほど。&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120412/1503994591" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>scaffoldでテーブル自動生成</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p6"/>
        <id>hatenablog://entry/8599973812293120399</id>
        <published>2010-08-11T00:00:12+09:00</published>
        <updated>2010-08-10T15:00:12+09:00</updated>        <summary type="html">ウィンドウ＞ビューの表示＞ジェネレーター を選択し、「ジェネレーター」ビューを画面に表示する 生成プログラムに「scaffold」パラメーターに「Category category:string」を指定して右端の緑三角ボタンをクリック script/generate scaffold Category category:string exists app/models/ exists app/controllers/ exists app/helpers/ exists app/views/categories exists app/views/layouts/ exists test/fun…</summary>
        <content type="html">
&lt;ul&gt;
&lt;li&gt;ウィンドウ＞ビューの表示＞ジェネレーター を選択し、「ジェネレーター」ビューを画面に表示する&lt;/li&gt;
&lt;li&gt;生成プログラムに「scaffold」パラメーターに「Category category:string」を指定して右端の緑三角ボタンをクリック&lt;/li&gt;
&lt;/ul&gt;&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;script/generate scaffold &lt;span class=&quot;synType&quot;&gt;Category&lt;/span&gt; category&lt;span class=&quot;synConstant&quot;&gt;:string&lt;/span&gt;
      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      exists  app/views/categories
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
      exists  test/unit/helpers/
      exists  &lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/
      create  app/views/categories/index.html.erb
      create  app/views/categories/show.html.erb
      create  app/views/categories/new.html.erb
      create  app/views/categories/edit.html.erb
      create  app/views/layouts/categories.html.erb
      create  &lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/scaffold.css
      create  app/controllers/categories_controller.rb
      create  test/functional/categories_controller_test.rb
      create  app/helpers/categories_helper.rb
      create  test/unit/helpers/categories_helper_test.rb
       route  map.resources &lt;span class=&quot;synConstant&quot;&gt;:categories&lt;/span&gt;
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/category.rb
      create    test/unit/category_test.rb
      create    test/fixtures/categories.yml
      create    db/migrate
      create    db/migrate/20100805021554_create_categories.rb
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;テーブル名：Category / 項目名：category / 型：string の条件で、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%B0%A5%EC%A1%BC%A5%B7%A5%E7%A5%F3&quot;&gt;マイグレーション&lt;/a&gt;ファイル 「db/migrate/xxxxxxxxxxxxxx_create_categories.rb」が作成される&lt;/li&gt;
&lt;li&gt;ウィンドウ＞ビューの表示＞Rakeタスク を選択し、「Rake タスク」をビュー画面に表示する&lt;/li&gt;
&lt;li&gt;タスクに「db:migrate」を指定して右端の緑三角ボタンをクリック&lt;/li&gt;
&lt;/ul&gt;&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;rake db&lt;span class=&quot;synConstant&quot;&gt;:migrate&lt;/span&gt; 
==  &lt;span class=&quot;synConstant&quot;&gt;CreateCategories&lt;/span&gt;: migrating ===============================================
-- create_table(&lt;span class=&quot;synConstant&quot;&gt;:categories&lt;/span&gt;)
   -&amp;gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;.0017s
==  &lt;span class=&quot;synConstant&quot;&gt;CreateCategories&lt;/span&gt;: migrated (&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;.0019s) ======================================
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;生成したdbは「db/development.sqlite3」の模様。「config/database.yml」の設定からすると、test.sqlite3とproduction.sqlite3もここにできるんだろうな。&lt;/li&gt;
&lt;li&gt;ブラウザで「&lt;a href=&quot;http://127.0.0.1:3000/categories&quot;&gt;http://127.0.0.1:3000/categories&lt;/a&gt;」を開く →なんかできてる！カラム追加や削除など一通り試す。バリデートなどは全くないのでなんでも登録できる。空入力でも登録できる。システム内部処理時にRedRailsのコンソールへ色々ログ出力されるので便利。&lt;/li&gt;
&lt;li&gt;テーブルが自動作成されると同時に、app/modelsの中にモデルも自動作成される。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/MVC&quot;&gt;MVC&lt;/a&gt;のフォルダ構造は&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CakePHP&quot;&gt;CakePHP&lt;/a&gt;と一緒なので、バリデートなどの設定をするならこちらをいじることになる。&lt;/li&gt;
&lt;/ul&gt;</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120399/1503994588" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>CRUDとかRESTfulとかrouteとか</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p7"/>
        <id>hatenablog://entry/8599973812293120381</id>
        <published>2010-08-11T00:00:11+09:00</published>
        <updated>2010-08-10T15:00:11+09:00</updated>        <summary type="html">CakePHPと同様、RoRもCRUD（Create, Read, Update, Delete）なディレクトリ構成でアクセスする。 RESTfulとはなんぞやについてはこちらを参照。もしくは資料のP.12〜13辺りに詳しい。RoRの場合はrakeコマンドを使用することでアプリケーションのメソッドに対するHTTPメソッドの対応リストを見ることができる。 RedRailsの場合、 ウィンドウ＞ビューの表示＞Rakeタスク を選択し、「Rake タスク」をビュー画面に表示する タスクに「routes」を指定して右端の緑三角ボタンをクリック でコンソールにリスト表示される。 &gt;rake routes…</summary>
        <content type="html">&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CakePHP&quot;&gt;CakePHP&lt;/a&gt;と同様、&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RoR&quot;&gt;RoR&lt;/a&gt;も&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CRUD&quot;&gt;CRUD&lt;/a&gt;（Create, Read, Update, Delete）な&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8&quot;&gt;ディレクト&lt;/a&gt;リ構成でアクセスする。&lt;br /&gt;
RESTfulとはなんぞやについては&lt;a href=&quot;http://www.atmarkit.co.jp/fdb/rensai/08_db2onror/db2onror09.html&quot;&gt;&amp;#x3053;&amp;#x3061;&amp;#x3089;&lt;/a&gt;を参照。もしくは&lt;a href=&quot;http://rails.to/pages/4daysonrails2&quot;&gt;&amp;#x8CC7;&amp;#x6599;&lt;/a&gt;のP.12〜13辺りに詳しい。&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RoR&quot;&gt;RoR&lt;/a&gt;の場合はrakeコマンドを使用することでアプリケーションのメソッドに対するHTTPメソッドの対応リストを見ることができる。&lt;br /&gt;
RedRailsの場合、&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ウィンドウ＞ビューの表示＞Rakeタスク を選択し、「Rake タスク」をビュー画面に表示する&lt;/li&gt;
&lt;li&gt;タスクに「routes」を指定して右端の緑三角ボタンをクリック&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;でコンソールにリスト表示される。&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&amp;gt;rake routes 
   categories &lt;span class=&quot;synType&quot;&gt;GET&lt;/span&gt;    &lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;(.&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:format&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;              {:controller=&amp;gt;&amp;quot;categories&amp;quot;, :action=&amp;gt;&amp;quot;index&amp;quot;}&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;              POST   &lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;categories(.&lt;span class=&quot;synConstant&quot;&gt;:format&lt;/span&gt;)              {&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;}
 new_category &lt;span class=&quot;synType&quot;&gt;GET&lt;/span&gt;    &lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;/ne&lt;/span&gt;w(.&lt;span class=&quot;synConstant&quot;&gt;:format&lt;/span&gt;)          {&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;}
edit_category &lt;span class=&quot;synType&quot;&gt;GET&lt;/span&gt;    &lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:id&lt;/span&gt;/edit(.&lt;span class=&quot;synConstant&quot;&gt;:format&lt;/span&gt;)     {&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;edit&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;}
     category &lt;span class=&quot;synType&quot;&gt;GET&lt;/span&gt;    &lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:id&lt;/span&gt;(.&lt;span class=&quot;synConstant&quot;&gt;:format&lt;/span&gt;)          {&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;}
              &lt;span class=&quot;synType&quot;&gt;PUT&lt;/span&gt;    &lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:id&lt;/span&gt;(.&lt;span class=&quot;synConstant&quot;&gt;:format&lt;/span&gt;)          {&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;update&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;}
              &lt;span class=&quot;synType&quot;&gt;DELETE&lt;/span&gt; &lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:id&lt;/span&gt;(.&lt;span class=&quot;synConstant&quot;&gt;:format&lt;/span&gt;)          {&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;categories&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;destroy&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;}
                     &lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt;/&lt;span class=&quot;synConstant&quot;&gt;:id&lt;/span&gt;           
                     &lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt;/&lt;span class=&quot;synConstant&quot;&gt;:id&lt;/span&gt;(.&lt;span class=&quot;synConstant&quot;&gt;:format&lt;/span&gt;) 
&lt;/pre&gt;&lt;p&gt;うっほ超便利。&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120381/1503994585" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>バリデーションを追加してみる</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p8"/>
        <id>hatenablog://entry/8599973812293120361</id>
        <published>2010-08-11T00:00:10+09:00</published>
        <updated>2010-08-10T15:00:10+09:00</updated>        <summary type="html">db/models/category.rb を開き以下を記述。 class Category &lt; ActiveRecord::Base # 未入力チェック validates_presence_of :category, :message =&gt; &quot;が未入力です。&quot; # 文字数チェック（20文字以内／半角全角共通） # 末尾のif文は「categoryが未入力ではない場合だけチェック実行」という意味 validates_length_of :category, :within =&gt; 1..20, :message =&gt; &quot;を20文字以内で入力して下さい&quot;, :if =&gt; :category? #…</summary>
        <content type="html">
&lt;ul&gt;
&lt;li&gt;db/models/category.rb を開き以下を記述。&lt;/li&gt;
&lt;/ul&gt;&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synPreProc&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Category&lt;/span&gt; &amp;lt; &lt;span class=&quot;synType&quot;&gt;ActiveRecord&lt;/span&gt;::&lt;span class=&quot;synType&quot;&gt;Base&lt;/span&gt;
  &lt;span class=&quot;synComment&quot;&gt;# 未入力チェック&lt;/span&gt;
  validates_presence_of &lt;span class=&quot;synConstant&quot;&gt;:category&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:message&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;が未入力です。&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;

  &lt;span class=&quot;synComment&quot;&gt;# 文字数チェック（20文字以内／半角全角共通）&lt;/span&gt;
  &lt;span class=&quot;synComment&quot;&gt;# 末尾のif文は「categoryが未入力ではない場合だけチェック実行」という意味&lt;/span&gt;
  validates_length_of &lt;span class=&quot;synConstant&quot;&gt;:category&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:within&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;..&lt;span class=&quot;synConstant&quot;&gt;20&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:message&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;を20文字以内で入力して下さい&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:if&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synConstant&quot;&gt;:category?&lt;/span&gt;

  &lt;span class=&quot;synComment&quot;&gt;# 重複チェック&lt;/span&gt;
  validates_uniqueness_of &lt;span class=&quot;synConstant&quot;&gt;:category&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:message&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;は既に登録されています&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;dl&gt;
&lt;dt&gt;validates_presence_of&lt;/dt&gt;
&lt;dd&gt;必須チェック（要するにNULLを許さない）&lt;/dd&gt;
&lt;dt&gt;validates_inclusion_of&lt;/dt&gt;
&lt;dd&gt;入力文字の内容の範囲チェック（例：1〜5の間の数値を入力）&lt;/dd&gt;
&lt;dt&gt;validates_length_of&lt;/dt&gt;
&lt;dd&gt;入力文字の桁数チェック（例：1〜20文字で入力）&lt;/dd&gt;
&lt;dt&gt;validates_format_of&lt;/dt&gt;
&lt;dd&gt;ユーザー指定フォーマット（&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD&quot;&gt;正規表現&lt;/a&gt;）での入力内容チェック&lt;/dd&gt;
&lt;/dl&gt;&lt;p&gt;文字数チェックも&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%BD%C5%CA%A3%A5%C1%A5%A7%A5%C3%A5%AF&quot;&gt;重複チェック&lt;/a&gt;も、日本語が問題なくいけて有難い。&lt;br /&gt;
今回はDBとして&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/sqlite&quot;&gt;sqlite&lt;/a&gt;を使用しているけど、これが&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/MySQL&quot;&gt;MySQL&lt;/a&gt;になったりすると文字化け問題が出てくるかも？&lt;/p&gt;&lt;p&gt;関数チックな書き方でわかりやすいんだけど、それぞれのバリデーションをメソッドとして書くこともできる模様。&lt;br /&gt;
一長一短だと思うので、その場その場でどちらが良いのかは考えた方が良いのかも。&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;参考：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://d.hatena.ne.jp/zariganitosh/20061111/1163249973&quot;&gt;validate&amp;#x306E;&amp;#x30D0;&amp;#x30EA;&amp;#x30A8;&amp;#x30FC;&amp;#x30B7;&amp;#x30E7;&amp;#x30F3; - &amp;#x30B6;&amp;#x30EA;&amp;#x30AC;&amp;#x30CB;&amp;#x304C;&amp;#x898B;&amp;#x3066;&amp;#x3044;&amp;#x305F;...&amp;#x3002;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://d.hatena.ne.jp/shunsuk/20080625/1214381487&quot;&gt;Rails&amp;#x306E;validation&amp;#x3092;&amp;#x65E5;&amp;#x672C;&amp;#x8A9E;&amp;#x5316;&amp;#x3059;&amp;#x308B;&amp;#x65B9;&amp;#x6CD5;&amp;#xFF08;&amp;#x304A;&amp;#x307E;&amp;#x3051;&amp;#x4ED8;&amp;#x304D;&amp;#xFF09; - &amp;#x3053;&amp;#x306E;&amp;#x30D6;&amp;#x30ED;&amp;#x30B0;&amp;#x306F;&amp;#x8A3C;&amp;#x660E;&amp;#x3067;&amp;#x304D;&amp;#x306A;&amp;#x3044;&amp;#x3002;&lt;/a&gt; - Rails2.1以前の方法。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://d.hatena.ne.jp/challengeRoR/20100406/1270510760&quot;&gt;i18n&amp;#x306B;&amp;#x3088;&amp;#x308B;&amp;#x65E5;&amp;#x672C;&amp;#x8A9E;&amp;#x5316; - challenge Ruby on Rails&lt;/a&gt; - Rails2.2以降の方法。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://maskana.homedns.org/rails/pro/body/54&quot;&gt;&amp;#x30D0;&amp;#x30EA;&amp;#x30C7;&amp;#x30FC;&amp;#x30B7;&amp;#x30E7;&amp;#x30F3;(validate)&amp;#x3067;&amp;#x5165;&amp;#x529B;&amp;#x898F;&amp;#x5236;&amp;#x3092;&amp;#x304B;&amp;#x3051;&amp;#x3088;&amp;#x3046; Ruby on Rails Pro&lt;/a&gt; - なるほど、処理パターン毎にバリデーションの指定ができるのね。&lt;/li&gt;
&lt;/ul&gt;</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120361/1503994583" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>i18nで簡単日本語化（Rails2.2.x）</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p9"/>
        <id>hatenablog://entry/8599973812293120348</id>
        <published>2010-08-11T00:00:09+09:00</published>
        <updated>2010-08-10T15:00:09+09:00</updated>        <summary type="html">Rails 2.2以上の機能らしい。実行環境を2.1にバージョンダウンしたら使えなくて涙目。 i18nによる日本語化 - challenge Ruby on Rails i18nによる日本語化についてはこのページにまるまる書いてある。CakePHPの場合は国際化が結構面倒で結局日本語ベタコーディングしてしまったのだけれど、 RoRの場合はすごく簡単に対応できる。 poとかmoとか考える必要もないから、PoeditでLC_MESSAGES書いたりしなくてもいい。追加も削除もお手軽。国際化に限らず、ラベル表記の変更があった場合も1ファイルを修正するだけで済むから「とりあえず仮ラベルで開発だけカカッ…</summary>
        <content type="html">&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Rails&quot;&gt;Rails&lt;/a&gt; 2.2以上の機能らしい。実行環境を2.1にバージョンダウンしたら使えなくて涙目。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&lt;a href=&quot;http://d.hatena.ne.jp/challengeRoR/20100406/1270510760&quot;&gt;i18n&amp;#x306B;&amp;#x3088;&amp;#x308B;&amp;#x65E5;&amp;#x672C;&amp;#x8A9E;&amp;#x5316; - challenge Ruby on Rails&lt;/a&gt;&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/i18n&quot;&gt;i18n&lt;/a&gt;による日本語化についてはこのページにまるまる書いてある。&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CakePHP&quot;&gt;CakePHP&lt;/a&gt;の場合は国際化が結構面倒で結局日本語ベタコーディングしてしまったのだけれど、&lt;br /&gt;
&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/RoR&quot;&gt;RoR&lt;/a&gt;の場合はすごく簡単に対応できる。&lt;br /&gt;
poとかmoとか考える必要もないから、PoeditでLC_MESSAGES書いたりしなくてもいい。追加も削除もお手軽。国際化に限らず、ラベル表記の変更があった場合も1ファイルを修正するだけで済むから「とりあえず仮ラベルで開発だけカカッとしちゃって正式名は後から考えればいいや」という使い方もできる。ありがたや。&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120348/1503994582" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>リレーションシップを設定する</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p10"/>
        <id>hatenablog://entry/8599973812293120343</id>
        <published>2010-08-11T00:00:08+09:00</published>
        <updated>2010-08-10T15:00:08+09:00</updated>        <summary type="html">資料のP.23を参考に、次はitemテーブルを追加。先のcategoryテーブルとの関係は「多対1」となるので、モデルにもその辺りを設定しておく必要がある。この辺はCakePHPと同じくHABTM（hasOne, hasMany, belongsTo, hasAndBelongsToMany）なのでそんなに悩まなくて済む・・・かな・・・？ class Item &lt; ActiveRecord::Base # テーブルのリレーションシップ # この場合は 多対1（itemはcategoryに属する） belongs_to :category # 関連テーブルのバリデーションも実行するよ valid…</summary>
        <content type="html">&lt;p&gt;資料のP.23を参考に、次はitemテーブルを追加。先のcategoryテーブルとの関係は「多対1」となるので、モデルにもその辺りを設定しておく必要がある。この辺は&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CakePHP&quot;&gt;CakePHP&lt;/a&gt;と同じくHABTM（hasOne, hasMany, belongsTo, hasAndBelongsToMany）なのでそんなに悩まなくて済む・・・かな・・・？&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synPreProc&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Item&lt;/span&gt; &amp;lt; &lt;span class=&quot;synType&quot;&gt;ActiveRecord&lt;/span&gt;::&lt;span class=&quot;synType&quot;&gt;Base&lt;/span&gt;
  &lt;span class=&quot;synComment&quot;&gt;# テーブルのリレーションシップ&lt;/span&gt;
  &lt;span class=&quot;synComment&quot;&gt;# この場合は 多対1（itemはcategoryに属する）&lt;/span&gt;
  belongs_to &lt;span class=&quot;synConstant&quot;&gt;:category&lt;/span&gt;
  
  &lt;span class=&quot;synComment&quot;&gt;# 関連テーブルのバリデーションも実行するよ&lt;/span&gt;
  validates_associated &lt;span class=&quot;synConstant&quot;&gt;:category&lt;/span&gt;

  &lt;span class=&quot;synComment&quot;&gt;# 入力範囲チェック&lt;/span&gt;
  validates_inclusion_of &lt;span class=&quot;synConstant&quot;&gt;:priority&lt;/span&gt;,
                      &lt;span class=&quot;synConstant&quot;&gt;:in&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;..&lt;span class=&quot;synConstant&quot;&gt;5&lt;/span&gt;,
                      &lt;span class=&quot;synConstant&quot;&gt;:message&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;は 1〜5の間で指定して下さい&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;
  
  &lt;span class=&quot;synComment&quot;&gt;# 必須項目チェック&lt;/span&gt;
  validates_presence_of &lt;span class=&quot;synConstant&quot;&gt;:description&lt;/span&gt;

  &lt;span class=&quot;synComment&quot;&gt;# 最大文字数チェック&lt;/span&gt;
  validates_length_of &lt;span class=&quot;synConstant&quot;&gt;:description&lt;/span&gt;,
                    &lt;span class=&quot;synConstant&quot;&gt;:maximum&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synConstant&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;end&lt;/span&gt;
&lt;/pre&gt;</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120343/1503994580" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>scaffoldで覚えておくと良いこと</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p11"/>
        <id>hatenablog://entry/8599973812293120330</id>
        <published>2010-08-11T00:00:07+09:00</published>
        <updated>2010-08-10T15:00:07+09:00</updated>        <summary type="html">script/generate scaffold item done:boolean priority:integer description:string due_date:date category_id:integer note_id:integer private:boolean exists app/models/ exists app/controllers/ exists app/helpers/ create app/views/items exists app/views/layouts/ exists test/functional/ exists test/unit/ e…</summary>
        <content type="html">&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;script/generate scaffold item done&lt;span class=&quot;synConstant&quot;&gt;:boolean&lt;/span&gt; priority&lt;span class=&quot;synConstant&quot;&gt;:integer&lt;/span&gt; description&lt;span class=&quot;synConstant&quot;&gt;:string&lt;/span&gt; due_date&lt;span class=&quot;synConstant&quot;&gt;:date&lt;/span&gt; category_id&lt;span class=&quot;synConstant&quot;&gt;:integer&lt;/span&gt; note_id&lt;span class=&quot;synConstant&quot;&gt;:integer&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;:boolean&lt;/span&gt;
      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/items
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
      exists  test/unit/helpers/
      exists  &lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/
      create  app/views/items/index.html.erb
      create  app/views/items/show.html.erb
      create  app/views/items/new.html.erb
      create  app/views/items/edit.html.erb
      create  app/views/layouts/items.html.erb
overwrite &lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/scaffold.css? (enter &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; help) [&lt;span class=&quot;synType&quot;&gt;Ynaqdh&lt;/span&gt;] h
&lt;span class=&quot;synType&quot;&gt;Y&lt;/span&gt; - yes, overwrite
n - no, &lt;span class=&quot;synStatement&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;not&lt;/span&gt; overwrite
a - all, overwrite this &lt;span class=&quot;synStatement&quot;&gt;and&lt;/span&gt; all others
q - quit, &lt;span class=&quot;synStatement&quot;&gt;abort&lt;/span&gt;
d - diff, show the differences between the old &lt;span class=&quot;synStatement&quot;&gt;and&lt;/span&gt; the new
h - help, show this help
overwrite &lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/scaffold.css? (enter &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; help) [&lt;span class=&quot;synType&quot;&gt;Ynaqdh&lt;/span&gt;] d &lt;span class=&quot;synComment&quot;&gt;# DIFFを指定&lt;/span&gt;
--- /home/xxxx/&lt;span class=&quot;synType&quot;&gt;Aptana&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;RadRails&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Workspace&lt;/span&gt;/&lt;span class=&quot;synType&quot;&gt;ToDo&lt;/span&gt;/&lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/scaffold.css	&lt;span class=&quot;synConstant&quot;&gt;2010&lt;/span&gt;-08-&lt;span class=&quot;synConstant&quot;&gt;06&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;16&lt;/span&gt;:&lt;span class=&quot;synConstant&quot;&gt;59&lt;/span&gt;:&lt;span class=&quot;synConstant&quot;&gt;57.000000000&lt;/span&gt; +0900
+++ /home/xxxx/&lt;span class=&quot;synType&quot;&gt;Aptana&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;RadRails&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Workspace&lt;/span&gt;/&lt;span class=&quot;synType&quot;&gt;ToDo&lt;/span&gt;/&lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/scaffold.css20100806-&lt;span class=&quot;synConstant&quot;&gt;28097&lt;/span&gt;-1f2w9ro-&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;	&lt;span class=&quot;synConstant&quot;&gt;2010&lt;/span&gt;-08-&lt;span class=&quot;synConstant&quot;&gt;06&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;17&lt;/span&gt;:&lt;span class=&quot;synConstant&quot;&gt;18&lt;/span&gt;:&lt;span class=&quot;synConstant&quot;&gt;31.000000000&lt;/span&gt; +0900
@@ &lt;span class=&quot;synConstant&quot;&gt;-12&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;14&lt;/span&gt; +&lt;span class=&quot;synConstant&quot;&gt;12&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;9&lt;/span&gt; @@
   font-&lt;span class=&quot;synConstant&quot;&gt;size&lt;/span&gt;: 11px;
 }
 
-/*
 a { &lt;span class=&quot;synConstant&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synComment&quot;&gt;#000; }&lt;/span&gt;
 a&lt;span class=&quot;synConstant&quot;&gt;:visited&lt;/span&gt; { &lt;span class=&quot;synConstant&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synComment&quot;&gt;#666; }&lt;/span&gt;
 a&lt;span class=&quot;synConstant&quot;&gt;:hover&lt;/span&gt; { &lt;span class=&quot;synConstant&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synComment&quot;&gt;#fff; background-color:#000; }&lt;/span&gt;
-*/
-a { &lt;span class=&quot;synConstant&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synComment&quot;&gt;#284907; }&lt;/span&gt;
-a&lt;span class=&quot;synConstant&quot;&gt;:visited&lt;/span&gt; { &lt;span class=&quot;synConstant&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synComment&quot;&gt;#5c832f; }&lt;/span&gt;
-a&lt;span class=&quot;synConstant&quot;&gt;:hover&lt;/span&gt; { &lt;span class=&quot;synConstant&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synComment&quot;&gt;#fff; background-color:#000; }&lt;/span&gt;
 
 .fieldWithErrors {
   &lt;span class=&quot;synConstant&quot;&gt;padding&lt;/span&gt;: 2px;
@@ &lt;span class=&quot;synConstant&quot;&gt;-27&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;11&lt;/span&gt; +&lt;span class=&quot;synConstant&quot;&gt;22&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;6&lt;/span&gt; @@
   &lt;span class=&quot;synConstant&quot;&gt;display&lt;/span&gt;: table;
 }
 
-.notice {
-  background-&lt;span class=&quot;synConstant&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synComment&quot;&gt;#5C832F;&lt;/span&gt;
-  &lt;span class=&quot;synConstant&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synComment&quot;&gt;#fff;&lt;/span&gt;
-}
-
 &lt;span class=&quot;synComment&quot;&gt;#errorExplanation {&lt;/span&gt;
   &lt;span class=&quot;synConstant&quot;&gt;width&lt;/span&gt;: 400px;
   &lt;span class=&quot;synConstant&quot;&gt;border&lt;/span&gt;: 2px solid red;
retrying
overwrite &lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/scaffold.css? (enter &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; help) [&lt;span class=&quot;synType&quot;&gt;Ynaqdh&lt;/span&gt;] y
       force  &lt;span class=&quot;synStatement&quot;&gt;public&lt;/span&gt;/stylesheets/scaffold.css
      create  app/controllers/items_controller.rb
      create  test/functional/items_controller_test.rb
      create  app/helpers/items_helper.rb
      create  test/unit/helpers/items_helper_test.rb
       route  map.resources &lt;span class=&quot;synConstant&quot;&gt;:items&lt;/span&gt;
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/item.rb
      create    test/unit/item_test.rb
      create    test/fixtures/items.yml
      exists    db/migrate
      create    db/migrate/20100806081840_create_items.rb
&lt;/pre&gt;&lt;p&gt;public/scaffold.&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/css&quot;&gt;css&lt;/a&gt; をいじっていた場合、scaffoldで新規モデル追加しようとすると上書き確認のメッセージが出る。overwriteの確認でdを選択すると実行した場合の変更内容がdiffで表示されるので、取っておくと良いかも。nを選択すれば上書きしないで処理自体は続行されるので、修正点が大きくなっている場合はその方が安全。&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="rails" label="rails" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120330/1503994577" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>コントローラで覚えておくと良いこと</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p12"/>
        <id>hatenablog://entry/8599973812293120314</id>
        <published>2010-08-11T00:00:06+09:00</published>
        <updated>2010-08-10T15:00:06+09:00</updated>        <summary type="html">Model.find(:all) と Model.all は同じこと。 なので、 Model.find(:all, :order =&gt; :category) は Model.all(:order =&gt; :category) と書いても動作する。 CakePHPでもfindとfindAll、saveとsaveAllとかあったっけ。</summary>
        <content type="html">&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synType&quot;&gt;Model&lt;/span&gt;.find(&lt;span class=&quot;synConstant&quot;&gt;:all&lt;/span&gt;)
&lt;/pre&gt;&lt;p&gt;と&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synType&quot;&gt;Model&lt;/span&gt;.all
&lt;/pre&gt;&lt;p&gt;は同じこと。&lt;br /&gt;
なので、&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synType&quot;&gt;Model&lt;/span&gt;.find(&lt;span class=&quot;synConstant&quot;&gt;:all&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:order&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synConstant&quot;&gt;:category&lt;/span&gt;) 
&lt;/pre&gt;&lt;p&gt;は&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synType&quot;&gt;Model&lt;/span&gt;.all(&lt;span class=&quot;synConstant&quot;&gt;:order&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synConstant&quot;&gt;:category&lt;/span&gt;)
&lt;/pre&gt;&lt;p&gt;と書いても動作する。&lt;br /&gt;
&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CakePHP&quot;&gt;CakePHP&lt;/a&gt;でもfindとfindAll、saveとsaveAllとかあったっけ。&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120314/1503994575" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>ビューで覚えておくと良いこと</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p13"/>
        <id>hatenablog://entry/8599973812293120307</id>
        <published>2010-08-11T00:00:05+09:00</published>
        <updated>2010-08-10T15:00:05+09:00</updated>        <summary type="html">&lt;%= h category.category %&gt; hをつけると自動的に内容をHTMLエスケープしてから出力してくれる。 &lt;%= link_to &quot;Destroy&quot;, category, :confirm =&gt; &quot;Are you sure?&quot;, :method =&gt; :delete %&gt; link_toに:confirmをつけると、選択リンクの処理を実行する前に確認メッセージを表示してくれる。削除処理の前などにとても有効。</summary>
        <content type="html">&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&amp;lt;%= h category.category %&amp;gt;
&lt;/pre&gt;&lt;p&gt;hをつけると自動的に内容をHTML&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9&quot;&gt;エス&lt;/a&gt;ケープしてから出力してくれる。&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&amp;lt;%= link_to &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;Destroy&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, category, &lt;span class=&quot;synConstant&quot;&gt;:confirm&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;Are you sure?&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:method&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synConstant&quot;&gt;:delete&lt;/span&gt; %&amp;gt;
&lt;/pre&gt;&lt;p&gt;link_toに:confirmをつけると、選択リンクの処理を実行する前に確認メッセージを表示してくれる。削除処理の前などにとても有効。&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120307/1503994573" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>ヘッダ出力</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p14"/>
        <id>hatenablog://entry/8599973812293120300</id>
        <published>2010-08-11T00:00:04+09:00</published>
        <updated>2010-08-10T15:00:04+09:00</updated>        <summary type="html">&lt;% @heading = &quot;データ一覧&quot; %&gt; とするだけで、&lt;title&gt;タグと&lt;h1&gt;タグに指定した文字列を出力してくれる。</summary>
        <content type="html">&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&amp;lt;% &lt;span class=&quot;synIdentifier&quot;&gt;@heading&lt;/span&gt; = &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;データ一覧&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt; %&amp;gt;
&lt;/pre&gt;&lt;p&gt;とするだけで、&amp;lt;title&amp;gt;タグと&amp;lt;h1&amp;gt;タグに指定した文字列を出力してくれる。&lt;/p&gt;
</content>        
        <category term="ruby" label="ruby" />
        
        <category term="rails" label="rails" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120300/1503994571" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>処理完了メッセージをビューに投げる</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p15"/>
        <id>hatenablog://entry/8599973812293120292</id>
        <published>2010-08-11T00:00:03+09:00</published>
        <updated>2010-08-10T15:00:03+09:00</updated>        <summary type="html">layouts/application.html.erb &lt;% if flash[:notice] %&gt; &lt;p class=&quot;notice&quot;&gt;&lt;%=h flash[:notice] %&gt;&lt;/p&gt; &lt;% end %&gt; controllers/xxxxxx.rb # リダイレクト先で表示したいメッセージをセット flash[:notice] = &quot;処理が完了しました。&quot; # リダイレクト先を指定 format.html { redirect_to :controller =&gt; &quot;xxxxxx&quot;, :action =&gt; &quot;index&quot; } こんな感じにすればおk。 application.html.…</summary>
        <content type="html">&lt;p&gt;layouts/application.html.erb&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&amp;lt;% &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; flash[&lt;span class=&quot;synConstant&quot;&gt;:notice&lt;/span&gt;] %&amp;gt;
&amp;lt;p &lt;span class=&quot;synPreProc&quot;&gt;class&lt;/span&gt;=&amp;quot;notice&amp;quot;&amp;gt;&amp;lt;%=h flash[&lt;span class=&quot;synConstant&quot;&gt;:notice&lt;/span&gt;] %&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;% &lt;span class=&quot;synPreProc&quot;&gt;end&lt;/span&gt; %&amp;gt;
&lt;/pre&gt;&lt;p&gt;controllers/xxxxxx.rb&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;  &lt;span class=&quot;synComment&quot;&gt;# リダイレクト先で表示したいメッセージをセット&lt;/span&gt;
  flash[&lt;span class=&quot;synConstant&quot;&gt;:notice&lt;/span&gt;] = &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;処理が完了しました。&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;synComment&quot;&gt;# リダイレクト先を指定&lt;/span&gt;
  format.html { redirect_to &lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;xxxxxx&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt; }
&lt;/pre&gt;&lt;p&gt;こんな感じにすればおk。&lt;br /&gt;
application.html.erbにしたのはメッセージ出力部分を汎用化する為なので、特定ページに出力する場合はもちろんそれぞれのビューに記述すればいい。&lt;/p&gt;&lt;p&gt;ちなみに&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&amp;lt;% &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; flash[&lt;span class=&quot;synConstant&quot;&gt;:error&lt;/span&gt;] %&amp;gt;
&amp;lt;p &lt;span class=&quot;synPreProc&quot;&gt;class&lt;/span&gt;=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;%=h flash[&lt;span class=&quot;synConstant&quot;&gt;:error&lt;/span&gt;] %&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;% elsif flash[&lt;span class=&quot;synConstant&quot;&gt;:caution&lt;/span&gt;] %&amp;gt;
&amp;lt;p &lt;span class=&quot;synPreProc&quot;&gt;class&lt;/span&gt;=&amp;quot;caution&amp;quot;&amp;gt;&amp;lt;%=h flash[&lt;span class=&quot;synConstant&quot;&gt;:caution&lt;/span&gt;] %&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;% elsif flash[&lt;span class=&quot;synConstant&quot;&gt;:notice&lt;/span&gt;] %&amp;gt;
&amp;lt;p &lt;span class=&quot;synPreProc&quot;&gt;class&lt;/span&gt;=&amp;quot;notice&amp;quot;&amp;gt;&amp;lt;%=h flash[&lt;span class=&quot;synConstant&quot;&gt;:notice&lt;/span&gt;] %&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;% &lt;span class=&quot;synPreProc&quot;&gt;end&lt;/span&gt; %&amp;gt;
&lt;/pre&gt;&lt;p&gt;という感じで書けば、当たり前だけど&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/flash&quot;&gt;flash&lt;/a&gt;[:error]／&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/flash&quot;&gt;flash&lt;/a&gt;[:caution]／&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/flash&quot;&gt;flash&lt;/a&gt;[:notice]のいずれかが出力される。&lt;br /&gt;
&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/CSS&quot;&gt;CSS&lt;/a&gt;で&lt;/p&gt;
&lt;pre class=&quot;code lang-css&quot; data-lang=&quot;css&quot; data-unlink&gt;&lt;span class=&quot;synIdentifier&quot;&gt;.notice&lt;/span&gt;, &lt;span class=&quot;synIdentifier&quot;&gt;.caution&lt;/span&gt;, &lt;span class=&quot;synIdentifier&quot;&gt;.error&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;synType&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;#fff&lt;/span&gt;;
  &lt;span class=&quot;synType&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;10px&lt;/span&gt;;
  &lt;span class=&quot;synType&quot;&gt;margin-bottom&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;10px&lt;/span&gt;;
&lt;span class=&quot;synIdentifier&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;/* あお */&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;.notice&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;synType&quot;&gt;background-color&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;#4682b4&lt;/span&gt;;
&lt;span class=&quot;synIdentifier&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;/* きいろ */&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;.caution&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;synType&quot;&gt;background-color&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;#ef9500&lt;/span&gt;;
&lt;span class=&quot;synIdentifier&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;/* あか */&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;.error&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;synType&quot;&gt;background-color&lt;/span&gt;: &lt;span class=&quot;synConstant&quot;&gt;#B43530&lt;/span&gt;;
&lt;span class=&quot;synIdentifier&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;としておけば、出力レベルによって表示色切り替えなんかできるので分かりやすくなるかな。&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120292/1503994568" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>改行コードを表示に反映させる</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p16"/>
        <id>hatenablog://entry/8599973812293120275</id>
        <published>2010-08-11T00:00:02+09:00</published>
        <updated>2010-08-10T15:00:02+09:00</updated>        <summary type="html">app/helpers/application_helper.rb にこんな感じに記述。 module ApplicationHelper # HTMLで書けない文字の実体参照と改行コードのHTMLへの置換を行う def hbr(target) target = html_escape(target) target.gsub(/\r\n|\r|\n/, &quot;&lt;br /&gt;&quot;) end end 使用時は &lt;%=h @note.more_notes %&gt; という感じになっているところを &lt;%=hbr @note.more_notes %&gt; とすればオッケ。Railsには simple_format と…</summary>
        <content type="html">&lt;p&gt;app/helpers/application_helper.rb にこんな感じに記述。&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synPreProc&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;ApplicationHelper&lt;/span&gt;
  &lt;span class=&quot;synComment&quot;&gt;# HTMLで書けない文字の実体参照と改行コードのHTMLへの置換を行う&lt;/span&gt;
  &lt;span class=&quot;synPreProc&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;hbr&lt;/span&gt;(target)
  target = html_escape(target)
  target.gsub(&lt;span class=&quot;synSpecial&quot;&gt;/\r\n|\r|\n/&lt;/span&gt;, &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;)
  &lt;span class=&quot;synPreProc&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;end&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;使用時は&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;  &amp;lt;%=h &lt;span class=&quot;synIdentifier&quot;&gt;@note&lt;/span&gt;.more_notes %&amp;gt;
&lt;/pre&gt;&lt;p&gt;という感じになっているところを&lt;/p&gt;
&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;  &amp;lt;%=hbr &lt;span class=&quot;synIdentifier&quot;&gt;@note&lt;/span&gt;.more_notes %&amp;gt;
&lt;/pre&gt;&lt;p&gt;とすればオッケ。&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Rails&quot;&gt;Rails&lt;/a&gt;には simple_format という関数が元々あるんだけど、改行を2つ続けると&lt;p&gt;に自動変換する。&lt;br /&gt;
違いとしてはこんな感じ。&lt;/p&gt;
&lt;pre class=&quot;code lang-html&quot; data-lang=&quot;html&quot; data-unlink&gt;&lt;span class=&quot;synComment&quot;&gt;&amp;lt;!--&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;元入力内容↓&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;aaaaa&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;aaaa&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;aa&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;a&lt;/span&gt;


&lt;span class=&quot;synComment&quot;&gt;aaaaa&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;aaaa&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;aa&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;a &lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;--&amp;gt;&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&amp;lt;!-- simple_format ここから --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;aaaaa
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aaaa
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aa
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;a&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;

&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;aaaaa
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aaaa
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aa
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;a&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&amp;lt;!-- simple_format ここまで --&amp;gt;&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&amp;lt;!-- hbr ここから --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;
aaaaa&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aaaa&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aa&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;a&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aaaaa&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aaaa&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;aa&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; /&amp;gt;&lt;/span&gt;a
&lt;span class=&quot;synIdentifier&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&amp;lt;!-- hbr ここまで --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;文章として考えれば改行2つで段落扱いにするのが正しいんだけど、そうすると2つ以上改行した場合無視される。&lt;br /&gt;
ここんとこは使い方によるのかなという感じ。&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;参考（というかそのまんま）：&lt;br /&gt;
改行ありで入力した値をきちんと表示させる　|　Katawara.*&lt;br /&gt;
&lt;a href=&quot;http://www.katawara.com/2008/06/hbr/&quot;&gt;http://www.katawara.com/2008/06/hbr/&lt;/a&gt;&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120275/1503994565" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>コントローラとビューでセッションを使ってやりとり</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p17"/>
        <id>hatenablog://entry/8599973812293120264</id>
        <published>2010-08-11T00:00:01+09:00</published>
        <updated>2010-08-10T15:00:01+09:00</updated>        <summary type="html">リンクを作成する。 &lt;%= link_to t(&quot;link.New_note&quot;), {:controller =&gt; &quot;notes&quot;, :action =&gt; &quot;new&quot;, :id =&gt;@item.id} %&gt; リンクをクリックするとコントローラにidが渡されるので、それをセッションに格納する。 # 渡されたIDを格納する session[:item_id] = params[:id] 格納したitem_idを次のビューで呼び出してみる &lt;%= submit_tag t(&quot;button.Cancel&quot;), {:type =&gt; &quot;button&quot;, :onClick=&gt;&quot;parent.location…</summary>
        <content type="html">
&lt;ul&gt;
&lt;li&gt;リンクを作成する。&lt;/li&gt;
&lt;/ul&gt;&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&amp;lt;%= link_to t(&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;link.New_note&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;), {&lt;span class=&quot;synConstant&quot;&gt;:controller&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;notes&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:action&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:id&lt;/span&gt; =&amp;gt;&lt;span class=&quot;synIdentifier&quot;&gt;@item&lt;/span&gt;.id} %&amp;gt;
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;リンクをクリックするとコントローラにidが渡されるので、それをセッションに格納する。&lt;/li&gt;
&lt;/ul&gt;&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&lt;span class=&quot;synComment&quot;&gt;# 渡されたIDを格納する&lt;/span&gt;
session[&lt;span class=&quot;synConstant&quot;&gt;:item_id&lt;/span&gt;] = params[&lt;span class=&quot;synConstant&quot;&gt;:id&lt;/span&gt;]
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;格納したitem_idを次のビューで呼び出してみる&lt;/li&gt;
&lt;/ul&gt;&lt;pre class=&quot;code lang-ruby&quot; data-lang=&quot;ruby&quot; data-unlink&gt;&amp;lt;%= submit_tag t(&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;button.Cancel&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;), {&lt;span class=&quot;synConstant&quot;&gt;:type&lt;/span&gt; =&amp;gt; &lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;:onClick&lt;/span&gt;=&amp;gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;parent.location=&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt; + url_for(:controller =&amp;gt;&lt;/span&gt;
&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;items&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;, :action =&amp;gt; &lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;edit&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;, :id =&amp;gt; session[:item_id] ) + &lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt; } %&amp;gt;
&lt;/pre&gt;&lt;p&gt;「キャンセルボタンを押したら呼び出し元のフォームへ戻りたい」という用途などに多用するかな。&lt;/p&gt;
</content>        
        <category term="rails" label="rails" />
        
        <category term="ruby" label="ruby" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120264/1503994562" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>Subclipseでハマる</title>
        <link href="https://composed.hateblo.jp/entry/20100811/p18"/>
        <id>hatenablog://entry/8599973812293120257</id>
        <published>2010-08-11T00:00:00+09:00</published>
        <updated>2010-08-10T15:00:00+09:00</updated>        <summary type="html">問題：Subclipseを入れてもSVNが使えない。 具体的には SVNリポジトリに追加 ツリーを開こうとクリック 「unable to load default svn client」と怒られる ウィンドウ＞設定＞チーム＞SVN＞SVNインターフェースが「javaHL not avaiable」 libsvn-javaを入れたりしてもダメ Ubuntu＋Aptana(Eclipse)で同じような現象出てる人は結構いるみたい。国外ばっかだけど・・・ http://islandlinux.org/howto/ubuntu-eclipse-34-ganymede-and-subclipse-144…</summary>
        <content type="html">&lt;p&gt;問題：&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Subclipse&quot;&gt;Subclipse&lt;/a&gt;を入れても&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/SVN&quot;&gt;SVN&lt;/a&gt;が使えない。&lt;br /&gt;
具体的には&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/SVN&quot;&gt;SVN&lt;/a&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%EA%A5%DD%A5%B8%A5%C8%A5%EA&quot;&gt;リポジトリ&lt;/a&gt;に追加&lt;/li&gt;
&lt;li&gt;ツリーを開こうとクリック&lt;/li&gt;
&lt;li&gt;「unable to load default &lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/svn&quot;&gt;svn&lt;/a&gt; client」と怒られる&lt;/li&gt;
&lt;li&gt;ウィンドウ＞設定＞チーム＞&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/SVN&quot;&gt;SVN&lt;/a&gt;＞&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/SVN&quot;&gt;SVN&lt;/a&gt;インターフェースが「javaHL not avaiable」&lt;/li&gt;
&lt;li&gt;libsvn-&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/java&quot;&gt;java&lt;/a&gt;を入れたりしてもダメ&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Ubuntu&quot;&gt;Ubuntu&lt;/a&gt;＋&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Aptana&quot;&gt;Aptana&lt;/a&gt;(&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Eclipse&quot;&gt;Eclipse&lt;/a&gt;)で同じような現象出てる人は結構いるみたい。国外ばっかだけど・・・&lt;br /&gt;
&lt;a href=&quot;http://islandlinux.org/howto/ubuntu-eclipse-34-ganymede-and-subclipse-144-issue&quot;&gt;http://islandlinux.org/howto/ubuntu-eclipse-34-ganymede-and-subclipse-144-issue&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;解決方法：&lt;br /&gt;
色々調べたけどよく分からないので&lt;a href=&quot;http://svnkit.com/download.php&quot;&gt;SVNkit&lt;/a&gt;を入れてみたら解決。&lt;/p&gt;
</content>        
        <category term="aptana" label="aptana" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120257/1503994561" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>CakePHP+PostgreSQLのdatabase.php</title>
        <link href="https://composed.hateblo.jp/entry/20100225/p1"/>
        <id>hatenablog://entry/8599973812293120449</id>
        <published>2010-02-25T00:00:00+09:00</published>
        <updated>2010-02-24T15:00:00+09:00</updated>        <summary type="html">&lt;?php var $default = array(&quot;driver&quot; =&gt; &quot;postgres&quot;, &quot;connect&quot; =&gt; &quot;pg_connect&quot;, &quot;host&quot; =&gt; &quot;localhost&quot;, &quot;port&quot; =&gt; &quot;5432&quot;, &quot;login&quot; =&gt; &quot;(ユーザ名)&quot;, &quot;password&quot; =&gt; &quot;(パスワード)&quot;, &quot;database&quot; =&gt; &quot;(データベース名)&quot;, &quot;prefix&quot; =&gt; &quot;&quot;); ?&gt; &quot;driver&quot; =&gt; &quot;postgresql&quot; として「なんで動かんのじゃー」とやっていた。なんてこった。参考：PostgreSQLを使用する設定 - フォーラム - Cak…</summary>
        <content type="html">&lt;pre class=&quot;code lang-php&quot; data-lang=&quot;php&quot; data-unlink&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;(&lt;/span&gt;&amp;quot;&lt;span class=&quot;synConstant&quot;&gt;driver&lt;/span&gt;&amp;quot; &lt;span class=&quot;synStatement&quot;&gt;=&amp;gt;&lt;/span&gt; &amp;quot;&lt;span class=&quot;synConstant&quot;&gt;postgres&lt;/span&gt;&amp;quot;,
&amp;quot;&lt;span class=&quot;synConstant&quot;&gt;connect&lt;/span&gt;&amp;quot; &lt;span class=&quot;synStatement&quot;&gt;=&amp;gt;&lt;/span&gt; &amp;quot;&lt;span class=&quot;synConstant&quot;&gt;pg_connect&lt;/span&gt;&amp;quot;,
&amp;quot;&lt;span class=&quot;synConstant&quot;&gt;host&lt;/span&gt;&amp;quot; &lt;span class=&quot;synStatement&quot;&gt;=&amp;gt;&lt;/span&gt; &amp;quot;&lt;span class=&quot;synConstant&quot;&gt;localhost&lt;/span&gt;&amp;quot;,
&amp;quot;&lt;span class=&quot;synConstant&quot;&gt;port&lt;/span&gt;&amp;quot; &lt;span class=&quot;synStatement&quot;&gt;=&amp;gt;&lt;/span&gt; &amp;quot;&lt;span class=&quot;synConstant&quot;&gt;5432&lt;/span&gt;&amp;quot;,
&amp;quot;&lt;span class=&quot;synConstant&quot;&gt;login&lt;/span&gt;&amp;quot; &lt;span class=&quot;synStatement&quot;&gt;=&amp;gt;&lt;/span&gt; &amp;quot;&lt;span class=&quot;synConstant&quot;&gt;(ユーザ名)&lt;/span&gt;&amp;quot;,
&amp;quot;&lt;span class=&quot;synConstant&quot;&gt;password&lt;/span&gt;&amp;quot; &lt;span class=&quot;synStatement&quot;&gt;=&amp;gt;&lt;/span&gt; &amp;quot;&lt;span class=&quot;synConstant&quot;&gt;(パスワード)&lt;/span&gt;&amp;quot;,
&amp;quot;&lt;span class=&quot;synConstant&quot;&gt;database&lt;/span&gt;&amp;quot; &lt;span class=&quot;synStatement&quot;&gt;=&amp;gt;&lt;/span&gt; &amp;quot;&lt;span class=&quot;synConstant&quot;&gt;(データベース名)&lt;/span&gt;&amp;quot;,
&amp;quot;&lt;span class=&quot;synConstant&quot;&gt;prefix&lt;/span&gt;&amp;quot; &lt;span class=&quot;synStatement&quot;&gt;=&amp;gt;&lt;/span&gt; &amp;quot;&amp;quot;&lt;span class=&quot;synSpecial&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;synSpecial&quot;&gt;?&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;&quot;driver&quot; =&gt; &quot;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/postgresql&quot;&gt;postgresql&lt;/a&gt;&quot; として「なんで動かんのじゃー」とやっていた。なんてこった。&lt;/p&gt;&lt;p&gt;参考：&lt;a href=&quot;http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&amp;topic_id=568&amp;forum=2&quot;&gt;PostgreSQL&amp;#x3092;&amp;#x4F7F;&amp;#x7528;&amp;#x3059;&amp;#x308B;&amp;#x8A2D;&amp;#x5B9A; - &amp;#x30D5;&amp;#x30A9;&amp;#x30FC;&amp;#x30E9;&amp;#x30E0; - CakePHP Users in Japan&lt;/a&gt;&lt;/p&gt;
</content>        
        <category term="cakephp" label="cakephp" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120449/1503994599" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>ASのオブジェクトコピーの話</title>
        <link href="https://composed.hateblo.jp/entry/20100120/p1"/>
        <id>hatenablog://entry/8599973812293120460</id>
        <published>2010-01-20T00:00:00+09:00</published>
        <updated>2010-01-19T15:00:00+09:00</updated>        <summary type="html">ActionScriptで a = b とした場合はシャローコピーとなり、bがaを参照する形になる。 参照ではなく完全にコピー（ディープコピー）したい場合は、 import flash.utils.ByteArray; function clone(source:Object):* { var myBA:ByteArray = new ByteArray(); myBA.writeObject(source); myBA.position = 0; return(myBA.readObject()); } のような形で行う必要がある。 参考 : ActionScript3における deep c…</summary>
        <content type="html">&lt;p&gt;&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/ActionScript&quot;&gt;ActionScript&lt;/a&gt;で a = b とした場合はシャローコピーとなり、bがaを参照する形になる。&lt;br /&gt;
参照ではなく完全にコピー（ディープコピー）したい場合は、&lt;/p&gt;
&lt;pre class=&quot;code lang-actionscript&quot; data-lang=&quot;actionscript&quot; data-unlink&gt;&lt;span class=&quot;synIdentifier&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;flash&lt;/span&gt;.&lt;span class=&quot;synConstant&quot;&gt;utils&lt;/span&gt;.&lt;span class=&quot;synConstant&quot;&gt;ByteArray&lt;/span&gt;;

&lt;span class=&quot;synIdentifier&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;clone&lt;/span&gt;(source:&lt;span class=&quot;synStatement&quot;&gt;Object&lt;/span&gt;):* {
     &lt;span class=&quot;synStatement&quot;&gt;var&lt;/span&gt; myBA:&lt;span class=&quot;synConstant&quot;&gt;ByteArray&lt;/span&gt; = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;ByteArray&lt;/span&gt;();
     myBA.&lt;span class=&quot;synIdentifier&quot;&gt;writeObject&lt;/span&gt;(source);
     myBA.&lt;span class=&quot;synType&quot;&gt;position&lt;/span&gt; = &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;
     &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt;(myBA.readObject());
}
&lt;/pre&gt;&lt;p&gt;のような形で行う必要がある。&lt;br /&gt;
参考 : &lt;a href=&quot;http://d.hatena.ne.jp/secondlife/20071127/1196123078&quot;&gt;ActionScript3&amp;#x306B;&amp;#x304A;&amp;#x3051;&amp;#x308B; deep copy - &amp;#x5DDD;o&amp;#x30FB;-&amp;#x30FB;&amp;#xFF09;&amp;#xFF1C;2nd life&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;code lang-actionscript&quot; data-lang=&quot;actionscript&quot; data-unlink&gt;&lt;span class=&quot;synIdentifier&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;var&lt;/span&gt; grp: Graph;

&lt;span class=&quot;synIdentifier&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;function&lt;/span&gt; xxx(): &lt;span class=&quot;synConstant&quot;&gt;void&lt;/span&gt; {
     nwGraph.&lt;span class=&quot;synType&quot;&gt;dataProvider&lt;/span&gt; = &lt;span class=&quot;synType&quot;&gt;x&lt;/span&gt;;
     &lt;span class=&quot;synStatement&quot;&gt;this&lt;/span&gt;.grp = &lt;span class=&quot;synType&quot;&gt;x&lt;/span&gt;.&lt;span class=&quot;synType&quot;&gt;dataProvider&lt;/span&gt; as Graph;
}
&lt;/pre&gt;&lt;p&gt;とかしていたらnwGraph.dataProviderのノード削除時に&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/grp&quot;&gt;grp&lt;/a&gt;のノードも削除されてしまう（そりゃそうだ）。仕方ないので上記方法でディープコピーしようとしたけどうまくいかない。&lt;br /&gt;
あれこれ悩んだけど、結局&lt;/p&gt;
&lt;pre class=&quot;code lang-actionscript&quot; data-lang=&quot;actionscript&quot; data-unlink&gt;&lt;span class=&quot;synIdentifier&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;var&lt;/span&gt; grp: Graph;

&lt;span class=&quot;synIdentifier&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;function&lt;/span&gt; xxx(): &lt;span class=&quot;synConstant&quot;&gt;void&lt;/span&gt; {
     nwGraph.&lt;span class=&quot;synType&quot;&gt;dataProvider&lt;/span&gt; = &lt;span class=&quot;synType&quot;&gt;x&lt;/span&gt;;

     &lt;span class=&quot;synStatement&quot;&gt;var&lt;/span&gt; r: Roamer = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Roamer();
     r.&lt;span class=&quot;synType&quot;&gt;dataProvider&lt;/span&gt; = &lt;span class=&quot;synType&quot;&gt;x&lt;/span&gt;;
     &lt;span class=&quot;synStatement&quot;&gt;this&lt;/span&gt;.grp = r.&lt;span class=&quot;synType&quot;&gt;dataProvider&lt;/span&gt; as Graph;
}
&lt;/pre&gt;&lt;p&gt;でうまくいった。なんてこったい。&lt;/p&gt;
</content>        
        <category term="actionscript" label="actionscript" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120460/1503994601" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>Unable to bind to property &quot;prop&quot; on class &quot;XML&quot; (class is not an IEventDispatcher)</title>
        <link href="https://composed.hateblo.jp/entry/20100107/p1"/>
        <id>hatenablog://entry/8599973812293120485</id>
        <published>2010-01-07T00:00:01+09:00</published>
        <updated>2010-01-06T15:00:01+09:00</updated>        <summary type="html">最近Flexと格闘している。だいぶ勉強したけどまだまだエラーが意味不明でギギギ。 特に意味不明だったのが、表題の通りXMLの属性取得時に出るワーニング。 Unable to bind to property &quot;prop&quot; on class &quot;XML&quot; (class is not an IEventDispatcher)具体的には、Labelオブジェクトに{data.data.@prop}みたいな感じで指定すると描画される度に出てうざい。要はBindableにすればいいんだと思うんだけど、属性だしなあ・・・。 でも、ググってみたらちゃんと解決方法が見つかった。 Object doesn&quot;t di…</summary>
        <content type="html">&lt;p&gt;最近&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/Flex&quot;&gt;Flex&lt;/a&gt;と格闘している。だいぶ勉強したけどまだまだエラーが意味不明でギギギ。&lt;br /&gt;
特に意味不明だったのが、表題の通り&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/XML&quot;&gt;XML&lt;/a&gt;の属性取得時に出るワーニング。&lt;/p&gt;
&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;Unable to bind to property &amp;#34;prop&amp;#34; on class &amp;#34;XML&amp;#34; (class is not an IEventDispatcher)&lt;/pre&gt;&lt;p&gt;具体的には、Labelオブジェクトに{data.data.@prop}みたいな感じで指定すると描画される度に出てうざい。要はBindableにすればいいんだと思うんだけど、属性だしなあ・・・。&lt;br /&gt;
でも、ググってみたらちゃんと解決方法が見つかった。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;Object doesn&quot;t dispatch events. Although you have made the variable Bindable, the properties of the object referenced by the variable currentLink can not be bound.&lt;br /&gt;
Use ObjectProxy instead.&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/928081/flex-warning-unable-to-bind-to-property-foo-on-class-object-class-is-not-an&quot;&gt;Flex Warning: Unable to bind to property &amp;lsquo;foo&amp;rsquo; on class &amp;lsquo;Object&amp;rsquo; (class is not an IEventDispatcher) - Stack Overflow&lt;/a&gt;&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;なるほど！というかObjectProxyって初めて聞いた！&lt;br /&gt;
ということで、&lt;/p&gt;
&lt;pre class=&quot;code lang-actionscript&quot; data-lang=&quot;actionscript&quot; data-unlink&gt;[Bindable]
&lt;span class=&quot;synIdentifier&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;var&lt;/span&gt; proc: ObjectProxy;
：
：
proc = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; ObjectProxy(&lt;span class=&quot;synConstant&quot;&gt;data&lt;/span&gt;.&lt;span class=&quot;synConstant&quot;&gt;data&lt;/span&gt;);
：
：
&lt;span class=&quot;synConstant&quot;&gt;label&lt;/span&gt;.&lt;span class=&quot;synType&quot;&gt;text&lt;/span&gt; = proc.@&lt;span class=&quot;synType&quot;&gt;prop&lt;/span&gt;;
&lt;/pre&gt;&lt;p&gt;とすることでwarningを回避できた。勿論ラベルのtextプロパティに{proc.@prop}としてもオッケー。&lt;/p&gt;
</content>        
        <category term="flex" label="flex" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120485/1503994605" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>表示している文字列の幅を取得する</title>
        <link href="https://composed.hateblo.jp/entry/20100107/p2"/>
        <id>hatenablog://entry/8599973812293120475</id>
        <published>2010-01-07T00:00:00+09:00</published>
        <updated>2010-01-06T15:00:00+09:00</updated>        <summary type="html">「表示する文字列の幅に合わせて下のオブジェクトの幅を可変にしたい」という希望はまあまあよくあると思うんだけど、文字列の幅取得ってどうやるの？と行き詰った。 最初は lengthで文字数を取得 一文字の幅を適当に決めて、固定の幅×文字数 で指定する とかやってたんだけど、そうすると半角と全角で数が合わない。「半角を1／全角を2」とかしても当然誤差が出るので綺麗にできない。 ギギギギギとしてたんだけど、Text／Labelオブジェクトには「textWidth」といういいプロパティがあることを知った。 var lbl: Label = new Label(); lbl.visible = false…</summary>
        <content type="html">&lt;p&gt;「表示する文字列の幅に合わせて下のオブジェクトの幅を可変にしたい」という希望はまあまあよくあると思うんだけど、文字列の幅取得ってどうやるの？と行き詰った。&lt;br /&gt;
最初は&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;lengthで文字数を取得&lt;/li&gt;
&lt;li&gt;一文字の幅を適当に決めて、固定の幅×文字数 で指定する&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;とかやってたんだけど、そうすると半角と全角で数が合わない。「半角を1／全角を2」とかしても当然誤差が出るので綺麗にできない。&lt;br /&gt;
ギギギギギとしてたんだけど、Text／Labelオブジェクトには「textWidth」といういいプロパティがあることを知った。&lt;/p&gt;
&lt;pre class=&quot;code lang-actionscript&quot; data-lang=&quot;actionscript&quot; data-unlink&gt;&lt;span class=&quot;synStatement&quot;&gt;var&lt;/span&gt; lbl: &lt;span class=&quot;synConstant&quot;&gt;Label&lt;/span&gt; = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;Label&lt;/span&gt;();
lbl.&lt;span class=&quot;synStatement&quot;&gt;visible&lt;/span&gt; = &lt;span class=&quot;synConstant&quot;&gt;false&lt;/span&gt;;  &lt;span class=&quot;synComment&quot;&gt;//文字列の幅が欲しいだけなのでとりあえずvisibleしておく（どうせ後で消すけど）&lt;/span&gt;
lbl.&lt;span class=&quot;synType&quot;&gt;text&lt;/span&gt; = &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;あいうえおかきくけこ&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;synStatement&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;synIdentifier&quot;&gt;addChild&lt;/span&gt;(lbl);  &lt;span class=&quot;synComment&quot;&gt;//オブジェクトを追加&lt;/span&gt;
txt.&lt;span class=&quot;synIdentifier&quot;&gt;validateNow&lt;/span&gt;(); &lt;span class=&quot;synComment&quot;&gt;//★&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;var&lt;/span&gt; n: &lt;span class=&quot;synStatement&quot;&gt;Number&lt;/span&gt; = lbl.&lt;span class=&quot;synType&quot;&gt;textWidth&lt;/span&gt;;
&lt;span class=&quot;synStatement&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;synIdentifier&quot;&gt;removeChild&lt;/span&gt;(lbl);  &lt;span class=&quot;synComment&quot;&gt;//オブジェクトを削除&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;とすることで、無事正確な文字幅を取得することができた。&lt;br /&gt;
ここのミソは★の「validateNow()」。このメソッドを呼ばないと再計算されないので、textWidthを呼んでもNaNになる。注意。&lt;/p&gt;&lt;p&gt;ちなみにここではLabelオブジェクトを使用したけど、TextオブジェクトとLabelオブジェクトでは&lt;/p&gt;

&lt;dl&gt;
&lt;dt&gt;Textオブジェクト （ワードラップ有）&lt;/dt&gt;
&lt;dd&gt;ベースとなるコン&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%C8%A5%ED%A1%BC%A5%EB&quot;&gt;トロール&lt;/a&gt;（ApplicationとかVBoxとか）の幅を超えた文字幅は取得できず、最大幅はベースとなるコン&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%C8%A5%ED%A1%BC%A5%EB&quot;&gt;トロール&lt;/a&gt;の幅となる&lt;/dd&gt;
&lt;dt&gt;Labelオブジェクト （ワードラップ無）&lt;/dt&gt;
&lt;dd&gt;ベースとなるコン&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%C8%A5%ED%A1%BC%A5%EB&quot;&gt;トロール&lt;/a&gt;の幅に関係なく指定した文字列の幅を取得できる&lt;/dd&gt;
&lt;/dl&gt;&lt;p&gt;という違いがあった。ベースのコン&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%C8%A5%ED%A1%BC%A5%EB&quot;&gt;トロール&lt;/a&gt;が大きい場合はあまり気にならないけど、小さい場合は要注意。まあ当たり前っちゃ当たり前のことなんだけど、実際やってる最中は「？」となった。&lt;/p&gt;
</content>        
        <category term="flex" label="flex" />
        
        <category term="actionscript" label="actionscript" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120475/1503994603" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>メールマガジン用途で使うときの設定</title>
        <link href="https://composed.hateblo.jp/entry/20091214/p1"/>
        <id>hatenablog://entry/8599973812293120511</id>
        <published>2009-12-14T00:00:03+09:00</published>
        <updated>2009-12-13T15:00:03+09:00</updated>        <summary type="html">データベース連携している場合の話。 add/subscribeコマンドでメールアドレスを登録した際には、1アドレスに対して file = &quot;members&quot; file = &quot;actives&quot; の2行が必ず作成される。ドライバ（おもちゃのモデルをベースにして作成するファイル）でいじってればそれに限らないけど、とりあえず基本はそうなっている。 デフォルトの設定だと登録したメールアドレスは メールの受信 メールの投稿 の双方が可能。メーリングリストなのでまあ当然。 しかし、fmlをメールマガジン用途として使いたい場合は メールの受信 →させたい メールの投稿 →させたくない という設定にしたい。 こ…</summary>
        <content type="html">&lt;p&gt;データベース連携している場合の話。&lt;br /&gt;
add/subscribeコマンドでメールアドレスを登録した際には、1アドレスに対して&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;file = &quot;members&quot;&lt;/li&gt;
&lt;li&gt;file = &quot;actives&quot;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;の2行が必ず作成される。ドライバ（&lt;a href=&quot;http://www.fml.org/fml/Japanese/RDBMS/index.html&quot;&gt;&amp;#x304A;&amp;#x3082;&amp;#x3061;&amp;#x3083;&amp;#x306E;&amp;#x30E2;&amp;#x30C7;&amp;#x30EB;&lt;/a&gt;をベースにして作成するファイル）でいじってればそれに限らないけど、とりあえず基本はそうなっている。&lt;br /&gt;
デフォルトの設定だと登録したメールアドレスは&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;メールの受信&lt;/li&gt;
&lt;li&gt;メールの投稿&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;の双方が可能。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%E1%A1%BC%A5%EA%A5%F3%A5%B0%A5%EA%A5%B9%A5%C8&quot;&gt;メーリングリスト&lt;/a&gt;なのでまあ当然。&lt;br /&gt;
しかし、fmlを&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%E1%A1%BC%A5%EB%A5%DE%A5%AC%A5%B8%A5%F3&quot;&gt;メールマガジン&lt;/a&gt;用途として使いたい場合は&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;メールの受信 →させたい&lt;/li&gt;
&lt;li&gt;メールの投稿 →させたくない&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;という設定にしたい。&lt;br /&gt;
こんな場合は、mlの&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[file]=&quot;members&quot;のレコードに対して&lt;/li&gt;
&lt;li&gt;[option]に&quot;skip&quot;を設定&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;するだけでOK。投稿はスキップされるけれど、コマンドメールは受信してくれる。&lt;br /&gt;
普通はfmlのコマンドで「makefml skip メールアドレス」として[file]=&quot;actives&quot;の方にskipを設定し、「投稿は複数メールアドレスからしたいけれど、受信は特定のメールアドレスで行いたい」といった用途に使うもののよう。でも上のような設定でうまくいっている（ドライバの出力ログでもちゃんと弾いてくれている）ので、これで大丈夫みたい。&lt;br /&gt;
ドライバをいじって試行錯誤していたけど、ちゃんと簡単なところで直せるようになってたのね・・・&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;ちなみにドライバがどんな動きをしてるのか逐一チェックしたいときは、config.phの$debugを1にしておくと/var/spool/ml/(ML名)/logに全部吐いてくれるから分かりやすい。&lt;/p&gt;
</content>        
        <category term="fml" label="fml" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120511/1503994611" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>携帯電話に配信する為の設定</title>
        <link href="https://composed.hateblo.jp/entry/20091214/p2"/>
        <id>hatenablog://entry/8599973812293120503</id>
        <published>2009-12-14T00:00:02+09:00</published>
        <updated>2009-12-13T15:00:02+09:00</updated>        <summary type="html">/var/spool/ml/(ML名)/cf の一番下（LOCAL CONFIG）に以下を追加。 ## 携帯電話用設定 $HEADER_ADD_HOOK = q{ &amp;DELETE_FIELD(&quot;Received&quot;); &amp;DELETE_FIELD(&quot;X-Mail-Count&quot;); &amp;DELETE_FIELD(&quot;X-ML-Info&quot;); &amp;DELETE_FIELD(&quot;X-MLServer&quot;); &amp;DELETE_FIELD(&quot;List-Id&quot;); &amp;DELETE_FIELD(&quot;List-Software&quot;); &amp;DELETE_FIELD(&quot;List-Post&quot;); &amp;DELETE_FIELD(&quot;Li…</summary>
        <content type="html">&lt;p&gt;/var/spool/ml/(ML名)/cf の一番下（LOCAL CONFIG）に以下を追加。&lt;/p&gt;
&lt;pre class=&quot;code lang-perl&quot; data-lang=&quot;perl&quot; data-unlink&gt;&lt;span class=&quot;synComment&quot;&gt;## 携帯電話用設定&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;$HEADER_ADD_HOOK&lt;/span&gt; = &lt;span class=&quot;synConstant&quot;&gt;q{&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;Received&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;X-Mail-Count&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;X-ML-Info&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;X-MLServer&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;List-Id&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;List-Software&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;List-Post&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;List-Owner&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;List-Help&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;DELETE_FIELD(&amp;quot;List-Unsubscribe&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;}&lt;/span&gt;;

&lt;span class=&quot;synIdentifier&quot;&gt;$SMTP_OPEN_HOOK&lt;/span&gt; = &lt;span class=&quot;synConstant&quot;&gt;q{&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;$Envelope{&amp;quot;fh:from:&amp;quot;&lt;/span&gt;}&lt;span class=&quot;synConstant&quot;&gt; = $MAIL_LIST;&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;$Envelope{&amp;quot;fh:reply-to:&amp;quot;&lt;/span&gt;}&lt;span class=&quot;synConstant&quot;&gt; = $MAIL_LIST;&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;}&lt;/span&gt;;
&lt;/pre&gt;&lt;p&gt;これで&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;必要のないメールヘッダを配信時に削除&lt;/li&gt;
&lt;li&gt;From: / Reply-To: に&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%E1%A1%BC%A5%EA%A5%F3%A5%B0%A5%EA%A5%B9%A5%C8&quot;&gt;メーリングリスト&lt;/a&gt;のメールアドレスを設定&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;を配信時に行うようになる。&lt;br /&gt;
cfの変更が済んだら&lt;/p&gt;
&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;# makefml update-config ML名&lt;/pre&gt;&lt;p&gt;でconfig.phの再作成を忘れずに。&lt;/p&gt;
</content>        
        <category term="fml" label="fml" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120503/1503994609" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
    <entry>
        <title>本文下にいつもフッタを追加したい</title>
        <link href="https://composed.hateblo.jp/entry/20091214/p3"/>
        <id>hatenablog://entry/8599973812293120495</id>
        <published>2009-12-14T00:00:01+09:00</published>
        <updated>2009-12-13T15:00:01+09:00</updated>        <summary type="html">まずフッタ用のファイルを作成。文字コードはJISで。 -- メールマガジンの解除 : (MLのメールアドレス)?body=byeまあ中身はお好みで。 これを/var/spool/ml/(ML名)の下に配置。今回はファイル名を「footer」としました。 その後、例によって/var/spool/ml/(ML名)/cf の一番下（LOCAL CONFIG）に以下を追加。 $SMTP_OPEN_HOOK = q{ my ($footer) = &amp;GET_BUFFER_FROM_FILE(&quot;$DIR/footer&quot;); &amp;ENVELOPE_APPEND(&quot;Body&quot;, &amp;STR2JIS($footer…</summary>
        <content type="html">&lt;p&gt;まずフッタ用のファイルを作成。&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9&quot;&gt;文字コード&lt;/a&gt;はJISで。&lt;/p&gt;
&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;--
メールマガジンの解除 : (MLのメールアドレス)?body=bye&lt;/pre&gt;&lt;p&gt;まあ中身はお好みで。&lt;br /&gt;
これを/var/spool/ml/(ML名)の下に配置。今回はファイル名を「footer」としました。&lt;br /&gt;
その後、例によって/var/spool/ml/(ML名)/cf の一番下（LOCAL CONFIG）に以下を追加。&lt;/p&gt;
&lt;pre class=&quot;code lang-perl&quot; data-lang=&quot;perl&quot; data-unlink&gt;&lt;span class=&quot;synIdentifier&quot;&gt;$SMTP_OPEN_HOOK&lt;/span&gt; = &lt;span class=&quot;synConstant&quot;&gt;q{&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;my ($footer) = &amp;amp;GET_BUFFER_FROM_FILE(&amp;quot;$DIR/footer&amp;quot;);&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;&amp;amp;ENVELOPE_APPEND(&amp;quot;Body&amp;quot;, &amp;amp;STR2JIS($footer));&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;}&lt;/span&gt;;
&lt;/pre&gt;&lt;p&gt;これで本文の下に作成したファイルの内容が追記されるようになる。&lt;br /&gt;
新規&lt;a class=&quot;keyword&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%E1%A1%BC%A5%EA%A5%F3%A5%B0%A5%EA%A5%B9%A5%C8&quot;&gt;メーリングリスト&lt;/a&gt;を作成する度にいちいち作るのが面倒なら、/var/spool/ml/etc/fml/drafts/Japaneseの下に&lt;/p&gt;
&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;--
メールマガジンの解除 : _CTLADDR_?body=bye&lt;/pre&gt;&lt;p&gt;という感じの中身を書いて置いておけばいいんでないかな。&lt;/p&gt;
</content>        
        <category term="fml" label="fml" />
        
        <link rel="enclosure" href="https://ogimage.blog.st-hatena.com/8599973812293120111/8599973812293120495/1503994608" type="image/png" length="0" />

        <author>
            <name>nain</name>
        </author>
    </entry>
    
  
</feed>
