最近 ソフトウェアアーキテクチャの基礎を読んでいるんですが、「不安定度」のところでやたらと引っかかったのでメモ。 まず求心性結合(依存性入力)、遠心性結合(依存性出力)について。 おそらく依存性入力、依存性出力と言い変えた方がわかりやすくはある。…
環境 Scala 2.13.8 ちょっと気になってrefinedのPositiveなどに比べて、requireで契約的に正数を縛る場合、どのくらいのパフォーマンス差があるか調べてみた。 コードはだいぶ適当だが以下 package bench import cats.implicits._ import eu.timepit.refined…
2022/07/24 現在、まだslack integrationが本家で対応していないのでざっくり書いてみた。 Get notifications of Discussions in slack (or equivalent) · Discussion #2844 · github-community/community · GitHub ただしインジェクション対応など適当なの…
環境 Scala 3.1.2 scala3では Any と AnyVal & AnyRef の間に Matchable というタイプが追加された。 A First Look at Types | Scala 3 — Book | Scala Documentation scala3_class_hierarchy 理由はこちら The Matchable Trait 何が変わったのか? この変更…
環境 Scala 2.13.8 Scala 3.1.1 scala3で削除される機能の一つに「弱適合性(= Week Conformance)」というのがある。 docs.scala-lang.org しかし説明を読み、コードを書いてみても実際に何が問題になるのかが最初よく分からなかった。 ここではscala2からsca…
環境 rust 1.57.0 rustで文字列操作難しい・・・もう少し綺麗な書き方ないだろうか? rustで3桁区切りなど、文字列に区切り文字を入れる
基本的にSRE本を自分で実施する際に理解しやすい形にまとめたもの。 前提 この文章はインシデント(障害や緊急対応など)発生時の対応関するポストモーテムに関して記述する。 プロジェクト終了時などその他のタイミングで行うポストモーテムとは異なる。 用語…
環境 fluent-plugin-s3 1.6.0 関係性のまとめ アクション 関係ある設定 説明 s3:ListBucket check_bucket true trueであればfluent起動時にbucket存在をチェック。存在しなければ起動をリトライするfalseだと起動はするが書き込み時に失敗する s3:GetObject …
環境 Scala 2.13.6 Scalaだと例外を常にTryで処理しがちなので、反省メモ。 もちろん単純に例外出す可能性ある個所をTryで包むのは問題ない。 困るのはTry[Either[L, R]] みたいなネストを避けたい時。 refinedとかでよくある。 例えば以下は単純にStringをE…
双方と共にビジネスモデル定義のためのオブジェクトという点では共通だが、実際には意味は大幅に異なる。 DDDでは 以下のように定義される 「エリック・エヴァンスのドメイン駆動開発 第5章」から 主として同一性によって定義されるオブジェクトはエンティテ…
Infrastructure as Code入門としてaws samでLambdaを作るところからはじめてみる aws-cliとaws-samはinstall済み sample templateから基本的なアプリケーションをビルト 仕組み的には以下のような順序で作成される ローカルでsamコマンドでアプリケーション…
各ストレージ インスタンス ストア ブロックレベルストレージ インスタンスが停止・休止・終了、障害時にはデータは失われる インスタンスの再起動時はデータは維持される インスタンスの起動時のみストレージタイプ、ボリュームの変更が可能 インスタンスタ…
どのモジュールがどの位置にあるのかを忘れがちなので簡易まとめ 概要図 クラウド単位 AWS Cloud ようはAWSの事だが、概要図ではAZの同意味で使われている リージョン 地理的に離れた領域 アベイラブルゾーン(AZ) リージョン内で複数の独立した場所、IDC。 A…
どういう状態か 何のコマンドでも以下のようになる。 $ aws lambda list-functions An error occurred (AccessDeniedException) when calling the ListFunctions operation: User: arn:aws:iam::111111111111:mfa/username is not authorized to perform: la…
Ubuntu 20.04.2 LTS gpgが使うhkpプロトコルはport 11371 を使う。 なので gpg: keyserver receive failed: Server indicated a failure このエラーは大概portを変えれば解決することが多い(と思う) # github-cliのpgp鍵取得 # https://github.com/cli/cli/b…
typescript 4.2.3 Slackで新チャンネルを作るときに、ユーザーもまとめて招待できるコマンドを作成してみた。 チャンネル名はある程度固定で使う事を想定した。 また(だいぶ前から) claspがtypescriptをサポートしていたので書いてみた ・・・が割とコードが…
環境 Scala 2.13.0 [1] giter8のテンプレートを用意 $ sbt new foundweekends/giter8.g8 [info] Loading settings for project global-plugins from metals.sbt ... [info] Loading global plugins from /home/takafumi/.sbt/1.0/plugins [info] Set current…
環境 archlinux 5.0.9-arch1-1-ARCH rust 1.34.1 neovim 0.3.5 rust rls(Rust Language Server) https://github.com/rust-lang/rls rustup component add rls rustup component add rust-analysis rustup component add rust-src neovim dein + LanguageClie…
環境 archlinux 5.0.9-arch1-1-ARCH rust 1.34.1 neovim 0.3.5 rust binary https://rustup.rs/ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh echo 'source $HOME/.cargo/env' >> ~/.zshrc rustc -V rustc 1.34.1 (fc50f328b 2019-04-24…
環境 archlinux 4.10.6-1-zen 今時pptp使うなという気持ちもあるが、使ってるところでは未だに使ってるので、設定ハマった事のメモ。 基本的にはマニュアル通り。 - PPTP クライアント - ArchWiki ハマったのは トラブルシューティング によるとgreはINPUTし…
環境 archlinux 4.14.4-1 非インタラクティブモードではaliasは展開されない。 非インタラクティブとは $ bash test.sh みたいに実行する事。 普通に実行すると以下のようになる $ cat ~/.bashrc alias ll='ls -la' $ bash test.sh test.sh: line 5: ll: com…
環境 archlinux 4.10.6-1-zen 既に作成済みのパーティション拡張。 ファイルシステムはext4。 archlinux以外でも対外似たような感じだと思う。 1. bootディスクを使ってシステムを起動。 この時はarchlinux-2017.04.01-x86_64.isoを使用。 2. paretedでパー…
環境 Windows 10 VirtualBox 5.1.12 Vagrant 1.8.7 docker 1.13.1 壮絶に勘違いしていた事。 Windowsで現行Dockerはdocker for windowsしかないと思ってたorz 普通にdocker toolboxとかあるんですね。 docker for widows docker toolbox vagrant 仮想化方式 …
環境 Ubuntu 16.04 Selenium Standalone Server 3.0.1 普通はwebdriver.until.*を条件に使う事が多いが、普通に独自の値や条件判定で設定する事もできる。 以下のように、webdriver.Conditionのインスタンスを返すようにすればいい。 Conditionインスタンス…
環境 Ubuntu 16.04 Selenium Standalone Server 3.0.1 $ mocha test.js // 略 WebDriverError: unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"16896.1","isDefault":true},"id":1,"name":"","origin":"://…
環境 Ubuntu 16.04 サーバーイメージだとxorgがないのでインストール $ sudo apt-get -y install xorg xserver-xorg 起動 $ startx xeyesとかで確認してみる。 終了 $ exit
環境 Scala 2.11.8 ScalikeJDBC 2.5.0 基本的にはこの内容 Configuration - ScalikeJDBC scalikejdbc-conifg, application.confは設定方法によって必要 build.sbt libraryDependencies ++= Seq( "org.scalikejdbc" %% "scalikejdbc" % "2.5.0", "org.scalike…
環境 Scala 2.11.8 シールドクラス(トレイト)を継承したサブクラスは、すべて同一のソースファイルに定義される。 そしてシールドクラスをパターンマッチに使用されると、match式の網羅性をコンパイラがチェックできる。 sealedなし このときはcaseのパター…
環境 Scala 2.11.8 CentOS7.0 sbtやactivatorを実行してmoduleをダウンロードしてくるときに、proxyで引っかかる時の対策。 内部で実行されるjavaコマンドがproxyで引っかかってるので、起動スクリプトを編集する手もあるが、以下の環境変数を設定する事で解…
環境 Scala 2.11.8 CentOS7.0 なんか忘れるのでメモ scala> val l1: List[Int] = Nil l1: List[Int] = List() scala> val l2 = Nil:List[Int] l2: List[Int] = List() scala> val l3 = List.empty[Int] l3: List[Int] = List() scala> val l4 = List[Int]() …