02052012 sake
ちょっと琥珀色

味がしっかりしてるが、ひねっぽさはなくて旨い。蔵は職場の近所なんだけど飲むのははじめて。
気に入ったので多分また買うと思う。
01052012 Haskell
01052012 drum'n'bass
これはかなりきた。
Dubstepもいいなぁと。
01052012 life
へんてこな時期に完成するなと思ったが、番組は30分をフルに使った壮大なCMなのでゴールデンウィークのテコ入れと考えれば納得がいく。
そして見事に策略にはまった孫とじいさんばあさん。
どこからお金を引っ張ってくるかは重要ですね。
30042012 家庭菜園
じゃがいもの芽かきをした。

スナップエンドウとれまくり。茹でたてが超うまい。

マメ科の花はみんな似てるね。

大根はあまりよろしくないので、秋蒔きに期待。。人参はちょこっと芽が出てた。ニンニクは順調なので今年は多めに取れそう。
30042012 jqm
ググるとcssを編集するパターンが多いような気がするが、Google Ajax APIを使っているのでどうしたもんかと。
$list.find('.ui-li, .ui-btn-text, a.ui-link-inherit').css('white-space', 'normal');
参考
親戚が手術したのでお見舞いに高田まで5時間の一人旅。
高田はなかなか趣のある街だったし、桜も綺麗なそうなので来年は家族で遊びに行きたいと思った。
到着時刻が遅かったので狙ってたとこは閉まっていて唯一開いていた雁木BAR ZAiGOで遅すぎる夕食。

次の日は病院にお見舞い。妙高は雪山だった。

帰りは八ヶ岳で蕎麦を食べたけど、まぁまぁだった。

ちょっと時系列解析を触ってみたかったのと神戸に移動するのに時間があったので、富士の人口推移をプロットしてみることにした。
どれどれと月別人口の推移にアクセスしたらあーエクセルかよ、、、。この表管理している人は、綺麗な表をつくるところが目的で、本来の目的である分析のためのデータだってことをすっかり忘れてるよなぁと思いつつ呪いの言葉を吐きながらコピペしてデータを作りなおした。(普段はpyEcelerator使ってるのでコピペなんてやんない。)
ところで、統計情報のページってデータのせるだけで、プロットしたり分析サマリーのせたりしないのね。不思議だ。
できたcsvはgoogle spreadsheetに保存しておいたので好きに使ってください。
2008年11月から旧富士川町の人口が増えているので合併時の人数を除いたデータでプロットしている。本来は2008年10月までの富士川町の人口推移を加えたほうがいいんだろうけど、データが見つからなかった。
fpop <- read.csv('fuji_pop.csv') fpop.ts <- ts(fpop$norm_pop, start=1967, frequency=12) plot(fpop.ts)

単に絶対数の比較をするだけでは、日本の人口変動の影響を排除できないのでノーマライズしてやる。日本の人口データはe-statの1番を使ったが、H12までのデータしかないので、総務省の2-1で補ったが、2010までしかなかった。それから日本の人口は月毎ではなくて年毎のデータを使っているのでギザギザになってる。
fpopr.ts <- ts(fpop$np_jp, start=1967, frequency=12) plot(fpopr.ts)

まぁ、頭打ちから現象に転じてるのはほぼ確実でしょうかなぁ。僕はピュアな富士市民ではないのでイベントとグラフの変動を結びつけて解釈できないのが残念。
あとは人口構成比と結びつけてどのくらいの速さで人口が減少していくかとか、(老人世代が増えることで)活力が失われていくかとかそっちのほうが気になる。市でもそういう分析やってるんだろうか?やっているんだったら分析技法の参考にしたいのでみてみたいなぁ。
それから図書館ももっとRの蔵書増やしたほうがいいと思うよ。
26042012 coffeescript Node.js
now.js楽ちんですね。
twitter-streamとnow.jsを使ってリアルタイムにtweetを拾ってブラウザに表示したくなったのでやってみた。コード書いてる時に丁度スケットダンスが放映されていたたみたいで、twitterのトレンドに表示されてたのでこれを拾ってみた。
ちなみにジャンプは毎週読んでるけどスケットダンスはほとんど見ないのでついていけてませんな。

とりあえずいつものようにコマンドを打って、スケルトンを作成
express twnow
cd twnow
package.jsonを修正して
{ "name": "application-name" , "version": "0.0.1" , "private": true , "dependencies": { "express": "2.5.8" , "jade": ">= 0.25.0" , "ntwitter": ">= 0.3.0" , "now": ">= 0.8.1" } }
依存モジュールをインストールする
npm install -d
あとはコードを描く
twitter = require("ntwitter") express = require("express") routes = require("./routes") nowjs = require("now") twit = new twitter( consumer_key: "####" consumer_secret: "####" access_token_key: "####" access_token_secret: "###" ) app = module.exports = express.createServer() app.configure -> app.set "views", __dirname + "/views" app.set "view engine", "jade" app.use express.bodyParser() app.use express.methodOverride() app.use express.cookieParser() app.use express.session(secret: "tweetandsweet") app.use app.router app.use express.static(__dirname + "/public") app.configure "development", -> app.use express.errorHandler( dumpExceptions: true showStack: true ) app.configure "production", -> app.use express.errorHandler() everyone = nowjs.initialize(app) app.get "/", (req, res) -> console.log req.session.user_profile res.render "index", title: "twitter streaming and now.js" twit.stream( 'statuses/filter' {track:['#sketdance']} (stream) -> stream.on 'data', (data) -> everyone.now.receiveMessage data console.log data ) app.listen 3000 console.log( "Express server listening on port %d in %s mode" app.address().port app.settings.env )
body { padding: 50px; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; } a { color: #00B7FF; } li.tweet { list-style-type:none; width: 500px; } img.tweet { float: left; padding-right: 20px; } hr { width: 500px; clear: left; border: 0; height: 1px; background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0)); background-image: -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0)); background-image: -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0)); background-image: -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0)); }
!!! html head title= title link(rel='stylesheet', href='/stylesheets/style.css') script(type="text/javascript", src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js") script(src="/nowjs/now.js") body!= body
h1= title p sample apps ul#messages script $(document).ready(function() { now.receiveMessage = function(data) { $("#messages").prepend( '<li class="tweet"><img class="tweet" src=\"' + data.user.profile_image_url +'\">'+ data.text + '<hr></li>'); } });
now.jsは抽象度が上がりすぎてて、裏で何が行われているかよく理解できないんだが、使うぶんには簡単ですね。IE7対策をしなくてもとりあえず動くので、それもお気に入りポイント(企業のブラウザはIEでしかも古いからねー)