Lambdaカクテル

京都在住Webエンジニアの日記です

皿買った

主にパスタを盛るためのプレートを買った。直径は22cmで、食洗機に程良く収まる程度。 皿 実は、就職の際に実家にあったものを適当に拝借してきたプレートがあるのだけれど、特段自分の好みというわけでもなかった。 料理を食べない日は無いので少しでも自分…

プログラミング言語の高度な抽象化機能の主戦場は「テスト」なのかもしれない

同僚のコードをレビューしていると、たまたま複雑なロジックを使っている箇所を修正していて、付随するテストもけっこう複雑だった。APIレイヤのテストなので、JSONのスタブを書いてその通りに帰ってくることを確認する、みたいな作業を何度もやらなければな…

Shapelessの勉強(その4)

今日は、これまでに学習してきた Genericを拡張した LabelledGenericについて学習していく。これによって、型レベルでフィールド名や型名を扱う事ができるようになり、Shapeless が扱える処理の範囲がさらに広がる。 前回はこちら。 blog.3qe.us Literal typ…

だが不思議であり怖いのは、意義を感じながらやっていると、突然ぽっかりと穴が空いて、水を張ったガラスの器が床に落ちて砕け散ってしまうように、折れてしまうことが、予告無しに起こることだ

眠れないとき、同時に眠りたくないという感情も発生しているらしいことに気付いた。眠ってしまうと何かを喪失してしまうので、眠ろうという気にならない、ような。 じゃあどうして眠りたくないのかというと、自分が全然前に進んでいないような気がするから。…

文字が持っていたフィクション性の終焉

インターネットをしているとしばらくぼんやりした気分になってしまうことがある。それ自体はよくあることなのだが、自分の脳というか意識がどこに属しているのかが気になってきた。おそらく脳は自分がどこに属しているのかを知っていて、現実よりもより現実…

型付きのタスク同士の依存関係を解決するソルバは書けるのか その1

こういう話題: 今日 @yigarashi_9 と会話してて、「相互に依存し合ったタスクの集合からグワッとDAGを生成してトポロジカルソートして一つずつ解決していくみたいなパターンあるよね」みたいな話をしたけど、なんか名前あったっけみたいなモヤモヤが、ずっと…

ScalaTestでテストをIgnoreする方法いろいろ

開発していると、「テストが落ちるけど一時的にマージしたいからテストを通したい」ということがたまにある。そういうときにScalaTestではどうするのかについて調べてみた。 テストスイートごとignoreする 個々のテストをignoreする AnyFlatSpecを使っている…

(追記あり)CatsでReaderになるfunctionをいい感じに合成したいけど微妙

tl;dr (f, g) mapN (_ compose _) しましょう f -> g mapN (_ <<< _)って書くとちょっとかっこいい つづき 最近ずっとCatsの記事を書いているな…… 先日、(->) r がApplicativeになるという話をした。 blog.3qe.us んで、この(->) rが2つあるときに、これらを…

(追記あり)ScalaのMapをmapしてkeyが衝突するのを回避する方法

MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} }; ScalaにはMapというデータ構造があり、辞書を表現している。 val m = Map("windy" -> "melt", "fizz" -> "buzz") m("windy") // => "melt" そして、Mapにはmapメソッドが生えていて、KeyとV…

Linux 設定 プログラマーのおすすめ (X11 + GNOME編)

kazuhi-ra.hatenablog.com こういう記事を見たので、普段開発にLinux (OpenSuSE Leap) を使っている自分も同様のことをしておこうかなと思ったのでシェアします。自分もキーリピート上げておきたいなと思ったのが直接のきっかけです。 マウスポインタを最大…

(追記あり)List[Monoid]同士を垂直結合させるためにMonoidを作る必要はなかった・・・

モノイドからなるリストのリストを垂直に結合したい。 tl;dr 「ZipListってのがあるよ」 順にやってみる Parallel登場 追記 まずは下準備: import cats._ import cats.implicits._ // こいつらをぜんぶくっつけたい val xs = (1 to 9).toList // xs: List[In…

(Scala) MetalsのWorksheet気持ち良すぎだろ!

みんなScala書いてる?ScalaはJVM言語なのでコンパイルが当然必要なのと、sbtを起動するのがちょっと面倒で試行錯誤が大変なんだよね。 Scastieっていう便利なオンラインREPLもあるんだけど、もちろんちょっと時間がかかるし、IDEじゃないから補完とか効かな…

List[Monoid]同士を垂直結合させるようなMonoidが欲しいので作った

追記: 解決編から見よう blog.3qe.us 最近型クラスまわりで遊んでいて、ちまちま応用例を見付けられているので嬉しい。 今回は、モノイドのリスト同士を結合することについて考えていきたい。 まずは下準備: import cats._ import cats.implicits._ val xs =…

Monocleというライブラリについて軽く調べたメモ

最近は Scala 周りのライブラリをよく勉強していて、ShapelessやCatsについて勉強する事が多い。 ところでMonocleというライブラリも気になっていたので、Shapelessの勉強の息抜きに軽く調べることにした。 Monocleとは Monocleをインストールする Monocleの…

Shapelessの勉強(その3)

今回はChapter 4を扱う。 Working with types and implicits と題したこの章では、依存型と呼ばれる便利な概念を導入し、これまで説明してきたHList等の概念にさらに柔軟性を与える。 前回はこれ。 blog.3qe.us 用語についての説明 依存型 依存型の有無によ…

大きな画像のプレースホルダをあらかじめSVGで作っておくとかっこいい

写真を撮ったりすると大きな画像を貼ることがあって、現代の技術でもってしても大きな画像のダウンロードにはそれなりの時間がかかるし、回線が悪いと画面ががたついたり待たされたりして体験が良くない。 そこで、写真を簡略化した軽量SVGを用意しておいて…

Shapelessの勉強(その2)

Shapelessの勉強をしていて、これは2日目の備忘録。教科書は、The Type Astronaut’s Guide to Shapeless。 1日目はこれ blog.3qe.us 前回は、Chapter 2まで進み、GenericとHList、Coproductについて学んだ。 復習 Shapelessが用意している型クラスのイディオ…

Catsを使ってReader関手・Reader Applicative関手を勉強したよ

先日、Haskellで書かれたおもしろFizzBuzzの事を思い出した。読んだときはよく分からなかったけれど、型クラスへの理解が進んで、結構意味が分かるようになりつつある。そこで、それにまつわる要素をちゃんと勉強することにした。勉強といってもCatsでの使い…

Shapelessの勉強(その1)

ScalaにはShapelessというジェネリックプログラミングを推進するためのライブラリがあって、同じ型の構造を持つCase Class間を変換するといった操作ができるのだけれど、あまり詳しいことは知らなかったので、公式のガイドブックを読んで勉強することにした…

ScalaのCatsのAlternativeチョットワカル

Scalaの関数型ライブラリ(?)であるCatsには色々な型クラスが実装されていて、だいたい良く使うのはMonoidとかMonoidKとかApplicativeとかなんだけど、その昔関数型FizzBuzzのことを考えていたときにAlternativeが使われていて、そのことがずっと気になって…

Noneは空文字に写したい、そんな君のためにcombineAllがある

Scalaをやっていて、val x: Option[String] = Noneを""に写したいことが100万回くらいある。しかしx.getOrElse("")と書くのは納得いかない、という状況になっていた。 なぜかというと、Stringはモノイドだし、モノイドには空要素emptyがあるはずで、Option[A…

抽象的な考え事をしてはいけない

抽象的な考え事をしても意味が無いし却って悪影響があると思うようになった。つまりボンヤリ生きずに目の前の物事をよく見るべきということ。なぜか。2つの論点がある。 そもそも抽象的な考え事とは何かというと、ちょっとした隙間時間のようなものができた…

こういう系統の曲をずっと聴いている

www.youtube.com www.youtube.com www.youtube.com www.youtube.com チップチューンとはなんか違っていて、独特のヴォーカルと曲調、世界観や雰囲気が共通しているこういう曲をずっと聴いている。SoundCloudでこういう曲を聴きまくっていたら、勝手にどんど…

いま、 #開けるの下手部 がアツい

きみは、#開けるの下手部 というハッシュタグを知っているだろうか。 twitter.com これは、パッケージの開封に失敗した兄貴姉貴たちがその様子を、生き様を淡々と投稿しているハッシュタグである。 #開けるの下手部 pic.twitter.com/EAg03x1vGN— 春 (@HAL4ha…

期待しないことにすると幸せになる

さっき左足の小指を風呂場の間口にぶつけてひとしきり悶えたあと、世界における怒りの総和が増えてしまったわけだが、やはり生きていると腹が立つ。それは例えば自分の行跡の悪さだったり、他人の不出来に腹が立ったりと、枚挙に暇が無い。 しかしどうしてこ…

sshuttleのssh.pyは、いかにしてssh先で起動したpythonとの双方向通信を確立するか

仕事ではテレワーク環境を作るためにsshuttleを使っているのだけれど、中身はあまり読み込んでいないので、勉強のためにちょっと中身を読んでみたところ勉強になる箇所を見付けたのでメモ。 ssh.py sshuttleは、踏み台となるホストに対してsshセッションを張…

店のオフィシャルサイトには支払い可能な手段を明記してほしい、何も書かれていないと困ってしまう

個人的な信条として、可能な限り決済をクレカ(もしくはiDなどの電子マネー)に寄せたいと思っている MoneyForwardによる追跡がしやすくなるため 最近の流行り病のせいで、現金はあまり清潔な印象がないから、リスク管理の観点からもクレカを使いたい、できれ…

続²・目

あらすじ 右目がなんかおかしいので医者に行った。 blog.3qe.us 大学病院 目がおかしくなったけど目に異常はなかったので大学病院に行くことになってしまった。目がなんかおかしいな~というくらいの状態で大学病院に来てしまい、なんか申し訳ない。 京大病…

追われたり追われなかったりする人生と、巨大テック企業

id:kiryuanzu のTweetをたまたま見て、うなってしまった。 学生時代、前半で単位が取れなかったり後期は就活のために色々やったりで何かに追われるような感覚が常にあったように思うけど、社会人になってからはそういった感覚がなく穏やかな精神で保ち続けて…

続・目

目の検査に行ってきた。 あらすじ blog.3qe.us 近所の眼科行った 特にこだわりとかないので近所の眼科に行った。ネットで予約できる病院はまじでありがたい。 症状を伝えるとしばらく待たされて、様々な検査が始まった。 気球見せられるやつ 目が悪い人にと…

Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?