「悪いものをけなすことに貴重な時間を費やさない」/ブレスター

ブレインストーミングをうまくやるためのカードゲーム、ブレスターというのを会社で試しています。
おおよそ宣伝文句どおりの製品で、これを使うと通常よりたくさんのアイデアを出すことができます。
ところがこのゲーム、アイデアを出すのはいいのですが、そこからいいアイデアを刈り取る方法についてはあまりサポートしてくれていなくて、毎回ここで苦労します。
たくさんアイデアが出るということは、正直くだらないものとか、致命的な欠陥があって却下するしかないものも当然ふくまれているので、これをどうにかしないといけないわけです。
最初のころは、ダメなものをはずすようにしていました。明らかにまずそうなものについて、理由を説明しながら消していって、ある程度数が残ったところで採用案を探す、という方法です。
ところがこれをやってしまうと、次回以降のブレストで、「あの時こんな理由で却下されたからな…」という理由で、アイデアを出すときに心理的ブレーキがかかってしまいます。
ブレスターを使うと、そんなアイデアもある程度引っ張り出してくれるのですが、そうはいってもやはり、アイデアが出にくくなってしまうようなことは避けたいものです。
というわけで、ダメなアイデアを却下するのではなくて、いいと思うものをいくつか抜き出して、そのなかからベスト案を決める、という方法に切り替えました。
この方法だと、却下されたアイデアについてダメな理由を説明されないので、次回からも気にせずアイデアを出すことができます。
何かを指導するときには、ダメな理由を教えてもらえないと話にならないですが、ブレインストーミングに関してはそんなことないですよね!
で。

>
悪いものをけなすことに貴重な時間を費やさない。
<<
(結城浩のはてな日記「批評の心がけ」)
というのも、おそらく同じことではないのかな、と。
>
自分が「それはおかしいだろう!」と思った場合、どうにかしてそのことを伝えたい、と思って、いかにその記事がおかしいか、一生懸命説明しようとしてしまいます。
けれどもそれって、たぶんもう一回くらい反論を受けて再度言い返さないといけないし、そのための理論構成とかを考えるのも、結構大変です。
それだったらいっそ「悪いものをけなすことに貴重な時間を費やさない」と一言つぶやいてスルーして、いいものを作ったり、紹介することにエネルギーを注いだ方がいいんじゃないのかな、と最近思っています。
<<

rails勉強日記2

>
なんとなくはわかるのだけど、この、前に:のついた書き方って何なのでしょう?
わかっていなくても話が前に進むのがちょっと気持ち悪い。
<>
Ruby入門初心者が最初に戸惑うのが、”:”コロンで始まる表記のsymbolかも知れません。

この”:”コロンで始まる表記は「シンボル」と呼ばれるオブジェクトです。正確に言うと「symbolクラスのインスタンスを表現するシンボルリテラル」で、文字列と同じように文字情報を表現しています。違いは、先ほどのStringは自分自身の値を変更可能でしたが、Symbolは値を変更できないという点です。
<<
 なるほど。確かにこれ、いい本ですね。挿絵が読みにくいのを何とかしていただきたかったのですけど。
Rubyリファレンスマニュアル – Symbol
Lost-Season: Rubyのシンボル

rails勉強日記

すっごいいまさらですが、railsの勉強をする必要ができたので、日記をつけることにします。
教科書はこちら。
[rakuten:book:11875045:detail]
実況中継形式だったので、実際にやってみるのが早いか、と思いました。
p1インストール
FreeBSDの環境はあるのですが、まあ手元にあった方が何かと便利だと思いますので、Windowsに入れます。
[[RubyInstaller:http://rubyinstaller.rubyforge.org/wiki/wiki.pl]]からruby186-25.exeをインストール。
RubyGemsを入れようと思ったのだけれど、RubyInstallerでインストールされたみたいだったので、そのまま行きます。

>
C:\WINDOWS\system32>sqlite3.exe
SQLite version 3.4.0
Enter “.help” for instructions
sqlite> exit
…> ;
SQL error: near “exit”: syntax error
sqlite> .exit
C:\WINDOWS\system32>sqlite3.exe -v
sqlite3.exe: unknown option: -v
Use -help for a list of options.
C:\WINDOWS\system32>sqlite3.exe –version
3.4.0
C:\WINDOWS\system32>gem install sqlite3-ruby
Select which gem to install for your platform (i386-mswin32)
1. sqlite3-ruby 1.2.1 (mswin32)
2. sqlite3-ruby 1.2.1 (ruby)
3. sqlite3-ruby 1.2.0 (mswin32)
4. sqlite3-ruby 1.2.0 (ruby)
5. Skip this gem
6. Cancel installation
1
Successfully installed sqlite3-ruby-1.2.1-mswin32
Installing ri documentation for sqlite3-ruby-1.2.1-mswin32…
Installing RDoc documentation for sqlite3-ruby-1.2.1-mswin32…
E:\tmp>gem install rails –include-dependencies –version 1.1.2
Need to update 21 gems from http://gems.rubyforge.org
…………………
complete
Successfully installed rails-1.1.2
Successfully installed activesupport-1.3.1
Successfully installed activerecord-1.14.2
Successfully installed actionpack-1.12.1
Successfully installed actionmailer-1.2.1
Successfully installed actionwebservice-1.1.2
Installing ri documentation for activesupport-1.3.1…
While generating documentation for activesupport-1.3.1
… MESSAGE: Unhandled special: Special: type=17, text=”
… RDOC args: –ri –op D:/ruby/lib/ruby/gems/1.8/doc/activesupport-1.3.1/ri –quiet lib
(continuing with the rest of the installation)
Installing ri documentation for activerecord-1.14.2…
Installing ri documentation for actionpack-1.12.1…
While generating documentation for actionpack-1.12.1
… MESSAGE: Unhandled special: Special: type=17, text=”
… RDOC args: –ri –op D:/ruby/lib/ruby/gems/1.8/doc/actionpack-1.12.1/ri –quiet lib
(continuing with the rest of the installation)
Installing ri documentation for actionmailer-1.2.1…
Installing ri documentation for actionwebservice-1.1.2…
Installing RDoc documentation for activesupport-1.3.1…
Installing RDoc documentation for activerecord-1.14.2…
Installing RDoc documentation for actionpack-1.12.1…
Installing RDoc documentation for actionmailer-1.2.1…
Installing RDoc documentation for actionwebservice-1.1.2…
<>
C:\WINDOWS\system32>cd E:\tmp
C:\WINDOWS\system32>e:
E:\tmp>mkdir schduler
E:\tmp>cd schduler
E:\tmp\schduler>cd ../
E:\tmp>rmdir schduler
E:\tmp>rails scheduler –database=sqlite3
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
create db
create doc
create lib
create lib/tasks
create log
create public/images
create public/javascripts
create public/stylesheets
create script/performance
create script/process
create test/fixtures
create test/functional
create test/integration
create test/mocks/development
create test/mocks/test
create test/unit
create vendor
create vendor/plugins
create tmp/sessions
create tmp/sockets
create tmp/cache
create tmp/pids
create Rakefile
create README
create app/controllers/application.rb
create app/helpers/application_helper.rb
create test/test_helper.rb
create config/database.yml
create config/routes.rb
create public/.htaccess
create config/boot.rb
create config/environment.rb
create config/environments/production.rb
create config/environments/development.rb
create config/environments/test.rb
create script/about
create script/breakpointer
create script/console
create script/destroy
create script/generate
create script/performance/benchmarker
create script/performance/profiler
create script/process/reaper
create script/process/spawner
create script/process/inspector
create script/runner
create script/server
create script/plugin
create public/dispatch.rb
create public/dispatch.cgi
create public/dispatch.fcgi
create public/404.html
create public/500.html
create public/index.html
create public/favicon.ico
create public/robots.txt
create public/images/rails.png
create public/javascripts/prototype.js
create public/javascripts/effects.js
create public/javascripts/dragdrop.js
create public/javascripts/controls.js
create public/javascripts/application.js
create doc/README_FOR_APP
create log/server.log
create log/production.log
create log/development.log
create log/test.log
E:\tmp>cd scheduler
<>
E:\tmp\scheduler>dir
ドライブ E のボリューム ラベルは ローカル ディスク です
ボリューム シリアル番号は D048-737D です
E:\tmp\scheduler のディレクトリ
2007/07/20 08:44 .
2007/07/20 08:44 ..
2007/07/20 08:44 app
2007/07/20 08:44 components
2007/07/20 08:44 config
2007/07/20 08:44 db
2007/07/20 08:44 doc
2007/07/20 08:44 lib
2007/07/20 08:44 log
2007/07/20 08:44 public
2007/07/20 08:44 307 Rakefile
2007/07/20 08:44 8,001 README
2007/07/20 08:44 script
2007/07/20 08:44 test
2007/07/20 08:44 tmp
2007/07/20 08:44 vendor
2 個のファイル 8,308 バイト
14 個のディレクトリ 24,802,045,952 バイトの空き領域
E:\tmp\scheduler>take -T
‘take’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
E:\tmp\scheduler>rake -T
(in E:/tmp/scheduler)
rake db:fixtures:load # Load fixtures into the current environment’s d
tabase. Load specific fixtures using FIXTURES=x,y
rake db:migrate # Migrate the database through scripts in db/mig
ate. Target specific version with VERSION=x
rake db:schema:dump # Create a db/schema.rb file that can be portabl
used against any DB supported by AR
rake db:schema:load # Load a schema.rb file into the database
rake db:sessions:clear # Clear the sessions table
rake db:sessions:create # Creates a sessions table for use with CGI::Ses
ion::ActiveRecordStore
rake db:structure:dump # Dump the database structure to a SQL file
rake db:test:clone # Recreate the test database from the current en
ironment’s database schema
rake db:test:clone_structure # Recreate the test databases from the developme
t structure
rake db:test:prepare # Prepare the test database and load the schema
rake db:test:purge # Empty the test database
rake doc:app # Build the app HTML Files
rake doc:clobber_app # Remove rdoc products
rake doc:clobber_plugins # Remove plugin documentation
rake doc:clobber_rails # Remove rdoc products
rake doc:plugins # Generate documation for all installed plugins
rake doc:rails # Build the rails HTML Files
rake doc:reapp # Force a rebuild of the RDOC files
rake doc:rerails # Force a rebuild of the RDOC files
rake log:clear # Truncates all *.log files in log/ to zero byte
rake rails:freeze:edge # Lock to latest Edge Rails or a specific revisi
n with REVISION=X (ex: REVISION=4021) or a tag with TAG=Y (ex: TAG=rel_1-1-0)
rake rails:freeze:gems # Lock this application to the current gems (by
npacking them into vendor/rails)
rake rails:unfreeze # Unlock this application from freeze of gems or
edge and return to a fluid use of system gems
rake rails:update # Update both configs, scripts and public/javasc
ipts from Rails
rake rails:update:configs # Update config/boot.rb from your current rails
nstall
rake rails:update:javascripts # Update your javascripts from your current rail
install
rake rails:update:scripts # Add new scripts to the application script/ dir
ctory
rake stats # Report code statistics (KLOCs, etc) from the a
plication
rake test # Test all units and functionals
rake test:functionals # Run the functional tests in test/functional
rake test:integration # Run the integration tests in test/integration
rake test:plugins # Run the plugin tests in vendor/plugins/**/test
(or specify with PLUGIN=name)
rake test:recent # Test recent changes
rake test:uncommitted # Test changes since last checkin (only Subversi
n)
rake test:units # Run the unit tests in test/unit
rake tmp:cache:clear # Clears all files and directories in tmp/cache
rake tmp:clear # Clear session, cache, and socket files from tm
/
rake tmp:create # Creates tmp directories for sessions, cache, a
d sockets
rake tmp:pids:clear # Clears all files in tmp/pids
rake tmp:sessions:clear # Clears all files in tmp/sessions
rake tmp:sockets:clear # Clears all files in tmp/sockets
E:\tmp\scheduler>ruby script\generate migration create_schedules
create db/migrate
create db/migrate/001_create_schedules.rb
<>
class CreateSchedules < ActiveRecord::Migration
def self.up
create_table(:schedules) do |table|
table.column(:datatime, :timestamp)
table.column(:title, :string)
table.column(:content, :text)
end
end
def self.down
drop_table(:schedules)
end
end
<>
E:\tmp\scheduler>rake db:migrate –trace
(in E:/tmp/scheduler)
E:0:Warning: require_gem is obsolete. Use gem instead.
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
== CreateSchedules: migrating =================================================
— create_table(:schedules)
-> 0.0600s
== CreateSchedules: migrated (0.0600s) ========================================
** Invoke db:schema:dump (first_time)
** Invoke environment
** Execute db:schema:dump
<<
でもDBはできてしまう。SQLite_Database_Browserで覗いたら、ちゃんとできていました。
一日目、終わり。

[本]「世界征服」は可能か?

[rakuten:book:12071774:detail]
 「オタクのカリスマ」「オタクの教祖」として有名な岡田斗司夫さんが、
「なんで世界征服なんかしたいんでしょうね?」
「そんな面倒なことせずに、高度な科学力で自分らだけ楽しい暮らしすればいいはずなのに…」
という、アニメ関係者が決して考えてはならない疑問を突き詰める本です。
とりあえず、仮面ライダーのショッカーや、北斗の拳の聖帝サウザーなど典型的な世界征服をたくらんだ人について、厳しいつっこみ。
「改造人間を作る技術があったら、その技術でお金を稼いで上院議員を買収した方が早いんじゃないの?」
「なんでお墓を作るのに子供に強制労働させるの?子供を人質に大人を使った方が早くない?」
そういうつっこみで一通り既存の世界征服を否定した後、現実的な世界征服について考察します。

目的設定
人材確保
資金の調達と設備投資
….

 それ、まるっきりビジネスやん!
まあ、本当にやろうとしたらそういうところから始めないといけないのだとは思いますが、夢のなさがおもしろすぎです。
[rakuten:book:11175202:detail]
空想科学読本に近いノリですね。
にもかかわらず、

>
ネット社会によってどんどん情報が共有化されると、階級社会そのものが成り立たなくなった。すごい秘密の、上流階級しか行かないはずの温泉があったとしても、それは一泊五十万円という値段がついて、ネットで予約が取れて、誰でもいける場所になってしまう。ただ単にお金の問題になる。そういう「経済主義とネット」が、私たちの社会から階級をなくしてしまったわけです。
<<
という鋭い指摘に持っていく手法は見事なものだと思います。
別に教訓を見出さなくても十分に面白いと思うので、よければ一度お試しくださいませ。

Re:プロジェクトの始まりはTracから

p1Re:プロジェクトの始まりはTracから
masuidrive on rails » Blog Archive » masuidrive的プロジェクトの方針
masuidrive on rails » Blog Archive » プロジェクトの始まりはTracから
 まともに管理ツールとしてTracを使ったことがなかったので、実際に使っている方のお話はとても参考になります。どうもありがとうございます。
>コマンドも含め全てのファイルはSubversionで管理
以前からやろうと思いつつ、実現できていないところです。
Apacheそのほかの設定ファイルも全部subversionにつっこんで管理すれば、「なんかわからないけど壊れた」という事態のとき、ロールバックできてとても幸せですよね。
疑問なのは、全部のファイルを1モジュールにぶっこむのでしょうか?1コマンド1モジュール?
前者だと取ってくる人がエライことになるので、後者かと思うのですが。そうするとものすごい数のモジュールを登録することになりますよね。構わないのかなぁ。
あと、適当に名前をつけているとあとで何物かわからないモジュールがたくさんでてきそう。
コマンド名=モジュール、忘れて困らないようなコマンドならそのまま忘れてしまえっ!ということなのかも。
このあたりも説明していただけるととてもうれしいです。

軍議

エンジニア交流勉強会「gungi」というのに行ってきました。
実況部屋が用意されていたので、がんばって実況中継してきました。無線LAN+チャット付きというのは、楽しかったです。
そして、飲み会でキャズムを超えろ!の人にiPhoneさわらせていただきました。いやぁ、眼福♪
遊んでいただいたみなさま、どうもありがとうございました。

[本]経済学的思考のセンス―お金がない人を助けるには

p1経済学的思考のセンス―お金がない人を助けるには
jkondoの日記 – 社員どうしでボーナスを計算するという話にたいして、「それだと、自分の評価が最低にならないようにするために、自分よりできなさそうな人を意図的に会社に引き入れるインセンティブが発生しちゃうんじゃないか」というようなブログがあったと思うのだけど、どこ行きましたっけ。
で。まさにそういう話題が経済学的思考のセンス―お金がない人を助けるには
で扱われていました。
(via Passion For The Future: 経済学的思考のセンス―お金がない人を助けるには)

>
選考に当たる教授は、採用した新任教員の能力が自分より高いことが後になって判明すると、自分の方が任期が切れた段階で更新されず、新任教員と置き換えられてしまうのではないかと懸念する。そのため、採用に当たってあえて正確な判断を下さず、自分より能力が劣っているとわかっている候補者を推薦する。採用後能力が低いことが判明したこの新任教員は任期切れで解雇される一方、採用を担当した現職教授は再任されることになる。このようなことが生じるとその組織の生産性は低下していくことになる。
<>
専門能力の評価を行える人が現職教授しかいない状況において、財務的理由で、終身雇用の教授ポストを削減する必要が生じた際には、ある組織の中で能力の劣った教授から解雇するよりも、その組織そのものを解散させることが望ましい。もし、能力の低い順に解雇するという制度を作っておいたとすれば、あらかじめ能力の低い人を採用しておき、自分が最後に解雇されるという余地を残しておくことが現職教授の合理的な戦略になる。これに対し、人員削減が必要になった場合には、組織を解散するという原則にしておけば、組織が解散されないように優秀な教員を採用するようなインセンティブが働くのである。
<>
プロジェクト単位でメンバがシャッフルされるような環境じゃないと、社員同士が評価し合う360度評価ってうまくいかない気がするんですよね。
<<
(U.gEn.FujitsU++ – はてなの360度の人事評価)
p2現代の中産階級
ふと思いついた話。
アルスラーン戦記に、「自作農を増やし、中産階級を増やす」ことで豊かな国を実現した、という話があったはず。
すぐ出てこないけど、歴史的にこれって実在した話のはずで。戦後の農地改革だっけ。
土地を独占してたくさんの農民を働かせていた地主 を現代に置き換えると、
→仕事?収入源?を独占してたくさんのサラリーマンを働かせていた経営者
なのでは。そうすると、サラリーマンを解放して自営業者とか、インディペンデントコンストラクターを増やす、ことが正解なのでは。

OBIIイノベーション合宿

 OBII 大手町ビジネスイノベーション合宿というのに行ってきました。

 開発合宿かと思っていたら、ビジネスを考える合宿ということで、事業面とかをつっこまれてかなり困る場面もあったのですが、いい経験になりました。

 自分が開発したのは「すごいメモ帳(仮)」。まだアイデアだけでぜんぜんできていませんが、優秀な皆様と一緒に「つくるぜ!」モードに入っているので、絶対作ります!

マンション理事会のイントラネット

 あんまりまじめな話は書かないようにしていたのですが。気になる話題だったので、たまには釣られて見ます。

404 Blog Not Found:マンション第二期通常総会終了

その過程で、Webによるディスクロージャーも当然論議に上がった。
当マンションは全住戸ブロードバンド接続されていて、しかも単一のプロバイダーであるためすでにイントラネットがそこにある。
これを活用しない手はないし、実際以前住んでいたマンションでは
私がその担当理事だったのだが、理事長となってはそこまで手を回す余裕はなかった。
しかし、今のところ適当な既存サービスがないのもまた事実だ。

うちのマンションでは、
マンションライフネットワークというのを試用中です。Wikiとかblogの代わりにはなりませんが、マンション全体で月額数千円はかなりリーズナブルだと思います。

システムの構築であれば、こういうサービスもありますし、委員会制という案もあります。イントラネットを構築しようといって賛同が得られるというこ
とは、マンション内にIT関係の知識のある方が一定数おられるということですから、理事会の下にIT委員会を作ってこういう人を集めれば、必ずしも弾さん
一人でがんばらなくても、ある程度手分けすることはできるようになるかと思います。

ただ、理事会のイントラネット化には、そういうシステムとは別の問題が大きいです。つまりリテラシーの面で。

自分の経験から言うと、理事が20人いたら、

  • 半数はいやいや理事になった人なので、まず理事会に出席してくれません(笑)
    • 最低限このうち数人を理事会に引っ張り出さないと、理事会が成立しないので、この人たちについては、資質を問うことは非常に難しい状態にあります。
    • というか、理事なんて立候補したら大歓迎される職種ですから、そもそも何らかの資質を問うことが無理ですよね(涙)
  • 残った10人のうち、飛んできたメールに対して返事を書ける人は、半数程度。
  • 5人くらいは、メールが来ても技術/心理的にかけない。このレベルの人は、トラブルが起きたとき自分で対処できないので、一ヶ月程度メールのやり取りが停止することが当たり前に起こる。
  • 一人か二人は、そもそもWEBにアクセスできない人がいる
  • IT関係のお仕事についていたり、個人的に趣味でWEBについての知識を持っている人は、せいぜい一人か二人でしょう。

イントラネット上に議論を移行するためには、理事全員が、イントラネットにアクセスできて、かつそこで議論をできることが前提になります。
さらに理事会での議論をそこに上げて、住民の方から来る声を適切なところに誘導して適切に回答つけるのは、そうとう厳しいなぁ、と。
しかもそれが一年二年じゃなくて安定して運用されるとなると、これはちょっと、まだ時代が早いんじゃないか、と感じました。