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

2024年2月に読んだ本まとめ

読む本をほとんどKindle Unlimitedにしてからというもの読んだ本の記憶が残らないようになったしまった。 そのため簡単にまとめておくことにした。 廃遊園地の殺人 (斜線堂 有紀) プレオープン中に起きた銃乱射事件のため閉園に追い込まれたテーマパーク・イリュジオンランド。 廃墟コレクターの資産家・十嶋庵(としまいおり)はかつての夢の国を二十年ぶりに解き放つ。 狭き門をくぐり抜け、廃遊園地へと招かれた廃墟マニアのコンビニ店員・眞上永太郎(まがみえいたろう)を待っていたのは、『このイリュジオンランドは、宝を見つけたものに譲る』という十嶋からの伝言だった。 それぞれに因縁を抱えた招待客たちは宝探しをはじめるが、翌朝串刺しになった血まみれの着ぐるみが見つかる。 止まらない殺人、見つからない犯人、最後に真実を見つけ出すのは…… 廃遊園地の殺人 なんか名前を聞いたことがある作家だと思ったらキネマ探偵カレイドミステリーの作家さんだった。 テンポが良いミステリで、それなりに先も気になり、楽しく読めた。 水曜日のダウンタウンのトナッピーを思い出した。 1984 (ジョージ・オーウェル) 1984年、世界は〈オセアニア〉〈ユーラシア〉〈イースタシア〉という3つの国に分割統治されていた。オセアニアは、ビッグ・ブラザー率いる一党独裁制。市中に「ビッグ・ブラザーは見ている」と書かれたポスターが張られ、国民はテレスクリーンと呼ばれる装置で24時間監視されていた。党員のウィンストン・スミスは、この絶対的統治に疑念を抱き、体制の転覆をもくろむ〈ブラザー連合〉に興味を持ちはじめていた。一方、美しい党員ジュリアと親密になり、隠れ家でひそかに逢瀬を重ねるようになる。つかの間、自由と生きる喜びを噛みしめるふたり。しかし、そこには、冷酷で絶望的な罠がしかけられていたのだった――。 1984 読んだことある。 ところどころ覚えている。でも結末とかストーリを全く覚えてなかった。 たぶん、設定が強すぎる。 読了はしていないので、3月に持ち越すことにする。

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

Hugo(ヒューゴ)でブログを立ち上げるまでにやったこと

Hugoでこのブログを立ち上げたので、HugoのインストールからGithub Pageで公開するまで。 環境 windws11 Hugo そもそもHugoのことをよく知らずに技術選定をしてしまったので、ここでしっかり調べておくことにする。 HugoはGoで記述された静的サイトジェネレータで 「ウェブサイトを構築するための世界最速のフレームワーク」 らしい。 The world’s fastest framework for building websites | Hugo 静的サイトジェネレータ 静的サイトジェネレーターとは、生(未加工)データとテンプレート群を基に、完全に静的なHTML Webサイトを生成するツールのことです。静的サイトジェネレーターは、基本的に個々のHTMLページをコーディングする作業を自動化し、それらのページをユーザーがすぐに使えるようにします。これらのHTMLページは事前作成されたものであるため、ユーザーはブラウザで即座に読み込むことができます。 静的サイトジェネレーターとは? 上記の通り、事前にHTMLを生成するのでパフォーマンスがいいのがメリットのひとつ。 Hugoのインストール 公式サイトに詳しい。 WindowsなのでWindowsのインストール方法通りに行った。 パッケージ管理システムのChocolatey、ScoopとWingetを使うインストール方法が提供されていた。他にも2つインストール方法が記載されている。比較表があるのでわかりやすい。 パッケージ管理システム ちなみにパッケージ管理システムとは、 コンピュータのプログラムを一貫した方法でインストールやアンインストール、ライブラリなどの依存関係を解決する流れをツールによって管理を自動化するシステム のこと。 npmとかComposerとかも言語のパッケージ管理ツールにあたる。 Chocolateyが有名っぽいけど、インストール方法がぱっと見わからなかったので、Scoopを使用することにした。 調べるとMacではHomebrew一択っぽい。Windowsではwingetが公式っぽく、インストールも必要なく使えて便利そうだった。 インストール情報をエクスポートすることもできるので、パソコンの買い替え時とかにも重宝できそうだった。 Windowsのパッケージマネージャー「winget」を使ってみた 今思えばwingetにすれば良かったと思うけど、Scoopを選択したので、それで進めていく。 Scoopでインストールする scoop install hugo-extended 上記コマンドを使用すれば、hugoの拡張版をインストールすることができる。 'hugo-extended' (0.122.0) was installed successfully! Hugoでサイトを構築する Hugoでサイトを構築するのは簡単で、下記コマンドを叩くだけでいい。 hugo new site site-name 上記を実行した後に、 hugo -D serve で、サイトを確認することができる。 テーマを選んで適応する Hugoは沢山のテーマが提供されている。Wordpressに通ずるものがある。 Hugo Themes 今回は一番上にあったPaperModを採用することにした。 hugo-PaperMod テーマを導入する git submodule add https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod サブモジュールって? 外部の git リポジトリを、自分の git リポジトリのサブディレクトリとして登録し、特定の commit を参照する仕組み...

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