ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

firebase hostingのメンテナンスモードを考える

firebase hostingを利用しているサービスでメンテナンスモードの実装を考えた結果をまとめる。 理想 SEO的に503 service unavailable を返したい firebaseの機能だけでやりたい(cloud runとか使わない) 全アクセスを503ページへ tl;dr SPAモードのhostingで…

node.jsでgoogle recaptcha v3の検証をする

クライアント側で取得したGoogle reCAPTCHA トークンの検証をNest.jsでやろうと思ったら、無駄にハマったのでメモ tl;dr データをapplication/x-www-form-urlencodedで送れ 検証方法 公式のドキュメントで指定されているエンドポイントに対してPOSTでクライ…

2020年振り返り

もはや写真集を並べた画像を上げたいだけだが、今年も書く。 yuzu441.hateblo.jp 仕事 去年GCPメインでやっていくって記事に書いてたんだけど、会社のサービスをGCPで組んでてfirebase含め色んなサービスに手を出していて、その分awsに触れる事が余り無くな…

2020年課金したサービス

年末なので恒例のサブスク整理 yuzu441.hateblo.jp 今年はコロナで色々変わってしまったので色々増えた Intellij IDEA 11,110円/年 一時周りに合わせてvscode使っていたんだけど、ショートカットを覚えてしまったのでやっぱ乗り換え面倒だな〜と思った結果、…

Nest.jsで特定のAPIだけset-cookieを削除する

gaeにデプロイされているNest.jsプロジェクトで、レスポンスをエッジサーバーにキャッシュさせたい。 tl;dr いい感じのHeader設定すればキャッシュできそう csurf使ってるとset-cookieが邪魔 interceptorでresponseのheaderからset-cookieヘッダーを削除 GAE…

ブラウザのパスワード管理機能に覚えさせるものの指定

ユーザー登録を作っていて、登録時にブラウザに認証情報を保存した場合に保存される情報が意図したものではなく、IDではないものをIDとして保存してしまう問題に出会ったメモ。 急ぎの方は「まとめ」まで飛ばしてください。 題材のformと問題の解説 メールア…

ravpowerのusb-c充電器が壊れたけど保証期間内だったので交換してもらえた

リモートワークになる前に充電器を持ち運ぶのがめんどくさくて小さいのを会社に買ってもらって使ってたけど、ある時いきなりMBPが充電できなくなって割と焦った。ただamazonのページをよく見ると18ヶ月間のサポートがあったので問い合わせたら、新品を送って…

Yupのcastエラーを任意のメッセージに変える

yupのYup.date().required('プロパティは必須です')のようなメッセージを出すと思うんですが、Yup.date()の変換に失敗した場合に出るメッセージの指定方法がぱっとわからなかったのでメモ github.com tl;dr typeErrorを使う そもそもの発端 他の主要ブラウザ…

raspberry pi imagerを使ってosをインストールする

家でslack botなどが動いてるラズパイ3を別のことに使う事になったので、今動いてるものを昔使ってたラズパイ2に移すことにした。そのためにラズパイ3用の新しいsdカードを用意する必要が出てきて、前にリリースされたraspberry pi imagerをubuntuで使用して…

nestjsでpostのraw bodyを取得する方法

webhookのverificationでbodyParseされてないraw bodyが必要になって割と困ったのでメモ tl;dr 結局方法3で実装した ダメだったやり方 検索すると一番最初に以下のstack overflowが引っかかって、raw-bodyというnpmモジュールをインストールしてrawbodyを渡…

nest.jsで特定のパスだけcsrufのチェックを回避する

nest.jsで開発をしていて、webhookを利用したい時に特定のパスだけcsurfチェックを外したい時に公式の説明とかだと「csrfのガードの前に特定のエンドポイントを設定する」方法しか書かれていなくてnestでは使えなかった。 そのため直接app.use(csurf())する…

tsでクラスからファンクション以外のプロパティを抜き出した型を作る

Typescriptでコードを書いていてクラスの型から関数以外を抜き出した型が欲しくて、typescript meetupでMapped Typesとかのセッション見て頑張ったらできるのではということでやってみた typescript-jp.connpass.com 要するに以下のようなクラスからxとyだけ…

nest.jsの起動時のログを止める

github.com tl;dr 一旦LogLevelの設定でlogをなくす 起動後Loggerの設定を上書きする きっかけ 最近nest.jsを使っていて、serverless環境で動かす時にgoのechoだとできたんだけど、起動時のログ出るのなんとか抑制できないかなーと思って結構無理やりっぽく…

mi band4を買いました

母があまりにも通知に気づかないのと、寝てない自慢をするので睡眠トラッカーが欲しくmi band4を購入しました Xiaomi Mi Smart Band 4 【日本正規代理店品】スマートバンド 活動量計 万歩計 心拍計 健康管理 睡眠モニター 5ATM防水 着信通知 音楽再生コント…

GoogleFormがsubmitされた時にgasからメールを投げる

会社のwebサイトに導入したGoogle Formがsubmitされた時にG Suiteで用意したメーリングリスト(グループ)にメールを送りたかっただけなのに 信じられないくらいハマって時間かかったので、誰かが同じような所でハマった時に助けになればと思いメモ ハマった…

2019年振り返り

去年も書いてたやつの2019年度版 yuzu441.hateblo.jp 2019年 仕事 去年はGWまでには〜って言ってたけど3月には再就職してたので思ったより早かったな 転職してからはReact Nativeでアプリ開発したり、 Node.js × awsの案件をやったりしてた 今はReact, Golan…

2019年に読んだ本

きりがないので漫画は入れない 書き出してみてわかる、本読んでるつもりだったけど案外読んでなかったので来年は月1冊くらいは目標にしたい 技術書 仕事で必要になったりで買ってみたものの読む速度が遅くて、もらった本とかも未だに積んでてまずい ソフトウ…

2019年課金したサービス

年末という事で課金してるサービスの棚卸しを兼ねて出してみる Intellij IDEA 14688円/年 2年目継続 仕事でgolang使うし。。と自分に言い聞かせて購入した。最近vscodeが優秀なので機会減ってるけど、やっぱり使うと頭良い Google Domains 1400円/年 お○前.c…

Disney Deluxeにお試し登録した

年末に向けて映画見たりすることが増えるだろうなーということでDisney Deluxeに契約してみた オタクなので(ry pic.twitter.com/CbqbtJbbkk— ゆず☕️ (@yuzu_441) 2019年12月1日 Disney Deluxeとは www.disney.co.jp Disney、PIXAR、STAR WARS、MARVELの作品…

Alfredでアプリケーションが検索できない問題

Mac

Alfred4にアップデートしたタイミングでなぜかアプリケーションがAlfredで検索に引っかからなくなり起動できなくなった www.alfredapp.com たとえばslackを起動しようとするとこんな感じ 検索するとAlfredの"Clear Application Cache"などが出てくるが実行し…

jwtについて軽く調べた

仕事でjwt使う〜?って話になったので雰囲気しかしらなかったので調べてみた jwtとは <header>.<payload>.<sign>で構成されている 各要素が.(dot)で区切られている header {"typ": "JWT", "alg": "HS256"} typはJWTの文字列でjwtで有ることを表していて algは署名アルゴリズム HS256</sign></payload></header>…

今からReactを始める人に向けた型の話

周りでこれからReact始める人とかが増えてきて、以外と知られてないんだな〜ってことがあったのでReactに型をつけるというかTypeScript(以下ts), Flowと prop-typesの関係について書く tl;dr prop-typeはやめとけ tsはいいぞ prop-typesとは 昔はReactのcore…

Go Modules時代のimport

最近ちょこちょこGolangを勉強していて、1.13になってデフォルトONになるgo modulesを使った時にimportをどうやるのかわからなくて困ったのでメモ tl;dr go.modのmodule項目とwikiを見て github.com gopath mode go modulesじゃない時はGOPATHがあったのでim…

echoのバナー表示を消す

golangのwebフレームワークのechoで実行時に表示されるバナー(ロゴみたいなEcho文字列)がGoogleAppEngineのログ表示を見づらくしてしまっていたので、それの表示を止める 要するに↓のこれを表示しないようにします ____ __ / __/___/ / ___ / _// __/ _ \/…

就職しました

完全に書くの忘れてて学校の後輩に「まだニートなんですか?」みたいに聞かれたので書いておく 退職エントリー書いてから早くも7ヶ月、お気づきの方もいらっしゃるかと思いますが就職しました いつ就職したの 3月1日に初出社してました ちなみに出社初日の様…

parcelで動的にファイルを読み込む

yuzu441.hateblo.jp parcelでReactのアプリケーション書いてて、画像を動的に取得したい時にやり方が分からず困ったのでメモ やりたかったこと jsonか何かにデータを定義しておいて、そこから画面を組み立てたかった。 課題 静的な画像であればhtml内に含ま…

go modules環境でgolang-migrate/migrateを動かす

goを始めたのはいいがmodules周りがよくわからず、migrationしたいだけなのに手間取ったのでメモ github.com tl;dr cliをインストール migration用のファイルを書く mysqlの起動 mysqlに対してmigrate実行 cliのインストール そもそもmigrateはcliで実行する…

AsyncStorageをreact-native-community版に移行する

react nativeにはAsyncStorageというデータの永続化に使用する機能がありますが、今後react nativeのコアから出されてreact-native-community下に移されるみたいです github.com そのため将来的にAsyncStorageを使用しているアプリはこのパッケージに移行し…

Intellij IDEAの設定を同期する

thinkpad上のubuntuで開発してたんですが、macに開発環境を作る際に設定が面倒で環境を同期する方法を調べました 同期方法 設定の同期方法には公式見てる感じ2種類あるみたいですが、今回はIDEの設定同期機能を使います IDEの設定同期機能を使う 要jetbrains…

素振り環境にparcelのご提案

最近Reactを素振りするための環境として、前から話題になってたparcelを使ってみたらとても簡単に動作環境作れたのでその紹介 ja.reactjs.org parceljs.org githubに今回のコード等すべて置いといたので、読むの面倒な人はそちらで github.com 環境作成と依…