mmag

ハマったことメモなど

2021-01-01から1年間の記事一覧

peaceiris/actions-gh-pagesのCNAME指定を忘れがち

github.com peaceiris/actions-gh-pages にお世話になっているんだけど、気づくとGitHub PagesのCustom Domain設定が外れていておかしいなと思ったらcnameの指定を忘れていた、という話です。 - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: git…

button_downとbutton_upとpressedシグナルの違い

GodotのBaseButtonのシグナルに button_down button_up pressed がある。雰囲気でbutton_downシグナルを使っていたんだけど、pressedって何だ?と思ったので調査。 pressedはActionModeの値によって投げられるタイミングが変わって ACTION_MODE_BUTTON_PRESS…

Phoenix.ChannelTestでどのsocketに対するpushか区別する

例えば特定のchannelに2人が接続したらそれぞれに違うメッセージをpushするような何かを考える。 socketをsocket/1やsocket/3でつくってsubscribe_and_join/4すればテスト上でjoinまでできる。ただしassert_push/3は引数にsocketを与えられないので、2人のど…

Podman Composeを使ってみてる

趣味の開発環境でDocker ComposeをやめてPodman Composeを試してる。前にも入れてみるかとやったことがあったんだけど、そのときはM1 Macには対応してませんと言われて断念した。もしかしてそろそろいけるんじゃねと思ったらいけてそう。 brewで入れる。 $ b…

npmの--onlyオプションが消えてた

BOLGで使っているNode.jsのバージョンが古いままだったことに気づいたので、Node.jsとNPMのバージョンをそれぞれ16系と7系にしたところデプロイが失敗するようになった。どうやらNODE_ENV=productionでdevDependenciesのパッケージが見つけられていない様子…

actix-web + dieselの結合テストでトランザクションをコミットしない

やりたいこと Diesel使ってDBに繋いでいるActix Webアプリのテストをするときに、ドキュメントのIntegration testsにはこんな例が書いてある。 #[actix_rt::test] async fn test_index_post() { let mut app = test::init_service(App::new().route("/", web…

BOLGのDBをPostgreSQL 11から13に上げた。

大体はここにある手順に従っただけなんだけど、記録だけ残しておきます。 render.com まずはざっくり全体像。Dashboardが投稿画面。Frontが表示画面。FrontはGETリクエストしかしないので、投稿画面側だけ閉じて、メンテ中も記事の閲覧はできるようにしまし…

Phoenix 1.6

BOLGのバックエンドAPIで使ってるPhoenixのバージョンを1.6に上げた。だいたいはプロジェクトを新規作成するときの変更なので、単にバージョン上げて、あとmix.exsのcompilersから:phoenixを外しただけ。JSON APIなので、assets関連の諸々もなし。 CHANGELOG…

slotの中身を表示するCustom Element

CSSフレームワークのドキュメントとかでよくある、ボタンが並んでて、その隣にそれらがどんなHTMLでマークアップされているか併記されてるやつをやりたくなり、ちょっと調べたら行けそうだったのでやってみた。 こう書くと <show-content> <button id="inc">+1</button> <script> let count = 0 document.quer</script></show-content>…

Babylon.jsでgltfファイルを読み込む

gltfはBlenderでつくることにします。まずはなんでもいいので適当な造形をしてください。 で、Exportからgltfで書き出します。モディファイアーを適用にチェックがないと残念なことになるので注意。 今回はImportMeshします。第一引数に空文字を渡すとすべて…

BOLGをキーボード操作できるようにした

https://bolg.in の話。今までできなかったんかいって感じだけど。適当にやってるとtabでフォーカスできない要素をつくってしまうという例です。Chromeでしか確認してないのでマネするときは注意。 フォーカスできない要素をフォーカスできるようにする ブラ…

Phoenix LiveViewでCustom Elementsを使うとスタイルが崩れる

github.com 自分はShoelaceってのを使っていて起きたんだけど、どうやらLiveViewがDOMの差分を更新するときに、Custom Elementの子ノードに手を出してしまうっぽい。phx-update="ignore"を付けて回避。 <sl-button phx-click="like" phx-update="ignore"> <sl-icon slot="prefix" name="hand-thumbs-up"></sl-icon> Like </sl-button>

chezmoi始めた

chezmoiっていうやつでdotfilesの管理を始めた。 github.com これまではオレオレscriptでsymlinkを貼っていたけど、先人の知恵と共にあるべきじゃろうと思ってオレオレはやめて、ついでにもう使ってないファイルを整理。 概念と操作 いまいち全体像がスッと…

useContextで取ったstoreのstateをtemplateで参照するとエラー

Vue

仕事でも趣味でもVueアプリケーションのテスト書いてるんだけど、趣味の方でなんか起きた。 <template> <input :value="store.state.foo" /> </template> <script lang="ts"> import { defineComponent, useContext } from '@nuxtjs/composition-api' export default defineComponent({ setup(_props, context) { const { store } = use…

Vueコンストラクタを外から渡せるようにしておくと便利

Vue

仕事でVueのコンポーネントのテストを書いていたんだけど、localVueつくっていくつかuseっていう↓みたいなコードをどのテストにも書かないといけなくて、どうにかなりませんかという気持ちになったという話。 import { mount, createLocalVue } from '@vue/t…

GitHub ActionsからHexにパッケージを公開する

name: Publish on: push: tags: ['v*'] jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: erlef/setup-elixir@v1 with: otp-version: '23.1.1' elixir-version: '1.11.2' - uses: actions/cache@v1 with: path: deps key:…

おつかれ actions/setup-elixir

https://github.com/actions/setup-elixirがアーカイブされていることに気づいた。移行先はhttps://github.com/erlef/setup-elixir。パッと見た感じ使い方は変わってなさそう。

マクロでTypespecsも書く

前の記事でもマクロでゴニョゴニョするときのことを書いたけど、今回もそれ系。 前提 マクロで関数定義してるとします。使う例は以下のAPIクライアント。Enum.mapで回しててdefmacro使ってないけど、やりたいことはcompile timeに関数を定義するってことなの…

Elixirでドキュメントのテストを書く

結論 https://hexdocs.pm/elixir/Code.html#fetch_docs/1を使えばできる。 前提 以下を題材にします。 defmodule MyModule do @moduledoc "モジュールの説明" @doc "関数の説明" def my_fun do end end @moduledocや@docに期待した内容が書かれているかテス…