<?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>taichino.com &#187; mac</title>
	<atom:link href="http://taichino.com/category/engineer-life/mac/feed" rel="self" type="application/rss+xml" />
	<link>http://taichino.com</link>
	<description>永遠のネバーランド</description>
	<lastBuildDate>Sat, 04 Feb 2012 13:33:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Hello AppleScript World</title>
		<link>http://taichino.com/engineer-life/mac/1834</link>
		<comments>http://taichino.com/engineer-life/mac/1834#comments</comments>
		<pubDate>Fri, 02 Jul 2010 17:01:32 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[appscript]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=1834</guid>
		<description><![CDATA[最近ではデザイナさんもAppleScriptを使いこなすようで、プログラマの自分がまったく理解してないのはどうかと言うことでかじってみる事にしました。まぁ日常的に使ってるのはTerminalとEmacsとYoruFukuroだけなので、個人的にはあんまり使う機会が無いかもなのですが、ひょっとするとXcode周辺で役に立つかもしれないという甘い期待を抱いています。 中々とっかかりが掴めなかったのですが、とりあえずコードを見るのが早いかと思います。以下のスクリプトはMail.appからテストメールを送るというものです。構文自体はあまり見慣れないですが、ちょっとゆっくり見れば難しくはありません。 on run -- Mail.appに対するブロック tell application &#34;Mail&#34; -- 送信メールオブジェクトを作成 set newMessage to make new outgoing message &#160; -- 送信するメールオブジェクトに対するブロック tell newMessage set subject to makeSubject&#40;&#41; of me -- 件名の設定 set content to &#34;applescript&#34; -- 本文の設定 end tell &#160; -- 宛先を指定 make new to recipient at the end of to recipients of newMessage with [...]]]></description>
			<content:encoded><![CDATA[<p>最近ではデザイナさんもAppleScriptを使いこなすようで、プログラマの自分がまったく理解してないのはどうかと言うことでかじってみる事にしました。まぁ日常的に使ってるのはTerminalとEmacsとYoruFukuroだけなので、個人的にはあんまり使う機会が無いかもなのですが、ひょっとするとXcode周辺で役に立つかもしれないという甘い期待を抱いています。</p>
<p><span id="more-1834"></span></p>
<p>中々とっかかりが掴めなかったのですが、とりあえずコードを見るのが早いかと思います。以下のスクリプトはMail.appからテストメールを送るというものです。構文自体はあまり見慣れないですが、ちょっとゆっくり見れば難しくはありません。</p>

<div class="wp_syntax"><div class="code"><pre class="applescript" style="font-family:monospace;"><span style="color: #ff0033; font-weight: bold;">on</span> <span style="color: #0066ff;">run</span>
    <span style="color: #808080; font-style: italic;">-- Mail.appに対するブロック</span>
	<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;Mail&quot;</span>
	    <span style="color: #808080; font-style: italic;">-- 送信メールオブジェクトを作成</span>
		<span style="color: #ff0033; font-weight: bold;">set</span> newMessage <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">make</span> <span style="color: #0066ff;">new</span> outgoing message   
&nbsp;
		<span style="color: #808080; font-style: italic;">-- 送信するメールオブジェクトに対するブロック</span>
		<span style="color: #ff0033; font-weight: bold;">tell</span> newMessage
			<span style="color: #ff0033; font-weight: bold;">set</span> subject <span style="color: #ff0033; font-weight: bold;">to</span> makeSubject<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #0066ff;">me</span>   <span style="color: #808080; font-style: italic;">-- 件名の設定</span>
			<span style="color: #ff0033; font-weight: bold;">set</span> <span style="color: #0066ff;">content</span> <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;applescript&quot;</span>         <span style="color: #808080; font-style: italic;">-- 本文の設定</span>
		<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">-- 宛先を指定</span>
		<span style="color: #0066ff;">make</span> <span style="color: #0066ff;">new</span> <span style="color: #ff0033; font-weight: bold;">to</span> recipient at <span style="color: #ff0033;">the</span> <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #ff0033; font-weight: bold;">to</span> recipients <span style="color: #ff0033; font-weight: bold;">of</span> newMessage <span style="color: #ff0033; font-weight: bold;">with</span> <span style="color: #0066ff;">properties</span> <span style="color: #000000;">&#123;</span>address:<span style="color: #009900;">&quot;taichino@gmail.com&quot;</span><span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">-- 送信</span>
		send newMessage
	<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #0066ff;">run</span>
&nbsp;
<span style="color: #ff0033; font-weight: bold;">on</span> makeSubject<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
   <span style="color: #ff0033; font-weight: bold;">return</span> <span style="color: #009900;">&quot;hello&quot;</span>
<span style="color: #ff0033; font-weight: bold;">end</span> makeSubject</pre></div></div>

<p>見た感じで大体予想はつきますがon runのブロックがmain関数の様なもので、on makeSubjectのブロックがサブルーチンです。run内の処理の流れは、大抵以下の様になるかと思います。</p>
<ol>
<li>アプリケーションを指定 (今回はMail)</li>
<li>操作したいオブジェクトを作るか取得するかして準備する(今回はメールオブジェクト)</li>
<li>準備したオブジェクトを弄って結果を反映する(今回はメールにタイトル等を設定して送信)</li>
</ol>
<p>コードは処理をスコープごとに綺麗に分離できますし、あまりプログラムを理解していなくても雰囲気は掴めますね。またアプリケーションごとにどのような処理やオブジェクトが使用可能かを調べる為にスクリプトエディタのヘルプを利用します。スクリプトエディタを起動して⌘+Shift+Oでリファレンスが開きますので一度目を通しておくと良さそうです。</p>
<p>さて、もちろんiTuneやらXcodeやらをスクリプトから弄れたら嬉しいのですが、日常的にAppleScriptを書くのは辛そうです。個人的な見解ですがAppleScriptはShell Scriptよりも貧弱で、PythonやPerl等とは比べるべくもありません。調べていると色々不満が出てきたのですが、僕は標準入出力にアクセスできない時点で覚える気が無くなりました。Script Editorに強く依存しているのも辛いところです。閉鎖的な設計が非常に残念です。</p>
<p>とは言っても各アプリケーションに用意されたインターフェースは割と強力なので諦めるのはもったいないということで、何とかならないかと思って調べていると<a href="http://appscript.sourceforge.net/py-appscript/index.html">py-appscript</a>というビンゴなPythonモジュールが見つかりました。これはAppleScriptをPythonから操作する為のラッパーモジュールです。詳細は省きますが、このモジュールを使うと上記スクリプトを、以下のように書き換える事が出来ます。</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> appscript <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
&nbsp;
mail = app<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Mail'</span><span style="color: black;">&#41;</span>
msg = mail.<span style="color: black;">make</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">new</span>=k.<span style="color: black;">outgoing_message</span><span style="color: black;">&#41;</span>
msg.<span style="color: black;">subject</span>.<span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;hello&quot;</span><span style="color: black;">&#41;</span>,
msg.<span style="color: black;">content</span>.<span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;appscript&quot;</span><span style="color: black;">&#41;</span>
msg.<span style="color: black;">to_recipients</span>.<span style="color: black;">end</span>.<span style="color: black;">make</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">new</span>=k.<span style="color: black;">to_recipient</span>, with_properties=<span style="color: black;">&#123;</span><span style="color: #483d8b;">'address'</span>:<span style="color: #483d8b;">'taichino@gmail.com'</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>
msg.<span style="color: black;">send</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>使い慣れたPythonでしかもかなり楽にAppleScriptを叩けています。これで基本的な処理はPythonでやりながら、必要な分だけアプリに投げると言うスクリプトが書けます。これなら覚えて損は無いでしょうという感じになりましたね。徐々にmacスキルを上げる為にもPython経由でAppleScript叩いていきたいと思います。ちなみにPythonの他にruby, objcにもそれぞれラッパーが存在しているようですので、得意なものを使えば良さそうです。</p>
<p><strong>2010.7.2 9:00 追記</strong><br />
上記py-appscriptを使ったコードは一つずつプロパティを設定していますが、make関数で一気に設定することも出来ます。こちらの方が見通しがいいですね。</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> appscript <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
&nbsp;
mail = app<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Mail'</span><span style="color: black;">&#41;</span>
msg = mail.<span style="color: black;">make</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">new</span>=k.<span style="color: black;">outgoing_message</span>,
                with_properties=<span style="color: black;">&#123;</span>k.<span style="color: black;">subject</span>:<span style="color: #483d8b;">&quot;hello&quot;</span>,
                                 k.<span style="color: black;">content</span>:<span style="color: #483d8b;">'appscript'</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>
msg.<span style="color: black;">to_recipients</span>.<span style="color: black;">end</span>.<span style="color: black;">make</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">new</span>=k.<span style="color: black;">to_recipient</span>, with_properties=<span style="color: black;">&#123;</span><span style="color: #483d8b;">'address'</span>:<span style="color: #483d8b;">'taichino@gmail.com'</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>
msg.<span style="color: black;">send</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>あと大した話ではないですが、メール送信はやっぱり目で確認して自分でMail.appの送信ボタンを押したいという方はsendの代わりにvisibleプロパティをsetすれば作成した内容が反映されたメールペインが表示されます。</p>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/mac/1834/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>keynoteを使い始める時にダウンロードしたら良いアイコン</title>
		<link>http://taichino.com/daily-life/1153</link>
		<comments>http://taichino.com/daily-life/1153#comments</comments>
		<pubDate>Wed, 21 Oct 2009 12:00:15 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[生活記録]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[keynote]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=1153</guid>
		<description><![CDATA[初めてkeynoteを使ってプレゼン資料を作りました。使用感はパワーポイントと同じで、普通に見栄えが良くなったので嬉しいです。ただ１つ問題があって、パワーポイントのクリップアートにあたる機能がkeynoteにありません。 どうもiPhotoをアイコンのリポジトリ代わりに使うようで、という事は使うアイコンは自分で準備しなければいけません。検索すると直にkeynote objectsに行き着きますが、これでは不十分です。有料のアイコンを買うには勇気が足りなかったので、色々と探した結果iconspediaを使うのが良さそうだと解りました。 折角なので、とりあえずダウンロードしとけば良さそうなアイコンを列挙してみます。(各アイコンをクリックで大きい画像のダウンロードページに飛びます。) 軽いネットワーク図くらいならこれだけで間に合う気がします。 人系 ネットワーク系 デバイス系 フリーで素晴しいアイコンが見つかるので、色々検索してみたら良いと思いますYO!]]></description>
			<content:encoded><![CDATA[<p>初めてkeynoteを使ってプレゼン資料を作りました。使用感はパワーポイントと同じで、普通に見栄えが良くなったので嬉しいです。ただ１つ問題があって、パワーポイントのクリップアートにあたる機能がkeynoteにありません。</p>
<p><span id="more-1153"></span></p>
<p>どうもiPhotoをアイコンのリポジトリ代わりに使うようで、という事は使うアイコンは自分で準備しなければいけません。検索すると直に<a href="http://ipresentee.com/iPresentee/iPresentee_-_Keynote_Objects.html">keynote objects</a>に行き着きますが、これでは不十分です。有料のアイコンを買うには勇気が足りなかったので、色々と探した結果<a href="http://www.iconspedia.com/">iconspedia</a>を使うのが良さそうだと解りました。</p>
<p>折角なので、とりあえずダウンロードしとけば良さそうなアイコンを列挙してみます。(各アイコンをクリックで大きい画像のダウンロードページに飛びます。) 軽いネットワーク図くらいならこれだけで間に合う気がします。</p>
<table>
<tr>
<td>
人系
</td>
<td>
    <a href="http://www.iconspedia.com/icon/user-4303.html"><br />
      <img src="http://www.iconspedia.com/uploads/1903484911.png" /><br />
    </a>
  </td>
<td>
    <a href="http://www.iconspedia.com/icon/user-group-4304.html"><br />
      <img src="http://www.iconspedia.com/uploads/947244387.png" /><br />
    </a>
  </td>
<td>
   <a href="http://www.iconspedia.com/icon/user-man-8225.html"><br />
      <img src="http://www.iconspedia.com/uploads/16748971551567266374.png" /><br />
    </a>
  </td>
<td>
    <a href="http://www.iconspedia.com/icon/user-woman-8226.html"><br />
      <img src="http://www.iconspedia.com/uploads/673555477109862485.png" /><br />
    </a>
  </td>
</tr>
<tr>
<td>ネットワーク系</td>
<td>
    <a href="http://www.iconspedia.com/icon/web-1748.html"><br />
      <img src="http://www.iconspedia.com/uploads/2071217103.png" /><br />
    </a>
  </td>
<td>
    <a href="http://www.iconspedia.com/icon/cloud-564.html"><br />
      <img src="http://www.iconspedia.com/uploads/487994967.png" /><br />
    </a>
  </td>
<td>
    <a href="http://www.iconspedia.com/icon/firewall-802-.html"><br />
      <img src="http://www.iconspedia.com/uploads/837408564700843566.png" /><br />
    </a>
  </td>
<td>
    <a href="http://www.iconspedia.com/icon/database-8165.html"><br />
      <img src="http://www.iconspedia.com/uploads/179090381294751894.png" /><br />
    </a>
  </td>
</tr>
<tr>
<td>デバイス系</td>
<td>
    <a href="http://www.iconspedia.com/icon/mobile-30--.html"><br />
      <img src="http://www.iconspedia.com/uploads/1629596674.png" /><br />
    </a>
  </td>
<td>
    <a href="http://www.iconspedia.com/icon/server-3008.html"><br />
      <img src="http://www.iconspedia.com/uploads/723539646.png" /><br />
    </a>
  </td>
<td>
    <a href="http://www.iconspedia.com/icon/computer-1854.html"><br />
      <img src="http://www.iconspedia.com/uploads/508511605.png" /><br />
    </a>
  </td>
<td>
    <a href="http://www.iconspedia.com/icon/ipod-nano-black-17254.html"><br />
      <img src="http://www.iconspedia.com/uploads/2106159849896217867.png" /><br />
    </a>
  </td>
</tr>
</table>
<p>フリーで素晴しいアイコンが見つかるので、色々検索してみたら良いと思いますYO!</p>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/daily-life/1153/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Q4MをcentOSとosxにインストール</title>
		<link>http://taichino.com/engineer-life/linux/1030</link>
		<comments>http://taichino.com/engineer-life/linux/1030#comments</comments>
		<pubDate>Mon, 05 Oct 2009 03:28:24 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[q4m]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=1030</guid>
		<description><![CDATA[Q4Mをインストールするのに、ハマり倒したのでメモ書きです。僕はCentOS 5.3とosx 10.5にインストールしましたが手順はどちらも同じで以下の通りです。 既にMySQLがインストールされている場合は削除 MySQLをソースコードからインストール Q4Mをインストール 1. 既にMySQLがインストールされている場合は削除 Q4Mを利用するには&#8211;with-fast-mutexesオプションが有効なMySQLがインストールされている必要がありますが、yumとかportとかでインストールしたMySQLは同オプションが有効になってないので、MySQLをソースからインストールします。そこで既にMySQLをパッケージ管理ツール等でインストールしている場合は削除します。(多分ポートの設定やサービスの登録等をすれば複数バージョンのMySQLも稼働できると思いますが、ややこしいので。) CentOSの場合 $ yum list installed &#124; grep mysql $ sudo yum remove mysql osxの場合 port list installed &#124; grep mysql sudo port deactivate mysql5 +server 2. MySQLをソースコードからインストール 僕はここでハマりました。大きなプログラムをソースコードからインストールした経験があまり無く、configureのオプションを付ける勘所が解らず、何回もビルドし直す羽目になりました。 試行錯誤はスキップして、手元で動作した手順は以下になります。centOSとosxで共通です。/usr/local/mysql以下にインストールしています。使用したMySQLのバージョンは5.1.39です。 $ tar zxvf mysql-5.1.39.tar.gz $ cd mysql-5.1.39 # まずビルドとインストール $ CFLAGS=&#34;-O3&#34; CXX=gcc CXXFLAGS=&#34;-O3 -felide-constructors -fno-exceptions -fno-rtti&#34; \ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://q4m.31tools.com/">Q4M</a>をインストールするのに、ハマり倒したのでメモ書きです。僕はCentOS 5.3とosx 10.5にインストールしましたが手順はどちらも同じで以下の通りです。</p>
<ol>
<li>既にMySQLがインストールされている場合は削除</li>
<li>MySQLをソースコードからインストール</li>
<li>Q4Mをインストール</li>
</ol>
<p><span id="more-1030"></span></p>
<p><strong>1. 既にMySQLがインストールされている場合は削除</strong><br />
Q4Mを利用するには&#8211;with-fast-mutexesオプションが有効なMySQLがインストールされている必要がありますが、yumとかportとかでインストールしたMySQLは同オプションが有効になってないので、MySQLをソースからインストールします。そこで既にMySQLをパッケージ管理ツール等でインストールしている場合は削除します。(多分ポートの設定やサービスの登録等をすれば複数バージョンのMySQLも稼働できると思いますが、ややこしいので。)</p>
<ul>
<li>CentOSの場合

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ yum list installed <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> mysql
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> yum remove mysql</pre></div></div>

</li>
<li>osxの場合

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">port list installed <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> mysql
<span style="color: #c20cb9; font-weight: bold;">sudo</span> port deactivate mysql5 +server</pre></div></div>

</li>
</ul>
<p><strong>2. MySQLをソースコードからインストール</strong><br />
僕はここでハマりました。大きなプログラムをソースコードからインストールした経験があまり無く、configureのオプションを付ける勘所が解らず、何回もビルドし直す羽目になりました。</p>
<p>試行錯誤はスキップして、手元で動作した手順は以下になります。centOSとosxで共通です。/usr/local/mysql以下にインストールしています。使用したMySQLのバージョンは5.1.39です。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">tar</span> zxvf mysql-5.1.39.tar.gz
$ <span style="color: #7a0874; font-weight: bold;">cd</span> mysql-5.1.39
<span style="color: #666666; font-style: italic;"># まずビルドとインストール</span>
$ <span style="color: #007800;">CFLAGS</span>=<span style="color: #ff0000;">&quot;-O3&quot;</span> <span style="color: #007800;">CXX</span>=<span style="color: #c20cb9; font-weight: bold;">gcc</span> <span style="color: #007800;">CXXFLAGS</span>=<span style="color: #ff0000;">&quot;-O3 -felide-constructors -fno-exceptions -fno-rtti&quot;</span> \
.<span style="color: #000000; font-weight: bold;">/</span>configure \
<span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql \
<span style="color: #660033;">--with-mysqld-user</span>=mysql \
<span style="color: #660033;">--enable-assembler</span> \
<span style="color: #660033;">--with-plugins</span>=innobase \
<span style="color: #660033;">--enable-shared</span> \
<span style="color: #660033;">--with-fast-mutexes</span>
$ <span style="color: #c20cb9; font-weight: bold;">make</span> 
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span>
<span style="color: #666666; font-style: italic;"># 次に初期設定 --basedirにconfigureのprefixと同じディレクトリを指定</span>
$ <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>local<span style="color: #000000; font-weight: bold;">/</span>mysql
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> bin<span style="color: #000000; font-weight: bold;">/</span>mysql_install_db <span style="color: #660033;">--basedir</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql
<span style="color: #666666; font-style: italic;"># 起動・終了確認</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> bin<span style="color: #000000; font-weight: bold;">/</span>mysqld_safe <span style="color: #000000; font-weight: bold;">&amp;</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> mysqladmin shutdown</pre></div></div>

<p>ついでにMySQLのサービス登録と自動起動設定をしておくと後々便利です。(CentOSの場合)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">pwd</span>
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>mysql-5.1.39
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> support-files<span style="color: #000000; font-weight: bold;">/</span>mysql.server <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>mysqld
$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> a+x <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>mysqld
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>chkconfig <span style="color: #660033;">-add</span> mysqld
$ <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>chkconfig <span style="color: #660033;">--list</span> mysqld
mysqld          <span style="color: #000000;">0</span>:off   <span style="color: #000000;">1</span>:off   <span style="color: #000000;">2</span>:on    <span style="color: #000000;">3</span>:on    <span style="color: #000000;">4</span>:on    <span style="color: #000000;">5</span>:on    <span style="color: #000000;">6</span>:off</pre></div></div>

<p><strong>3. Q4Mをインストール</strong><br />
次にQ4Mをソースコードからインストールします。手順はMySQLの起動以外はcentOSとosxで共通です。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># ビルドとインストール --with-mysqlに先ほどビルドしたmysqlのソースコードがあるディレクトリを指定</span>
$ <span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>q4m.31tools.com<span style="color: #000000; font-weight: bold;">/</span>dist<span style="color: #000000; font-weight: bold;">/</span>q4m-0.8.5.tar.gz
$ <span style="color: #c20cb9; font-weight: bold;">tar</span> zxvf q4m-0.8.5.tar.gz
$ <span style="color: #7a0874; font-weight: bold;">cd</span> q4m-0.8.5
$ .<span style="color: #000000; font-weight: bold;">/</span>configure \
<span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql \
<span style="color: #660033;">--with-mysql</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>mysql-5.1.39
$ <span style="color: #c20cb9; font-weight: bold;">make</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span>
<span style="color: #666666; font-style: italic;"># 初期設定</span>
$ <span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>my.cnf   <span style="color: #666666; font-style: italic;"># log-binと、binlog_formatの行をコメントアウト</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> service mysqld start <span style="color: #666666; font-style: italic;"># osxの場合はmysqld_safeで起動</span>
$ mysql <span style="color: #660033;">-u</span> root mysql ＜ support-files<span style="color: #000000; font-weight: bold;">/</span>install.sql 
$ <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #7a0874; font-weight: bold;">test</span></pre></div></div>

<p>以上でQ4Mを使う準備が整いました。mysqlにログインしてshow pluginsでインストール確認ができます。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysql<span style="color: #000000; font-weight: bold;">&gt;</span> show plugins;
+------------+--------+----------------+--------------------+---------+
<span style="color: #000000; font-weight: bold;">|</span> Name       <span style="color: #000000; font-weight: bold;">|</span> Status <span style="color: #000000; font-weight: bold;">|</span> Type           <span style="color: #000000; font-weight: bold;">|</span> Library            <span style="color: #000000; font-weight: bold;">|</span> License <span style="color: #000000; font-weight: bold;">|</span>
+------------+--------+----------------+--------------------+---------+
<span style="color: #000000; font-weight: bold;">|</span> binlog     <span style="color: #000000; font-weight: bold;">|</span> ACTIVE <span style="color: #000000; font-weight: bold;">|</span> STORAGE ENGINE <span style="color: #000000; font-weight: bold;">|</span> NULL               <span style="color: #000000; font-weight: bold;">|</span> GPL     <span style="color: #000000; font-weight: bold;">|</span>
<span style="color: #000000; font-weight: bold;">|</span> CSV        <span style="color: #000000; font-weight: bold;">|</span> ACTIVE <span style="color: #000000; font-weight: bold;">|</span> STORAGE ENGINE <span style="color: #000000; font-weight: bold;">|</span> NULL               <span style="color: #000000; font-weight: bold;">|</span> GPL     <span style="color: #000000; font-weight: bold;">|</span>
<span style="color: #000000; font-weight: bold;">|</span> MEMORY     <span style="color: #000000; font-weight: bold;">|</span> ACTIVE <span style="color: #000000; font-weight: bold;">|</span> STORAGE ENGINE <span style="color: #000000; font-weight: bold;">|</span> NULL               <span style="color: #000000; font-weight: bold;">|</span> GPL     <span style="color: #000000; font-weight: bold;">|</span>
<span style="color: #000000; font-weight: bold;">|</span> InnoDB     <span style="color: #000000; font-weight: bold;">|</span> ACTIVE <span style="color: #000000; font-weight: bold;">|</span> STORAGE ENGINE <span style="color: #000000; font-weight: bold;">|</span> NULL               <span style="color: #000000; font-weight: bold;">|</span> GPL     <span style="color: #000000; font-weight: bold;">|</span>
<span style="color: #000000; font-weight: bold;">|</span> MyISAM     <span style="color: #000000; font-weight: bold;">|</span> ACTIVE <span style="color: #000000; font-weight: bold;">|</span> STORAGE ENGINE <span style="color: #000000; font-weight: bold;">|</span> NULL               <span style="color: #000000; font-weight: bold;">|</span> GPL     <span style="color: #000000; font-weight: bold;">|</span>
<span style="color: #000000; font-weight: bold;">|</span> MRG_MYISAM <span style="color: #000000; font-weight: bold;">|</span> ACTIVE <span style="color: #000000; font-weight: bold;">|</span> STORAGE ENGINE <span style="color: #000000; font-weight: bold;">|</span> NULL               <span style="color: #000000; font-weight: bold;">|</span> GPL     <span style="color: #000000; font-weight: bold;">|</span>
<span style="color: #000000; font-weight: bold;">|</span> QUEUE      <span style="color: #000000; font-weight: bold;">|</span> ACTIVE <span style="color: #000000; font-weight: bold;">|</span> STORAGE ENGINE <span style="color: #000000; font-weight: bold;">|</span> libqueue_engine.so <span style="color: #000000; font-weight: bold;">|</span> GPL     <span style="color: #000000; font-weight: bold;">|</span>
+------------+--------+----------------+--------------------+---------+
<span style="color: #000000;">7</span> rows <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">0.01</span> sec<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>後はexampleディレクトリにあるcrawlerを見ると使い方が良く解りました。</p>
<p><strong>2010.9.13 インストール確認方法を追記</strong><strong></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/linux/1030/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mac portsで入れたmanが見れない件</title>
		<link>http://taichino.com/engineer-life/mac/406</link>
		<comments>http://taichino.com/engineer-life/mac/406#comments</comments>
		<pubDate>Tue, 02 Jun 2009 19:47:30 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[mac ports]]></category>
		<category><![CDATA[man]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=406</guid>
		<description><![CDATA[ふとmac portsで入れたパッケージのmanが見れない気がしたので、 確認してみると、/etc/man.confにMANPATHが設定されていなくて、 portインストールした時にそれくらいやってよ、と思いながら /etc/man.confに以下を追加したんですが、巧く行かなかったので残しておきます。 MANPATH /opt/local/man MANPATH /opt/local/share/man 環境変数を見るとMANPATHにman.confの内容が反映されてません。 man manを見てみると確かにman.confを編集せよと書いているし、 web上には無理矢理.bashrc等でMANPATHを設定というのが散見されるしで、 諦めかけたのですが、見つかりました。 どうも/etc/manpathsに直接パスを書くのが正解のようです。 下記設定パスを追加して、漸くmac portsでインストールしたパッケージのmanが 読めるようになりました。 $ cat /etc/manpaths /usr/share/man /usr/local/share/man /opt/local/man /opt/local/share/man １時間掛かりました。CarbonEmacsがLinuxで使えたら良いのにと思います。]]></description>
			<content:encoded><![CDATA[<p>ふとmac portsで入れたパッケージのmanが見れない気がしたので、<br />
確認してみると、/etc/man.confにMANPATHが設定されていなくて、<br />
portインストールした時にそれくらいやってよ、と思いながら<br />
/etc/man.confに以下を追加したんですが、巧く行かなかったので残しておきます。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">MANPATH <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><span style="color: #c20cb9; font-weight: bold;">man</span>
MANPATH <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>share<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">man</span></pre></div></div>

<p><span id="more-406"></span></p>
<p>環境変数を見るとMANPATHにman.confの内容が反映されてません。<br />
man manを見てみると確かにman.confを編集せよと書いているし、<br />
web上には無理矢理.bashrc等でMANPATHを設定というのが散見されるしで、<br />
諦めかけたのですが、<a href="http://www7a.biglobe.ne.jp/~tzwada/Mac/darwinports/index.html">見つかりました</a>。</p>
<p>どうも/etc/manpathsに直接パスを書くのが正解のようです。<br />
下記設定パスを追加して、漸くmac portsでインストールしたパッケージのmanが<br />
読めるようになりました。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>manpaths
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">man</span>
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">man</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><span style="color: #c20cb9; font-weight: bold;">man</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>share<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">man</span></pre></div></div>

<p>１時間掛かりました。CarbonEmacsがLinuxで使えたら良いのにと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/mac/406/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSXでscreenのバッファをクリップボードでも使いたい件</title>
		<link>http://taichino.com/engineer-life/mac/216</link>
		<comments>http://taichino.com/engineer-life/mac/216#comments</comments>
		<pubDate>Thu, 02 Apr 2009 03:31:09 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[screen osx]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=216</guid>
		<description><![CDATA[Carbon Emacsを使っている以上はどうしてもシェルとの２刀流で日々の生活を 送くらざるを得ない訳で、そうするとscreenのバッファにコピーした内容をなんとかクリップボード経由でも使えないのかという欲求は自然だと思います。 いやむしろ出来ない事でかなりのストレスを感じます。 ストレス社会の波はこんなところまで波及している訳ですね。 まずザックリとググってみたところココが見つかりました。 なるほど。screenのコピーコマンドに対するキーバインドを少し弄って、バッファコピーと同時にクリップボードへのコピーも一緒にやってしまおうという事のようです。 osx用に、まずは素直にxclipをpbcopyに置き換えようと思い.screenrcに以下を追加しました。 bindkey -m Y eval &#8220;stuff Y&#8221; &#8220;writebuf&#8221; &#8220;exec !!! pbcopy &#60; /tmp/screen-exchange&#8221; しかしこれが動きませんでした。ターミナルが固まってしまいます。他にも色々試したのですが、どうもリダイレクトやパイプをコマンドとして認識してくれないようです。 いつもならMLに質問投げようかなというところなのですが、 今日は何故かカッとなってしまい、自分でクリップボードコピーを実装する事にしました。 NSPasteboardというクラスを使うと、ほんの25行くらいで意外と簡単に出来ました。 ま、エラー処理とかしてないですけども。 #include &#34;Foundation/NSArray.h&#34; #include &#34;Foundation/NSAutoreleasePool.h&#34; #include &#34;AppKit/NSPasteboard.h&#34; #include &#34;stdio.h&#34; &#160; int main&#40;int argc, char** argv&#41; &#123; NSAutoreleasePool* pool = &#91;&#91;NSAutoreleasePool alloc&#93; init&#93;; BOOL result = TRUE; &#160; // オブジェクト作成 NSPasteboard* pasteBoard [...]]]></description>
			<content:encoded><![CDATA[<p>Carbon Emacsを使っている以上はどうしてもシェルとの２刀流で日々の生活を<br />
送くらざるを得ない訳で、そうするとscreenのバッファにコピーした内容をなんとかクリップボード経由でも使えないのかという欲求は自然だと思います。<br />
いやむしろ出来ない事でかなりのストレスを感じます。<br />
ストレス社会の波はこんなところまで波及している訳ですね。</p>
<p><span id="more-216"></span></p>
<p>まずザックリとググってみたところ<a href="http://d.hatena.ne.jp/emacsjjj/20050717/p1">ココ</a>が見つかりました。</p>
<p>なるほど。screenのコピーコマンドに対するキーバインドを少し弄って、バッファコピーと同時にクリップボードへのコピーも一緒にやってしまおうという事のようです。</p>
<p>osx用に、まずは素直にxclipをpbcopyに置き換えようと思い.screenrcに以下を追加しました。</p>
<blockquote><p>bindkey -m Y eval &#8220;stuff Y&#8221; &#8220;writebuf&#8221; &#8220;exec !!! pbcopy &lt; /tmp/screen-exchange&#8221;</p></blockquote>
<p>しかしこれが動きませんでした。ターミナルが固まってしまいます。他にも色々試したのですが、どうもリダイレクトやパイプをコマンドとして認識してくれないようです。</p>
<p>いつもならMLに質問投げようかなというところなのですが、<br />
今日は何故かカッとなってしまい、自分でクリップボードコピーを実装する事にしました。</p>
<p>NSPasteboardというクラスを使うと、ほんの25行くらいで意外と簡単に出来ました。<br />
ま、エラー処理とかしてないですけども。</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #6e371a;">#include &quot;Foundation/NSArray.h&quot;</span>
<span style="color: #6e371a;">#include &quot;Foundation/NSAutoreleasePool.h&quot;</span>
<span style="color: #6e371a;">#include &quot;AppKit/NSPasteboard.h&quot;</span>
<span style="color: #6e371a;">#include &quot;stdio.h&quot;</span>
&nbsp;
<span style="color: #a61390;">int</span> main<span style="color: #002200;">&#40;</span><span style="color: #a61390;">int</span> argc, <span style="color: #a61390;">char</span><span style="color: #002200;">**</span> argv<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
  <span style="color: #400080;">NSAutoreleasePool</span><span style="color: #002200;">*</span> pool <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSAutoreleasePool</span> alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span>;
  <span style="color: #a61390;">BOOL</span> result <span style="color: #002200;">=</span> TRUE;
&nbsp;
  <span style="color: #11740a; font-style: italic;">// オブジェクト作成</span>
  <span style="color: #400080;">NSPasteboard</span><span style="color: #002200;">*</span> pasteBoard <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSPasteboard</span> generalPasteboard<span style="color: #002200;">&#93;</span>;
  <span style="color: #002200;">&#91;</span>pasteBoard declareTypes<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> arrayWithObjects<span style="color: #002200;">:</span>NSStringPboardType, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> owner<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;
&nbsp;
  <span style="color: #11740a; font-style: italic;">// クリップボードにコピーするテキスト取得</span>
  <span style="color: #400080;">NSString</span><span style="color: #002200;">*</span> copyText <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>
                        <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSString</span> alloc<span style="color: #002200;">&#93;</span> initWithContentsOfFile<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;/tmp/screen-exchange&quot;</span>
                                         encoding<span style="color: #002200;">:</span>NSUTF8StringEncoding
                                         error<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span>
                        <span style="color: #002200;">&#93;</span>;
&nbsp;
  <span style="color: #11740a; font-style: italic;">// クリップボードにコピー</span>
  result <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>pasteBoard setString<span style="color: #002200;">:</span>copyText forType<span style="color: #002200;">:</span>NSStringPboardType<span style="color: #002200;">&#93;</span>;
  <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">!</span>result<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
    <span style="color: #a61390;">printf</span><span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;@ Failed to copy screen buffer to clipboard @n&quot;</span><span style="color: #002200;">&#41;</span>;
  <span style="color: #002200;">&#125;</span>
&nbsp;
  <span style="color: #11740a; font-style: italic;">// 後始末</span>
  <span style="color: #002200;">&#91;</span>pool release<span style="color: #002200;">&#93;</span>;
  <span style="color: #a61390;">return</span> <span style="color: #2400d9;">0</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>後はこのプログラムにパスを通して以下のようにすれば、ばっちり１ストロークで<br />
screenのバッファをクリップボードにコピーできました。</p>
<blockquote><p>bindkey -m Y eval &#8220;stuff Y&#8221; &#8220;writebuf&#8221; &#8220;exec !!! cpsb2cb&#8221;</p></blockquote>
<p>リモートホストにログインしてても問題なく動作しています。嬉しいですね。</p>
<p>最終的には.screenrcには以下のようにY,W,^Mのbindkey設定を追加しました。<br />
僕的には思ったように動作しているように思います。</p>
<blockquote><p>bindkey -m Y  eval &#8220;stuff Y&#8221;  &#8220;writebuf&#8221; &#8220;exec !!! cpsb2cb&#8221;<br />
bindkey -m ^M eval &#8220;stuff ^M&#8221; &#8220;writebuf&#8221; &#8220;exec !!! cpsb2cb&#8221;<br />
bindkey -m W  eval &#8220;stuff W&#8221;  &#8220;writebuf&#8221; &#8220;exec !!! cpsb2cb&#8221;</p></blockquote>
<p>makefileと一緒に<a href="http://taichino.com/wp-content/uploads/2009/04/cpsb2cb1.zip">固めてみました</a>。良かったらどぞ。あんまりテストしてないですが。</p>
<p><strong>追記</strong><br />
NSStringのinitWithContentsOfFileでエンコーディングを指定しないと<br />
文字化けしてしまいます。UTF-8として修正しました。</p>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/mac/216/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

