2012年5月25日金曜日

奨学金について思ったこと

最近、元気ないです。

寒いですからね。

みけです。


奨学金について


まあ、みなさんご存知ですね。

私は、親が頑張ってくれたお陰で、

二年間ほど留年しましたが、卒業するまでの学費を頂いて卒業させて頂きました。

まあ、でも最近は不況のせい(というよりは今までが異常だったんだ)もありまして、

学費が払えないので奨学金を申請する学生さんが多いようです。

もちろん、卒業してから返済できなくなる方もいらっしゃるらしいですが…


studygiftについて


はい、これも皆さんご存知ですね。

まあ、学費を集めるための理由とかはともかく、

そして色々と炎上している件についてもともかく、

目標金額を達成されたようで、

とりあえずおめでとうございます。


studygiftが抱えている諸問題について


随分あちこちで意見が出ているようです。

(サイトは忘れた。要出典)

まあ、特に気になったのは出資要請者の境遇というか、不幸っぷりというか、

そいういう表面に言い出しづらいことについての商品化について。

ここのブログの記事が比較的いいこと言ってますね。

  • 学費の有無はプライバシーに関する問題である。
  • 学費の有無に関する情報を公開して、共感を得たものが出資する。
  • つまり、プライバシーが商品となっている。

でも、これって、例えば、3.11の大地震で家族の生業が破壊されてしまった人などが、

自らの境遇について簡単に口にすることができるものなのか疑問を持ちます。

もし、発言できるとするならば、大地震のような劇的な境遇にも揺さぶられない、

学術への強烈な意志が求められると思います。


意志としての学術


私自身はおそらく受験戦争で最も過酷な世代に属していた人間で、

私の親は俗物的な根性の持ち主で、

たまたま滑り止めで受けた大学が有名国立大学ということもあって、

特に学術への意志なく無理やりに有名国立大学に入学しました。


学術への意志なく、特にやりたいことも見つからず、

ぼーっとすること二回ほど留年し、

挙句、成績かなり悪くてかろうじてというか追い出される感じで卒業しています。


周囲の同期の学生が、しっかりとした履修計画を立てて、

ちゃんと研究計画を立てて、卒論を制作していたのに比べて、

私は行き会ったりばったりの、綱渡り状態で履修・卒論をこなした記憶があります。


大学で学位を獲得するということは、

私のような無計画でその場限りの行動を取ってギリギリの単位を獲得してと

あくせくすることではなく、

自らの求める探究心から発する強烈な学術への意志を元に計画を立てて遂行していくもので

あると考えます。


今回のstudygiftの例では出資要請者の学術への意志というものが全く感じられなかったような気がします。


どのあたり?


件のページは彼女の売りであるGoogle+で一時的に日本一になったことなどが、

記載されていましたが、

学術のことが何も書かれていませんでした。

彼女は一体何を研究したいのでしょうか?


彼女が所属しているのは社会科学部という場所で、

一般知識で言えばマックス・ヴェーバーなどのやったことが該当する

学術領域です。


こういう学部では、映画とか、芸術、写真など、

いわゆる古典的な文学部では扱わないような

文化から、政治、思想、建築、経済といった幅広い領域の

研究を行えます。


それこそ、彼女の得意としていた写真を研究対象として、

「写真の共有に関する現象学」とかというテーマで研究を行なっても、

全く問題無いと思うわけです。


ページの片隅に、「もっと勉強したい」という記述はありました。

しかし、一体何をどのように勉強したいのでしょう?


大学というのは研究機関なので、

中学生までの義務教育や、教育内容がある程度固定化されている高等学校の教育とは異なり、

何故それを研究するのか、どのように研究するのか、その研究が与える影響はいかなるものか、

こういった学術への欲望、手順、そしてその影響というものを徹底的に明らかにしていく場所なのです。


だから、「もっと勉強したい」という受動的な姿勢ではなく、

「何故、勉強しなければならないのか?」という積極的な姿勢を記述して欲しかったと思います。

(もちろん、そこには彼女の現状と計画も記述しておくべきですが…)

(そしてこんなこと偉そうに言える立場でもないですけど…)


入社予備校としての大学


まあ、多分彼女としては早稲田大学卒業の肩書きが欲しかったというのが、

本音でしょうが、

受動的な学生の増加については社会の側にもある程度責任というかなんというか、

問題があるのかなという気がしなくもありません。


新卒採用の募集要項に四年生大学卒業って、

多くの企業が書いたら、

そら、皆、四年生大学行くわ…


それに、大学側もサポートするわ…


二年生の終わり頃から就職活動に向けての

活動始めるよな。


で、新卒で採用されなければ、

まあ、社会人失格ということで

学業よりも就職活動優先させるよな…


というわけで、このあたりの社会のレールの綻びというか、

矛盾というか、なんというか、

そのあたりが今回のような奇妙な事案を産んでしまったのではないかと

思うわけであります。


うまくまとまっていませんが、なんか、そんなところです。









2012年5月10日木曜日

コンプリートガチャをシミュレートしてみよう!

最近、ブログ更新してませんでした。

特にネタがないんです。

ミケです。


さて、なんかコンプリートガチャに関して、絵合わせが云々というニュースが出回っていますね


そんな中、面白い動画があったので、思わず見入ってしまいました。

【モバマス】春香コンプガチャを揃うまで回す その1




【モバマス】春香コンプガチャを揃うまで回す その2




さて、結果を大体まとめると、こんな感じです。

  • コンプガチャ対象のカードは5枚
  • コンプガチャ対象のカードの内、2枚は出やすい
  • コンプガチャ対象のカードの内、2枚は出にくい
  • コンプガチャ対象のカードの内、1枚はかなり出にくい
  • オールコンプリートするまでに約250枚程度のカードを購入
  • 要らないカードは220枚程度出てくる


面白そうなので、上記のモデルをもう少し拡張してガチャのシミュレートしてみました。

制約条件は次の通り。

  • ユーザーは1万人
  • ユーザーによって3,000円~90,000円の予算上限がある
  • コンプリートするか予算上限を上回ったらガチャをやめる
  • 射幸心はないものとする

そうすると、だいたいこんな結果になりました。

参加者数10000
平均予算46264
ガチャの回数の平均115
投資した金額の平均34768
達成人数3930
達成する人の予算59869
達成までのガチャの回数の平均102
達成までに投資した金額30616

数回スクリプトを流しましたが、だいたい同じような結果になります。

面白いことですが、達成までに必要なガチャの回数が参加者全体のガチャの回数よりも少ないですね。

また、達成した人が40%もいるというのも意外です。


まあ、実際は射幸心とか射幸心とか確率が変わったりとかするので結果は異なると思いますが…

ちなみに、シミュレートしたスクリプトはコレです。



ガチャのご利用は計画的に…

2012年5月3日木曜日

#shikadriven 鹿駆動勉強会に行ってきた、しゃべってきた

4/29に鹿駆動勉強会に行って来ました。

鹿駆動ってなんぞ?という人はあまりいないでしょうが、

一応、説明しておくと、

奈良で勉強会が開催されないので、

勢いで開催しちゃいました!しかも、能楽堂で!

って感じの勉強会です。

詳しくはこちら


参加者のブログはいろいろとあるようです。

ITとともに生きよう - 「鹿駆動 勉強会 参加してきた #shikadriven」

人生、気合いと具合 - blog - 鹿駆動勉強会(4/29)

システムアーキテクトのごった煮 - 鹿駆動勉強会で人生初LTしました!

koeだめ - 鹿駆動勉強会で奈良時代の技術について話をしてきた #shikadriven

他多数…

togetterにもまとめができております。


実は、自分も発表してきました。

資料はこちらになります。



まあ、タイトルはJavaFXとJavascriptになっていますが、

中身はコンパイルのためのDIコンテナの話です。

GradleのコンパイルモデルはJavaをコンパイル→Groovyをコンパイルという順番なので、

JavaがGroovyの実装に依存している場合は、

コンパイルエラーが発生するというものです。

これを避けるために、インターフェースから実装クラスを指定できるようなものが欲しいと思って、

DIコンテナを作りました。

というところまで話したかったけど、

まあ、全くもって話できませんでしたね。


なお、作成したDIコンテナはこちらで公開しております。

https://github.com/mike-neck/gj-groovy-joint


しかし、皆さん、LTうまかったですな〜。

オレももっとLT訓練しないとと思った次第です。

2012年4月8日日曜日

#junitbc JUnit Boot Camp に参加してきた

最近、burnを飲み始めました。

みけです。

いきさつ


私のATND notifier には単語「JUnit」が登録されているので、

誰かがJUnitというキーワードのあるイベントが登録すると自動通知するようになっています。

というわけで、参加してきました。

JUnit強化キャンプ


内容


非常に内容が濃いので、何回かにわけて報告しようと思います。

個人的にはJUnitの応用編が大変勉強になりました。

そして、主催の @shuji_w6e さんが実は熟練したGroovyistであることもわかりました。


Groovy…エ


ざっくりしたGroovyの紹介でした。

POGOをJavaで使う際に便利なアノテーションで

コンストラクタやtoStringなども自動生成できることを教えてもらいました。

例えば、このようなアノテーションを付与したクラス



は、このようにコンパイルされます。




toStringやコンストラクターが自動で生成されるんですね。



AppengineTestCase


JUnitの応用編で教えてもらったRuleアノテーションの利用方法です。

Slim3にてテストクラスを作成する場合は、AppengineTestCaseクラスを継承して作成するのが一般的です。

そこで、下記のようなユーティリティクラスを作成します。




これは、単純にAppengineTestCaseクラスを真似したようなクラスです。

このユーティリティクラスにRuleアノテーションを付与して次のようにテストクラスを作成します。




すると、不思議なことにAppengineTestCaseを継承していなくてもテストクラスが作成できます。

これのお陰でBeforeアノテーションを付与したsetUpメソッドを別途作成することができ、super.setUp()を呼び出さなくても良くなります。

なお、ものにもよりますが、Ruleアノテーションを付与したExternalResourceのbeforeメソッドはBeforeアノテーションより前に実行されます。


明日、また内容についてブログを書きます。

それでは。



参考

junitにデフォルトであるExternalResourceクラス



statementメソッドでbefore()→evaluate()→after()の順番で実行されています。

このevaluate()にて@Before→@Test→@Afterが実行されていきます。



#なごやこわい #うさみみ NagoyaTestingに参加してきた。

将来、娘の名前には「姫」と名付けたいみけです。

結婚する予定も付き合っているお姉様もおりません。

参加するきっかけ


なんかツイートが回ってきたから。

ちなみに参加したイベントはこれ。

Nagoya.Testing in Tokyo


後付で、上流テストをよく知らないとか言ったけど、

本当は無職になることがわかっていて、

どうせ暇だから参加すると決定した次第です。


Nagoya.Testingとは


うさみみこと @kyon_mm自説を長々としゃべるオフ会上流テストについて詳しく説明し、実際に手を動かしてテストをいかに作るかを学ぶ勉強会です。

なお、当日の資料については公開されています。



実習


おおたけさんおおわしさん紅千鳥さんと同じチームでした。

実習内容はテストを設計し、実装し、実施報告をするというもの。

みんな優秀で(、とくにおおわしさん)、関心してしまいました。

そんなわけで、テスト実施までこじつけることが出来ましたが、境界値とかの設計が足りなかったのと、異常系のテストがなかったかな。

比較的コンパクトなテスト設計ができて、それはいいところだと言われました。

相手のいいところを探して、さらにこうすればいいと説明するうさみみ、素敵です。でも、こわくなくなるともっと(ry。


感想


勉強会に参加したことのブログを書くのは、感想を読者の皆さんと共有して何かを得てもらうというのと同時に、自分にとっても何らかの感想を自分の次のステップへ導くための礎とするものだと思いまうす。

  • 勉強会の形式について
    • 聴講型の勉強会は成功事例などを通して、勉強へのモティベーションを上げる
    • ハンズオン形式の勉強会は実際に作業を通して勉強することで、座学では得られないスキルアップを体験する
  • ハンズオン形式の勉強会について
    • 積極的な発表をすることによって、作業内容を振り返ることができるので、発表の機会があったら積極的に挑戦してみる
    • わからないことは積極的に質問する。これによって、テキスト等からは得られないより具体的なアドバイスを得られる
  • 商品の品質は計画的に作る
    • 顧客からの要求は曖昧なので、具体的な品質に再定義する
    • WF型でやると品質がおざなりになるので、早い段階からテスト計画を立てる
    • ある程度設計が完了してくると工数の見積が可能になってくる
  • JSTQB関連の勉強はしておいたほうが良い
    • 開発というのは方法論が盛んに議論されていて、成熟したものである一方、テストはまだまだプロセスとして未成熟な領域である。
    • ある程度体系化したJSTQBに依拠することで先ずは標準的なプロセスを覚える
    • プロジェクトに応じてJSTQBのフレームを活用することで、プロセスモデルのテストを実施して、よりテストプロセスを強化する。
    • 情報を発信する

私が気になったところはこのようなところでしょうか。

あと、やはり開発者なので、今回のテストの勉強はひさびさな感じで、テスト力の衰えを感じました。

こういう勉強会は定期的に開かれると良いですね。

2012年4月6日金曜日

#てらだよしおがんばった JavaOne Tokyo2012 に行ってきました

二日間熱いセッションが繰り広げられたJavaOne Tokyo 2012に行ってきました。

僕の参加したセッション


僕は事情もあったため、参加登録をした頃には

ほとんどのセッションが満員で、

空いているものを適度に参加しました。

  • 4月4日(水)
    • 基調講演 Java Strategy Keynote
    • JS1-01 : Introduction to JavaFX2.0
    • JS1-31 : Project Lambda : To Multicore and Beyond
  • 4月5日(木)
    • The Java EE6 Programming Model Explained

以下、大雑把な感想

基調講演 Java Strategy Keynote

大体2015年までのJavaの開発予定についての説明。

個人的にはJava EEの発展が気になりました。 ( Java EE 7 )

で、ところで、残念なことに、基調講演の後、

◯山先生が「Java EE 7には期待しております( ー`дー´)キリッ」と

仰られたあたりが… おや、こんな時間にお客様が…

このあたりまでがツイッターで反応が最高潮に達したと思います。


JS1-01 : Introduction to JavaFX2.0

これはたまたま空いていて、事前予約したセッションです。

スレッドまわりの話を期待していましたが、

まあ、タイトル通りJavaFXでこんなことできるよって内容でした。


JS1-31 : Project Lambda : To Multicore and Beyond

これは面白かった。なぜこのセッションが空いていたのか

わからないレベルで面白かった。

これはもともと分散処フレームワークのFork/Joinからの要請で

出来た内容で、

コレクションなどに適用されるワンメソッドインターフェースの

記述方法を簡略化しようとするものです。


例えば、ファイルにフィルターをかける

FileFilterインターフェースについての

記述はラムダでは次のようになると思われます。


someMethod ( new FileFilter {
    @Override
    public boolean accept(File file) {
        return file.isDirectory();
    }
});

Lambda投下後
someMethod ({f -> f.isDirectory()});


明らかに記述量が減ります。


私にはこれは結構なパラダイムシフトを含んでいると思われます。


今、現在Java1.4で開発しているプロジェクトなどにLambdaを導入しようとするには、

二つの壁があると思っています。

  • ジェネリクス
  • ラムダ

前者は型安全を保証する大事な仕組みでJava5から導入されたものですが、

前々職でも何度も質問を受けました。


そして、ラムダはこの型安全の上に位置する機能だと思っています。

引数として何が渡されているか、推論した上でコードを記述するので、

ジェネリクスがわかっていないと、正直きついと思います。

言い換えると、何のインターフェースを記述しているか

パッと見では理解出来ないので、

導入できない現場もあるのではないかと思います。


ただ、Javaとしては非常に面白い試みなので、期待しています。


The Java EE6 Programming Model Explained

Java EE6の概要の説明。

web.xmlをCDIで不要にするというアイデアはなかなか面白いと思いました。

プレゼンターが中国系の方で、若干英語が聞き取りづらかったです。

ただ、こういう英語も聞けるようにしておかないと、

後々淘汰されていくと思います。


JJUG主催パーティー


こちらにも参加して参りました。

Groovyコミュニティーからの参加が多かったため、

Groovy非常に人気がありました。

そして、私、ビンゴで当たった時に、

Groovy サイコー

と叫びました。


最後の寺田さんの男泣きよかったですね。

しかし、このイベント自体、

寺田さんが居なければ成立していなかったと思います。

その意味で、本当にお疲れ様でした。

寺田さん、ありがとうございました。


ご挨拶させていただいた方たち


こういうでかいイベントは普段ツイッターで

お世話になっている方と出会うチャンスです。


今回もいろいろな方とご挨拶させて頂きました。

@yamadamanさん、@shuji_w6eさん、@daisuke_mさん、

@razonさん、@j5ik2oさん、cero_tさん、その他様々な方、

ありがとうございました。


結構、人見知りの激しい性格なので、

お声をかけていただいて感激です。


参加者


結構、年齢が上がってきているのでしょうか、

20代の方が少なめでした。

このあたりは業界全体の問題なのかな…


結論


Javaもまだまだ捨てたものではないです。

ぜひ、みなさんもJavaをやってみましょう。

そして、積極的に情報収集をしましょう!

2012年4月4日水曜日

gradle + IntelliJ IDEAでプロジェクトをGit管理下に置く方法

JavaOne初日の申し込んでいたセッションがすべて終わって、

おとなしくしているみけです。


プロジェクトをGit管理下に置く


git cloneしてbuild.gradleを落としてきたのに、

gradle ideaした後に、

IDEAにGitの管理下に置くかと聞かれるのは嫌ですよね?


そんなときこそ、gradleがあるわけで、

build.gradleファイルに次のような記述を追加しておけば、

いちいちそんなこと聞かれなくなります。