podman で nginx + php + mariadb を立ち上げてみる

更新: firewalld の設定に誤りがあったので修正しました。
更新2: php のイメージに gd の jpeg と imagick を追加しました
更新3: firewalld の許可設定は不要でした

CentOS 6 のサポート期限が迫ってきているので CentOS 8 について必死で勉強しています。試しに全部コンテナで環境作ろうとしたのですが、CentOS 8 は docker ではなく podman が標準っぽいので、試しに podman で web サーバーを立ち上げてみました。

.bat で Excel ファイルを開く

バッチファイルまたはコマンドプロンプトから、「規定のアプリケーション」でファイルを開く方法についてです。単純にエクスプローラーでファイルをダブルクリックした時の動きを再現したいのですが、定期的に忘れて調べている気がするのでメモしておこうと思います。

Laravel のログにリクエストごとのIDを出す

システムに障害が発生してログを見た時に、いいタイミングで同時にリクエストが来てエラーも複数出ている際、これは同一リクエストで起こったエラーなのか、それともそれぞれ異なるリクエストで発生したエラーなのか分からなくなる現象がまれに起きます。特に外部連携系のAPIだと、リクエストが同一サーバーからくることが多いので、IPアドレスをログに出しても全部同じになってしまいます。そういった場合リクエストを区別するために、リクエストごとにUIDを振って出力する必要が出てきます。

Node.js で中間証明書が設定されていない Web サイトにアクセスする

node.js でWebスクレイピングするツールを作ったのですが、アクセス先のサイトの証明書が切れたらしく最近更新されたようです。それは問題ないのですが、なぜか中間CA証明書が返ってこず(たぶんWebサーバーの設定漏れ)、証明書の検証ができない旨のエラーが。wget してみても同様の状態。証明書チェーンの検証を無効にすればつながりますが、セキュリティ的によろしくないです。まあ、管理者に連絡して設定してもらえばいいんですが、それまで待っていられない場合の応急処置を書いておきます。

結局、ko.track はどこまで効くのか

knockout.js のプラグインである knockout-es5 を使用すると、双方向バインディングが利用できるようになります。入力欄の内容が ViewModel に入るだけでなく、ViewModel に代入した値が画面に反映されます。

ただ、単純に ko.track(obj) するだけだと、ViewModel の深い階層のオブジェクトに値を代入しても画面に反映されなかったり、今まで動いていたのに配列を書き換えた途端に動かなくなったりと、いまいち挙動がつかめません。一通り以下で試してみようと思います。

TypeScript でタグ付けされたTemplate literalを使う

前回の記事:JavaScript で String.format したいで、テンプレートリテラルの使い方は何となくわかりましたが、いざ TypeScript で使うぞってなったときにタグ関数の引数の型がよく分からなかったのでメモ。

JavaScript で String.format したい

他の言語とかで、軽くエラーメッセージ出したい時によく string.format を使うのですが、JavaScript には存在しません。なにかしら似たようなものはないかと Stack Overflow を覗いてみると template literal 使えばっていう回答がありました。テンプレートリテラルとは初耳なので、勉強がてらそれを使ってみることにします。

Node.js で Web スクレイピング

突然ですが、社内のシステム(Web アプリ)が非常に使いにくいです。社外から見えるのはいいけどスマホ用のデザインがないとか、API がないから自動化しにくいとか。

些細なことですが日々ストレスは溜まっていき、先日うっかり自分で作ってしまえばいいのでは?と思い立ってしまいました。ひとまず、Webアプリからデータを抜き出す部分について書き出しておこうと思います。