VSCodeのドットファイルをGithubで管理し常に最新を共有する

パソコンがもっさりしている。 どうやら買い替えの時期が近いらしい。 そもそもキーボードもふたつのキーが機能していない。 そういうわけで環境を色々整理し始めた。 WingetでWindowsにアプリをインストールする 上の記事もそういう理由。 今回はVSCodeの環境をdotfilesで管理できるようにする。 dotfilesとは dotfilesとは下記のこと。 dotfilesとは、ホームディレクトリに置いてあるドット(.)から始まる設定ファイル(.bashrcとか)を管理しているリポジトリのことである。シェルやエディタの設定からアプリケーションの設定まで幅広いものが置かれている。 引用:ようこそdotfilesの世界へ - Qiita つまりこれを使用すれば、どのパソコンでも一瞬で同一の環境を作成することができる。 会社のパソコンと自宅のパソコンの設定だって一緒にできる。 VSCodeでやってみる そういうわけで、もっともよく使用するVSCodeでやってみることにした。 管理するのは2つ。 拡張機能 環境設定 拡張機能 拡張機能は code --list-extensions > extensions でインストールした拡張機能の一覧を、 C:\Users\name\.vscode\extensions に一覧で書き出すことができる。 環境設定 環境設定は、 C:\Users\name\AppData\Roaming\Code\User > keybindings.json > settings.json に存在している。 この3つをGit管理するようにする。 https://qiita.com/miiina016/items/018331b36ecf57ed8973

投稿日 · 2024-03-16 · 更新日 · 2024-07-07 · 1 分 · nove-b

Golangのnet/httpでホットリロードの恩恵を受けたい

ホットリロードが欲しい 普段メインでreactとかAngularを使用しているので、標準でホットリロードが搭載されていることが当然になっていた。 しかしGoのnet/httpにはない。これが本当に開発体験に悪影響を及ぼしている。 ということで、何とかできないか調べてみた。 Goのバージョン go => 1.21.4 DevContainerを使ってみる Go net/httpサーバーのホットリロードにAirを使ってみた Devcontainerに airをインストールして、DevContainer上で実行する。 色々調べた結果上記が1番楽そうだったので、やってみる。 やり方は上記の記事を引用する。 リポジトリ直下に .devcontainer フォルダ作成 .devcontainerフォルダ内に 下記内容のdevcontainer.json を作成。 { "name": "Go", "image": "mcr.microsoft.com/devcontainers/go:0-1-bullseye", "features": { "ghcr.io/devcontainers/features/docker-outside-of-docker:1": { "moby": true, "installDockerBuildx": true, "version": "latest", "dockerDashComposeVersion": "v2" } }, "postCreateCommand": "go install github.com/cosmtrek/air@latest" } 保存し、プロジェクトを再度開き直す DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す インストール完了後 プロンプト上で air と打って Airを立ち上げる 順序通りやったところ、 DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す の箇所で、 [+] Building 903.3s (2/3) => [internal] load build definition from Dockerfile.extended 0.3s => => transferring dockerfile: 2....

投稿日 · 2024-03-09 · 更新日 · 2024-07-07 · 1 分 · nove-b

JavascriptのConsoleはGoLangでどう表現するのか

Golangの出力方法がたくさんある いつもJavascriptをメインで使用している。Javascriptで最も使用するのはConsoleオブジェクトに間違いない。 console デバックの際には本当にお世話になっている。なかでもconsole.tableには本当に感謝している。いつもありがとう。 もうConsoleがなくては生きていけない体になってしまったので、Golangでも同様に出力しようとしたら、何やら書き方がたくさんあって困惑した。 Golangで出力する fmt.Printf() 第一引数に書式指定文字列を受け取り、第二引数以降に渡した値をフォーマットして出力 fmt.Printf({書式指定}, {値}) fmt.Println() 値を標準の書式で出力。 fmt.Printf(%v, {値})と同じになる。 fmt.Println({値}) 調べたらこれくらいしかなかった。 じゃあなんで混乱したかというとコードを書いていてlog.Printf()というのが出てきたせいである。 log.Printf() / log.PrintIn() パッケージ ログは、単純なログ パッケージを実装します。これは、出力をフォーマットするためのメソッドを備えたタイプLoggerを定義します つまりどういうことかよくわからないので、実装してみる。 fmt と log の違いを実装してみる。 func main() { fmt.Println("Hello, fmt") log.Println("Hello, log") } // Hello, fmt // 2024/03/07 22:25:23 Hello, log logの方は日時のデータが付与された。 使い方はよくわかないけど、ひとまず整理はできたので良しとする。

投稿日 · 2024-03-04 · 更新日 · 2024-07-07 · 1 分 · nove-b

AngularでAPIリクエスト前後の処理を共通化する

環境 node => v16.13.2 angular => 15.0.4 AngularでリクエストヘッダーにAuthorizationを共通して持たせたい とかレスポンスのStatusCodeを見て共通処理を書くと言ったAPIリクエスト前後の処理をどこで実装するのがいいのか調べてみた。 HttpInterceptor どうやらドンピシャっぽいのがこれで、ドキュメントによると Intercepts and handles an HttpRequest or HttpResponse. つまり、リクエストとレスポンスそれぞれに処理をできますよということ。まさに探していた機能に間違いない。 使ってみる リクエストに対して処理をする import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, } from "@angular/common/http"; import { Injectable } from "@angular/core"; import { Observable } from "rxjs"; @Injectable() export class AuthInterceptor implements HttpInterceptor { constructor() {} intercept( req: HttpRequest<any>, next: HttpHandler, ): Observable<HttpEvent<any>> { const newReq = req.clone({ headers: req.headers.set("Authorization", "Bearer " + "token"), }); // cloneされてヘッダーを付与したリクエストを次の処理に引き渡す return next....

投稿日 · 2024-02-29 · 更新日 · 2024-07-07 · 1 分 · nove-b

WingetでWindowsにアプリをインストールする

環境 windws11 winget => v1.6.3482 パッケージマネージャーを使用する この前、Hugoをインストールする際にパッケージマネージャーであるScoopを使用した。 Chocolateyが有名っぽいけど、インストール方法がぱっと見わからなかったので、Scoopを使用することにした。 調べるとMacではHomebrew一択っぽい。Windowsではwingetが公式っぽく、インストールも必要なく使えて便利そうだった。 Hugo(ヒューゴ)でブログを立ち上げるまでにやったこと その際に、パッケージマネージャー(Winget)の便利さを初めて知った。 なんとインストールしたソフトウェアの情報をjsonにして出力することができるらしい。 だけでなく、インポートをすることで記載されたツールをインストールすることができるらしい。 つまりこれを管理しておけば、パソコンを変えた時にソフトウェアの引継ぎができるとのこと。 今更だけど、そろそろパソコンを買い替えたと思ったので、少しでも引き継げるように使用してみることにした。 Elkをインストールする ちょうどマストドンのWindowsクライアントが欲しかったので、Elkをインストールすることにした。 Wingetのバージョン確認 WingetはWindowsに標準でインストールされているので、 winget -v v1.6.3482 特に何もせずともバージョンを確認できる。 インストールしたいソフトウェアを検索 winget search "Elk" 名前 ID バージョン 一致 ソース --------------------------------------------------------------------- TagIt CO Elk 9PCGNR99HGKQ Unknown msstore Elk Elk.Elk 0.4.0 winget LDCad RolandMelkert.LDCad 1.6d2 winget Obsidian Obsidian.Obsidian 1.5.3 Tag: zettelkasten winget インストールする winget install Elk.Elk 見つかりました Elk [Elk.Elk] バージョン 0.4.0 このアプリケーションは所有者からライセンス供与されます。 Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。 ダウンロード中 https://github.com/elk-zone/elk-native/releases/download/elk-native-v0.4.0/Elk_0.4.0_windows_x86_64.msi ██████████████████████████████ 7.31 MB / 7....

投稿日 · 2024-02-17 · 更新日 · 2024-07-07 · 1 分 · nove-b