Corredor

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

Windows10 のタスクバーの時計表示を変える T-Clock Redux

Windows10 のタスクバーにある時計の表示形式を変えたい。デフォルトだと時分しか出ないし、Winaero Tweaker を使っても秒表示までしか出来ない。 Mac には Day-O 2 を入れて時計表示を変更しているので、Windows でも似たようなことがやりたい。 以前は 7+ …

iOS 14 Beta に Provenance をインストールしてレトロゲームを遊んでみた

iOS を脱獄することなくエミュレータが導入できると聞いて、Provenance を試してみた。 Welcome - Provenance GitHub - Provenance-Emu/Provenance: iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and S…

Docker の詳細 History が分かる Dive を使ってみる

Docker イメージの内容を調べるのに、docker history というコマンドを紹介した。Dockerfile をリバースできるようなツールだが、ファイルの細かな増減や変化は分からない。 そこで今回紹介する Dive というツールを使ってみる。 GitHub - wagoodman/dive: A…

クエリ文字列を連想配列に変換する簡単なやり方 (URLSearchParams)

location.search で取得した ?hoge=fuga&foo=bar みたいなクエリ文字列をパースする時に、コレまでは npm の query-string パッケージを使ったりしていた。 参考:query-string - npm もしくは、次のように自分でパースしてみたこともあった。 // slice(1) …

ルータ付属の無線 LAN に3つある SSID の違い

OCN から提供されている RS-500KI というルータ (「ホームゲートウェイ」と呼ばれる) を使っている。 このルータには無線 LAN (Wi-Fi) が内蔵されているのだが、接続先として選べるネットワーク名 (SSID) が3つ存在する。これらの違いは何だろう。 参考:無…

Fire 7 タブレットを Echo Show っぽくするためにフルスクリーン表示する時計アプリを作った

2019年モデルの Fire 7 は、Alexa が使えるが、Echo Show モードが使えない。開発者オプションにて電源接続時にスリープにしない設定は出来るので、フルスクリーンで常時表示させられる何らかの画面が作れたら面白いかな?と思った。 Android OS および Fire…

PL/pgSQL : PostgreSQL でプロシージャ・トリガーを実装する

Oracle DB を触っていた時に PL/SQL というプログラミング言語を触っていた。同様の手続き型言語が PostgreSQL にも用意されていて、PL/pgSQL という。 今回は対象テーブルにインサートが発生した時にその内容を標準出力するというプロシージャを作成し、Pos…

kubectl get で対象リソースがなくてもエラーにしない (--ignore-not-found)

Kubernetes の kubectl コマンドで、Pod の存在チェックをしたりする時に、対象が存在しないとコマンドの終了コードは 1 になる。 $ kubectl get pod my-app-server Error from server (NotFound): pods "my-app-server" not found $ echo $? 1 Bash スクリ…

Docker と Kubernetes でコンテナログを Tail で見る

Docker コンテナや Kubernetes Pod の標準出力ログを見るには、次のように見れば良い。 $ docker logs -f --tail=10 【コンテナ名】 $ kubectl logs -f --tail=10 【Pod 名】 -f オプションがない場合は、最古のログから最新のログまでを表示したら終わり -f…

正規表現の最短マッチを覚える

今さらながら正規表現の「最短マッチ」を紹介。 「HTML 文字列を対象に href 属性の値だけを正規表現で取得したいなー」 と思った時に、以下のように書いた。 const text = '<a href="index.html">Index</a>'; const match = text.match((/href="(.*)"/u))[1]; console.log(match); //…

code-server でクラウド上のマシンに VSCode を入れる

Microsoft 本家が Visual Studio Codespaces (旧称 VS Online) なんかを始めて、「ブラウザ上で動く VSCode」というのが結構イイカンジになってきた。 そのような仕組み自体は以前から複数あり、中でも code-server は自分で好きなマシンにインストールでき…

シェルスクリプトファイルに実行権限を付与する意味は?

実行権限が必要な理由を考えた。 疑問 ユーザがインタプリタを知らずに実行できるようになる バイナリファイルを実行して良いかどうかの目印 インタプリタで実行するスクリプトは読み込み権限と実行権限が必要 腑に落ちた? 疑問 Linux で、次のようなシェル…

Ubuntu 18.04 の SSH ポートを変更する

Ubuntu 18.04 の SSH 接続時のポート番号を 22 から変更する。何度かやっていることだけど、手順を毎回忘れるので、何度でも書く。 変更前に見ておくべき点は、ufw と iptables の設定。変更後のポートへのアクセスを許可した状態にしておく。 $ sudo ufw ap…

MacOS から Wake On LAN のマジックパケットを投げる Perl スクリプト

Wake On LAN のマジックパケットを MacOS からでも投げられる、Perl スクリプトを見つけた。 GitHub - jpoliv/wakeonlan: Perl script for waking up computers via Wake-On-LAN magic packets wakeonlan — Homebrew Formulae # Homebrew でインストールでき…

reCAPTCHA が遅すぎる → iOS 14 Public Beta の UA 文字列のせいでした

手動認証する reCAPTCHA v2 が遅くなった…。 reCAPTCHA 認証が遅くなった ボットとみなされているらしい 自分のスコアはどのくらい? iOS Public Beta のせい? iOS 14 が正式リリースされるまで我慢 reCAPTCHA 認証が遅くなった iPhone から Moon 系の仮想…

iPhone で「Ok Google」「Alexa」をやるには「Hey Siri, Ok Google」「Hey Siri, Alexa」と呼ぶ

「Hey Siri」を最近使い始めた。音声でなんかしたいと思うことは少ないが、ずっと自宅勤務で周りの目も気にならないし、検索窓を開くまででもない簡単な作業なら使いやすいかと思い、機能を有効にした。 Fire タブレットを持っているので「Alexa」も試してみ…

Amazon Fire 7 タブレット (2019年モデル) を高速化・Google Play 導入。root 化はできず

昨年2019年、セールで3,280円になっていたのでとりあえず買った Amazon Fire 7 タブレット。性能が悪くてやたらとモッサリするので、すぐに使わなくなっていた。 neos21.hateblo.jp しかし、画面を切った状態からでも Alexa を呼び出せるハンズフリー機能が…

Node.js スクリプトを CGI として動かしてみる

CGI という仕組みは、Perl・Ruby・PHP などの言語に限らず、標準入力と標準出力を扱える言語なら何でもいいらしい。ということは、Node.js をランタイムにした CGI も可能だと思われる。 と、ふと思い立って実際にやってみた。 前例がある:CGI-Node 前提条…

Raspberry Pi 4 に RetroPie を入れてレトロゲーをやってみる

Raspberry Pi 4 の RAM 4GB モデルを買ったものの、用途が思い付かずほったらかしになっていた。巷では RG350M とか RK2020 とかいう、エミュレータを搭載した Linux ポータブルゲーム機が流行っているらしく、ラズパイで似たようなことができないかと思い、…

GCP に中国からのアクセスがあり課金されたのでブロックする

中国のせいで金を取られた!(乱暴な言い方) 経緯 中国の IP をファイアウォールでブロックする 中国の Public IP 一覧ファイルを取得する Public IP 一覧ファイルを JSON 形式に加工する GCP の API Key を発行する GCP の Access Token を発行する OAuth ク…

Svelte ベースのフレームワーク「Sapper」を使ってみる・TypeScript + SCSS 対応する

昨日 Svelte を TypeScript + SCSS 対応したが、今度はこの Svelte をベースとしたフレームワーク「Sapper」を使ってみて、コイツも TypeScript + SCSS 化してみる。 Sapper • The next small thing in web development 成果物 Sapper プロジェクトを作成す…

Svelte + TypeScript + SCSS やってみる

公式で TypeScript サポートがアナウンスされていたので、ようやく Svelte を触る。 Svelte プロジェクトを作る TypeScript を扱えるようにする SCSS を扱えるようにする VSCode 拡張機能を入れる 成果物はコチラ Svelte プロジェクトを作る 以下の TypeScri…

wsl-open:WSL で xdg-open する

デスクトップ環境を持つ Linux において、MacOS の open コマンドに相当することをやる際は、xdg-open というコマンドが使える。 一方、WSL を CUI でのみ使っている場合は、xdg-open では Windows 側の GUI アプリでファイルを開けない。 そこで使えるのが …

Vim でファイル保存時にディレクトリがなかったら作る

Vim で新規ファイルを作成する時、指定したサブディレクトリがないと保存できない。 # 「hoge/fuga/」ディレクトリが存在しないと保存できない $ vim hoge/fuga/test.txt その場でなんとかするなら :!mkdir -p %:h とシェルコマンドを打てばディレクトリが作…

イマドキは Webpack じゃなくて Rollup だ!Terser とともに Rollup を使ってみる

Webpack なんかと同じビルド・バンドルツールの Rollup を使ってみる。 Rollup と Webpack の違い Transpiler と Minifier との区別 Rollup を試してみる Rollup の設定ファイルを作る Terser を組み込む : rollup-plugin-terser Rollup と Webpack の違い …

イマドキは Uglify JS じゃなくて Terser だ!Terser を使ってみる

JavaScript の圧縮・難読化で知られる uglify-js は ES2015 に対応しておらず、別ブランチで開発されていた ES2015 対応版の uglify-es は開発終了しているらしい。 そんな uglify-es を Fork して誕生したのが、terser というツールだ。 terser - npm $ npm…

Node.js で ES Modules 記法を動かしてみる

ブラウザ上で JS を import するための仕組みとして、ES Modules という仕組みができた。コレを Node.js 上でも動かせるということで、やってみた。 前提条件 ES Modules を有効にするための条件がある 必須:import 文にファイル拡張子を必ず書く 必須:実…

Ubuntu 18.04 で自動ログインできるようにする

Ubuntu 18.04 の GNOME デスクトップで、マシン起動時にログイン画面を出さず自動ログインできるようにする方法。ググラビリティ向上のため英語表記と日本語表記を両方書いておく。 「設定」アプリ → ユーザ → 「自動ログイン」を On にする Settings → User…

Ubuntu 18.04 に Docker をインストールする

以前 CentOS に Docker をインストールしたが、今回は Ubuntu 18.04 にインストールする。 neos21.hatenablog.com 以下の公式サイトのガイドをそのままやっていく。 Install Docker Engine on Ubuntu | Docker Documentation $ sudo apt-get update $ sudo a…

VSCode で WSL ターミナルを開くようにする

VSCode で Remote WSL を使用していない通常時も、GitBash ではなく WSL を統合ターミナルに表示するようにしたい。 ユーザ設定で以下のように書く。 "terminal.integrated.shell.windows": "C:\\Windows\\System32\\wsl.exe", GitBash を使っていた場合、sh…