技術
タイトル通りなのですが、知らずに毎日手であたたかみのあるノート作りをしていました。 Markdown管理ツールであるObsidianが便利で毎日使っている。 blog.3qe.us blog.3qe.us そして、その日の日記を書く活動を自分はよくやっている。 これはネットの知人が…
Scalaのスクリプティングツールとして愛用されているScala CLIのusingディレクティブの用語が一部リネームされました。後方互換性があるため、これからのスクリプトに新しい記法を使うとよいでしょう。
普段なんとなくjqを使うといったら.fooくらいの単純なフィルタや整形用途くらいで、ガッツリ勉強したことはなかった。 ガッツリ勉強していないので、.[]といった配列まわりの機能をゴリゴリ使えなかったのだが、基礎テクを学び直してある程度使えるようにな…
毎回忘れて調べているのでメモ。 ファイル名は.scala.scではなく.scalaにする もろもろをimportする object Main extends IOApp.Simple { val run: IO[Unit] = IO.println("Hello world") } を定義する scala-cli script.scala で実行できる //> using scala…
scrapbox.io から派生して、 blog.sushi.money こういうことが可能だとわかった。 はてなブックマークはAtom形式でのエクスポートが可能なので、 はてブにAtomを吐き出させる AtomをJSONに変換する あとは同じ というプロセスで、自分のはてブのコメントを知…
ふと気になったけど今まで記事書いてなかったのでいちおう確かめることにした。 ある1引数関数f: A => Bがあったとする。 type A type B val f: A => B = ??? Bがモノイドであるとする。 implicit class BMonoid extends Monoid[B] { ... } このとき、1引数…
ChatGPTは人類があやつる普遍的な言語という構造を理解しているのだろうか、それとも既存の入力をたくさん覚えているだけなのだろうか?ということを思っていたところ、ROT13を入力させてどう振る舞うか見てみるという実験を思い立った。 ROT13とは、単純な…
解説のためにmermaidとかgraphvizとかでグラフを書くことがあるのだが、あんなの人間がやりたくないのでChatGPTくんにやってもらえないかと思った。 例題として自然変換の可換図っぽいものを描いてもらう。 ja.wikipedia.org これから言う内容を、有向グラフ…
Twitterを見ていたら、 id:naoya さんがキーボードの写真を投稿していた。 Keydous NJ68 に Cannon Caps の Winter Tundra pic.twitter.com/J3p4HZM1r0— naoya (@naoya_ito) 2023年3月23日 コントロールキーの記号が面白いが、それよりも自分はコイルケーブ…
Catsのリポジトリを放浪していたら、Issueのタグでlow-hanging fruitという表現を見た。逐語訳すると低い場所に成っている果実である。 意味はおおむね推測できたが、思ったとおり、「容易に達成できる目標」くらいの意味。OSSの文脈なので、「パッとやれば…
Tapirなどの実験がてら、OpenAIにアクセスする実験をしていた。とりあえず実験に成功したので解説する。 github.com 実行すると、とりあえず挨拶してもらうようにしている。 $ OPENAI_APIKEY="..." OPENAI_ORG="..." sbt run こんにちは!ChatGPT APIへよう…
非常に面白い題材をTwitterで発見したのでメモ。 このようなツイートを見た。 scalaって関数にも部分型関係があって、コンパイル通ると思ってたけどダメみたい。なんでですかね?val f : Double => Boolean = (d:Double) => trueval g : Int => Boolean = fh…
言いたいことはタイトルで全部言ってしまったので以下は蛇足です。 蛇足 ECMAScriptなどの言語では、正規表現リテラルが存在しており、リテラルと一緒に正規表現オプションを設定できる。 // xオプションを設定する const re = /(\d\d\d) - (\d\d\d\d)/x; *1…
こんな記事を読んだ。 blog.s2n.tech 正規表現はメンテ不可能になりがちなので、キャプチャグループに名前を付けたり、キャプチャさせなかったりしてメモリを節約するのは良いこと。 Scalaでも同じことができそうだったけれどはっきりとは覚えていなかったの…
米語では、{}のことをbraceと呼び、[]のことをbracketと呼んでいる。 自分はこう覚えているというのをメモしておく。 brace 発音がカクカクしていない 丸いほうの{} bracket 発音がカクカクしている カクカクしているほうの[] ちなみに()はparenthesis(よく…
FFmpeg 6が出た。 nico-lab.net 特筆すべきは、AV1コーデックのハードウェアエンコード対応。-c:v av1_nvencを指定することで、NVEncを使ってGPUによるハードウェアエンコードが可能になる。 はずだった!! developer.nvidia.com rev.hatenablog.com 自作マシ…
Scalaでは時刻操作のためにJavaライブラリであるjoda-time(と、そのScala用便利ラッパーであるnscala-time)を使うことが多い。JVM言語の良い所だ。今回はタイムゾーンTZ操作にまつわるメモ。 withZoneでタイムゾーン表記を変更する DateTimeに対して定義され…
理解できないものに遭遇したとき、人間は割とすぐに白黒付けようとする。しかも、理解できる範囲でこれを行おうとするのだから、大抵うまくいかない。 自分がビットコインで卒論を書いたときもそうだった。当時はMt.Goxが破綻していた頃で、ビットコインに対…
仕事でコードを書いていて、タイトルのようなケースに遭遇した。 val a, b, c, ... = ??? // 定数 val x = f(a) // なんかを計算したり生成する val y = g(x, b) val z = h(y, c) ... val 最終的に欲しい値 = (x, y, z) こういうの。 これがもし仮に以下のよ…
最近Markdown編集ソフトウェアであるObsidianでブログなどの原稿を書くようになった。 blog.3qe.us このソフトウェア自体は便利なのだが、マシンをまたいだ同期機能は有料という仕様になっており、そのためOSを切り替えて作業している時などにはちょっと面倒…
zmmの開発で、背景として動画を使いたいというリクエストがあった。よく考えるとffmpegで最終的に合成しているのだから動画でも合成はできなくもなさそう。いったんchromiumが吐き出すレンダー画像を透過にして、あとから動画と合成すればよいのだ。 という…
とりあえず何かを覚えたらfizzbuzzにするクセやめたい import cats.syntax.all._ import cats.implicits._ extension (d: Int) def ~>(s: String)(n: Int) = (n % d == 0).guard[Option] as s val fizzbuzz = (((2 ~> "fizz" &&& 3 ~> "buzz") >>> (_.toList…
ScalaでなんかWebアプリをガッと作りたくなったときにどういう技術を使うべきなのか?という話です。自分はこういうふうに考えてるけどな〜というのを知見としてまとめておこうと思ってこの記事を書いています。いやいやこっちのが速いでしょみたいな話題歓…
一瞬ハマったのでメモ。 val m: Map[DateTime, Int] = ... このような、DateTimeからIntへのMapがあるとする。 ScalaTestで、ある範囲の日付がすべてこのMapにキーとして含まれていることを知りたい。 誤答: definedAtを使う val from = DateTime.parse("202…
たまに知人がObsidianについて言及していたので少し気になっていたのだが、はてなブログの下書きツールとして案外使えるかもしれないなと思ったので試しにこうして記事を書いてみている。 obsidian.md ObsidianとはMarkdownを編集するためのツールといったと…
この記事は、各RDBMSの識者にマサカリを投げてほしい記事です!マサカリ歓迎! あらすじ 最近MisskeyというSNSを始めた。具体的にはMisskey.ioという一番大きめなインスタンスにアカウントを構えたのだ。 misskey.io MisskeyはRDMBSとしてPostgreSQLを採用し…
先日、VOICEVOX CoreのScala用ラッパーを書いた。 blog.3qe.us これを使うと、Scalaからずんだもんを簡単に喋らせることができる。 で、ネットをさまよっているとVOICEVOXコミュニティのDiscordに参加することができた。 そこで会話してるうちに、ラッパーを…
ScalaでJARファイルにネイティブライブラリをバインディグして使いたいことがある時、いくつかの点を考える必要がある。 どういう仕組みを使うのか? どうやって呼び出すのか? どうやって同梱するのか? どうやってビルドするのか? どうやって展開するのか…
掲題の通りです。 皆様はVOICEVOXをご存知でしょうか。特に説明は不要と思いますが・・・ voicevox.hiroshiba.jp テキスト読み上げソフトウェアなのですが、キャラクターなどの創作文化と合わさって大きなエコシステムを形成している面白いシステムです。ラ…
気付きがあったのでメモ。 得意ではない事柄について引け目を感じてしまうことがある 過去に失敗・挫折を経験している場合はその傾向が強まる 引け目を感じている状態の場合、その対象を理解しようとするのが困難になる場合がある わかろうとしているのに全…