プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

2019年の抱負

年始からは少し遅れてしまいましたが、去年も抱負を立て、年末までに達成できなかったとしても少し目標に対して前進できたので、今年も抱負を立てようと思います。

2019年の抱負

IT系技能関連の目標

IT系技能関連の目標を今年も立てようかと思っ思ったのですが、適切な難易度のハードルの目標があまり思い浮かばないので、今年は立てないことにしました。

達成度を気にしないのであれば、「機械学習の本を1冊勉強し終える」や「何か1つウェブサービスを立ち上げる」などといったものが思い浮かぶのですが、今までの進捗や結果を思い返す限り、達成できそうにない気がしているので、たてないほうが無難かなと思ってます。

ITはあまり関係ない目標

1年で4冊は本を読み、感想ブログを書く

こちらの抱負は去年の実績を基にしたものです。

去年立てた抱負では1年で12冊は本を読んで感想ブログを書くというものでしたが、実際に達成できたのは1年で3冊でした。その実績を下にして多少ハードルを上げることにして1年で4冊ということにしました。

1年で4冊と言う事は3ヶ月で1冊なのでちょうど1クールあたり1冊と言うことを考えるとそれはそれで良い指標になる冊数なのかなとも思います。

とりあえず既に一冊は以下の本を読んでいて、後はブログを書くだけなので、そこを皮切りにやっていくつもりです。

サーチ・インサイド・ユアセルフ――仕事と人生を飛躍させるグーグルのマインドフルネス実践法

サーチ・インサイド・ユアセルフ――仕事と人生を飛躍させるグーグルのマインドフルネス実践法

  • 作者: チャディー・メン・タン,ダニエル・ゴールマン(序文),一般社団法人マインドフルリーダーシップインスティテュート,柴田裕之
  • 出版社/メーカー: 英治出版
  • 発売日: 2016/05/17
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (6件) を見る

今年の抱負はこの一つに絞ってやっていきます。

何故かというと、「これをやりたい!」と心から思える目標が年が明けた今になっても他に思い浮かぶものがないからです。

年を過ごす途中で何かやりたいことが出てきたら途中でもいいので追加しようかと思います。

達成度は計測しないが、やっていきたいこと

以下の事項は自分でも取り組みたいことで、抱負にするまでてもないことです。

  • 瞑想を定期的に行う習慣をつける
    • Beingの改善
  • 技術ネタでブログ記事を書いていく習慣をつける

まとめ

読書の習慣を復活させていい感じに過ごしていきたいですね。

grepコマンドのパターン文字列がハイフンで始まっているとハマるという話

仕事でgrepコマンドを使っていたときにハマってしまったことについて記録を残しておきます。といってもほぼ人の記事の引用になってしまいますが。

タイトルの通りの話なのですが、grepコマンドを使っているときに文法は間違っていないはずなのにエラーになってしまって、エラー原因をググっていたところ、同じ現象に見舞われていた人を見つけました。以下引用。

$ env LANG=C grep '-misc-fixed-medium-r-normal--14-' /usr/X11R6/lib/X11/fonts/TrueType/fonts.alias
grep: invalid max count
$ grep '-misc-fixed-medium-r-normal--14-' /usr/X11R6/lib/X11/fonts/TrueType/fonts.alias
grep: 一致回数が間違っています

grep はパターン文字列を '' で囲った場合でも、それがハイフンで始まっているとオプション指定だと思うらしい。この場合、最初の '-m' がオプション -m (--max-count=n) と勘違いされているらしい。オプション -m は man grep には載っておらず、 grep --help を見て初めて分かるものなので気付きにくい。

解決策としては、最初のハイフンを消すか、オプション -e を用いる。

根本的な解決を探す必要は無かったので対処療法として私も -e オプションを用いることで問題を回避しました。

本来なら根本原因を追っていってみた方が勉強にもなっていいとは思うんですが、余裕がなかったのでそのまま放置しています。

瞑想シーズン1-5日目

適当に書けば続くことがよくわかってきたので、今日も瞑想した記録を残します。

今日瞑想したのは以下の場所・時。

  • 起き抜け
    • 2分間という正式(?)な時間を使って瞑想
  • 散歩
    • 疲れていたせいか、あまり効果を感じられず
    • Queenの曲を聴きながらやっていたり。

この調子で続けていったら「塵も積もれば山となる」効果で空手のパフォーマンスにいい影響が出てくれると嬉しいなあと思ってます。

今日もJudson Brewer氏のTED動画を聞きながらシャドーイングの真似事をしていました。

シャドーイングの真似事の成果なのか、英語のポッドキャストを以前より聞き取りやすくなった気がします。

瞑想シーズン1-4日目

今日も以下の場所・時で瞑想をこなせました。

  • 夕食後の空いた時間
  • 入浴中

今日は午前中に映画『ボヘミアン・ラプソディ』を見ていたら今まで溜まっていた疲れが出てきたのか、一度寝たら中々起き上がれない位に背中から疲れが噴出してくる事態で、映画見終わってから帰ってくる20分程度ですら辛かったです。

その後昼寝して疲れを取ろうとしてみても疲れが取りきれず、一日休む日になってしまいました。

そんな中で改めて気づいたのですが、疲労がある状態だと瞑想していても意識がハッキリした気持ちいい感じにはならず、あまり瞑想の効果を感じられない状態になってしまうということを痛感。

日々の生活で疲れを適度に発散しつつ、休めるときに休んでリフレッシュする必要があるのかなあと感じた年始の休みでした。

ansibleのextra varsをコマンドラインから渡す際、複雑な形式の変数を渡す方法

それまで使う必要が無かったのですが、仕事で必要になって調べた際、時間を使ってしまったので、ブログ記事にして記録を残しておきます。基本、公式ドキュメントを読めばいい話なのですが、一応詰まった話なので供養。

ansibleを使用する際、普通なら必要になる変数はgroup varsやhost varsを記載しているファイルに値を書いておけばいいのですが、ansible実行時に値を書き換えたいときが発生すると ansible-playbookコマンドの -e オプションを使って渡す必要が出てきます。

ansibleの公式ドキュメントのUsing VariablesのPassing variables on the command lineを読めば分かるとおり、以下のようにJSON形式の文字列を渡すことができます。

$ ansible-playbook release.yml --extra-vars '{"version":"1.23.45","other_variable":"foo"}'
$ ansible-playbook arcade.yml --extra-vars '{"pacman":"mrs","ghosts":["inky","pinky","clyde","sue"]}'

これにより複雑な形式の変数を渡すことができます。

私が仕事で困って調べるのに時間を使ってしまったのは、ネストしたJSONのkeyにあたる箇所の値を実行先ホストによって変えたい場合の渡し方でした。

うまく説明できているかは分かりませんが、以下のようなYAML形式のパラメータの parameter にあたる部分を実行先ホストによって変更した値をコマンドラインからansible-playbookコマンドに渡したい場合の話です。

redash_db_upgrade_enabled:
  parameter: true

結果から書くと以下のようにbash変数を利用して、JSON形式の文字列を渡してやれば上手くいきました。同じことをYAML形式の文字列で渡すやり方で試してみても上手くいかなかったので、JSON形式の方がいいのかもしれません。*1

$ proj_name=default
$ ansible-playbook playbook.yml -i hosts.ini -e "{'redash_db_upgrade_enabled': {'${proj_name}': true}}"

上記の例ではプロジェクト名が default の時には redash_db_upgrade_enabled で表現したい状態をオンにする(=それ以外のプロジェクトではオフのままにする)ということをしたくてやっているものです。

事前にbash変数で proj_name=default とproj_nameの値を設定しておけば {'redash_db_upgrade_enabled': {'${proj_name}': true}}" という書き方で {'redash_db_upgrade_enabled': {'default': true}}" と渡したときと同じように働きました*2

あまり複雑な形式の変数をコマンドライン経由でansibleに渡すのはアンチパターンだとは思いますが、もしgroup varsなどを使えない状況だったときには利用できるやり方かもしれません。

*1:ansibleのバージョンは2.7.4だったはずです

*2:shellの昨日や働きを熟知している人にとっては当然なのでしょうが

瞑想シーズン1-3日目

色々あって瞑想を定期的にした方がいいと思い、やるならやったという記録を残した方がよいだろうということで書きます。

昨日の記事でこんなことを書いたので、今日も実践したことをサラッと書きます。

今日も以下の場所・時で瞑想をしました。

  • 昼食前の散歩
  • 昼食後の散歩
  • 今こうやって記事を書いている最中
  • 入浴中 (予定)

瞑想のスタイルというか、やっていることは以下の書籍に書いてあることをもとに、呼吸に意識を向けられるなら向けるやり方で、そうできないなら単にそのままの自分を感じるやり方でやっています。

サーチ・インサイド・ユアセルフ――仕事と人生を飛躍させるグーグルのマインドフルネス実践法

サーチ・インサイド・ユアセルフ――仕事と人生を飛躍させるグーグルのマインドフルネス実践法

  • 作者: チャディー・メン・タン,ダニエル・ゴールマン(序文),一般社団法人マインドフルリーダーシップインスティテュート,柴田裕之
  • 出版社/メーカー: 英治出版
  • 発売日: 2016/05/17
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (6件) を見る

この本、個人的にはかなりいい本で、書評も書こうと思っているのですが、延び延びになってしまってダメなので、この年始の余裕のあるときに書いてアップしたいです。

今日は余裕もあったので再度このTEDの動画を見てシャドーイングのまねごとなどしました。

2019年元旦に初日の出を見に行きましたが曇ってました

ここ数年初日の出を見ていて、去年はブログ記事に起こしていたので、今年もそれに習って記事にします。本当は元旦に記事をアップしたかったのですが。

takuan-osho.hatenablog.com

といっても、タイトルに書いているように、初日の出を見に行っても結局曇っていて、ちゃんとした初日の出を見ることはできなかったという残念な状況でした。以下、そんな残念な気持ちを呟いたツイートです。

実際、初日の出前と出た後の朝焼けの方が綺麗な風景だったのでそれを貼っておきます。

Untitled

Untitled

Untitled

Untitled

今年も体調を整えて見に行けたのはいいのですが、日の出30分位前に家を出るという、いつもより遅い時間に出てしまった関係で、歩いている最中に周りが明るくなってしまい、夜くらい所から段々明るくなっていくという風情を感じることができなかったので、来年は日の出30分前には現地に到着して、明るくなる様子を楽しめたらと思います。