第2の人生の構築ログ

自分の好きなことをやりつつ、インカムもしっかりと。FIRA60 (Financial Independence, Retire Around 60) の実現を目指します。SE を生業としていますが、自分でプログラミングしながら自分が欲しいと思うアプリケーションを作ることが楽しみです。旅行と温泉、音楽と読書は欠かすことができません。

Tech

技術系

mac でターミナルが開かなくなる - zsh 使用中

突然、mac でターミナルが開かなくなる状況に遭遇しました。厳密には、開いた後、諸々の情報を読み込んだ後にプロセスが終了してしまい、何もできないという状況です。 最後の git コマンドがないなんていうエラーは、そんなことはないはずなので、意味がわ…

Jamstack 事始め - Astro でサイトを作成し、Cloudflare でホスティング (その2: Astro でサイトを作成する)

Image Credits: CSS-tricks.com Jamstack 事始めシリーズ第1回では、Jamstack とは何かで終わってしまいましたので、今回は Astro とは何かを記載した後に、実際に Astro を使ったコンテンツの作成とその動作確認までを行ってみます。 Astro とは? astro.bu…

【Go言語】IntelliJ IDEA を使っている時に(f *os.File) Close()、os.Interrupt などが認識されない

Go のバージョンを 1.9 に上げた以降、(f *os.File) Close()、os.Interrupt が急に IntelliJ IDEA で認識されなくなってしまいました・・・ [ 何も悪いことはしておらず、何も問題ないはずなのですが・・・はて?何を怒られているのでしょうか・・・ 結構同…

【Go言語】チャネル (channel) のクローズ (close) 〜 チャネルのバッファ内の値を確実に全て取り出す

チャネルの状態には、オープンとクローズ(closed)の状態があり、make することで生成された チャネル はオープンな状態となり、close(チャネル) で明示的に閉じることができます。 チャネル が close されたことを複数のゴルーチン (goroutine) へ一斉に伝え…

Jamstack 事始め - Astro でサイトを作成し、Cloudflare でホスティング (その1: Jamstackとは何か?)

Jamastack とは何か Jamstackという言葉はそれが世に出てきた時と現在では意味するところが異なっています。元々は使用されている技術 stack の頭文字をとって付けられたもの(JavaScript、API、Markup)ですが、現在は「分離」、"decoupling" を示すアーキテ…

【Go言語】html/template で、意外と分かり難い"Uncaught SyntaxError: Unexpected token '<'" エラーの原因

久しぶりに Go 言語のテンプレート(html/template)を使用し、テンプレートの HTML から外部ファイルを読み込もうとしていました。そこで遭遇した以下のエラー。 原因がわかってしまえば、そりゃそうでしょう、となるのですが、以下のエラーだけ見ると、何が…

【Go言語】Go 言語で WebSocket を使ってみる

Webにおいて双方向通信を行うためのプロトコルの一つである WebSocket 使う必要があったので、まずはどのようなものか、Go 言語でシンプルに実装してみます。 実装するライブラリにはいろいろありそうですが、ここでは、golang.org/x で提供される準標準パッ…

新たに外付けキーボードを導入。母艦とは異なる配列のキーボードを使用する〜母艦US(英語)->外付けJIS(日本語) Windows10編

個人でメインで使っているのは macOS の JIS(日本語)キーボードなのですが、会社の PC は Windows で US(英語)キーボードになっています。以前、US(英語)キーボードの Win ノートパソコンでJIS(日本語)キーボードの Apple Wireless Keyboard を使うという記…

【GCP】GAE プロジェクトで複数のサービスを構成する〜1プロジェクトで複数サブドメインを利用する

GCP の GAE (Google App Engine) では、1つのプロジェクトの中に複数サービスを立ち上げることができます。 ここで書いている「サービス」とは、app.yml で定義し、デプロイした1つ1つのアプリの単位をいっています。 以前以下の記事で書いたアプリの単位で…

Let's Encrypt を使ってフリーでサーバ証明書を発行する

Webサイトの常時 HTTPS 化のこの時代、小規模なサイト、個人のサイトなど元々 HTTP で充分、というコンテンツを公開していた運営者の中には、サーバ証明書のコストを何とかできたら・・・と思っている方もいるかもしれません。 Let's Encrypt は、フリーで(…

【Go言語】Bitbucket / Github の private リポジトリを Go Get する〜その2 ("410 Gone エラー")

Bitbucket / Github の private リポジトリを Go Get する方法を以前書いていたのですが、これだけでは現状失敗することに先日気付きました。 www.morelife.work 上記の設定を行っていたとしても、現状以下のような 410 Gone エラーに遭遇します。 以下は bi…

Windows10(US/英語キーボード)で Apple Wireless Keyboard (JIS/日本語キーボード)を使う

先日 Magic Trackpad の購入と合わせて、Apple Magic Keyboard の購入も行っておりました。PCスタンドを導入したタイミングに iMac を使っている妻から Apple Wireless Keyboard を譲り受け、以降 MBP で使っていたのですが、新たに購入した Apple Magic Key…

Chrome の画面が特定のページで乱れるため暫定対応

一言で乱れると言いましても、よくわからないかと思います。yahoo のトップページを見ると以下のような感じです。 全てのサイトでこうなる訳ではなく、特定のサイトだけです。また、他のブラウザは全く問題なく、Chrome だけの問題です。 同じような事象に悩…

マウスをやめて Apple Magic Trackpad 2 を導入〜とても快適です

きっかけは、リモートワークですね。もう四六時中キーボード打って、マウス使ってやっている訳ですが、腰に続き、肩が悲鳴をあげました。。(何か妙なきっかけで特に右肩の筋を痛めてしまったようです。) マウスを動かすのすら辛くなってきました。こんなこと…

Kyash Card 届きました〜ポイント還元率が下がる前に Kyash Card Lite から切り替えます

いろいろなキャッシュレス決済方法があり、私も幾つか使い分けていますが、そのうちの1つの Kyash のカードの切り替えを行うことにしました。 これまで使っていたものは、現在 Kyash Card Lite という名称になっており、新規に Kyash Card を申し込み、先日…

【FIDO】WebAuthn / FIDO2 のテスト、検証時に便利なクライアント Virtual Authenticators Tab (バーチャル認証器)

FIDO2 (WebAuthn) のテスト、検証を行う際に既にAuthenticator(認証器)が内蔵されている環境、または、手元に外部認証器があればいいのですが、無い場合、また、環境があってもテスト/検証時はテスト用の環境を使いたい、といったケースに便利なのが Chrome …

MacBook Pro 16インチ2019にドック(Dual USB-C Dock + LAN)を導入

新型コロナの影響で本職の方がリモートワークとなって1ヶ月が経過しました。自宅の作業環境もいろいろとアップグレードを行いました。(しかし、在宅勤務ですとホント動かなくなりますね。。明らかな運動不足です。) MacBook Pro 16インチには、Thunderbolt3 …

【GCP】App Engine (GAE)で独自(カスタム)ドメインの利用と常時HTTPS化を行う

以前、GAE を使って Web アプリ/静的 Web コンテンツを公開するメモを書いていました。 www.morelife.work 前回の場合、確かにコンテンツの公開は行えていますが、そのアクセス用の FQDN (URL) が GAE が用意するデフォルトのホスト名となっていました(通常 <project id></project>…

gitignoreファイルを自動生成する / gibo

新たにプロジェクトを作成し、git で初期化を行う際、都度 .gitignore ファイルを作成するのですが、ちょっとしたことですが、意外とメンドイです。自動化できるコマンドがあります。 simonwhitaker/gibo: Easy access to gitignore boilerplates そう、手作…

【シェル】zshでPATHに同じパスが何度も追加される状況を止めにする(重複を除去する)

シェルの PATH の設定におきましては、同じ設定ファイルが複数回読まれることもありますし、設定上、どうしてもPATH には同じパスの値が何度も追加されてしまう状況は起こりえます。これを止めにする(重複を除去する)といのが今回のお題です。 この対策とし…

【Go言語】channel(チャネル)をキューとして使う / 固定数のgoroutine(ゴルーチン)を起動して処理を分散させて平行処理する

Go言語には平行処理を行うために goroutine (ゴルーチン) というものが用意されており、非常に便利です。この goroutine とセットで使うことになる channel は goroutine 間の値の受け渡しに使われます。非同期で実行される goroutine 間でデータの受け渡し…

MacBook Pro 16インチ 2019 Catalina で辞書.app (Dictionary.app) の英和/和英辞典が使えないので修復する

辞書.app で英単語を引こうとしたときに気がつきました。あれ?何も出てこないと。 設定としては、ちゃんと見られるようになっているのですよね・・・ さらっとググるとこの症状結構でているらしく、本格対応は Apple のアップデート待ち?なんて言う話しも…

ちょっとしたコードを手軽に管理/共有するツール gist をコマンドラインで使う

簡単なソースコード、設定ファイルの保存、共有に便利な gist ですが、コマンドラインで使えると更に便利だったのでそのメモです。 gist のサービスは以下になります。"GitHub" のアカウントが必要です。 gist.github.com Web インターフェイスで使っている…

結局 MacBook Pro 16インチを購入しました(激速でした)

10月から検討を行っていた新しい端末(PC/Mac)の購入ですが、ついに決断し、MacBook Pro 16 インチを購入しました。左が今回購入したMacBook Pro 2019 16inch で、右がこれまで使ってきた MacBook Pro 2016 13inch です。 www.biccamera.com 以前書きましたよ…

肩こり、腰痛を酷くしないため BoYata ノートパソコンスタンド導入

職場では2台のノートブックを使っており、1つはドック+外部モニター、もう1つは持ち運びしやすいスタンドにのっけて使っています。自宅はノートブック+外部モニターで使っているのですが、ノートブックはそのまま机に置いて利用していました。家で作業してい…

Javaの異なる環境をDockerを使ってサクッと用意する

OpenClipart-VectorsによるPixabayからの画像 Oracle Java のライセンス変更はやはり影響が大きく、商用プラットフォームにおける Oracle Java のデファクトスタンダードにも変化が出てきているように感じます。 今後更にいろいろな種類の Java が使われ、い…

引き続き macOS を使うか Windows に切り替えるか

職場では、Windows 8割、Mac 2割の利用時間配分で、プライベートでは、2003年 macOS X の4代目 v10.3 Panther からの Mac ユーザです。Mac は X で Unix (BSD) ベースになりましたが、もうこのときの感動は忘れられません。ステキな Mac の GUI が使えて、か…

Go 言語の html/template で独自関数を使う

Ruby であれば erb、Java であれば jsp といったように各言語にHTML(/text) へのコードの埋め込みが可能なテンプレートエンジンが用意されています。Go にもテンプレートエンジンがあり、HTML には html/template が使えます。 まぁ、View であるテンプレー…

Go 言語での Web アプリの実装基礎 / これがわからないと混乱する「ハンドラの正体」編

最近自身初の Go 言語での Web アプリを書いており、Go ネタ続きます。 Go は標準ライブラリだけで十分な Web サーバ/アプリの実装が行えると言われています。外部/3rd パーティーのライブラリを使ってその依存性などに悩む必要もないと。確かに触っていると…

Google App Engine (GAE) を使って Go Web アプリ/静的 Web コンテンツを公開する (その2)

前回は簡単な Go Web アプリケーションを GAE の環境に配置(deploy)するところまで記載しました。 www.morelife.work 今回は、続けて Go アプリ以外の静的コンテンツの公開と Go のテンプレートの利用を行っていきます。 GAE で静的ファイルを公開する GAE …