mmag

ハマったことメモなど

初回プッシュ以外でもプルリクをつくるリンクを表示する

remote: Resolving deltas: 100% (7/7), completed with 7 local objects. remote: remote: Create a pull request for 'baz' on GitHub by visiting: remote: https://github.com/foo/bar/pull/new/baz remote: このリンク。そのブランチを初めてプッシュし…

細かくpackage.jsonでmainを指定しておくと便利

読んでなるほどと思ったのでメモ。言われてみれば確かにそう。 components └── Button ├── Button.module.css └── Button.tsx みたいな構造になっているときにButton.tsxをimportすると import Button from '~/components/Button/Button' と書かないといけな…

Phaser 3でコントローラーを使う

最近遊んでいたのでメモ。 PhaserにはScene Pluginという仕組みがあるようです。そこでthis.game.events.onでupdate前にコールバックを仕込めるので、そこでコントローラー入力周りのお世話をしています。 // main.ts import Phaser from 'phaser' import { …

BOLG依存パッケージアップデート業 2022/09/18

ちょっと前にdependabotを入れたせいで(おかげで)大丈夫そうならポチポチアップデートしてしまっており、しばらくこのシリーズも書いてないことに気づいたので、今朝来ていたdependabot PR2つだけ書いておく。 logger_json https://github.com/Nebo15/logg…

BOLG依存パッケージアップデート業 2022/07/30

API Dependency Current Latest Status credo 1.6.4 1.6.5 Update possible ecto_sql 3.8.3 3.8.3 Up-to-date ex_aws 2.3.3 2.3.3 Up-to-date ex_aws_s3 2.3.3 2.3.3 Up-to-date gettext 0.19.1 0.20.0 Update possible hackney 1.18.1 1.18.1 Up-to-date id…

PostgreSQLでpublic以外のスキーマをつくって使う

dev.classmethod.jp という記事を見かけたのが発端。いままで特に深く考えずにpublicスキーマの世界で生きていたんだけど、ユーザごとにスキーマつくって権限あげるのがお行儀いいよな、と思ってやってみた。 -- init.sql CREATE DATABASE mydb TEMPLATE='te…

BOLG依存パッケージアップデート業 2022/06/12

APIだけちゃちゃっとやるます。 Dependency Current Latest Status credo 1.6.4 1.6.4 Up-to-date ecto_sql 3.7.2 3.8.3 Update possible ex_aws 2.3.1 2.3.2 Update possible ex_aws_s3 2.3.2 2.3.2 Up-to-date gettext 0.19.1 0.19.1 Up-to-date hackney 1…

BOLG依存パッケージアップデート業 2022/04/26

API ex_aws 2.2.10 2.3.1 Update possible oban 2.10.1 2.12.0 Update not possible phoenix 1.6.6 1.6.7 Update possible phoenix_pubsub 2.0.0 2.1.1 Update possible plug 1.13.4 1.13.6 Update possible ex_aws https://github.com/ex-aws/ex_aws/blob/c…

VuexからPiniaへの乗り換え

Vue

BOLGの投稿画面はNuxt 2でできていて、3にするための準備で何度かNuxt Bridgeにするチャレンジをやっている。ただ毎回なにかしらがコケて成功しないので、もういっそのこと直接2から3へ上げてやろうということで、その準備としてのPinia移行。Vuex 4を使うと…

Rails.cache.delete_matched

Railsのキャッシュをまとめて消すときにRails.cache.delete_matchedが便利だった、というだけの話。 最初は Rails.cache.redis.keys.grep(/hello/).each do |key| Rails.cache.delete(key) end みたいなことをやりかけて、これはなんかミスってるでしょと思…

BOLG依存パッケージアップデート業 2022/03/24

API Dependency Current Latest Status credo 1.6.3 1.6.4 Update possible ecto_sql 3.7.2 3.7.2 Up-to-date ex_aws 2.2.10 2.2.10 Up-to-date ex_aws_s3 2.3.2 2.3.2 Up-to-date gettext 0.19.1 0.19.1 Up-to-date hackney 1.18.1 1.18.1 Up-to-date id_to…

GitHub ActionsのhashFilesがちゃんとエラーで落ちるようになった

BOLGの言語バージョン上げるかと思ってプルリクつくったらCI (GitHub Actions) が落ちた。テストで落ちたとかじゃなくて、その前の actions/cache@v2 つかった依存性周りのキャッシュのとこで何か言われておる。 Error: /home/runner/work/blog/blog/./.gith…

BOLG依存パッケージアップデート業 2022/02/23

いつもさらっとChangelog見て雰囲気で上げてるんだけど、どうせなら何したか書くか、という1発目。npmは数が多くてまとめるの面倒なので、とりあえずhexだけ...。 Dependency Current Latest Status credo 1.6.2 1.6.3 Update possible ecto_sql 3.7.2 3.7.2…

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。パッと見た感じ使い方は変わってなさそう。