Okarin note

頭の整理もかねて色々と書いていきます

個人的にvimでよく使う操作

ノーマルモード :i カーソル位置からインサートモードに移行する :a カーソル位置の次の位置からインサートモードに移行する :w ファイルの保存 :q ファイルを閉じる(更新してたら実行不可) :q! 強制的にファイルを閉じる(更新してても実行可能) :e ファイル…

【GGST】ラムレザルの個人的な立ち回りとかのメモ

はじめに どうもおかりんです。 メインで使っているラムレザルのメモです。 雰囲気で使っていることもあって攻略を考えるときに上手く言語化できなくて困ります。。。 なので今まで覚えてきたこととか書き残してみようと思いました。 それに書くことでみなさ…

Commitizenとcz-emojiを使っておしゃれにコミットする

コミットするときにプレフィックスだとかで色々迷っていたんですが、便利なツールがあることを知ったので使い始めました。 npmのパッケージなのでNode.jsが必要です。 環境 Windows + WSL2(ディストリ: Ubuntu20.04) Node.js v16.15.1 必要なパッケージのイ…

GithubのSSH接続の設定

パスワード認証がダメになってたらしい。(一年前。。。) 慣れていないせいか面倒だったので残しておきます。 SSHの鍵を作成する(公開鍵・秘密鍵) ssh-keygen -t rsa -t オプション 作成する鍵の暗号化形式を「rsa」(デフォルト)、「dsa」「ecdsa」「ed2551…

関数型プログラミングについてのまとめ

宣言型プログラミングというプログラミングパラダイムの一部 「何をするのか(What)」が重要で「どのようにするか(How)」は重要ではない。 結果を得るための手順を記述していく命令型プログラミングよりも何をしているかがわかりやすくプログラムの読解がしや…

huskyを使ってeslintとprettierを強制する

今まで手動でeslintとprettierをやっていたんですが漏れたり、 そもそも手動というのが辛すぎるのでコミット時に自動で実行してほしいなーと思ったのでやってみました。 eslintやprettierをコミット時に実行するモジュールとして「lint-staged」を使いました…

最近流行りのprismaを使ってみた。CRUD操作編

どうも、okarinです。 前は環境構築だけだったので基本の CRUD 操作をやっていきます。 使っていて思ったんですが prisma cli や client が型定義を自動で認識してくれているのでものすごく使いやすかったです。 TypeORM で作っていたテーブルクラスも必要な…

最近流行りのprismaを使ってみた。環境構築編

TypeScript で使える OR マッパー。 別の OR マッパーだと TypeORM がある。 今のプロジェクトでTypeORMは使っているがどう違いがあるのか気になったのでやってみる。 www.prisma.io prisma のインストール npm i prisma 初期化する npx prisma init このコ…

git remote prune originで解消しなかった話

経緯 GWが終わった後の出勤。 私は全部休んだのでブランチの状況が変わっていた。なのでまずはソースコードを最新にしようとしてgit pullをしたんだけれどその時にエラーが出た。 fatal: cannot lock ref ... 原因 ブランチ名の一部が競合したこと。 feature…

Dockerのプッシュが上手くいかなかった

概要 Dockerの入門サンプルをやっていた。 Dockerfileからイメージを作成してそれをDocker Hubにプッシュするまで。 プッシュすると以下のエラーが出て困っていた。 denied: requested access to the resource is denied 原因 コンソールからDockerにログイ…

ローカルのコンテナイメージを Container_Registry にプッシュする方法

めちゃくちゃ詰まったのでメモ。 GCP のコンソール上でできるかとおもったけれども Google Cloud SDK が必要で CLI で gcloud コマンドが必要だった。ドキュメントでも gcloud コマンドを使ってたのでそういうやり方しかないのだろう。 備忘録として残してお…

Node.jsのnextTick()について

nextTick() Node.jsのイベントループを提供しているlibuvではなくNode.js自体が提供している機能。 全ての非同期処理の中で最速で実行される。 実行箇所はイベントループの各フェーズごと。 nextTick()の処理が重いとイベントループ自体をブロックする。 ブ…

Next.jsでプロジェクト生成直後にTypeScript化する

どうも、okarinです。 Next.jsを使う時にデフォルトだとJavaScriptなので変更方法を忘れた時のためのメモです。 そのうちNext.js側で対応しそう 対応していた。。。 公式のGetting Startedを見たら以下のコマンドでよかった nextjs.org npx create-next-app@…

TypeORMでレコードを消す際に使うdelete()とclear()の違い(MySQL)

TypeORMのエンティティマネージャーに定義されている削除用のメソッドは二つあるので名称も違うし違いがあるだろうということで調べました。 それと業務で使っていて、実際にDBからレコードを消す際にどちらを使うか迷ったのも調べた理由の一つです。 clear(…

TypeORMを使ったテストでケースの数が増えると失敗する

詰まったのでメモです。 概要 テストケースが5件までは通過するが、6件を超えるとJestのタイムアウトでテストが失敗する。(タイムアウトは5秒で設定している 単体でテストを実行した時は成功し、複数同時に実行時は失敗する。 失敗位置を入れ替えた場合でも…

TypeORMの'default'のコネクションがないと言われるエラーについて

TypeORMを使っていて少しハマったのでメモ。 connection not found 'default' 上記のエラーでコネクションが確立できない場合がある。 原因 私のところで確認したのは以下の二つ。 Node.jsのプロセスが邪魔をしている サーバーを動かしたりしているうちに消…

Gitインストール後の初期設定

どうも、Okarinです。 PCを最近買い替えたんですが、その時にGitの初期設定をし忘れていてPushできなかったので書き記しておきます。 やること 個人の識別情報を登録する コミットの履歴やリポジトリにPushする際にも必要になる。 Gitをインストールしたら最…

Rustで別ファイルをモジュール化する方法

どうも、Okarinです。 処理を切り出して別ファイルに分けたい時があると思います。 JavaScriptだったらexportを付けてあげればよしなにやってくれたりしましたがRustだとちょっと違ったのでメモ。 モジュール化したいファイルを作る まずは呼び出したいファ…

はてなブログで改行する方法がやっとわかった

どうも、Okarinです。 タイトル通りですが、改行のやり方がずっとわかっていなかったのですがやっとやり方がわかりました。 というか前に調べたはずだけどブログ書かなさ過ぎて忘れている説が濃厚だったりする。 やり方 以下のように、半角の空白文字を2つ末…

情熱プログラマーを読んだ

okarinです。情熱プログラマーという本を読んだので感想を書こうと思いました。 技術的な内容よりもちょっと啓発本に近い印象だったと思います。 プログラマーとして生きていくなら技術をしっかり身に付けようだとか学ぶには自分から行くしかないなど心の在…

TypeScriptのconstとletの違い

www.oreilly.co.jp 上記のプラクティスTypeScriptを最近読んでいるのですが3章を読み終わって自分の理解が間違っていたことを知ったのでまとめておく。 具体的にはconstで指定した時とletで指定した時の型が違うこと。 let a = 3 // number型 const b = 3 //…

コツコツやることが大事

1年半ほど前にGoogleのエンジニアに転職した方の勉強法を見ると1月に3~5冊の本を買って一月で理解するというサイクルを作っているようだった。 一週間で一冊読了してその後も理解するまで何回か読むらしい。 色々読み込んでいるから忘れちゃうんじゃないの…

オプショナルチェイニング(?.)とNull合体を使うとシンプルになる

三項演算子を結構多用していたけれどオプショナルチェイニングとNull合体を合わせれば良かったらしい。 先輩からの指摘で知りました。 const obj = { one: 1, two: 2, } const hoge = obj.one != null ? obj.one.toString() : '' 上みたいに書いていたんです…

Insecure Request Warningを解消する

最近Pythonのお勉強を始めたので、 Webスクレイピングに手を出したんですけど… InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/ad…