読者です 読者をやめる 読者になる 読者になる

雀巽の日記帳

雀巽が綴る日常の記録

Happy New Year 2017

あけましておめでとうございます。

昨年はありがとうございました。 今年もよろしくお願いします。

それでは、今年もまずは簡単に2016年を振り返りたいと思います。

necojackarc.hatenablog.com

去年のブログによると、2016年の目標は、

だそうです。

とりあえず一つずつ振り返ってみます。

英語

大学時代、英語が最も苦手な科目であり、英語で留年した*1と言ってもある意味過言ではないのですが、2016年は継続的に頑張りました。

necojackarc.hatenablog.com

最終的に TOEIC のハイスコアは870点まで伸びました。

また、オンライン英会話も継続的に行っており、調べてみたところ現時点で468回受講しているようです。

ただ、伸び悩みを強く感じるようになってきたので、今年は何かを変えないとダメだなと思います。

競技プログラミング

競技プログラミング全くしてない\(^o^)/

これは興味が「コンピューターサイエンス」から「ソフトウェアエンジニアリング」に盛大に推移したのが原因です。

競技プログラミングというか、データ構造とアルゴリズムについては、自分の弱いところだなという認識もあるので、 どっかのタイミングでテコ入れしたいなとは考えていますが、どうも後回しになっています。

その代わりに優先した IT 周りのこととして、

などの、Web サービスの設計や開発で重要になる技術が挙げられます。

健康

ここ数ヶ月は生活リズムが非常に安定してきており、いい感じです!

ただ、健康診断で尿酸値アウトだったり痔瘻になったりしたので、微妙な感じです。

やっぱりいちばん重要なのは健康だと思うので、まずは食生活と睡眠リズムを安定させたいです。


目標を基準に振り返ってみましたが、なんとも微妙な達成率……。

次はさっくり時系列順に振り返ってみます。

去年のブログを見ると、

2016年は地力を底上げする成長の年にしたいなと思います。

と書いてあるのですが、これは達成できたかなと思います。

2016年は新規事業を任されたおかげで、学びと実践を繰り返し行えたのが非常に良かったです。

2015年は変化、2016年は成長ときたので、2017年は何か大きな挑戦ができたら良いかなと思います。

現時点で何に挑戦するかは特に決める気はありませんが、何か挑戦したと言える、そんな年にしたいです。

というわけで、2017年の指針は、

  • 挑戦
  • 英語
  • 健康

にしたいと思います。

加えて2015年のブログに、

将来の自分が過去の自分に向かって胸張れる存在になれるようにマイペースに生きていきたい

とありますが、この方針はもちろん変更なし!

あと、イチロー選手の『小さいことを積み重ねるのが、とんでもないところへ行くただひとつの道』という言葉が強烈に頭に残ってるので、 これも今後の方針としてきっちり組み込んでおきたいと思います。

それでは2017年、楽しんで行きましょう!

*1:フランス語にも殺されました

ぜひ読んでもらいたいオススメ書籍一覧

随時更新します。

一番のオススメ

プログラミング

Web サービス

データベース

ネットワーク

組織・チーム

思考

ビジネス

英語

エンジニア読み物

音楽

関連記事

「部下育成の教科書」を読んだ

「部下育成の教科書」を読みました。

部下育成の教科書

部下育成の教科書

一言で言うと「それぞれのステージに応じた仕事の任せ方、アドバイス、フィードバックをしよう」という話でした。

まず、本書ではざっくりステージを以下のように定義しています。

一般社員層

  1. スターター (Starter / 社会人)
    • ビジネスの基本を身につけ、組織の一員となる段階
  2. プレイヤー (Player / ひとり立ち)
    • 任された仕事を一つひとつやりきりながら、力を高める段階
  3. メインプレイヤー (Main Player / 一人前)
    • 創意工夫を凝らしながら、自らの目標を達成する段階
  4. リーディングプレイヤー (Leading Player / 主力)
    • 組織業績と周囲のメンバーを牽引する段階

マネージャー(管理職層)

  1. マネージャー (Manager / マネジメント)
    • 個人と集団に働きかけて、組織業績を達成しながら変革を推進していく段階
  2. ディレクター (Director / 変革主導)
    • 対立や葛藤を乗り越えながら、変革・改革を起こし、組織の持続的成長を実現する段階
  3. ビジネスオフィサー (Business Officer / 事業変革)
    • 戦略的な資源配分を通じて、自ら描いた事業構想を実現する段階
  4. コーポレートオフィサー (Corporate Officer / 企業変革
    • 社会における自社の存在意義を絶えず問い直し、自社の進路を決める段階

スペシャリスト (管理職層)

  1. エキスパート (Expert / 専門家)
    • 高い専門性を発揮することを通じて、組織業績と事業変革に貢献する段階
  2. プロフェッショナル (Professional / 第一人者)
    • 卓越した専門性を発揮することを通じて、事業変革に道筋をつける段階

これらのステージは段階的に登っていくものであり、飛び級は基本的にないと書かれていました。

そして、これらのステージに応じた「仕事の割当、支援、評価」をするべき、というのがこの本の骨子です。

加えて、ステージを登るのは大きな転換であり、仕事のやり方や価値観、モノの捉え方そのものなどを大きく変える必要がある、とのことです。

単なる延長ではなく、価値観や視野を変える必要がある大きな転換であるため、ステージを登るのは大変だそうです。

伸び悩みというのは、このステージの移行(トランジション)がうまくいってない状態とも書かれており、 このトランジションをいかにサポートできるかがマネージャーの育成能力、という感じでした。

さらに、チームメンバー同士がこのトランジションを促進しあうチームを作れるというのも重要です。

なかなか、シンプルでわかりやすいなと思います。

個人的にいいなと思ったのは、トランジションという概念でした。

ここでのこの言葉の出典は、ウィリアム・ブリッジズの『トランジション』で、

と言ったものです。

また、

「終わり」は、自分を取り巻く環境や状況が変化する中で、うまくいっていたことがうまくいかなくなることから始まるといいます。 これまでの安定が崩れ、失うものに対する恐怖心がわき、不安定な状態になるのです。 そして「ニュートラル・ゾーン」は喪失・空白の時期であり、喪失感や空虚感を素直に受け止め、耐える時期としています。 それは暗闇を手探りで進むようなものですが、次の「始まり」のために、内的な方向づけをする大切な時間だといいます。

と解説されています。

うちの社長がよく「憂鬱でなければ、仕事じゃない」という言葉を引用するんですが、 これも「トランジションを経ないと、成長しないよ」と、捉えれるなと思いました。

もう少し狭い話ですと、新しいライブラリやフレームワークデザインパターンを使うときでも、 確かに「終わり、ニュートラル・ゾーン、始まり」みたいなのがあるなと感じ、 成長したり何か新しい世界に入るときには、このトランジションを経るのだろうと思いました。

端的にまとめると、その人の現在の状況に適したマネジメントを行うこと、 トランジションは苦しいが成長のためには必要なこと、これらを念頭においておくと良いと思います。

トランジションを知っているだけで、心が折れることも少なくなりそうです。笑

なかなかおもしろい本でした。

『部下を持ったら必ず読む「任せ方」の教科書』を読んだ

『部下を持ったら必ず読む「任せ方」の教科書「プレーイング・マネージャー」になってはいけない』を読みました。

端的にいうと素晴らしい本でした。

部下を持ってなくても、人と協力して何かを行う機会がある人は読んでおいて損はないです。

つまり、ほとんどの人は何らかの学びや気付き、もしくは自分の考えに深みを出すための何かがあると思います。

メインの「任せ方」に関する要点は、

  • 人間の能力と時間の有限性を理解すること
  • 各々がスムーズに動けるようにすること
  • 「長所」と「短所」がトレードオフだと理解すること

あたりかなと捉えました。

この辺を理解していると、タスクを抱え過ぎたり、無茶振りしたり、不適当な教育をしたりといったことが減ると思います。

それに加えて「多様性がある組織は強い(同質化した組織は弱い)」ということも、常に念頭に置く必要がありそうです。

また、精神論を振りかざさないという話題の中で、

  • 「働けば働くほど、生産性があがる」と考える人が居るが、科学的根拠はなく、むしろ「短時間に集中して取り組んだほうが、労働生産性は向上する」
  • あらゆる医学的根拠が「若い人であっても、長時間労働すると、注意力や生産性が低下する」

ということが書かれていたのですが、これはぜひ全員に知ってもらいたいです。

これについては、本当に自分の考え方と一致していたので、今度から積極的に引用していきたいと思います。

また、

  • インプット(人・本・旅)を増やし、洞察力を育てる(適材適所を実現させるためには洞察力が必要不可欠)
  • 世代ごとに「違う音符」を持っている(60代に、20代、30代の考えは「わからない」)
  • ロサダの法則(人は、「褒める」と「叱る」の割合が「3:1」でないと、ポジティブな気持ちを保てない)

といったことが印象に残りました。

内容と直接関係は無いのですが、本を通して、ライフネット生命 CEO 出口さんは、本当に絶えず学び変化してきた人なんだと感じました。

柔軟であり続けること、変化に適応し続けることは本当に重要なので、ぜひ見習いたいです。

非常に読みやすい良書ですので、ぜひ読んでみてください!

"Web API: The Good Parts" を読んだ

"Web API: The Good Parts" を読みました。

Web API: The Good Parts

Web API: The Good Parts

一言で言うと Web API 設計時に考慮すべきことと良い見本が詰まった本 でした。

個人的にはエラーの表現方法、レスポンスヘッダ(HTTP の仕様に即したメタデータや Content-Type の扱い)、運用面の話が印象に残りました。

エンドポイント (URI) 設計については良くやっているので「せやな」と思いながら読み進めていたんですが、 SSKDs 向け(というかほぼ自分向け)の Web API しか作成したことがなかったので、LSUDs 向けのレスポンス設計や運用面の話はかなり学びが多かったです。

また、Web API 設計時に HTTP の仕様や制約をどう活用するかという話も非常に良かったです。

例えば、バージョン情報や独自ヘッダを Content-Type で表すのは HTTP の仕様上は美しいが、 クライアントとしては不便になることがあるなど、 仕様上の美しさと利便性のトレードオフを考えないといけない点などが印象に残りました。

運用面では Web API バージョニング(廃止)の話で取り上げられていた Twitter が実際に行った Blackout Test はなかなか参考になりそうだなーとも思いました。 あと、バージョニングはセマンティックバージョニングのメジャーバージョンだけを指定すれば良いようにするのも、なるほど確かに、という感じでした。

リソース指向の Web API の上にオーケストレーション層を載せる話も出てきました。

thenextweb.com

オーケストレーション層を作ったことはありませんが、こうすると良いよなぁとは思っていたので、 JSON を吐く機械になれる機会があればチャレンジして見ようと思います。

Web サービス開発に関わるは読んでおいて損はないと思える本でした。

「語源でわかった!英単語記憶術」がとても面白かった

「語源でわかった!英単語記憶術 」を読みました。

語源でわかった!英単語記憶術 (文春新書)

語源でわかった!英単語記憶術 (文春新書)

語源について書かれてる本は多いですが、これは「印欧祖語」の「原音」まで遡って解説してる点が良いなと感じました。

あまりたくさん読んではいませんが、他の語源関係の本だと、 単に接尾語、接頭語、語幹の羅列になっているタイプのものが多い印象です。

個人的にはこちらの「原音まで遡る」というアプローチが非常に身体に合いました。

読むのは結構大変でしたが、かなり多くの発見があり良かったです。

何度読み返しても学びがある系の本だと感じるので、ちょいちょい読み直したいなと思います。

とても面白く、良い本です。

Windows の初期設定をまとめたよ

MacBook Air をさよならバイバイして、Dell XPS をゲットしたので、Windows の初期設定についてまとめてみます。

  • 必須アプリ
  • キーボード設定
  • 日本語設定
  • 開発設定
  • MISC
  • おわりに

必須アプリ

上記インストール後、Search the web and Windows から Default Programs の設定を開き、

に変更する。

キーボード設定

CapsLock

Ctrl2cap を利用し、CapsLock を Ctrl に変更する。

キーリピート

Control Panel -> Keyboard で Keyboard Properties を開き、Speed の Repeat delay を最短に、Repeat rate を最速にする。

日本語設定

日本語表示

Control Panel -> Clock, Language, and Region -> Change location -> Administrative と開き、 Language for non-Unicode programs を Japanese (Japan) に変更する。

日本語入力

まずは Google 日本語入力を導入する。

次に Control Panel -> Clock, Language, and Region -> Change input methods を開き、Google 日本語入力が追加されてなければ追加する。 ストア等の言語を英語のままにするため English (United States) をプライマリのままにしておく。

次に Options から Google Japanese Input の設定を開き、MS-IME の Keymap style に以下のキーマップを追加する。

Mode Key Command
DirectInput Ctrl Space Activate IME
Precomposition Ctrl Space Deactivate IME

これで macOS と同様の操作で IME の ON/OFF の切り替えが可能になる。

最後に、Control Panel -> Change input methods -> Advanced settings の Override for default input method を Japanese - Google Japanese Input に変更し、デフォルト IMEGoogle 日本語入力に変更する。

開発設定

CLI 環境

Git は導入済みなので、ここを参考に Github の設定を行う。

./ssh/config は以下のように設定する。

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github/id_rsa

そして necojackarc/dotfiles を README に従い導入する。

Linux

Windows での Linux ライクな開発は諦め、VMWare Player 上に openSuseXfce で導入する。

以下の公式サイトから必要なモノをダウンロードし、インストール

デフォルトだと OneDrive 以下の Documents に Virtual Machines\openSUSE を作ろうとしてくるので、忘れずホーム以下に Virtual Machines\openSUSE として保存するようにインストール時に変更する。

ディスクは Store virtual disk as a single file とし、サイズ上限は推奨値の 20GB にした。 Customize Hardware では Hardware requirements を参考に、Memory は 2048MB、Processors は 2 とした。

openSUSE のインストール中に VMware が親切にも VMware Tools for Linux をインストールできるよと教えてくれたので、こちらもインストールする。

インストール後、またもや親切にも VMware tools のアップデートがあるよと教えてくれたので、アップデートを実行する。 VMware は常に新設で、アップデート方法は画面に表示されてる HELP に飛べば見ることができた。 正直色々と VMWare のことはよくわかってないので、これについてはとりあえず全部デフォルト値で入れておいた。

ネットワーク設定

VMWare のネットワーク設定は NAT (おそらくデフォルト値) にしておく。

まずはゲスト側の IP アドレスを固定にする。

ゲストに入り ifconfig を叩き、現在の MAC address と IP を確認後、C:\ProgramData\VMware\vmnetdhcp.conf を admin 権限で開き以下の通り Host を追加。

# openSUSE
host VMnet8 {
    hardware ethernet 00:0C:29:08:96:8F;
    fixed-address 192.168.221.128;
}

次に C:\ProgramData\VMware\vmnetnat.conf を admin 権限で開き必要な Port Forwarding Rules を追加する。

具体的には以下のように、[incomingtcp] に設定を追記する。

[incomingtcp]
:
# openSUSE
1080 = 192.168.221.128:1080
3000 = 192.168.221.128:3000
3002 = 192.168.221.128:3002
8080 = 192.168.221.128:8080

3000 は Rails、3002 は browser-sync、1080 は MailCatcher、8080 は Webpack dev server で使用している。

2ファイルの編集が完了したら、

を Services から restart し、反映させるためにゲスト OS を reboot する。

次に openSUSE 側で YaST -> Security and Users -> Firewall を開き、Disable Firewall Automatic Starting を設定し、Firewall を無効化する。

これで、それぞれ以下の方法でゲスト側でアプリケーションを起動すれば、ホスト側から localhost:PORT としてアクセスが可能になる。

  • Rails
  • MailCatcher
    • mailcatcher –ip=0.0.0.0

参考

キーリピート

  • Repeat delay: 300
  • Repeat speed: 80

解像度 (DPI)

Windows 側の DPI スケーリング (画面拡大率) が Virtualbox 内の OS には反映されないため直接設定を変更する。 XPS 13 では 150% が推奨値かつデフォルト値だったが、流石にでかすぎるので 125% に変更した。

調べたところ、

  • 小-100%(96 DPI)
  • 中-125%(120 DPI)
  • 大-150%(144 DPI)

Windows の基本数値らしい。

Menu -> Settings -> Settings Manager -> Appearance -> Fonts を開き、Custom DPI setting を有効にし、Windows 側に合う数値を設定する。

ただ、普段は外部モニタで作業しているので、基本は無効にしている。

日本語入力

Fctx-mozc を Fcitx - openSUSE に従い、以下のコマンドでインストール後、再起動する。

$ sudo zypper install fcitx-mozc

再起動後、右下のキーボードアイコンから Input method に Mozc を追加する。

これで Ctrl + Space で日本語入力へのトグルでの切り替えが可能になる。

CLI 環境

ターミナルは Xfce デフォルトの Xfce Terminal を利用する。 最初からまともな Terminal があり、Windows と違ってここで消耗しない素敵。

開いたら Preferences を開き Colors の Presets から Solarized (dark) をロードする。Solarized 最高。

フォントは Appearance -> Font から Monospace / Regular / 11 とした。 フル HD モニタで Vim を垂直分割した際にほぼちょうど横幅が100文字になりいい感じ。

そして必要なツール一式を以下の通り導入。

$ sudo zypper install make gcc git tmux xsel gvim

Git を導入後、再度ここを参考に Github の設定を行う。

./ssh/configWindows と同様に設定。

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github/id_rsa

そして necojackarc/dotfiles を README に従いぶち込み設定完了。

MISC for Windows

MISC for openSUSE

おわりに

System => System protection => Create からシステムの復元ポイントを作成しておく。 Description は “Just after initialization” とでもしておくと、あとでわかりやすくて良い。

関連記事

necojackarc.hatenablog.com

関連画像