<?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>lab.naoki.sato.name</title>
	<atom:link href="http://naoki.sato.name/lab/feed" rel="self" type="application/rss+xml" />
	<link>http://naoki.sato.name/lab</link>
	<description>lab for naoki.sato</description>
	<lastBuildDate>Sun, 20 Mar 2011 06:02:24 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/feed" />
		<item>
		<title>EvernoteのノートのタイトルをAppleScriptで一括変更する</title>
		<link>http://naoki.sato.name/lab/archives/261</link>
		<comments>http://naoki.sato.name/lab/archives/261#comments</comments>
		<pubDate>Sun, 20 Mar 2011 06:02:24 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[applescript]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[evernote]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=261</guid>
		<description><![CDATA[Brogtrottrというサービスがあります。
RSSの記事をメールとして送信してくれるサービスです。
個人的に、このサービスをGoogle Readerと組み合わせて利用しています。
具体的には、Google Read [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogtrottr.com/">Brogtrottr</a>というサービスがあります。<br />
RSSの記事をメールとして送信してくれるサービスです。</p>
<p>個人的に、このサービスをGoogle Readerと組み合わせて利用しています。<br />
具体的には、Google Readerで気になった記事は共有するようにして、 共有アイテムのRSSをBrogtrottrでEvernoteに送信し、気になった記事がEvernoteに自動的にクリッピングされるようにしています。</p>
<p>ただ1点、Brogtrottrが残念なのが、メールのタイトルが変更できないという点。<br />
Brogtrottrからのメールのタイトルは&#8221;サイト名: タイトル&#8221;のようになり、Google Readerの共有アイテムのようにサイト名が長いと、Evernoteに登録した際非常に冗長になってしまいます。</p>
<p>幸い、Mac版のEvernoteではAppleScriptでノートのタイトルが変更できます。</p>
<p>ということで、冗長なタイトルになっているノートを一括して変更するAppleScriptをさっくり書いたので、メモとしてあげておきます。</p>
<p>なお、AppleScript中の&#8221;switchText&#8221;は<a href="http://macscripter.net/viewtopic.php?id=13008">こちら</a>から引用させていただきました。<br />
感謝です。</p>
<p><span id="more-261"></span>※実際に使う際は、最初のpropertyの値を変更のこと。</p>
<blockquote>
<pre>property nb : "_inbox" -- ノートブック名
property str_G_orig : "naoki's shared items in Google Reader" -- 置換え対象文字列
property str_G_sub : "G" -- 置換え後文字列

tell application "Evernote"
	-- repeat with var_note in (get selection) -- 選択しているノート
	repeat with var_note in (get notes in notebook nb) -- ノートブック内の全ノート
		set var_title to (get title of var_note)
		if var_title contains str_G_orig then
			set var_title_new to (switchText from var_title to str_G_sub instead of str_G_orig) of me
			set title of var_note to var_title_new
		end if
	end repeat
end tell

to switchText from t to r instead of s
	set d to text item delimiters
	set text item delimiters to s
	set t to t's text items
	set text item delimiters to r
	tell t to set t to item 1 &amp; ({""} &amp; rest)
	set text item delimiters to d
	t
end switchText</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/261/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/261" />
	</item>
		<item>
		<title>[コネタ] Ubuntu 10.10でGTX 460の音声を有効にする</title>
		<link>http://naoki.sato.name/lab/archives/258</link>
		<comments>http://naoki.sato.name/lab/archives/258#comments</comments>
		<pubDate>Tue, 18 Jan 2011 13:26:51 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=258</guid>
		<description><![CDATA[どうやらこれを行ったら有効になったようなので備忘録。

aptでkernelを最新のものにアップデート (記事作成時では2.6.35-24)。
/etc/modprobe.d/alsa-base.conf の最後に以下を [...]]]></description>
			<content:encoded><![CDATA[<p>どうやらこれを行ったら有効になったようなので備忘録。</p>
<ol>
<li>aptでkernelを最新のものにアップデート (記事作成時では2.6.35-24)。</li>
<li><code>/etc/modprobe.d/alsa-base.conf</code> の最後に以下を追加:<br />
<code>options snd-hda-intel model=hp-dv5 enable_msi=1</code></li>
<li>再起動。</li>
</ol>
<p>再起動後 alsamixer を開いてミュートされていないか確認するとなお良。</p>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/258/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/258" />
	</item>
		<item>
		<title>[コネタ] 続き物の記事を電子書籍端末で読むにはInstapaperが便利</title>
		<link>http://naoki.sato.name/lab/archives/254</link>
		<comments>http://naoki.sato.name/lab/archives/254#comments</comments>
		<pubDate>Mon, 01 Nov 2010 14:20:58 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[ebooks]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[epub]]></category>
		<category><![CDATA[instapaper]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[mobi]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=254</guid>
		<description><![CDATA[活用している人は活用しているであろう、気になった記事をあとで読むためのWebサービスInstapaper。
クリッピングはもちろん、記事を読みやすく整形してくれる機能や、iPad/iPhone向けのAPPも用意されていて [...]]]></description>
			<content:encoded><![CDATA[<p>活用している人は活用しているであろう、気になった記事をあとで読むためのWebサービス<a href="http://www.instapaper.com/">Instapaper</a>。<br />
クリッピングはもちろん、記事を読みやすく整形してくれる機能や、iPad/iPhone向けのAPPも用意されていてとても便利なわけですが、ことKindleやEPUB対応の電子書籍端末を持っている人に便利なのが、複数記事の.mobi、.epubでの出力機能。</p>
<p>Instapaperの自分のページに行くと、右側のカラムに<em>Printable, Kindle, ePub</em>とありますが、この<em>Kindle</em>をクリックすると.mobi形式で、<em>ePub</em>をクリックすると.epub形式で、直近の20記事が書き出されてダウンロードされます。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/11/download.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/11/download.png" title="download" width="203" height="139" class="alignnone size-full wp-image-255" /></a></p>
<p>実はこの書き出し機能、未読のものだけではなく、フォルダに対しても利用することができます。</p>
<p>Instapaperのフォルダには日本語も使えるので、例えば「<a href="http://blog.livedoor.jp/keumaya-china/">中国嫁日記</a>」(実はファン…)というフォルダを作り、読みたい記事をInstapaperに取り込んで、「中国嫁日記」フォルダに移し、.mobiや.epubで書きだせば、簡単に自分だけのオムニバス電子書籍を作ることができます。</p>
<p>ちなみにこの場合、タイトルは「Instapaper: 中国嫁日記」のようになりますが、Kindleの場合、日本語が化けてしまうようです。<br />
回避方法としては、一度.epubで書き出して、<a href="http://www.amazon.com/gp/feature.html?ie=UTF8&amp;docId=1000234621">Kindlegen</a>で&#8221;kindlegen -unicode instapaper-xxx.epub&#8221;のように変換する手段があります。</p>
<p>また、<a href="http://www.instapaper.com/extras">Kindleに対しては、定期的に(最短で毎日)未読の記事を配信してくれるという非常に便利な機能もあります</a>。<br />
とても便利なので使ったことがない方はぜひお試しください。</p>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/254/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/254" />
	</item>
		<item>
		<title>EmacsからBlog記事を投稿する</title>
		<link>http://naoki.sato.name/lab/archives/237</link>
		<comments>http://naoki.sato.name/lab/archives/237#comments</comments>
		<pubDate>Sun, 31 Oct 2010 14:39:15 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=237</guid>
		<description><![CDATA[テスト投稿。
EmacsにWeblogger modeをインストールしてテストしてみる。
HTMLがそのまま出てしまったのでバージョンを新しいのにして再挑戦。
Bold表示がBoldになるか？
とりあえずHTMLタグは使 [...]]]></description>
			<content:encoded><![CDATA[<p>テスト投稿。<br />
Emacsに<a href="http://www.emacswiki.org/emacs/WebloggerMode">Weblogger mode</a>をインストールしてテストしてみる。</p>
<p>HTMLがそのまま出てしまったのでバージョンを新しいのにして再挑戦。<br />
<b>Bold表示がBoldになるか</b>？</p>
<p>とりあえずHTMLタグは使えるようになった模様。<br />
が、カテゴリが設定できない？<br />
どうやらEmacs上ではメールのテンプレートを使っているようで、<br />
Keywordsを設定するHeaderはあるものの、CategoryやTagを設定する部分はなさそう。</p>
<p><span id="more-237"></span><br />
続きを読むは使えている模様。</p>
<p>投稿はC-c C-c。</p>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/237/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/237" />
	</item>
		<item>
		<title>VAIO type XにUbuntuをインストールする</title>
		<link>http://naoki.sato.name/lab/archives/230</link>
		<comments>http://naoki.sato.name/lab/archives/230#comments</comments>
		<pubDate>Thu, 28 Oct 2010 14:38:27 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vaiox]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=230</guid>
		<description><![CDATA[世の中では新しいMacBook Airの良さが話題になっているここ最近、何故かその流れに贖ってWindows PCを買いました。モノはVAIO type X、 サイズも厚さも重さもiPadと同じくらいのLaptopという [...]]]></description>
			<content:encoded><![CDATA[<p>世の中では<a href="http://www.apple.com/jp/macbookair/">新しいMacBook Air</a>の良さが話題になっているここ最近、何故かその流れに贖ってWindows PCを買いました。モノは<a href="http://www.vaio.sony.co.jp/vaio/products/X11/">VAIO type X</a>、 サイズも厚さも重さもiPadと同じくらいのLaptopという結構な優れもの。元々Windows用というよりもLinux用に1台持っておきたく、そんなにスペックはいらないからとにかく持ち歩けるものを、ということで今回の購入となりました(そろそろ店頭在庫も少なくなってきたという事情もありますが)。</p>
<p>そこで、早速Linuxをインストールしたのですが、新し目の機種ということもあってなかなかすんなりいかない部分もあり。次回以降インストールし直す時のために、作業記録として残しておきます。</p>
<p>Linuxのディストリビューションはここ数年Ubuntuしか使っていないので<a href="http://www.ubuntulinux.jp/">Ubuntu</a>を選びました。現時点での最新版はUbuntu 10.10ですが、先進的すぎるためかスペックを抑えたVAIO type Xとは相性がいま一つのため、今回はUbuntu 9.10を使っています。</p>
<p>作業概要は以下の通り。現在進行中です。</p>
<ol>
<li>事前準備
<ul>
<li>プリインストールされているWindowsでリカバリディスクを作成</li>
<li>リカバリディスクから復元、Linux用のパーティションを設定</li>
<li>インストール用のCDまたはUSBを作成</li>
</ul>
</li>
<li>Ubuntu 9.10のインストール</li>
<li>Windowsブートマネージャの設定</li>
<li>psbドライバのインストール</li>
<li>サウンドの設定</li>
<li>サスペンド関連の調整</li>
<li>mozcのビルド、インストール</li>
<li>Ubuntu Tweakのインストール</li>
<li>Chromium、Dropboxのインストール</li>
<li>Nevernoteのインストール</li>
<li>git-core, GNOME Do, VLCのインストール</li>
<li>Emacsのインストール</li>
<li>&#8230;</li>
</ol>
<p>以下、詳細です。<span id="more-230"></span></p>
<h3>事前準備</h3>
<p>VAIO Type Xにはリカバリディスクが同梱されていないので、自分で作成する必要があります。VAIOリカバリーセンター(？)から作成できます。</p>
<p>注意点としては、<strong>DVDドライブとしてポータブルタイプの物を使うときは、必ずアダプタ等で電源を供給させること</strong>。そうしないと原因不明でディスクの作成に失敗します。</p>
<p>パーティションの設定はお好みで。</p>
<h3>Ubuntu 9.10のインストール</h3>
<p>今回はUbuntu 9.10の日本語Remixを使いました。また、何故か起動用USBを作成してもそこから起動ができなかったので、CDを作成しています。</p>
<p>VAIO Xで外部メディアからの起動の可否を設定するには、電源を入れた直後の画面でF2を押して出てくるBIOS画面を使います。</p>
<p>インストールの詳細は省略しますが、今回はWindows 7とUbuntu 9.10のデュアルブートとし、起動はWindowsブートマネージャを使用するので、grubのインストール先をUbuntuのインストール先とします。</p>
<h3>Windowsブートマネージャの設定</h3>
<p>WindowsブートマネージャからWindowsとUbuntuを起動できるように設定します。<a href="http://www.os-museum.com/win7multboot/win7multboot.htm">こちら</a>を参考にさせていただきました。</p>
<p>まず、Ubuntuのブートセクタをファイルにします。Ubuntuで以下の作業を行います。</p>
<blockquote>
<pre>$ dd if=/dev/sda5 of=/home/ubuntu/ubuntu.img bs=512 count=1</pre>
</blockquote>
<p>ここで、<code>/dev/sda5</code>はgrubをインストールしたパーティションです。<br />
作成された<code>ubuntu.img</code>を、WindowsへコピーできるようにUSBドライブ等に移します。</p>
<p>次に、Windowsを起動し、上で作成した<code>ubuntu.img</code>を任意の場所(ここでは C:\ 直下)にコピーします。<br />
その後、コマンドプロンプトを管理者として実行し、以下の作業を行います。</p>
<blockquote>
<pre>&gt; bcdedit /create /d "Ubuntu 9.10" /application bootsector
※{ID}が表示されます
&gt; bcdedit /set {ID} device partition=C:
&gt; bcdedit /set {ID} path \ubuntu.img
&gt; bcdedit /displayorder {ID} /addlast</pre>
</blockquote>
<h3>psbドライバのインストール</h3>
<p>画面表示用のドライバとしてGMA500用のpsbドライバというものをインストールしておきます。これを利用することで描画がとてもスムーズになります。</p>
<p>詳細は<a href="https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/">こちらのWiki</a>を参考に。手順は<a href="http://cassini.edu.waseda.ac.jp/diary/20100115.html">こちら</a>を参考にさせていただきました。</p>
<ol>
<li>PPAの追加、ドライバ、モジュールのインストール<br />
<blockquote>
<pre>$ sudo add-apt-repository ppa:gma500/ppa
$ sudo apt-get update
$ sudo apt-get install poulsbo-driver-2d poulsbo-driver-3d poulsbo-config psb-firmware psb-kernel-source</pre>
</blockquote>
</li>
<li><code>/etc/modprobe.d/blacklist.conf</code> の編集<br />
末尾に &#8220;blacklist i915&#8243; を追加</p>
<blockquote>
<pre>$ vi /etc/modprobe.d/blacklist.conf
...
blacklist i915</pre>
</blockquote>
</li>
<li>ramfsの更新。<br />
<blockquote>
<pre>$ sudo update-initramfs -u</pre>
</blockquote>
</li>
<li><code>/etc/X11/xorg.conf</code> の作成<br />
<blockquote>
<pre>$ vi /etc/X11/xorg.conf
Section "Device"
  Identifier      "GMA500"
  Option "AccelMethod" "EXA"
  Option "DRI" "on"
  Option "MigrationHeuristic" "greedy"
  Option "IgnoreACPI" "yes"
  Driver "psb"
EndSection

Section "DRI"
    Mode    0666
EndSection</pre>
</blockquote>
</li>
<li><code>/etc/default/grub</code> の編集<br />
<code>GRUB_CMDLINE_LINUX_DEFAULT</code> を変更</p>
<blockquote>
<pre>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem=1920mb"</pre>
</blockquote>
</li>
<li>grubの更新<br />
<blockquote>
<pre>$ update-grub</pre>
</blockquote>
</li>
</ol>
<h3>サウンドの設定</h3>
<p>インストール後何故かサウンドが鳴らないので、多少ファイルを編修します。上と同じく<a href="http://cassini.edu.waseda.ac.jp/diary/20100115.html">こちら</a>を参考にさせていただきました。</p>
<p><code>/etc/modprobe.d/alsa-base.conf</code>を編集して最後に以下の２行を追加します。</p>
<blockquote>
<pre>$ vi /etc/modprobe.d/alsa-base.conf
...
alias snd-card-0 index=0
options snd-hda-intel model=basic</pre>
</blockquote>
<h3>サスペンド関連の調整</h3>
<p>試行錯誤中。</p>
<p>現在は<a href="http://westhoffswelt.de/blog/0041_sony_vaio_x_ubuntu_installation_experience.html">こちら</a>の<em>Suspend/Resume</em>と<em>WLAN after wakeup</em>を参考に設定して様子見。</p>
<p><span style="color: #993300;">＊2010/12/12追記</span></p>
<p><span style="color: #993300;">上記の設定と、<a href="https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/">こちらのWiki</a>の<em>Tweaks</em>にある<em>Suspend by moving 99video</em>の設定を両方行ったところほぼ問題はなくなった感じ。</span></p>
<h3>mozcのビルド、インストール</h3>
<p><a href="http://code.google.com/p/mozc/wiki/LinuxBuildInstructions">こちら</a>の<em>Build and install debian package</em>の手順に従って処理。<br />
特に問題なく完了しました。</p>
<h3>Ubuntu Tweakのインストール</h3>
<p><a href="http://ubuntu-tweak.com/downloads/">オフィシャルページ</a>にある手順に従ってPPAを追加し、apt-getでインストールします。</p>
<blockquote>
<pre>$ sudo add-apt-repository ppa:tualatrix/ppa
$ sudo apt-get update
$ sudo apt-get install ubuntu-tweak</pre>
</blockquote>
<h3>Chromium、Dropboxのインストール</h3>
<p>Ubuntu TweakのSource CenterからUbuntu ChromiumやDropbox Official Sourceを有効にして、apt-getやSoftware Centerなどからインストール。楽ちん。</p>
<h3>Nevernoteのインストール</h3>
<p><a href="http://nevernote.sourceforge.net/">JavaベースのEvernoteクローン</a>。オフィシャルページからdebパッケージが入手できますが、Javaが必要なので事前にdefault-jreをインストールしておきます。</p>
<blockquote>
<pre>$ sudo apt-get install default-jre
$ sudo dpkg -i nevernote-xxx.deb</pre>
</blockquote>
<h3>git-core, GNOME Do, VLCのインストール</h3>
<p>あとは必要なアプリケーションをapt-getでインストール。実に楽ちん。</p>
<blockquote>
<pre>$ sudo apt-get install git-core
$ sudo apt-get install gnome-do
$ sudo apt-get install vlc
$ ...</pre>
</blockquote>
<h3>Emacsのインストール</h3>
<p>Emacsもaptからインストール。フォントのアンチエイリアスを有効にしたいので今回はEmacs23を選択。</p>
<blockquote>
<pre>$ sudo apt-get install emacs23</pre>
</blockquote>
<p>その後便利ツールとして<a href="http://www.emacswiki.org/emacs/TwitteringMode">Twittering Mode</a>と<a href="http://www.emacswiki.org/emacs/WebloggerMode">Weblogger Mode</a>をインストール。</p>
<h3>&#8230;</h3>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/230/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/230" />
	</item>
		<item>
		<title>PythonでTwitter BOTを作る</title>
		<link>http://naoki.sato.name/lab/archives/210</link>
		<comments>http://naoki.sato.name/lab/archives/210#comments</comments>
		<pubDate>Sat, 11 Sep 2010 13:18:19 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=210</guid>
		<description><![CDATA[とあるツイートにインスパイアされて、Flickrから写真を取得してTwitterに投稿するBOTを作ってみました(ネコ、イヌ、ペンギン、ウサギ、ハムスター、赤ちゃん、とリスト)。
TwitterのBOTくらいなら簡単に作 [...]]]></description>
			<content:encoded><![CDATA[<p>とあるツイートにインスパイアされて、<a href="http://flickr.com/">Flickr</a>から写真を取得してTwitterに投稿するBOTを作ってみました(<a href="http://twitter.com/nyancopot">ネコ</a>、<a href="http://twitter.com/wancopot">イヌ</a>、<a href="http://twitter.com/penpenpot">ペンギン</a>、<a href="http://twitter.com/usapot">ウサギ</a>、<a href="http://twitter.com/hamupot">ハムスター</a>、<a href="http://twitter.com/baboopot">赤ちゃん</a>、と<a href="http://twitter.com/naokisatoname/pot">リスト</a>)。</p>
<p>TwitterのBOTくらいなら簡単に作成できる…と思っていたのですが、先日のBASIC認証廃止で、OAuthによる認証が必須となり、簡単なBOTでも結構ややこしい手順をふむ必要が出てきました。<br />
そこで、少しでも楽をするために、今回はPythonを使って構築しています。<br />
適当なライブラリを活用することで、認証の処理がかなり容易になります。</p>
<p>以下、一連の作業と作成したソースコードの記録です。</p>
<p><span id="more-210"></span></p>
<h3>BOTアカウントの登録</h3>
<p>なにはともあれ、BOT用のアカウントを登録します。<br />
<a href="https://twitter.com/signup"> こちらのページ</a>から、通常通りアカウントを作成します。</p>
<p>後々、このアカウントに紐づいたアクセストークンが必要となります。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot01.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot01-300x206.png" title="pot01" width="300" height="206" class="alignnone size-medium wp-image-213" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot02.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot02-300x206.png" title="pot02" width="300" height="206" class="alignnone size-medium wp-image-214" /></a></p>
<p>登録を終えたら通常通りログオンし、Bio等をセッティングします。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot03.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot03-300x206.png" title="pot03" width="300" height="206" class="alignnone size-medium wp-image-215" /></a></p>
<h3>アプリケーションの登録</h3>
<p>次に、BOT用アカウントでログインした状態で <a href="http://dev.twitter.com/">http://dev.twitter.com/</a> へアクセスします。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot11.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot11-300x235.png" title="pot11" width="300" height="235" class="alignnone size-medium wp-image-216" /></a></p>
<p>この画面から、新しく作成するBOTをアプリケーションとして登録します。<br />
右上の &#8220;<a href="http://dev.twitter.com/apps">Your apps</a>&#8221;  をクリックします。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot12.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot12-300x235.png" title="pot12" width="300" height="235" class="alignnone size-medium wp-image-217" /></a></p>
<p>既に登録しているアプリケーションの一覧が表示されます。<br />
何も登録していない場合は、登録画面へのリンクだけが表示されるはずです。</p>
<p>新しく登録する場合は、右の &#8220;<a href="http://dev.twitter.com/apps/new">Register a new app</a>&#8221; をクリックします。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot13.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot13-300x235.png" title="pot13" width="300" height="235" class="alignnone size-medium wp-image-218" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot14.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot14-300x235.png" title="pot14" width="300" height="235" class="alignnone size-medium wp-image-219" /></a></p>
<p>基本的に、入力項目はすべて入力する必要があります。</p>
<p>BOT用アプリケーション登録の際のポイントは、<strong> &#8220;Application Type&#8221; を &#8220;Client&#8221; に変更すること</strong>と、 <strong>&#8220;Default Access type&#8221; を &#8220;Read &amp; Write&#8221; に変更する</strong>こと。<br />
ちなみに、 &#8220;Callback URL&#8221; の入力欄は、 &#8220;Application Type&#8221; を &#8220;Client&#8221; に変更すると消えます。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot15.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot15-300x235.png" title="pot15" width="300" height="235" class="alignnone size-medium wp-image-220" /></a></p>
<p>登録が完了すると、このような画面に移ります。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot16.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot16-300x235.png" title="pot16" width="300" height="235" class="alignnone size-medium wp-image-221" /></a></p>
<p>この画面で必要な情報は、 <strong>&#8220;OAuth 1.0a Settings&#8221; の &#8220;Consumer key&#8221; と &#8220;Consumer secret&#8221; の2つ</strong>。<br />
これらの情報が、このBOTを更新するためのアプリケーションである、ということを証明するのに使われるものです。<br />
これらの情報を記録します。</p>
<p>次に、画面の上に戻って &#8220;My Access Token&#8221; をクリックします。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot17.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/pot17-300x235.png" title="pot17" width="300" height="235" class="alignnone size-medium wp-image-222" /></a></p>
<p>すると、このように <strong>&#8220;Access Token (oauth_token)&#8221; と &#8220;Access Token Secret (oauth_token_secret)&#8221;</strong> の情報が表示されます。<br />
これは、このアプリケーションの作成者(=BOTアカウント)の認証に使われる情報です。</p>
<p>先の &#8220;Consumer key&#8221; 、 &#8220;Consumer secret&#8221; とあわせて、初めてBOTを更新するためのアプリケーションで、BOTアカウントのツイートを更新できるようになります。<br />
&#8220;Access Token (oauth_token)&#8221; と &#8220;Access Token Secret (oauth_token_secret)&#8221; の情報も記録しておきます。</p>
<p><strong>これで、BOTに必要な &#8220;Consumer key&#8221;、 &#8220;Consumer secret&#8221;、&#8221;Access Token (oauth_token)&#8221;、 &#8221;Access Token Secret (oauth_token_secret)&#8221; という4つの鍵が手に入りました。</strong></p>
<h3>スクリプトの作成</h3>
<p>上述のように、今回BOTを更新するアプリケーションは、Pythonによるスクリプトを作成しました。</p>
<p>PythonでのTwitterの操作は <a href="http://code.google.com/p/tweepy/">tweepy</a> というライブラリを利用しています。<br />
また、Flickrからの写真の取得は、<a href="http://www.degraeve.com/flickr-rss/">Flickrのタグをキーに写真を検索してRSSを作成してくれる Flickr RSS Feed Generator</a> というサービスを利用し、この結果取得したRSSを <a href="http://code.google.com/p/feedparser/">feedparser</a> というライブラリを使ってパースしています。<br />
更に、 今回はFlickrの写真をツイートするということで、 <a href="http://stuvel.eu/flickrapi/documentation/">flickrapi.shorturl</a> というライブラリでURLを短縮しています。</p>
<p>各ライブラリのインストールは環境により異なるので、他を参照いただきたいのですが、このBlogを置いている<a href="http://www.coreserver.jp/">Coreserver</a>やXREAの場合は基本的に次のような手順でインストールできると思います。</p>
<ol>
<li>管理画面からホスト情報を登録する。</li>
<li>SSHでサーバへアクセスする。</li>
<li>次の環境変数を設定しておく。</li>
<pre>$ export PYTHONPATH=$HOME/lib/python2.4:$HOME/lib/python2.4/site-packages</pre>
<li> 各ソースコードをダウンロードし、以下のコマンドでインストール先を指定してインストールする。</li>
<pre>$ python setup.py install --prefix=~/</pre>
</ol>
<p>次に、実際にBOTを更新するスクリプトのソースコードです。ここで、&#8221;Consumer key&#8221;, &#8220;Consumer secret&#8221;, &#8220;Access Token (oauth_token)&#8221;, &#8221;Access Token Secret (oauth_token_secret)&#8221;にはそれぞれ植えで入手した情報を入れて下さい。</p>
<blockquote>
<pre>#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import string
import random

import feedparser
import tweepy
import flickrapi.shorturl

CONSUMER_KEY        = 'Consumer key'
CONSUMER_SECRET     = 'Consumer secret'
ACCESS_TOKEN        = 'Access Token (oauth_token)'
ACCESS_TOKEN_SECRET = 'Access Token Secret (oauth_token_secret)'

num = 100    # 100枚の写真から1枚選ぶ
tag = 'cat+kitty+kitten'    # 検索するタグを + で繋げる
id = random.randint(0, num)
if random.randrange(0, 10, 1) &gt; 5:
  sort = 'interestingness-desc'
else:
  sort = 'date-posted-desc'

url  = 'http://www.degraeve.com/flickr-rss/rss.php?tags=' + tag + '&amp;tagmode=any&amp;sort=' + sort + '&amp;num=' + str(num)
data = feedparser.parse(url)

prefix = u'ミ^・.・^彡'
title  = data['entries'][id]['title']
link = data['entries'][id]['link']
link = flickrapi.shorturl.url(link[link.rfind(u'/')+1:])

if len(title) + len(link) + len(prefix) &gt; 110:
  title = title[0:110 - len(link) - len(prefix)] + '...'

tweet = prefix + ' ' + title + '  ' + link

# ここからTwitter
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)
api.update_status(tweet)</pre>
</blockquote>
<p>最後に、このスクリプトをcronで動かすためのshスクリプトを作成します。ここで、上のPythonスクリプトは /virtual/user/bin/nyancopot.py に保存されているものとします。</p>
<blockquote>
<pre>#!/bin/sh

export PYTHONPATH=$HOME/lib/python2.4:$HOME/lib/python2.4/site-packages
export LD_LIBRALY=$HOME/lib

/usr/local/bin/python /virtual/user/bin/nyancopot.py</pre>
</blockquote>
<p>あとは、このshスクリプトをcronに登録すれば完了です。<br />
指定された時間にBOTがつぶやきます。</p>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/210/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/210" />
	</item>
		<item>
		<title>Pomera+iPhone+光ポータブルでBlogを更新する</title>
		<link>http://naoki.sato.name/lab/archives/199</link>
		<comments>http://naoki.sato.name/lab/archives/199#comments</comments>
		<pubDate>Tue, 07 Sep 2010 13:06:54 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[pomera]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=199</guid>
		<description><![CDATA[少々前のことになりますが、NTT東日本がFlets光の契約者を対象に光ポータブルことBuffaloのポータブルWiFiのレンタルサービスを開始しました。
月々￥315という料金に加えて、SIMロックフリー版も提供されてい [...]]]></description>
			<content:encoded><![CDATA[<p>少々前のことになりますが、NTT東日本がFlets光の契約者を対象に光ポータブルことBuffaloのポータブルWiFiのレンタルサービスを開始しました。<br />
月々￥315という料金に加えて、SIMロックフリー版も提供されているため、たとえばb-mobile等自分の好きなサービスと組み合わせて、比較的低価格で通信し放題の環境が手に入る、なかなか魅力的なサービスです。<br />
個人的にも、提供が開始されてから即座に申し込み、すでに欠かすことのできないアイテムとなりつつあります。</p>
<p>このポータブルWiFiの機能の1つに、そのMicroSDスロットに刺さったカードの内容をWebブラウザ経由で表示できる、というものがあります。<br />
他に事前に設定したコンテンツ(PodcastやWebページ等)を自動的にダウンロードしておくという機能があり、本来はこの機能でダウンロードしたコンテンツにアクセスするためのものだと思うのですが、それ以外でも問題なく表示してくれます。</p>
<p>話は変わり、Pomeraというガジェットをご存じの方も多いと思います。<br />
メモを取るのに特化した、持ち運べるメモ帳です。<br />
日本語変換にATOKが採用されており、電池の持ちも長く、そしてなによりフルキーボードがついていて、一般のスマートフォンや携帯よりも遙かに文章が入力しやすいというメリットがあります。<br />
その一方で、Pomera自身は通信機能を持っておらず、外部メディアはMicroSDカードのみ。<br />
新しいモデルは入力した文章をQRコードに変換することができるらしいですが、古いものはその機能がないので、入力した文章のやりとりにMicroSDを使う必要があります。<br />
ですが、ご存じの通りiPhoneやiPadではMicroSDを接続できず、普通の携帯でもアクセスできる領域が決まっていたはずなので、たとえば出先でPomeraだけでBlogを更新するのは難しいというのが実状でした。</p>
<p>そこで、先述のポータブルWiFiを経由して、Pomeraで入力した文章をiPhoneで開き、そこからBlogを更新できないか、ということを思いついたので、実際に試しているところです。</p>
<p>考えている手順は次の通り。</p>
<p>1. Pomeraで文章を入力。<br />
2. MicroSDに保存。<br />
3. MicroSDをPomeraから取り出して、ポータブルWiFiに入れる。<br />
4. iPhoneのGoodReaderで http://< ポータブルWiFiのIPアドレス>/contents/storage.html にアクセス。<br />
5. Blogにアップするtxtファイルをダウンロード。<br />
6. GoodReaderでダウンロードしたtxtファイルを開く。<br />
7. 文字化けしていた場合は文字コードを「DOSJapanese」に変更する。<br />
8. 全文をCopy &#038; WordPress APP等のBlog更新用アプリへPaste。<br />
9. 校正、写真の追加等。<br />
10. Blog更新。</p>
<p>ポイントは、4～7のGoodReaderで処理をするという点。<br />
Pomeraでは文字コードがShiftJIS、改行コードがWindows用のコードで保存されているため、iPhoneのSafariブラウザからだと文字化けします。<br />
その上、Safariでは文字コードを変更する機能がないため、txtファイルの中身は表示できません。<br />
GoodReaderであれば、ブラウザを内蔵しているのに加え、txtファイルの文字コードを変更することができるので、ここではGoodReaderを使っています。</p>
<p>ここまでの文章がきちんと表示されていれば、それは成功した証。<br />
果たしてうまくいくでしょうか…</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_2592_1936_889F87C4-202D-46B9-B68C-4528F8A59E68.jpeg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_2592_1936_889F87C4-202D-46B9-B68C-4528F8A59E68.jpeg" alt="" class="alignnone size-full" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_2592_1936_84440B0E-485E-4113-9573-FB6A855DCAD8.jpeg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_2592_1936_84440B0E-485E-4113-9573-FB6A855DCAD8.jpeg" alt="" class="alignnone size-full" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_2592_1936_0228314C-0CD5-4AEE-A790-4B864D6F2620.jpeg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_2592_1936_0228314C-0CD5-4AEE-A790-4B864D6F2620.jpeg" alt="" class="alignnone size-full" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_4A6FDD34-9FB9-4BD8-BC88-CCE72A8EEF81.jpeg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_4A6FDD34-9FB9-4BD8-BC88-CCE72A8EEF81.jpeg" alt="" class="alignnone size-full" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_DDA8B353-C79F-4F99-ACFE-CD8F1CD54CC1.jpeg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_DDA8B353-C79F-4F99-ACFE-CD8F1CD54CC1.jpeg" alt="" class="alignnone size-full" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_8982F215-0666-4E36-BC75-38BD3DD8A272.jpeg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_8982F215-0666-4E36-BC75-38BD3DD8A272.jpeg" alt="" class="alignnone size-full" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_CE3395BD-805E-4147-B589-9C362098CB39.jpeg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_CE3395BD-805E-4147-B589-9C362098CB39.jpeg" alt="" class="alignnone size-full" /></a></p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_C1515573-A211-4B92-B305-ED948EF99835.jpeg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/09/p_960_640_C1515573-A211-4B92-B305-ED948EF99835.jpeg" alt="" class="alignnone size-full" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/199/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/199" />
	</item>
		<item>
		<title>iPadをJailBreakしてBluetoothヘッドセットから曲を制御する</title>
		<link>http://naoki.sato.name/lab/archives/190</link>
		<comments>http://naoki.sato.name/lab/archives/190#comments</comments>
		<pubDate>Sun, 25 Jul 2010 12:33:44 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[jailbreak]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=190</guid>
		<description><![CDATA[先日、Sony EricssonよりMW600というBluetooth対応ヘッドセットが発売されました。電話はもちろん、イヤフォンジャックが付いていて、好きなイヤフォンで音楽を聴ける優れ物です。
Bluetoothなので [...]]]></description>
			<content:encoded><![CDATA[<p>先日、Sony Ericssonより<a href="http://www.sonyericsson.co.jp/product/accessories/mw600/">MW600</a>というBluetooth対応ヘッドセットが発売されました。電話はもちろん、イヤフォンジャックが付いていて、好きなイヤフォンで音楽を聴ける優れ物です。</p>
<p>Bluetoothなので当然iPhone、iPadでも使えるのですが、残念なことに曲の早送り・巻戻し等を制御するAVRCPプロファイルに完全には対応しておらず、再生・停止くらいしかできません(iOS 4.1で完全に対応するという噂ですが)。</p>
<p>iPhoneは兎も角、iPadは普段カバンに入れて持ち歩くことが多いので、手もとで曲の制御ができないのは結構致命的です。</p>
<p>そこで、どうにかして早送り・巻戻しができないものかと調べてみたところ、どうやら<a href="http://phoenix-dev.com/?p=mc">Music Controls</a>というAppをインストールすればできるようになるらしい、という事がわかりました。しかし、Music Controlsは所謂JailBreak必須との事。どうしようかと迷いましたが、背に腹は変えられないという事でJailBreakを試してみました。</p>
<p>以下、そのMusic Controlsをインストールするまでの作業記録です。</p>
<p><strong><span style="color: #ff0000;">なお、本記事はiPadのJailBreakを推奨するものではありません。総じて不具合の原因となる事も多いので、どうしてもという事で無い限りは手を出さない事をお勧めします。</span></strong></p>
<div><span id="more-190"></span></div>
<h3>前提</h3>
<p>本記事を書いている2010/07/25現在、iPad OSの最新バージョンは3.2.1、iTunesは9.2.1がそれぞれ提供されています。しかしながら、今回使用したSpiritというツールでは、OS 3.2までしか対応していませんので、ご注意下さい。</p>
<p>手元では、iPadは3.2、iTunes 9.2の環境で作業しました。</p>
<h3>まずは、JailBreak</h3>
<p><strong><span style="color: #ff0000;">作業前に、必ずiTunesでiPadのバックアップを取って下さい。</span></strong></p>
<p>「Spirit」というツールをダウンロードします。<a href="http://www.google.co.jp/search?q=iPhone+Spirit">Googleで「iPhone Spirit」で検索すれば</a>すぐに見つかると思います。</p>
<p>各種OS用のアプリケーションが提供されていますので、必要な物を取得します。</p>
<p>iPadを接続し、Spiritを立ち上げるとiPadを認識すると思うので、JailBreakを実行します。</p>
<p>処理はすぐに完了するはずです。</p>
<p>JailBreakが正常に完了していれば、「Cydia」というAppのアイコンが追加されているはずです。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0060.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0060-225x300.png" title="IMG_0060" width="225" height="300" class="alignnone size-medium wp-image-191" /></a></p>
<h3>Music Controlsのインストール</h3>
<p>追加されたCydiaを実行します。</p>
<p>初回はパッケージのアップデート等々で起動まで少し時間がかかるかもしれません。</p>
<p>起動したら、Searchから「Music Controls」を検索します。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0061.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0061-225x300.png" title="IMG_0061" width="225" height="300" class="alignnone size-medium wp-image-192" /></a></p>
<p>詳細を開いて、右上の「Install」をタップ、内容を確認。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0062.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0062-225x300.png" title="IMG_0062" width="225" height="300" class="alignnone size-medium wp-image-193" style="border: 0px initial initial;" /></a></p>
<p>問題なければインストールが開始され、正常に完了すると一番下にボタンが表示されるので、それをタップしてインタフェースを再起動します。</p>
<p>以上でインストールは完了です。</p>
<h3>Music ControlsのActivateと設定</h3>
<p>iPadの設定に、「Music Controls」という項目が追加されているので、そこでActivate、設定します。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0063.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0063-225x300.png" title="IMG_0063" width="225" height="300" class="alignnone size-medium wp-image-194" /></a></p>
<p>ヘッドセットでの制御を有効化するには、「Other Settings」の「System」にある「Headset/Dock Control」と「Remote uses Buttons」を共にONにします。</p>
<p>これで、iPadで音楽再生中にヘッドセットのボタンを押せば、早送り・巻戻しができるようになります。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0064.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0064-300x225.png" title="IMG_0064" width="300" height="225" class="alignnone size-medium wp-image-195" /></a></p>
<p>なお、Music Controlsは有料のアプリケーションです。購入前は5日間限定のトライアルモードとなります。</p>
<p>購入は、Cydiaの詳細ページから可能です。Paypalと、Amazon.comの決済サービスによるクレジットカード支払いが可能です。</p>
<h3>参考までに</h3>
<div id="_mcePaste">Cydiaには、他にも色々と便利なツールがあります。今回この機会に、他にこんな物を導入してみました。</div>
<div id="_mcePaste">
<ul>
<li>SBSettings: Status Barから色々設定</li>
<li>Backgrounder: 擬似マルチタスク</li>
<li>FullForce: iPhone用アプリを無理やり最大化</li>
<li>OpenSSH</li>
</ul>
</div>
<h3>参考までに 2 : iPadのVirtual Memoryを有効にする手順</h3>
<p>ソースは<a href="http://www.ipodtouchfans.com/forums/showthread.php?t=288228">こちら</a>。</p>
<ol>
<li>iPadに /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist を作成する。ownerは&#8221;root&#8221;、grouopは&#8221;wheel&#8221;に設定する。内容は以下のXMLを入れる。<br />
<blockquote>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
&lt;key&gt;EnableTransactions&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;HopefullyExitsLast&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;Label&lt;/key&gt;
&lt;string&gt;com.apple.dynamic_pager&lt;/string&gt;
&lt;key&gt;OnDemand&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;ProgramArguments&lt;/key&gt;
&lt;array&gt;
 &lt;string&gt;/sbin/dynamic_pager&lt;/string&gt;
&lt;/array&gt;
&lt;/dict&gt;
&lt;/plist&gt;</pre>
</blockquote>
</li>
<li>/Library/Preferences/com.apple.virtualMemory.plist を作成する。ownerは&#8221;root&#8221;、grouopは&#8221;wheel&#8221;に設定する。内容は以下のXMLを入れる。<br />
<blockquote>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
 &lt;key&gt;UseEncryptedSwap&lt;/key&gt;
 &lt;false/&gt;
&lt;/dict&gt;
&lt;/plist&gt;</pre>
</blockquote>
</li>
<li>iPadを再起動する。</li>
</ol>
<h3>参考までに 3 : iPadで音声コントロールを有効にする方法</h3>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0065.png"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/07/IMG_0065-225x300.png" title="IMG_0065" width="225" height="300" class="alignnone size-medium wp-image-196" /></a></p>
<p>ソースは<a href="http://apple-voice.com/wordpress/2010/05/how-to-enable-voice-control-on-ipa/">こちら</a>。</p>
<ol>
<li>/System/Library/CoreServices/SpringBoard.app/K48AP.plist の capabilities キーの下に以下の値を追加する。<br />
<blockquote>
<pre>&lt;key&gt;voice-control&lt;/key&gt;
&lt;true/&gt;</pre>
</blockquote>
</li>
<li>iPadを再起動する。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/190/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/190" />
	</item>
		<item>
		<title>ffmpegでiPhoneで再生できる動画を作成する</title>
		<link>http://naoki.sato.name/lab/archives/187</link>
		<comments>http://naoki.sato.name/lab/archives/187#comments</comments>
		<pubDate>Sat, 26 Jun 2010 11:49:42 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[movie]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=187</guid>
		<description><![CDATA[少し調べて実験してみたので備忘録的エントリー。
ffmpegというOpen Sourceの動画形式変換ソフトがあります。およそ動画の変換に関しては出来ないことはないだろうというくらいの便利ツールなのですが、ソフト自体がG [...]]]></description>
			<content:encoded><![CDATA[<p>少し調べて実験してみたので備忘録的エントリー。</p>
<p><a href="http://www.ffmpeg.org/">ffmpeg</a>というOpen Sourceの動画形式変換ソフトがあります。およそ動画の変換に関しては出来ないことはないだろうというくらいの便利ツールなのですが、ソフト自体がGUIを持っていない上、実際に変換する際には恐ろしく長いオプションを指定することになるので、通常は<a href="http://www.ffmpegx.com/">このような</a>Wrapperツールを経由して使うことの多いソフトです。</p>
<p>ただ、そういったツールは往々にして有料のものが多い上、Batch処理の場合は直接コマンドを実行したほうが何かと楽というのもあるので、コマンドラインからffmpegを使って、iPhoneやiPadで見られる動画を作成する方法を調べてみました。</p>
<p>例によってMac環境限定です。</p>
<p><span id="more-187"></span></p>
<p>ffmpegのインストールはMacPortsを使います。また、動画の形式はh264/aacとします。</p>
<p>まず、MacPortsから以下の必要なソフトをインストールしておきます。</p>
<blockquote>
<pre># port install x264
# port install faac
# port install faad2
# port install a52dec
# port install lame</pre>
</blockquote>
<p>次に、次のコマンドでffmpegをインストールします。</p>
<blockquote>
<pre># port install ffmpeg +faac +faad +a52 +x264 +lame</pre>
</blockquote>
<p>オプションの指定を忘れないように注意してください。</p>
<p>インストールが終わると &#8220;ffmpeg&#8221; コマンドが使えるようになります。実際にあるファイルを変換する場合のコマンドは次のようにします。</p>
<blockquote>
<pre># ffmpeg -y -i "$INFILE" -threads 0 -vcodec libx264 -
  -b 512k -s 640x360 -r 30000/1001 -async 50 -
  -acodec libfaac -ab 128k -ar 48000 -ac 2 -vpre hq -vpre ipod640 -
  -bf 0 -coder 0 -flags2 -wpred-dct8x8 "$OUTFILE"</pre>
</blockquote>
<p>ここで、$INFILEは入力ファイル名、$OUTFILEは出力ファイル名です。このオプション指定の場合、映像はビットレートが512k bpsで29.97 fpsのh264、音声は128k bps、48000Hzのaacでそれぞれ変換されたサイズ640&#215;360の動画が出来上がります。</p>
<p>ここでの肝は &#8220;-vpre ipod640&#8243; オプション。iPhone/iPad/iPod用の動画はBaseline Profileという方式で変換されている必要があるのですが、このオプションを付け忘れると方式が変わってしまい、iPhone等にも同期されなくなるのでご注意下さい。</p>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/187/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/187" />
	</item>
		<item>
		<title>iPhoneのバックアップに時間がかかる場合の確認方法 -Macの場合-</title>
		<link>http://naoki.sato.name/lab/archives/185</link>
		<comments>http://naoki.sato.name/lab/archives/185#comments</comments>
		<pubDate>Mon, 21 Jun 2010 23:36:31 +0000</pubDate>
		<dc:creator>naoki</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://naoki.sato.name/lab/?p=185</guid>
		<description><![CDATA[取り急ぎエントリー。
iOS 4が数時間前にリリースされました。ただ、早速アップデートしようとしても、１時間以上かかることもあるという警告に躊躇された方、もしくはアップデートをかけたけれども事前のバックアップに時間がかか [...]]]></description>
			<content:encoded><![CDATA[<p>取り急ぎエントリー。</p>
<p>iOS 4が数時間前にリリースされました。ただ、早速アップデートしようとしても、１時間以上かかることもあるという警告に躊躇された方、もしくはアップデートをかけたけれども事前のバックアップに時間がかかり中断された方もいらっしゃることと思います。</p>
<p>iPhoneの場合、インストールされているアプリケーションによってはバックアップに非常に時間がかかります。これは、iPhoneのバックアップが、アプリケーションの保存しているデータやキャッシュをいちいちすべて取り込んでしまうためで、小さいデータを多数キャッシュするようなアプリケーションがインストールされていると、バックアップだけで数時間かかるということもざらではありません(というか、自分の場合がそうでした)。</p>
<p>特に今回のようにOSをアップデートする場合など、その悪さをしているアプリケーションが何なのか判明していれば事前にアプリケーションを削除しておけばよいのですが、実際には何が悪さをしているのか分からない場合も多くあります。</p>
<p>このエントリーでは、その悪さをしているアプリケーションを突き止める一手段をご紹介します。なお、環境はMacが対象です。Windowsの場合は、おそらくフォルダの場所が異なるだけだとは思いますが、手元に環境がないため、別途調べていただければと思います。</p>
<p><span id="more-185"></span>まず、iPhoneのバックアップデータは、 &#8220;/Users/(自分のアカウント名)/Library/Application Support/MobileSync/Backup/&#8221; というフォルダの下に、自動的に付与されるディレクトリ名で取得されています。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/06/backup1.jpg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/06/backup1-300x208.jpg" title="backup1" width="300" height="208" class="alignnone size-medium wp-image-182" /></a></p>
<p>ディレクトリ名からはどのバックアップが最新なのかは分からないので、その辺りは日付からあたりを付けます。バックアップが進行している場合はいまの日付になっているはずなので、すぐに分かるでしょう。</p>
<p>ディレクトリに移動すると、こちらもランダムのファイル名で多数のファイルが存在しています。このそれぞれのファイルが、iPhoneに保存されている各種データです。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/06/backup2.jpg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/06/backup2-300x169.jpg" title="backup2" width="300" height="169" class="alignnone size-medium wp-image-183" /></a></p>
<p>このディレクトリで約3,500ファイル。直前の通常バックアップだと約15,000ファイル存在していました。これだけのファイルをあの遅いiPhoneのインタフェースで転送している訳なので、時間がかかるのも納得頂けるのではないかと思います。</p>
<p>ファイル名はランダムですので、ファイル名からはどのアプリケーションのデータがどれだけ存在しているかを把握することは難しいです。ですが、バックアップデータの取得は、アプリケーション単位で行われるようです。つまり、ファイルの日付で並び替えると、各アプリケーションのデータに並びます。従って、ファイルを日付の降順に並べて、最初にくるファイルの内容を調べてあげれば、いまどのアプリケーションのデータを転送しているのかが分かります。</p>
<p>各データは&#8221;hoge.mdinfo&#8221;と&#8221;hoge.mddata&#8221;という２つのファイルで構成されています。この内、&#8221;hoge.mddata&#8221;が実際のデータで、&#8221;hoge.mdinfo&#8221;が情報を保存しているものと思われます。</p>
<p>&#8220;hoge.mdinfo&#8221;の方をテキストエディタで開くと、次のような内容が記述されています。</p>
<p><a href="http://naoki.sato.name/lab/wp-content/uploads/2010/06/backup3.jpg"><img src="http://naoki.sato.name/lab/wp-content/uploads/2010/06/backup3-300x252.jpg" title="backup3" width="300" height="252" class="alignnone size-medium wp-image-184" /></a></p>
<p>この中の”AppDomian&#8221;というところが各アプリケーションの情報になっているので、ここからどのアプリケーションのデータであるかが推測できます(この場合はBooklog)。</p>
<p>上記の方法で何度か調べてみて、しばらく同じ&#8221;AppDomain&#8221;のデータが続くようであれば、そのアプリケーションのデータが大量にあり、そのデータの転送で時間がかかっていると考えられるので、バックアップの必要がなければ事前に削除したほうが良いかも知れません。</p>
<p>また、&#8221;Backup/&#8221;以下のディレクトリには、通常iTunesと同期させた際に取得されたバックアップも保存されているので、そのデータからどのアプリケーションのデータが問題なのか調べることも出来るでしょう。</p>
<p>いずれにしろ、運が悪ければ何時間という単位で作業時間が変わってきますので、特にバックアップが進まない場合などは上記の内容を参考にしていただければと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://naoki.sato.name/lab/archives/185/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://naoki.sato.name/lab/archives/185" />
	</item>
	</channel>
</rss>

