2022-01-01から1年間の記事一覧
Berkeley Monoというフォントがある。 berkeleygraphics.com プログラミングなどに使える有償フォントで、個人向けライセンスを購入すると75ドルで永年アップデート特典が得られる。 Berkeley Monoっていうフォントを大枚はたいて購入したんだけどマジで最高…
覚えておきたいのでメモ。 x <$ guard (y == z) こういう式をCatsで表現したいとき、Catsには<$も$>も、そのままの演算子では存在しない。そのかわり、Catsにはasという名前で同等のメソッドがある。 typelevel.org F[A] => B => F[B] as つまりこういう感じ…
tl;dr g(x)(f(x)) === g <*> f 共通の引数を持つ1引数関数たちはReaderとして合成可能であり、ReaderがApplicativeのインスタンスであることを利用している 本編 おい少年と呼び掛けてみたものの、関数型女子高生がいるかもしれないよね。それはさておき、 …
自分はVivaldiというブラウザを使っている。プライベートでも仕事でも。 vivaldi.com Vivaldiは、マウスジェスチャを標準搭載している。マウスジェスチャとは、右クリックしながらマウスを一定の型で動かすことで、特定の機能をトリガーするといった仕組みだ…
Cats Effectには、foreverMという >> を無限に繰り返すことと等価なメソッドがある: import scala.concurrent.duration._ import scala.language.postfixOps val wait = 100 milliseconds def indicator: IO[Unit] = IO.sleep(wait) >> (IO.print("\r|") >> …
こういう話題を見て、そもそも読み出すたびに内容が変化するようなファイル(としてふるまう何か)を作ることはできるだろうか?ということを考えた。 linuxで時間帯によって設定を変える方法の定石ってなんだろう やっぱタイマーで設定ファイル書き換え?なん…
今日はインターネットの友達や同僚などを交えてピザパーティをとりおこなった。 かなり久々に会う人もいたし、初めて会うという人もあった。ともかく、交友を深められたのはよかった。 たくさんの食器を使ったが、ほどよく食洗機に収まる程度にしか洗い物が…
RubyKaigi 2022に参加する。 rubykaigi.org 会場は三重県で、近所なので航空機を取らなくてすむから助かった。 良い時代なもので、入場するときに呈示するチケットも電子化されていて、こういう感じのメールが届く。 入場券のPDF もしくは、Apple Walletに追…
LGBTには生産性がないみたいな話をした議員が問題視されたり、末期患者は生きる価値がないみたいなことをブログに書いて爪弾きにされた著名人がいたりする。こういう炎上はよく起こる。なぜかというと、こういう発想を肯定するしないに関わらず、われわれは…
自分の世界があって、それを包括する形で社会という世界がある、つまり自分の世界は社会というより大きな世界の中にすっぽり包まれている、社会は自分の世界の上位互換だ、という感じで暮らしていると、社会に従ったことだけやったほうが良いみたいな感じに…
ホルムガードの花瓶が空になっていたので、有効活用するべく近所の花屋で向日葵を買ってきた。 かわいい
最高の睡眠を手にしたくて、マットレスを新調した。 想像してたよりずっとデカい ソフトウェアエンジニアに必要なのはいつも頭がシャキッとしている事だと思うけど、睡眠に失敗するとシャキッとすることもなくて、曖昧な状態で一日を過ごすことになってしま…
Circeというライブラリがある。ScalaでJSONまわりの変換とかをやってくれるライブラリだ。 circe.github.io dev.classmethod.jp 他方、Shapelessというライブラリがある。ScalaでHeterogeneous List、つまりリストなんだけど異なるデータ型を含むリストを扱…
GolangにはGoroutineという良いやつがある。非同期処理をいい感じにやってくれる賢い軽量スレッドだよ。 go-tour-jp.appspot.com そして、Goroutine同士はchannelという概念を通じて会話することができる。 go-tour-jp.appspot.com 他方、Scalaの非同期処理…
こういう記事を読んだ: uma-the390.hatenablog.com まず前提として、自分はScrapboxのヘヴィーユーザで、加えて会社でもScrapboxが大々的に使われている。いまプライベートScrapboxのページ数を数えてみたら、974ページあった。だからこの記事はScrapboxをdi…
日本でも結構話題になってたと思うけど、Nothing Phoneが最近ようやく日本でも発売開始されて、それなりに流通しだしている。 自分はいちはやくゲットしたかったのでスペインのAmazonで購入したんだけど、スペイン人がのんびりしているのか、なんの事情があ…
データ構造が決まるとアルゴリズムも自ずから定まる、みたいな話もあるように、ソフトウェアエンジニアリングの文脈では「どうデータを持つか」が重要だ。これはちょっとしたシェルスクリプトでも同様。 自分はUNIX哲学が好きで、なんかちょっとしたツールを…
Scalaの非同期処理まわりのハンドリングをやりやすくするライブラリ、Cats Effectの教科書を読んでいる。 essentialeffects.dev 英語は平易で分かりやすいので、諸君もぜひ読んでほしい。 そんな中、Cats Effectの機能の一つであるResourceの面白い応用を思…
こういう記事を見た。 zenn.dev これは非常に面白かった。特に、寿司の画像が面白かった。そこで、自分も同じように寿司の画像をドット絵にしてみたいと思い、真似することにした。 ただ真似するだけではつまらないので、Scalaで関数型っぽくスマートに実装…
うれしすぎるンゴ〜〜〜 あらまし 自分は技術記事をよく書いているのだけれど、そういう記事は基本的に構造化して書くから、必然的に見出しの量も多くなる。そして、構造化されているがゆえに、「この節の部分にリンクしたい」ということがあるものである。 …
SKKで入力していて、たまたまミスタイプで>を入力していたら、なぜか変換が走ってびっくりした。 ちょう> ↓ 超 役物を入力したら自動的に変換される機能があるからその一環かと思っていたけれど、>自体は入力されていないので別の機能みたいだ。 TL;DR 接頭…
シェルスクリプトとの組合わせでjqを書く機会があり、助かったのでメモ。 jqとはお馴染みのJSONオペレータであり、JSONを入力して色々な操作ができる。シェルスクリプトから使うと便利だ。 そんな中、jqとシェルスクリプトとでは「要素が無い」をどう表現す…
ニコニコ動画が好きでよく見ているのだけれど、ちょっとでも荒れがちな要素が動画に出現すると一瞬で動画が荒れてしまい、政治コピペみたいなので動画が埋まってしまうことがある。韓国っぽい要素が出てくるとずっとクドクド悪口を言い続けるコメントが投稿…
いもす法というのがある: imoz.jp ようするに、多次元に累積和を拡張したもの。競技プログラミングで2次元いもす法がよく使われるらしい(筆者は競プロやらないのでよく知らない)。 そして先日Recursion Schemeについていくつか記事を書いた: blog.3qe.us b…
前回、ドドスコ問題を解いた。 blog.3qe.us 記事ではRecursion Scheme自体の話題や、各構成要素の子細には立ち入らなかったため、Recursion Schemeを理解するためには不十分だった。そこでこの記事では、再帰的な構造、FixとPattern Functorとの関係、Recurs…
さる8月1日、計算機科学の根幹を揺るがすドドスコ問題が出題され、エンジニアたちは震撼した(意味: 面白問題が出たので、なるべくヘンテコな解法を使って己の技巧を誇示するためにエンジニアたちは競ってコードを書きはじめた)。 【問題】配列{"ドド","ス…
www.youtube.com 無限に雨が流れ続けるだけの動画がYouTubeにある。どういうわけか、自分はこの雨音を聞いていると安心してくる。小学校で、雨の日には外に出て遊べないから、誰もが図書室にやってきて、少し湿った空気の中で、外の暗雲と我々の上に嵌め込ま…
今の日常がずっと続いていくだろうという期待のような感覚が存在すると思っていて、だいたいの人は普段はこのモードで暮らしている。そして時折事件とか珍しい事が起こると、非日常モードにシフトして、しばらくすると元の落ち着いた状態に戻る。日常系アニ…
昔父親が体調を悪くして近所の病院についていったことがあった。 病気のことは割愛するが、問題は診察室で一種の奇跡を見たことである。かかりつけの医者は内臓の解説をするために、製薬会社のノベルティ然としたボールペンをやおら取り出すと、「ここに肝臓…
直近のコマンドの最後の引数だけ取り出す よくやるのでこれは覚えている。直前に入力したコマンド列のうち、最後の引数だけが取り出されて置換される。 !:$ 直近のコマンドの最後の引数以外を取り出す ↑の反対のことを行う。サブコマンドのみを置換したい場…