今週の表現(roadblock, wardrobe, abysmal, newbie, connote)

本を読んでいく中で出会った単語達。

[n] roadblock

synonym: obstacle, barrier, barricade, hindrance

meaning: 進展や目標達成を妨げること,警察などが検問などのために道路に設置するバリア

sample: I have to overcome a roadblock to achieve my goal.
(目標を達成するためにこの壁を超えなければならない)

sample: Trуing too hаrd to fit intо a fixed set оf раttеrnѕ will lеаd уоu ѕооnеr оr lаtеr to a roadblock.
(型にはめようと頑張りすぎると早かれ遅かれ苦難に直面するよ)

[n] wardrobe

synonym: cupboard, cabinet, locker + clothes, outfits, wears

meaning: 洋服ダンス,または服そのもの

sample: Today, the 3 countries produce most of the clothes in your wardrobe.
(今日では,その3カ国が洋服ダンスに入っているような服をほとんど作っている)

sample: The weather today blatantly exposed my business wardrobe as being unfit for the heat of a Tokyo summer.
(私のビジネス用の服が東京の暑さには適さないと今日の天気で痛感した)

[adj] abysmal

synonym: terrible

meaning: とても悪い,悪い品質

sample: We are suffering an abysmally high bounce rate, which is bad to organic traffic.
(私達は自然検索にとって悪影響である直帰率に悩んでおります。)

※bounce rate (Web用語:直帰率),organic search(Web用語:自然検索

[n] newbie

synonym: beginner, novice

meaning: 何か新しいことを始めた人,特にインターネットやコンピュータ

sample: This option may appear to be the best for the newbie just starting out.
(この選択は入門したばっかりの初心者には一番良い選択かもしれない)

[v] connote

synonym: imply, hint at

meaning: 基本的な意味の他に別な意味を含む→暗示する

sample: Free software connotes a series of codes that may not have been properly written.
(無料のソフトウエアはきちんと書かれていないコードを暗示する/示唆する。)

apache2.4 ファイルはどこにあっても適応される

以前の記事でWordPressのログイン画面の前にDigest認証をかけようとしました。

WordPressがインストールされているディレクトリの.htaccessに設定を書き込む方法を紹介しましが,他にもApacheの設定ファイル(httpd.conf)自体に書き込む方法があります。

httpd.confに<Files filename>設定</Files>と記述しますが,この場合,そのファイルがどこのディレクトリにあってもその設定が有効になることを知りませんでした。

<Files "private.html">
Require all denied
</Files>

この場合,private.htmlがどこにあってもアクセスを拒否することができます。パスとか指定しなくて良いんだ。

ただ,/var/web/dirの中のprivate.htmlのみのアクセスを制限したければ<Directory>と<Files>を組み合わせれば良い。

<Directory "/var/web/dir">
   <Files "private.html">
      Require all denied
   </Files>
</Directory>

参考にさせて頂いたサイト

Configuration Sections

Apache2.4 VirtualHostで特定のファイルにアクセス制限

以前の記事でwp-login.phpのみにDigest認証をかける作業を行いました。

通常であれば<Files>に設定を書いておけば有効になりますが,バーチャルホストで複数のWebサイトを運営している場合は訳が違います。

理由はわかりませんが,<Directory>や<Files>が何度設定しても有効になりません。結論,<Location>を使えば良いらしいです。

<Location "/wp-login.php">
   AuthUserFile /etc/httpd/conf/.digestpass    
   AuthName "Digest Auth"    
   AuthType Digest     
   <RequireAny>      
      Require valid-user       
      Require ip xxx.xxx.xxx.xxx
   </RequireAny>
</Location>     

例えば<Location “/private”>と指定すると,URLが/privateで始まるリンクすべてに適応される。以下は例。

http://yoursite.example.com/private,
http://yoursite.example.com/private123, http://yoursite.example.com/private/dir/file.html 

ただ疑問なのは,どうしてVirtualHostで設定すると<Directory>や<Files>の設定が有効にならないのだろうか。

というかそもそも<Directory>と<Location>の違いをよく理解できていない。(そのうち掘ります)

参考にさせていただいたサイト

Configuration Sections

WordPressのログイン画面にBasic/Digest認証をかける

WordPressのログイン画面に辿り着く前にもう一つの認証をつけてみます。完成図はこんな感じになります。

Basic/Digest認証を導入する理由

Basic/Digest認証の導入を検討するに至った理由はいくつかあるので紹介しましょう。

他人のサイトでログインを試せてしまう

特に初期設定から変更していない限り,WordPressのログイン画面は誰でも入れてしまいます。また,複数回ログインを失敗した端末のIPアドレスを拒否する設定を施していない場合,ログインを無限に試することができます。

試しにログインページにアクセスできるWordPressベースの有名サイトを並べてみました。(絶対にログインを試さないでください。)

このようにサイトのURLに + /wp-admin と付け加えるだけでログインページにリダイレクトされてしまう・・・。恐ろしい。

Basic認証ではなく,Digest認証をかけたい

wp-login.phpに認証をかけようと調べていると,Basic認証について紹介している記事は多くありましたが,Digest認証の設定を解説している記事はほとんど見つけられませんでした。

確かにサイトがTLS(SSL)に対応していればBasic認証で送られる情報も暗号化されるはず。つまり,盗聴されても中身は解読されにくいわけで,設定する手間を考えればBasic認証でも十分と考える人もいます。

(そもそもBasic認証もDigest認証も本認証の前に置く,おまけの認証でしかないので。)

しかし,私は雑記帳のネタにはなりそうだから,Digest認証を採用しました。

Basic/Digest認証の設定方法

勉強のためにBasic認証もDigest認証の方法も記録しておきます。流石に本番環境での設定をネタにはできないので,実験用の仮想環境で試した設定方法を載せますね。

まずはBasic認証,Digest認証共通の設定。次にそれぞれの設定を説明していきます。

実験環境

  • CentOS Linux release 7.7.1908 (仮想環境)
  • Apache/2.4.6
  • URL) http://192.168.3.9/blog

.htaccessの有効化

httpd.confの設定で無効になっている場合は有効にしてください。

#AllowOverride None
AllowOverride All

.htaccessはディレクトリ毎の設定をするファイルですが,httpd.confの設定を頻繁に変えたくなかったり,そもそも権限がない人はここに書かなければいけません。

[Basic認証 1] .htpasswdの作成

Basic認証に使うユーザ名とパスワードを保存したファイルを作成します。-cは新しいファイルを作成, -mはパスワードはmd5で保存するというオプションです。

$ cd /etc/httpd/conf
$ sudo htpasswd -c -m .htpasswd <ユーザ名>
 New password:<パスワード>
 Re-type new password:<パスワード>
 Adding password for user user

$ cat .htpasswd
 <ユーザ名>:$apr1$W0W01YDj$U6KIhTJBN54GXUVjzC2Hv1

[Basic認証 2] .htaccessの作成

WordPressのインストールされているディレクトリにある.htaccessを編集して以下を追加します。

<Files wp-login.php>
AuthType Basic
AuthName "Please enter your ID and password" 
AuthUserFile /etc/httpd/conf/.digestpass 
require valid-user
</Files> 

AuthNameは本来領域名ですが認証ボックスに表示されるだけなので何でもOKらしい。

[Digest認証 1].digestpassの作成

Digest認証に使うユーザ名とパスワードを保存したファイルを作成します。<領域名>は任意の文字列でOKです。

$ cd /etc/httpd/conf
$ sudo htdigest -c .digestpass "<領域名>" <ユーザ名>
 Adding password for user in realm <領域名>.
 New password:
 Re-type new password:

$ cat .digestpass
 <ユーザ名>:<領域名>:83b0c7f1eaa530b1252578d43bbc6c70

[Digest認証 2] .htaccessの作成

WordPressのインストールされているディレクトリにある.htaccessを編集して以下を追加します。

<Files wp-login.php>
AuthType Digest 
AuthName "<領域名>"
AuthUserFile /etc/httpd/conf/.digestpass 
require valid-user
</Files>

AuthNameは.digestpassを作成したときの領域名を入力してください。

[Digest認証 3] Digest認証モジュールの有効化

Digest認証を行うために,モジュールの有効化をしなければなりません。私の環境ではデフォルトで有効になってました。

/etc/httpd/conf/httpd.conf
/etc/httpd/conf.modules.d/00-base.conf

上記の設定ファイルどちらかにDigest認証に関する記述があるはずです。私の環境では下。

$ cat 00-base.conf | grep digest
 LoadModule auth_digest_module modules/mod_auth_digest.so

このモジュールがコメントアウトされている場合は外して保存してください。

Apache再起動

すべて設定し終わったらApacheを再起動します。問題がなければOKです。

$ sudo systemctl restart httpd

参考にさせて頂いたサイト

Kindleの単語帳をリセットする!+応用編も!

Kindleは洋書を読むのに最高のツールです。わからない単語をタップすれば意味が出てくるし,調べた単語をまとめて単語帳まで作ってくれます。

私は防水機能のないKindle Paper Whiteを使っていますが,ジップロックに入れて毎晩お風呂で読んでいます。めちゃめちゃ捗ります。

しかし,蓄積した単語を標準で全消去する機能がなく,フラストレーションを感じることがあります。ここでは全単語を消去する方法を説明したいと思います。Windows10の環境でやっていますが,Mac等でも基本的には同じです。

ちなみにこの方法はたまたま私の環境で問題なく動作しているだけなので,何か問題が起きても私は知りません。

準備・インストールするもの

操作方法

まずはKindleをMicro USBでPCに接続してください。

ウィンドウが表示されたらアドレスバーのパスに \system\vocabularyを追記して移動します。※systemフォルダはデフォルトで表示されません。

移動するとvocab.dbが見つかります。ここに単語の情報が保存されています。

このファイルをDB Browser for SQLiteで開き「Execute SQL」タブを押します。

全消去

SQL 1と書いてあるボックスの下に以下の命令を書いて,再生ボタン(実行ボタン)を押して保存すれば終了です。

DELETE FROM WORDS;
DELETE FROM LOOKUPS;

よく調べる単語を表示

SQLはデータベースを操作する命令なのですが,もちろん削除以外のことにも使えます。一例ですが,過去に2回以上調べた英単語を表示させることも。

SELECT word_key 
 FROM LOOKUPS 
 WHERE word_key like "en:%"
 GROUP BY word_key 
 HAVING count(word_key) > 1;

どんな文脈で使われていたか表示させたければ “, usage”を追加したり,3回以上調べた単語を表示させたければ “>1″を”>2″に変更するなど様々な応用ができます。

 SELECT word_key, usage
 FROM LOOKUPS 
 WHERE word_key like "en:%"
 GROUP BY word_key 
 HAVING count(word_key) > 2; 

最後に私のよく使う命令。
2回以上調べた単語,その本のタイトル,使われ方,3つを表示する例(”en:”は消える)

SELECT REPLACE(LOOKUPS.word_key,"en:","") as word, BOOK_INFO.title, LOOKUPS.usage
 FROM LOOKUPS
 INNER JOIN BOOK_INFO on LOOKUPS.book_key = BOOK_INFO.id
 WHERE word_key IN(
     SELECT LOOKUPS.word_key 
     FROM LOOKUPS
     WHERE LOOKUPS.word_key like "en:%"
     GROUP BY word_key
     HAVING count(word_key) > 1
     )

何か「こんな条件で表示させたい!」というものがあればコメントしてください。お手伝いします。

参考ページ : https://mandarinnote.com/archives/4610

英検1級に6ヶ月で合格!長期スケジュールを大公開

これから英検1級の勉強を始めたいけど,全体のスケジュール感がわからん!

そう疑問に思っている人が絶対いるはずです。結論,6ヶ月あれば合格できます

この記事では私の体験に基づいた全体的なスケジュールを共有したいと思います。詳しい学習法などは別記事にまとめる予定なので,ぜひそちらをご覧ください。

前提条件

私が勉強を始めたのは2019年3月末で試験の約6ヶ月前。その時点で英検準1級,TOEIC875点を取得していました。したがって,最低限の単語力,文法の知識,ライティング力を有していました。

まだ,英検準1級に合格していない,または受験していない方は,準1級の合格を最初に目指すのが良いでしょう。

具体的なスケジュール

それでは実際に具体的なスケジュールを公開します。

学習内容は大きく分けて,①単語対策,②ライティング対策,③過去問対策の3つです。それぞれ解説していきます。

①単語対策

単語(語彙)対策は英検1級の主軸になる部分です。対策には多くの時間と忍耐が必要です。私の場合は6ヶ月前から試験当日までの約194日間,1日1時間,毎日休まずに単語帳を回し続けました。

その結果,出る順の2400単語を約9割暗記することに成功し,試験の語彙パートでは7割正解することができました。単語帳を完璧に仕上げても10割は正解できないので,この程度で良いと思います。

②ライティング対策

ライティングは4ヶ月前から,11トピック分を2ヶ月程度で行いました。英検1級で出題されるトピックは政治,環境問題,研究・技術,教育,移民・貧困,核,医療,スポーツなど嫌になるほど多岐にわたります。

ライティング対策では,これからのトピックをむらなく練習し,どの分野のトピックが出題されても何かしら書ける練習をすると良いと思います。また,短い時間で与えられたトピックについて構成を考える訓練も有効です。

ライティング対策の詳細は別記事を参照してください。

③過去問対策

過去問に手を出すのは早くても3ヶ月前で良いでしょう。焦ってそれより早くやり始める必要はありません。

基礎が固まっていない状態で過去問を説いても解ける問題が少なく,精神的にダメージを受けるだけです。また,一度問題に目を通してしまうと問題を覚えてしまい2週目は勉強にならなくなってしまうので注意が必要です。

スケジュールの図には7回分ときましたが,最後の一回は試験前日の土曜日に,体を慣れさせるために解いただけなので,対策と呼べるかは微妙です。

やらずに後悔していること

偉そうに私のスケジュールを紹介しましたが,ギリギリ合格でした。もちろん改善の余地があります。

ライティングのための知識形成

ライティングでは時事問題などの背景知識が必要なトピックが出題されることがあります。ご存知の通り,英検1級のライティングでは理由を3つ挙げなければいけません。

そのため,ライティング対策を始める前に時事問題などの知識をつける対策しておけばよかったと後悔しています。

長文読解のための語彙対策

語彙パートの対策は,単語帳を回しておけば問題ありません。しかし,単語帳だけでは長文に出てくるような単語や表現は理解できません。もちろん,長文は全体の60-70%を理解できれば解答できますが,長文用の単語や表現を身に着けておけばよかったと後悔しています。

英検1級語彙・イディオム問題500 などを買って対策しておきべきだったかもしれません。

したがって,下記のスケジュールが本当であれば理想的なのです。

最後に

これはそこそこ高度な資格試験に共通して言えることがですが,前日の詰め込みでどうにかなるような物ではありません。まず自分の今のレベルを知り学習のスケジュールと戦略を考えましょう!

SSHのポート番号くらいは変更すべき

遠隔にあるサーバーの操作はSSHで行うことが一般的だと思います。

自宅にサーバーを立てたり,VPSをレンタルした時に最低限のセキュリティ対策としてSSH経由のrootログイン禁止や不要ポートを塞ぐなどをすると思います。

しかし,SSHのポート番号は初期設定の22番で使っていることが多いと思います。自分もそうでした。ちょっと手間ですが変えたほうがいいかもしれません。

中国IPからの攻撃?

自分はそのまま使っていて中国IPから突っつかれていました。

このブログはレンタルVPS上で運営しています。11月19日に契約してその9日後にログイン失敗の履歴を確認したところ6万回近いログイン失敗のログが残っていました。

# lastb

上記のコマンドでログインの失敗を表示できるので試して見ると面白いです。どのようなユーザ名でログイン試行されているかわかります。(以下,IPは隠しています)

他にもtest, guest, git, admin, ubuntuなどなど色々試されていました。

数が多いので1レコードずつ目は通していませんが,数種類のIPアドレスからのログイン試行でした。いくつか調べてみましたが中国に割り当てられているIPでした。

そもそもrootログイン禁止をしているし,自分が使うときは公開鍵で認証しているので大丈夫だと思います。ただ,気持ち悪いし,余計な負担がサーバーにかかってしまうことは防ぎたい。

結局ポートスキャンされれば,ポート番号の変更なんて意味はないかもしれないが気休め。

英検1級に合格!語彙対策に必要な時間は216時間!

英検1級合格に欠かせないのが単語の学習です。多くの人は出る順パス単を使って対策するかと思います。

しかし,一人で暗記作業をしていると「このペースで学習を続けて試験までに単語帳を覚えきれるのだろうか。後どのくらい勉強すりゃいいんだ~~~???」と不安になってくるはず。

私もその一人でした。ですので,この記事では私の体験談を基に単語学習に必要な時間を紹介します。

結果だけ知りたい人のために結論をいうと・・・

英検1級出る順パス単を100%暗記するのには最低でも216時間

つまり6ヶ月で合格しようとしているのであれば1日に1時間20分は勉強してください。

さて,どのようにこの時間が導かれるのか気になった好奇心旺盛な人のために,私の学習記録も公開しながら解説したいと思います。

ランダムチェックの実施

私が英検1級の単語学習をしているとき,上に記したような不安を抱いていました。学習にかかる時間が全く予想できなかったのです。

そこで,暗記したはずの単語が本当はどのくらい暗記できているのか単語をランダムに抽出してか日々テストしていました。

なぜランダムチェックを行ったのか

繰り返しになりますが覚えた単語にチェックをつけているとその単語を覚えた気になるかも知れませんが,実際のところわかりません。

もしかしたら,単語帳の並びや場所で覚えているかも知れませんし,時間が経ってすでに忘れているかも知れません。

したがって,突然ランダムに単語を出されたときに,どのくらい記憶できているか確認する必要があります。

どのように行ったのか

方法は至って簡単です。出る順パス単は単語と熟語をあわせて2400語あるので,スプレッドシートやExcelで無作為に1~2400の数字を出します。

このとき,ばらつき無く番号が排出されるように少しだけ工夫をします。

これは一つの方法ですが,先頭と語尾を決めて,その間から一つ数字を選ぶ関数( RANDBETWEEN)などを使うと便利です。

ここでポイントですが,より本番に近づけるために単語番号1~2100から20問(単語),2101~2400から5問(熟語)出すようにします。(英検の大問1と同じ構成)

150日目(6ヶ月目)から毎日番号を生成して,自分が覚えているかどうか記録していき正答率を計算します。

どんな結果がでたか

結果は以下のようになりました。赤で示しているのはその日の正答率で,青は5日平均です。

赤い線だけだと変化が激しく傾向が読みにくいですが,青い線を見るとトレンドがある程度読めるかと思います。

150日(5ヶ月)経過時点で,全体の約6割を暗記できています。170日目(5ヶ月半)あたりから8割程度に近づきます。180日(6ヶ月)で約9割覚えることが出てきいます。

ここから何が言えるのか

私は1日1時間をかけて単語帳の暗記作業をしていました。計194時間で9割(2160単語)覚えた計算になります。

つまり,中長期的に見れば1時間で11.13単語を暗記できることになります。したがって,英単語帳2400単語を覚えるには216時間要することになります。

*もちろんこれは私の経験であり,個人差はかなりあると思います。暗記は得意不得意があると思うので,自分の状況に合わせて計算のパラメータを調整しながら算出してみてください。

私の体験談が皆さんの約に少しでも立てればと思います。

それでは勉強頑張ってください。

今週の表現(plethora, counterproductive, hassle, lubricate, tuberculosis)

本を読んでいく中で出会った単語達。

[n] plethora

synonym: excess, (over)abundance, plenty

meaning: 多い,または多すぎる何かの量(数)

sample: Google and the plethora of other search engines always rank your entries down.
(Googleや他の検索エンジンはあなたの記事を低く評価する)

[adj] counterproductive

synonym: ineffective, useless

meaning: 期待した効果とは反対の結果を招くこと

sample: Working on something in a group is sometimes counterproductive.
(グループで何かに取り組むことが逆効果なこともある)

[n] hassle

synonym: inconvenience, problem

meaning: 問題を起こしたり,やりにくくてイラッとするようなもの

sample: Getting up early is such a hassle.
(早起きは面倒くさい)

[v] lubricate

synonym: grease, facilitate, ease

meaning: 動きをより滑らかにするために潤滑剤を塗る。物事を円滑に運ぶようにする。誰かをアルコールで陽気にさせる。

sample: Success is a function of skills and techniques that lubricate the processes of human interaction.
(成功は人との関わりを円滑にできるスキルと技術のいかん(次第)である。)

[n] tuberculosis

synonym: (T.B.), (infectious disease)

meaning: 主に肺に影響を与える深刻な感染性の病気→結核

sample: In 1950, he suggested to the WHO a way to eradicate tuberculosis.
(1950年,彼はWHOに結核を根絶するある手法を提案した。)

英検1級に合格!かかる費用は43万!?

英検1級は絶対に誰でも取れます!

英検1級は合格率10%前後の難しい資格試験であることは間違いありません。1級の合格が示すのは,どのような分野の英語でも細部には至らないがある程度理解できることです。(ネイティブの足元にも及びませんよ。)

巷では,「ネイティブでも難しい」「TOEIC満点でも英検は取れない」「大学教授レベルじゃないと取れない!」など過大評価されているのをよく目にします。

しかし,そのどれもが合格者がマウントを取っているだけ,もしくは合格を諦めた人の言い訳なので無視しましょう。

自分は情報系出身で英語専攻ではありません。しかし,6ヶ月間1日もサボらずに集中して,コツコツ勉強した結果ギリギリで合格することできました。ギリギリで合格したということが非常に重要で,最低限の勉強でコスパよく合格できたと言えます。

コスパといえばお金。普段あまり考えられない英検1級取得の金銭的なコストについて計算したいと思います。

(勉強期間:2019/3/26 ~ 2019/10/6,194日間)

結論:43万かかる!

自分の場合ですが,勉強時間,教材費,受験料等々,合計で約43万円の費用を要しました。内訳は以下の通りです。時々,自分のところに英検1級はどうやったら取れるかなど質問をしてくれる方がいますが,勉強を始める前に費用対効果を考えたほうが良いのかもしれません。

項目金額
人件費409,125
受験料10,000
教材費9,460
合計428,585

そうなんです95%人件費なのです。これはもちろん自分の人件費です。人件費は単純に勉強時間×時給(1500円)で計算しています。

なぜ1500円かというと英検1級を受験する人の大部分は,すでに準1級を持っている人と仮定しています。そのレベルがあれば,バイトで最低でも時給1500円は稼げるはずです。

それでは,何にどのくらい時間を使ったのかを以下にまとめます。

①単語学習(29.1万円)

1日1時間×194日=194時間, 194時間×1500円=291,000円

②過去問(5.9万円)

過去問:1回2.25時間×7回=15.75時間, 15.75時間×1,500円=23,625円

復習:1回4時間×6回=24時間, 24時間×1500円=36,000円

過去問+復習:59,625円

③ライティング対策(1.3万円)

1回 0.75時間×12回=9時間, 9時間×1500円=13,500円

④2次対策(4.5万円)

1回 2.5時間×12回=30時間, 30時間×1500円=45,000円

どうですか。かなり高額ですよね。これが社会人になるとより時給が上がり,より人件費が高くなります。一度,英検1級を本当に取る必要があるのかを考えたほうが良いのかもしれません。

40万あったら何ができる

英検1級の勉強をせずに,その時間すべてにバイトを入れていれば通帳に40万入っています。そう考えるとどうでしょうか。本当に英検1級を取りたいですか。取らなければいけませんか。40万あれば他にできることはたくさんありますよ。

ヨーロッパに2週間旅行するのも良い,ハワイでショッピングすることだって!中古車を買って遠出したっていいじゃないですか。旅行の記録に高いカメラとレンズも買える。iPhoneだって4台も買えちゃう。かっちょよい腕時計も買えるかもしれない。

それでもあなたが英検1級を受ける理由はなんですか。