<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>この先生きのこるには</title>
	
	<link>http://project-p.jp/halt</link>
	<description>/halt/SnapShot</description>
	<lastBuildDate>Thu, 02 Feb 2012 00:57:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/project-p/halt/blog" /><feedburner:info uri="project-p/halt/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>akiyanの書いたvim-textobj-phpがview書く時に便利</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/jyYxtnuibnw/</link>
		<comments>http://project-p.jp/halt/?p=1711#comments</comments>
		<pubDate>Thu, 02 Feb 2012 00:57:34 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1711</guid>
		<description><![CDATA[vim-textobj-phpを使うと、上の画像のように、「vaP」でphpタグに囲まれた部分を選択する事ができます。(この例だと「vi&#8221;」でもいいんだけれど二行上のidのとこはprefixがついてるから「vaP」じゃないとダメ) vim-textobj-userが出た時に自分もやろうと思ったけど、「phpタグってファイルの最初と最後にしか書かないからあんまり意味なさそう」と思って作ってなかったんですよね。でも今はviewをsmartyなんかのテンプレートエンジンを使わずに生phpで書いてる事が多くなってきたのでものすごく便利。 vim-textobj-phpは、vim-textobj-userを利用しているので、こちらも一緒にインストールする必要があります。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/halt/6804174003/" title="textobj-php by ha1t, on Flickr"><img src="http://farm8.staticflickr.com/7033/6804174003_8fc5d96d85.jpg" width="500" height="165" alt="textobj-php"></a></p>
<p><a href="https://github.com/akiyan/vim-textobj-php">vim-textobj-php</a>を使うと、上の画像のように、「vaP」でphpタグに囲まれた部分を選択する事ができます。(この例だと「vi&#8221;」でもいいんだけれど二行上のidのとこはprefixがついてるから「vaP」じゃないとダメ)</p>
<p>vim-textobj-userが出た時に自分もやろうと思ったけど、「phpタグってファイルの最初と最後にしか書かないからあんまり意味なさそう」と思って作ってなかったんですよね。でも今はviewをsmartyなんかのテンプレートエンジンを使わずに生phpで書いてる事が多くなってきたのでものすごく便利。</p>
<p>vim-textobj-phpは、<a href="https://github.com/kana/vim-textobj-user">vim-textobj-user</a>を利用しているので、こちらも一緒にインストールする必要があります。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/_TzxJ38FovJ8bY4iMayixfeeL-Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/_TzxJ38FovJ8bY4iMayixfeeL-Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_TzxJ38FovJ8bY4iMayixfeeL-Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/_TzxJ38FovJ8bY4iMayixfeeL-Y/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/jyYxtnuibnw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1711</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1711</feedburner:origLink></item>
		<item>
		<title>Xiタブレットモニターキャンペーン当選したー</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/vOZWNee3nHM/</link>
		<comments>http://project-p.jp/halt/?p=1710#comments</comments>
		<pubDate>Thu, 26 Jan 2012 14:18:54 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1710</guid>
		<description><![CDATA[ドコモXiタブレットモニターキャンペーンに当選して、ARROWS Tabを使わせていただく事になりましたー。 スマートフォンは何台か持ってるけど、タブレットは初めてなので、使いながらレビューしていきたいと思います。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/halt/6765541501/" title="DSC00444 by ha1t, on Flickr"><img src="http://farm8.staticflickr.com/7002/6765541501_2e213e6ea7.jpg" width="500" height="375" alt="DSC00444"></a></p>
<p>ドコモXiタブレットモニターキャンペーンに当選して、ARROWS Tabを使わせていただく事になりましたー。</p>
<p>スマートフォンは何台か持ってるけど、タブレットは初めてなので、使いながらレビューしていきたいと思います。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/sNpwIIlJCl0y9Qh-Vc0mfrvgTWY/0/da"><img src="http://feedads.g.doubleclick.net/~a/sNpwIIlJCl0y9Qh-Vc0mfrvgTWY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sNpwIIlJCl0y9Qh-Vc0mfrvgTWY/1/da"><img src="http://feedads.g.doubleclick.net/~a/sNpwIIlJCl0y9Qh-Vc0mfrvgTWY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/vOZWNee3nHM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1710</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1710</feedburner:origLink></item>
		<item>
		<title>recpt1についてるtssplitter_liteをrecfriioに移植した</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/Lr87ADx33wI/</link>
		<comments>http://project-p.jp/halt/?p=1709#comments</comments>
		<pubDate>Sat, 21 Jan 2012 09:32:39 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1709</guid>
		<description><![CDATA[先月の話ですが、recpt1についてるtssplitter_liteによるPID指定切り出し機能をrecfriioに移植しました。 ha1t/recfriio &#8211; GitHub これによって、 $ recfriio --b25 --strip --sid hd 22 1860 のように、&#8211;sidでPIDを指定できます。recpt1にとりこまれているマクロもコピーしているので、PID番号だけでなく「hd」などの文字列指定による指定も可能です。]]></description>
			<content:encoded><![CDATA[<p>先月の話ですが、recpt1についてるtssplitter_liteによるPID指定切り出し機能をrecfriioに移植しました。</p>
<p><a href="https://github.com/ha1t/recfriio">ha1t/recfriio &#8211; GitHub</a></p>
<p>これによって、</p>
<pre>
<code>
$ recfriio --b25 --strip --sid hd  22 1860
</code>
</pre>
<p>のように、&#8211;sidでPIDを指定できます。recpt1にとりこまれているマクロもコピーしているので、PID番号だけでなく「hd」などの文字列指定による指定も可能です。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/mnk5o7mNEheJwsuJJM-uwTcGH8o/0/da"><img src="http://feedads.g.doubleclick.net/~a/mnk5o7mNEheJwsuJJM-uwTcGH8o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mnk5o7mNEheJwsuJJM-uwTcGH8o/1/da"><img src="http://feedads.g.doubleclick.net/~a/mnk5o7mNEheJwsuJJM-uwTcGH8o/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/Lr87ADx33wI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1709</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1709</feedburner:origLink></item>
		<item>
		<title>Arduino UNOのシリアル通信をrubyで操作する</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/WElBV-ZvYwY/</link>
		<comments>http://project-p.jp/halt/?p=1707#comments</comments>
		<pubDate>Sun, 08 Jan 2012 09:10:30 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1707</guid>
		<description><![CDATA[Ubuntu 10.04にArduino UNOを接続してrubyを使ってArduinoとシリアル通信を行う話です。 Arduino UNOの場合、特にドライバをインストールしなくても、Ubuntu Linuxに接続するだけで使う事ができます。挿し込むと/dev/ttyACM0がでてくるので、これをruby側で指定すればOK。 rubyでシリアル通信を行うには、ruby-serialportを利用します。「sudo gem install ruby-serialport」でインストールできます。 Arduinoから送信される通信を受け取って表示するコードは以下のような感じになります。 require 'rubygems' require 'serialport' port = "/dev/ttyACM0" def receive port sp = SerialPort.new(port, 9600, 8, 1, SerialPort::NONE) loop do puts sp.readline end sp.close end receive port 送信する場合はwriteメソッドを使います。簡単ですね。]]></description>
			<content:encoded><![CDATA[<p>Ubuntu 10.04にArduino UNOを接続してrubyを使ってArduinoとシリアル通信を行う話です。</p>
<p>Arduino UNOの場合、特にドライバをインストールしなくても、Ubuntu Linuxに接続するだけで使う事ができます。挿し込むと/dev/ttyACM0がでてくるので、これをruby側で指定すればOK。</p>
<p>rubyでシリアル通信を行うには、ruby-serialportを利用します。「sudo gem install ruby-serialport」でインストールできます。</p>
<p>Arduinoから送信される通信を受け取って表示するコードは以下のような感じになります。</p>
<pre><code>
require 'rubygems'
require 'serialport'

port = "/dev/ttyACM0"

def receive port
  sp = SerialPort.new(port, 9600, 8, 1, SerialPort::NONE)
  loop do
      puts sp.readline
  end
  sp.close
end

receive port
</code></pre>
<p>送信する場合はwriteメソッドを使います。簡単ですね。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/FSqe7kOHqaGoe_Thc9n6f07gmYo/0/da"><img src="http://feedads.g.doubleclick.net/~a/FSqe7kOHqaGoe_Thc9n6f07gmYo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FSqe7kOHqaGoe_Thc9n6f07gmYo/1/da"><img src="http://feedads.g.doubleclick.net/~a/FSqe7kOHqaGoe_Thc9n6f07gmYo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/WElBV-ZvYwY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1707</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1707</feedburner:origLink></item>
		<item>
		<title>15年前に書いたコード</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/2XcVYVFgncQ/</link>
		<comments>http://project-p.jp/halt/?p=1705#comments</comments>
		<pubDate>Thu, 15 Dec 2011 03:35:41 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1705</guid>
		<description><![CDATA[15年前に書いたと思われる大変恥ずかしい古文書を発掘いたしましたのでgistに貼っておきます。 https://gist.github.com/1476177]]></description>
			<content:encoded><![CDATA[<p>15年前に書いたと思われる大変恥ずかしい古文書を発掘いたしましたのでgistに貼っておきます。</p>
<p>https://gist.github.com/1476177</p>
<div id="gist-1476177" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="cm">/* _/_/_/時間によってメッセージを変更_/_/_/*/</span></div><div class='line' id='LC2'><span class="kd">function</span> <span class="nx">putTime</span><span class="p">()</span></div><div class='line' id='LC3'><span class="p">{</span></div><div class='line' id='LC4'><span class="nx">d</span><span class="o">=</span><span class="k">new</span> <span class="nb">Date</span><span class="p">();</span></div><div class='line' id='LC5'><span class="nx">h</span><span class="o">=</span><span class="nx">d</span><span class="p">.</span><span class="nx">getHours</span><span class="p">();</span></div><div class='line' id='LC6'><span class="k">if</span><span class="p">(</span><span class="nx">h</span><span class="o">&lt;</span><span class="mi">5</span><span class="p">){</span><span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="s2">&quot;真夜中ですな。テレホ入ってますか？&quot;</span><span class="p">);}</span></div><div class='line' id='LC7'>&nbsp;&nbsp;&nbsp;<span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">h</span><span class="o">&lt;</span><span class="mi">11</span><span class="p">){</span><span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="s2">&quot;おっはよーございます。おげんきですか？&quot;</span><span class="p">);}</span></div><div class='line' id='LC8'>&nbsp;&nbsp;&nbsp;<span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">h</span><span class="o">&lt;</span><span class="mi">15</span><span class="p">){</span><span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="s2">&quot;お昼。ご飯食べた？&quot;</span><span class="p">);}</span></div><div class='line' id='LC9'>&nbsp;&nbsp;&nbsp;<span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">h</span><span class="o">&lt;</span><span class="mi">16</span><span class="p">){</span><span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="s2">&quot;３時。おやつちょうだいです。&quot;</span><span class="p">);}</span></div><div class='line' id='LC10'>&nbsp;&nbsp;&nbsp;<span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">h</span><span class="o">&lt;</span><span class="mi">19</span><span class="p">){</span><span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="s2">&quot;もう暗くなってきたね。&quot;</span><span class="p">);}</span></div><div class='line' id='LC11'>&nbsp;&nbsp;&nbsp;<span class="k">else</span><span class="p">{</span><span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="s2">&quot;よる。ねむいなあ。(-.-)Zzz･･･(ﾟ_ﾟ)パチッ&quot;</span><span class="p">);}</span></div><div class='line' id='LC12'><span class="p">}</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1476177/25a69cd0435a4dfae057c0c3f116d461d5c6bf61/gistfile1.js" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1476177#file_gistfile1.js" style="float:right;margin-right:10px;color:#666">gistfile1.js</a>
            <a href="https://gist.github.com/1476177">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>


<p><a href="http://feedads.g.doubleclick.net/~a/bJdT1vQXs6eQfR_HfXNQ6r3pHmg/0/da"><img src="http://feedads.g.doubleclick.net/~a/bJdT1vQXs6eQfR_HfXNQ6r3pHmg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bJdT1vQXs6eQfR_HfXNQ6r3pHmg/1/da"><img src="http://feedads.g.doubleclick.net/~a/bJdT1vQXs6eQfR_HfXNQ6r3pHmg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/2XcVYVFgncQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1705</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1705</feedburner:origLink></item>
		<item>
		<title>我が家のts2mp4エンコードスクリプト</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/pGevJmr0Zwk/</link>
		<comments>http://project-p.jp/halt/?p=1704#comments</comments>
		<pubDate>Mon, 12 Dec 2011 15:46:59 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1704</guid>
		<description><![CDATA[うちのCPUはQ6600でちょっと時代遅れ感あるので、今のところ1passで画質よりも変換速度とサイズ縮小を目的の設定にしてある。変換サーバが高負荷の時に音ズレが発生する問題があったが、bitexactを足してから落ち着いたような気がしている。時間のある時にチューニングして2passにする予定。 nice -n 19 \ ffmpeg -threads 4 -i ${TS} -f mp4 -vcodec libx264 \ -bf 4 \ -flags +bitexact \ -flags2 +fastpskip+mbtree \ -r 30000/1001 -b 600k -aspect 16:9 -s 720x540 \ -deinterlace -copyts \ -absf aac_adtstoasc \ -acodec &#8230; <a href="http://project-p.jp/halt/?p=1704">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>うちのCPUはQ6600でちょっと時代遅れ感あるので、今のところ1passで画質よりも変換速度とサイズ縮小を目的の設定にしてある。変換サーバが高負荷の時に音ズレが発生する問題があったが、bitexactを足してから落ち着いたような気がしている。時間のある時にチューニングして2passにする予定。</p>
<pre>
<code>
nice -n 19 \
ffmpeg -threads 4 -i ${TS} -f mp4 -vcodec libx264 \
-bf 4 \
-flags +bitexact \
-flags2 +fastpskip+mbtree \
-r 30000/1001 -b 600k -aspect 16:9 -s 720x540 \
-deinterlace -copyts \
-absf aac_adtstoasc \
-acodec libfaac -ac 2 -ar 48000 -ab 128k \
-y ${BASE}.mp4
</code>
</pre>

<p><a href="http://feedads.g.doubleclick.net/~a/XcI3_hwJgyMnt7SftfSe3dkfoZs/0/da"><img src="http://feedads.g.doubleclick.net/~a/XcI3_hwJgyMnt7SftfSe3dkfoZs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XcI3_hwJgyMnt7SftfSe3dkfoZs/1/da"><img src="http://feedads.g.doubleclick.net/~a/XcI3_hwJgyMnt7SftfSe3dkfoZs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/pGevJmr0Zwk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1704</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1704</feedburner:origLink></item>
		<item>
		<title>Google SpreadSheet上での関数は引数によって実行タイミングが変わる</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/4RkbCMWypQ8/</link>
		<comments>http://project-p.jp/halt/?p=1702#comments</comments>
		<pubDate>Wed, 16 Nov 2011 14:32:42 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1702</guid>
		<description><![CDATA[特定の行にあるid群を元にデータを取得して合計値を返す関数を作った。 Google Apps Scriptはよくわかってないので動けばいいやで手探りで書いてるんだけど、 最初は、以下のような形で引数を指定するようにしていた。 =getHogeHoge(ROW(), "B", "AH") これを、行の一番右に入れると、その行の内容をとってきて計算結果を返してくれるんだけど、行の内容をいじくっても、内容が全然追従してくれない。 画面をリロードしても結果が変わってくれない。スクリプトエディタでコードを変更するとようやく反映される。 毎回意味もなくコードを変更して、合計値を更新するのは面倒なので、リファレンスをみたり、いろいろがんばった所、セルの範囲だとわかるような引数を指定しないと、計算対象が変化した事を補足できず、動的に再計算できないらしい。 そこで、引数の受け渡し部分を以下のように書きなおした。 =getHogeHoge(B7:AH7) B7:AH7みたいな引数を入れると、二次元配列で指定内容の中身が帰ってくる。rangeでgetValues()した時みたいなやつ。最初の引数指定のやつは、受け取ったアドレスを元にわざわざgetRangeしてたので、値がそのままくるという意味でも便利。 こういう書き方にすると、オートフィルも効いて入力しやすいので、Google Apps Scriptを書いている皆様は私のように動けばなんでもいいやで書かずにコンピュータさんにとってこっちが何やってるか想像付きやすい書き方を意識されるとよろしいのではないでしょうか。]]></description>
			<content:encoded><![CDATA[<p>特定の行にあるid群を元にデータを取得して合計値を返す関数を作った。<br />
Google Apps Scriptはよくわかってないので動けばいいやで手探りで書いてるんだけど、<br />
最初は、以下のような形で引数を指定するようにしていた。</p>
<pre>
<code>
=getHogeHoge(ROW(), "B", "AH")
</code>
</pre>
<p>これを、行の一番右に入れると、その行の内容をとってきて計算結果を返してくれるんだけど、行の内容をいじくっても、内容が全然追従してくれない。<br />
画面をリロードしても結果が変わってくれない。スクリプトエディタでコードを変更するとようやく反映される。<br />
毎回意味もなくコードを変更して、合計値を更新するのは面倒なので、リファレンスをみたり、いろいろがんばった所、セルの範囲だとわかるような引数を指定しないと、計算対象が変化した事を補足できず、動的に再計算できないらしい。<br />
そこで、引数の受け渡し部分を以下のように書きなおした。</p>
<pre>
<code>
=getHogeHoge(B7:AH7)
</code>
</pre>
<p>B7:AH7みたいな引数を入れると、二次元配列で指定内容の中身が帰ってくる。rangeでgetValues()した時みたいなやつ。最初の引数指定のやつは、受け取ったアドレスを元にわざわざgetRangeしてたので、値がそのままくるという意味でも便利。<br />
こういう書き方にすると、オートフィルも効いて入力しやすいので、Google Apps Scriptを書いている皆様は私のように動けばなんでもいいやで書かずにコンピュータさんにとってこっちが何やってるか想像付きやすい書き方を意識されるとよろしいのではないでしょうか。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/KXqqEGZx7Ub9bZ0XLJyQRvIuOUk/0/da"><img src="http://feedads.g.doubleclick.net/~a/KXqqEGZx7Ub9bZ0XLJyQRvIuOUk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KXqqEGZx7Ub9bZ0XLJyQRvIuOUk/1/da"><img src="http://feedads.g.doubleclick.net/~a/KXqqEGZx7Ub9bZ0XLJyQRvIuOUk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/4RkbCMWypQ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1702</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1702</feedburner:origLink></item>
		<item>
		<title>zshでのgit補完機能を強化する</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/OJGGHsy5BlM/</link>
		<comments>http://project-p.jp/halt/?p=1701#comments</comments>
		<pubDate>Mon, 31 Oct 2011 13:40:22 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1701</guid>
		<description><![CDATA[http://uu59.blog103.fc2.com/blog-entry-5.html によると、git本体に同梱されている補完スクリプトを使うと、git>の補完が強まるらしいのでやってみた。 このエントリが書かれていた時はgitはkernel.orgで管理されていたようだけど現在はgithubにあるので、以下のようにする事でとってこれる。 $ cd .zsh $ wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash スクリプトの内容もzshに気遣いできてるので、.zshrcに、 source .zsh/git-completion.bash と書くだけでOK。]]></description>
			<content:encoded><![CDATA[<p>http://uu59.blog103.fc2.com/blog-entry-5.html によると、git本体に同梱されている補完スクリプトを使うと、git>の補完が強まるらしいのでやってみた。</p>
<p>このエントリが書かれていた時はgitはkernel.orgで管理されていたようだけど現在はgithubにあるので、以下のようにする事でとってこれる。</p>
<pre>
<code>
$ cd .zsh
$ wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
</code>
</pre>
<p>スクリプトの内容もzshに気遣いできてるので、.zshrcに、</p>
<pre>
<code>
source .zsh/git-completion.bash
</code>
</pre>
<p>と書くだけでOK。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/zrXT64X5nrJpjJJB4M6lbAJWMeU/0/da"><img src="http://feedads.g.doubleclick.net/~a/zrXT64X5nrJpjJJB4M6lbAJWMeU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zrXT64X5nrJpjJJB4M6lbAJWMeU/1/da"><img src="http://feedads.g.doubleclick.net/~a/zrXT64X5nrJpjJJB4M6lbAJWMeU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/OJGGHsy5BlM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1701</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1701</feedburner:origLink></item>
		<item>
		<title>N-04Cでrootがとれたよー！</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/ELiT6uxYiQM/</link>
		<comments>http://project-p.jp/halt/?p=1699#comments</comments>
		<pubDate>Sat, 29 Oct 2011 06:49:09 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1699</guid>
		<description><![CDATA[実は、Android端末はN-04Cが初めてで、他の機種を触った事はないし、root化も当然した事がないので、正直まだroot化のメリットをいかす事ができていませんが、とりあえずできたのでご報告。 まず、adbが使える環境を作る必要があります。LionでN-04Cをつなぐのはちょっと面倒くさいです。Medias(N-04c)をOSX(Lion)で使うために。 &#8211; .h2oのお気楽日記を参考にしてやってみたのですが、つながりませんでした。 Windowsの場合は、N-04C用ADB USBドライバーを入れて、JREを入れて、android-sdkのzip阪を拾ってきてmanagerからadbをダウンロードするのが最小です。よくわからなかったらJDK入れてinstaller阪入れると良いかも。 adbが使える環境を作ったら、以下のものを用意してください。 zergRush ( https://github.com/revolutionary/zergRush/downloads ) n04c_rootkit ( https://twitter.com/#!/goroh_kun/status/129230718424457217 ) IS03rootsw ( http://www.shiduki.com/android/IS03rootsw.html ) そしたら、N-04Cをつないで、以下のコマンドを実行します。 まず、zergRushを適用します。コマンドラインから以下を実行します。 zergRushの実行 adb push zergRush /data/local/ adb shell chmod 777 /data/local/zergRush adb shell /data/local/zergRush 次に、n04c_rootkitを適用します。「adb shell」で、一旦中に入って、/data/local/tmp/shを実行するとrootになれるので、local.propを/data/以下に配置して、autoexecに権限をつけたら、shellを抜けて、rebootします。 adb push data_local /data/local &#8230; <a href="http://project-p.jp/halt/?p=1699">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>実は、Android端末はN-04Cが初めてで、他の機種を触った事はないし、root化も当然した事がないので、正直まだroot化のメリットをいかす事ができていませんが、とりあえずできたのでご報告。</p>
<p><a href="http://www.flickr.com/photos/halt/6290530463/" title="N-04C端末情報 by ha1t, on Flickr"><img src="http://farm7.static.flickr.com/6120/6290530463_cd2ed05cb2_o.png" width="480" height="854" alt="N-04C端末情報"></a></p>
<p>まず、adbが使える環境を作る必要があります。LionでN-04Cをつなぐのはちょっと面倒くさいです。<a href="http://d.hatena.ne.jp/dot_h2o2/20110914/p1">Medias(N-04c)をOSX(Lion)で使うために。 &#8211; .h2oのお気楽日記</a>を参考にしてやってみたのですが、つながりませんでした。<br />
Windowsの場合は、<a href="http://www.n-keitai.com/guide/download/adb/index.html">N-04C用ADB USBドライバーを入れて、</a>JREを入れて、android-sdkのzip阪を拾ってきてmanagerからadbをダウンロードするのが最小です。よくわからなかったらJDK入れてinstaller阪入れると良いかも。</p>
<p>adbが使える環境を作ったら、以下のものを用意してください。</p>
<ul>
<li>zergRush ( https://github.com/revolutionary/zergRush/downloads )</li>
<li>n04c_rootkit ( https://twitter.com/#!/goroh_kun/status/129230718424457217 )</li>
<li>IS03rootsw ( http://www.shiduki.com/android/IS03rootsw.html )</li>
</ul>
<p>そしたら、N-04Cをつないで、以下のコマンドを実行します。</p>
<p>まず、zergRushを適用します。コマンドラインから以下を実行します。</p>
<p>zergRushの実行 </p>
<pre>
adb push zergRush /data/local/
adb shell chmod 777 /data/local/zergRush
adb shell /data/local/zergRush
</pre>
<p>次に、n04c_rootkitを適用します。「adb shell」で、一旦中に入って、/data/local/tmp/shを実行するとrootになれるので、local.propを/data/以下に配置して、autoexecに権限をつけたら、shellを抜けて、rebootします。</p>
<pre>
adb push data_local /data/local
adb push local.prop /data/local/local.prop
adb shell
> $ /data/local/tmp/sh
> # mv /data/local/local.prop /data/
> # chmod 555 /data/local/autoexec.sh
adb reboot
</pre>
<p>あとはもう適当に。</p>
<pre>
adb install IS03rootsw.apk
adb install Superuser.apk
</pre>
<p>はじめてのroot化ですが、簡単にスクリーンショットがとれるのはいいですね！<del>プリインストールアプリとかアンインストールできるようになるらしいので、</del><ins>NANDロックが解除できないと自由度が低いですが、</ins>ちょっといろいろ調べてみようと思います。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/hKZAfV7F4GBLZRtc_FhxunXIXaE/0/da"><img src="http://feedads.g.doubleclick.net/~a/hKZAfV7F4GBLZRtc_FhxunXIXaE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hKZAfV7F4GBLZRtc_FhxunXIXaE/1/da"><img src="http://feedads.g.doubleclick.net/~a/hKZAfV7F4GBLZRtc_FhxunXIXaE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/ELiT6uxYiQM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1699</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1699</feedburner:origLink></item>
		<item>
		<title>CentOS 5.5にfluent入れる時はソースから入れると良い</title>
		<link>http://feedproxy.google.com/~r/project-p/halt/blog/~3/rOZxOplXLz0/</link>
		<comments>http://project-p.jp/halt/?p=1697#comments</comments>
		<pubDate>Sun, 09 Oct 2011 15:09:52 +0000</pubDate>
		<dc:creator>halt</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://project-p.jp/halt/?p=1697</guid>
		<description><![CDATA[社内で使ってる自前で作ったBlackboxというイベントログ収集ツールがある。複数台のフロントサーバで起こるイベントを記録して、バックエンドサーバにあるmysqlに集約するんだけど、集約部分はcronでrsyncなのでリアルタイムではない。 これをfluentを使ってリアルタイムに集約。mongodbに保存する形に変更したんだけど、fluentがあまりに使いやすくて感動した。 で、本題。fluentのインストール方法はたくさんある。一番楽なのは、gemコマンドを使ったインストールで、 $ sudo gem install fluent というコマンドを入力するだけで、あとは全部よろしくやってくれる。 ただこれがうまくいくのは、rubyのバージョンが1.9.2以上である場合の話。 さくらのVPSやGMOアプリクラウドにデフォルトで入ってるCentOSのバージョンは5.5で、それらにインストールされているrubyのバージョンは1.8系だ。 CentOS5.5の上でruby-1.9を入れる場合、まず1.8系を削除してソースを拾ってきてmakeするのが簡単だが、検証環境のサーバの１つに1.8系でredmineが動いており、安易に1.8系を削除するわけにはいかなかった。 redmineに触らずにfluentを動かすにはrvmを入れるのが手っ取り早そうと考える一方で、「おいおい俺はruby-1.9が使いたいんじゃないfluentが使いたいんだよ全部のサーバにrvm入れるとか面倒だよ勘弁してくれよ権限はどうするんだrootでrvm入れるのか？rvm自体の学習も必要？だいたいgemのパッケージバージョンコントロールとかどうするの？あーやる気なくなってきたわこれだからCentOSはRubyプロダクトはうんたらかんたら」と思っていたら、 ちなみに./configure &#038;&#038; make installは専用の ruby と fluent-gem （専用のrubyのgemへのリンク）をインストールしてくれます。 http://twitter.com/frsyuki/status/119407973180260352 というツイートを発見してソースからconfigure &#038; make installしてみたら、わざわざrvm入れたりしなくてもすんなりとfluentが動きました。（サラっと動いてしまうけど、これかなりすごい事だと思う） 一度動いてしまったあとは、 $ sudo fluent-gem install fluent と入力するだけでfluentのアップデートができたり、プラグインをダウンロードできたりします。fluent-gemコマンドは、fluent専用のruby-1.9の上で動くfluent専用のgemをコントロールするコマンドなので、例えばこのコマンドでmessagepackをupdateしても、元々入ってるgemパッケージの方には影響を与える事はありません。 というわけで、fluentはソースからインストールする事で、良い意味で、Rubyプロダクトという事を意識しなくて良いようになっています。たくさんの環境で手間なく動くという事はとても重要な事です。 一度動く所まで持っていく事ができれば、あとはデフォルトで用意されているプラグインだけで簡単なログ収集ができるのも良いです。 PHPからも非常に簡単に扱う事ができるようになっていますので、時間のある時にそのあたりの話も書きたいと思います。]]></description>
			<content:encoded><![CDATA[<p>社内で使ってる自前で作ったBlackboxというイベントログ収集ツールがある。複数台のフロントサーバで起こるイベントを記録して、バックエンドサーバにあるmysqlに集約するんだけど、集約部分はcronでrsyncなのでリアルタイムではない。<br />
これを<a href="http://fluent.github.com/doc/">fluent</a>を使ってリアルタイムに集約。mongodbに保存する形に変更したんだけど、fluentがあまりに使いやすくて感動した。</p>
<p>で、本題。fluentのインストール方法はたくさんある。一番楽なのは、gemコマンドを使ったインストールで、</p>
<p>$ sudo gem install fluent</p>
<p>というコマンドを入力するだけで、あとは全部よろしくやってくれる。</p>
<p>ただこれがうまくいくのは、rubyのバージョンが1.9.2以上である場合の話。<br />
さくらのVPSやGMOアプリクラウドにデフォルトで入ってるCentOSのバージョンは5.5で、それらにインストールされているrubyのバージョンは1.8系だ。<br />
CentOS5.5の上でruby-1.9を入れる場合、まず1.8系を削除してソースを拾ってきてmakeするのが簡単だが、検証環境のサーバの１つに1.8系でredmineが動いており、安易に1.8系を削除するわけにはいかなかった。<br />
redmineに触らずにfluentを動かすにはrvmを入れるのが手っ取り早そうと考える一方で、「おいおい俺はruby-1.9が使いたいんじゃないfluentが使いたいんだよ全部のサーバにrvm入れるとか面倒だよ勘弁してくれよ権限はどうするんだrootでrvm入れるのか？rvm自体の学習も必要？だいたいgemのパッケージバージョンコントロールとかどうするの？あーやる気なくなってきたわこれだからCentOSはRubyプロダクトはうんたらかんたら」と思っていたら、</p>
<blockquote><p>
ちなみに./configure &#038;&#038; make installは専用の ruby と fluent-gem （専用のrubyのgemへのリンク）をインストールしてくれます。<br />
<a href="http://twitter.com/frsyuki/status/119407973180260352">http://twitter.com/frsyuki/status/119407973180260352</a>
</p></blockquote>
<p>というツイートを発見してソースからconfigure &#038; make installしてみたら、わざわざrvm入れたりしなくてもすんなりとfluentが動きました。（サラっと動いてしまうけど、これかなりすごい事だと思う）</p>
<p>一度動いてしまったあとは、</p>
<p>$ sudo fluent-gem install fluent</p>
<p>と入力するだけでfluentのアップデートができたり、プラグインをダウンロードできたりします。fluent-gemコマンドは、fluent専用のruby-1.9の上で動くfluent専用のgemをコントロールするコマンドなので、例えばこのコマンドでmessagepackをupdateしても、元々入ってるgemパッケージの方には影響を与える事はありません。</p>
<p>というわけで、fluentはソースからインストールする事で、良い意味で、Rubyプロダクトという事を意識しなくて良いようになっています。たくさんの環境で手間なく動くという事はとても重要な事です。<br />
一度動く所まで持っていく事ができれば、あとはデフォルトで用意されているプラグインだけで簡単なログ収集ができるのも良いです。</p>
<p>PHPからも非常に簡単に扱う事ができるようになっていますので、時間のある時にそのあたりの話も書きたいと思います。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/ijtlTPt8GbIgFe8K7NKaCfQY_L4/0/da"><img src="http://feedads.g.doubleclick.net/~a/ijtlTPt8GbIgFe8K7NKaCfQY_L4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ijtlTPt8GbIgFe8K7NKaCfQY_L4/1/da"><img src="http://feedads.g.doubleclick.net/~a/ijtlTPt8GbIgFe8K7NKaCfQY_L4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/project-p/halt/blog/~4/rOZxOplXLz0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://project-p.jp/halt/?feed=rss2&amp;p=1697</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://project-p.jp/halt/?p=1697</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: project-p.jp @ 2012-02-02 09:57:48 -->

