Corredor

ウェブ、プログラミングの勉強メモ。

Oracle Cloud 関連サービスで見かけるアイコンの呼称

最近 Oracle Cloud をちょくちょく使っているのだが、管理画面に登場する謎のアイコンが2つあったので、その呼び名を調べてみた。 アクション・アイコン … 3点リーダのアイコン メニュー・アイコン … 4本線の一番上だけ長いヤツ 以上 アクション・アイコン ……

外部から Docker コンテナに環境変数を注入する方法

Docker コンテナ内で使用する環境変数を、Docker コンテナ起動時に注入する方法。 Dockerfile の ENV 命令だと切り替えが難しい -e (--env) オプション --env-file オプションで一括設定 Dockerfile の ENV 命令だと切り替えが難しい Docker コンテナ内で使…

MacOS「プレビュー.app」のマークアップツールバーを開くショートカットキー

MacOS の「プレビュー.app」が優秀なので、簡単な画像編集にもちょくちょく使っている。 その際、「マークアップツールバー」の項目を使うことが多いのだが、「プレビュー.app」を再起動するとマークアップツールバーが必ず隠れた状態からになってしまう。 …

JDK 同梱の認証局証明書管理ファイル「cacerts」を見てみる

Java プログラムからとあるサーバ証明書の認証が上手く行かなかったので調べた。 JDK には cacerts というファイルが含まれていて、Java プログラムが動作する時に参照する「ルート認証局」の証明書が管理されているようだった。 ブラウザなんかが持っている…

Mac の ls -l でアットマーク @ が付いているファイルがあった : Extended Attributes と xattr コマンド

Mac で ls -l してファイルを見ていた時に、何やらパーミッションの後ろにアットマーク記号 @ が付いたファイルがあることに気が付いた。 $ ls -l -rw------- 1 Neo staff 17809 1 9 15:54 my-file-1.md -rw-------@ 1 Neo staff 25246 1 16 10:14 my-file-2…

Kubernetes にデプロイした複数 Pod のログをまとめて見られる「k8stail」が大変便利だった

Kubernetes を使い始めて困ったのが、動作中の Pod (コンテナ) の動作をリアルタイムで確認する方法。 Pod 内のプロセスが標準出力に出力する情報は、kubectl logs コマンドで一応見られる。しかしこのコマンド、基本は Pod 単位でログを見る前提の作りで、$…

Express はレスポンスを返してからも処理が続行できる

Express において、res.json() とか res.send() とかを呼んだ後も処理が継続できることを知った。リクエストに対するレスポンスの用意ができたら迅速に res.send() を呼んでレスポンスしてしまい、残処理はそのあとゆっくりやれる、というワケだ。てっきり r…

Express のレスポンス関連メソッド「res.end()」「res.send()」「res.json()」の違い

Express でレスポンスを返す時、res.end()・res.send()・res.json() などのメソッドを使用するが、それぞれの違いは何か、res.end() は必ず呼ばなければならないのか、あたりを調べた。 Express の API リファレンスを呼んでみる まずは Express の API リフ…

MacOS に CertBot を入れて Let's Encrypt 証明書を作ってみる

時代の波には逆らえず、HTTPS 化が求められている。 今回は無料で発行できる Let's Encrypt というサーバ証明書を作ってみる。 ちょっとひと手間必要なので、真似する場合は先に全ての手順を読んでから真似してほしい。 前提条件 CertBot のインストール 証…

Docker コンテナ内で動作する Web サーバにホスト OS からアクセスするには : ポートフォワーディング

Docker 基礎。 外部から Docker コンテナ内にアクセスするには、ポートフォワードの設定が必要になる。原理はシンプルなので、順を追って説明する。 そもそもポートフォワーディングとは Docker コンテナ内に置く Web サーバの設定 Docker コンテナの特定ポ…

Bash でコマンド実行前に確認するイディオムおさらい

毎回忘れるので専用の記事を作ることにした。 Windows コマンドプロンプトだと set /p を使うヤツ。 Set confirm= Set /p confirm=よければ Enter を押してください・ダメなら n を入力してください: If '%confirm%'=='n' ( Rem キャンセルの場合 Goto LABE…

GitHub Issues をコマンドラインで見られる「ghi」が便利だった

コマンドラインで GitHub Issues を見られる、ghi というツールを発見。類似ツールはいくつかあるようだが、使いやすかったのでコレを紹介。 GitHub - stephencelis/ghi: GitHub Issues on the command line. Use your $EDITOR, not your browser. MacOS に …

今見ているページの Archive.org や Google Cache を一発で開くブックマークレット

Cached View というウェブサイトを見付けて触発された。 Google Cached Pages of Any Website - CachedView URL を入力してボタンを押すと、「Archive.org」か「Google Web Cache」のいずれかでキャッシュされたページが見られる、というモノ。 コレが大変便…

2つの年月日から経過日数を表示する Bash スクリプト (Mac・Windows 両対応)

2つの年月日から経過日数を表示する Bash スクリプトを作った。MacOS・Windows GitBash の両対応。 コレを date-diff みたいな名前で PATH の通っているところに保存して実行権を設定する。あとは以下のように叩く。 $ date-diff 2019-01-01 2018-01-01 365 …

JavaScript で YAML を扱うなら「js-yaml」が楽チン

Node.js で YAML ファイルを読み込んで扱いたくなったので、ググって1件目に出てきた js-yaml を使ってみた。 js-yaml - npm $ mkdir practice-yaml-in-js && cd $_ $ npm init -y $ npm install -S js-yaml $ touch index.js index.js const fs = require('…

未だに直らない「VSCode で Markdown 執筆中に BackSpace・Delete キーを使うと制御文字が混ざる問題」の改善策

VSCode には謎のバグがある…。 VSCode で Markdown ファイルを執筆中、BackSpace キーや Delete キーで文字を消していると、時たま謎の制御文字が入力されることがあるのだ。 今回はこの事象の解説と、今できる改善策の紹介。 どんな事象なの? 制御文字を表…

文字化けを復元する Web アプリ「Garbler」を作った

文字化け研究の一環として、「もじばけらった」インスパイアの Web アプリを作ってみた。その名も Garbler。 Garbler … デモページ GitHub - Neos21/garbler: Garbler : 文字化けを復元したり、文字化けさせたりします。 … GitHub リポジトリ 利用技術 文字…

2色のコントラスト比を導く Compare Colour Contrast Ratio を作ってみた

見やすい色の組み合わせかどうか。 WCAG2.0 (Web Content Accessibility Guidelines) という、ウェブアクセシビリティに関するガイドラインがある。 参考:Web Content Accessibility Guidelines - Wikipedia この中で、文字色と背景色とのコントラスト比を…

Finder のコンテキストメニューに「VSCode で開く」を追加する

MacOS に CotEditor をインストールすると、Finder のコンテキストメニューに「ファイルを CotEditor で開く」メニューが追加される。 Windows に VSCode をインストールすると、エクスプローラのコンテキストメニューに「Open with Code」メニューが追加さ…

LINE Messaging API : Reply API におけるリプライトークンの有効期限は30秒 (独自調べ)

前回、LINE Messaging API を利用してユーザにオウム返しするチャットボットを作成したが、その際「Reply API」という API を利用してユーザへの返信を行った。 今回は、この Reply API に関する仕様について。 Reply API とは Reply API は、リクエストに付…

LINE Messaging API を使ってオウム返しする Node.js 製チャットボットを作ってみる

突然だが、LINE Messaging API というモノを使って、簡単なチャットボットを作ってみる。 完成すると、LINE アプリでチャットボット用アカウントを友達登録して、トーク画面から会話できるようになる。メッセージの処理はしないので、ただユーザの発言をオウ…

Express サーバでエラーハンドリングをミドルウェアに分ける

Express サーバを作っていて、例外のハンドリングを簡単に実装できる方法を知ったのでまとめてみる。 Express 関連用語をまとめる express.Router() ミドルウェア Expressにおけるミドルウェアとは next() ミドルウェアは記述された順に実行される エラーハ…

Node.js アプリでログをファイルに出力する「log4js」

Node.js 製のアプリでログをファイル出力するライブラリである、log4js を使ってみた。 log4js - npm log4js-node by log4js-node 以前、log4javascript というライブラリは使ったことがあって、コチラはファイル出力するアペンダが標準にはなかったので自作…

Windows の游ゴシック Regular・Light を Medium フォントに差し替えて太く見せる VBScript

Windows で游ゴシックフォントが細く見える問題に終止符。 neos21.hatenablog.com neos21.hatenablog.com Windows に搭載されている「游ゴシック Regular」と「游ゴシック Light」について、フォント名とフォントファイルの関連付けを行っているレジストリを…

mocha で行うユニットテスト内でスパイ・モック化するなら「sinon」

以前、mocha という npm パッケージを使った単体テスト環境を構築したが、この mocha はテストランナーとしての側面が強く、特定のメソッドをモック化したりする機能は有していない。 neos21.hatenablog.com Jasmine のように、spyOn().and.callFake() や to…

CentOS の vi で日本語表示が文字化けするのを直す

Docker で centos:7 イメージを動かしている時に、vi で日本語が文字化けしていたので解消法を調べた。 vi に入って : set enc? と叩くと、エンコーディングが確認できる。自分の環境では encoding=latin1 と表示されていた。 もしenc?で「latin1」という値…

起動中の Docker コンテナに別ターミナルでアクセスする

あるターミナルから $ docker attach コマンドでコンテナに接続し、サーバプロセスを起動させた。すると、そのターミナルはサーバが起動しっぱなしになるので、他のコマンドを叩いたりできなくなってしまう。 そこで別のターミナルを開いて、再度 $ docker a…

Docker コンテナのライフサイクル : 「終了」と「破棄」は違う

以前の記事で、Docker コンテナについて、次のように書いた。 「$ docker run と $$ exit で起動と終了を繰り返すと、毎回変更が破棄されてしまう」 実は、この表現は正しくない。$$ exit による終了 = 即全てのデータが破棄される、というワケではなく、コ…

Docker コンテナとの共有ディレクトリを設定する

Docker で仮想環境を作ると、当然ながらホスト OS (Docker を立ち上げている大元の PC 環境) とは全く異なる環境が立ち上がる。しかし、 ホスト OS にあるデータを Docker コンテナに持ち込みたい Docker コンテナを破棄しても作業中のファイルは永続化した…

MacOS で Docker を始めてみる

これまで仮想環境というと VirtualBox (とそれを操作する Vagrant) を使ったことがあったが、今回 Docker に手を出してみた。 Enterprise Container Platform | Docker とりあえず MacOS High Sierra か MacOS Mojave 上に Docker をインストールし、適当に …