2011年3月7日月曜日

数の暴力

Googleがインフルエンザの流行を予測する
http://www.google.org/flutrends/intl/ja/about/how.html
大量のデータがあるというのはそれだけですごいことができるということ.
なんというか,Googleの中の人がうらやましい.
そして,なんとかこういうデータを手に入れることが出来ないものかと悶々としてしまいます.

そのほかの記事.
http://www.kk.org/thetechnium/archives/2008/06/the_google_way.php
http://www.wired.com/science/discoveries/magazine/16-07/pb_theory/

2011年3月5日土曜日

Yahoo!知恵袋カンニング事件で仙台の浪人生が逮捕された2つの理由

今回のYahoo!知恵袋を利用したカンニング事件については,いろんな人が色々な意見を述べている.
しかしながら,意外なほど
「逮捕はやりすぎだ」
という意見が意外と多いことに違和感を感じる.
個人的には今回の大学側の対応はこれ以外には無いものだったと思う.
なお,法律などについては詳しくないため,そういった観点からの意見はhttp://togetter.com/li/107865を参照していただきたい.
また,現在の入試の構造自体に問題があるかどうかや,,
カンニングを発見できなかったことが問題なのかどうかについては論じない.

カンニングが発覚した場合,大学がとる行動としては,
1,警察に逮捕を依頼
2,不合格にするなど内部的な処分
3,罰しない
の3種類が考えられる.
今回は1の行動を取って批判されているのであるから,2,3を取るべきだと思った方が多いのだろう.
しかしながら,今回は1以外の行動を取ることは考えられなかった.

まず,2についてであるが,
従来のカンニングであればこのように処理していたはずである.
そのため,
「今までカンニングした人は逮捕されていないのに,今回だけ逮捕するのはおかしい」
と批判されることになる.
しかしながら,今回の場合「2,不合格など内部的処分」を取ることはできない.
なぜならば,「誰がやったのか」を大学側が知る方法が無いからである.
カンニングは現行犯でのみ処分が可能となる.
そのため,すでに試験が終わってしまった段階ではYahoo!知恵袋に投稿した人が誰なのかは分からない.
それを知るためには,Yahoo!や携帯電話会社の協力を仰ぐしかないが,
一法人でしかない大学に情報提供をしてもらう権限は無い.
したがって,警察の力を借りなければ誰がカンニングしたのかが分からないのである.
以上のような理由で,カンニングした受験生に罰を与えるには「1,警察に逮捕を依頼」しかありえないのである.

次に,「3,罰しない」について考えてみる.
実際,大学試験の現場でどの程度のカンニングがされているのか分からないが,
カンニングをして見逃されている人は0ではない可能性はある.
しかしながら,大学側としては
「カンニングによって入学する不正な受験生」
がいるせいで,
「本来入学すべきだった正しき受験生」
が入学できなくなるのは,不公平である.
そのため,カンニングした受験生は不合格とするべきである.
したがって,カンニングした受験生が明らかに存在するのに,それを無視することはできない.

ポイントは「明らかに存在」し,かつ「特定も可能」であるという状況である.
通常のカンニングであれば,「俺がやった」と大声で言うことも無く,またその言葉が真実かどうか確かめるすべは無い.
一方,今回の場合は証拠があり,かつカンニングした人を見つけることが容易にできる状況であった.
このような状況にもかかわらず「不正に入学する受験生」を見逃して「本来入学すべきだった受験生」を
落とさなければならない理由があるだろうか?
今回の逮捕によって仙台の浪人生の人生が狂うのであれば,
不正を見逃すことで,本来入学すべきだった受験生の人生は大きく狂ってしまうだろう.
さらに,今回の事態を放置してしまえば
「カンニングはやったほうが得」
ということになってしまい,不正行為を助長する可能性すらある.
不正行為が増加すれば,その分まじめに受験している受験生の人生が狂う可能性が高くなる,
そのため,放置という方法は取ることはできない.

まとめると,ポイントは2つ.
・カンニングした受験生を罰するには逮捕以外の方法が(現状では)ない.
・放置することによって,人生を狂わせるほど損をする「不正をしていない受験生」が存在する.
このような理由により,大学側は今回の事件で仙台の浪人生を逮捕せざるを得なかったのではないだろうか.
逮捕がやりすぎなのか,罪状が正しいのかどうかは分からないが,
大学側がとるべき行動としては,他には無かったような気がする.

と,たまには真面目な長文を書いてみたりして.
まあ,一大学教員の戯言です.
来年から受験監督時にカンニング対策を強めなければいけないと思うと気が重い.
たった一人の不心得モノのために,多くの人が迷惑をこうむるなあ.

2011年3月4日金曜日

SQL4G

AppEngineにSQL3gを入れて,SQL文を使えるようにしてみる.
詳しいインストール方法はhttp://www.littlesoft.jp/sql4g/#installここをチェック.

そのまま使うとweb.xmlでWarningが出たりするけど無視して進める.
と,http://localhost:8888/sql4gadminにつなげば,SQL4GAdminが立ち上がって,色々操作ができるようになります.
とりあえず,TESTというデータベースを作成して,
create table test_tbl (id int auto_increment, text text);
を実行すると,テーブルができあがった.
insert into test_tbl (text) values ('hoge');
で,データを入れておく.

その後,適当なActionを作って,
package com.appspot.tori.sql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class SqlTestAction extends Action {

 /* (非 Javadoc)
  * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
  */
 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  // JDBCドライバーをロード
  Class.forName("jp.littlesoft.sql4g.Driver");
  // コネクションオブジェクトを取得
  Connection con = DriverManager.getConnection("TEST", "user", "password");

  try{
   Statement st = con.createStatement();
   ResultSet rs = st.executeQuery("select * from test_tbl");
   while(rs.next()){
    System.out.println(rs.getInt("id"));
    System.out.println(rs.getString("text"));
   }
  }finally{
   con.close();
  }
  return super.execute(mapping, form, request, response);
 }

}
ってな感じで実行してみたら,
1
hoge
って出力された.
おお,すごいぞ.