プログラミング
実に適当に試したやつで、適当な桁数のでかい数を適当にかけてみると順序によって結果が変わる。 >>> a = 100000000000.1 >>> b = 0.0000000000000003 >>> c = 100000000000.0 >>> d = 0.0000000000000006 >>> a * b * c * d 1.8000000000018001e-09 >>> d *…
Optional<T>が List<T>に最大要素数1の制約をつけたものと本質的に一緒だという発見は尊い。List<T>に使える操作はOptional<T>に使えて良い。MayBeだろうがSomeだろうが名前はなんでもよくて、最大要素数1のリストはあるかないかの二択を表現できるという納得が良いし、</t></t></t></t>…
[CoreML] Core ML Stable Diffusionを使ってみる を参考に。 セットアップ git clone https://github.com/apple/ml-stable-diffusion.git cd ml-stable-diffusion pip3 install -e . huggingfaceにログインしておく(必要なんだっけこれ) $(pyenv prefix)/b…
LLMのローカル実行を試す - GPT2 「機械学習エンジニアのためのTransformers」のサンプルコードをもとに以下のような実装をして、 import torch import pandas as pd import torch.nn.functional as F from transformers import AutoTokenizer, AutoModelFor…
よく忘れるので備忘。 pyenvで現在有効にしている Python 環境のパスは pyenv prefix で取得できる。pipでインストールしたパッケージの持つ実行バイナリなどはそこの bin/ に置かれているので、 export PATH=$(pyenv prefix)/bin/:$PATH または $(pyenv pre…
基本形 段取りを作る その通りにものごとが機能するので嬉しい 次 段取りを作る うまくいかない 段取りを直す うまくいくので嬉しい 次 段取りを作る 原因がわからないがうまくいかない 原因を探す 原因がわかる 段取りを直す うまくいくので嬉しい 次 段取…
なんだかわからないけど好きなんですよ。処理をストリーム型に変換してパイプ的につなぐのが好きです。依存関係をうまく整理して一本やツリー状にしたり、walk関数を実装したりするのが好き。 all? と any? 議論を眺めていて - 0xf 結局これもそういうことを…
一瞬、世の中で話題だったので、自分のメンタルモデルを棚卸しした。 前置き この議論は「実業務において、配列の全ての要素に対して条件が満たされれば真という関数があるとき、空配列に対しては真である『べき』かどうか」という、なんともいえないところ…
そういえば python は with 構文があって、かつタプルの多重代入がいけるのでこのように書けるのだった。 from contextlib import contextmanager @contextmanager def create_accessor(): print("before") try: tmp = {} def getter(k): return tmp[k] def …
bytes, err := fmt.Println("hoge") ... 戻り値は It returns the number of bytes written and any write error encountered. とされている。なるほど。Scanfとかはバイト数を返すのは違和感がない。だったら書き込む方も同様として違和感はない。そうです…
func Min(x, y int) int { if x < y { return x } return y } こういう簡単なコードに対してテストコードの生成を行うと以下のようなコードが生成される。 func TestMin(t *testing.T) { type args struct { x int y int } tests := []struct { name string …
こういうコードは書けない。 #!/usr/bin/env jq {"hello":"world"} なぜなら jq は渡されたファイルの1行目を無視するようなオプションがないからです。jsonが#始まりのコメントを許容するようになる未来はあんまり想像がつかない。 無理やりやろうとするな…
まあそれはそう、という感じではあるけど頭から抜けていた。 package main type F interface { Apply() } type f1 struct { } type f2 struct { } func (f1) Apply() { println("call f1!!!") } func (f2) Apply() { println("call f2!!!") } func build(p i…
pythonのジェネレータ的な書き味をgolangで - 0xfを書いていて気がついたのだけど、 なんか勘違いしていて、メソッドは型パラメータ持てないよといったとき、レシーバも同様かと思い込んでいた。 type ReadOnlyChannel[T any] <-chan T func each(s, e int) …
yield でシュッといけるわけではないのだが channel を返せばいいか? func each(s, e int) <-chan int { r := make(chan int) go func() { defer close(r) for i := s; i < e; i++ { r <- i } }() return r } func main() { for i := range each(10, 20) { f…
ジェネリクスあるのでコネコネしてみた。 たとえば int 二つをとる関数のカリー化関数は個別には簡単に書ける func curry(f func(int, int) int, x int) func(int) int { return func(y int) int { return f(y, x) } } これを、ジェネリクスを使って func cu…
かんぜんに書き慣れてないからですね。今日はメソッド定義時のレシーバについてちょっと悩んでた。 type User struct { name string } func (u User) getName() string { return u.name } func Test() { fmt.Println(User{name: "Pop"}.getName()) } これは …
戦争は女の顔をしていない3巻 スターリングラードの述懐をするおばさんの話は恐ろしい。石畳が血でぬめってあるけないとか大地で血と油が染み込んでない場所はないとか、言い回しがロシアっぽいけど、実際にそうだったのかはわからない。怖い。 表現の選び方…
awscli · PyPI 2系は pyplに公開されてないので、Macであれば homebrew でいれるか、公式通りにインストーラでインストールしましょう。gcloud コマンドみたいに自分自身をアップデートする仕組みがあると便利ですね。 クラメソさんが github からセットアッ…
s3path = f"s3://{bucket}/{item["Key"]}" でKeyを囲むダブルクォートがSyntaxエラーになる。SyntaxError: f-string: unmatched '['。 2. 字句解析 — Python 3.10.4 ドキュメント を眺めると、中括弧の中は python式なので書けそうなもんだけど、実際には " …
捨てメアドサービス「メルアドぽいぽい」ってやつのドメインリスト(https://m.kuku.lu/config_domain.php)が面白いテクで読みづらくなっていたので、読みやすく直した。インターネットでは機械可読であるのはだいたいにおいていいことであると思う。 . が画…
普段 gcloud auth login するように gcloud auth application-default login しておく。サービスアカウントの認証情報を手元におかなくてよくて便利...ではあるけど、手元環境だいたい権限すごく強いのでなるべくは開発用のサービスアカウントを発行して使っ…
ちょっと調べていたのでメモしておく。 今のところApproveされているかどうかは拾えなさそう。mergeableであるかどうかのチェックで代用するのが正解かな。mergeableは pull_request データ構造に存在する。 ワークフロー中、人間の承認を要求するようにする…
func fibonacci() func() int { f, n, r := 0, 1, 0 return func() int { r, f, n = f, n, f+n return r } } A Tour of Go 例題より。改めてなんとなく書き味がわかってきた。
読んだ。何度も並行と並列について取り上げられるので間違えなくなった。便利。 context.Backgroundの謎が個人的には解けた。いや、解けてないんだけどそういうものだということがわかった。慣例的に done チャネルを使っていたやり方を標準化したような感じ…
golang 引き続き眺めている。 io.Writer などは基本的にバッファリングしない。 log.Fatal は os.Exit(1) するよ。 Macの環境でインストーラによるランタイム環境と homebrew によるものが混ざっていると不便なのでどっちかに統一。だいたい homebrew でやっ…
だいたい普段からちょっとした書き捨ての処理はシェルスクリプトで書いてしまうし、テキスト処理やAWSの操作は python でやることが多く、jsonデータの処理は jq か nodeで書くことが多かった。のだけど、普段からプログラミングするのってそういうやつなの…
今日で11月が終わりだなんて信じられない Typescriptから入った若者に「どうして昔のJavascript設計した人は最初からちゃんと作らなかったんですか」と言われて苦しい気持ちになった。わかる。わかるよ。 Minecraft のバージョンアップもそろそろって噂が。 …
残念。 When you install an extension, it is saved in the browser's local storage. You can ensure your extensions are synced across VS Code instances, including different browsers and even the desktop, by enabling Settings Sync. (https://co…
寒いので絨毯を出した。仕事部屋では朝から暖房にスイッチ。冬だ。 昨日はdiablo2は相変わらず繋がらなかった。 家庭内ではその代わりに Unravel Two が流行している。リトルビッグ・プラネット的な手触りのパズル風味アクションゲームだけど、なんか半透明…