<?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/"
	>

<channel>
	<title>Clotho の偶感録</title>
	<atom:link href="http://kagura-c.info/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://kagura-c.info/blog</link>
	<description>人生の切り出し</description>
	<lastBuildDate>Thu, 02 Feb 2012 09:01:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CakePHP 1.2 の Shell から Task のメソッドを呼ぶ方法</title>
		<link>http://kagura-c.info/blog/2012/02/02/how_to_call_a_method_from_cakephp_tasks/</link>
		<comments>http://kagura-c.info/blog/2012/02/02/how_to_call_a_method_from_cakephp_tasks/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 08:58:58 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[軟]]></category>
		<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=395</guid>
		<description><![CDATA[基本のキだとは思うんだけど。 シェルの内部からタスクのメソッドを呼び出す方法について，Cookbook はまじめに書いてないのでメモ。 以下のようなタスクがあるとき， class SoundTask extends Sh [...]]]></description>
			<content:encoded><![CDATA[<p>基本のキだとは思うんだけど。<br />
シェルの内部からタスクのメソッドを呼び出す方法について，<a href="http://book.cakephp.org/1.2/ja/view/112/">Cookbook</a> はまじめに書いてないのでメモ。<br />
<span id="more-395"></span></p>
<p>以下のようなタスクがあるとき，</p>
<pre>
class SoundTask extends Shell {
    function execute() {}

    function foobar()
    {
        $this->out('foobar!');
    }
}
</pre>
<p>次のようにシェルの内部から呼び出せる。</p>
<pre>
class SeaShell extends Shell
{
    var $tasks = array('Sound');
    function main() {
        $this->Sound->foobar();
    }
}
</pre>
<pre>
$ cd /var/www/my_app/app
$ ../cake/console/cake sea

Welcome to CakePHP v1.2.10 Console
---------------------------------------------------------------
App : app
Path: /var/www/my_app/app
---------------------------------------------------------------
foobar!
</pre>
<p>こんだけ。</p>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2012/02/02/how_to_call_a_method_from_cakephp_tasks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP の updateAll() で Boolean 型を update しようとしたらハマったお話し</title>
		<link>http://kagura-c.info/blog/2011/12/10/failed_to_update_boolean_value_with_updateall/</link>
		<comments>http://kagura-c.info/blog/2011/12/10/failed_to_update_boolean_value_with_updateall/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 11:59:35 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[軟]]></category>
		<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=392</guid>
		<description><![CDATA[タイトルどおりなんだけど，CakePHP 1.2.10 の話ね。 以下で true として渡してるところがキモ。 < ?php $delete_conditions = array( 'Post.id' => $post [...]]]></description>
			<content:encoded><![CDATA[<p>タイトルどおりなんだけど，CakePHP 1.2.10 の話ね。</p>
<p>以下で <tt>true</tt> として渡してるところがキモ。</p>
<pre>
< ?php
$delete_conditions = array(
    'Post.id' => $post_ids,
);
$this->updateAll(array('Post.is_deleted' => true), $delete_conditions);
?>
</pre>
<p>DB で Boolean のカラムなので PHP の Boolean 型を渡すと失敗する。<br />
<tt>DboSource::_prepareUpdateFields()</tt> の中で，<tt>(Boolean)true</tt> を <tt>str_replace()</tt> で置換しようとしてるところがあって，PHP のステキ自動キャストのせいで <tt>(Boolean)true -> (Integer)1 -> (String)'1'</tt> みたいに変化してるらしくて，最終的に発行される SQL クエリがおかしくなる。</p>
<p>以下のようにすればオッケー。</p>
<pre>
< ?php
$delete_conditions = array(
    'Post.id' => $post_ids,
);
$this->updateAll(array('Post.is_deleted' => 'true'), $delete_conditions);
?>
</pre>
<p><tt>'true'</tt> と文字列で渡すのがキモ。</p>
<p>他のメソッドは PHP の Boolean で渡せるのに。まったくもー。</p>
<p>1.3 系だと直ってるのか？　2.0 が proof されるまで待つつもりなんだけどな。</p>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/12/10/failed_to_update_boolean_value_with_updateall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>買った飯盒の端部バリ取り</title>
		<link>http://kagura-c.info/blog/2011/08/07/deburring_mess_kit/</link>
		<comments>http://kagura-c.info/blog/2011/08/07/deburring_mess_kit/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 15:19:32 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[旅]]></category>
		<category><![CDATA[硬]]></category>
		<category><![CDATA[山道具]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=386</guid>
		<description><![CDATA[トランギアのラージメスティンという飯盒を買った。 プレスしただけらしくバリが残っている。 使うのが自分だけなら気にしないのだが，そうもいかないのでダイヤモンドやすりでがしがし処理した。 来週土曜がたのしみ。]]></description>
			<content:encoded><![CDATA[<p>トランギアのラージメスティンという飯盒を買った。</p>
<p><a href="http://farm7.static.flickr.com/6132/6014279639_b93efebf8d_b.jpg" class="fancybox" onclick="return hs.expand(this,{captionId: 'caption1'})"><img src="http://farm7.static.flickr.com/6132/6014279639_b93efebf8d.jpg"/></a></p>
<p>プレスしただけらしくバリが残っている。<br />
使うのが自分だけなら気にしないのだが，そうもいかないのでダイヤモンドやすりでがしがし処理した。</p>
<p>来週土曜がたのしみ。</p>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/08/07/deburring_mess_kit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP 1.2.10 を PostgreSQL で使っているときに Fixture で SERIAL 型に INSERT すると SEQUENCE がインクリメントされない</title>
		<link>http://kagura-c.info/blog/2011/06/28/update_sequence_failure_on_cakephp_1-2_with_postgres/</link>
		<comments>http://kagura-c.info/blog/2011/06/28/update_sequence_failure_on_cakephp_1-2_with_postgres/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 05:03:07 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[軟]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=378</guid>
		<description><![CDATA[　なんでバグチケットみたいなタイトルなんだろう。まいいや。 　CakePHP でアプリを作ると，モデルへ新規レコードを保存 (AppModel::save()) するときには id （SERIAL 型とか AUTO_IN [...]]]></description>
			<content:encoded><![CDATA[<p>　なんでバグチケットみたいなタイトルなんだろう。まいいや。</p>
<p>　CakePHP でアプリを作ると，モデルへ新規レコードを保存 (AppModel::save()) するときには id （SERIAL 型とか AUTO_INCREMENT 属性とか）のデータを与えず，DB の自動生成に任せることが多いと思う。<br />
　ところが UnitTest の fixture を書くときには，id も固定値でないと想定外の結果になったりして assertion が書けなくなってしまうので，id も与えて INSERT するようにテストデータを定義したい。</p>
<p>　ここで問題が発生する。</p>
<p>　PostgreSQL の場合，自動で挿入した id を記録しておくために SERIAL 型のレコード毎に SEQUENCE を持って保存しているんだが，SEQUENCE は SERIAL 型の DEFAULT 値に設定されている nextval() が生成した id を使っているため， fixture のようにアプリケーションが id を指定して INSERT してしまうと SEQUENCE を更新する奴が誰もいなくなってしまう，というおはなし。<br />
　Cake on MySQL でどうなってるのかは知らん。</p>
<p>　というわけで，これに対処するために CakeTestFixture を継承した AppTestFixture でも作って <tt>app/tests</tt> にでも置いておく。</p>
<pre>
< ?php
class AppTestFixture extends CakeTestFixture
{
    function insert(&#038;$db)
    {
        $result = parent::insert($db);
        if (array_key_exists('id', $this->fields)
            &#038;&#038; $this->fields['id']['type'] == 'integer'
            &#038;&#038; $this->fields['id']['key'] == 'primary'
        ) {
            $db->fetchAll("SELECT pg_catalog.setval(pg_get_serial_sequence('{$this->table}', 'id')"
                . ", (SELECT MAX(id) FROM {$this->table}), true);", false);
        }
        return $result;
    }
}
</pre>
<p>　あとはこれを継承して fixture を書けばおけ。</p>
<pre>
< ?php
require_once TESTS . 'app_test_fixture.php';

class HogeFixture extends AppTestFixture
{
    var $name = 'Hoge';
    var $import = array('table' => 'hoges', 'connection' => 'default');
    var $fields = array(
        0 => array(
            'id' => 1,
            'foo' => 'bar',
        ),
        1 => '以下略',
    );
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/06/28/update_sequence_failure_on_cakephp_1-2_with_postgres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GrowlHelperApp がいつの間にか沈黙している</title>
		<link>http://kagura-c.info/blog/2011/06/24/make_tool_for_stucking_growl_watch/</link>
		<comments>http://kagura-c.info/blog/2011/06/24/make_tool_for_stucking_growl_watch/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 03:19:39 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[軟]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=376</guid>
		<description><![CDATA[　Mac OS の定番アプリ，Growl 1.2.2 を使っているんだけど，しばらく放っておくと GrowlHelperApp が死んでてポップアップが表示されなくなってしまう。 　とりあえずプロセス情報から適当に推測し [...]]]></description>
			<content:encoded><![CDATA[<p>　Mac OS の定番アプリ，Growl 1.2.2 を使っているんだけど，しばらく放っておくと GrowlHelperApp が死んでてポップアップが表示されなくなってしまう。</p>
<p>　とりあえずプロセス情報から適当に推測して，思い立ったら GrowlHelperApp を再起動するスクリプトを書いてみた。</p>
<p>　適当なところに置いて <tt>chmod +x</tt> して実行すればおっけー。再起動したら Growl でポップしてお知らせしてくれる。</p>
<p><script src="https://gist.github.com/1044146.js?file=growl_watch.rb"></script></p>
<p>　手元の Git リポジトリで管理してるんだけど，この際だからブログのために gist を使ってみたり。</p>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/06/24/make_tool_for_stucking_growl_watch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>鍋割山 写真だけ日記</title>
		<link>http://kagura-c.info/blog/2011/06/06/mt_nabewariyama/</link>
		<comments>http://kagura-c.info/blog/2011/06/06/mt_nabewariyama/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 00:02:39 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[旅]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=366</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://farm4.static.flickr.com/3208/5799545575_0726b5cb81_b.jpg" class="fancybox" onclick="return hs.expand(this,{captionId: 'caption1'})"><img src="http://farm4.static.flickr.com/3208/5799545575_0726b5cb81.jpg"/></a></p>
<div id="flickr_post201106060856_925" class="slickr-flickr-slideshow landscape medium" onClick="slickr_flickr_next_slide(this);"><div class="active"><img  src="http://farm4.staticflickr.com/3054/5799568181_f2927e49aa.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2466/5800121162_a792728f9f.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2111/5799565537_273896dbac.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm4.staticflickr.com/3492/5799565127_e79cdcc094.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm4.staticflickr.com/3361/5800118036_45be84d073.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2324/5799564185_6c319b9a4b.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2359/5800116350_de44823d98.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm4.staticflickr.com/3270/5800115914_d3910c11fb.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm4.staticflickr.com/3428/5799559479_144699879f.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2661/5800110266_44429d6679.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2512/5799556479_b8872003ac.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2215/5799555931_8384444db0.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm6.staticflickr.com/5316/5799553097_9975b57068.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2355/5800103704_2c5616d1c7.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2733/5800102334_b37fd019da.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2797/5800100336_bf8b3ff787.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2590/5800097364_58009552c2.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2547/5800096856_d5d7f7943b.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm4.staticflickr.com/3371/5800096346_82dfe03e4f.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div><div><img  src="http://farm3.staticflickr.com/2376/5800095434_c266464d86.jpg" alt="" title="(Untitled)" /><p>(Untitled)</p></div></div><div style="clear:both"></div><script type="text/javascript">jQuery("#flickr_post201106060856_925").data("delay","5");jQuery("#flickr_post201106060856_925").data("autoplay","on");</script>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/06/06/mt_nabewariyama/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP のあるアクションから，他のアクションの HTML 出力を取得したい</title>
		<link>http://kagura-c.info/blog/2011/05/18/requestaction_with_layout/</link>
		<comments>http://kagura-c.info/blog/2011/05/18/requestaction_with_layout/#comments</comments>
		<pubDate>Wed, 18 May 2011 14:20:04 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[軟]]></category>
		<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=363</guid>
		<description><![CDATA[CakePHP (1.2.9) で 自分自身に HTTP ソケット通信する方法。 ふつーは Object::requestAction() で取得できるじゃんとか思うんだろうけど，$this->layout が適用されな [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP (1.2.9) で 自分自身に HTTP ソケット通信する方法。<br />
ふつーは <tt>Object::requestAction()</tt> で取得できるじゃんとか思うんだろうけど，<tt>$this->layout</tt> が適用されなくて悩み右往左往した，というおはなし。</p>
<p>とあるコントローラのアクションにて，まず URI をつくる。ホストとか入ってない (ex: <tt>/posts/view/1</tt>) ので付け足す。</p>
<pre>
App::import('Helper', 'Html');
$html = new HtmlHelper();
$uri = 'http://localhost' . $html->url(array(
    'controller' => 'posts',
    'action' => 'view',
    'id' => $id,
));
</pre>
<p>ソケット通信も簡単。<br />
でもこれリクエスト投げてサーバのアクセスログに残ったとこまでしか確認してないから注意ね。検証してくれ。</p>
<pre>
uses('http_socket');
$socket = new HttpSocket();
$cookies = array();
foreach ($_COOKIE as $name => $val) {
    $cookies[$name] = array(
        'value' => $val,
    );
}

$res = $socket->request( array(
	'method' => 'GET',
	'uri' => $uri,
	'cookies' => $cookies,
));
</pre>
<p>このコードを実験していて，たいへん遅くてやばいと思ったので 「<tt>Object::requestAction()</tt> で layout を適用する方法」 を調査するのに戻った。</p>
<p>あった。</p>
<pre>
$posted_html = $this->requestAction(array(
    'controller' => 'posts',
    'action' => 'view',
    'id' => $id,
), array(
    'return',
    'bare' => 0,
));
</pre>
<p><tt>'bare' => 0</tt> をつければいけるという情報を<a href="http://stackoverflow.com/questions/1001931/cakephp-generate-layout-content-as-a-string">英語の Q and A サイト</a>で発見。何という徒労感…… orz</p>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/05/18/requestaction_with_layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>死んだ皮、生きた革</title>
		<link>http://kagura-c.info/blog/2011/04/29/%e6%ad%bb%e3%82%93%e3%81%a0%e7%9a%ae%e3%80%81%e7%94%9f%e3%81%8d%e3%81%9f%e9%9d%a9%e3%80%82/</link>
		<comments>http://kagura-c.info/blog/2011/04/29/%e6%ad%bb%e3%82%93%e3%81%a0%e7%9a%ae%e3%80%81%e7%94%9f%e3%81%8d%e3%81%9f%e9%9d%a9%e3%80%82/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 10:39:10 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[硬]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=360</guid>
		<description><![CDATA[　MBT のシューズ買った。 　MBT フォロワーであるスケッチャーズのシェイプ・アップス （後ろの黒いの） を Amazon でぽちってたんだが，わたしの筋量だとふつーに安定してしまうので，本家本元が欲しくなったのであ [...]]]></description>
			<content:encoded><![CDATA[<p>　MBT のシューズ買った。</p>
<p><a href="http://farm6.static.flickr.com/5108/5649572821_7f581878ee_b.jpg" class="fancybox" onclick="return hs.expand(this,{captionId: 'caption1'})"><img src="http://farm6.static.flickr.com/5108/5649572821_7f581878ee.jpg"/></a></p>
<p>　MBT フォロワーであるスケッチャーズのシェイプ・アップス （後ろの黒いの） を Amazon でぽちってたんだが，わたしの筋量だとふつーに安定してしまうので，本家本元が欲しくなったのである。</p>
<p>　違うデザインならスケッチャーズも無駄にならずに済むかな，と思って革製を買ったので，使う前に前処理した。<br />
　わたしが革をメンテするときは，革用のクリーナーと 「ラナパー」 で終わらせてしまうのでらくちん。MBT は汚れていないのでクリーナーを使わずにラナパーで一拭き。</p>
<p><a href="http://farm6.static.flickr.com/5228/5649573707_f2928626f6_b.jpg" class="fancybox" onclick="return hs.expand(this,{captionId: 'caption1'})"><img src="http://farm6.static.flickr.com/5228/5649573707_f2928626f6.jpg"/></a></p>
<p>　左側 （右足） のみ処理してみたところ。<br />
　どう違うのかわかりにくいほどさりげない艶になるので良い。この革 （ステアハイド） の 「銀」 はそんなにぴかぴか光らない。</p>
<p>　ついでに他の革製品もやっておいた。めんどくさがりなので，年に 2 〜 3 回しかやらないのである。一気にやっておかないと忘れてしまう。</p>
<p><a href="http://farm6.static.flickr.com/5144/5650138706_9dbc4cff1e_b.jpg" class="fancybox" onclick="return hs.expand(this,{captionId: 'caption1'})"><img src="http://farm6.static.flickr.com/5144/5650138706_9dbc4cff1e.jpg"/></a></p>
<p>　カバンの取っ手は汚れやすくて艶が戻りにくい。でも磨きすぎると銀を喪って取り返しが付かなくなる。<br />
　暇があるなら毎月ちょっとずつクリーナーを使えばいいんだが，どうせ汚れるものだしそこまでこだわらない。</p>
<p><a href="http://farm6.static.flickr.com/5224/5649575373_244f505865_b.jpg" class="fancybox" onclick="return hs.expand(this,{captionId: 'caption1'})"><img src="http://farm6.static.flickr.com/5224/5649575373_244f505865.jpg"/></a></p>
<p>　油脂を喪いかけてたのでラナパーで補給。<br />
　革は死んだ細胞でできているので，腐らせないためになめしを行う。細胞内のタンパク質を薬品で処理して架橋させるのだが，これでごわごわになった革を柔らかくするために油で処理する。<br />
　革は新陳代謝しないので，この油は自分で補給する必要があるのだ。ラナパーはホホバオイルの他に蜜蝋が含まれているので，表面の保護もできる。</p>
<p>　ほかにも小物をいくつかやっつけた。<br />
　こうしてメンテすれば革製品は長持ちする。財布は高校生から 15 年弱使っているのだが，革より先に縫製糸がめげてきた。</p>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/04/29/%e6%ad%bb%e3%82%93%e3%81%a0%e7%9a%ae%e3%80%81%e7%94%9f%e3%81%8d%e3%81%9f%e9%9d%a9%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>玄箱 HG (Debian GNU/Linux 4 etch) を (Debian 6 squeeze) へアップデート （メモ）</title>
		<link>http://kagura-c.info/blog/2011/04/21/draft_of_update_etch_on_kurohg_to_squeeze/</link>
		<comments>http://kagura-c.info/blog/2011/04/21/draft_of_update_etch_on_kurohg_to_squeeze/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 17:41:05 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[感]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=349</guid>
		<description><![CDATA[　職場のマシンにメモ置きっぱなしが邪魔くさいのでブログに移しておく。 　手順にないけど Debian 5 lenny まではアップデート済み。 　Debian にふつーに ssh でログインして作業したときのもの。この手 [...]]]></description>
			<content:encoded><![CDATA[<p>　職場のマシンにメモ置きっぱなしが邪魔くさいのでブログに移しておく。</p>
<p>　手順にないけど Debian 5 lenny まではアップデート済み。<br />
　Debian にふつーに ssh でログインして作業したときのもの。この手順は <tt>/etc/fstab</tt> の編集を忘れてるので，このまま実行すると玄箱死ぬよ。<br />
　あとで HDD 抜いて Linux マシンにつなげて直す予定。</p>
<pre>
sudo apt-get install fakeroot kernel-package linux-source-2.6
cd ~/src

## make mkimage on u-boot
#wget ftp://ftp.denx.de/pub/u-boot/u-boot-1.2.0.tar.bz2
#tar xjvf u-boot-1.2.0.tar.bz2
#cd u-boot-1.2.0
wget ftp://ftp.denx.de/pub/u-boot/u-boot-2011.03.tar.bz2
tar xjf u-boot-2011.03.tar.bz2
cd u-boot-2011.03/
export OBJTREE=`pwd`
export SRCTREE=`pwd`
export TOPDIR=`pwd`
make linkstation_HGLAN_config
make
sudo dd if=u-boot.bin of=/dev/mtdblock1 bs=1k
# cd tools/
# make mkimage
# sudo mv /usr/local/bin/mkimage /usr/local/bin/mkimage.old
sudo cp -p ./tools/mkimage /usr/local/bin/mkimage-2011.3
sudo ln -s /usr/local/bin/mkimage-2011.3 /usr/local/bin/mkimage
sudo dd if=u-boot.bin of=/dev/mtdblock1 bs=1k

## Kernel
cd ~/src
tar xjf /usr/src/linux-source-2.6.32.tar.bz2
sudo apt-get install -y libncurses5-dev
cd linux-source-2.6.32
make ARCH=powerpc linkstation_defconfig
cp -p .config .config.orig
make menuconfig
## CONFIG_SYSFS_DEPRECATED=n
## CONFIG_SIGNALFD=y
## CONFIG_INOTIFY_USER=y
fakeroot make-kpkg clean
fakeroot make-kpkg --initrd --revision=KuroboxHG.private.1.0 kernel_image modules_image
# fakeroot make uImage
# sudo make modules
# sudo make modules_install
fakeroot scripts/dtc/dtc -f -I dts -O dtb -o /tmp/kuroboxHG.dtb arch/powerpc/boot/dts/kuroboxHG.dts
sudo dpkg -i ../linux-image-2.6.32_KuroboxHG.private.1.0_powerpc.deb
sudo mv /boot/uImage /boot/uImage.old-20110413
sudo mv /boot/System.map /boot/System.map.old-20110413
sudo cp -p ./arch/powerpc/boot/uImage /boot/
sudo cp -p ./System.map /boot/
sudo cp /tmp/kuroboxHG.dtb /boot/

# Fail! /etc/fstab で hdd のデバイス名を変える！
sudo reboot
</pre>
<h3>参考文書</h3>
<ul>
<li><a href="http://www.tkn.mydns.jp/blog/?m=20110207">玄箱HGのカーネルを2.6.37へ更新 (lenny→squeeze対応)</a></li>
<li><a href="http://www.tkn.mydns.jp/blog/?p=1451">玄箱HGのDebian lennyをsqueezeにアップグレード</a></li>
<li><a href="http://www.debian.org/releases/stable/powerpc/release-notes/ch-upgrading.ja.html">第4章 Debian 5.0 (lenny) からのアップグレード</a></li>
<li><a href="http://www.debian.org/releases/stable/i386/ch08s06.html.ja">8.6. 新しいカーネルのコンパイル</a></li>
<li><a href="http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2FTeraStation%2F%E7%8E%84%E7%AE%B1%2FPPC%2FDebian%2FSqueeze">LinkStation/TeraStation/玄箱/PPC/Debian/Squeeze</a></li>
<li><a href="http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#oa123848">LinkStation/玄箱/kernel</a></li>
<li><a href="http://yahho.ii2.cc/modules/bwiki/index.php?%B8%BC%C8%A2HG%A1%A1Debian%A1%A1%BC%AB%C2%F0%A5%B5%A1%BC%A5%D0%B2%BD%C1%ED%CA%D4#g690aef9" class="broken_link">Top / 玄箱HG　Debian　自宅サーバ化総編</a></li>
<li><a href="http://www005.upp.so-net.ne.jp/develop-tom/nas/upgrade-squeeze-kuro-hg.html">玄箱HGをlennyからsqueezeにアップグレードする(powerpc)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/04/21/draft_of_update_etch_on_kurohg_to_squeeze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSD を修復するとネットも繋がるミラクル</title>
		<link>http://kagura-c.info/blog/2011/04/20/configured_ethernet/</link>
		<comments>http://kagura-c.info/blog/2011/04/20/configured_ethernet/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 00:26:38 +0000</pubDate>
		<dc:creator>Clotho Moirai</dc:creator>
				<category><![CDATA[軟]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://kagura-c.info/blog/?p=346</guid>
		<description><![CDATA[　というわけで Snow Leopard のインストール DVD を挿入し再起動して，画面がブラックアウトしたあたりから &#8220;C&#8221; を押しっぱなしにし DVD の OS インストール画面を見た訳よ。 [...]]]></description>
			<content:encoded><![CDATA[<p>　というわけで Snow Leopard のインストール DVD を挿入し再起動して，画面がブラックアウトしたあたりから &#8220;C&#8221; を押しっぱなしにし DVD の OS インストール画面を見た訳よ。<br />
　ここからユーティリティメニュー辿って &#8220;ディスクユーティリティ&#8221; をポチッとな。</p>
<p>　でディスク修復をかけたら HFS+ のジャーナルか何かから修復ができたらしく成功したのでついでにもう一度アクセス権修復してから SSD で再起動。</p>
<p>　するとだな，ネット (Ethernet) も繋がったんだな。</p>
<p>　Mac OS X がおかしくなったときはまずアクセス権を見る。ディスクチェックする。で何が何だかいまいち判らないが直ってしまう。イミフ。<br />
　ちなみに他の Linux 触っててシステムのファイルアクセス権が勝手に変わってるとこなんか見たことない。イミフ。</p>
<p>　これで直らなかったら，Mac のハードウェアに載ってる PRAM や SMC をクリアすると直ることもある。PRAM や SMC は PC で言うと BIOS の中身保存してる CMOS みたいなもん。PC で CMOS クリアが必要な障害なんて遭ったことない。イミフ。</p>
<p>　まー繋がったから良しとしよう。</p>
]]></content:encoded>
			<wfw:commentRss>http://kagura-c.info/blog/2011/04/20/configured_ethernet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

