TOEFL は英語試験のデファクト・スタンダードなのか

あまり英語について語りたくなかったけど、最近の TOEFL 関連のニュースについてはさすがに言及したい気持ちになった。アイディアが現実的でないと思う。 次の二つの記事を読んだ。 TOEFL を国家公務員採用試験に採り入れる件 TOEFL を新たに大学入試/卒業の要件に加えようとする件 国家公務員採試験に採り入れる件の方は確定、大学入試/卒業の要件に加える件については未定のようだ。 TOEFL を国家公務員試験に採り入れるのは筋が悪い TOEFL という名前は Test of English as a Foreign Language から来ている。ただし、これは英語力一般を問う試験ではない。主に英語圏の高等教育機関へ入学する際に、「自分は英語環境で教育を問題なく受けることができる」ということを示すための試験である。 試験内容も、教育機関での実践を想定したようなものが多い。例えば: 大学の講義を聞き、60秒で概要を話す 大学の講義資料を数分読み、講師による解説を聞く。その後で講義資料と講師の主張を300語程度で書く などである。 このような能力が公務員に必要なのか、大いに疑問である。 大学入試/卒業の要件としての TOEFL はスコアを慎重に検討するべき それでは、大学入試/卒業の要件にするという案はどうだろう。そのこと自体は問題ないと思う。ただし、要求しているスコアがおかしい。前記の朝日新聞のニュースでは TOEFL と TOEIC の換算表が掲載されている。これが誤解の元なのだろう。 この換算表の作成元の海外進学センターが何を根拠にこの換算表を作成したのか分からないが、たかだか TOEIC 880点程度で TOEFL iBT で 100点を取るのはかなり難しいだろう。僕自身、 TOEIC 910点を取った後に受けた TOEFL iBT では 87点しか取れなかった。僕の友だちも似たようなスコアである。 そもそも TOEFL と TOEIC では必要とされる語彙がかなり異なるし、安易に TOEIC のスコアを基準にして TOEFL の目標値を設定してはならないだろう。 大学については、「約30校の卒業要件をTOEFL90点相当にし、集中的支援でグローバル人材を年10万人養成する」ともしている。 率直に言って、これでは9割方の学生は卒業できないのではないかと思う。 TOEFL 以外の英語試験について 前述のように TOEFL はアカデミックな英語に関する試験である。TOEIC はより一般的な英語力を問う試験ではあるけれど、受験者の大多数が日本人や韓国人であり、グローバルに受け入れられている試験であるとは言いづらい。 [Read More]

意見を述べるためのコストを上げる話

  • ブログ記事にコメント欄が付いていると、記事に対する批評を書きやすくて便利
  • Twitter の返信ボタンのおかげで、他人の Tweet に反論をしやすくて便利

…そう考えていた時代が僕にもありました。

気軽に意見を言える仕組みを用意すると、気軽につまらない発言をされるようになって不便だと思うようになった。例えばブログ記事にコメント欄を付ける代わりに、メールアドレスを公開するのはどうだろうか。メーラーを立ち上げて反論を書いて投稿する、という一連の作業はいかにも面倒だと思う。でも、そういう面倒なことをしてでも著者に伝えたいことがあるのであれば、それは傾聴に値すると思う。

(追記) つまらない発言をされる、って表現はよくないかもしれないな。誰かの癇に障るような語彙や表現を使ってしまったときに、前後の文脈を読まないで脊髄反射的に反応されることを「つまらない発言」と書いた。 (/追記)

確かに、つまらない発言をし合うのが楽しい間柄、みたいな関係もあると思う。でも、そういうのって内輪でできればいいだけの物だから、なにがしかの閉じた SNS であったり、Skype や LINE みたいなメッセンジャサービスだったり、そういうのでできればいいのではないか。

なんてことを考えた。

Sublime Text 2 ないし MacOS におけるページ単位のカーソル移動

カーソル移動はエディタの基本機能の一つである。

Sublime Text 2 (以下、ST2) はEmacsキーバインドをサポートしているから文字単位、単語単位、行単位の移動はEmacsのようにできるけど、なぜかページ単位の 上方向への 移動ができなかった。

検索してもST2でこの機能を実現する方法は見つけられなかった。実に基本的な操作だと思うんだけど…。

MacOS側でのキーバインドの設定

ST2のキーバインドが駄目ならMacOSの側でキーバインドを設定すればいいじゃない、という発想に至った。

~/Library/KeyBindings/DefaultKeyBinding.dict を編集すればMacOS全体で有効なキーバインドの設定ができる。このファイルが存在しない場合は手作業で追加してよい。僕は次のようにしてみた。

この設定を効かせるためには一度マシンを再起動する必要がある。再起動後、 ctrl+v でのページダウン及び option+v でのページアップが 全ての 環境で実行できるようになった。

めでたしめでたし。

Pootle 2.5.0 のインストール

需要は大きくないだろうけど、とりあえず書く。

まず現時点で GitHub の INSTALL ファイルに記載されている情報 は間違いである。Pootle の最新版を解凍しても PootleServer ファイルは存在しない。2.1.6 や 2.2.0 のスナップショット版にはこのファイルが存在している。プログラムのアップデートにドキュメントのアップデートがついてきていないようである。

代わりに解凍されたファイルには setup.py がついてきている。これを実行する。

$ python setup.py install

これで終わりではなく、pootle ディレクトリに移動して次の操作を行う。

$ mkdir -p pootle/assets
$ python manage.py collectstatic --noinput
$ python manage.py assets build

これらは fabfiles.py に記述されている。けど fabfiles.py がいつ走るべきかよく分からない…ので手作業で実行する。

最後に manage.py を走らせる。

$ python manage.py runserver

これで localhost の 8000 番ポートで Pootle が起動する。

Play framework で Set-Cookie するときに domain 属性を指定する方法

Play framework 1.2.x の場合 HTTPではレスポンスヘッダの Set-Cookie の domain属性 でクッキーが参照可能となるドメインを指定できる。例えばHTTPのレスポンスヘッダに Set-Cookie: SESSION=thisissessionid; path=/; domain=example.com のような行があれば SESSION=thisissessionid というデータは example.com の中でのみ有効となる。もしもクッキーの値を example.com のサブドメインでも使いたければ domain=example.com を domain=.example.com と変更すればよい。 Play framework 1.2.x では application.conf に application.defaultCookieDomain=.example.com という一行を加えることでクッキーの有効ドメインを変更することができる。 Play framework 2.0.x の場合 実は Play framework 2.0.x 系ではアプリケーションレベルでクッキーが参照可能なドメインを設定する手段が用意されていない。Play framework 2.0.4 の framework/src/play/src/main/scala/play/api/mvc/Http.scala で encodeAsCookie() は次のように定義されている。 /** * Encodes the data as a `Cookie`. */ def encodeAsCookie(data: T): Cookie = { val cookie = encode(serialize(data)) Cookie(COOKIE_NAME, cookie, maxAge, "/", None, secure, httpOnly) } ここで Cookie の第五引数が None で固定値になってしまっているのが問題である。これは Play framework 2. [Read More]

Google Chromeでサードパーティクッキーを無効にする手順

新規にブラウザをインストールするときにサードパーティクッキーを無効にするポリシを取っているけれど、いつもどこから設定するのか忘れてしまうのでメモを残す。今回は新規にブラウザをインストールしたわけではないけれど、Instapaperのブックマークレットがサードパーティクッキーを使うので、www.instapaper.comだけサードパーティクッキーを許可する例外ドメインとして登録した。

なお、当方の環境はMac版のGoogle Chrome(英語版)で、バージョンは"Version 23.0.1271.101"であった。

  • “chrome://chrome/settings/” をブラウザのアドレスバーへ入力する
  • “Show advanced settings…” をクリックする
  • Privacy メニュー内の “Content settings…” ボタンをクリックする
  • “Block third-party cookies and site data” のチェックを入れる

今回の僕の場合は更に:

  • “Manage exceptions…” をクリックする
  • “Hostname pattern” に www.instapaper.com を入力して “OK” ボタンを押す

mosh のインストール

最近話題のmosh(MObile SHell)を触ろうとしてみたけれど、インストールの段階で少々はまってしまったので、解決までの道のりについて備忘録を残しておく。 環境 moshはサーバとクライアントの両方にインストールする必要がある。僕の場合はサーバがUbuntu(12.04)でクライアントがMacOS X Mountain Lionである。 サーバ $ cat /etc/lsb-release | grep RELEASE DISTRIB_RELEASE=12.04 クライアント $ sw_vers | grep ProductVersion ProductVersion: 10.8.2 はまりどころ 次のようにしてMacOSにmoshをインストールした。 $ brew install mosh 無事にインストールできたようなので、example.comに接続しようとしてみた。 $ mosh example.com Condition components: &error &who who: “open-file-input-port” &message message: “No such file or directory” &irritants irritants: ((“example.com”)) Exception: error in raise: returned from non-continuable exception Stack trace: 1. throw: 2. (raise c): baselib.scm:943 3. open-file-input-port: 4. [Read More]

サイドプロジェクトのためのルーチン

新年の決意として"100$/monthの副収入を達成する"を挙げてみたけれど、アクションを起こさなければ目標達成はできないので、どうアプローチするのか考えてみようと思う。

まずは制約について。僕は会社員なので日中は仕事がある。また継続的に仕事と関係ないことを勉強したいとも考えている(今はCourseraで勉強しているし、Courseraで5つのクラスでCertificateを取ることも新年の決意の一つに含まれている)。なので、サイドプロジェクトに費やす時間は一日当り二時間までにしようと思う。『小さなチーム、大きな仕事』の中にも「制約を受け入れる」という章がある。

「私には十分な時間も、お金も、人脈も、経験もない」と嘆くのはやめよう。少なければ少ないほどよい。制約は見方を変えれば武器である。資源が制限されると、それでなんとかしなければならなくなる。そこには無駄の余地はなく、創造性が求められるのだ。

囚人が石鹸やスプーンで作った武器を見たことがあるだろうか? 彼らは手に入るものだけで目的を果たす。誰かを刺すべきだなんて言っているのではないが、創造性を持つことで驚くべき結果を得られるだろう。

僕もこの考え方に倣おうと思う。

それと『小さなチーム、大きな仕事』と言えば「副産物を売る」に書かれていることも参考にしたい。

何かを作る時、実は何か別のものも生まれている。決して生まれてくるものは一つではないのだ。どんなものにでも副産物がある。すぐれた洞察力を備え、創造的なビジネス・マインドを持った人は、こうした副産物に注目し、チャンスを見出すのだ。

材木業界は、かつて捨てるだけだったおがくずや、チップ、細かな木々を売り、かなりの収益をあげている。こうした副産物は、暖炉の丸木や、コンクリート、接ぎ木、パーティクルボードや燃料など、様々なところに見られる。

僕はプログラマなので、仕事の副産物としておがくずが出ることはないけれど、大きなプログラムの副産物として小さなプログラムが出てくることはままある。また仕事の一貫として文書を作成することもあるけれど、仕事に特化していない箇所の記述を副産物として公開することができるかもしれない。副産物として世に出し得るものについて意識的になりたい。

ルーチンについて話を戻そう。まず、毎日二時間の制限の中でサイドプロジェクトを進める。僕はprivate twitterと呼んでいる自作スクリプトで自分のアイディアをメモしているので、そこに目を通す。昼間の仕事の副産物として使えそうなものもアイディアとして追加する。そのようにして作られたアイディアのリストから有望なものについてPDCAを回す。とりあえずは、こういう風にしてやってみよう。

Functional Programming Principles in Scala

ビデオ講義を全て観終わったので、これから今週分の課題に取りかかることにする。

内容とは関係ないけれど、最初は Functional Programming Principles in Scala を周りのプログラマに布教して、みんなで一緒にやろうとしたけれど、あまりノリノリになってくれる人はいなかった。 @ujm が少し興味を持ってくれているくらいかな。彼は仕事でもScalaを書いているしプログラマとして優秀だから、色々とアドバイスをくれたりもする。助かる。

B'zのライブジム in Vancouver

行ってきた。すごくよかった。まさかカナダでB’zのライブを観れるとは。嬉しいのう嬉しいのう。

前職の同僚であるところの @mechiko ともたっぷり話した。彼女は想像以上のB’z充であった。