数学の勉強とか

最近わけあって数学の勉強中。高校数学からやり直しているんだけどこれが結構面白くなって必要以上に難易度を上げて勉強しています。

一応理系の大学出ていて、高校、大学と割と数学は勉強しているので、やり直しと言っても全くゼロベースではないです。まあ毎年センター試験(今は共通テストというが、、、)の数学を気晴らしに解いていたりするので、その辺の人よりかは数学はできます。

私自身そういうレベル感なので、巷にあふれる一見優しそうだけど、中身はペラペラという学びなおし数学本というものは全く興味なく、普通に高校の参考書を使ってます。そこで、どんな本がいいか探すためにまずは「高校数学 おすすめ参考書」みたいな感じでググるわけですが、結構色々と情報が出てきます。まあ我々の時代からそうなのですが、やはりチャート式は今でもおすすめなようです。

Youtubeとかいろんなサイトを見ていると「チャート式は例題だけ極めろ」みたいな風潮があって、まああの分厚さならそういう使い方もありだろうなあと思う反面、ちょっともったいないなあと思ったりします。 確かに青チャートとか正直章末問題とか普通に激ムズなので、言いたいことはわかりますが、なんかもったいないですよね。

本屋でチャート式とかいろいろ見てますが、青チャートを全部やりこめば東大数学で他者にアドバンテージ取れるくらいのレベルにはなるんじゃないでしょうか

まあ私は黄チャートをお勧めしますけどね。例題、章末問題ともに難しすぎず、青チャートと大して扱っている内容は変わらないです。この本やりこめば結構なところまでいけますよ。実際高校時代は黄チャートに大変お世話になりましたし。それで一応国公立理系には受かったので。。。

黄チャート終わった後は志望大学に応じてもう少しレベルの高い問題集(大学への数学とか)をやればいいと思います。

あ、このブログを不運にも見てしまった高校生に言いたいのは「チャート式を完璧にしました」というのには色々な意味が含まれているので注意しましょうということです。

  • チャート式の例題を完璧にしました
  • チャート式の例題、章末問題すべて完璧にしました

では全然到達レベルが異なってくるし、言うことも変わってくるので、気を付けましょう。見た感じ大体前者の「例題を完璧に」という文脈でものを言っている人が多いです。 僕も数学の勉強しなおすにあたって色々なサイトやYoutubeの動画を参考にしましたが、どうも、このあたりで誤解があると話がかみ合わないのでは?と思ったので。。。

大学数学とかもぼちぼちやってますがその辺はまた別場で。。。

転職するにあたって冷静に自分を見つめなおすことが大事

転職は人生のチューニング、という言葉があります。これ、エンゼルバンク、という漫画に出てくる言葉で、最初に聞いたとき、私がハッとさせられた言葉だったりします。余談ですが「エンゼルバンク」は今話題のドラゴン桜の作者の方が書いた、転職を題材にした漫画です。ドラゴン桜の話もしたいですねえ、と書いてみて思ったのでその辺は追々。。。

本題に戻って「転職は人生のチューニング」というのはどういう意味か、今の仕事と自分がこうありたいと思う人生のギャップを埋める、という観点で転職をする、という感じでしょうか。例えば。。。

  • 本当は営業やりたいのに、事務とか経理とかやらされている。。。
  • 仕事が忙しくてプライベートが犠牲になっているが、もっとプライベート充実させたい。。。
  • 年収低い。もっとお金欲しい

というところです。まあ当然のことを述べていますが、もう少し現実的なことを言うと「すべては取れない」ということです。例えば年収高くしたいのならば、今よりも多少責任がある、仕事量が増えてしまうのは当然ですので、プライベートは多少我慢する、ということが必要です。だから、自分が大切にしたいことを全て求めに行くのではなく、それらのバランスを見て、今よりもいいか悪いかを定量的に判断することが重要です。

実際に私が転職活動をするときに仕事に対する自分の思いとのギャップと仕事に求める理想を箇条書きにし、五角形のチャート形式にしたりしました。 やり方はこちらにありますので、そちらを参照ください。 lineblog.me

リモートワークにおける作業管理のいい面と悪い面

ここ1年、コロナの影響でリモートワークを経験した、または絶賛リモートワークしてます、という人が多いと思います。 管理者目線だと、本当にこの人は仕事しているのかな、と勘繰りたくなり、オフィスに出社しているとき以上に「~~の件はどうなっているか」と聞きたくなる気持ちはあると思います。(ちなみに私はいわゆる管理職ではないです。ただ、プロジェクトリーダーやプロジェクトマネージャーが私の会社におけるメインの役割です、とだけ言っておきます) 私の会社ではリモートワークになってから、毎朝朝会をしていて「前日にやったこと、その日にやる予定」を一人一人上司に報告するスタイルをとっています。 まあそこまではいいんですが、このやり方、いいところもある反面、なんか悪いところも色々とあるんだろうなあと思ったのでちょっと整理がてら書いていく

いい面

毎日誰がどういうことをしているかをチーム内で共有できる

同じチームにいても他の人が何をしているかわからないことってあると思います。それで困ることはないですが、チーム内で共有できているに越したことはないです。その人のやっている業務が、どこかで自分のやっていることのヒントになり得たりするので。特に悩み事とかあると他の人が助け舟を出してくれることもあるので、それもいいことですよね。

人に報告をするための整理やコミュニケーションの練習になる

確かにちゃんと仕事をしているんですけど、じゃあその内容を簡単に説明して、というと意外とうまくできないですよね。何をやったかを整理し、それを伝える、という技術はこういう打合せの場でしか鍛えられないと思うので、それを毎朝できるのはいいと思います。

悪い面

うまく進んでいないように思われると会議の場が公開処刑の場と化し、精神衛生上よくない

まあ週1回とか月1回とかでそうなることがたまにあるよね、だったらある程度は許容できますが、そうでない場合はその担当者が10分、20分と詰められてモチベーション下がるわ、空気は悪くなるわ、と色々よくないですよね。しかも毎朝の朝会で、昨日悪いイメージを持たれた業務について翌日に劇的に改善しているなんてことはあまりないので(個人の経験談)、一度詰められる→モチベーションが下がり、仕事が進まない→翌朝詰められる→(以下無限ループ)、という具合でダメな人はつぶれます。

朝会で上司に悪く思われないか、という観点で仕事をするようになる

オフィスに出勤していた時は週1,月1の打ち合わせで上司が状況把握する程度でしたが、報告する側の部下も週1,月1の打ち合わせで上司にどう報告するか、あの上司はこういうところ気にするから、ここどうなってたっけ、と考える程度で済んでいて、業績を上げる>=上司のケアとなるわけです。でも、これが毎朝続くとどうでしょう。業績を上げることと上司のケアの関係が逆転するリスクがあります。 業績が上がること=上司のケアが100%保証されているのであれば、それでもいいのでしょうけど、どんな優秀な上司だって普通に判断ミスしたりするので、上記の保証が守られることはほぼないでしょう。

最後に

色々書いてきましたが、世間一般的には上記のようなマイクロマネジメントは避けるのがベター、と言われていますし私もそう思います。

まあ、今月いっぱいで今の会社辞めるんですけどねwww(この記事の内容も若干かかわっていたりするんですが、本質的な理由は別のところにあります。まあその辺は追々。。。)

 

Ruby技術者認定試験対策中

タイトルの通りです。実は先週受けたのですが見事に落ちました。。。 silverは割と余裕受かると聞いていたので油断していました。。。

silverについてはどうしても取りたいので、現在もう一回学びなおしているのですが、結構穴があることに気が付き、あーこれは落ちるな、と思いましたw

まだ受かったわけでもないですが、反省と対策を書いていきます。参考になれば。。。

反省点

Ruby examがほぼ9割近くコンスタントに取れていたので油断していた

まあこれにつきます。やっぱりこういう問題形式で常時90超えとなると、できた気になってしまいますよね。。。

②教本の内容があまり頭に入っていなかった

入れておけよ、って話ですが①もあって頭に入っていた気になっていました。。。 実際落ちた後に読み返すとわからないことが結構ありました。

対策

反省点①の対策:他の問題集などを解いて穴がないか確かめる

Ruby examと教本の問題しかやってなかったんですけど、他にも「ミニツク」のsilver対策ドリルとか、模擬問題集とかもしっかりやっておくべきでした。 実際落ちた後にこの辺やったら結構できてなくて、ああこれは落ちるなとw

ミニツク - Rubyのe-ラーニング研修システム

silver_j.md · GitHub

反省点②の対策:教本の内容を頭に入れる

まあ反省の裏返しなんですが、何回も熟読しました。その際以下のやり方を取りました。

  • わからない箇所には付箋を貼っておく

    • 弱点なので試験前に見返す。次回以降読むときはその箇所を重点的にみる、などできるようにしました。
  • irbとかでコードを動かしながら本を読む

    • 本の内容を実際に動かし、体感することで習得を早めるように努めました。

    • そのまま動かすだけでなく、ちょっと値を変えてみる、本の内容がこう書いてあるということはこうするとこういう結果になるかな、と予測しながらコードを動かすとしてみるとより理解が深まると思います。

その他

認定試験の勉強に取り組んでみて思ったのは、Rubyは開発者がプログラムを書きやすいように設計した、というmatzの思想がすごく表れているなと思いました。 個人的には、この処理はこう言う書き方もできるかな、という数学で言う別解的なのを探すのが楽しいです。まさにゲーム感覚ですね。

あと、初学者の方がいきなり教本に取り組むのはちょっと辛いかもと思うので、その前にたのしいRubyとか、Progateとかで学んだあとに教本に取り組むとスムーズかもしれません。 たのしいRubyは第4版あたりをさーっと読んだことがありますが、練習問題などもついているし、説明も難しすぎないので、初学者の方にはちょうどいいと思います。

 

こちらまた再開します。

タイトルの通りです。まあ見てる人いないかもですが。。。

 

IT関係の学習記録とか、数学の話題とか、その他諸々ぼちぼち書いていこうと思います。

 

今日は夜遅いのでまた明日(いや、今日かw)

pacemakerとcorosyncを使ってクラスタ環境作ってみる

仕事でpacemakerとか触る機会あったので、構築してみようかなと思いました。
今回はvmwareを利用して、以下図のような構成にします。
参考にしたサイト
・pacemakerやcorosyncのインストールおよび設定:
CentOS7.1でPacemaker+corosyncによるクラスタを構成する - とあるエンジニアの技術メモ
ApacheやVIPのリソース追加
CentOS 7 : Pacemaker : リソースを追加する (httpd) : Server World

<環境概要>
ホストOS:windows10 Pro
ゲストOS:CenOS7.4
ネットワーク含めた構成は以下図の通り
f:id:hatek47320:20180204235101p:plain

VIPとして192.168.14.100を、pacemakerの内部ネットワーク用LAN(pacemakerが生死監視をするための専用ネットワーク)としてそれぞれ192.168.15.1および2を設定します。

<準備>
VMWare上のCentOSへのインターコネクトLAN用NICの追加
NIC追加作業
pacemaker入れる前にインターコネクトLAN用のNICを追加します。仮想マシン上の遊んでいるNICがあればそれを使ってもよいですが、特にNICとか追加していない場合はこの設定が必要です、
まず、仮想マシンをいったんパワーオフし、VMWare仮想マシンを選択する画面の左側から、NICを追加したい仮想マシンを右クリックし、設定を開きます。
その次の画面下部にある「追加」ボタンを押下後現れるダイアログから「ネットワークアダプタ」を選択し「完了」ボタンを押下します。これでNICが追加できました。

NIC設定作業
以下の(2)OS設定を参考にNICの設定作業を行います。
CentOS7.1でPacemaker+corosyncによるクラスタを構成する - とあるエンジニアの技術メモ
なお、ここでIPを設定するときは、私の場合は「192.168.15.1」もう一つの仮想マシンのほうに「192.168.15.2」としました。
NICのIP設定や、ifcfgファイル作成、NIC再起動、hostsの設定など終わったら、いよいよpacemakerなどのインストールに入ります。

〇pacemakerとcorosyncをインストールとちょっとした下準備
以下作業は、仮想マシンごとに実施ください。

sudo yum install pcs

インストールしたらpacemakerのデーモンを起動します(rootユーザで)

systemctl start pcsd

OS起動時などでも自動起動するように設定します。

systemctl enable pcsd

pcsをインストールしたら、haclusterユーザが勝手に作成されますので、こちらのパスワードを設定します。(必須ではないですが。。。)

passwd hacluster
||
※パスワードは何でもよいです。

〇クラスタの設定および起動
すべての仮想マシンにインストールなど終わったら、いよいよ2台の仮想マシンをクラスタとして構成していきます。(ここからはルートユーザで)
まず、お互いのhaclusterユーザを認証します。(★どちらか1台で実行してください)
>|sh|
pcs cluster auth cluster01 cluster02

「Authorized」と表示されればOKです。

仮想マシン2台のクラスタを作成します。(★どちらか1台で実行してください)

pcs cluster setup --name mycluster cluster01 cluster02

これでcluster01ノードとcluster02ノードで構成される「mycluster」クラスタが作成されました。

次にクラスタを立ち上げます。。(★どちらか1台で実行してください)

pcs cluster start --all

立ち上がっているか確認しましょう。

pcs status

以下のように両方のノードがOnLineになっていればとりあえずOKです
f:id:hatek47320:20180205134531p:plain

〇VIPとApacheのリソース追加
pacemakerのリソースにVIPとApacheを追加します。
※リソース・・・pacemakerの監視対象にして、フェイルオーバー時に何もなかったのように動作させたいサービス群
★ここで注意いただきたいのですが、Apache(httpdサービス)を自動起動設定している人は、リソース追加する前に必ず停止し、自動起動もオフにしてください。
CentOS7では

systemctl disable httpd #httpdサービスの自動起動停止
systemctl stop httpd #httpdサービスの停止

これをしないと、pacemaker起動時にhttpdが立ち上がらなくなります。(私はこれでハマっていました)
さて、話を戻します。リソースは以下を参考に設定します。※私はIPやリソース名を変えています。
CentOS 7 : Pacemaker : リソースを追加する (httpd) : Server World
上記設定後にリソースが立ち上がっているか確認してみましょう

pcs status

f:id:hatek47320:20180205135611p:plain
VIPとWeb_Cluster(≒Apache)がcluster01で立ち上がっていることを確認できました。
また、これで設定したVIPで/var/www/html以下のファイルや、デフォルト設定の人はApacheのテストページにアクセスできるはずです。

〇その他
せっかくなので、cluster01から02に切り替えしてみましょう。

pcs status

以下の通りcluster01でリソースが動いています。
(これまでの手順で実施した場合、Group: Webという表示が違いますが無視して下さい)
f:id:hatek47320:20180205141751p:plain
cluster01のpacemakerをスタンバイ状態させます

pcs cluster standby cluster01

cluster02でリソースが動いています。VIP経由でも正しく接続できるはずです。
f:id:hatek47320:20180205142110p:plain