<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>プログラマ 福重 伸太朗 ～基本へ帰ろう～</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/" />
   <link rel="self" type="application/atom+xml" href="http://synth.jp/pg/atom.xml" />
   <id>tag:synth.jp,2007:/pg//1</id>
   <updated>2007-06-21T14:23:04Z</updated>
   
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.33-ja</generator>

<entry>
   <title>サイト引越します。</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/post_43.html" />
   <id>tag:synth.jp,2007:/pg//1.1711</id>
   
   <published>2007-06-21T14:20:07Z</published>
   <updated>2007-06-21T14:23:04Z</updated>
   
   <summary>http://synth.jp/pg/ ↑このサイト（つまりこのサイト）は ht...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1584" label="はてなダイアリー" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1582" label="引越し" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[<a href="http://synth.jp/pg/">http://synth.jp/pg/</a>
↑このサイト（つまりこのサイト）は


<a href="http://d.hatena.ne.jp/japanrock_pg/">http://d.hatena.ne.jp/japanrock_pg/</a>
↑こちらへ引越しました。
今度から更新ははてなダイアリーで行います。


お手数お掛け致しますが、何卒宜しくお願いいたします。
]]>
      
   </content>
</entry>
<entry>
   <title>sshの公開鍵をリモートホストに簡単に持っていく方法</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/ssh.html" />
   <id>tag:synth.jp,2007:/pg//1.1658</id>
   
   <published>2007-06-19T12:05:06Z</published>
   <updated>2007-06-19T12:05:28Z</updated>
   
   <summary>Clouder::Blogger: sshの公開鍵をリモートホストに簡単に持って...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[<a title="Clouder::Blogger: sshの公開鍵をリモートホストに簡単に持っていく方法" href="http://clouder.jp/yoshiki/mt/archives/000964.html">Clouder::Blogger: sshの公開鍵をリモートホストに簡単に持っていく方法</a>

＞ssh-copy-id ってコマンドを使うとさくっとできるみたい。

おおおおおぉ。しらんかった！！


 ssh-copy-id -i .ssh/id_rsa.pub hostname

After being prompted to enter your password for the last time, SSH will say:
Now try logging into the machine, with "ssh 'hostname'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Try it. No more passwords!
]]>
      
   </content>
</entry>
<entry>
   <title>Railsでモックを実現</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/rails_2.html" />
   <id>tag:synth.jp,2007:/pg//1.1641</id>
   
   <published>2007-06-19T00:17:59Z</published>
   <updated>2007-06-19T00:20:21Z</updated>
   
   <summary> http://www.thinkit.co.jp/cert/article/0...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="rails" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[<pre>
<a href="http://www.thinkit.co.jp/cert/article/0608/12/4/3.htm">http://www.thinkit.co.jp/cert/article/0608/12/4/3.htm</a>

memoです。

 ソースはリスト8～10のようになります。

リスト8：Railsでのモッククラス(/test/mocks/test/credit_card_auth.rb)
require 'models/credit_card_auth'
class CreditCardAuth
   def auth(card_no)
      return true
   end
end

リスト9：Railsでの本番クラス(/app/models/credit_card_auth.rb)
class CreditCardAuth < ActiveRecord::Base
   def auth(card_no)
      #クレジットカード処理を記述
      ...
   end
end

リスト10：Railsでの呼び出し側クラス
class ItemController < ApplicationController
   def buy
      card_auth = CreditCardAuth.new
      card_result = card_auth.auth(params[:card_no])
      （中略）
   end
   （中略）
end

</pre>
<br>
   この機構は、Rubyの「Open Class」などと呼ばれる特徴を利用しています。Open Classとは「再オープン可能なクラス」という意味で、何回でもクラスを再宣言してメソッドを追加したり上書いたりできる機構です。
]]>
      
   </content>
</entry>
<entry>
   <title>ロードアベレージ</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/post_42.html" />
   <id>tag:synth.jp,2007:/pg//1.1639</id>
   
   <published>2007-06-18T05:30:05Z</published>
   <updated>2007-06-19T00:17:55Z</updated>
   
   <summary>naoyaのはてなダイアリー - マルチコア時代のロードアベレージの見方 Lin...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="221" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1451" label="load average" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1449" label="ロードアベレージ" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[<a title="naoyaのはてなダイアリー - マルチコア時代のロードアベレージの見方" href="http://d.hatena.ne.jp/naoya/20070518/1179492085">naoyaのはてなダイアリー - マルチコア時代のロードアベレージの見方</a>

Linuxの管理方法もちゃんと整えないとな....。
]]>
      
   </content>
</entry>
<entry>
   <title>ライブドアブログでHTMLを外部から挿入する</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/html_1.html" />
   <id>tag:synth.jp,2007:/pg//1.1638</id>
   
   <published>2007-06-18T02:41:43Z</published>
   <updated>2007-06-18T02:48:41Z</updated>
   
   <summary>ライブドアブログでHTMLを外部から挿入する ―――――――――――――――――...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="html" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[ライブドアブログでHTMLを外部から挿入する
―――――――――――――――――――――――――

ライブドアブログ内のHTMLの一部を外部管理したいというもの。

例えば、サイドのテキスト広告の部分だけ、ライブドアブログ管理画面ではなく、
他の管理画面を作って管理する、みたいなイメージ。

------------------------------------
●結論
iframeを利用して、外部ファイルは別のライブドアブログIDを作って、そこに置く。

例)
&lt;iframe src="http://blog.livedoor.jp/japanrock_test2/archives/50595864.html" name="sample" width="200" height="150" frameborder="0"&gt;
この部分はインラインフレームを使用しています。
&lt;/iframe&gt;
------------------------------------


<br>
<br>
------------------以下は奮闘気です------------------
<br>
<br>

うーん。どうやろう...。
<a href="http://synth.jp/pg/2007/05/post_39.html">前回</a>でPerlやPHP等のプログラミング言語は使いないのは分かってるし・・・。
やはりjavascriptか...。


とりあえず、目標を立てる。
--------
&lt;p&gt;このHMTLは外部管理です&lt;/p&gt;
--------
↑このHTMLをライブドアブログに表示＆外部管理しよう！


&lt;img src="テキストファイル"&gt;
↑これで、テキスト表示できたりしないかな・・・。
やってみよう。

うー無駄目だった・・・。全然表示されん・・・。


おもむろに、「javascript テキスト 表示」でググッテみる。

おおおおおおぉ。
http://www.openspc2.org/JavaScript/Ajax/WebDesigning/200603/index.html
↑これ発見！

すばらしい！！
絶対URLでもＯＫ！


では、ライブドアブログに貼ってみる。

・・・うーむ。貼ってみたがうまくいかない・・・。
ライブドアブログの文字コードがeuc-jpだからか・・・？？

euc-jpでやってみよう。

むー。eucでもできる・・・。

ライブドアブログで外部ファイルを読み込めないとかなのかな・・・。
ヘルプを見てみよう・・・。
うーむ・・・ノってない。。。


あ、javascriptのファイル操作系のプログラム漁って見よう。

http://www.umechando.com/javascript/index.html
http://phpspot.org/blog/archives/2006/11/iframehtmlhtml.html
http://www.tagindex.com/html_tag/other/object.html
http://www.tohoho-web.com/html/object.htm
http://www.iyahooi.com/entry/2007/04/iframehtmlhtml.html
↑おおおおおぉ。発見！

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;test&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;!--[if IE]&gt;
&lt;object　type="text/html" classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" data="read.html" style="width:100;height:100px"&gt;
&lt;p&gt;non object&lt;/p&gt;
&lt;/object&gt;
&lt;![endif]--&gt;
&lt;!--[if !IE]&gt; &lt;--&gt;
&lt;object type="text/html" data="read.html"&gt;
&lt;p&gt;non object&lt;/p&gt;
&lt;/object&gt;
&lt;!--&gt; &lt;![endif]--&gt;

&lt;/body&gt;
&lt;/html&gt;

おおおおぉ。確かにファイルを読み込んで表示できた。
しかし、IEだと、枠がつく・・・。コレを取り除くぞ。


&lt;object type="text/html" style="border-style: none;width:200;height:200px" data="read.html"&gt;&lt;/object&gt;
↑失敗。border-styleではないようす・・・。


あー、IFRAMEもあるのか・・・。
http://www.htmq.com/html/iframe.shtml

ちょっとこっちでやってみよう。

&lt;iframe src="read.html" name="sample" width="200" height="150" style="border-style:none;"&gt;
この部分はインラインフレームを使用しています。
&lt;/iframe&gt;
↑こっちの方がましだが、IEでまだ枠が取れない・・・。

http://www.tagindex.com/html_tag/frame/i_frameborder.html
↑発見！

frameborder="0"
↑というのがあるらしい。やってみる。

&lt;iframe src="read.html" name="sample" width="200" height="150" frameborder="0"&gt;
この部分はインラインフレームを使用しています。
&lt;/iframe&gt;

おおおおおぉ！IEでもFFでも枠消えた！！

これをライブドアブログで、しかも別サーバーにあるファイルを読み込んでみる。

おう！iframeを挿入すると、iframe内にライブドアの広告が入る！！
ライブドアブログではiframe利用禁止なのか？？

うーん。だめっぽい。
objectでやってみよう。

おおおぉ。YouTubeは大丈夫だ。
&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Q6STO7TCFik"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Q6STO7TCFik" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;

では、僕のサーバーのものをやってみよう。

&lt;object type="text/html" data="http://synth.jp/livedoor_blog_test/read.html" width="200" height="200"&gt;
&lt;p&gt;non object&lt;/p&gt;
&lt;/object&gt;

うーん。ダメだ！！！広告が挿入される！！htmlファイルの挿入はダメなのか・・・？
書き方の問題なのか・・・。

livedoorのヘルプにかいてないんだよな・・・もー。

http://helpguide.livedoor.com/help/blog/qa/grp43
Q. 	自由に書き込めるプラグインが欲しいのですが？
A. 	上級者向けプラグインにある『フリーエリア』プラグインをお使いください。HTMLを自由に記述することができます。
他サービスのカウンターやアクセス解析、広告バナーなどを貼り付けるのにご利用いただけます。
↑このように書いてあるが・・・全然自由ぢゃない・・・。


http://worris.blog61.fc2.com/blog-entry-7.html
↑ココには「IFRAMEが使えるブログサービス」でlivedoorがあるので、使えそう・・・。使い方なのか・・・。
外部は無理なのか・・・。

では、内部でやってみよう。

おおおぉ。


&lt;object type="text/html" data="http://blog.livedoor.jp/japanrock_test/archives/50941343.html" width="200" height="200"&gt;
&lt;p&gt;non object&lt;/p&gt;
&lt;/object&gt;
↑これはいける！！やっぱ、指定のサーバーからの外部ファイルしか読み込めないのかなー。

ならば！

別にライブドアIDを作って、そこからとってくればいいな。
別のIDをつくろう。

おおおおおぉ。別のIDで作ってobjectで挿入したらできる！！！
やっぱ外部から読み込めるドメインと読み込めないドメインがあるんだな・・・。

objectタグだとIEで枠が付いてしまう問題があるので、
消そう。

&lt;object type="text/html" data="http://blog.livedoor.jp/japanrock_test/archives/50941343.html" width="200" height="200"&gt;
&lt;p&gt;non object&lt;/p&gt;
&lt;/object&gt;

frameborder="0"
↑これobjectタグで使えないかな・・・。やってみませう。

うーん。やってみたがだめぽ。

iframeでやってみよう。

おおおおおおぉ！！！iframeでだいじょうぶだ！！！

&lt;iframe src="http://blog.livedoor.jp/japanrock_test2/archives/50595864.html" name="sample" width="200" height="150" frameborder="0"&gt;
この部分はインラインフレームを使用しています。
&lt;/iframe&gt;


これでいこう。
よかったよかった。
]]>
      
   </content>
</entry>
<entry>
   <title>gem help command</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/gem_help_command.html" />
   <id>tag:synth.jp,2007:/pg//1.1575</id>
   
   <published>2007-06-14T14:46:05Z</published>
   <updated>2007-06-14T14:47:19Z</updated>
   
   <summary>memoです。 http://kiyoeri.gotdns.org/joomla...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="ruby" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1388" label="command" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1387" label="gem" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="209" label="ruby" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[memoです。

<a href="http://kiyoeri.gotdns.org/joomla/index.php?option=com_content&task=view&id=30&Itemid=2">http://kiyoeri.gotdns.org/joomla/index.php?option=com_content&task=view&id=30&Itemid=2</a>

<pre>
# gem help command

GEM commands are:

    build             Build a gem from a gemspec
    cert              Adjust RubyGems certificate settings
    check             Check installed gems
    cleanup           Cleanup old versions of installed gems in the local repository
    contents          Display the contents of the installed gems
    dependency        Show the dependencies of an installed gem
    environment       Display RubyGems environmental information
    help              Provide help on the 'gem' command
    install           Install a gem into the local repository
    list              Display all gems whose name starts with STRING
    query             Query gem information in local or remote repositories
    rdoc              Generates RDoc for pre-installed gems
    search            Display all gems whose name contains STRING
    specification     Display gem specification (in yaml)
    uninstall         Uninstall a gem from the local repository
    unpack            Unpack an installed gem to the current directory
    update            Update the named gem (or all installed gems) in the local repository

■使用頻度が高いと思われるコマンド

機能 	コマンド 
 hogeをインストール	 gem install hoge
 インストールされたパッケージ一覧	 gem list
 名前にfugaを含むインストール済みパッケージを探す	 gem search fuga
 ネットワーク上のライブラリを探す	 gem search --remote fuga　　gem search -r fuga
 パッケージfugaをアップデート	 gem update fuga
 パッケージfugaの古いバージョンを削除	 gem cleanup fuga
 パッケージfagaの削除	 gem uninstall fuga
 gems自身をアップデート	 gem update --system
 ヘルプ	 gem --help　　gem -h
 コマンド一覧を表示	 gem help commands
</pre>
]]>
      
   </content>
</entry>
<entry>
   <title>RailsとSSL</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/railsssl.html" />
   <id>tag:synth.jp,2007:/pg//1.1572</id>
   
   <published>2007-06-14T03:44:06Z</published>
   <updated>2007-06-19T00:16:26Z</updated>
   
   <summary>はてなはただ - RailsとSSL memoです。SSLやらないといけないので...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="rails" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="セキュリティ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[<a title="はてなはただ - RailsとSSL" href="http://d.hatena.ne.jp/befree/20070614/p1">はてなはただ - RailsとSSL</a>

memoです。SSLやらないといけないので...。

<a href="http://wota.jp/ac/?date=20070605">ヽ( ・∀・)ノくまくまー(2007-06-05)</a>
<a href="http://d.hatena.ne.jp/elm200/20070428/1177752908">Rails で行こう！ - Ruby on Rails を学ぶ - SSL 上で WEBrick を動かす</a>
<a href="http://capsctrl.que.jp/kdmsnr/diary/20060510.html">capsctrldays(2006-05-10)</a>
]]>
      
   </content>
</entry>
<entry>
   <title>Duck Typing</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/duck_typing.html" />
   <id>tag:synth.jp,2007:/pg//1.1558</id>
   
   <published>2007-06-13T09:21:57Z</published>
   <updated>2007-06-13T09:25:34Z</updated>
   
   <summary>http://0xcc.net/blog/archives/000053.htm...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="オブジェクト指向全般" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[<a href="http://0xcc.net/blog/archives/000053.html">http://0xcc.net/blog/archives/000053.html</a>

<br>

<pre>
class Duck
  def quack
    puts "hogehoge"
  end
end

class Foo
  def quack
    puts "foofoo"
  end
end

def func(ducky)
  ducky.quack
end

duck = Duck.new
foo = Foo.new

func(duck)  #=> hogehoge
func(foo)    #=> foofoo


「Foo もquack と鳴くのでDuck みたいなもんだろう」っていうのがDuck Typing（たぶん）
</pre>

]]>
      
   </content>
</entry>
<entry>
   <title>リダイレクトするとアンカーが削除される</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/post_41.html" />
   <id>tag:synth.jp,2007:/pg//1.1537</id>
   
   <published>2007-06-11T09:53:31Z</published>
   <updated>2007-06-11T09:55:18Z</updated>
   
   <summary>http://d.hatena.ne.jp/mihael2/20060712/1...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="rails" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      http://d.hatena.ne.jp/mihael2/20060712/1152682613

IEで redirect_to　と anchor を組み合わせて使うと、アンカーが削除されるどころか、エラーになって表示されない。解決しよう。
      
   </content>
</entry>
<entry>
   <title>Ruby ドキュメント</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/ruby_7.html" />
   <id>tag:synth.jp,2007:/pg//1.1445</id>
   
   <published>2007-06-07T13:34:31Z</published>
   <updated>2007-06-07T13:35:38Z</updated>
   
   <summary>Rubyドキュメント http://www2.ruby-lang.org/ja/...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="ruby" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="210" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="216" label="ドキュメント" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[Rubyドキュメント

<a href="http://www2.ruby-lang.org/ja/20020107.html">http://www2.ruby-lang.org/ja/20020107.html</a>
]]>
      
   </content>
</entry>
<entry>
   <title>Rails :includeオプション</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/rails_include.html" />
   <id>tag:synth.jp,2007:/pg//1.1443</id>
   
   <published>2007-06-07T04:04:13Z</published>
   <updated>2007-06-07T04:06:37Z</updated>
   
   <summary>＞ARにはincludeオプションと言う素晴らしい機能が用意されています。&quot;AR...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="rails" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1144" label=":includeオプション" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="486" label="Rails" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      ＞ARにはincludeオプションと言う素晴らしい機能が用意されています。&quot;AR.find&quot;に :include=&gt;(関連名) というオプションを渡すだけで、自動的にJOINクエリを内部で作成し、さらに結果オブジェクトに対してそれぞれの関連先のオブジェクトまで準備してくれるのです。



:include オプション・・・す・・・すばらしい。
      
   </content>
</entry>
<entry>
   <title>MySQL JOIN構文</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/mysql_join.html" />
   <id>tag:synth.jp,2007:/pg//1.1429</id>
   
   <published>2007-06-06T12:55:34Z</published>
   <updated>2007-06-06T13:09:38Z</updated>
   
   <summary> リレーショナルデータベース実験！ http://homepage2.nifty...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="mysql" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1129" label="JOIN構文" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1121" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[<pre>
リレーショナルデータベース実験！

<a href="http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_09.htm">http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_09.htm</a>
<a href="http://dev.mysql.com/doc/refman/4.1/ja/join.html">http://dev.mysql.com/doc/refman/4.1/ja/join.html</a>
<a href="http://wota.jp/ac/?date=20051107">http://wota.jp/ac/?date=20051107</a>
↑こちらを参考にした。

<a href="http://wota.jp/ac/?date=20060514">http://wota.jp/ac/?date=20060514</a>
↑Railsと絡めるならここも役に立ちます。

●●●●準備●●●●

create database r_test;

use r_test

create table units (
  id      int(8),
  unit_name  char(8),
  primary key (id)
) type=InnoDB;

create table company (
  id      int(8),
  name    char(8),
  age     int8,
  unit_id int8,
  primary key (id)
)type=InnoDB
;

create table reports (
  id      int(8),
  company_id  int(8),
  content char(8),
  primary key (id)
) type=InnoDB
;

insert into company values (1,'abc', 21, 1);
insert into company values (2,'def', 30, 2);
insert into company values (3,'ghi', 40, 1);

insert into reports values (1,1, 'test');
insert into reports values (2,2, 'test2');
insert into reports values (3,3, 'test3');

insert into units values (1,'aries');
insert into units values (2,'gemini');
insert into units values (3,'capu');

●●●●確認●●●●

mysql> show tables;
+------------------+
| Tables_in_r_test |
+------------------+
| company          |
| reports          |
| units            |
+------------------+
3 rows in set (0.00 sec)

mysql> select * from units;
+----+-----------+
| id | unit_name |
+----+-----------+
|  1 | aries     |
|  2 | gemini    |
|  3 | capu      |
+----+-----------+
3 rows in set (0.00 sec)

mysql> select * from company;
+----+------+------+---------+
| id | name | age  | unit_id |
+----+------+------+---------+
|  1 | abc  |   21 |       1 |
|  2 | def  |   30 |       2 |
|  3 | ghi  |   40 |       1 |
+----+------+------+---------+
3 rows in set (0.00 sec)

mysql> select * from reports;
+----+------------+---------+
| id | company_id | content |
+----+------------+---------+
|  1 |          1 | test    |
|  2 |          2 | test2   |
|  3 |          3 | test3   |
+----+------------+---------+
3 rows in set (0.00 sec)

●●●●実験●●●●

mysql> select * from company inner join units where company.unit_id=units.id and units.id=1;
+----+------+------+---------+----+-----------+
| id | name | age  | unit_id | id | unit_name |
+----+------+------+---------+----+-----------+
|  1 | abc  |   21 |       1 |  1 | aries     |
|  3 | ghi  |   40 |       1 |  1 | aries     |
+----+------+------+---------+----+-----------+

mysql> select * from reports left join company on reports.company_id=company.id;
+----+------------+---------+------+------+------+---------+
| id | company_id | content | id   | name | age  | unit_id |
+----+------------+---------+------+------+------+---------+
|  1 |          1 | test    |    1 | abc  |   21 |       1 |
|  2 |          2 | test2   |    2 | def  |   30 |       2 |
|  3 |          3 | test3   |    3 | ghi  |   40 |       1 |
+----+------------+---------+------+------+------+---------+

おおおぉ。分かってきた・・・。


mysql> select * from ( reports left join company on reports.company_id=company.id ) 
  left join units on company.unit_id = units.id ;
+----+------------+---------+------+------+------+---------+------+-----------+
| id | company_id | content | id   | name | age  | unit_id | id   | unit_name |
+----+------------+---------+------+------+------+---------+------+-----------+
|  1 |          1 | test    |    1 | abc  |   21 |       1 |    1 | aries     |
|  2 |          2 | test2   |    2 | def  |   30 |       2 |    2 | gemini    |
|  3 |          3 | test3   |    3 | ghi  |   40 |       1 |    1 | aries     |
+----+------------+---------+------+------+------+---------+------+-----------+

おおおおぉ！完璧！
なんだ。できた。

さらに、where文も追加！

mysql> select * from ( reports left join company on reports.company_id=company.id ) 
  left join units on company.unit_id = units.id where units.id = 1;
+----+------------+---------+------+------+------+---------+------+-----------+
| id | company_id | content | id   | name | age  | unit_id | id   | unit_name |
+----+------------+---------+------+------+------+---------+------+-----------+
|  1 |          1 | test    |    1 | abc  |   21 |       1 |    1 | aries     |
|  3 |          3 | test3   |    3 | ghi  |   40 |       1 |    1 | aries     |
+----+------------+---------+------+------+------+---------+------+-----------+

完璧！

</pre>]]>
      
   </content>
</entry>
<entry>
   <title>MySQL 主キー（PRIMARY KEY）、外部キー（FOREIGN KEY）について</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/06/mysql_primary_keyforeign_key.html" />
   <id>tag:synth.jp,2007:/pg//1.1428</id>
   
   <published>2007-06-06T12:53:26Z</published>
   <updated>2007-06-06T13:18:24Z</updated>
   
   <summary>●主キー（PRIMARY KEY） プライマリキー プライマリキーとはレコードを...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="mysql" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1127" label="FOREIGN KEY" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1121" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1124" label="PRIMARY KEY" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1122" label="主キー" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1125" label="外部キー" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      ●主キー（PRIMARY KEY）
プライマリキー
プライマリキーとはレコードを1行ずつ識別するためのフィールドで、プライマリキーは必ずユニークな値となる。プライマリキーの指定により、膨大なデータから必要なレコードだけを確実に取り出すことが可能。

＞primary key  主キー制約(unique &amp; not null)
＞主キーはテーブル毎にひとつだけ設定できます。ここで主キーを設定する列にはNOT NULL制約が必要です。
＞text型とBLOB型の列は、そのままでは主キーに含めることが出来ません。その列の先頭から何バイトを主キーとするか、明示的に指定してください。
「MySQL 全機能 リファレンス」P269

なるほど！！

●外部キー（FOREIGN KEY）
外部キー(Foreign Key）
テーブルのプライマリキーと同じ値を持った別のテーブルのフィールド値。

＞バージョン3.23.43から外部キー(FOREIGN KEY)制約がサポートされました。このとき、外部キー制約を設定するテーブルと被参照テーブルは、InnoDBテーブル型でなければなりません。また、被参照テーブルと被参照列には、一意性(UNIQUE)制約、インデックス(INDEX)、主キー(PRIMARY KEY)のいずれかが設定されていなければなりません。

なるほどーー！

＞外部キー制約を持つ参照元テーブルにデータを挿入しようとすると、その値が被参照テーブルの被参照列に存在するか否かを検査し、存在するときのみデータを挿入します。
「MySQL 全機能 リファレンス」P272

なるほど！！外部キーにはこんな役目があるんだ！！

＞では、データ挿入後に（被参照テーブルの）被参照列の値を更新したり削除したい場合はどうなるのでしょうか。デフォルト動作では、更新や削除をしようとするとエラーとなり、参照元テーブルと被参照テーブル間のデータ整合性を保ちます。
＞しかし、他のテーブルから参照されたばかりに、被参照テーブルの更新や削除ができなくなるのは不便です。この状況への対処法は、（外部キー制約を設定した）参照元のテーブルにON DELETE句とON UPDATE句を設定し、被参照テーブルでの更新や削除が行われた場合の動作（action）を指定することです。

＞例えば、動作として”CASCADE”を指定すると、（被参照テーブルの）被参照列の値が更新された場合は、参照もとの列にも更新が反映され、削除された場合は、参照元のテーブルも削除されます。
＞動作として&quot;SET NULL&quot;を指定すると、（被参照テーブルの）被参照列の値が更新や削除された場合に、参照もとの列に&quot;NULL&quot;が設定されます。同様に、&quot;SET DEFAULT&quot;の場合は、デフォルト値が設定されます。

なーるほどー！

      
   </content>
</entry>
<entry>
   <title>Rubyでmail</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/05/rubymail_1.html" />
   <id>tag:synth.jp,2007:/pg//1.1209</id>
   
   <published>2007-05-30T05:55:45Z</published>
   <updated>2007-05-30T13:41:15Z</updated>
   
   <summary>こちらを参考にした。 http://www.ksky.ne.jp/~sakae/...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="ruby" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="210" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="842" label="mail" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[こちらを参考にした。<br>
<a href="http://www.ksky.ne.jp/~sakae/pr_ruby/r00211.html">http://www.ksky.ne.jp/~sakae/pr_ruby/r00211.html</a>
<br>
<pre>
#!/usr/local/bin/ruby
require 'net/smtp'
require 'kconv'

backup_time = Time.now
server_name = "server_name"
hd_size     = `df -h`

to   = %w(hoge@hoge.com)     # Array
subj = 'BACKUP REPORT(hogehoge.com)'
from = 'fuga'                               # for Header From part
body  = <<-BODY
#{backup_time}

#{server_name}

#{hd_size}
BODY

sender = 'fugafuga'
subj = Kconv.tojis(subj)
subj = subj.split(//,1).pack('m'); subj = subj.chomp
from = Kconv.tojis(from)
from = from.split(//,1).pack('m'); from = from.chomp
tomany = to.join(',')

head = &lt;&lt;HEAD
Subject: =?ISO-2022-JP?B?#{subj}?=
To: #{tomany}
From: =?ISO-2022-JP?B?#{from}?=
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: Text/Plain; charset=iso-2022-jp
HEAD

src = head + "\n\n" + Kconv.tojis(body)
m = Net::SMTPSession.new(address = 'localhost', port = 25)
m.start()
m.sendmail(src, sender, to)
m.finish
</pre>

<br>
便利]]>
      
   </content>
</entry>
<entry>
   <title>なぜ、あなたはJavaでオブジェクト指向開発ができないのか</title>
   <link rel="alternate" type="text/html" href="http://synth.jp/pg/2007/05/java.html" />
   <id>tag:synth.jp,2007:/pg//1.1524</id>
   
   <published>2007-05-30T03:09:30Z</published>
   <updated>2007-06-11T02:10:17Z</updated>
   
   <summary> 良書。 去年の夏、一度読んだのだけど、本日改めて読んでみると、理解度が全然違く...</summary>
   <author>
      <name>福重 伸太朗</name>
      <uri>http://www.synth.jp/pg/</uri>
   </author>
         <category term="本" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://synth.jp/pg/">
      <![CDATA[<a href="http://www.amazon.co.jp/gp/product/477412222X?ie=UTF8&tag=synthjp-22&linkCode=as2&camp=247&creative=1211&creativeASIN=477412222X">
<img alt="31462360.JPG" src="http://synth.jp/image/31462360.JPG" width="175" height="250" /></a><img src="http://www.assoc-amazon.jp/e/ir?t=synthjp-22&l=as2&o=9&a=477412222X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

良書。

去年の夏、一度読んだのだけど、本日改めて読んでみると、理解度が全然違くて驚いた・・・。
めちゃめちゃ良くわかる。
ちゃんと成長しているだなとしみじみ・・・（涙）。

Javaを例に書かれていますが、他のオブジェクト指向言語に置き換えても、ぜんぜん問題ありません。
僕はRubyに置き換えて読みました。


「オブジェクト指向が分からん！」と言うそこのあなた！
オススメです！


<a href="http://www.amazon.co.jp/gp/product/477412222X?ie=UTF8&tag=synthjp-22&linkCode=as2&camp=247&creative=1211&creativeASIN=477412222X">なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング</a><img src="http://www.assoc-amazon.jp/e/ir?t=synthjp-22&l=as2&o=9&a=477412222X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />]]>
      
   </content>
</entry>

</feed>

