コンピュータやソフトウェアのあれこれ@道民(&元道民)
devdo
第26回北海道開発オフに参加しました
4月 3rd
3月31日(土)に行われた第26回北海道開発オフに参加しました。
なかなか自分のやりたいことにまとまった時間を取る事ができなかったので、まったりと有意義に過ごす事ができました。
シェルスクリプト事始め
Software Design 2011年3月号に載っている「シェルスクリプト事始め」の第一部を読みながら、シェルスクリプトを書いてみました。
ロジックが必要なシェルスクリプトを書いた事がなかったので、新鮮な気持ちで臨みました。
最終的に書いたのはこんな感じでファイルに実行権を与える事のできるスクリプト。
#!/bin/sh
for file
do
if [ -x $file ]
then echo "$file には実行権があります"
else echo "$file には実行権がありません"
echo -n "実行権を付与しますか?[y/n]"
read answer
case $answer in
y) chmod +x $file
echo "$file に実行権を与えました"
ls -l $file
;;
*) echo "$file は変更されませんでした"
;;
esac
fi
done
echo "$# 個のファイルを処理しました!!!"
気になった事
- 何故 if の終わりが fi なのか?
- 何故 case の終わりが esac なのか?
歴史的背景があるのかなあ。esacは覚えられない。
モチベーション3.0を読む
先日行われたAgileJapan札幌サテライト。その中の基調講演で紹介されていた本、気になったので購入しました。
講談社
売り上げランキング: 1117
手元に届いたのが開発オフの前日だったので、じっくり読みました。
まだ、第1部の途中までです。
今は「目の前に人参をぶら下げられただけでは、人間のやる気が上がらない(むしろ逆効果になることもある)」という話を事例とともに分析していっているあたりを読んでます。
開発オフの最後の発表では本に載っていた以下の2つの例を話ました。
人間は自分の利益になることであれば必ず実行する?
Aさんが1万円をBさんにあげるとします。
そのとき、AさんはBさんに条件をつけました。
- Bさんはそのお金をいくらかCさんに分けなければいけません。
- BさんがいくらCさんに分けるかはBさんの言い値で決まります。
- ここで、Bさんの言い値にCさんがOKすれば、AさんはBさんにお金を払い、BさんはCさんにお金を分けます。
- しかし、Bさんの言い値にCさんがNOと言えば、Aさんはお金をあげません。BさんCさん共にお金をもらえません。
このような条件下で実験を行ったとき、Bさんの言い値が1万円の5〜6割であれば、交渉が成立し、BさんCさん共にお金をもらえる確率は高かったのですが、Bさんの言い値が1〜2割だと、交渉が決裂し、両者ともにお金をもらえないケースが多かったそうです。
ここで、考えたいのはCさんの立場です。
Cさんは元々もらえる予定のなかったお金が手に入るわけですから、割合がいくらであっても「自分の得になる事」のはずです。
しかし、なぜ、1〜2割だと自分の利益をふいにしてしまうのでしょうか。
・・・というようなところから、「人間は利益になる事であれば必ずモチベーションが上がるのか?」という話につながっていきます。
楽しいことか仕事か?
幼稚園児を複数のグループに分け、次のような実験をしました。
1日目。あるグループには「絵を描いたらご褒美をあげるよ」と教えます。そして実際にご褒美をあげます。
別のグループにはなにも伝えず、ご褒美もあげません。
2日目。両方のグループにご褒美をあげません。
そうすると、1日目にご褒美をもらっていたグループの子供達は絵を描く事に対する意欲が少なくなったそうです。
ご褒美をもらっていないグループは2日目も楽しく絵を描いていました。
「報酬が発生する時点で、楽しいと思っていた事も仕事になる、その瞬間、内部からやりたい!と思う気持ちが薄れる?」というところから、モチベーション2.0と呼ばれる現代の「飴と鞭」のシステムのよくない点を分析していきます。
事例はだいぶはしょっているので、詳しく知りたい人はぜひ本を読んでみると良いと思います。
個人的にはこの本は小説と同じ、右開き・縦書きで、非常にしっくりと読みやすいです。
時間をみて読み進めたいと思います。
開発オフ恒例ランチ
今回もスープカレーで。カリー・ディ・サヴォイ Curry Di. SAVOY というお店に行きました。
トマトと湯葉と豆腐のスープカレーです。
湯葉としっかりした豆腐と豆腐ハンバーグみたいなものが入っており、けっこうお腹いっぱいになります。
辛かったのだけど、もう少し辛いのも食べてみたくなりました。
あと、キーマカレー気になった。
スペアリブもかなり気になった。
今回も楽しかったです。30回目指して!ゆるーく続けていきたいですね。
第24回北海道開発オフに参加しました
10月 17th
10月15日(土)、第24回北海道開発オフに参加してきました。
最近忙しかったのもあり、こまごまとしたやりたいことがたまっていたのでコツコツ、まったりと消化しました。
午前
午前中は、次回読書会の予習も兼ねて、アジャイルサムライを黙々と読んでました。
開発オフは静かで集中できる環境なので、実は読書にもってこいなのです。
(はじめて参加された方は、会話のなさに驚いたのではないだろうか・・・)
しかし、自宅でもそうなのだけど、この本は大事なことの合間にクスッと笑える表現が挟まっているので、ときどき笑い声を出しそうになってしまいました
ランチ
『Bem Bera network company』のスープカレー。
初めて食べた。あっさりしていて「スパイスたっぷりのカレースープ」という感じ。
しかし薄いとかいうわけでもなく、しっかりとスープカレーであり、大変美味。
フォーが入っているのが独特ですね。
午後
午後からは気合いを入れてプログラミングです。(満腹で若干眠気がアレでしたけど)
今回は、
- お道具箱スペースをつくる
- RSSを解析するプログラムを作る
- TwitterBotのメンテナンス
が目標です。
お道具箱スペースをつくる
bitbucketでgitを使えるようになったので、その環境を作ってみたいというのが動機。
あとは恥ずかしいけど書いた物を見えるところにおいておこうかな、と。
環境は、特に困ることもなくすんなりできました。
ssh環境も設定したのだけど、単純に自分用(ローカルで作った物をpushするだけ)ならssh環境がなくても大丈夫でした。
お道具箱はここ。過疎化しないようにしたいな・・・
RSSを解析するプログラムを作る
これは仕事でFaecbook APIを使用しているのですが、ときどきSDKの不具合が発生するので、プラットフォームの状態を表示しているページのRSSを取得して、わかりやすい場所に通知する仕組みが欲しいなあと思ったのが動機。
ただ、調べていくうちにメール通知してもらえる仕組みが既にあることがわかってしまった・・・。
そこで気持ちを切り替えて、rubyのrssを使って、RSSオブジェクトを扱う方法について勉強しました。
こんな短いコードでRSSがオブジェクトとして取得できるのに感動。
require 'rss'
require 'open-uri'
rss = open('http://www.facebook.com/feeds/api_messages.php'){|file|
RSS::Parser.parse(file.read)
}
xmlタグを外した中身をどうやって取得すれば良いのかに若干手間取りましたが、irb上でなんどかトライしたらさくっとできてしまいました。
rss.items.each{|item|
p 'title: ' + item.title.content
p 'link ' + item.link.href
p 'published ' + item.published.content.strftime("%Y-%m-%d %H:%M:%S")
}
こういうのをちょっとずつ覚えていって、必要となった時にささっと作れるようになりたいな。
TwitterBotのメンテナンス
PHPでつくったTwitterBot達。
短縮URLの扱いがまちまちだったので、整理することにしました。
といっても、URLは短縮しなくてもtwitter側でよしなに扱ってくれるようなので、いったん短縮URLの実装をはずしました。
bit.lyのAPIを使って解析できるようにしようかな、というのが次の課題です。
(中途半端にbit.ly使っていたのもいったん外しています。)
最終的にアウトプットしたソースコードは10行だったのですが、自習癖がなくなっていた自分にはとてもよい刺激となりました。
ありがとうございました。


