My Tracking

My Tracking

記憶力の低下が気になるアラフォー男の備忘録

司馬遼太郎『新史 太閤記』(司馬戦国作品マイベスト!)

目次

はじめに

私は歴史小説をくまなく読んでる人ではないものの、時より無性に歴史小説を読みたくなる時期が定期的にやってきます。。 父親の影響で、以前は池波正太郎を読んでた時期はあったものの、学生時代は、司馬遼太郎一辺倒となり、以来数年おきに「司馬遼太郎が無性に読みたくなる!」を定期的に繰り返してまいりましたが、昨今のコロナの影響で、自宅で過ごすことが多くなってからは、もう一度司馬作品を読んでみようかと思っております。

司馬作品のおすすめ

まあ、私のようにあんま詳しい前提知識はないけどって人でも、読みやすいもので選べば以下のあたりでしょうか。

幕末~近現代の時代にかけた名作ですね。が、「燃えよ剣」以外は何といっても、超がつく大作。なものんで、久しぶりの司馬作品としてはできれば、2巻~4巻ぐらいで終わるやつって感じで日和った読書をしたいので、とりあえず、戦国三部作を選び、読んでみます。

司馬遼太郎戦国三部作

私のような俄かファンが言わなくても以下の通りですね。有名ですね。

f:id:lshi46:20200725004446j:plain

国取り物語、関ヶ原のほうが有名だと思いますが、個人的には文句なしで「新史太閤記」がマイベスト!!です。 その理由はつらつらと書かせていただきます。(あくまで私見です)

①上下巻で終わる。

これ、私的に意外に大事です。

司馬作品はデフォルト文庫本で4巻程度、長くて10巻程度行きますが、これ、根気強く読むのに結構集中力いります。 根っからの読書マンであれば、そんなことと思うかもしれませんが、とりあえず、私のようなライト読書マンは この程度が丁度いいのです。1週間程度で読めるので集中力も切れない程度です。

②読みやすい。

司馬作品は、意外に読んでてつらい、いいかえると作品に入り込めないって場合があります。 それは、その内容の前提知識が私の中で乏しいような場合がほとんどなので、読み手である私の問題ったら問題なのですが、 とにかくそういう場合があります。具体的にいえば、「国取り物語」の前半あたりや、「飛ぶが如く」あたりでしょうか。

逆に前提知識も必要なく、最初からガンガン入り込める作品もあります。それは私的には、「燃えよ剣」、「竜馬がゆく」、そして、 この「新史 太閤記」が該当します。

これは感覚的なことになりますが、とにかく理由なく読みやすいのです。

③オールスターキャストである。

「新史 太閤記」は平たく言えば、豊臣秀吉の成り上がり物語ですが、その過程で、登場するキャストが何といっても、華があります。 織田信長徳川家康黒田官兵衛前田利家、その他、どれも主役級を張れる人たちが、がんがん登場し、どれも良くも悪くも魅力ある形で描かれています。

④上司信長の存在感

豊臣秀吉の上司、織田信長がエグいです。 頭キレキレ、パワハラ上等!、大将たる存在感を存分に見せつけます!

平たく言えば、 「者ども!、俺の言うことしっかり聞けや!。くどくど俺に説法など説く輩はマジでぶちのめすぞ!」って感じでしょうか。

この空気を絶妙に読むのが秀吉で、さらに秀吉の明るさも手伝って、それほど信長が嫌な奴には感じず、むしろカッコよく感じるから不思議です。 一方、この空気をいまいち読めないのが「国取り物語」で描かれる明智光秀で、信長に幾度となく逆切れされます。

信長のえげつなさを、中和できた陽気な秀吉に対し、生々しくしてしまったまじめな光秀の違いでしょうか、 個人的には、「国取り物語」で描かれる織田信長より、「新史 太閤記」での織田信長のほうが好きです。

⑤秀吉の魅力

最後はなんといっても、主人公の「人たらし」たる秀吉の魅力ですね。

成り上がるために、政略、調略、武略の限りを尽くしますが、 なんといっても、男の嫉妬をかわすための人間力、根回しが絶妙です。

これは、時代を超えて、サラリーマン社会でも通用するはずです。

最後は、家康と和睦するところで終わります。天下統一後のことはさらっとも描かれません。

天下統一後、秀吉は晩節を汚したともいわれますが、その辺りは作品でも完全にスルーされてます。 最後まで、秀吉がいい奴で終わるように、おそらく意図的なものであったかと思います。

私的には、家康と和睦のラストシーンが最も好きで、別に泣くとこではないのですが、 「秀吉!なんていい奴!!」って感じで、泣きそうになります。

新史 太閤記(上)(新潮文庫)

新史 太閤記(上)(新潮文庫)

新史 太閤記(下) (新潮文庫)

新史 太閤記(下) (新潮文庫)

そんな、天下統一を果たした豊臣家ですが、それから数十年後、大阪城もろとも家康に葬られます。 司馬作品的には、「城塞」に描かれますが、豊臣側のダメっぷりに「あの世で秀吉が泣いてるぞ!」と叫びたくなります。

城塞(中)(新潮文庫)

城塞(中)(新潮文庫)

城塞(下)(新潮文庫)

城塞(下)(新潮文庫)

新たなツールの導入を提案すると・・

ある管理プロセスの改善に、新たなツール導入を提案する際に必ず浴びせられる言葉。

  • ツールありきになっていないか。
  • ツールの導入が目的化していないか。

言っていることはわかるが、その後できあがるのが、 ごりごりのExcel管理による人力+非効率の管理プロセスというのはどういうことだろう。

そして、誰も新たなツール導入を提案しなくなり、Excel管理がさらに蔓延していく、 負のスパイラルが半端ない。

しかし、「効率よく仕事をしなさい」とだけは言われる不思議。

【Redmine】docker環境でのバックアップとリストア

docker環境上に構築されたRedmineのバックアップとリストアについての備忘録。

目次

環境の前提としては、以下の通り。

  • dockerのバージョンは、以下を利用。
[root@docker ~]# docker -v
Docker version 1.12.6, build 96d83a5/1.12.6
[root@docker ~]#
/srv/docker/redmine/mysql
/srv/docker/redmine/redmine

バックアップ対象とするファイル

以下の記事の通り、

データのバックアップ方法 — Redmine.JP

以下をバックアップするものとする。

テストデータの登録

バックアップとリストア前に、テストデータを登録しておく。

バックアップとリストア前に、テストデータ用のチケットと

テストデータ用のナレッジ(添付画像付き)をあらかじめ登録しておく。

MySQLのバックアップ

以下のコマンドでMySQLのバックアップを実行する。

[root@docker ~]# docker exec -it mysql-redmine mysqldump -uroot redmine_production -v -r /var/lib/mysql/redmine.dmp

バックアップのファイルが作成されている(ここでは、「/srv/docker/redmine/mysql/redmine.dmp」)ことを確認する。

[root@docker ~]#  ls -l  /srv/docker/redmine/mysql/redmine.dmp
-rw-r--r-- 1 root root 109637  13 22:01 /srv/docker/redmine/mysql/redmine.dmp
[root@docker ~]#

Redmineのfilesディレクトリのバックアップ

Redmineのfilesディレクトリ「ここでは、「/srv/docker/redmine/redmine/files」)をコピーしておく。 コピー先は、ここでは「/home/ment/backup/files」とする。

[root@docker redmine]# pwd
/srv/docker/redmine/redmine
[root@docker redmine]#
[root@docker redmine]# ls -l
合計 0
drwxr-xr-x 2 ment ment   6  614  2017 backups
drwxr-xr-x 4 ment ment  37  614  2017 dotfiles
drwxr-xr-x 3 ment ment  18 1218 23:23 files
drwxr-xr-x 2 ment ment   6  614  2017 plugins
drwxr-xr-x 2 ment ment   6  614  2017 themes
drwxr-xr-x 5 ment ment 114  614  2017 tmp
[root@docker redmine]#
[root@docker redmine]# cp -r files /home/ment/backup
[root@docker redmine]#

テストデータの削除

バックアップしたデータのリストア前にテストデータをいったん削除する。

まず、テスト用のチケットを削除する。

テスト用のチケットが削除された。

次に、テスト用のテストデータ用のナレッジ(添付画像付き)を削除する。

テストデータ用のナレッジ(添付画像付き)が削除された。

Mysqlのリストア

実際に、Mysqlのバックアップファイルからのリストアを下記のコマンドで実行する。

[root@docker redmine]# cat /srv/docker/redmine/mysql/redmine.dmp | docker exec -i mysql-redmine  /usr/bin/mysql -u root redmine_production
~この環境では、実行後、30秒程度でプロンプトが戻る~
[root@docker redmine]#

Mysqlのリストア後の確認

テスト用のチケットがリストアされる。

テストデータ用のナレッジ(添付画像付き)もリストアされたが、この時点では画像がリストアされていない。

Redmineのfilesディレクトリのリストア

Redmineにアップとロードされた画像をリストアするために、 予め、バックアップしたfilesディレクトリを以下のようにコピーし、リストアする。

[root@docker redmine]# cp -r /home/ment/backup/files/ /srv/docker/redmine/redmine/

テストデータ用のナレッジ(添付画像付き)が画像も含めて、リストアされたことを確認する。

【Redmine3.3】python_redmineでcsvファイルからチケット一括登録する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。

今回は、REST APIを操作するpython_redmineの学習を兼ねて、 python初心者なりに、csvファイルからのチケット一括登録機能の作成をしたため、その備忘録

目次

参考サイト

以下のサイトを大いに参考にした。

qiita.com

https://www.yamamanx.com/redmine-rest-api-redmine_python/

参考書籍

以下の書籍に、APIに関しての記述があったため、参考にした。

入門Redmine 第5版

入門Redmine 第5版

インプット用のcsvファイルの仕様

  • 以下のようなフォーマットで、チケット登録に必要にデータを作っておく。

csvファイルからチケット一括登録プログラム(import_redmine.py)

  • 以下のように、 csvファイルからチケット一括登録プログラムを作成する。なお、実行するpythonのバージョンは下記の通り。
[root@docker python]# python -V
Python 2.7.5
[root@docker python]#

前準備

  • インポート用のcsvファイルを下記のフォーマットで用意する。

  • 以下の通り、チケット一括登録プログラム(import_redmine.py)とインプット用のcsvファイルをあらかじめ用意しておく
[root@docker python]# ls -l import_redmine.*
-rw-r--r-- 1 root root  479 1018 17:26 import_redmine.csv
-rw-r--r-- 1 root root 2006 1018 17:27 import_redmine.py
[root@docker python]#

一括登録実行

  • 以下の通り、プロジェクト内にまだチケットがない状態で

  • 以下の通り、実行する。
[root@docker python]# python import_redmine.py
  • csvデータの内容に従い、チケットの一括登録されていることを確認する。

CentOS7.3にemacsをインストールする。

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、REST APIを操作するpython_redmineを利用するための環境設定の続きで、 コーディングする際のエディタである「emacs-24」をインストールする

なお、「emacs-24」のソースコードが「emacs-24.4.tar.gz」あらかじめ、 ダウンロードされているものとして、以降を記載する。

目次

OS環境情報

  • 作業開始時点の環境は、下記のOSを最小インストールした状態から開始
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

gccコンパイラのインストールする

[root@docker emacs-24.4]# yum install gcc

コンパイル時「`tputs' was not found in any library.というエラーが出た」ので、その対処

後述のemacsコンパイル時、 tputs' was not found in any library.と「tputs' was not found in any library.というエラーが出た」ので、その対処をあらかじめしておく。

[root@docker ~]#wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
[root@docker ~]#tar -zxvf ncurses-5.9.tar.gz
[root@docker ~]#cd ncurses-5.9
[root@docker ~]#./configure
[root@docker ~]#make
[root@docker ~]#make install

必須ではないと思うが、「Development Tools」のyumパッケージをインストールしておく

[root@docker emacs-24.4]# yum groupinstall -y "Development Tools"

emacsコンパイル&インストール

今回は、OS自体、X-Windowsがインストールされていないテキストモード環境のため、「 --without-x」でインストールする

[root@docker src]# tar zxvf emacs-24.4.tar.gz
[root@docker emacs-24.4]# ./configure --without-x
[root@docker emacs-24.4]# make
[root@docker emacs-24.4]# make install

emacsの初期設定(init.el)

emacsの設定は、下記書籍を参考にした設定(init.el)をずっと、利用してきたのでその設定を移行する。

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

pythonモード時ののタブ幅

上記の書籍以外の設定としては、 pythonモードのタブ幅を設定しておく。

;;python-mode(タブ幅4)
(add-hook 'python-mode-hook
          '(lambda()
             (setq indent-tabs-mode t)
             (setq indent-level 4)
             (setq python-indent 4)
                      (setq tab-width 4)))

emacs起動

emacsを起動し、pythonのコードを開く

Pythonソースコードのインデントを深くor浅くする技

地味に、よく使う技。備忘録

EmacsでPythonソースコードのインデントを深くor浅くする技 | 三鷹台でひきこもるプログラマの日記

  • C-c > (インデント深く)
  • C-c <(インデント浅く)

【Redmine3.3】python_redmineを利用するための環境を整備する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、REST APIを操作するpython_redmineを利用するための環境設定。

目次

OS環境情報

  • 作業開始時点の環境は、下記のOSを最小インストールした状態から開始
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

pythonのバージョン

  • 既に以下のpythonがインストーされているものとする。
[root@docker ~]# python -V
Python 2.7.5
[root@docker ~]#

pipのインストール

  • 以下で、pipをインストールする。
[root@docker ~]# curl -kL https://bootstrap.pypa.io/get-pip.py | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1558k  100 1558k    0     0  1638k      0 --:--:-- --:--:-- --:--:-- 1638k
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |????????????????????????????????| 1.3MB 360kB/s
Collecting setuptools
  Downloading setuptools-36.6.0-py2.py3-none-any.whl (481kB)
    100% |????????????????????????????????| 481kB 729kB/s
Collecting wheel
  Downloading wheel-0.30.0-py2.py3-none-any.whl (49kB)
    100% |????????????????????????????????| 51kB 3.2MB/s
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-9.0.1 setuptools-36.6.0 wheel-0.30.0
[root@docker ~]#
  • pipのバージョン
[root@docker ~]# pip -V
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)
[root@docker ~]#

 python-redmineのインストール

[root@docker ~]# pip install python-redmine
Collecting python-redmine
  Downloading python_redmine-2.0.2-py2.py3-none-any.whl (596kB)
    100% |????????????????????????????????| 604kB 622kB/s
Installing collected packages: python-redmine
Successfully installed python-redmine-2.0.2
[root@docker ~]#

【Redmine3.3】ナレッジ管理とドキュメント管理プラグインのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、Redmine3.3上に以下のプラグインをインストール

  • knowledgebase(ナレッジ管理)
  • dmsf(ドキュメント管理)

目次

knowledgebaseのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# git clone git://github.com/alexbevi/redmine_knowledgebase.git redmine_knowledgebase
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine/plugins# bundle install
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate NAME=redmine_knowledgebase
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine

dmsfのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@b9a9f615de4c:/home/redmine/redmine/plugins# cd plugins/
root@b9a9f615de4c:/home/redmine/redmine/plugins# git clone -b v1.5.6 https://github.com/danmunn/redmine_dmsf
root@b9a9f615de4c:/home/redmine/redmine/plugins# cd ..
root@b9a9f615de4c:/home/redmine/redmine# bundle install --without xapian
root@b9a9f615de4c:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine
redmine
[root@docker ~]#