Just do IT

思うは招く

技術的負債返済の道のり:1年かけた挑戦と学び

これはフィヨルドブートキャンプAdvent Calendar 2023(Part 2)、9日目の記事です。 adventar.org 私は英語塾「Catal」で生徒が使う学習システムを開発しています。2022年秋から2023年秋にかけて、技術的負債を返済しました。 この記事では、何が起こっていた…

VSCode vimでwhichwrapを設定したい

settings.jsonにこう書く。 "vim.whichwrap": "h,l", これで例えば、行末でlを押したら次の行の文頭にカーソルが移動するようになる。デフォルトの挙動では、文末でカーソルが止まる。

Obsidianで素早く現在の時間を入力したい

「Natural Language Dates」というコミュニティプラグインをインストールすると、日時情報を簡単に取得できる。 たとえば、現在の時間を表示したいときはエディタで@timeと入力するといろいろ候補が出てくるので、nowを選択する。 他にも日付とか入力できる…

VSCodeですべてのタブをまとめるコマンド

VSCodeでエディタをすべてのタブ(VSCodeでは「エディタ」と呼ぶ)をひとまとめにしたいとき、コマンドパレットを開いて「join」と検索すれば「Join All Editor Groups」というコマンドが見つかるので叩く。 すると複数に画面を分割している場合、すべてがひ…

git stash pop, apply, dropの違い

特にpopとapplyの違いがよくわからなかったので公式ドキュメントを読んだ。 Remove a single stash entry from the list of stash entries. pop Remove a single stashed state from the stash list and apply it on top of the current working tree state,…

【GitHub】We noticed your personal access token (classic) will expire in 〜 days メールがきたらどうしたらいいか

パーソナルトークンを再生成しましょう。 Expirationの期間は好きなものを選んでください。regenerate tokenした後に表示されるパスワードをコピーしておいて、git操作時に以下のような表示が出るのでGithubユーザーネームとさっきコピーしたパスワードを貼…

【Rails】rails_adminアップデート時にUglifierでassets precompileエラー

結論 rails_admin gemを3.0.0 から 3.1.1にアップデートするときにuglifierでアセットのプレコンパイルが通らないエラーが出た。 Uglifier::Error: assets precompilation failed. 結論としては、uglifierがES6に対応してないためプレコンパイルが通らなかっ…

新たに作成したファイルもgit stashするには-uオプションをつける

普通にgit stashするとそのとき新しく生成したファイルはstashされない。 そういう場合は-uオプションをつけるでOK。 git stash save -u 'some message' ❯ git stash save -help usage: git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet] [-…

Railsでenum使用時にwhereで複数条件でデータ取得したい

たとえば、usersテーブルのroleカラムから、「student」と「parent」に該当するレコードを引っ張りたいとき。 以下のように書ける。 User.where(role: %i[student parent]) %i[student parent]の部分は文字列で User.where(role: ['student', 'parent']) の…

Warning: heroku update available from XXX to XXX が出たときにすること

結論:heroku updateをしてHeroku CLIをアップデートするだけ ❯ heroku update heroku: Updating CLI from 7.66.4 to 7.67.1... done heroku: Updating CLI... done Updating completions... done

VSCode GitHub Pull Requests and Issues で permalink を取得できない

GitHub Pull Requests and Issuesというエクステンションには、GitHub上にあるソースコードのパーマリンクを取得できる機能がある。 しかし、これがうまく取得できず404が返ってきてしまう。だがmasterブランチへチェックアウトすると問題なくパーマリンクを…

VSCodeでオリジナルスニペットを作る方法

コマンドパレットを開き、「snippet」と入力 「sni」あたりで「Configure User Snippets」が出てくるので選択 作りたいスニペットの言語を選ぶ(今回はRubyを選択) 以下のように書く { // 追加したやつ "debugger": { "prefix": ["db"], "body": ["debugger…

VSCode インデントの点線を消す方法

settingsを開く render white spaceで検索 Editor: Render Whitespaceの設定をselectionに変更した allになっていたのをselectionに変更した。他の設定でも点線は消せたがよくわからないのでデフォルト設定のselectionにしておいた。

Google Calendar で毎月〇日に定期予定を登録する方法

わかりにくかったのでメモしておく。 予定を作成し、カスタムへ。 間隔を「1ヶ月ごと」に変更。すると「毎月〜日」にインプットが変わる。 これで毎月20日などで定期予定を登録できる。

TypeScript async function の型をどう書くか

async関数のreturn typeにvoidを定義した。 const someFunc = async (): void => { await someMethod() } TypeScriptに叱られる。 Type 'void' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible co…

CommonJSとESModulesの違い

結論 CommonJSとESModulesは、どちらもJavaScriptでモジュールシステムを扱うときの仕様 Node.jsはCommonJSしかサポートしていなかったが、今ではESModulesもサポートしている 2022年現在ではESModulesを使うことが多い JavaScriptのモジュールシステムとは …

React で FC を使ってファンクショナルコンポーネントを定義する

React + TypeScriptでファンクショナルコンポーネントを定義するときの話。 以下の方法でも可能は可能。 type Props = { name: string } const Person = ({ name }: Props) => { return ( <h2>{name}</h2> ) } export default Person; ただ、Personがファンクショナル…

Lazygit ファイル ディレクトリツリー 表示・非表示

LazygitでGit操作をするとき、コミットするファイルのディレクトリが表示されているのをファイル名だけの表示にしたい。 ディレクトリ→ファイルで表示されている これはLazygitを開いているときにバッククォート(`)を打てばファイルパスだけで表示されるよ…

Raycastのクリップボード保存期間を伸ばす

RaycastでもAlfredのようにクリップボードにコピーしたデータの保存期間を伸ばしたい。 cmd + ,で設定を表示し、クリップボードの設定から変えられた↓

VSCodeのgitlensで表示されるアノテーションを非表示にする

github.com 上記のIssueでも質問があるように、VSCodeを使っているときにgitlensが表示する「You, 3 minutes ago」や「Author」などのアノテーションを非表示にした。 方法は以下のとおり。 gitlensで検索 左カラムから「Git CodeLens」を選択 Gitlens > Cod…

lazygitを英語で使いたい

lazygitが一部日本語で表示されるようになってしまった。英語に直したい。 まず、lazygitの設定ディレクトリを表示してパスを知る。 > lazygit --print-config-dir /Users/<username>/Library/Application Support/lazygit (usernameは自分のそれぞれのユーザーネーム</username>…

【解決】rails sをするとLibrary not loaded: /opt/homebrew/opt/postgresql/lib/libpq.5.dylibが出てサーバーを起動できない

brew update && brew upgradeで解決する人もいるようだが自分は変わらず。 結論、追加で以下コマンドを叩いて解決した。 gem uninstall pg bundle install 参考: postgresql - Library not loaded: /usr/local/lib/libpq.5.4.dylib - Stack Overflow [Mac]d…

【解決】npx create-react-appをするとLibrary not loaded: /opt/homebrew/opt/icu4c/lib/libicui18n.70.dylib

npx create-react-appをすると以下のエラーが出て実行できない。 Library not loaded: '/opt/homebrew/opt/icu4c/lib/libicui18n.70.dylib' dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.60.dylib に書かれている通り、以下を実行すると…

Uberドライバーアプリをインストールしてみた

CTOに「報酬設計の勉強になるよ」とおすすめされたので、Uberドライバーアプリをインストールしてみた。スマホはPixel7。 登録がカンタン スマホアプリインストールからの登録は円滑に進んだ。免許証やマイナンバーカードなどの本人確認書類をスマホで撮影し…

【対処】Support for password authentication was removed on August 13, 2021

プルリクをGithubにPushしようとしたら以下のエラーが出てPushできなかった。 Support for password authentication was removed on August 13, 2021 (Mac使用) ローカルからGithubにアクセスするための手段が変わったためPushできなかったとのこと。Githu…

Obsidian Ver 1.0でチェックボックスのショートカットキーが動作しないので設定し直した

ObsidianがVersion 1.0に上がって今まで使っていたチェックボックスを作るショートカットキー(command + Enter)が効かなくなってしまった。 Obsidian 1.0 - Obsidian Hotkeyの設定から「checkbox」で検索して以下のように設定し直した。

HHKB + Mac でCapsLockがかかったのを解除するには Fn + tabキーを押す

結論:Fn + Tabキーでオンオフできる MacでHHKBを使っていると、たまに誤タイピングでCaps lockがかかってしまう。自分はMac本体のCaps lockキーをControlキーに割り当てており、たまに思い出せなくなるのでメモとしてブログに残しておく。

「Rubykaigi2022 in 三重」へ行ってきました

三重県の津市でRubyKaigi2022が開催されました。初めてRubyKaigiにオフライン参加できたので振り返ります。 あちこちに有名人がいる! 会社メンバーや元メンバーに会えた お弁当が豪華 フィヨルドブートキャンプの関係者がめちゃ多い 登壇内容は相変わらず難…

【Rails】テーブルのカラムに後からコメントを追加したいときの方法

たとえば、usersテーブルのhoge_idというカラムにコメントをつけたいとき。 bin/rails g migration AddCommentsToUsers class AddCommentsToUsers < ActiveRecord::Migration[6.1] def change change_column_comment :users, :hoge_id, 'some comment here' …

Railsでテーブル名 is too long; the limit is 63 characters と怒られたのでインデックス名を変えたい

起こったこと Railsでt.referencesで外部キーを指定したときに、インデックス名が長すぎるよ!と怒られた。 Index name 'index_~~~' on table '~~~' is too long; the limit is 63 characters 解決:インデックス名を変える 以下のようにインデックス名をカ…