とんたんの技術メモ

注)ただのメモです。

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

vscode + docker + eslint + prettier の開発環境構築メモ

prettierがnode_modulesにないとエラーをはいた。 コンテナでインストールされてるnode_modulesがホスト側にマウントされてないことが原因。 macにnode入れてとか汚染したくないので他の方法を模索… docker-composeでyarn installするのは起動遅くなって嫌だ…

nuxtjsで画面遷移するとストアーのデータが書き換わるのでエラーになる件の対応

ほぼ同じ内容で、同じstoreを使いまわしてるページで画面遷移すると、キーは同じだけどバリューの内容が変わるのでエラーになる。 例えばA to Bの場合、Bのfetchが完了後に、ストアが変わるのでAが再レンダリングされてから、Bがレンダリングされて遷移する…

APIエンドポイントを分けるか分けないか?

公開している記事一覧と、自分の下書きを含む記事一覧のAPIどう分ける? /articles /me/articles or /articles /articles?me 最初分けてみたけど管理が大変…パターン増えたらファイルが多くなって超めんどくさいw なので、エンドポイントは1個にして、コン…

Elixirの配列操作いろいろメモ

コレクションをキーでグループ化して、指定キーに追加する # こんな配列を… inputs = [ %{ a: 1, b: [ %{aa: 1} ] }, %{ a: 1, b: [ %{aa: 2} ] }, %{ a: 2, b: [ %{aa: 3} ] } ] # こうしたい… outputs = [ %{ c: 1, d: [ %{cc: 1}, %{cc: 2} ] }, %{ c: 2,…

ビジネスロジックとは?

ユーザとのやり取りをする部分(プレゼン層)と、データを読み書きをする部分(データアクセス層)以外の部分がビジネスロジック。

Nuxtjsでレスポンシブ対応したときのメモ

SSRでスマホの場合、タブレットの場合、PCの場合、、、と要素を出し分けをしたい場合、$vuetify.breakpoint は使えない。 なので、プラグインにこんな関数を書いて使った。 リサイズにも対応してくれる。 inject('isXs', () => { if ($vuetify.breakpoint.wi…

サブセットフォントメーカーで使う文字パターン

サブセットフォントメーカーは文字が重複しててもうまくやってくれるらしい。 JIS第1水準漢字(2965字) 亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井…

vuetifyでflex使った2カラム実装

この構造にして、<scroll-top>に justify-content: flex-end; 適用すると、サイドメニューの右端に簡単に持ってこれる。 float使う方法だと、scroll-topにちょっと細工しないといけないので使わない。 サイドメニュー幅は固定なのでグリットは使わない。 <template> <div class="p-container"> <div class="p-main"> <div>メイン</div> </div> <div class="p-side"> <div>サ</div></div></div></template></scroll-top>…

よく使う開発文字列

css # 中央寄せ ## absolute position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; ## flex display: flex; align-items: center; // 上下中央 justify-content: center; // 左右中央 flex-direction: column; // 縦並び flex-wrap: wr…

API仕様書の書き方

googleのが分かりやすいのでこれ参考に書けばだいたいイケる developers.google.com

slackのアクセストークンを取得する方法

ここにアクセス https://api.slack.com/apps Create New App でアプリを作成 スコープを設定 permissions > User Token Scopes で chat:write 権限を付与 アプリをインストール permissions > Install App To Team ボタンを押す アクセストークンをコピーし…

nuxtjs SSRでライフサイクルが実行される場所

サーバーサイド nuxtServerInit plugin middreware(画面遷移でも実行) validate asyncData fetch beforeCreate computed created クライアントサイド plugin beforeCreate computed created beforeMount mounted destroyed plugin, beforeCreate, computed…

elixir phoenix で論理削除する方法

結論、論理削除よりバックアップのほうがいいかも?で使わなくなったんだけどメモ残す。 自前実装前に試したこと hexdocs.pm 最初にecto_soft_deleteを試したんだけど 削除日がUTCから変えられない 削除済みデータを取る方法がない という理由で自前実装する…

elixir勉強メモ

コレクション キーワードリスト キーワードリストは通常​​、関数に引数を渡すため、またはオプションを渡すために使用される second = [first_name: "Philip", last_name: "Brown"] マップ map = %{first_name: "Philip", last_name: "Brown"}

docker+elixir+nuxtjsでアプリを作ったときの振り返り

これは2020年5月時点でのお話。 アンブレラプロジェクトにするか迷った APIモードで使うだけなら境界がないので今回は通常プロジェクトにした。 APIとか管理画面とか明確な境界がある場合はアンブレラが良さそう。 でも、アンブレラはErlang内部で個別にサー…

Lambda[nodejs]でエクセルファイル内の文字列を置換したときのメモ

const XlsxPopulate = require('xlsx-populate') const outputXlsx = os.tmpdir() + '/contract.xlsx' try { const workbook = await XlsxPopulate.fromFileAsync(`${appRoot}/contents/contract-template.xlsx`) const sheet = workbook.sheet(0) const ass…

リバートされたプルリを、間の変更を取り込みつつ再度プルリする

流れ 最新devから新しいブランチを切る そこで、リバートされたものをリバーして 競合とか解決して プルリする コマンド git log --oneline --- ・・・ 24858e4 Merge pull request #2181 from xxxx/feature/revert-1591 0c39b00 Revert "Merge pull request…

npm installができないを修正したときのメモ

キャッシュクリアしてインストールするとだいたいイケる npm cache clean --force npm cache verify --force // node_modules消してinstall実行するコマンド npm ci npm install package-name 依存関係の問題でインストール出来ない場合は、npm installのロ…

MACでZIPが展開できない

とあるZIPをMACで開こうとするとこんなエラーが出た。 どうやら日本語ファイルが含まれているとなるらしい。 こんなときはコマンドで展開できる。 ditto -V -x -k --sequesterRsrc --password --rsrc ./hogehoge.zip .