今年こそ英語を勉強したい人のためのアプリ・サービス4選

英語が苦手な僕ですが,今年は英語を頑張ると決めました!

そんな僕が現在使っているサービスをリーディング・リスニング・ライティング・スピーキングの各スキルごとに紹介します.

リーディング

Zite

Zite

  • Zite, Inc.
  • ニュース
  • 無料
英語版のGunosyと言うと,どんなものか分かるでしょうか.ZiteもGunosyのような自分の興味のありそうな記事を紹介してくれるアプリです. 基本的に英語の記事しか取り扱っていないのですが,英語学習用にはちょうどいいですよね.

Gunosytwitterfacebookの投稿などから興味がありそうな記事を幅広く紹介してくれますが, Ziteは自分の興味があるキーワードを指定できるため,より興味がある分野の記事を拾ってくれる印象があります. 例えば「Sports」という大まかなカテゴリだけでなく「Baseball」や「New York Yankees」のように狭い範囲のトピックを指定することが可能です. 自分が本当に興味のある記事ならば英語で書かれた文章でも楽しく読めるので,英語の勉強と海外の情報収集ができる一石二鳥なアプリだと思います.

個人的にオススメなキーワードは海外からみた日本の姿についてたくさんの記事が読める「Japan」なのでアプリをダウンロードした際には,ぜひ「Japan」をお気に入りに入れてみてください.

リスニング

Podcast

Podcast

  • Apple
  • エンターテインメント
  • 無料

良質なリスニング教材がたくさんあるPodcast,今すぐダウンロードしましょう.

英語学習向けのPodcastはたくさんあるのですが,初学者に特におすすめなのがEnglish as a Second Language (ESL) Podcast,名前の通り第二外国語として英語を学習する人向けのプログラムです.

ESL Podcast

ESLは,比較的簡単な内容をゆっくりと話してくれて,難しい単語があった場合にもそのスペルと意味を簡単な英語で言い換えてくれるので,リスニングが苦手でも比較的理解することができます. また,原稿がWebサイトに上がっているのでディクテーションなどにも役立てることができます.

毎週3本も更新があるので,このpodcastを聞き続けるができるとリスニングに対する苦手意識はかなり克服できそうです. Webからでも音声は聞けるので,これはイイ!と思ったらPodcastから購読してみましょう.

ライディング

lang-8

日本人が英語で書いた文章をネイティブが添削してくれ,逆に,日本語で投稿した文章を日本人が添削してあげるような,文章を相互に添削しあうSNSです.

lang-8で僕が投稿した自己紹介文の一部を紹介すると

I often listen to an audio podcast for English study.

という文章は

I often listen to audio podcasts to improve my English.

コメント

You (presumably) don't listen to the same one over and over, so you use the plural here.

と添削されました.(複数形については確かにそうですよね,でも書いている時には気づかなかった…)

自分ではこれでいいんじゃないかと思って投稿した文章も.単数・複数や時制などの基本的な間違いを指摘されたり,より英語らしい言い回しを教えてくれたりします.

英語の日記はノートや自分のブログに書き留めておくよりも,ネイティブに添削をしてもらえる(かもしれない)lang-8に投稿する方が,勉強になりそうです.

ピーキング

DMM英会話

こちらはSkypeを使った英会話.2014年6月30日まで半額キャンペーンをしているようなので,月2950円で英会話のレッスンが受けられます.

英会話を始めようと思っても,お金がない,教室に行く時間がない,英語力低すぎるからグループレッスンはちょっと…. なんて考えてしまうんですが,Skypeを使ったレッスンではここらへんの問題を解決してくれている気がします.

講師の先生とは日常では絶対に接することがなく,どんどん失敗できるのは最大のメリットだと感じています. とても恥ずかしい失敗してもその後同じ先生を指名しなければ完全に接点は絶たれるので.

また,日本語が分かる先生を選ぶと,日本語でコミュニケーションを取ってくれるので,少し気が楽になったりします. 先生の発音が鈍ってたりとかそういう問題はあると思うのですが,手軽さを考えると非常にコストパフォーマンスの良いサービスだと思います.

実は無料レッスンを行っただけで,本登録をしていないのですが,今年は会話も頑張ってみようと思います.

まとめ

個人的な英語学習四種の神器をまとめてみました.

今年は楽しみながら,使える英語力をつけて行けたらと思います. こんなアプリ・サービスもあるよっていうものがあったら,ぜひ教えて下さい!

TOEIC公式問題集vol4を解いた

今回はvol.4の練習テスト(1)

TOEICテスト新公式問題集〈Vol.4〉

TOEICテスト新公式問題集〈Vol.4〉

結果

  • Section1: 9/10 (90%)
  • Section2: 24/30 (80%)
  • Section3: 25/30 (83%)
  • Section4: 24/30 (80%)
  • Section5: 28/40 (70%)
  • Section6: 5/12 (42%)
  • Section7: 24/48 (50%)

スコアレンジ

  • リスニング: 355 - 415
  • リーディング: 205 - 255
  • 合計: 560 - 670

実は同じ問題を2年くらい前にやっていたのですが,内容は完全に忘れていたので初見と変わらない点数のはずです (もしかしたら潜在意識に刷り込まれてたりとかはあるのかもしれないですが…)

当時のレンジが

  • リスニング: 295 - 340
  • リーディング: 150 - 195

だったので優位な実力の向上はあるみたいです.

考察と対策

3択な割に正答率が低いSection2

Section2の半分くらいで集中力が切れるのが主要因な気がする.

文頭が疑問詞以外で始まった時には特に聞き取れていないので要練習.

正答率が低すぎなSection6

一番苦手なセクションなので,あと1問2問拾えるように頑張る.

苦手なのはもしかしたら解いてる絶対数が少ないからなのかな?

結局最後まで解けないSection7

今回は8問を残し時間切れでした.

これまで解けてもダブルパッセージの2問目で時間切れなことが多くて,ダブルパッセージに慣れていないのが大きいのかも.

前半の簡単な問題はサクサク解いて,後半はちょっとじっくりめに読めるような時間配分を考えたいですね.


ということで1月の試験まであと1周間,頑張ります!!

Railsの運用サーバー構築時にハマったこと

問題

ローカル環境だとlocalhost:3000にアクセスすると見られるWelcome aboardを表示することを目標に,設定を書き換えてはhttp://example.comにアクセスし続けたけど,何度やってもThe page you were looking for doesn't exist.(404)しか返されない.

対処法

Rails 3.0.3 Production 環境にて public ディレクトリが見れない時 - メモ@taruruの通り,config/environments/production.rbに

config.serve_static_assets = true

としておき,http://example.comにアクセスするか

rails g scaffold blog title:string content:string
rake db:migrate RAILS_ENV=production

などしてhttp://example.com/blogsが正しく表示されるかチェックする必要があります.
データベースのマイグレーションも,RAILS_ENV=productionを付け忘れやすいので注意ですね.

今回はnginx + unicorn + railsで環境構築をしていったのですが,どの設定が悪いのか把握しづらく,一度ハマると結構たいへんでした.ログを見て問題の範囲を狭めていくことが大切ですね.

Capistranoを使ってRailsをデプロイするときに気をつけるべきこと

本当はしっかりと調査したほうがいいんだろうけど,とりあえずメモ.

  1. デプロイ先のディレクトリのアクセス権限は適切か
  2. デプロイ先のディレクトリの所有者は 適切か
  3. database.ymlはサーバー用の設定になっているか
  4. rake db:createやdb:seedを行ったか(初回は手動で実行しなきゃ無さそう)
  5. apacheの設定ファイルは適切か

deploy.rbにはsudo関連の設定を書かないとうまくいかないよう.

Autoloading failed to define function inf-ruby-keysを修正する

Emacsruby関連のファイルを開いた時に,

Autoloading failed to define function inf-ruby-keys

とエラーが出されることがあったけれど,普段はRailsを使っていてinf-rubyをあまり使っていなかったので,無視していました.

ですが,org-modeでRubyソースコードを載せる際にどうもinf-rubyが必要そうだったので原因を調べたところ,

(autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode")
(add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys)))

と設定していましたが,改めてinf-ruby.elを見直すと,

(autoload 'inf-ruby "inf-ruby" "Run an inferior Ruby process" t)
(autoload 'inf-ruby-setup-keybindings "inf-ruby" "" t)
(eval-after-load 'ruby-mode
  '(add-hook 'ruby-mode-hook 'inf-ruby-setup-keybindings))

と書くのが正しいみたい.

実際に設定を変えたらエラーを吐かれることがなくなりました.
rubyソースコードに添付されてくる,inf-ruby.el では古い書き方のままでよさそうだし,バージョンによって設定が違うから注意したほうが良さそう.

Evil-modeを使ってみる

Emacsの閲覧モードであるview-modeでいろいろ設定してたら,かなりvimライクな感じになってしまったので,それならいっそのことと思いEmacs上でvimをエミュレートするevil-modeを使ってみました.使用感を確かめて導入するか決めたいと思っているのですが,少し設定をしてみたのでそれをログとして残してみます.

evilではvimの"Mode"のことを"State"と呼びます.これはEmacsのMajor Mode,Minor Modeなどと混合することを避けるためのようです.

InsertステートではEmacsの設定を優先する

vimのモードの概念を導入したいとはいえ,今までのEmacsの動作ができなくなると困ってしまうので,Insert StateではEmacsの設定を全て適用します.基本的には

(setcdr evil-insert-state-map nil)

でInsert StateはEmacsの設定が優先されるのですが,これだけだとNormal Stateに移行するためのEscまで使えなくなってしまうので,'perfect' combination of emacs+evilを参考にEscでNormal Stateに移行できるように設定します.

上のリンクの設定ではjkでもNormal Stateに移行して,jjでjを出力するようになっているのですが,key-chord.elによる同時押しのほうがスマートな気がするのでjj同時押しでNormal Stateに移行するように変更しました.
結局記述した設定ファイルは

(setcdr evil-insert-state-map nil)
(define-key evil-insert-state-map [escape] 'evil-normal-state)
(key-chord-define evil-insert-state-map "jj" 'evil-normal-state)

となりました.

Normalステートに移行したらIMEをオフにする

Normal Stateではhjklを始めとするctrlキーを伴わない操作をするため,IMEがオフになってくれていたほうが便利です.
# Normal StateでIMEを使うことがあるのでしょうか….
そのNormal Stateに移行するときにIMEをオフにする設定がこちら

(add-hook 'evil-normal-state-entry-hook 'mac-change-language-to-us)

僕がmacのマシンを使っているのでこんなかんじなのですが,'mac-change-language-to-us の部分を変えれば他の環境でも動作するはずです.
# より汎用的なIMEを操作する方法があったら教えて下さい

https://gitorious.org/evil/evil/blobs/raw/doc/doc/evil.pdfのHooksに各種Hookが乗っているので,これを参考に他のState移行時の設定を書いてみるとよさそうです.

雑感

Emacsの機能を維持したまま,vimの機能(の一部)を導入することが出来ました.
Insert StateではCtrl+bfnp,Normal Stateではhjklが移動で微妙に慣れが必要そうだったり,一長一短なところもあるのでしばらく使用感を確かめてみたいと思います.

View-modeを抜けたら行のハイライトをオフにしたい

るびきちさんサイトCtrl+中指か薬指を使うキー操作が多いEmacsで指の負担を軽くする方法 - (rubikitch loves (Emacs Ruby CUI Books))
を参考にkey-chord.elを使ってview-modeの切り替えを行えるようにしてみました.これは便利!

ただ,自分の環境では設定をそのまま使うと,View-modeから抜けた時にハイライトがオフにならず,軽く調べてみたものの,情報にたどり着けなかったので,自分で解決してみることにしました.

ソースコードをみてみるとview-mode-hook0の中で

(hl-line-mode 1)

をしているけど,

(hl-line-mode -1)

などで,disableにしていないのが原因と推測.

そこで,以下の1行

(hl-line-mode 1)

(cond
 (view-mode
  (hl-line-mode 1))
 (t
  (hl-line-mode -1))
 )

としてみたところ,望んだ通りの動作になりました.

他の解決策

その後,少し調べてみたところ情報が見つかりました.
view-modeにhl-line-modeを付ける - znzの日記
こちらはdefadviceを使って解決しているようです.

今までは拾ってきたelispを(意味を全く理解せず)コピペしていましたが,見よう見まねでelipsを書いてみました.
vimの方がemacsより操作性が上なんじゃないかとか,sublime textの方が簡単に拡張できるんじゃないかなど考えていましたが,せっかくある程度使えるようになったEmacs,もう少しいじってみようかなぁと思います.