Lambdaカクテル

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

Invite link for Scalaわいわいランド

技術

TheDeskの紹介: TweetdeckライクなマルチプラットフォームMastodonフロントエンド

Mastodonには標準でWeb UIが装備されており、「上級者向けUI」を有効化するとそのままTweetdeck風のインターフェイスでMastodonを楽しむことができる。 当初はこれで十分だったのだが、最近Wildebeestというマストドン互換サーバをCloudflareが提供するよう…

CloudflareのMastodon互換ソフトウェア「Wildebeest」を立ててみたメモ

あまり調子が良くないので、2023年7月現在おすすめしません。なにか他の実装を選ぶことをおすすめします rinsuki.hatenablog.jp 先日Cloudflareから面白いアナウンスがあった。Cloudflareの基盤で動作する、Mastodon(おおむね)互換のソフトウェアWildebeest*…

Shure BETA57A買った

先日、ひょんなことから登壇することになった俺は、普段使っているヘッドセットのマイクの音質のへぼさに気付いてしまった!!(名探偵コナン) blog.3qe.us というわけでマイクを購入することにした。昇給したしまあエエか、この間もらった賞与もあるしな。…

Scala ループして生成する Rubyのtimesと同じようなやつ 令和最新版 Iterator.continuallyを使え

指定した個数の何かが欲しいことがScalaではよくあります。 インデックスほしいとき toを使うと良いでしょう。 (0 to 10) map (n => s"count $n") // => Seq("count 0", "count 1", ..., "count 10") 個数だけ指定してインデックスいらないとき Seq.fillを使…

X-E4をウェブカメラにするメモ

gphoto2とffmpegとv4lcを使うとvirtual cameraを作れる。 $ sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2 $ v4l2-ctl --device=/dev/video0 --info $ gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f …

Reactの状態管理ライブラリについて調べた記録

ぜんぜんReactのことよくわかっていないので勉強がてらまとめていったメモです。全然違うぞこの野郎!と思ったらこっそり教えてください。 ZMMという解説動画メーカーのフロントエンドを書いているけどReactなにもわかっていないので調べながら書いていると…

Reactぜんぜん分からなくて悔しいぞ!!!(Reactに詳しい人、教えてください)

ZMMという解説動画生成ツールを作っている。 www.3qe.us ZMM自体はXMLを受け取るのだけれど、エンドユーザはXMLなんて書きたくないだろうから、ミニマルなフロントエンドを作成して、フロントエンドがXMLを生成してくれるという仕組みを試しに作ってみている…

CatsのKleisliについて勉強したメモ

こんな記事を読んだ。 zenn.dev この記事の中にKleisliという概念が登場する。自分は圏論の専門家ではないのでKieisli圏の話ではなく、Catsを使ってKleisliを扱う方法、どう便利なのかについて勉強したことをまとめてみる。 flatMapの中身 Kleisliとは以下の…

ScalaMatsuri 2023にずんだもんを引っさげて登壇します #ScalaMatsuri #VOICEVOX

Scalaの国際カンファレンスであるScalaMatsuri 2023のCfPに応募したところ採択され、登壇の機会をいただきましたからお知らせします。 とき 2023-04-15〜2023-04-16 (変わる可能性があります) 20分間喋ります 今すぐGoogle Calendarに登録してください とこ…

他人のコードを読むときは頭の中で補助線を引いてから読むと良い(かも)

コードレビューなどで他人のコードを読むときに気付きがあったのでメモしておく。 自分は従来コードレビューなどで他人のコードを読むときは、ざっとdescriptionを読んでからコードをじっと追いかけるという読み方をしていたけど、これには限界があった。結…

Scalaのpipeでパイプライン演算子を作って遊ぶ

Scalaには2.13からpipeという面白いメソッドが追加されている。a pipe fと書くとf(a)になるという、それだけの仕組みだ。Elixirなどの他の言語では|>といった記号で導入されている。 blog.knoldus.com 記号の氾濫を避けるためにScalaは公式には単体の演算子…

マストドンのシェアボタンを自作した(追記あり)(今日から使えます)

自分でマストドンのシェアボタンを作ってみた。 <a href="#" class="js-mstdn-share-button">Share: {title} {}</a> <script defer src="https://github.com/windymelt/mastodon-share-button-scalajs/releases/latest/download/mstdn-share.js"></script> このコードを貼り付けるとテンプレートが展開されてシェアボタンになる。Share: {title} {}としている箇所は文言のテンプレートで、{}がURLで、{title…

さようなら、さようなら

薄々気付いている人もいたかもしれないけど、数日前からTwitterの利用はほぼ控えてマストドンで暮らしている。 mstdn.takuya-a.net これにはいくつか理由がある。まず第一にTwitterでの文化が疲弊していてこれ以上面白いことは起こらないだろうなという諦念…

VSCodeのformat-on-saveをEmacsでもやる方法

最近チームの同僚がScalaのコードベースにscalafmtでフォーマッタをかけてくれて、ソースコードの見通しがとても良くなった。 VSCodeはセーブ時に自動的にLSP経由でコードフォーマットを呼び出す機能(format-on-save)を持っているのだが、コードベース全体が…

ScalaからVOICEVOX呼んでずんだもんに喋らせる2023

ScalaからVOICEVOX喋らせようとしている人は多分絶対自分しかいないけど、ScalaからVOICEVOXを喋らせるためのラッパーであるvoicevoxcore4sを作った。 github.com この記事は、はてなエンジニアAdvent Calendar 2022の48日目の記事です。昨日の記事は id:gur…

CloudFront+S3構成だった自分のサイトをCloudflare+R2に移行した

自分のウェブサイト( http://www.3qe.us/ )をCloudFront+S3構成からCloudflareを使った構成に乗り換えたので、ひっかかった点やつまづいた点などをメモしておく。 結論としては普通に移行できたが、メールとの兼ね合いでDNSまわりでちょっと配慮が必要な部分…

去年は182本の記事を書いた人から見た、技術的なアウトプットに疲弊しないようにするコツ

文脈: blog.arthur1.dev 自分は割とガンガンアウトプットする方で、たまにバズって嬉しいという品質のブログ(これ)をやっている。普段どのような心構えでやっているのか、そして続けるコツみたいなものについて書いてみようと思う(参考になるかは全くわかり…

Scala-CLIを使うとScalaをいきなりバイナリに変換できてすごいので紹介したい

Scala-CLIをいじっていたらかなり良さそうな機能を見付けたので紹介する。 Scala-CLI あらかじめ説明しておくと、Scala-CLIとはScalaをLLライクに扱うための便利ツールチェイン。REPLでコードを試したり、スクリプトを実行できたりする。 scala-cli.virtusla…

PageSpeed InsightsのスコアをMackerelに投稿してくれるGitHub Actionを作成した(今すぐ使えます)

昨年、こういう記事を書いた。 blog.3qe.us しかしバイナリを直に配るよりもGitHub Actionsから呼び出せたほうがお得だろうなと思ったので、Actionとして作り直した(内部的にはバイナリをDLして実行するだけ)。 windymelt/psi-mackerel 以下のようにGitHub A…

Apache Spark: CSV読み込み時に同名のカラム(case insensitive)があった場合は勝手に数字が付与される

Apache SparkでCSVファイルを読み込むときに気をつけておきたい挙動に遭遇したのでメモしておく。 Apache Spark Apache Sparkとは、Apache財団によってメンテナンスされている分散型の計算・分析エンジンで、Scalaを第一級言語としてサポートしている。要す…

ScalaとApache Sparkで線形回帰学習をやってみる + 簡単なSpark使い方メモ

1年間病院にかからなかったということで褒美の図書カードを健康保険組合にもらったので、こういう本を購入した。 scikit-learn、Keras、TensorFlowによる実践機械学習 第2版作者:Aurélien Géronオライリー・ジャパンAmazon 鈍器っぽい。この本ではまずはscik…

Tensorflo兎 Scalaで遊んだ記録その4(XORを学習させる)

あけましておめでとうございます。2023年は兎年ですね。 そして、兎といえばTensorFlo兎(テンソルフロウ)。今回もTensorflow Scalaをやっていきます。 XORをニューラルネットワークで実装する platanios.org 公式ページのサンプルを見ながら、 techblog.glpg…

Tensorflow Scalaで遊んだ記録その3(スライス記法)

機械学習で大儲けしたいからTensorflow Scalaを勉強している。その1とその2はこちら。 blog.3qe.us blog.3qe.us 今回は、テンソルの一部を表現する優れた記法であるスライス記法についてのお話。 オリジナルの(?)PythonのTensorflowにはスライス記法という…

Tensorflow Scalaで遊んだ記録その2(テンソルを作る)

機械学習で大儲けしたいので、Tensorflow Scalaで遊んでいる。 前回はこちら。 blog.3qe.us Tensor Creation 公式ドキュメントの Tensor Creation をやってみる。 platanios.org import org.platanios.tensorflow.api.tensors.Tensor import org.platanios.t…

Tensorflow Scalaで遊んだ記録その1(インストール〜初回動作)

機械学習をやるためのライブラリであるTensorflowにScalaバインディングが作られているのを知った。 platanios.org 機械学習で大儲けしたいので、ちょっと触ってみることにした。 インストール platanios.org 公式マニュアルのバージョン情報更新が滞ってい…

ScalaのDeclineで引数無しのサブコマンドを定義する方法

ScalaのコマンドラインパーサDeclineで、サブコマンドを定義したいのだが、サブコマンドには引数が無い、というケースを定義したかった。 普通サブコマンドにはさらに引数が付くのだが、例えば init みたいなサブコマンドを定義したいときは引数はいらない。…

4つのプラグインを活用して、Scalaソフトウェアを楽々リリースしよう

hljs.highlightAll(); Table of Contents 前提: JVM言語を配るのは大変 sbt-release でリリースプロセスの手間暇を省こう プラグインをインストールする build.sbt と version.sbt の設定 MavenにはPublishしないようにする リリースフローを起動する リリー…

Scalaの入門的な記事のまとめ(コレクションメソッドや関数型プログラミングが中心)

アルバイトとして働いてくれている同僚がScalaに入門していて、基礎的なScalaの文法などは習得してくれているけれど、コレクションメソッドや関数型プログラミングのイディオムまわりでもっと伸ばせそうな雰囲気があるので、何か良い資料を知らないですかと…

Scala記事を書き続けている話

Table of Contents はじめに 最近Scalaまわりのアウトプットを積極的にやっている Scalaの裾野を広げたい 高度な記事はあるけれど 入門的な記事を増やす お高く留まらない言語にしていく お高く留まった言語から滅んでいく 裾野がプログラミング言語を支えて…

Java(Scala)アプリどう配ってますか

自作の解説動画作成ツールがある程度形になってきたので、配布について考えている。 www.nicovideo.jp zmmはScalaで書かれたアプリケーションなので、JVMで動作する。JVM言語の配布形式には色々あるのだけれど、zmmではとりあえずJARを配ることにした。 Scal…

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?