Report of Scarlet

@sh4869 tech blog | 猩々緋報

  • AlpakkaのUnix Domain Socketサポートを使ってScalaからDocker Engine APIを叩く

    Docker Engine API はその名の通り Docker の API である。基本的に docker コマンドはこの API を使って実装されているので、この API を使えばコマンドでできることがすべてできる(僕の理解では)。 Develop with Docker Engine API | Docker Documentation この API は Unix Domain Socket を使って通信している。サンプルでは Python, Go, curl でのサンプルがあるが、Unix Domain Socket を使えればどの言語でも実装できる。Scala ではalpakkaが Unix Domain Socket をサポートしているので、これを使う。 Unix Domain Socket • Alpakka Documentation これでおしまいかというと
  • Travis CIからGitHub Actionsへの移行

    今までブログや日記等に travis-ci を使っていたところを、GitHub Actions に移行した。移行作業自体そこまで大変ではなかったけど、こういうのはメモしておかないと文法や作法を忘れてしまうので備忘録的に書いておく。 diary プロジェクト概要 レポジトリ: sh4869/diary: My Diary System written by Rust 構成 ビルドツール: Rust デプロイ先: Firebase 手元でもざっとビルドできるように、cargo runしてからfirebase deployするとデプロイされるようになっている。デプ
  • fs2(Scala)を使ったBotフレームワークを作る

    この記事はデジクリアドベントカレンダー 9日目の記事です。 こんにちは。この記事では、Scala の Stream プロセッシングライブラリである fs2 を使って、自作のBot フレームワークを作ってみたいと思います。 はじめに Slack や Discord 等で使われるための Bot を作る、といった場合、どのようなプログラムを想定するでしょうか。多くの場合は使いたい言語の Slack のライブラリを利用したり、 hubot や ruboty といったフレームワークを利用することを考えるでしょう
  • VSCodeのLaTeX Workshopの設定について

    VSCode で LaTeX Workshop を使うたびに混乱したくないのでまとめておく. LaTeX Workshop James-Yu/LaTeX-Workshop: Boost LaTeX typesetting efficiency with preview, compile, autocomplete, colorize, and more. これ.VSCode 上で適当に LaTeX を使うには十分なんだけど十分すぎて設定の概念を忘れてしまう. Autobuild LaTeX Workshop はデフォルトでAutobuild が有効.もしこれが気に食わないなら never にすればよいが,監視のプロセスは常に立ち続けているので VSCode 使うなら有効にして委ねてしまうほうが良い. recipes と tools LaTeX Workshop でコンパイルの設定をかえるときに主に「tools
  • ニコニコ改善インターンに参加してきました

    この記事ははてなブログから転載したものです。 株式会社ドワンゴ様によって主催された 2018年の夏のインターンである「ニコニコ改善インターン」に参加して来ました。そのまとめを書いていこうと思います。 概要 今回のインターンは「改善インターン」ということで、最初から実際の開発チームに参加し、その中で業務上の課題を与えられ解決していく就業型のインターンでした。一日目から普通にデスクを与えられて業務をやっていた
  • React RouterとContext APIを組み合わせて使う

    React Router と Context API を組み合わせて使う方法について記述しておく。 環境 React: 16.4.0 React-Router: 4.2.2 問題 React Router v4 から history.push をするときに、state という引数を渡すことができるようになった。 this.props.router.push({ pathname: "/to", state: { test: "test" } }); これは先のコンポーネントではthis.props.localtion.state.testとして取得できるのだが、これをあまりやりたくない。理由はいくつかあって、 そもそもデータの受け渡しの場所をむやみに増やしたくない this.prop
  • Rustでの日記生成ツール

    自分の日記Daily Bread1のビルドシステムはRustで作ってあって、これのシステムの(といってもそんな複雑なものではないが)の解説をしようと思う。 sh4869/diary: My Dialy System written by Rust 全体の構成 このRustのプログラムでは次のような流れで日記をビルドをしている。 日記ファイルの検索 ファイルそれぞれのビルド トップページのビルド 日記ファイルの検索 ファイルに日付情報を保存させておくのは使用ライブラリ上面倒だったので、ファイ