ゴミ捨て場

命を大事にしな

2018.12.16 振り返り

やったこと

読んだ

popotan322000.hatenablog.com


読み終わった

もうすぐ読み終わりそう。

かなり内容が辛くて途中で積んでしまっている。 一応最後まで目を通して感想だけは残すかも。せっかくお金払ったわけだし。

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

 

まだ4割しか読んでない読み進めるスピードが遅いのでサクサク読んでいきたい。

3.6.5 Documentation Python公式ドキュメントを読み始めた。知らないことだらけで反省している。

次週

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

 
  • 全然進められなかったのでちゃんとやっていきたい
  • Numpyを使ったパフォーマンス改善の部分を確認
エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

 
  • クラス以外のベストプラクティス・プロファイリング・高速化の章を確認
ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

 

3.6.5 Documentation

コンピュータはなぜ動くのか?知っておきたいハードウエア&ソフトウエアの基礎知識?

コンピュータはなぜ動くのか?知っておきたいハードウエア&ソフトウエアの基礎知識?

 

この辺読む。

ちゃんと寝たい

痩せるとか言ってる場合じゃないんだよ

ちゃんと寝ないと何も始まらないんだよ

目標

1ヶ月間睡眠時間6時間以上をキープする

行動

毎日0時に就寝する

何が就寝を促すのか

  • 眠いとき(疲れているとき)
  • 前日寝不足なとき
  • 意識が高い時
  • 何もしたくないとき

どんなときに就寝する気になれないか

  • 0時をすぎると1時でいいや、1時をすぎると2時でいいや、となりがち
  • ショックな事があったとき
  • 残業が長引いて家に帰ってきて何もする時間がないとき
  • SNSで言いたいことが出てきたとき
  • 時間がもったいないと思ったとき

何が就寝を阻害するのか

  • PC
    • 電源切るまでずっと起きている
    • 電源切る決断をするコストが大きい
    • 電源切ろうとするとなにかやるべきことがあるような気がしてきてしまう
  • Twitter
    • 一番やるのにエネルギーを必要としない
    • 他人への興味が出てくると見たくなる
    • 他の作業に夢中になっていると見なくなる
    • アニメを見ていたり音楽を聞いていると感想を報告したくなる
  • ゲーム
    • 周りでやってる人がいたらやりたくなることが多い
    • やったことのないものについつい手を出してドハマリするケースもある
    • かなり疲れる
    • 時間を忘れて夢中になるため、一番睡眠時間を奪う
  • 勉強
    • 意識が高くなったらやることが多い
    • それなりに疲れる
    • 時間を忘れて夢中になることもある
  • 締切のある作業
    • 疲れないけど何時だろうと思いだしたらやらないといけない
    • 精神的に「もう起きてていいや」のスイッチが入りやすくなる

対策

  • 家に帰ったら寝るまでにやることをメモか何かに書き出しておき、それをやる
  • 0時を過ぎたら1時でいいや、ではなく0時30分でいいや、と考えてみる
  • なるべく残業しないで早めに帰る
  • SNSで言いたいことは早めの時間に言って、夜には言うことがない状態にする
  • 締切に追われることがないようにGoogleカレンダーに締切のある作業について記録しておく
  • 疲れる行動をする(運動やゲームや勉強など)
  • 11:50にアラームをセットして、何かに夢中になっていても、もうすぐ0時であることに気づけるようにする

まんがで身につく続ける技術

まんがで身につく 続ける技術 (Business ComicSeries)

まんがで身につく 続ける技術 (Business ComicSeries)

 

読んだので以下要約。

Chapter1 行動とは何か

ABCモデル

続かない、挫折してしまう原因は「行動」に焦点があたっていないため。 行動科学マネジメントでは、どんな行動にも必ず理由があるとして、以下の3つの要素から成り立つとしている。 A→先行条件 B→行動 C→結果条件 これをABCモデルという。 ある行動が発生しやすい先行条件を整えれば、行動をコントロールできる

過剰行動と不足行動

コントロールしたい行動のことをターゲット行動と呼び、ターゲット行動は過剰行動と不足行動の2種類に分けられる。 不足行動には、それを阻害するライバル行動がある。 過剰行動の場合はそれが起きにくい先行条件を整え、不足行動の場合はそれが起きやすい先行条件を整え、ライバル行動の発生を抑えると良い。

環境を整える

ターゲット行動を明確にする。すなわち、何をするのか、過剰なのか、不足なのかを明確にする。 先行条件を考える。どんな環境になればターゲット行動が起きやすくなるか、起きにくくなるか。 ライバル行動も考え、対策を決める。

Chapter2 不足行動のコントロール

フロント行動リサーチ・アフター行動リサーチ

先行条件をリサーチすることをフロント行動リサーチと呼び、どんな時にターゲット行動を取りがちなのかを詳細に考える。 結果条件を詳細にリサーチすることをアフター行動リサーチと呼び、ターゲット行動を取ることでどんなメリットが有るのかを詳細に考える。 過剰行動がターゲットの場合は、行動後のメリットを何かに置き換える(チェンジ行動)ことで発生を抑えられる。

フロント行動リサーチシート(不足行動)

  • ターゲット行動
  • 発生する頻度、持続時間
  • どんな時に発生しやすいか
  • どんな場所で発生しやすいか
  • 誰がいる時に発生しやすいか
  • 発生する前に行う行動や出来事
  • 発生する前に周囲の人が言ったことや行動
  • どんな時に発生しにくいか

フロント行動リサーチシート(ライバル行動)

  • ライバル行動
  • 発生する頻度、持続時間
  • ライバル行動のために必要なエネルギー
  • どんな時に発生しやすいか
  • どんな場所で発生しやすいか
  • 誰がいる時に発生しやすいか
  • 発生する前に行う行動や出来事
  • 発生する前に周囲の人が言ったことや行動
  • どんな時に発生しにくいか

アフター行動リサーチシート(不足行動)

  • ターゲット行動
  • 行動後に生まれるメリット
  • 行動後の周囲の人の反応
  • 行動後、何かをしなくてよくなるか
  • ライバル行動
  • ライバル行動後のメリット

不足行動の発生をさらに増やすために

行動のヘルプ

行動の数を増やす助けとなる要素。 ライバル行動に対してはこれを除外するようにする。

動機づけ条件

行動に対するメリット。 ライバル行動に対してはこのこれを除外するようにする。

行動のハードルを低くする

毎日やるのを3日に1回に減らすなど。 ライバル行動はハードルが高くなるような環境を作る。

Chapter3 過剰行動のコントロール

フロント行動リサーチシート(過剰行動)

  • フロント行動リサーチシート(不足行動)と同一の内容

アフター行動リサーチシート(過剰行動)

  • アフター行動リサーチシート(過剰行動)と同一の内容
  • チェンジ行動

メジャーメント

メジャーメントとは行動がどれだけ増えたか、減ったかを計測すること。行動科学マネジメントでは先行条件を整えることより結果の方を重視する。

客観的にわかる定量的な表現にしなければならない。ここで思ったほどの結果が出ていないようならばリサーチし直す必要がある。

計測の期間を事前に定めておく必要がある。1週間、1ヶ月、3ヶ月という風にきかんを区切って計測する。

Chapter4 目標を達成する

ラストゴールとスモールゴール

行動を続けるのは目標があるため。その目標の設定の仕方として、ラストゴールとスモールゴールの2つを設定するとよい。

ラストゴールは最終目標。期限と数値を盛り込むこと。

スモールゴールは中間目標。ラストゴールへ近づいていくための目標となる。1年間で100万借金を返すとすれば、半年間で50万返す、3ヶ月で25万返す、といった具合。また、できるだけ低く設定する。高いと挫折しやすくなるため。

ゴールを定め、そのための行動を決め、その行動が発生する先行条件を整えるということが大切。

フィードバック

実践する中で目標の進捗を可視化することが重要。スマホや紙など何らかの手段で把握できるようにする。このときメジャーメント(行動の増減)も可視化しておく。

つまり目標のフィードバック(体重の増減の可視化)と行動のフィードバック(運動の回数の可視化)の両方を行っていく。

2018.12.9 振り返り

やったこと

  • Seabornの使い方を調べた。 qiita.com

  • jupyter notebookに拡張入れてnotebookをGistに投稿できるようにした。 github.com cartman0.hatenablog.com このへんを見て進めた。Gistへの投稿まで確認できた。 gist.github.com

  • VMとホスト間でなぜかクリップボードの共有ができていなかった問題に対処

    • 原因としてはGuestAdditionのバージョンがホストとゲストで一致していなかったこと
    • ゲスト側のGuestAdditionを削除(=CDドライブを削除)したら面倒な事態になった
    • 以下を参考にしてGuestAdditionを入れ直したらクリップボードの共有、ドラッグアンドドロップまでできるようになって完全に解決 berukann.hatenablog.jp
  • Boostnoteを使ってみることにした

読んでる本

The DevOps ハンドブック 理論・原則・実践のすべて

The DevOps ハンドブック 理論・原則・実践のすべて

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

まんがで身につく 続ける技術 (Business ComicSeries)

まんがで身につく 続ける技術 (Business ComicSeries)

Learn Better ― 頭の使い方が変わり、学びが深まる6つのステップ

Learn Better ― 頭の使い方が変わり、学びが深まる6つのステップ

果たして読み終える本はあるのか

次週に持ち越し

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

  • 研修に備えて足りてない部分の知識を整理しておく
  • 基本的に全部notebookで写経しながら進める

  • Numpyを使ったパフォーマンス改善の部分を確認

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

  • クラス以外のベストプラクティス・プロファイリング・高速化の章を確認

2018.12.2 振り返り

やったこと

AWS

popotan322000.hatenablog.com

 

popotan322000.hatenablog.com

やった。

機械学習

その他

  • zube.ioで作業管理を始めた

反省点

  • 何をするか迷う時があったので、優先度をきっちり決めて進めたい

次の計画

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

 
  • 研修に備えて足りてない部分の知識を整理しておく
  • 基本的に全部notebookで写経しながら進める

-Numpyを使ったパフォーマンス改善の部分を確認

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

 
  • クラス以外のベストプラクティス・プロファイリング・高速化の章を確認

qiita.com

  • seabornの基本的なインタフェースを確認

AWS無料枠使ってRedmine立てて公開した 後編(Redmine構築編)

前編はこちら。 popotongue7.hatenablog.com

目的に対する結果

  • とりあえずAWS使うとなった時にやるべきことを確認する
    • 多分確認できた。
  • 無料枠で何かやった気分になる
    • ある程度はなった。
  • VPC、EC2、RDSを使ったWebサーバ構築、公開の手順を一通り覚える
    • 覚えた。
  • あやふやなまんまなネットワーク知識を最低限整理する
    • DNSDHCPはまだよくわかってないけどサブネットの作成、ルートテーブルやセキュリティグループの設定あたりは理解できた。
  • 何が無料でできるのかを把握する
    • EC2、VPC、EIP、RDSあたりは把握した。
  • Redmineで(可能ならスクラムの手法を利用して)普通に作業を管理できるようにする

Redmine構築手順

作業アカウントについて

  • うまくいかなかった(というかめんどくさくなった)原因については途中までec2-userでsudoつけて実行していたのを途中でrootに切り替えてやるようになったということだった。
  • 最初からrootでやるべきだった。
$ export ORIG_PATH=$PATH
$ sudo -s -E
$ export PATH=$ORIG_PATH

SELinuxの無効化、ファイアウォールの設定

EC2の初期設定

とりあえず以下などを参照しつつ必要そうなものだけ実施。 qiita.com

必要なパッケージのインストール

開発ツール(Cコンパイラ等)のインストール

yum -y groupinstall "Development Tools"

groupinstallとかいう便利なコマンドがyumにはあるんだなあと感動した。

RubyとPassengerのビルドに必要なヘッダファイルなどのインストール

yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel

PostgreSQLとヘッダファイルのインストール

yum -y install postgresql-server postgresql-devel

Apacheとヘッダファイルのインストール

yum -y install httpd httpd-devel

ImageMagickとヘッダファイル・日本語フォントのインストール

yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts

このあたりは特に問題なく。

Rubyインストール

  • 公式ドキュメントにはソースコード取得、ビルド、インストールの手順があったがうまくいかず。
  • Amazon Linux 2にはamazon-linux-extrasというリポジトリがあり、ここにあるパッケージはamazon-linux-extras install hogehogeでインストールできる。
  • Rubyもあったのでそれを利用し、インストール成功。
amazon-linux-extras install ruby2.4

bunlerインストール

gem install bundler --no-rdoc --no-ri

ドキュメントのインストールをスキップするオプションを付けている。

postgresql側の設定

  • RDSですべて設定済みなのでスキップできると思っていたが、そうでもないことに気づく。
  • 一応psqlでログインして\lしたところ、ロケール(照合順序とCtype)がen_US.UTF-8になっていたので、ja_JP.UTF-8に変更する必要があった。
  • 一旦使用予定だったDBを削除し、同一名称でDBを再作成した。
postgres=> CREATE DATABASE redmine_postgres LC_COLLATE 'ja_JP.UTF-8' LC_CTYPE 'ja_JP.UTF-8' ENCODING 'UTF8' TEMPLATE template0;

Redmineソースコード取得

  • 以下のコマンドでは取得できなかった。
svn co https://svn.redmine.org/redmine/branches/3.4-stable /var/lib/redmine
production:
  adapter: postgresql
  database: DB名(自分の場合はredmine_postgres)
  host: ホスト名(RDSダッシュボードからRDSのエンドポイントを確認する)
  username: DBユーザ名(RDS作成時に指定したユーザ名、普通はrootかな?)
  password: "******"
  encoding: utf8
  • 設定ファイル config/configuration.yml の作成
    • メールサーバへの接続設定などを記述するが今回はメール配信は不要だったのでスキップ。

gemパッケージのインストール

  • 以下のコマンドでインストール(できたはずだがうまくいかなかった気がする、しかしよく覚えておらず)
bundle install --without development test --path vendor/bundle
  • セッション改ざん防止用秘密鍵の作成
bundle exec rake generate_secret_token
  • データベースのテーブル作成
RAILS_ENV=production bundle exec rake db:migrate
  • デフォルトデータの登録
RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

このあたりは何事もなく進んだ。

Passengerのインストール

  • Apache上でRedmineなどのRailsアプリケーションを実行するために使われるPhusion Passengerをインストール
gem install passenger -v 5.1.12 --no-rdoc --no-ri
  • PassengerのApache用モジュールのインストール
passenger-install-apache2-module --auto --languages ruby

Apache用設定内容の確認

  • 下記コマンドを実行するとApacheに追加すべき設定が表示される。この情報はこの後Apacheの設定を行うときに使用する。
passenger-install-apache2-module --snippet

Apacheの設定

  • /etc/httpd/conf.d/redmine.conf の以下の箇所を修正
# Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。
# Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。
<Directory "/var/lib/redmine/public"> # {インストールディレクトリ/publicを指定}
  Require all granted
</Directory>

# Passengerの基本設定。
# passenger-install-apache2-module --snippet で表示された設定を記述。
# 環境によって設定値が異なるため以下の5行はそのまま転記せず、必ず
# passenger-install-apache2-module --snippet で表示されたものを使用すること。
#
LoadModule passenger_module /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.5/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.5
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

Apacheの起動および自動起動の設定

  • 下記コマンドを実行し、Apacheを起動するとともにシステム起動時に自動起動されるよう設定。
systemctl start httpd.service
systemctl enable httpd.service

Apache上のPassengerでRedmineを実行するための設定

  • Redmineを配置したディレクトリ以下のファイルを、Apacheを実行するユーザー・グループ(CentOSの場合はいずれも"apache")で読み書きできるよう、オーナーを変更する。
chown -R apache:apache /var/lib/redmine

Apacheのコンフィグファイル(/etc/httpd/conf.d/redmine.conf)の設定

  • サブディレクトリでredmineを実行したい(他のアプリも実行できるようにしたい)場合は以下のように設定する。
Alias /redmine /var/lib/redmine/public
<Location /redmine>
  PassengerBaseURI /redmine
  PassengerAppRoot /var/lib/redmine
</Location>

実行

service httpd configtest
systemctl restart httpd.service

反省点

  • 色々ハマったところがあったけどちゃんとメモらずに作業を進めてしまった
  • 以下について何の知識もないままだったので復習しておきたい
    • gem
    • bundler
    • Apache
    • Passenger
  • こういう記事初めて書いてみたけど、手順のコピペみたいになってるのでもうちょっとうまく書けるようになりたい

次は

  • 今回やったような作業を可能な限り自動化してやってみる
  • S3、EFS使って何かしたい