自らのミスをプログラムという「よくわからないもの」のせいにしたい人たち

悪魔の影のイラスト

飲食店で給料の誤計算問題が起きましてね。僕の給料が2ヶ月合計で14時間分少なく見積もられていて、しかもその間違った額で年末調整までしてしまって、問い合わせたら「調べて間違っていたら1月分と一緒に振り込むが、年末調整をやり直すことは出来ない」という返答でした。なんのために明細を出してるのか。問題ないの解ってから年末調整にして欲しいなあ。従業員は明細なんて読まないと思ってるのか?まあ一般的にはそうなのかも知れませんね、僕は必ずチェックするようにしてますが(といいつつ前月の間違いは見逃しちゃってるんですが)。

続きを読む

【ネタ】「418 I’m a teapot」

ティーセットのイラスト「ティーカップとティーポット」

前任者が作成したプログラムがHTTPステータスを使わずに全部200を返した上で、レスポンスに「result=true」とか「result=false」とか書き込んでいて、データ受取先のaxiosが大変面倒なことになっていたので、ちゃんとHTTPステータスコード使おうと思って調べたらその中に変なのがあるのを見つけました。

続きを読む

JavaScriptでデータからCSVファイルを生成しダウンロードさせる

いろいろなファイルアイコン(文字)

管理アプリケーションから任意のレコードを選択してボタンを押すと、用途に合わせた情報が抽出されてCSVファイルとしてダウンロード出来る……という要件を満たすために、最初はPHP主体で処理することを考えていたのですが、色々調べてみるとほとんどJavaScriptで出来ることがわかりました。あとで記載する参考リンクの情報を組み合わせるとこんな感じ。

続きを読む

【メモ】Chefがバージョンアップしてライセンスエラーが出るようになった【#np2020】

「Chef」が100%オープンソースに | OSDN Magazine

設定管理ツール「Chef」を開発する米Chefは4月2日、Chefソフトウェアを完全にオープンソースとして公開することを発表した。ライセンスはApache License 2.0で、商標ポリシーが守られている限りソースコードの使用、配布、収益化に制限を設けないという。  Chefはこれまでコア部分のみがオープンソースとして提供されていたが、今回プロダクトコードのすべてをオープンソースとする。これによりコミュニティの目標とChefの目標を連携させることができ、より良いソフトウェアの構築につながると期待を寄せている。  ライセンスは、Chef Infra、Chef InSpec、Chef Habitatと一貫性のあるApache License 2を採用、商標ポリシーが守られている限り、ソースコードの使用、配布、収益化に制限を設けないとしている。今後、Chefチームが生成するソフトウェアはすべてオープンなリポジトリに入り、ロードマップなどの製品開発プロセスについてもオープンにしていくという。

Chefがオープンソースになった影響なのか、ver.15からライセンスへの同意を設定ファイルに含めないといけなくなったらしく、そのままではエラーが出て動かない。
==> default: Chef Infra Client cannot execute without accepting the license Chef never successfully completed! Any errors should be visible in the output above. Please fix your recipes so that they properly complete.
ドキュメントを読むとvagrantではこう追加せよとあったのでやってみたんだけど……

Accepting the Chef License — Chef Docs

Vagrant This license acceptance can be done via the arguments API:

config.vm.provision "chef_zero" do |chef|
chef.arguments = "--chef-license accept"
end
怒られた。
==> default: /opt/chef/embedded/lib/ruby/gems/2.6.0/gems/mixlib-cli-2.0.3/lib/mixlib/cli.rb:230:in `parse_options’: invalid option: –chef-license (OptionParser::InvalidOption)
「–chef-license」っていうオプションなんか知らねーって言われてるみたい。多分、何かをアップデートしたら動くようになるんだろうなと思いつつ、面倒くさかったのでドキュメントにあったもうひとつの方法「Chefのバージョンを固定する」を試す。
config.vm.provision "chef_zero" do |chef|
chef.version = "14.12.3"
end
無事、vagrant起動。初めからこうしておけばよかったんや…… とはいえ、バージョンアップしないというのもアレなので、そのうち何かしたいと思います。どうしたらいいかわかんないけど。誰か教えてください。

続きを読む

【メモ】ファイルを変更していないはずなのにgit pullでmerge出来ない場合

Git-Logo-2Color.png masterブランチしかなく、作業者が自分1人しかおらず、ファイルの変更は手元の端末でしか行っていなくて、かつ、プログラムが書き換える可能性もないファイルを更新しようとしているのに、なぜか、

error: Your local changes to the following files would be overwritten by merge:
index.html
Please, commit your changes or stash them before you can merge.
Aborting
と出てmergeに失敗する。 おかしいなあと思っていたんですけど、これ、gitがファイルのパーミッションの変化を「変更あり」と検知してしまうからだそうです。vagrantの設定のせいか、手元のファイル(Mac)とvagrant上のファイルとでパーミッションが変わっているということなのかも知れません。 これを解決するには、パーミッションの変化を無視するように設定してやれば良いようです。
git config core.filemode false
なるほどね。手元がWindowsだったりするともっと顕著に出るかも。

続きを読む

冪等性(べきとうせい)

最近ずっと Ansible の勉強をしています。次に導入するサーバの設定を Ansible で設計・反映させる予定だからなんですが、ぶっちゃけ1台だけのサーバなら直接コマンド入力で設定した方がずっと早いし、Ansible を使う意味は限りなくゼロに近いです。でもまあ最近の環境構築ではこういう技術を使うのがスタンダードだって言うし、身につけておいたらどこかで役立つかも知れないので勉強がてらやってるって感じです。サーバを実際に設定できるようになるのはいつになることやら。 で、Ansibleを触っているとよくこの言葉を見掛けます。 「冪等性」 漢字だとわかりづらいですが、「べきとう」というひらがなであればどこかで聞いたことがあると思います。プログラミングでは割と普通に使われる単語です。

冪等 – Wikipedia

数学において、冪等性(べきとうせい、英: idempotence 「巾等性」とも書くが読み方は同じ)は、大雑把に言って、ある操作を1回行っても複数回行っても結果が同じであることをいう概念である。まれに等冪(とうべき)とも

続きを読む