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

<channel>
	<title>クソゲ～製作所</title>
	<atom:link href="http://decomo.info/diary/feed" rel="self" type="application/rss+xml" />
	<link>http://decomo.info/diary</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Tue, 22 Jun 2010 08:07:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>シングルトン（）笑</title>
		<link>http://decomo.info/diary/20100618</link>
		<comments>http://decomo.info/diary/20100618#comments</comments>
		<pubDate>Fri, 18 Jun 2010 13:47:10 +0000</pubDate>
		<dc:creator>Decomo</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://decomo.info/diary/?p=20</guid>
		<description><![CDATA[
会社でこんなソースを見かけた。所々端折ってるけど、処理の本質は抑えてある。


?View Code CPPclass Hoge
&#123;
public:
    static Hoge *Instance;
   [...]]]></description>
			<content:encoded><![CDATA[<p>
会社でこんなソースを見かけた。所々端折ってるけど、処理の本質は抑えてある。
</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p20code2'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p202"><td class="code" id="p20code2"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">class</span> Hoge
<span style="color: #008000;">&#123;</span>
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
    <span style="color: #0000ff;">static</span> Hoge <span style="color: #000040;">*</span>Instance<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">static</span> Hoge <span style="color: #000040;">*</span>getInstance<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000ff;">return</span> Instance<span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
    Hoge<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        Instance <span style="color: #000080;">=</span> <span style="color: #0000dd;">this</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> initialize<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Instance <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> Instance <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> Hoge<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    （略）
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">// シングルトン</span>
<span style="color: #0000ff;">static</span> Hoge hogeInstance<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> doSomething<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    hogeInstance<span style="color: #008080;">::</span><span style="color: #007788;">Instance</span><span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>func<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>
見かけたというか、同じ仕組みのクラスがあっちこっちに散らばってた。念のために言っておく、コードはこれで間違いない。何度も見直したからねw
</p>
<p>
色々と突っ込みどころはあるけど、まず、シングルトンを想定してるのにコンストラクタがpublicって…。
</p>
<p>
いやいやいや、グループ会社内で（自称）一番技術力が高いと公言してるところの、仮にも俺より高給取りで優秀なプログラマが書いたコードだ。きっと俺なんぞには考えもつかない、深遠なる理由があるに違いない。
</p>
<p>
でも、色々と考えてみたけど、やっぱり何がしたいのか解らなかった。しかし、<em>メンバ変数を触らないメンバ関数は、クラスの実体が無くても正常に呼べる</em>って事は解った（実験済み）。つまり、上のクラスの<code>initialize()</code>は期待通りの動作をする。これがC++の仕様の範疇かどうかは知らない。
</p>
<p>
静的メンバ関数がヌルポで呼び出せる（<code>static_cast&lt;Hoge*&gt;(0)-&gt;staticFunc();</code>）のは知ってたけど、メンバ関数も大丈夫だとはねぇ…。よーく考えてみれば、確かに呼べてもおかしくないはない感じはするが、やっぱり気持ち悪い。</p>
]]></content:encoded>
			<wfw:commentRss>http://decomo.info/diary/20100618/feed</wfw:commentRss>
		</item>
		<item>
		<title>DiskWarrior神</title>
		<link>http://decomo.info/diary/20090917</link>
		<comments>http://decomo.info/diary/20090917#comments</comments>
		<pubDate>Wed, 16 Sep 2009 18:18:27 +0000</pubDate>
		<dc:creator>Decomo</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://decomo.info/diary/?p=16</guid>
		<description><![CDATA[
Mac mini鯖に繋いでるデータ置き用HDDがぶっ壊れた。ディスクユーティリティで修復を試みるも「Bツリーが壊れてて直せない」的なエラーで修復不能だった。


「それでもTimeMachineなら・・・TimeMac [...]]]></description>
			<content:encoded><![CDATA[<p>
Mac mini鯖に繋いでるデータ置き用HDDがぶっ壊れた。ディスクユーティリティで修復を試みるも「Bツリーが壊れてて直せない」的なエラーで修復不能だった。
</p>
<p>
「それでもTimeMachineなら・・・TimeMachineなら何とかしてくれる・・・!!」と思ってバックアップを除いてみたら、最新のバックアップは2009年7月2日とか言ってるの。え？何それ？バカなの？死ぬの？
</p>
<p>
fsckを直接叩いてみると、BAD SUPER BLOCK: MAGIC NUMBER WRONGだとかLOOK FOR ALTERNATE SUPERBLOCKS? [yn]とか言われ、代替ブロックを探すも見つからず、newfsを使った方法でもダメで、もはやお手上げ状態。
</p>
<p>
壊れたHDDにはそれほど重要なデータは入ってないから、もし本当にデータが飛んだとしてもそんなに痛くはない（夜のお供（自重汁）が減る程度で済むwある意味一大事ではある）が、諦めるのも何なので<a href="http://www.alsoft.com/DiskWarrior/index.html">DiskWarrior 4</a>をポチった。
</p>
<p>
結果、いとも簡単に修復完了。1分も掛かってないんじゃなかろうか。
</p>
<p>
そんなわけでDiskWarriorは神。それに引き換えDrive Geniusは………買ってはみたものの、どうすんのよこれ………。</p>
]]></content:encoded>
			<wfw:commentRss>http://decomo.info/diary/20090917/feed</wfw:commentRss>
		</item>
		<item>
		<title>LeopardとXcodeでSubversion 1.6を使う</title>
		<link>http://decomo.info/diary/20090812</link>
		<comments>http://decomo.info/diary/20090812#comments</comments>
		<pubDate>Wed, 12 Aug 2009 10:36:20 +0000</pubDate>
		<dc:creator>Decomo</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://decomo.info/diary/?p=1</guid>
		<description><![CDATA[
MacPortsでSubversion 1.6を入れただけでは、Xcodeから上手く使えない（システム標準の1.4が使われてしまう模様）ので、使えるようにするメモ。


…と言っても、単にコマンドとライブラリを置き換え [...]]]></description>
			<content:encoded><![CDATA[<p>
MacPortsでSubversion 1.6を入れただけでは、Xcodeから上手く使えない（システム標準の1.4が使われてしまう模様）ので、使えるようにするメモ。
</p>
<p>
…と言っても、単にコマンドとライブラリを置き換えてるだけ。
</p>
<h3>Subversion 1.6のインストール</h3>
<p>MacPortsから入れる。variantsは適当に。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1code6'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p16"><td class="code" id="p1code6"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">install</span> subversion +bash_completion+mod_dav_svn+tools+unicode_path</pre></td></tr></table></div>

<h3>/usr/binの関連コマンドの置き換え</h3>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1code7'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p17"><td class="code" id="p1code7"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin
&nbsp;
<span style="color: #666666; font-style: italic;">#一応前のコマンドを退避</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> svn_old 
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #c20cb9; font-weight: bold;">svn</span><span style="color: #000000; font-weight: bold;">*</span> svn_old
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> apr-<span style="color: #000000;">1</span>-config svn_old
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> apu-<span style="color: #000000;">1</span>-config svn_old
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svn</span><span style="color: #000000; font-weight: bold;">*</span> .
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>apr-<span style="color: #000000;">1</span>-config .
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>apu-<span style="color: #000000;">1</span>-config .</pre></td></tr></table></div>

<h3>/usr/libの関連ライブラリの置き換え</h3>
<p>元からあるシンボリックリンクは、可能な限りそのまま活用する方針で。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1code8'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p18"><td class="code" id="p1code8"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> svn_old
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-regex</span> <span style="color: #ff0000;">&quot;.*libsvn_.*-.*1\.0\.0\.0\..*&quot;</span> <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> svn_old \;
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> libapr-1.0.2.7.dylib svn_old
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> libaprutil-1.0.x.x.dylib svn_old <span style="color: #666666; font-style: italic;"># バージョン番号を失念してしまったので、適当に補完して下さい。</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-regex</span> <span style="color: #ff0000;">&quot;.*libsvn_.*-.*1\.0\.0\.0\..*&quot;</span> <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \;
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> libapr<span style="color: #000000; font-weight: bold;">*</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib <span style="color: #660033;">-regex</span> <span style="color: #ff0000;">&quot;.*libsvn_.*-.*1\.0\.0\.0\..*&quot;</span> <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> . \;
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>libapr-1.0.3.5.dylib .
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> libapr-1.0.3.5.dylib libapr-1.dylib
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> libapr-1.0.3.5.dylib libapr-1.0.dylib
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>libaprutil-1.0.3.7.dylib .
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> libaprutil-1.0.3.7.dylib libaprutil-1.dylib
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> libaprutil-1.0.3.7.dylib libaprutil-1.0.dylib</pre></td></tr></table></div>

<p>
swingとかperl用のモジュールが足りてないような気がするけど、うちでは関係なさそうなので気にしてない。無いと困るって人は、上手い事対処して下さい。
</p>
<p>
SubversionのサーバとしてMac OS Xを使用し、svn+sshでアクセスする場合はサーバ側でも同様の置換を行う。</p>
]]></content:encoded>
			<wfw:commentRss>http://decomo.info/diary/20090812/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
