Engineer of the lawyer

I was able to pass the Network Specialist. Next target is the Project Manager.

2015年の目標を振り返る

2016年の目標を整理する前に2015年時の目標に対する達成度を考える。


thcom.hatenablog.com




Things to do in 2015.

【家計簿つける】
今年は3~4ヶ月はつけてたけど、いつの間にかやめてた。今年は資産運用にさらに重点を
おきたいため、お金の流れはシビアに見ていきたいのでやっぱり家計簿は必要。

⇒ これは完全にさぼってた。12月から再度つけ始めたので再度継続する。
性格上、完璧を求めてしまうので、1日、2日付け忘れるとそのままつけなく
なってしまう。漏れがあることを前提で家計簿をつけていく意思を持つこと
が大切だと考えるようにする。

【タバコやめる】
100害あって、一理なし。

⇒ 8月10日より禁煙中。これはもちろんこのまま続けて生きたい。

【引越し】
湿気が気になるのと、利便さを考えて引越しを検討中、でも今のところ家賃安いからな…。

⇒ 引越しはできていない。ただこれまで何件か契約申し込み寸前まで話を
進めていた。最終的に家賃などが気になりやめた。引越しは良い物件があれ
ば積極的に行いたい。

【海外へ行く】
これは一人でもやっぱいったほうがいい。シルバーウィークあたりを検討中。

⇒ 行けてない。本当に行きたいが英語をさぼっていたので自分に自信が
ないのが原因かな。


【大学院進学検討】
これはちょっと厳しいかな…。
しかし2015年後半の目標となるので、前半がうまくいけば具体的に検討することにする。

⇒ 説明会、研究計画書の執筆まで進めていたが挫折。モチベーションが
いまひとつといった感じ。それ前に日々勉強癖をつけて行きたい。


【その他挑戦したいこと】
収入源を、給与、投資以外に増やしたいので、Youtube??、サイト運営??、
ヤフオク??とか検討。

⇒ 不動産投資を検討。不動産投資関連書籍を数冊読破。競売を前提に
いい物件があれば購入予定。

英語圏の友人を作る。オンライン英会話とかできるようになるといいな。

⇒ これも英語の勉強をサボっているからやってない。

確定申告・不動産投資。会社じゃなくて自分で確定申告をすることで、意識が変わると思う。
ちなみに2014年分は自分でやるので、強制的に達成予定。

⇒ 達成済み。今年は医療費控除とふるさと納税を含めて確定申告を行う。


総評

全体的に目標を高く掲げすぎ。ただ全てを実行するのではなく一部でも
結果が残ればいいという考えであれば禁煙の実施は有限実行できたと思
う。また、投資関連として2015年は株式投資への運用額を大幅に増やし
積極的なポジションを取っている。また別の施策として不動産投資を
実現するため競売を中心に実際に不動産投資を行っている人からの
意見収集などをおこない、ノウハウの蓄積に努めることができた。海外、
語学関連として英語学習に取り組んでいないことがモチベーションにつな
がらない原因だと考えられる。英語学習を持続するようにTOEICなどを
継続して受験して行くことが実現性を高めるきっかけになると思う。

ネットワークスペシャリスト試験合格

今更ですが、2015年秋試験のネットワークスペシャリスト試験(ネスペ)に
合格したので勉強記録をメモ&シェア。誰かの参考になればと思います。

前提知識

・ネットワークエンジニア(開発)として2年目。その前に2年ほど運用経験あり。
・2015年春 応用情報技術者試験合格
・L2,L3など基本的な技術は十分理解している状態。
CCNA保持(CCNPは必要があればすぐにとれるレベル(けどモチベーションの
 問題で未取得))
VPNやProxyは構築経験がないので自信なし
ネットワークスペシャリスト試験は初受験

勉強期間

9月15日~10月17日まで = 合計93時間
これは机に向かって行った勉強時間なので、実際は移動時間中での午前問題
の勉強や、業務中は試験につながるように意識して行動していたので実質1.2倍
ぐらいかと。(111.6時間?)

勉強方法

応用情報技術者試験の勉強のときと同様、初動が遅かったので短期的に
集中できる環境が必要だと考え、1ヶ月程度レンタル自習室を借りまし
た。(確か1万円程度)基本的に仕事帰りはもちろんのこと休日もほぼ毎日
利用していました。

午前問題は移動時間とかの隙間時間に過去問のみをやる。

午前問題は過去5,6年分を正誤含めて全て丸暗記するほうが効率がいいです。
午前問題は体感的に半分以上は使いまわされているのでこれだけで5割以上
取れます。残りはアレンジした問題と新しい問題が数問出題される程度かと
思います。計算問題は捨ててもいいです。ただ待ち行列はパターンが
決まっているので覚えたほうがいいです。午後問でも出題されることが
あるかもなので。そのため午前問題は移動時間など隙間時間を利用して
ひたすら解く。正誤を含めてわからないところはネットで調べる。
これだけでいいかと思います。もちろん午後問を解くためのベースと
なる知識にもなるので本質的に理解するように意識して。

午後問題は問題を読むのにも結構時間がかかるので、長時間集中できる
自習室で行いました。

よく過去問からやればいいといいますが、資格取得だけが目標でなく
この試験においては本質的なところも理解したかったので、まずは
参考書を斜めよみ。過去門を解きながら理解できなったところは2週目に
深く読み込みました。
ネットワークスペシャリスト試験は知識がないと解けない問題ばかり
なので、いきなり過去問をやってもあまり意味が無い気がします。

このほか良書"ネスペ道"をかなり読み込みました。
午後2などは出題者の意図を読み解くことが結構難しいので上記の
参考書を使いながら問題を暗記する程やりこみました。

午後1、午後2の過去問演習は以下のとおりでした。

26年度 3回
25年度 3回
24年度 1回
23年度 2回
22年度 1回
21年度 1回
計11回

当初の目標は過去問9年分を5週 = 45回分やろうと思ってましたが、
なめてました。かなり時間がかかるので要領よく自分が苦手な分野
などを克服できるように取り組むべき問題を見極めることも大事
かと思います。

試験当日

午前1は免除だったので午前2から受験。
午前2は楽勝。(やはりほぼ過去問の使いまわし)
午後1は結構自信ない。
午後2はかなり自信ない。(ZigbeeとVXLANが出た)

合格発表を確認するまで全く自信がなく、落ちたと思いました。
特に午後2では試験後何を書いたのか覚えていない状態。
ただ全ての問いにはなんかしら書きました。部分点があるかも
しれないので、答案用紙は全て埋めるようにしています。

次の目標

2016年 春 プロジェクトマネージャ試験

普通なら情報セキュリティスペシャリストを受験するところかと
思いますが、情報セキュリティスペシャリスト試験は、春、秋
どちらも実施しているので優先度を下げました。

利用した参考書、問題集

応用情報処理技術者試験合格#2015/6/19

本日、応用情報処理技術者試験の合否発表があり、無事合格していることを
確認しました。

個人的には少ない時間で効率的に学習できたので合格したら勉強法を
まとめようと考えていました。

【前提知識】

基本情報処理技術者
昨年4月に基本情報は取得していましたが、1年後の応用情報処理試験
に受験しました。ほとんど忘れていると思っていましたが、応用情報
のテキストを眺めている際に、なんとなく覚えていることを実感した
ので、基本情報の知識は有利に働いていると思います。

●NWエンジニア
NWの開発エンジニアとして働いているので、NW領域の範囲はほぼ無勉
で過去問だけ目を通しました。

●文系学部卒
文系学部出身なので、NW以外はほぼ独学です。

【勉強方法】

●期間
約1ヶ月

●平均時間(1d)
約3時間

性格なのか、ギリギリにならないとなかなかやる気がでないタイプ
です…。試験の申し込みは申し込み期間開始後すぐに申し込んだの
ですが、勉強を開始したのは1ヶ月前です。

とにかく家にいてもやる気になれないので、レンタル学習室を借り
ました。1ヶ月8000円~程だったと思います。
お金を払っているので、毎日通わないと損してしまうという焦りも
あり、仕事終わりには最低3時間、土日は6時間以上は利用していま
した。(元以上は取れたかな、と思います。)

学習法としては、午前対策用テキスト→過去問→午後対策用テキス
ト→過去問の繰り返してやっていました。

学習方法としてよく、「過去問から取り組め!」というものを目にし
ますが、自分は必ずテキストからやります。試験範囲のボリューム
を掴めないと、終わりが見えず学習範囲が底沼なものに感じてしま
うんですよね…。

そのほか、移動時間、休憩時間、寝る前などの隙間時間はスマホ
プリで問題をひたすら解いていました。最終的に苦手分野にしぼり、
ひたすら繰り返すのみです。

●具体的な学習スケジュール

1週目

思い立ったら吉日。即レンタル自習室に見学予約をし、見学日にそ
のまま契約後、その日は終電までテキストを読んでいました。
テキストは、できるだけ簡単そうな以下のものを選択。

図などが豊富なのでページ数の割りに、すぐに読破できます。

そしてノルマとして必ず、1日に最低午前問題の過去1年分(80問)は解く
ようにしていました。過去問題集はボリュームのある以下のもの。

テキストを1時間読む → 2時間で過去問と答案チェック
過去問はわからなければすぐ答えを見て、答案で学習します。
自分が使った過去問題集は問題と答えが見開きであるのですぐにチェック
でき、非常に使い勝手がよかったです。

この時点で合格点である、60点が取れるか取れないか…。
(結構心が折れていました。)

2週目

1週目で使ったテキストでは内容が浅いと思い、別のテキストをチョイス。

このテキストは最初に手をつけるにはなかなか取っ掛かりにくいかもし
れませんが基礎知識がある程度ある方ならこれをお勧めします。
かなり詳しく、かつ網羅されているので、辞書代わりにもなります。

1週目と同様、テキストを読めるだけ読む→過去問の午前を1日最低1年分
はやる。をひたすら繰り返しています。このとき、過去門には同じよう
な問題が使い回されていることに気づき、問題文を読めば答案がわかる
ようになってきました。

この時点で午前は60点から70点ほど取れるようになってきました。
ただし、あくまでも問題文を覚えてしまっているので、過去問では
最低8割~9割はとっておかないと本試験での新しい問題が出た際に
太刀打ちできないだろうと考えていました。

3週目

ここから午後対策にウエイトを移します。
午後対策本としては午前対策本と同様の以下のものを選択。
これは午後対策本の方が有名で、定番となっているようです。


午後対策を重点的にしつつ、午前はテキスト学習をやめ、過去問だけは
平行して続けました。

この時点で午前は平均8割は取れるようになってきました。
午後は採点が難しいので採点はせず、解説を熟読することにフォーカス
しました。

4週目~テスト前

総仕上げです。急がば回れ。過去問を解いていく際に理解が薄いとこ
ろをテキストで確認し、ノートに3~4行程度で説明を含め、用語など
を纏め上げていきました。移動時間はノートに記載したものを暗記す
るように注力し、試験直前、試験の昼食時間などにはこのノートを見
て忘れないようにしました。

暗記問題は五感をできるだけ使うようにと教わってきました。
つまり、声に出し、耳で覚え、文字を書き、目で覚える。
マネジメント系などはこれでほとんど覚えました。また、待ち行列
理解に時間がかかると思い最初は捨てていましたが、できるだけ捨て
問題を作らないようにノートに苦手項目をまとめあげることで学習
しました。

そんななかでもいくつか捨てた範囲があります。アルゴリズムなどの
プログラミング系です。簡単な問題は解けるのですが、ちょっと悩ま
される問題は時間がかかるので効率が悪いと思い学習範囲から排除し
ました。午後もプログラミングは選択する気がなかったので、別の
範囲の学習時間に当てました。

ちなみにJavaScriptPerlで簡単なツールを作ることができる程度の
知識はありました。

総括

応用情報は過去問をすべて暗記すれば午前の合格ライン手前まではい
けそうな気がします。+αで理解力を求められるので過去問の応用的
な問題に対処できる知識があれば午前は突破できます。
(あくまで試験に受かるためだけなら…)

丸暗記だけでは対応できないのが午後です。正直半分は国語の問題です。
文章読解力が必要です。これは得意不得意が諸に分かれるような出題
となっています。また当然ですが、午前の範囲である知識が最低限問
われますので、午前を単なる丸暗記で勉強しているときついと思いま
した。

手ごたえとしては、午前8割はいけたか!? 午後はギリギリかも…。
と、思っていましたがなんと予想外の採点結果に。。。

あくまで午後の採点はブラックボックスなのでわかりませんが、
自己採点よりも期待しても良いと思います。
ただ、午前の方が自信があったのになぁ。。。

次は秋にネスペを受けます。
勉強は8月から2ヶ月を予定。

誰かの参考になれば幸いです。

f:id:thcom:20150619230119p:plain

sudoの設定

sudoの設定をしていなかったので、レンタルサーバに追加した。
普段あまり触らないところなので、メモ。

sudoの設定

sudo の動作設定は /etc/sudoers に記述されおり、このファイルを編集することで sudo の動作を変更することができる。

/etc/sudoers ファイルは root ユーザでも読み出し権限しかなく、さらに記述内容を間違えると sudo コマンドが正常に動作しなくなることもあるため、/etc/sudoers 編集専用の visudo コマンドを使い編集する。


編集の際には、/etc/suders編集専用のvisudoコマンドを使い、編集する。

visudoコマンドはroot権限で実行する。CentOSの場合、viエディタが起動する。

設定例

rootユーザについては、以下のように設定されている。

root    ALL=(ALL)       ALL

各フィールドの説明

root(user名)
sudoできるユーザの設定、グループを設定する場合は"%"を先頭につける。

ALL=
ホストに対する許可(普通はALLでOK)

(ALL)
sudoされるユーザ名 (ALL ならば全てのユーザ権限, つまりルート権限を使うことができる)

ALL
利用できるコマンドの制限

一般ユーザがsudoを使えるようにするには、以下のように設定する。

hoge1    ALL=(ALL)       ALL
hoge2    ALL=(ALL)       ALL

使い方

$ sudo hogecommand

ルート権限で(hogecommand)を実行する。パスワードは自分のパスワードを答える。

$ sudo -s

プロンプトが#に変わり、exitするまでrootのままで操作できる。


sudoコマンドを実行する時に毎回パスワードを求めるようにする。

その他の設定

Defaults timestamp_timeout = 0

sudoの設定

sudoの設定をしていなかったので、レンタルサーバに追加した。
普段あまり触らないところなので、メモ。

sudoの設定

sudo の動作設定は /etc/sudoers に記述されおり、このファイルを編集することで sudo の動作を変更することができる。

/etc/sudoers ファイルは root ユーザでも読み出し権限しかなく、さらに記述内容を間違えると sudo コマンドが正常に動作しなくなることもあるため、/etc/sudoers 編集専用の visudo コマンドを使い編集する。


編集の際には、/etc/suders編集専用のvisudoコマンドを使い、編集する。

visudoコマンドはroot権限で実行する。CentOSの場合、viエディタが起動する。

設定例

rootユーザについては、以下のように設定されている。

root    ALL=(ALL)       ALL

各フィールドの説明

root(user名)
sudoできるユーザの設定、グループを設定する場合は"%"を先頭につける。

ALL=
ホストに対する許可(普通はALLでOK)

(ALL)
sudoされるユーザ名 (ALL ならば全てのユーザ権限, つまりルート権限を使うことができる)

ALL
利用できるコマンドの制限

一般ユーザがsudoを使えるようにするには、以下のように設定する。

hoge1    ALL=(ALL)       ALL
hoge2    ALL=(ALL)       ALL

使い方

$ sudo hogecommand

ルート権限で(hogecommand)を実行する。パスワードは自分のパスワードを答える。

$ sudo -s

プロンプトが#に変わり、exitするまでrootのままで操作できる。


sudoコマンドを実行する時に毎回パスワードを求めるようにする。

Defaults timestamp_timeout = 0

Perl foreach箇所を修正

これまでは、以下のように処理することによって、foreachで配列の中身を
1行ずつ読み込んでいきIF文でマッチした文字列を$valueに格納していた。

foreach (@lines) {

# 該当の文字列が一致する箇所をif文でマッチさせる
        if(/X部分一致させたい文字列X/){
                $value = "$_";
                };
        };

しかし、今回は配列の中で一致するパターンは必ず一箇所なのでIF文に
マッチした後、ループ処理を繰り返している意味がないので、IF文に
マッチしたらforeachを抜けて次の処理に遷移したほうがスマート
だと考え、以下のようにlastを使えば途中で処理を抜けられることが
わかったので以下のように追記した。

foreach (@lines) {

# 該当の文字列が一致する箇所をif文でマッチさせる
        if(/X部分一致させたい文字列X/){
                $value = "$_";
                last;
                };
        };


こうやって地道に修正しながらプログラムを覚えていこう。


【参考】 
last演算子 - 繰り返し処理 - Perl入門

Perl 置換箇所を修正

昨日、数値のみ取り出す置換処理を行っていたが、
1234 のように続いている数値の場合は処理できるのに対し、
1,234 のように記号が入っている場合は先頭の1のみしか抽出
対象にならなかったのでちょっと調べて修正を行いました。

### 正規表現で、数値のみが残るように、置換する。

#$value =~ s/^.*?(\d+).*$/$1/;
$value =~ s/\D//g;

正規表現で、"\D" は数値以外を指します。

s/パターン/置換する文字列/修飾子

で置換を行うことができます。

つまり、パターンの箇所に\Dを指定することによって数値以外を対象にし、
置換する文字列に何も記入しないことで、置換後取り除くことができます。
最後の修飾子には"g"をしていしてますが、これは一致するものをすべて
見つける場合に指定します。つまり、省略もできます。


これで、置換箇所の不具合はうまく動作するようになりました。
現在、対象の株価を2社に増やして計測中です。

また、自宅のローカルマシン上で動かしていたサーバ環境から
さくらのVPSをレンタルし、そちらに移植しています。

自宅のローカルマシンで動作させると、電気代や稼働率の観点から
あまり好ましくないので、外部のサーバにしました。
また、リモートアクセスも容易になります。
(自宅は固定回線がなくてWIMAX環境なのでなお更…)

今後もぼちぼち改修していきます。
その前にサーバのセキュリティ設定かな…。