<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>かばだんなさん かく語りぬ２</title>
	<atom:link href="http://kaba-blog.shall-systemservice.co.jp/feed/" rel="self" type="application/rss+xml" />
	<link>http://kaba-blog.shall-systemservice.co.jp</link>
	<description>株式会社シャル・システムサービスの責任者な人がちょびっと語るのです</description>
	<lastBuildDate>Wed, 09 May 2012 10:53:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/feed/" />
		<item>
		<title>さていよいよ電力会社について語ろうか</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20120509-1388/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20120509-1388/#comments</comments>
		<pubDate>Wed, 09 May 2012 10:53:52 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[c. 個人かばだんなさん]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1388</guid>
		<description><![CDATA[電力会社については言いたいことは山ほどありました。１年以上も前から。 しかし立場上 過去の守秘義務に違反してんじゃないのと疑われてもかなわんので公の場では黙っていました。 でもまぁ、もうそろそろいいかな？と思って語るとし&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20120509-1388/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>電力会社については言いたいことは山ほどありました。１年以上も前から。<br />
しかし立場上 過去の守秘義務に違反してんじゃないのと疑われてもかなわんので公の場では黙っていました。<br />
でもまぁ、もうそろそろいいかな？と思って語るとしましょう。<br />
<span id="more-1388"></span><br />
どうも、ごぶさたしてました。かばだんなさんです。<br />
みなさんお変わりありませんか？昨日はごはんのお代わりしましたか？ケンカしたあの人とは分かり合えましたか？新しい誰かとの関わりは持てましたか？<br />
と、なんか往年の鴻上尚史のような出だしになってしまいました。かばだんなさんのテレ隠しと思ってください。</p>
<h2>新社長さんって</h2>
<p>昨日、東京電力の新社長が決まりました。なんでもこれまでの慣例を打ち破って営業畑の方だとか。かばだんなさんはこのニュースをここ１年の電力関連のニュースの中で一番歓迎します。<br />
　正直な話 誰もやり手がなくって元弁護士が会長になったって聞いた時には「ダメだこりゃ」と思ったもんですが、いや会長さん恐れ入りました。バランス感覚に富んだ素晴らしい采配だと思います。現経営陣留任は戯言としても、巷間言われている「一気に若返り」案は現実的ではないと思うからです。<br />
　一般の企業なら一気に若返りもアリでしょう。ですが電力会社はそうはいきません。電気の安定供給は人件費が上がり切ったこの国の産業の最後の生命線なのですから、万が一にも混乱があってはならないのです。そういう意味では（現状維持は論外ですが）ソフトランディング以外の選択肢を採るべきはないと考えます。であれば、必ずしも社長を若返らせる必要はないのです。（年が若い事が価値ではないでしょ。それより組織のツボをクリィティカルにツンツンできるスキルの方が重宝だと思います。）<br />
　もう１つ、ソフトランディングであるべき理由。電力会社というのは「命がけの部隊」を抱えているのです。台風や洪水といった災害で電線が切れたり電柱が倒れたりするたびに、配送電担当者が飛んでいって復旧に当たるのです。そんな時に組織が混乱していては事故が起きます。現場が苦労しているのに首脳陣がボンクラで、振り回された現場がさらに危険にさらされるなんて悲しい出来事は、事故直後の福島第一原発だけでもうたくさんでしょう。<br />
　そんなわけで、かばだんなさんとしてはソフトランディング路線も新社長さんにも期待が持てると感じています。（昨日、新社長の会見をざっと見ましたが、やっぱり分かってる方ですね。自分がどの方向を向く事を期待されて社長に指名されたかよくご存知です。）</p>
<h2>社内カンパニー制について</h2>
<h3>～意図不明な守備範囲～</h3>
<p>しかし社長さんが変わったからと言って楽観はできません。官庁だろうと民間だろうとある程度の規模の組織というのは組織自体の自己防衛機能が働くからです。その最たる例は今年の２月に素案が出て分かったような分からないような扱いになっている「分社化」案です。これなんか一見改革に見えますが、私には電力会社の自己防衛というか煙幕にしか見えません。</p>
<p>分社化というのは東京電力が作成して本日政府に認可された「総合特別事業計画」の一項です。短いのでまんま引用しましょう。</p>
<blockquote><p>
　・社内カンパニー制導入（「燃料調達・火力発電」「送配電」「小売り」）
</p></blockquote>
<p>なんかよくなりそうに見えますが、あくまで「なりそう」なのに注意が必要です。<br />
　例えば「小売り」ってなんでしょうか？ＣＳや電気料金請求部門の事でしょうか？？（これについて明確にした資料が見つかりませんでした。）<br />
だとしたらちょっと違和感があります。例えばかばだんなさんの自宅は千葉支店配下の京葉支社の管轄です。電気料金の請求も支社から来ます。では配電はどうかというと、仮に引込内線（電柱と家屋を繋ぐ電線）までを配電として、京葉支社に配電担当はいないのでしょうか？そんなはずはないですよね。災害時の即応性を考えても。<br />
　１つの支社の社屋の中に複数のカンパニーが同居？？支社長はどっちから出すの？？なんか民営化後の郵便局みたいですねｗｗｗ<br />
　なんでこんな分かりにくい所で線引きしたのでしょう？どうやらここら辺に意図が隠れているような気がします。</p>
<h3>～なぜ配電と小売りを分けたのか？～</h3>
<p>たった３つなのに小売りと配電を分けたのは、うがった見方をすれば収益性の違いだと思います。ＣＳ／メーターチェック／請求業務というのはある程度業務内容もイメージがわきますので、第三者でも費用の妥当性のチェックは可能です。つまり儲けようがありません。<br />
　しかし電線路を200m引っ張る工事にいくらかかるかイメージの湧く人は少ないでしょう。どの電柱を何ｍ間隔で何本・・・なんて分かる人は外部にはそうそういませんから、「電柱１本建てるのに1000万円」と言われれば何となく妥当な気になってしまうのです。つまり儲けようと思ったらいくらでも儲けられる。<br />
　儲けられない部門を生贄的に切り出すことで収益性の高い部門を守ろうとしているのではないでしょうか。</p>
<h3>～なぜ送電と配電を分けないのか？～</h3>
<p>「どっちも電線で電気をリレーする仕事だから」とか言うんでしょうか？おいおい(笑。<br />
・送電は発電所から変電所までが担当です。従って所属は変電所にできます。<br />
・対して配電は変電所から契約者の建物までです。従って所属は各支店・支社にできます。<br />
配電と小売りを分けるより、送電と配電を分けた方が分かりやすくないですか？それなのに送電と配電を分けないのにも、きっと意図があるのでしょう。<br />
　恐らく送電と配電を分けられないのは、民間に負けちゃうからではないでしょうか。変電所から契約者まで電気を引く<a href="http://www.orix.co.jp/oep/service/index.htm">民間事業者</a>は今後どんどん増えてくるでしょう。こういう事業者は「配電＋小売り」がビジネスドメインですから、送電と配電を分けちゃうと露骨に民間より高額なのがバレちゃうじゃないですか。しかし送配電をまとめておけば（送電はさすがに民間にはハードルが高いのでそうそう参入できないでしょうから）数字を明確にする事だけは回避できる、という事なんじゃないでしょうか。</p>
<h2>公開されない総合特別事業計画</h2>
<p>上記のとおりかなり作為的な総合特別事業計画ですが、マスコミ各紙とも同じような内容で報道されており、どうも情報操作が入ってる風なんですよね。探してみたのですが計画書の詳細はどこにも公表されていませんし。公開されてない計画に公的資金１兆円ですか・・・。<br />
必要なのは国有化より透明化だと思うのですが・・・。<br />
（しかしこういう所を突っ込まない辺り、本当にあの野党はお大尽気分が抜けないというかなんというか・・・。）</p>
<h2>電力融通について</h2>
<p>日本の電力会社は相互に送電線をつないでいて、いざという時にその線を経由して電力に余裕のある会社から余裕のない会社に電力を売る仕組みがあります。去年の震災後に初めて知ったのですが、東京電力と中部電力の境界って３点しかないんですね！！社会インフラがそこまで冗長性を持ってないなんてダメじゃないですか！！<br />
　電力会社がその気になれば、（社内の送電網は充実してるんだから）接続なんてすぐですよ、すぐ。それなのにその事実がおおっぴらになってからもう１年近くもたつというのに、いまだに<a href="http://www.asahi.com/special/10005/TKY201202110660.html">促す</a>のレベルですよ。基本計画の作成が今年５月頃の予定だなんてどんだけノンビリしてるんでしょう？時間がかかる可能性があるとすれば用地買収ぐらいだと思うのですが・・・。</p>
<h2>原子力発電について</h2>
<p>意図的に最後に持ってきました。かばだんなさんに定見はありません。ごめんなさい。<br />
ただ少なくともいえる事は、今の状態で再稼働されても かばだんなさんはその近所に住みたくありません。「１年間じっくり検討したんだもん」なんて言ってますが、その内容がさっぱり見えませんし、ましてや対応がまだ「予定」の段階で再稼働はないでしょ。<br />
　誰が検討したのか、その人の利害関係者はどこにいるのか、数値は妥当なのか、想定値はいくつかのバリエーションを設けているか、等々まで含めた検証が必要なんじゃないでしょうか。それこそ妥当性だけでも裁判所辺りに検証してもらった方が良い気がします。マスコミもダメです。広告収入で運営している組織には限界があります。<br />
　もう１つ言える事は、政争の具になっている感があります。賛成の人はそっち系の人の票を狙って。反対の人はそっち系の人の票を狙うのと与党の足を引っ張るチャンスとして。もうさ、そういう事やってるからあんたらの発言が生臭く感じるのよ。と、そういう人には<a href="http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%83%86%E3%83%B3%E3%83%9E%E3%82%B9%E3%82%AF">バッテンマスク</a>を付けて発言できなくしないとこの問題収集付きませんよ。<br />
　ちゃんと検討内容を検証し、裏意図のある人を黙らせて、その上で議論すべきと思います。（こういう所に時間をかけるのは重要。変に今年の夏までに答えを出そうとするから拙速になるのです。とはいえ<a href="http://www.nhk.or.jp/kaisetsu-blog/100/119678.html">夏の電力需要がピンチになる事</a>は充分あり得るから、まず再稼働の議論を「今年９月末まで限定稼働」と「長期的な稼働」に分ければ議論は変わってくると思います。ま、なし崩しに毎年限定稼働が出そうですが、夏だけ動く発電所なんて維持コスト考えても電力会社だって嫌でしょうからそれが足枷になるのではないでしょうか。）<br />
　もう１つ。この議論に意見を言う人は、自分の住んでいる町に原発ができる想定でないと発言してはいけないと思います。でなければ沖縄問題と同じ事になるでしょうからね。</p>
<h2>そしてかばだんなさんの提言</h2>
<p>とまぁこんな感じで電力会社は問題山積なのですが、かばだんなさんならこうするというのをまとめてみました。</p>
<ul>
<li>
	社内カンパニー制は経営（金集め）の問題なのでやろうがやるまいがどっちでもいい。
</li>
<li>
	その代り決算時には事業グリッド毎に収支を公表する。（資産は会社が持つから損益計算書だけでもいいかな？甘いかな？）<br />
	事業グリッドは、発電・送電・配電・燃料調達・資材調達・輸送、に分割する。
</li>
<li>
	配電事業への民間参入の増加に伴い、送電事業は今後益々公益性を増すので、送電グリッドだけは別会社として、資本金の３分の１以上を国・地元自治体の出資とする。（こういう国公債の増加はアリ。）
</li>
<li>
	電力を融通するための周波数変換施設は防衛省の管轄とし、運営保守を電力会社に委託する。必要な融通可能電力量は国会で定め、防衛省は国土保全上必要な数だけ施設を作る。（テロ対策などは防衛省にお願いする意図）
</li>
<li>
	原発再稼働の是非については、30km圏内を1人3票・70km圏内を1人2票・100km圏内を1人1票として、その自治体の住人数に応じて首長による投票で決定する。投票云々の費用は電力会社が負担する。（個々の自治体で住民投票が必要かどうかは首長が判断し、その費用は自治体が負担する。）
</li>
<li>
	原発は事実上当時の国策だったので、東京電力への１兆円の資金投入を国が行うのは止む無し。但し出資ではなく、東京電力が発行する社債を政府が満額引き受ける事で資金投入を行う。東京電力がグダグダなら社債を売り払う事をチラつかせる。（売られると債券価格がガタ落ちするので東京電力は無視できない）
</li>
<li>
	東京電力は事故で人が住めなくなった地域に住人が戻れるようになるまで、役員賞与を全額寄付。どうしても住人が戻れない場合は戻れない全員の住む所と職を世話する。それまでずっと賞与寄付。（それで社員のモチベーションが下がるほど電力マンの心意気は安っぽくないと信じます。）
</li>
<li>
	原発を再稼働する場合には、万が一の災害に備えて想定される賠償金額の一定額をプールしてある事を前提とする。
</li>
</ul>
<p>こんな感じでしょうか。一見「めちゃめちゃハードランディングやんけ！」と突っ込まれそうですね。ですが組織の問題には深く深くメスを入れ、政争の具にしたがる人にはバッテンマスクを付けつつも、実際には現場のやる事はほとんど変わらないと思いますので、私自身はソフトランディングだと思っています。<br />
　ここまでやれば新規参入はどんどん増しますので、税収増も期待できるし、電力会社の体質改善につながると思うのですが。</p>
<p>で、最後になりますが、ここまでやっちゃって電力会社は潰れちゃうんじゃないかという意見もありますが、そんなことはないでしょう。理由は２つあります。<br />
　まず第一に、これだけの巨大企業は「電力投資会社」として生きていけます。新規参入の会社を会社ごと買って新陳代謝を行うのです。なんかちょっといやらしいと思われるかもしれませんが、別に電力会社を潰すのが目的なわけじゃないんですから、食っていくためにはいいじゃないですか。<br />
　第二に、こっちが最大の理由ですが、現場の人たちの安定供給に対する心意気です。昔、台風直撃の前の日、かばだんなさんは待機所に集まってきたある電力会社の保守要員の一団とすれ違った事があります。彼らはただ歩いてるだけなのですが、どこからともなく<a href="http://www.youtube.com/watch?v=lJVtIGE6K8M&#038;feature=fvwrel">ウルトラ警備隊のテーマ</a>が聞こえてきて、厚顔なかばだんなさんが後ずさった事を覚えています。そうなんです。彼らの「電柱が流れようが俺たちがすぐ立て替えてやるぜ」の心意気は、民間企業のそれを超越しているのです。新規参入組はこれを過剰品質とするでしょう、いやするしかないのです。ですが広域災害時などは、この心意気が会社を支えるんじゃないかと思っています。<br />
　<br />
　<br />
　<br />
いや～語った語った。これブログのネタ５本分ぐらいを一気に語っちゃいましたねｗ<br />
でもまだ語ってない部分もあるのですが、それはさすがに公の場では止めておきますので、個別に聞いて下さい(苦笑。</p>
<p>しばらく真面目な話を書いてなかったのですが、ちょっと前にある人に促されたので書いてみました。意図的に書かなかっただけなのでネタはあるよ～ｗ<br />
でもこの話、電力会社の話に見せかけてはいますが、実は かばだんなさんお約束の組織論だったりするのです・・・。</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20120509-1388/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20120509-1388/" />
	</item>
		<item>
		<title>SQLServerのユーザー定義関数を作ってみた</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20111208-1374/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20111208-1374/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 03:07:26 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[b. 技術者かばだんなさん]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[SQLSever]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1374</guid>
		<description><![CDATA[師走でございます。こたつが恋しい季節になりましたがいかがお過ごしでしょうか。 最近かばだんなさんは初めてSQLServerに触れる機会を得まして。これ、いいです。 導入時の認証・権限管理の部分がちょっと難しいです。情報も&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20111208-1374/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>師走でございます。こたつが恋しい季節になりましたがいかがお過ごしでしょうか。</p>
<p>最近かばだんなさんは初めてSQLServerに触れる機会を得まして。これ、いいです。<br />
導入時の認証・権限管理の部分がちょっと難しいです。情報も分かりやすいのがまとまってるわけじゃないし。<br />
たぶんこの難解さで、多くの人が目一杯に権限を緩くしてDB構築し、セキュリティリスクを作ってしまうんじゃないかと思います。（「そのうちちゃんと組みなおそう」と言いつつ時間が無くてそのまま本番運用、なんて光景が容易に想像がつきます。）　もったいないよね。<br />
・・・と、昨日ランチの時に有識者に話したら「お前がまとめ文章書け」と言われました。そのレベルにはまだ達していない（苦笑。</p>
<p>でも入り口はちょっとつまづきましたが、それ以外はクセもなくスムーズです。</p>
<p>で、面白がってSQLServerで使うためのユーザー定義関数を作りましたので今回はその一部を公開します。<br />
<a href="/sqlserver・sqlazureでnow/">現在日時を取得するNOW()</a> と <a href="/sqlserver向けのユーザー定義関数date_format/">日付書式を変換するためのDATE_FORMAT()</a>です。</p>
<p>NOW()に相当するものはSQLServerにもあるので、これはクラウドサービスであるSQLAzure用ですね。<br />
あ、SQLAzureもいいですよ。ローカルのSQLServerでやれることがまんまクラウド環境でもできるので開発効率もいいし。</p>
<p>またひとつ選択肢を入手してしまった かばだんなさんなのでした。</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20111208-1374/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20111208-1374/" />
	</item>
		<item>
		<title>Java でのセキュアコーディング規約</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20111109-1339/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20111109-1339/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 23:43:22 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[b. IT業界の人かばだんなさん]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[セキュリティ]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1339</guid>
		<description><![CDATA[JPCERTコーディネーションセンター から「CERT Oracle Java セキュアコーディングスタンダード」の日本語版が公開されましたね。（元ネタ） この資料の特筆すべきところは、 機械翻訳・非技術者翻訳ではなく、&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20111109-1339/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>JPCERTコーディネーションセンター から「CERT Oracle Java セキュアコーディングスタンダード」の日本語版が公開されましたね。（<a href="http://codezine.jp/article/detail/6264">元ネタ</a>）</p>
<p>この資料の特筆すべきところは、</p>
<ul>
<li>機械翻訳・非技術者翻訳ではなく、技術者による翻訳なので分かりやすい。</li>
<li>個々のチェックポイントについて、NG例・OK例が提示されているので、文章の意味が分からなくてもコードを見たらよく分かる。</li>
<li>巷間話題のAndroidアプリで関係するチェックポイントはどれとどれか、別表で明確になっている。</li>
</ul>
<p>といった辺りでしょうか。通常セキュリティ診断の会社にこの資料出してもらうとすれば数百万円は払わなくてはならないでしょう（それでも格安）が、それが無償公開だなんて！！！</p>
<p>何となくセオリーとしてやっていた事・やらずにいた事ってのが、実はセキュリティ的な意味があったという事が分かったりもしますので、ざっと読むだけでもなかなか面白いですよ。<br />
特に「とりあえず作れ！」的な感じで質問できる先輩もいないのに Javaのプログラマになっちゃった方には必読の文章だと思います。腕磨いて下さい。（これ、特定の誰かを頭に浮かべてるわけではありません。ホントに（苦笑。）</p>
<p>しかしこんな情報が整理された状態で公開されるなんて、ホント、いい世の中になったよな～。</p>
<p>＊ <a href="https://www.jpcert.or.jp/java-rules/">「CERT Oracle Java セキュアコーディングスタンダード」 日本語版</a><br />
＊ <a href="https://www.jpcert.or.jp/java-rules/android-j.html">Androidアプリケーション開発へのルールの適用</a>（日本語版オリジナル）</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20111109-1339/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20111109-1339/" />
	</item>
		<item>
		<title>サーバーにメモリを追加したかっただけなのに・・・</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20111104-1315/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20111104-1315/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 04:24:46 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[b. 技術者かばだんなさん]]></category>
		<category><![CDATA[WindowsServer]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1315</guid>
		<description><![CDATA[以前、インストールマニアックス第１回大会に参加した際に頂いたWindowsサーバーですが、３年近くたった今でも元気に動いてくれていました。初期状態の１GBのメモリでしたが、いやぁ結構仕事してくれるもんです。 先日、同じ大&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20111104-1315/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>以前、<a href="http://maniax.jp/installmaniax/1/result">インストールマニアックス第１回大会</a>に参加した際に頂いたWindowsサーバーですが、３年近くたった今でも元気に動いてくれていました。初期状態の１GBのメモリでしたが、いやぁ結構仕事してくれるもんです。<br />
先日、同じ大会に参加した友人のサーバーが壊れたそうで、メモリだけ頂きました。なんとその友人は増設していたので８GB♪<br />
昨日は祝日でしたのでサーバーを止めて増設しました。ハード系は得意ではありませんがメモリの交換ぐらいできるのです（笑。</p>
<p>そう、メモリの交換ぐらい・・・・<br />
<span id="more-1315"></span><br />
<strong>１．マシンの蓋を開けてメモリを差し込みます。</strong><br />
<a href="http://searchapj.dell.com/results.aspx?s=gen&#038;c=jp&#038;l=ja&#038;cs=&#038;k=T100&#038;cat=sup&#038;x=0&#038;y=0">DELL PowerEdge T100</a>は一度フタを開けると起動時にBIOSが警告を出しますので、BIOSの設定をクリアしなければなりません。普段通りのネットワーク越しの接続ではBIOSの設定はできませんので、モニタを出してきて直結しました。<br />
　⇒　<span style="color:#a00">モニタの電源が入りません。モニタが壊れていた模様。</span></p>
<p><strong>２．モニタを買ってきます。</strong><br />
急いでいたので近所のヤマ●電機に買いに行きました。１万３５００円。安くなったもんですね。買ってきたモニタをつないで起動。「Alert!Cover was previously opened.opened.（警告! カバーが取り外されました。）」と表示されたらF2。おぉ、BIOS設定画面か。何もかも懐かしい。[System Security]－[Chassis Intrusion]を、[Detected]から[Enabled]に変更。<br />
　⇒　<span style="color:#a00">Windowsが起動したので安心したが、間もなくWindowsが突然昇天（前触れ無し）。再起動するもファンは回るがBIOSが起動しない。（ここでしばし放心状態）</span></p>
<p><strong>３．メモリを少し減らします</strong><br />
BIOSが来ない・BEEP音が鳴らないとくれば電源ユニットかマザーがいかれたかと思ったのですが、４スロットに４枚メモリを差した事でどこかに負荷がかかったのかも（根拠なし）と思って２枚に減らして起動。おぉ！！起動した！！！<br />
何度かマシンの再起動を繰り返して動作確認をすると・・・<br />
　⇒　<span style="color:#a00">「シャットダウンしています」画面で異常に待たされた後、ブルースクリーンが出てそのままなぜか起動プロセスへ。（毎回再現）</span></p>
<p><strong>４．USB無線LANクライアントを外します。</strong><br />
起動後にWindowsがブルースクリーンの原因を調べてくれて、無線LANクライアントがいけないと教えてくれた。（調査結果はドンピシャではないけど大いにヒントになった）<br />
先週「２経路にしたら便利かも」と思って余ってたUSBクライアントを差したのですが、普段再起動しないマシンだったので問題に気が付かなかったんですね。必須要件でもないので抜いてみました。<br />
　⇒　<span style="color:#a00">動いた！！！</span></p>
<p>以上、楽しい休日でした（苦笑。　でも１GBが４GBになったのでご機嫌です♪</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20111104-1315/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20111104-1315/" />
	</item>
		<item>
		<title>CakePHPのPaginatorに独自のパラメータを追加</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20110731-1297/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20110731-1297/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 09:50:46 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1297</guid>
		<description><![CDATA[CakePHP の一覧表示には標準搭載のPaginate機構を使う事が多いと思います。お手軽ですから。bakeで焼いたままで、ソートや改ページといった細かい手間も省いてくれますしね。 でも、一覧画面でありがちな「条件で絞&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20110731-1297/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>CakePHP の一覧表示には標準搭載のPaginate機構を使う事が多いと思います。お手軽ですから。bakeで焼いたままで、ソートや改ページといった細かい手間も省いてくれますしね。</p>
<p>でも、一覧画面でありがちな「条件で絞り込み」みたいな要件にどう対応したらいいのかってドンピシャで書いてるところ少ないんですよね。前に確かに実装したのにな・・・って事で覚書。（今回はCakePHP 1.3.10 で動作確認しています。）</p>
<p><span id="more-1297"></span></p>
<h3 style="color:#00f;">【今回の要件】</h3>
<p>例えば、人の一覧画面で、［全て｜男のみ｜女のみ］みたいなスイッチで絞り込みをしたいとしましょう。</p>
<p>やり方は色々あるのですが、どうせなら通常「http://あああ.com/・・・/index/page:2/sort:name/derection:asc」とかなってるURLにさらに「/seibetu:1」みたいな独自のパラメータが追加できればいいですよね。</p>
<h3 style="color:#00f;">【namedパラメータが途中で消えないようにしよう（View編）】</h3>
<p>この場合は Viewファイルに</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
// ページネータが自動生成してくれるリンクに独自のパラメータも追加してもらう
if (isset($this-&gt;params['named']['seibetu'])) {
	$paginator-&gt;options(array('url' =&gt; array('seibetu' =&gt; $this-&gt;params['named']['seibetu'])));
}

// 絞り込み用のリンク作成
$str = sprintf(&quot;[ %s | %s | %s ]&quot;,
	$this-&gt;Paginator-&gt;link('全て', array('seibetu'=&gt;'')),
	$this-&gt;Paginator-&gt;link('男のみ', array('seibetu'=&gt;'1')),
	$this-&gt;Paginator-&gt;link('女のみ', array('seibetu'=&gt;'2'))
);
?&gt;
</pre>
<p>と書きます。これでページが変わろうとソート順が変わろうと、絞り込み条件はパラメータとして引き継がれ続けます。</p>
<p>ちなみに余談ですが、上記ソース中「<span style="color:#D48D00;">$paginator</span>」と「<span style="color:#D48D00;">$this->Paginator</span>」は同じ物です。HtmlHelperが「<span style="color:#D48D00;">$html</span>」でも「<span style="color:#D48D00;">$this->Html</span>」でもアクセスできるのと同じです。変数名が短い方がいいか、ヘルパを操作しているのが一目で分かる可読性の高さを好まれるか、お好きな方をどうど。（そりゃ速度性能から言えば$paginatorの方が速いけど、万分の１秒も変わらないだろうから・・・・。）</p>
<h3 style="color:#00f;">【引き継がれた条件で絞り込み検索（Controller編）】</h3>
<p>次はコントローラ側です。ここではリクエストパラメータを受け取って絞り込み検索を行います。Bakeで焼いただけの自動生成されたソースでは</p>
<pre class="brush: php; title: ; notranslate">
	$this-&gt;set('modelNames', $this-&gt;paginate());
</pre>
<p>となっていると思います。これを</p>
<pre class="brush: php; title: ; notranslate">
	$conditions = array();
	if(isset($this-&gt;params['named']['seibetu'])) {
		$seibetu = $this-&gt;params['named']['seibetu'];
		$conditions = array(
			'Person' =&gt; array('seibetu' =&gt; $seibetu)
		);
	}
	$this-&gt;set('persons', $this-&gt;paginate(null, $conditions));
</pre>
<p>といった感じで書き換えればＯＫです。</p>
<h3 style="color:#00f;">【POSTで条件を送る場合（余談）】</h3>
<p>単独ならこれでもいいのですが、複数の条件を入力して１回でドカン！と再検索しようとするとどうしてもフォームを作ってPOSTで送る感じになりますよね。<br />
これこそ実装方式は色々ありますが、かばだんなさんは上記コントローラ編のソースの前に下記のように書いています。</p>
<pre class="brush: php; title: ; notranslate">
	if ($_SERVER['REQUEST_METHOD']=='POST' &amp;&amp; isset($this-&gt;params['data'][$this-&gt;modelNames[0]]['seibetu'])) {
		// ポストされたデータを名前付き変数に再セット
		$this-&gt;params['named']['seibetu']
			= $this-&gt;params['data'][$this-&gt;modelNames[0]]['seibetu'];
		// で、そのまま自分にリダイレクト
		$this-&gt;redirect($this-&gt;params['named']);
	}
</pre>
<p>リダイレクトは不要と思われるかもしれませんね。はい、なくても動きます。<br />
単に かばだんなさん の趣味ですｗ</p>
<p>しかしまぁ、「実装としては何てことはないけど忘れてしまうと大変」というのが、規約系フレームワークの辛い所ですね（苦笑。</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20110731-1297/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20110731-1297/" />
	</item>
		<item>
		<title>JavaScriptでループ毎に一定時間待つ方法</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20110719-1282/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20110719-1282/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 07:04:00 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[b. 技術者かばだんなさん]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1282</guid>
		<description><![CDATA[ぐるぐるループしながら処理を行う際に、一定時間 間をおいてから次の処理をしたい場合は多々あります。 他の言語ですと sleep() や wait() を使えばいいのですが、残念JavaScript にはそのようなコマンド&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20110719-1282/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>ぐるぐるループしながら処理を行う際に、一定時間 間をおいてから次の処理をしたい場合は多々あります。<br />
他の言語ですと sleep() や wait() を使えばいいのですが、残念JavaScript にはそのようなコマンドはありません。まぁJSの使われ所を考えると当然かもしれませんが。<br />
もちろん JavaScript では実現できないって意味じゃありません。setTimeout() があります。でもちょっと実装方法が違うので、最初のうちは少しだけ悩んじゃうんですよね。</p>
<p>先日そういった処理を実装する方法を質問されて、ちょっと説明に苦心しました。忘れてますね~（苦笑。</p>
<p>ということで本日は説明した時の備忘録。</p>
<p><span id="more-1282"></span></p>
<p>まずそれぞれの「待つコマンド」の違いを見てみましょう。</p>
<dl>
<dt>他の言語の sleep() や wait() の役割</dt>
<dd>指定された時間（多くはミリ秒単位）待ってから次の行を実行する。</dd>
<dt>JavaScript のsetTimeout() の役割</dt>
<dd>一定時間後に実行する処理を予約登録し、そのまま次の行を実行する。（ビデオの録画予約を登録したらさっさと次の用事を始める人間の動きに似ています。）</dd>
</dl>
<p>この違いが分からないうちは、</p>
<pre class="brush: jscript; title: ; notranslate">
	alert(&quot;始めるよ&quot;);
	for( i=0; i&lt;10; i++) {
		setTimeout(&quot;alert('Go!')&quot;,2000);
	}
	alert(&quot;お待たせ&quot;);
</pre>
<p>なんてコードを書いてしまいますね。この例ですと「始めるよ」を表示した後（すごい勢いで10件分の予約登録だけしてから）すぐに「お待たせ」が表示され、２秒後に連続10回「Go!」が表示されます。</p>
<p>以上、説明編。</p>
<p>ではどう実装するかですが、例えば配列にパラメータを突っ込んでおいて、その件数分ループしながら４秒に１回処理を行う、というありがちな処理の場合は下記のような実装でどうでしょう。</p>
<pre class="brush: jscript; title: ; notranslate">

// パラメータ
arr = [1,3,24,126,326];
// 実処理の実行
act();

function act() {
	// パラメータが無くなっていれば終了
	if(arr.length==0) return;
	// 配列の先頭を使う
	param = arr[0];

	//TODO: 何かの処理
	alert(param);

	// 処理済みのパラメータ削除
	arr.shift();
	// 次の回の実行予約
	setTimeout(function(){
		act();
	}, 4000);
	// これで１回の処理は終了
}
</pre>
<p>一見 再帰的に呼び出しているように見えるので、「パラメータの件数が増えた時に大丈夫？永久ループでは使えない？」と思われがちですが、あくまで後続の関数呼び出しは「予約登録」を行っているだけで自関数内から呼んでいませんので、再帰ではありません。</p>
<p>ところで若いうちはJavaScriptにsleepもwaitもないと分かると、</p>
<pre class="brush: jscript; title: ; notranslate">
	alert(&quot;始めるよ&quot;);
	for( i=0; i&lt;10; i++) {

		alert(&quot;処理します&quot;);

		// 待ちのための空ループ
		for( j=0; j&lt;10000; j++) {}
	}
	alert(&quot;お待たせ&quot;);
</pre>
<p>とやりがちです。こりゃあもう間違いのセオリーですな（笑。<br />
これはダメです。なぜかというと、このやり方だと割り込みが入らないので、同じページで例えばonclick()なんかを仕込んでおいたとしても処理実行中は聞き入れてくれません。処理が終わるまで固まりっぱなしです。<br />
まぁこういう方式もバッチ処理ならこれもアリかもしれません。JavaScriptでバッチを組むなら・・・。</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20110719-1282/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20110719-1282/" />
	</item>
		<item>
		<title>団扇 買っちゃった</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20110702-1272/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20110702-1272/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 09:29:37 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[c. 個人かばだんなさん]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1272</guid>
		<description><![CDATA[え～昨日、「水うちわ」なるものの存在を偶然知った かばだんなさん。どうしても欲しくなって青山まで買いに行ってしまいました。 あまりの薄さに向こう側がうっすら透けているのがお分かり頂けるでしょうか？ （カメラマンかばだんな&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20110702-1272/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>え～昨日、「水うちわ」なるものの存在を偶然知った かばだんなさん。どうしても欲しくなって青山まで買いに行ってしまいました。</p>
<p><a href="http://kaba-blog.shall-systemservice.co.jp/wp-content/uploads/2011/07/DSC_0012.jpg" rel="lightbox[1272]"><img src="http://kaba-blog.shall-systemservice.co.jp/wp-content/uploads/2011/07/DSC_0012-225x300.jpg" alt="" title="水うちわ" width="225" height="300" class="aligncenter size-medium wp-image-1275" /></a></p>
<p>あまりの薄さに向こう側がうっすら透けているのがお分かり頂けるでしょうか？<br />
（カメラマンかばだんなさんの腕が悪いのですが、実物はもっともっと綺麗で上品です。）<br />
かばだんなさんはこういう職人の仕事が大好きなので、テンションあがりまくりです。</p>
<p>ちなみに制作は<a href="http://www.iedashikou.com/utiwa.html">家田紙工さん</a>。イケてます。</p>
<p>工芸品は使ってナンボと信じているかばだんなさんは、こいつを相棒に夏を乗り切るつもりです。</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20110702-1272/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20110702-1272/" />
	</item>
		<item>
		<title>CakePHP の HABTMって楽ですよ</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20110625-1219/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20110625-1219/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 08:40:17 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1219</guid>
		<description><![CDATA[ちょっと急用でCakePHPで簡単なサイトアプリを書いていたのですが、いや～半年近くやってないとCakeも忘れちゃいますね（汗。 そのサイトで多対多のテーブル連携ってのがありまして。 そのまま書くわけにはいかないので題材&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20110625-1219/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>ちょっと急用でCakePHPで簡単なサイトアプリを書いていたのですが、いや～半年近くやってないとCakeも忘れちゃいますね（汗。</p>
<p>そのサイトで<b>多対多のテーブル連携</b>ってのがありまして。<br />
そのまま書くわけにはいかないので題材を変えると・・・例えば「会議議事録管理システム」としましょうか。</p>
<p>テーブルの構成としては「会議」のテーブルと「メンバー」のテーブルが ｎ：ｎ の関係で連携します。１回の会議には複数人が出席しますし、１人のメンバーは複数回の会議に出席しますからね。<br />
モデルクラス同士のつながりは下記のイメージになります。</p>
<p><a href="http://kaba-blog.shall-systemservice.co.jp/wp-content/uploads/2011/06/cakePHP_HABTM_model.png" rel="lightbox[1219]"><img src="http://kaba-blog.shall-systemservice.co.jp/wp-content/uploads/2011/06/cakePHP_HABTM_model-300x198.png" alt="多対多のモデルイメージ" title="cakePHP_HABTM_model" width="300" height="198" class="aligncenter size-medium wp-image-1220" /></a></p>
<p>このような連携のアプリケーションを実装するために、CakePHPでは「<b>HABTM(hasAndBelongsToMany)</b>」という仕組みを使うわけです。<br />
（サンプルのコードはCakePHP 1.3 を使用しています。）<br />
<span id="more-1219"></span></p>
<h3 style="color:#00f;">== モデルの作成 ==</h3>
<p>CakePHPの場合はモデルクラスはBake で焼いちまった方が早いです。ここで注意すべきは、</p>
<ul>
<li><span style="color:#f11;">中間モデルも（空っぽでいいから）作っておかなくてはダメ</span>。（メンバー情報・会議情報でHABTM定義してるからいらないやと勝手に思って実装したら動きませんでした。）</li>
<li>中間モデルのクラス（ファイル）名は前半分が複数形、後ろ半分が単数形。</li>
</ul>
<p>という事ですかね。</p>
<p>もしあなたがモデルクラスをBakeで自動生成したなら、例えば会議管理クラスファイルには</p>
<pre class="brush: php; title: ; notranslate">
	var $hasAndBelongsToMany = array(
		'Member' =&gt; array(
			'className' =&gt; 'Member',
			'joinTable' =&gt; 'meetings_members',
			'foreignKey' =&gt; 'meeting_id',
			'associationForeignKey' =&gt; 'member_id',
			'unique' =&gt; true,
			'conditions' =&gt; '',
			'fields' =&gt; '',
			'order' =&gt; '',
			'limit' =&gt; '',
			'offset' =&gt; '',
			'finderQuery' =&gt; '',
			'deleteQuery' =&gt; '',
			'insertQuery' =&gt; ''
		)
	);
</pre>
<p>って感じで書かれているでしょう。でしたらもうこれ以上何も要りません。<br />
「Bake様に焼いてもらうような無精は許せん！」という男気溢れるあなたは上記のコードをクラス内に貼り付けるだけです。</p>
<h3 style="color:#00f;">== ビュー・コントローラの作成 ==</h3>
<p>フロントエンドもそんなには難しくないです。参照の方は画面をBakeで焼いてしまえばサンプルがそのまま出来上がりますから省略するとして、更新の方だけ。</p>
<p>例えば会議を登録する時、参加したメンバーをリストボックスから選択したいとしましょう。</p>
<h4>=== リストボックスに表示するデータの取得 ===</h4>
<p>まずコントローラファイル（meetings_controller.php）では画面表示用に事前にメンバー情報を検索しておきます。</p>
<pre class="brush: php; title: ; notranslate">
		$members = $this-&gt;Meeting-&gt;Member-&gt;find('list');
		$this-&gt;set(compact('members'));
</pre>
<p>ちなみにここでsetする変数名ですが、「先頭だけ小文字のキャメルケース」になっていました。例えばテーブル名が「company_members」なら、この変数名は「companyMembers」になります。</p>
<h4>=== 更新画面の入力フォーム ===</h4>
<p>さて画面ファイル（add.ctp）ですが、これはもっと簡単。&lt;form&gt;&lt;/form&gt;内に</p>
<pre class="brush: php; title: ; notranslate">
	&lt;?php // 会議登録画面
		echo $this-&gt;Form-&gt;input('title');
		echo $this-&gt;Form-&gt;input('when');
		echo $this-&gt;Form-&gt;input('place');
		echo $this-&gt;Form-&gt;input('Member'); // ←この１行追加
	?&gt;
</pre>
<p>と１行追加するだけで、出席者をリストボックスから選択する事が出来るようになります。</p>
<p>余談ですが、このctpによって生成されるHTMLは、</p>
<pre class="brush: xml; title: ; notranslate">
&lt;select name=&quot;data[Member][Member][]&quot; multiple=&quot;multiple&quot; id=&quot;MemberMember&quot;&gt;
&lt;option value=&quot;25&quot;&gt;かばだんなさん&lt;/option&gt;
&lt;option value=&quot;26&quot;&gt;若旦那さん&lt;/option&gt;
&lt;option value=&quot;27&quot;&gt;バカ旦那さん&lt;/option&gt;
&lt;option value=&quot;28&quot;&gt;大旦那さん&lt;/option&gt;
&lt;/select&gt;
</pre>
<p>となります。「data[Member][Member]」は「data[Meeting][Member]」と書きたい気もしますが、これが正しいです。気持ち悪いけど。</p>
<p>さらに余談ですが、登録画面で情報を入力してSubmitボタンを押した場合、コントローラに渡されるデータ（$this->data）は</p>
<pre style="background-color:#FFCC00">
Array
(
    [Meeting] => Array
        (
            [title] => 今日のお昼にチキン南蛮弁当は妥当かどうか
            [when] => Array
                (
                    [month] => 06
                    [day] => 25
                    [year] => 2011
                )
            [place] => 本社大会議室
        )
    [Member] => Array
        (
            [Member] => Array
                (
                    [0] => 26
                    [1] => 27
                )
        )
)
</pre>
<p>てな感じです。（ひどい議題の会議もあったもんですが。）</p>
<h4>=== コントローラに戻って更新処理 ===</h4>
<p>さてコントローラに渡った後の更新処理ですが、これも普通にMeetingテーブルを更新するだけです。具体的にはコントローラ内で、</p>
<pre class="brush: php; title: ; notranslate">
if (!empty($this-&gt;data)) {
	$this-&gt;Meeting-&gt;create();
	if ($this-&gt;Meeting-&gt;save($this-&gt;data)) {
		$this-&gt;Session-&gt;setFlash('登録成功だぜ！', true));
		$this-&gt;redirect(array('action' =&gt; 'index'));
	} else {
		$this-&gt;Session-&gt;setFlash('エラーだぜ！', true));
	}
}
</pre>
<p>と、普通にMeetingの登録を行うと、自動的に中間テーブルの更新（今回の例ですと２行追加）もやってくれます。Meetingの削除を行えば関連する中間テーブルのレコードも削除してくれます。</p>
<p>以上、ホント簡単ですね。</p>
<h3 style="color:#00f;">～～ 中間テーブルに１件しか登録しないと分かってる場合 ～～</h3>
<p>「こんなの ｎ：ｎにする必要ないじゃないか」と言われてしまいそうですが、モデル的にはｎ：ｎでもこの機能では１：ｎ なんて局面はあるもんです。<br />
例えば上記の例で、会議登録時には登録者として自分だけの中間レコードが登録されるだけでいいや、みたいな時ですね。<br />
その場合、もう少しシンプルにすることができます。</p>
<p>まず入力フォームですが、わざわざ入力させる必要もないのでhiddenにメンバーIDを埋め込んで送ってもらうとします。</p>
<pre class="brush: php; title: ; notranslate">
	&lt;?php // 会議登録画面
		echo $this-&gt;Form-&gt;hidden('Member', array('value'=&gt;24));
	?&gt;
</pre>
<p>これで生成されるHTMLは、</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;hidden&quot; name=&quot;data[Member][Member]&quot;
        value=&quot;24&quot; id=&quot;MemberMember&quot; /&gt;
</pre>
<p>となります。</p>
<p>Submitボタンを押してコントローラに渡されるデータ（$this->data）は</p>
<pre style="background-color:#FFCC00">
Array
(
    [Meeting] => Array
        (
                    <<省略します>>
        )
    [Member] => Array
        (
            [Member] => 24
        )
)
</pre>
<p>てな感じです。これで複数件の時と同様に、中間テーブルの更新もCakeが自動でやってくれます。</p>
<p>以上、「CakePHPのHABTMは分かりにくいので中間テーブル操作は自作した方が早い」って方を見かけたので、実はそんなに大変でもないよ、というご紹介でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20110625-1219/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20110625-1219/" />
	</item>
		<item>
		<title>暑いですねぇ・・・</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20110624-1214/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20110624-1214/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 08:15:13 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[c. 個人かばだんなさん]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1214</guid>
		<description><![CDATA[しっかし、ホントに暑いですねぇ。 本日とうとう今年初めてエアコンを使ってしまいました。とは言っても１時間ぐらいですが。 ちょっと体調微妙だったんで無理は禁物かな、と。 節電って確かに大事ですけど、体壊しちゃ何にもなりませ&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20110624-1214/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>しっかし、ホントに暑いですねぇ。</p>
<p>本日とうとう今年初めてエアコンを使ってしまいました。とは言っても１時間ぐらいですが。<br />
ちょっと体調微妙だったんで無理は禁物かな、と。</p>
<p>節電って確かに大事ですけど、体壊しちゃ何にもなりませんからね（笑。</p>
<p>ちなみに かばだんなさんは節電対策として、プリンターのコンセントを使わない間は抜いておくようにしています。これ、目に見えて電気代が減りますね。</p>
<p>みなさん頑張って暑さを乗り切りましょう～</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20110624-1214/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20110624-1214/" />
	</item>
		<item>
		<title>麻生さんが来てた</title>
		<link>http://kaba-blog.shall-systemservice.co.jp/20110519-1199/</link>
		<comments>http://kaba-blog.shall-systemservice.co.jp/20110519-1199/#comments</comments>
		<pubDate>Thu, 19 May 2011 10:16:04 +0000</pubDate>
		<dc:creator>かばだんなさん</dc:creator>
				<category><![CDATA[c. 個人かばだんなさん]]></category>

		<guid isPermaLink="false">http://kaba-blog.shall-systemservice.co.jp/?p=1199</guid>
		<description><![CDATA[今日の夕方、用事があって浦安駅の前を通りがかったら、ロータリーに止めた街宣車の上で麻生太郎さんが演説してました。 普段だったらスルーなのですが、かばだんなさんは麻生系列の飯塚病院で生まれましたので通り過ぎる事ができません&#160;&#160;<a href="http://kaba-blog.shall-systemservice.co.jp/20110519-1199/"><<続きを読む>></a>]]></description>
			<content:encoded><![CDATA[<p>今日の夕方、用事があって浦安駅の前を通りがかったら、ロータリーに止めた街宣車の上で<a href="http://ja.wikipedia.org/wiki/%E9%BA%BB%E7%94%9F%E5%A4%AA%E9%83%8E">麻生太郎</a>さんが演説してました。</p>
<p>普段だったらスルーなのですが、かばだんなさんは麻生系列の<a href="http://ja.wikipedia.org/wiki/%E9%A3%AF%E5%A1%9A%E7%97%85%E9%99%A2">飯塚病院</a>で生まれましたので通り過ぎる事ができません。そのまま５分ぐらい聞いてました。</p>
<p>「浦安の地価が下がったという事はすなわち皆さんの財産が目減りしたという事だ」という麻生さんらしい いかにも経済人的な発想や、積極財政政策によって財政安定化を狙う考え方などは かばだんなさんは非常に評価しているのですが、「なんだか分かんないうちにココに立つ事になっちゃった」とか・・・麻生さん～、それはちょっと笑いづらいのですが・・・（苦笑。</p>
<p>え、今日の演説で一番心に残った言葉ですか？<br />
<strong>『亭主と政権は変えるのは意外と大変』</strong><br />
ですかね（笑。</p>
<p>だってそこだけ聞いたら、「大変だから自民党にもう１回戻すのはやめよう」って話になりかねないじゃないですか。いや、話の流れでいうと「だから民主党に変えたのは失敗だったんですよ」って意味だってのは分かってるんですけどね（笑。</p>
<p>麻生さんは経済と漫画の話以外はしない方がいいんじゃないかと思ったかばだんなさんでした～。</p>
]]></content:encoded>
			<wfw:commentRss>http://kaba-blog.shall-systemservice.co.jp/20110519-1199/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kaba-blog.shall-systemservice.co.jp/20110519-1199/" />
	</item>
	</channel>
</rss>

