気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

PC作業効率化 Gmailでタイトルと宛先ありのテンプレートを作成できるChorme拡張機能

Chorme拡張機能のインストール

gmailのテンプレートが宛先、タイトルを保存できないため、以下のChrome拡張機能を使うと便利

アカウント登録が必要であるため、会社のメアドを保存したくない場合は、推奨できませんが。

chrome.google.com

設定、使い方

  • インストール後にメール作成、内容フィールド内で「Ctrl+space」、テンプレートを表示
  • sign inをする
  • メールtemplateを作成、タイトルや宛先はNew template画面の下の方の「show more fields▼」で追記
  • メール作成画面における 「Ctrl+space」で表示される、テンプレート一覧の最下部の「create template」からで作成画面に遷移できる

これで手軽にテンプレート作れて、定常的なメールをサクサクメール作成できます。
本当はslackのみでコミュニケーション取りたいけど、外部とのやり取りなどはまだまだメール使わないといけないので、しばらくお世話になります。

参考URL

画面見ながら設定したい場合は以下を見て下さい。

便利すぎるChrome拡張機能の紹介。Gmailのテンプレート・定型文登録ならGorgiasがオススメ - 日々のメモ帳 〜これでも社会人2年目〜

プロジェクトマネジメントの用語

プロジェクトマネジメントで出てくる用語の備忘録として記載してみます。

QCD

プロジェクト管理の3要素とも呼ばれており、Quality(品質)、Cost(原価)、Delivery(納期)という3つのゴールを定め、その目標に向かってプロジェクトをコントロールするというもの

上記ゴールを目指すだけではなかなか上手くいかない。
これを解決するプロジェクトの過程を管理する手法をまとめたのが、PMBOK

PMBOK

PMBOK(Project Management Body of Knowledge)とは、プロジェクトマネジメントに関するノウハウや手法を体系立ててまとめたもの

プロジェクトを管理するための管理対象、プロセスの段階、INOUT情報、開発効率化ツールについての幹となる情報が体系的にまとめれらている知識体系です。管理対象漏れをなくしつつ、今どの段階まで進んでいるか、それを円滑に進めるために各段階で何を優先して動くかなどが重要になってくると思います。

PMBOK自体の詳細な使い方があるわけではないので、抜け漏れなく管理対象を把握するという意味で使える気がしました。

10の知識エリア

QCDの3つ以外の要素として以下の管理する対象を明らかにしている。

「スコープ管理」、「要員管理」、「コミュニケーション管理」、「リスク管理」、「調達管理」、「ステークホルダー管理」 プラス全体管理として、「統合管理」が存在する。

f:id:tamata78:20201030140231p:plain

5つのプロセス

プロジェクトの最初から最後までの流れを「立ち上げ」、「計画」、「実行」、「監視・管理」、「終結」という5つのプロセスに分割したもの

プロジェクトフロー。流れの中で、管理対象を管理しつつ、ゴールへ導く。

f:id:tamata78:20201030140545p:plain

3つのパート

インプット情報、成果物、それを効率的に生み出すためのツールや開発手法

「入力」、「ツールと実践技法」、「出力」という3つのパートに分かれています。

f:id:tamata78:20201030141609p:plain

引用元

【第1章】PMBOKを理解しよう:PMBOK とは

Routing Tableの設定や使い方

VPN設定などで上手く接続できない場合に、明示的にルート設定する場合に
Routing Tableの設定を行ったりします。

開発者にはあまり馴染みがないですね。。

ドメインからIPアドレスを取得する

nslookupでIPを取得する
(nslookupはDNSをlookupするという意味でつけられたコマンドかな。。)

$ nslookup example.com

Server:     127.0.0.1
Address:    127.0.0.1#51

Non-authoritative answer:
Name:  example.com
Address: 93.184.216.34

同じようなコマンドで「dig」が存在する。こちらでも確認可能。

$ dig example.com
 
;; ANSWER SECTION:
example.com. 16 IN  A   127.0.0.1
example.com. 16 IN  A   127.0.0.3

記載IPは適当な数値。。

Routing Tableは2種類ある

ルーティングの作成方法は以下の二つがあります。

  • スタティックルーティング
    • 管理者が設定する方法。障害時は手動で設定変更が必要で煩雑になりがち。通信量は減らせる。
  • ダイナミックルーティング
    • ルーター同士が経路情報を交換し合って、動的に作成する方法。障害があっても経路自動更新が可能。だだし通信が絶えず発生する

Routing Table(スタティック)の設定

IP ルーティングテーブルを表示するには、ip route コマンドを使用する。

$ ip route
default via 192.168.122.1 dev ens9  proto static  metric 1024
192.168.122.0/24 dev ens9  proto kernel  scope link  src 192.168.122.107
192.168.122.0/24 dev enp1s0  proto kernel  scope link  src 192.168.122.126

静的ルートをホストアドレス、つまり 1 つの IP アドレスに追加するには、以下のコマンドを実行する。

$ ip route add -net 192.0.2.1 via 10.0.0.1

割り当てた静的ルートを削除する場合は以下コマンドを実行する。

$ ip route del 192.0.2.1

以下に注意してください。Red hatLinuxでの設定になります。

ip route を使用してルーティングテーブルに行った変更は、システムを再起動すると元に戻ります。静的ルートを永続的に設定するには、そのインターフェースの /etc/sysconfig/network-scripts/ ディレクトリーに route-interface ファイルを作成して、そこに設定できます。

4.4. ip コマンドでの静的ルートの設定 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

Ansible commandとshellモジュールの違い

モジュール概要

commandとshellモジュールの違いを簡単に記載します。

  • command
    • シェルを介さない
    • 環境変数($HOMEなど)や、 “<”, “>”, “|”, “;” などのパイプやリダイレクトは使えません。
    • ユーザ環境に依存せずにセキュアにコマンドを実行
  • shell
    • ユーザ環境変数や、パイプ・リダイレクトを使った処理を行いたい場合

モジュールを使った実装例

itemに挿入されている文字列のreplace_word1とreplace_word2を特定文字列に置換する処理を例に挙げてみます。

commnand

  command: "{{ item }}"
  with_items:
    - sed -i 's/{{ replace_word1 }}/{{ result_word1 }}/g'  "{{ directory }}/{{ base_file }}"
    - sed -i 's/{{ replace_word2 }}/{{ result_word2 }}/g'  "{{ directory }}/{{ base_file }}"

shell

ちょっといい書き方が思いつかず。。記載やめときます。

他のブログに書いてたこと

playbookを書く際には他のモジュールを調べた上で、どうしても他のモジュールでは記述できないときにだけ、このshell commandモジュールを使えばよいかと思います。

ansible commandとshellモジュールの違い - kakts-log

replaceとかlineinfileを使った置換の方が良さそうですね。

このあたりの理解は、また使う機会があったらもう少しちゃんと理解しようと思います。

別名のlog4jを読み込む方法

今となってはもっとモダンな書き方があるのかもしれませんが、 開発時に使った書き方について備忘録として残しておきます。

プロパティファイル読み込み

クラスパスの通ったresources以下にあるlog4jのプロパティを読み込む場合の記述方法です。

ClassLoader cl = AbstractBatch.class.getClassLoader();
URL url = cl.getResource("resources/mylog4j.properties");
PropertyConfigurator.configure(url);

PropertyConfigurator.configureによって、上記ですとlog4j設定ファイルが読み込まれて ログ設定が読み込まれた状態となります。

Maven ダウンロードが上手くできないJarを手動でインストールする方法

最初は以下よりjarをダウンロードして、ディレクトリ階層を作ったりしてましたが。。
Maven Repository: Search/Browse/Explore

Eclipsemavenビルド実行時のエラー分にmaven installコマンドの記載がありました。
これを実行して、出力先パスを指定すれば、適切なフォルダを作成しつつ、DLしてくれました。

mvn install:install-file -DgroupId=com.google.firebase -DartifactId=firebase-admin -Dversion=6.8.1 -Dpackaging=jar -Dfile=C:\myRepository

未来の自分がまた同じことをやる可能性もあるので、メモしておきます。

Git 修正コミットを一つにまとめてマージ

git rebase -i でできるコミットまとめをmergeするときにやるには以下のコマンドを使います。

git merge --squash staging
git merge --squash --allow-unrelated-histories staging # 紐づきがない履歴はマージできないと怒られたらこっち
  • 注意点
    • 初期コミットがないと怒られるので、2つ目以降のコミットとしてマージする
    • 紐づきがないブランチをマージするとマージしているけど、リビジョンの線が切れて表示される。もしかしたら、あまり推奨されない方法かもしれません。。