Archive for 3 月, 2009

25
3 月

むしろ生きろ委員会。合議制が学生団体を活かす
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

続編。
あんまりこっちは書くことないからマキで行くよ!

まぁあえてこういうエントリも書くのは、バランスが大事だよ。っていいたいからだけなんですけど。

合議制の方が効率的に動きそうな問題っていうのは、基本的に間違いをつぶしていけばよくなる類の問題。

文章の誤字脱字の修正とか、契約の免責事項の穴チェックとか。特に前者はプロの校正が一般に流通する書籍には入っていますが、それでも初版だとまず間違いなく複数個の誤植を発見することができます。
こういった問題空間の分割が平易に行える問題は、合議制というか、多人数での分担作業が効果的です。

後、注目したいのは「毒抜き」ですね。ピンで自重せずに仕事をすると、個性がきつすぎる場合があり、それはそれでいいんですけど、ポリティカル・コレクトネスに欠ける場合などがあると、こいつは訴訟リスクなども含めてやばいことになります。

そういう意味で、ラストのチェックというのは合議制がいいかもしれません。後ブレストってのは「まぁそれはそれとして」と、言う立場でアイデアのまとめに入れるのであれば材料出しという意味ではいいかもしれませんね。アイデアを取りまとめていく段階を多数決にすると、よっぽど感性が似た面子でない限り満場一致はありえませんので。

ま、ワンマンはそれはそれで結構意義深いものです。「ワンマン経営」とか、あまりいイメージもたれてないですけど、自覚あるワンマンは十分益することができるというのが私の考えです。それを意義深くするためには合議制の導入も必要、というのがこのエントリのまとめですかね。

22
3 月

くたばれ委員会。合議制が学生団体を殺す
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

calcsです。最近このぶろぶもなんだか方向性を見失っているので、自重しません。

えー、タイトルの「くたばれ委員会」って、なんぞ?ということなんですが、これは委員会制のことを言っております。はい。合議制といってもいいですが。
この合議制の偏重が学生団体におけるデスバレーの要因じゃないかなー、とか私は思います。もっと言い換えると「三人寄っても文殊には勝てない」てことでもいいですけど。

正確には頭数があっても「船頭多くして・・」と、なりそうと言うかなるに決まっているところに合議制を導入するのが学生の犯しがちな愚です。ザ・衆愚制。

じゃ、具体的に人数揃えてマイナスになる問題って何ですか?と、なると個人のクリエイティビティーが重要な問題。デザイン・設計・コピーライティングとか多分最たるものです。この解決に人足投入したって時間と労力の無駄です。大体。公募制はよしあしですね。必ずしも応募の中から採用せずとも良いんだったらアリでしょうけどね。

(上述した問題について言えば)みんなで考えればいいものが出来る(可能性が高まる)とか、そういうのは私は信じません。

ちょっと考えてほしいんですけど、1000人の人間がいるとします。その人たちを対象に、例えば新しいお菓子のコピーを考えるとしましょう。

1人の心を動かすコピーならポロッと出来るかもしれません。
5人の心を動かすにはかなり勉強が必要です。
10人の心を動かせれば超一流のライターになれるでしょう。
30人の心を動かすには神に愛されなければなりません。

必要なのはたった一人のスーパースター。その一人のセンスって言うのは数字にすると常人の2倍ぐらいなのかもしれない。でも1倍の常人が30人いようとも話にならない。なぜなら「凝集度」という概念が決定的に欠けているから。
何故そういう事が起きるのかと言うと、一人に集まっているとその個性に特化できる。でも30人だと30方向の異なる特徴ベクトル(=個性)が相殺しあって、原点(=個性なし)から遠く離れることができないからではないかな、と思いますね。

なにか、思い当たることのある読者の方はいらっしゃったのでしょうか。いたら幸い。いなくても別に構わないや。

初!次回(の私のエントリ)予告。「むしろ生きろ委員会。合議制が学生団体を活かす」

19
3 月

Ruby on Railsはnamed_scopeでconditionsに命名できて便利すぎ。
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

calcsです。rails 2.0から導入されたらしいnamed_scopeは便利すぎる。

何かって言うとfind系のメソッドに渡す:conditionsパラメータを分割して、細切れになった条件節に命名できるというもの。
具体的な使い方は
[Rails]named_scopeすごすぎる
辺りを見てもらうとして。

何がうれしいって、RDBMSらしさがRoRでもっと発揮できるようになったってことです。RDBMSの根底にあるのは集合論。
AND条件は、各条件との積集合としてその結果を得ることができます。積とか和とかについては集合論か論理回路でも勉強してください。ま、とりあえずそういう集合論くささがO/Rマッパーでどーも脱臭されていたのですが、こいつは良い。

しかもチェインした条件もSQLの遅延評価によって無駄なく連結されて実行されるという。
というかこれがあったら
Ruby on Railsで高度なタグ管理を実現しよう(仮)
で書いたプラグイン化なんてほとんど要りませんな。ちょちょいと条件に命名してやれば話はほとんど終わっちまいます。

さぁnamed_scopeをつかって積集合を今すぐ作ろう!

補記:ただ一個不満なのはどーせだったら和差集合も上手い事扱えるようにしてほしかった。この辺を直感的に記述しようとすると演算子オーバーロードで条件節に対しての演算にメソッドオブジェクトを返すような設計にしないといかんのだろうか・・。いかん、C++で無駄設計していたブラックヒストリーがフラッシュバックする・・。良い方法知ってる人教えてください。

・・いやぁこのぶろぶもなんだか私信めいてきたなぁ。職権乱用かも。

19
3 月

google アボセンスされました。
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

アボセンス=あぼーん+アドセンス
まぁ簡単に言うとアカウント停止ってことで。

どーでもいいといえばいいですが(´ ω `)

18
3 月

スパムフィルタを入れてみる
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

こんな辺境のブログにもスパムの嵐は押し寄せてくるようで、ここ数日は特にひどかった。
一日半ほどコメントを捨て置いていたら1000件を越すスパムコメントが。

とりあえずがんばって削除してはみたものの、スパム投稿数ってのは大体にして単調増加関数である。私の経験上。でまぁスパムフィルタを入れてみることになったわけだが、WordPress用のアンチスパムプラグインっていっぱいあるんだなぁ・・。

とりあえず使ってみることにしたのは「SPAM-BYEBYE」というプラグイン。今のところターゲッティングされているスパムの動向を見るに、こいつで100%ブロックできそうだったから。

ベイジアンフィルタなどを使ったフィルターは、ゆるーく色んなスパムに対応してくれるけれど認識率が99%でたら良いほうだものなぁ。

16
3 月

グループウェアSphere-スフィア- 携帯電話に対応しました。
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

かねてより、要望の多かったグループウェア携帯電話対応。
ついに、完成しました。やったね。

スフィア担当kimです。
ちょっと考えてみるとプレスメントリリースを書くのは初めてですね。
ちなみに、このまえのJPmobileの投稿は伏線です。( ̄ー ̄)

携帯電話の利用の仕方は至極簡単。
http://sns.career-aid.com
に携帯でアクセスするだけです。
とっても簡単。
あとは、いつも通り、IDとパスワードを入力すれば見慣れた画面にたどり着けます。
携帯で使いにくそうな機能は省いてあります。
限定解除見たいな感じですね。
徐々に皆さんの、意見を吸収して、パワーアップさせていきたいと思います。

これからも、スフィアをよろしくお願いします。

ご要望や、不具合などがありましたら、ぜひコメントをくださいね。m(_ _)m

15
3 月

プログラマが祈らなければいけない理由
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

calcsです。
プログラマはビルドするたび、テストするたび、実行するたびに祈らなければなりません。祈ったことのないプログラマはおそらくいないでしょう。マジで。

これには理由があります。まぁ祈らないとやってられないというのもありますが、その理由は『グレムリン』という妖怪にあります。
こいつは発明のひらめきを与えたり、エンジニアの手助けをしてくれる妖怪だったのですが、近年は人間の畏敬の念が薄れ、人間を嫌いになって、いたずらをするようになったといわれています。

で、原因不明の機械の不具合などを「グレムリン効果」などといったりするようで、第一次世界大戦中は戦闘機のパイロットなどに計器の不調を引き起こすものとして恐れられたそうです。また、そのあたりからで、飛行機の納品時にはグレムリンへのお供え物をする習慣が一部ではあるのだとか。

そんなわけですのでプログラマも「お願いグレムリン様!」と祈りをささげることで、原因不明の不具合をなんとかやめてもらおうとしているわけです。ハイ。「小人とクツ屋」では小人さんは、靴屋を助けてくれるように、妖精の類は気に入った人間には手助けをしてくれるものなのだそうです。ただし嫌いな人間には嫌がらせをする。

日本では座敷童子も棲む家に富を与えてくれますが、座敷童子が去ってしまうと家は凋落すると言われています。あなたも周囲の妖精さんに感謝して、嫌われないように心がけてみては?

14
3 月

Ruby on Railsで高度なタグ管理を実現しよう(仮)
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

どもども。calcsです。
最近なんだかRoRネタが多いですな、このブログ。いや、ぶろぶか。

まぁそれはそうとタグ。Web2.0とかいうBuzzWordがはやってからこちら、コンテンツのカテゴライズはディレクティブではなくタギングが主流になってきた感がございます。

で、RoRでタグをつけようと思うと真っ先に出てくるのがacts_as_taggable_on_steroids。
まぁ正直タギングぐらい自前で実装しても大した手間ではないんですが、どうせ誰が作っても似たようなデータ構造を採用することになるし、だったらacts_as_taggable_on_steroidsでもいいじゃない。みたいな話になるわけです。

ただしこいつは、タグ付けだけを扱っているので、タグにそれ以上の情報を与えられない。つまり、ニコニコ動画とかpixivとかであるような、投稿者タグのような「一般ユーザには編集出来ないタグ」を作ることができないのである。基本的に。

まぁそれじゃあ困ることもあるので、acts_as_taggable_on_steroidsが自動的に作ってくれるtaggingsテーブルに、user_idとかを保存するためのカラムを作ってしまえば大体ミッション完了である。

ruby script/generate migration AddUserIdToTagging user_id:integer
rake db:migrate

こんな感じで。ただこいつをやると、AddとかRemoveとかが一部そのまま使えなくなる(使えるのは使えるが、当然UserIdを加味した挙動ではないということ)。

そんなわけでその辺はフツーに
Tagging.find(:all,:conditions=>['taggable_type=? and user_id=?','data',params[:id]])
とかしてやらねばいかんわけです。
この辺をmoduleにまとめてしまって、tag_listにmixinしてしまえば完璧です。つーかそれってプラグインですが。

ただこの辺、権限の扱いがサイトによってビミョーに異なるので、一般的なプラグインとしてまとめにくいところ。うむむ。だれか汎用的なプラグインにしてー

12
3 月

意味は無いけど。Git(ギット)を始めよう。
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

研究室の自分のソースコードをバージョン管理システムで管理しようと思ったので。
どうせなら、いままで違うものでも入れようと思ってGitを入れてみよう。
ということで、入れたときのメモ+忘れたときのための備えをしておこうと思う。
というわけで、作業開始。^^

環境はFedora8です。

以下、興味のある人はどうぞ。
結構長くなりそう。。。

続きを読む ‘意味は無いけど。Git(ギット)を始めよう。’

12
3 月

新しい言語はライブラリを覚えるのが大変
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

calcsです。
はぁ、まいったまいった。
Railsでソフト組んでたんですが、あほなミスをしてはまってしまった。
<% form_for(@data) |f| %>
<%= f.text_field ‘type’>
って書いてたら上手く動かず頭ひねってしまってました。
結論から言うとtypeというのがRubyの基底クラスであるObjectクラスに、すでにレシーバのクラスを返すメソッドとして定義されているので、コリジョンしてそっちがコントローラーのほうで呼ばれているのでした。
あー、Ruby使い始めたのがついこの間だからまだメソッドを把握し切れていないのがしんどい・・。