<?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>橋本商会</title>
	<atom:link href="http://shokai.org/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://shokai.org/blog</link>
	<description>なんか作ったりした記録を忘れないうちに書くblog</description>
	<lastBuildDate>Wed, 16 May 2012 23:39:02 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com/" />
			<item>
		<title>Juliusで音声認識したのだが、精度が低い</title>
		<link>http://shokai.org/blog/archives/6002</link>
		<comments>http://shokai.org/blog/archives/6002#comments</comments>
		<pubDate>Wed, 16 May 2012 14:35:43 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Julius]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[音声認識]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=6002</guid>
		<description><![CDATA[Julius動かしてみたけど、なんだか認識精度が低くてどうしょうもないのですが、何か間違っているのでしょうか・・？ ■まずMacにインストールした sudo port install julius homebrewにはパ [...]]]></description>
			<content:encoded><![CDATA[<p>
Julius動かしてみたけど、なんだか認識精度が低くてどうしょうもないのですが、何か間違っているのでしょうか・・？<br />
<br />
<br />
■まずMacにインストールした<br />
<pre>
sudo port install julius</pre>
homebrewにはパッケージはない。<br />
<br />
<br />
<a href="http://julius.sourceforge.jp/">http://julius.sourceforge.jp/</a>からソース持ってきてコンパイルしても使えるらしいが、juliusは32bitでしか動かないし、Lionではcoreaudioではなくportaudioを使わなければならないらしいのでportaudioも32bitでインストールして・・と色々面倒だ。<br />
homebrewのportaudioをuniversal binaryでインストールできなかったので、自分でjuliusをビルドしてインストールはあきらめた。<br />
<br />
<br />
音声認識する<br />
<pre>
which julius_demo<br />
julius_demo<br />
</pre>
でしばらく待つと、<br />
<pre>
&lt;&lt;&lt; please speak &gt;&gt;&gt;<br />
</pre>
となってMacのマイクから音声認識できる。<br />
でも大体間違ってる。<br />
<br />
<br />
wavファイルから認識してみる。<br />
QuickTimePlayerで[ファイル]→[新規オーディオ収録]で録音できる。<br />
m4aで保存されるので、<a href="http://julius.sourceforge.jp/juliusbook/ja/desc_adin.html">juliusが認識できるフォーマット</a>(モノラル16kHzのwav)にffmpegで変換した。<br />
<pre>
ffmpeg -i test.m4a -ac 1 -ar 16000 test.wav<br />
</pre>
<br />
<pre>
julius_demo -input stdin < test.wav<br />
</pre>
wav入れたらテキストになってでてきた。でもやっぱりあまりうまく認識してくれない・・<br />
<br />
<br />
julius_demoの中身はshell scriptだった。<br />
<pre class="prettyprint">#!/bin/sh<br />
/opt/local/bin/julius -C /opt/local/lib/julius/fast.jconf "$@"</pre>
<br />
<br />
■Ubuntuにもインストールした<br />
<pre>sudo apt-get install julius libjulius-dev</pre>
<br />
<a href="http://julius.sourceforge.jp/index.php?q=dictation-kit.html">ディクテーションキット</a>が別に必要になる。<br />
ダウンロードする。<br />
<pre>
mkdir ~/tmp<br />
cd ~/tmp<br />
wget "http://sourceforge.jp/frs/redir.php?m=jaist&#038;f=%2Fjulius%2F51158%2Fdictation-kit-v4.1.tar.gz"<br />
tar -zxvf dictation-kit-v4.1.tar.gz<br />
</pre>
<br />
<br />
さっき録音したファイルを認識させる<br />
<pre class="prettyprint">
julius -C ~/tmp/dictation-kit-v4.1/fast.jconf -charconv EUC-JP UTF-8 -input stdin < test.wav<br />
</pre>
やっぱり精度が悪い・・どうすれば・・・<br />
<br />
<br />
-moduleを付けて起動するとTCP port 10050でサーバーが起動する。</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/6002/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache+Passengerでenvironmentの設定</title>
		<link>http://shokai.org/blog/archives/5998</link>
		<comments>http://shokai.org/blog/archives/5998#comments</comments>
		<pubDate>Mon, 14 May 2012 21:05:03 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Passenger]]></category>
		<category><![CDATA[Rack]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Sinatra]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5998</guid>
		<description><![CDATA[いままでsinatra使う時にconfig.ruに set :environemt, :production とか set :environemt, :development って書いてたんだけど、httpd.confに [...]]]></description>
			<content:encoded><![CDATA[<p>
いままでsinatra使う時にconfig.ruに<br />
<pre class="prettyprint">
set :environemt, :production<br />
</pre>
とか<br />
<pre class="prettyprint">
set :environemt, :development<br />
</pre>
って書いてたんだけど、httpd.confに<br />
<pre class="prettyprint">
RackBaseURI /app_path<br />
RackEnv production<br />
</pre>
って書けばいいのだった。</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5998/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>twitterの発言をskypeに投げる</title>
		<link>http://shokai.org/blog/archives/5992</link>
		<comments>http://shokai.org/blog/archives/5992#comments</comments>
		<pubDate>Sun, 13 May 2012 09:05:50 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Skype]]></category>
		<category><![CDATA[skype-chat-gateway]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5992</guid>
		<description><![CDATA[研究会のskype chatで存在感がない人を忘れないために、研究会のtwitterアカウントでfollowしている人の最近の発言をランダムに投稿するようにしている 3時間ごとに投げる。 ここにコードおいてある http [...]]]></description>
			<content:encoded><![CDATA[<p>
研究会のskype chatで存在感がない人を忘れないために、研究会のtwitterアカウントでfollowしている人の最近の発言をランダムに投稿するようにしている<br />
<img src="http://shokai.org/archive/file/cb1e912e67fe5c961e0508d9afa1dbf0.png">
<br />
3時間ごとに投げる。<br />
<br />
<br />
ここにコードおいてある<br />
<a href="https://github.com/shokai/skype-chat-gateway-mac/tree/master/tools/twitter">https://github.com/shokai/skype-chat-gateway-mac/tree/master/tools/twitter</a><br />
<br />
<br />
skypeへの投稿は<a href="http://shokai.org/blog/archives/5943">Skype Chat Gatewayと、WebブラウザからSkypeチャットできるやつ作った</a>に書いたskype-chat-gatewayを使っている。HTTPでskype chatが使えるスゴイ奴だよ<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5992/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>args_parserを使うとRubyでコマンドラインアプリ作るのにとても便利</title>
		<link>http://shokai.org/blog/archives/5981</link>
		<comments>http://shokai.org/blog/archives/5981#comments</comments>
		<pubDate>Fri, 11 May 2012 06:27:25 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[args_parser]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5981</guid>
		<description><![CDATA[args_parserというgemを作りました。 2年前に作ったArgsParserをバージョンアップしていたら互換性が無くなってきたので名前を変えた。 optparseよりもすっきり書けると思う。 ■インストール ge [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://rubygems.org/gems/args_parser">args_parser</a>というgemを作りました。<br />
2年前に作った<a href="http://shokai.org/blog/archives/5096">ArgsParser</a>をバージョンアップしていたら互換性が無くなってきたので名前を変えた。<br />
optparseよりもすっきり書けると思う。<br />
<br />
<br />
■インストール<br />
<pre>
gem install args_parser<br />
</pre>
<br />
<br />
■使い方<br />
試しに、「webページのURLを指定してダウンロードする」アプリを作ってみる。<br />
こういう風に使えるのを作る。<br />
<pre>ruby download_webpage.rb -url http://example.com -o out.html</pre>
<br />
<br />
download_webpage.rb<br />
<pre class="prettyprint">
#!/usr/bin/env ruby<br />
require 'rubygems'<br />
require 'args_parser'<br />
<br />
parser = ArgsParser.parse ARGV do<br />
  arg :url, 'URL', :alias =&gt; :u<br />
  arg <img src='http://shokai.org/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> utput, 'output file', :alias =&gt; <img src='http://shokai.org/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> , :default =&gt; 'out.html'<br />
  arg :verbose, 'verbose mode'<br />
  arg :help, 'show help', :alias =&gt; :h<br />
end<br />
<br />
if parser.has_option? :help or !parser.has_param?(:url, <img src='http://shokai.org/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> utput)<br />
  STDERR.puts parser.help<br />
  STDERR.puts &quot;e.g.  ruby #{$0} -url http://example.com -o out.html&quot;<br />
  exit 1<br />
end<br />
<br />
require 'open-uri'<br />
puts 'download..' if parser[:verbose]<br />
data = open(parser[:url]).read<br />
puts data if parser[:verbose]<br />
<br />
open(parser[:output], 'w+') do |f|<br />
  f.write data<br />
end<br />
puts &quot;saved! =&gt; #{parser[:output]}&quot;<br />
</pre>
<br />
<br />
こんな感じで実行できる。<br />
<img src="http://shokai.org/archive/file/8ab68ae2053e301960591dc6b13a9d64.png"></p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5981/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>\r\nのファイルが混じっているので\nに直すワンライナー</title>
		<link>http://shokai.org/blog/archives/5973</link>
		<comments>http://shokai.org/blog/archives/5973#comments</comments>
		<pubDate>Wed, 09 May 2012 14:03:49 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[oneliner]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5973</guid>
		<description><![CDATA[newgemで生成したgemのテンプレートに改行コードが\r\nのものと\nのものが混じっているのが気持ち悪いので、全部\nに統一した。 find * &#124; xargs -n1 ruby -e 'lines = open( [...]]]></description>
			<content:encoded><![CDATA[<p>
newgemで生成したgemのテンプレートに改行コードが\r\nのものと\nのものが混じっているのが気持ち悪いので、全部\nに統一した。<br />
<br />
<pre class="prettyprint">
find * | xargs -n1 ruby -e 'lines = open(ARGV[0]).read.gsub(/\r\n/, "\n"); open(ARGV[0],"w+").write lines'<br />
</pre>
<br />
実行したディレクトリの中のファイルの改行コードが\nになる。</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5973/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bundler.requireがエラー出すので、プロジェクトローカルにgemを入れた</title>
		<link>http://shokai.org/blog/archives/5968</link>
		<comments>http://shokai.org/blog/archives/5968#comments</comments>
		<pubDate>Tue, 08 May 2012 18:04:44 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5968</guid>
		<description><![CDATA[とある環境でbundle installしてsystemにインストールされたrubygemを使う様にしたら、Bundler.requireがエラー出すようになった。 bundler-1.1.3/lib/bundler/r [...]]]></description>
			<content:encoded><![CDATA[<p>
とある環境でbundle installしてsystemにインストールされたrubygemを使う様にしたら、Bundler.requireがエラー出すようになった。<br />
<pre class="prettyprint">
bundler-1.1.3/lib/bundler/runtime.rb:77:in `require': private method `gsub' called for nil:NilClass (NoMethodError)<br />
</pre>
<br />
<br />
プロジェクトローカルにインストールしたらエラーが出なくなった。<br />
<pre>
bundle install --path gems<br />
</pre>
<br />
<br />
■Bundler<br />
最近は<a href="http://gembundler.com/">bundler</a>というgemの管理機構が使われている。<br />
<br />
Gemfileというテキストファイルを作って、プロジェクトで使用するRubygemsを書いておく。<br />
<br />
Gemfile<br />
<pre class="prettyprint">
source :rubygems<br />
<br />
gem 'sinatra', '>=1.3'<br />
gem 'twitter'<br />
gem 'oauth', '0.4.5'<br />
gem 'json'<br />
</pre>
バージョン指定ができる。<br />
<br />
<pre class="prettyprint">
bundle install<br />
</pre>
rubygemsに公開されていないgitリポジトリを指定したりもできるし、一発で全てのgemがインストールできるので開発環境から本番環境にデプロイするのに便利。<br />
メジャーバージョンアップで仕様が大きく変わったgemがあっても問題ない。<br />
<br />
<br />
<pre class="prettyprint">
require 'rubygems'<br />
require 'bundler/setup'<br />
Bundler.require<br />
require 'yaml'<br />
</pre>
これでGemfileに書かれたgemがrequireされる。<br />
yamlみたいな標準で入ってるgemは自分でrequireしないとならないっぽい。<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5968/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>簡単なon memory cacheを作った</title>
		<link>http://shokai.org/blog/archives/5960</link>
		<comments>http://shokai.org/blog/archives/5960#comments</comments>
		<pubDate>Tue, 08 May 2012 07:07:01 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[tmp_cache]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5960</guid>
		<description><![CDATA[tmp_cacheというgemを作った。 ■インストール gem install tmp_cache ■使い方 cacheなので、memcacheのように有効期限を指定できる。 60秒間生きるキャッシュの場合、61秒後は [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://rubygems.org/gems/tmp_cache">tmp_cache</a>というgemを作った。<br />
<br />
<br />
■インストール<br />
<pre class="prettyprint">
gem install tmp_cache<br />
</pre>
<br />
<br />
■使い方<br />
cacheなので、memcacheのように有効期限を指定できる。<br />
60秒間生きるキャッシュの場合、61秒後はnilになる<br />
<pre class="prettyprint">
#!/usr/bin/env ruby<br />
require 'rubygems'<br />
require 'tmp_cache'<br />
<br />
TmpCache.set('name', 'shokai', 60) # expire 60 sec<br />
<br />
puts TmpCache.get('name') # => 'shokai'<br />
sleep 61<br />
puts TmpCache.get('name') # => nil<br />
</pre>
TmpCacheはグローバルにどこからでも読めるので便利<br />
<br />
<br />
■利用例<br />
<a href="http://shokai.org/blog/archives/5943">skype-chat-gateway</a>や、<a href="http://shokai.org/blog/archives/5931">Herokuで秋月電子のRSSを作る</a>で使ってる。<br />
<br />
skype-chat-gatewayにHTTPアクセスがあるたびに、何百回もAppleScriptを呼び出してSkype.appと通信させるとひどいことになるのでcacheさせている。<br />
秋月のほうも、新着商品の個別ページ100個以上を見に行っているのでcacheを使わなければ大迷惑になってしまう。<br />
Herokuは無料でmemcachedが使えるけどそれだけの為に（無料なのに）クレジットカードを登録するの嫌だし。<br />
<br />
<br />
<br />
例えば、webページを読みに行くのを1200秒cacheする場合はこんなふうにする。<br />
<pre class="prettyprint">
#/usr/bin/env ruby                                                                                                                                                           <br />
require 'rubygems'<br />
require 'open-uri'<br />
require 'tmp_cache'<br />
<br />
def get_page(url, expire=1200)<br />
  TmpCache.get(url) || TmpCache.set(url, open(url).read, expire)<br />
end<br />
<br />
url = 'http://shokai.org'<br />
<br />
puts get_page(url)<br />
<br />
puts get_page(url) # 2回目はcacheから読まれる<br />
</pre>
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5960/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UTF-8-MACをUTF-8に変換する</title>
		<link>http://shokai.org/blog/archives/5953</link>
		<comments>http://shokai.org/blog/archives/5953#comments</comments>
		<pubDate>Mon, 07 May 2012 07:53:53 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5953</guid>
		<description><![CDATA[Twitterをterminalで見ていると、ごく稀に変な文字が入っているtweetがあって、それがUTF-8-MACだとgeta6に教わった。 Macだと「ぱぴぷぺぽ」など一部の日本語をファイル名にすると変な事が起こる [...]]]></description>
			<content:encoded><![CDATA[<p>
Twitterをterminalで見ていると、ごく稀に変な文字が入っているtweetがあって、それがUTF-8-MACだとgeta6に教わった。<br />
Macだと「ぱぴぷぺぽ」など一部の日本語をファイル名にすると変な事が起こるのだが、それの原因がUTF-8-MACらしい。<br />
<br />
そういう文字をDBに保存するとのちのち良くないので、Rubyで変換した。<br />
Iconv使ったら簡単だった。<br />
<br />
<br />
■例<br />
<pre>
touch ぱぴぷぺぽ<br />
echo は<309a>ひ<309a>ふ<309a>へ<309a>ほ<309a><br />
</pre>
となる。<br />
<br />
<img src="http://shookai.org/face/f/9217841ff59e205151fc10371c5b5396.png">
<br />
ただし、TerminalやiTerm2で「ぱぴぷぺぽ」をechoやlsしてもふつうに「ぱぴぷぺぽ」になってしまって、Rubyに渡して変換を試せない。<br />
GNU Screen上でechoやlsするとUTF-8-MACの文字を出力できる。<br />
<br />
■Rubyで変換<br />
インストール<br />
<pre class="prettyprint">
brew install iconv<br />
gem install iconv<br />
</pre>
<br />
<br />
標準入力を全て普通のUTF-8に変換する<br />
convert-macutf.rb<br />
<pre class="prettyprint">
require 'rubygems'<br />
require 'iconv'<br />
<br />
ARGF.each do |line|<br />
  puts line<br />
  puts Iconv.iconv("UTF-8", "UTF-8-MAC", line)<br />
end<br />
</pre>
<br />
<br />
screen起動してから<br />
<pre>
touch ぱぴぷぺぽ<br />
ls | ruby -Ku convert-macutf.rb<br />
</pre>
結果<br />
<pre>
convert-macutf.rb<br />
convert-macutf.rb<br />
ぱÿぴÿぷÿぺÿぽÿ<br />
ぱぴぷぺぽ<br />
</pre>
<br />
<img src="http://shookai.org/face/f/3586641b9e919a8c3bb5a2863b40b81c.png">
<br />
<br />
iconv単体で使う時はこう<br />
<pre>
ls | iconv -f UTF-8-MAC -t UTF-8<br />
</pre>
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5953/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skype Chat Gatewayと、WebブラウザからSkypeチャットできるやつ作った</title>
		<link>http://shokai.org/blog/archives/5943</link>
		<comments>http://shokai.org/blog/archives/5943#comments</comments>
		<pubDate>Fri, 04 May 2012 14:53:18 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[EventMachine]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Sinatra]]></category>
		<category><![CDATA[Skype]]></category>
		<category><![CDATA[skype-chat-gateway]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5943</guid>
		<description><![CDATA[半年ぐらい前に作って、書くのを完全に忘れてた。 Skype Botの類が簡単に作れるようになるし、スマホの重いSkypeクライアント起動しなくてもチャット読めたりしてなかなか便利です。skype-socket-gatew [...]]]></description>
			<content:encoded><![CDATA[<p>
半年ぐらい前に作って、書くのを完全に忘れてた。<br />
Skype Botの類が簡単に作れるようになるし、スマホの重いSkypeクライアント起動しなくてもチャット読めたりしてなかなか便利です。<a href="http://shokai.org/blog/archives/5377">skype-socket-gateway</a>は捨てましょう。<br />
<br />
&nbsp;<br />
<br />
Mac版とLinux版がある。Mac版はchatの読み書きができるけど、Linux版はAPIがよくわからなくて書き込みしかできない。<br />
<ul>
	<li><a href="https://github.com/shokai/skype-chat-gateway-mac">https://github.com/shokai/skype-chat-gateway-mac</a></li>
	<li><a href="https://github.com/shokai/skype-chat-gateway-linux">https://github.com/shokai/skype-chat-gateway-linux</a></li>
</ul>
動かし方はそれぞれREADMEに書いたので読んで欲しい<br />
起動するとHTTPサーバーがport 8787で立ち上がる。<br />
<pre>自分のプログラム &lt;--(HTTP)--&gt; Skype-Gateway &lt;--(AppleScript)--&gt; Skype.app</pre>
という感じで通信する。<br />
<br />
HTTP-POSTでchatに発言できるので、bot等が作りやすい。<br />
例えばcurlで発言する<br />
<pre>curl -d 'hello!!' http://localhost:8787</pre>
これでchatにhello!!と投稿される。<br />
<br />
<br />
Mac版にはLaunchAgentに登録する.plistファイルも付けておいたので、Mac起動と同時にskype-chat-gatewayも自動起動させれる。<br />
<br />
&nbsp;<br />
<br />
ついでにMac版には &#8220;WebUI&#8221; というディレクトリが同梱されている。<br />
Webブラウザ上でチャットが使える。<br />
<img src="http://shokai.org/archive/file/7064179199be6ab16f6f44d864fefa72.png" alt="" />
<br />
SinatraアプリがMac版skype-chat-gatewayと通信している。<br />
スマホ版Skypeが重すぎて常時起動してられないのでちゃちゃっと作ってみた。<br />
ChromeやSafariで開いておくと<a href="http://d.hatena.ne.jp/shokai/20110619/1308469952">Webkit Notification</a>でGrowlのような通知が出るので、本格的にSkype起動して無くても良くなってくる。<br />
<br />
Linux版はチャットが読めないのでWebUI付けてない。</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5943/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OAuth0.4.6とsystem_timerがおかしい</title>
		<link>http://shokai.org/blog/archives/5937</link>
		<comments>http://shokai.org/blog/archives/5937#comments</comments>
		<pubDate>Fri, 04 May 2012 09:58:48 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5937</guid>
		<description><![CDATA[twitterにoauthしようとすると401が返ってくる Faraday: you may want to install system_timer for reliable timeouts /Users/sho/. [...]]]></description>
			<content:encoded><![CDATA[<p>
twitterにoauthしようとすると401が返ってくる<br />
<pre>
Faraday: you may want to install system_timer for reliable timeouts<br />
/Users/sho/.rvm/gems/ruby-1.8.7-p358/gems/oauth-0.4.6/lib/oauth/consumer.rb:216:in `token_request': 401 Unauthorized (OAuth::Unauthorized)<br />
</pre>
<br />
なんか最新版のoauth 0.4.6がおかしい<br />
<br />
<br />
0.4.5使ったら大丈夫だった。<br />
<pre class="prettyprint">
source :rubygems<br />
<br />
gem 'twitter'<br />
gem 'oauth', '0.4.5'<br />
</pre>
<br />
faradayに原因があるのかと思ったが、どっちも最新版0.8.0使ってた。<br />
詳しくは調べてない。<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5937/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

