~fvknk/bk

技術関連の備忘録

MeCab + Natto で日本語カナ混じりの文字列を読み方順でソートする Gem を作った

概要 従来の String をソートすると、一般に予想される辞書順ではなく、ひらがな→カタカナ→漢字の順でソートされます。 irb(main):001* array = [ irb(main):002* 'ゆく川の流れは絶えずして、しかももとの水にあらず', irb(main):003* 'メロスは激怒した', …

VSCode で変数名・メソッド名などを翻訳する拡張機能を作る

はじめに VSCode 上で変数名やメソッド名を翻訳する拡張機能を作成しました。 今回ははじめて拡張機能を作成したため、その備忘録的な内容です。 解決したかったこと コード内の変数名で馴染みのない英単語が用いられている場合に、以下の手順を踏むことが面…

VSCode + textlint で文章校正を行う

概要 個人的なメモで文章を書く際に文章の表記揺れが発生していることがあり、自分で後から見直す際に読みにくくなっていたため、VSCode で textlint を導入しました。 環境 Node.js:v20.18.0 Volta:v2.0.1 やったこと 1. textlint をインストールする 今…

(2..0).size・(2..0).each を読み解く

はじめに Ruby で (2..0) のように値の大きい方を先に、小さい方を後に定義した場合に、以下のようにエラーにはならない、かつ範囲内の要素数が 0 になる挙動が不思議に思いました。 (0..2).each { |v| p v } # ↓出力結果 # 0 # 1 # 2 (2..0).each { |v| p v…

はじめての OSS コントリビュート

概要 先日、はじめて OSS のリポジトリに向けて Pull Request を作成して、マージされました。 内容はドキュメント修正なので、直接技術的な貢献をしたわけではありませんが、せっかくなので記録として残しておこうと思います。 対象リポジトリ github.com P…

Gist HTML Preview で Gist に投稿した HTML+CSS+JavaScript のコードをプレビューする

はじめに Gist HTML Preview というサービスを使って、localhost を参照せず、Gist にアップロードした HTML+CSS+JavaScript のコードをブラウザでプレビューしました。 サービス: gistpreview.github.io GitHub: github.com 選定の経緯 たまにコードのサ…

RSpec + Shrine で updated_at を使ったテストがこけて対応した話

はじめに RSpec + Shrine の環境のテストで updated_at がうまく設定できない事象を調査・解消したので備忘としてまとめておきます。 起こった問題 問題がなかった状態 以下のようなモデル・コントローラーを作りました。 モデル: class Article < Applicat…

PlantUMLはいいぞ

はじめに ここ数年、シーケンス図やアクティビティ図などを書く際に PlantUML を使って書くようにしています。 plantuml.com Excel や drawio を使うより個人的に合っていたので、その紹介記事となっています。 ※注意 似たような用途のツールに Mermaid など…

応用情報技術者試験を受験してきた

はじめに 2024/04/21(日)に開催された応用情報技術者の春期試験を受験しました。 合否については現時点では不明ですが、自分が当日までやったことを備忘として残します。 ※2024/7/4追記:無事、合格していました。 ※注意※ 比較的準備を余裕を持って行って…

メール送信の仕組みが覚えられないので手を動かしながら調べてみた

はじめに SMTPが覚えられないため、実際に手を動かしながらまとめてみました。 SMTPとはなにか まず、送信側のプロトコルであるSMTPの特徴をざっと書き出します。 Simple Mail Transfer Protocolの略 メールの送信・転送を行うためのプロトコル TCPポートは2…

DHCPとは何か調べてみた

概要 応用情報の勉強をしている中でDHCPについて調べる機会があったので、まとめてみました。 DHCP(Dynamic Host Configuration Protocol)とは DHCPとはネットワーク上のホストに対し、自動でIPアドレスを割り当てたり、割り当てるIPアドレスを一括管理す…

gRPCとRESTは何が違うのか?

はじめに 以前、gRPCについて自分なりに調べてまとめた記事を書きました。 fvknk97034.hatenablog.com 一方で、異なるコンピュータにメソッドの実行を依頼し、その結果を返してもらう、というだけであればRESTで十分ではないかという疑問も生まれました。 そ…

docker init を試してみる

はじめに Dockerfileやcompose.yamlを自動生成してくれるdocker initコマンドが使えるようになったようなので、早速試しに使ってみました。 www.docker.com 実行環境 macOS:Sonoma 14.3 Docker:4.27.1 実際にやってみる まずは基本的なケースを試してみる …

gRPCの概要を知る

はじめに gRPCに触れる機会があったので、どのような技術か調べてみました。 ※あまり英語は得意でないので認識違いを含む可能性があります。正確な理解が必要な場合、リンク先を参照することを強く勧めます。 gRPCとは まず、gRPCの公式サイトを訪れたところ…

2024年の目標

概要 正月の非日常感も薄れてきていますが、良い機会なので今年の目標を記録しておこうと思います。 そもそも私は普段何をしている人か 去年の中頃から小さなWebアプリケーションの開発チームの責任者のようなことをしています。具体的には以下のようなこと…

ReactNativeで家計簿アプリを作りたい(前編)

概要 以下のような家計簿アプリが欲しかったのですがうまく見つけられなかったので、自作してみることにしました。 ios対応 複数人で使用できる アカウント・パスワードの共有はしない 共有財布機能がある 月々の振り込みを個人(=非共有財布)で行い、任意…

Rails チュートリアルを改めてやってみる 1-3章

概要 今までRails7を触ったことがなかったため、感触を確かめるのも兼ねて改めてRailsチュートリアルをやってみました。 railstutorial.jp 第1章 RailsチュートリアルではGitHub Codespaceを使用していますが、手元でDockerを用いて環境構築を行いました。 …

Docker を用いた Flutter の環境構築

概要 以下を読みながら、DockerでFlutterの環境構築を行いました。 結局使用はしなかったのですが、備忘として記録します。 https://docs.flutter.dev/get-started/install/linux 手順 1. パッケージをインストール 以下に記載されているライブラリのうち、…

ローカル環境で Docker コンテナ間の通信とサービス名を使ったブラウザからのアクセスを実現する

概要 ローカルでコンテナ間の通信とホストからの通信で同じURLを使ってリクエストを送信できるようにしました。 Dockerだけではなく、ホストの設定もコンテナサービス名に合わせて設定をして解決しています。 構成 Docker:24.0.6 Node.js:20.9.0 Express.j…

プライベートな学習メモをGitHub Issueで実現する

概要 技術書や資格の勉強をしている際のメモに、GitHub の Issue を使ったところ、使い勝手は悪くなかったので、自分の使い方を紹介します。 対象 以下の全てを満たす人を想定します。 手軽にメモをとりながら作業、勉強をしたい でも外部に作業、勉強途中の…