たいやき🍢 @ADuNPpTYEIjuUX9 みなさん!!!どうか!!おすすめの!クッキー缶を教えてください!年末年始をなんとか生き延びるための己のガソリンとして複数購入したいと思っています!!!特にない方は、牛乳1パックを消費できる加熱系レシピを教えてください!(帰宅後リュックごと廊下に牛乳半日放置してしまった) 2023-12-10 20:10:44
ECDSAの署名からどうして公開鍵が取得できるの?という聞かれて何でだろうねって話になったので調べてみた。 署名から公開鍵のセットを復元 Rubyではecdsaのgemを使えば以下のように署名と署名対象のメッセージから公開鍵を取得できる。(署名対象のメッセージはどうせなのでBitcoinで使用されているのと同じトランザクションのsighashを使用。そのためbitcoinrbのgemも利用している) 実行すると↓のように2つの公開鍵が抽出できる。 0259f6658325c4e3ca6fb38f657ffcbf4b1c45ef4f0c1dd86d5f6c0cebb0e09520 03a9255e098f4075e9ebfaf7859f459095667879db33e977fc8c91029afa8a2490 ↑のコード上の署名はこの内の0259f6658325c4e3ca6fb38f65
Go言語のtestingパッケージには、ユニットテストやベンチマークテスト、Fuzzingテストを行うためのツールが組み込まれています。 このパッケージには、いくつかの重要な型が定義されています。 testing.T testing.M testing.B testing.PB testing.TB testing.F 最後に testing.T testing.Tは、ユニットテストを行うための主要な型で、ユニットテストを行うためのメソッドが用意されています。エラーや失敗を報告するためのメソッド、サブテストを作成するためのメソッドなどがあります。 package main import ( "testing" ) func Add(a int, b int) int { return a + b } func TestAdd(t *testing.T) { result := Add(2,
単一リポジトリで複数モジュールを扱いたい 週末に SSH 越しに RDBMS サービスにアクセスする Go パッケージをリリースしたのだが このパッケージは3つのモジュールで構成されている。ディレクトリ構造はこんな感じ。 $ tree sshql sshql ├── go.mod ├── go.sum ├── mysqldrv │ ├── go.mod │ └── go.sum └── pgdrv ├── go.mod └── go.sum ちなみに mysqldrv および pgdrv パッケージは親の sshql パッケージに依存している。また mysqldrv と pgdrv の間には関係はない。 UML 図で書くとこんな感じかな。 これら3つのパッケージを別々のモジュールにしたのは,ルートの go.mod ファイルに各ドライバの外部パッケージを混ぜたくなかったから。モジュー
これでgo mod tidyが通ってしまいます。 が、単純にローカルにあるサブパッケージを参照したいためだけに マルチモジュール化+go.modにreplace手法を使うのは冗長すぎます。 もちろん、別の公開モジュールを一時的にローカルで参照したいのであればOKな手法でそのように解説しているものは問題ありませんが、初心者がそれらの記事をローカルインポートの手法であると誤解して実践しようとしてしまっているのが厄介なのです。 パッケージとは Goのコードからimport可能とするための概念 *.goファイルを含むフォルダーを「パッケージ」として扱います 同じフォルダ内のGoファイルの先頭にはpackage パッケージ名が統一されていることが必要です パッケージ名の命名が必要でフォルダ名と同じにすることが推奨されています go.modファイルが存在してしまうと単純パッケージではなくモジュールの扱
2023.10.5追記: Goチームからプロジェクトの目的に応じたディレクトリ構造についてのドキュメントが公式に公開されています。 https://go.dev/doc/modules/layout Goでプロジェクトのフォルダ構成どうしよう、とググると見つかるStandard Go Project Layout。とはいえ、これはかなりコード量を増やしてしまう恐れがありますので、導入する場合のデメリットも考えておく方が良いです。 特に、プログラマーは、最初にみたプログラミング言語のフォルダ構成を親だと思う特性があり、Javaや.NETに影響されるとかなり細かくフォルダを切りたくなったり、package privateなど細かく可視性を制御しようとしたりして、なおかつ「privateのテストってどうすべきなんですか?」とか議論を始めたりもしますが、Go先生によればこれぐらいは1パッケージにフ
Mastering Bitcoinにデジタル署名の仕組みが詳しく書いてなかったので、備忘録と内容補完のためにまとめます。 暗号学的ハッシュ関数についての用語 メッセージ:入力するデータのこと ダイジェスト(要約):メッセージをハッシュ関数に通した時の出力のこと 完全性:オリジナルのメッセージから1bitの変化もしていないこと。ダイジェストから確認・検証できる。 コミットメント:ハッシュ値を使ってメッセージとそのハッシュ計算を行った人間を確実に関係づけること ハッシュチェーン:ハッシュ値を入力としてハッシュ値を計算して行くことで、ハッシュ値の間の連続構造を改変不可能にしたもの ハッシュ値の衝突:異なるメッセージを入力したのに出力されたハッシュ値が同じになってしまうこと 衝突耐性がある:このハッシュ値の衝突が起きる確率が「ハッシュ値のサイズの平方根」という理想のとても低い確率になること 公開鍵
io.ReadAllの実装 Goのioパッケージ関数ReadAllは io.Readerインターフェースを引数に受け取り、([]byte, error)を返却します。 (Go1.18.0のコードから抜粋) 関数内部で[]byteを生成していますが、このsliceに対して行われている操作に学びが多いと思ったので、 この関数の挙動をsliceを中心にまとめたいと思います。 // ReadAll reads from r until an error or EOF and returns the data it read. // A successful call returns err == nil, not err == EOF. Because ReadAll is // defined to read from src until EOF, it does not treat an EO
この記事はNuco Advent Calendar 2023の9日目の記事です。 はじめに この記事ではDockerで開発環境を行うために理解してほしい概念と実際の開発環境の構築手順について解説を行います。大きく分けて、 ・Dockerの概念理解 ・開発環境の構築 これらの章により構成されています。この記事を読むことで、Dockerファイル、イメージ、コンテナ、Docker compose、compose.ymlを理解できるようになることを目指しています。Dockerに触れてみたい、Dockerの理解があやふやという方は参考にしてみてください! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 Dockerとは まず、Do
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く