sontixyou blog

技術まわり、ガジェット関連について

awaitとawait?について

tokio crateを使って、非同期処理を書きたい場合、ほぼほぼasync await構文を書くと思う。 私は、awaitとawait?の違い、使い分けがいまいちわからないでの、頭の整理がてら書いていく。 await awaitは、非同期関数の結果を待つ。async関数やブロックから呼び…

axumで作ったAPIのテストを書く際にハマった話

背景 2024/6あたりにRustでWebアプリ作れたら、面白いかもと思い、フレームワークなんなりを探していた。 そんな中で、axum(アクサム)を見つけた。Youtubeの外国人が、アクサムと言っていたので、たぶん日本語読みはアクサムが正しい。 github.com このaxum…

Rustのmoduleとcrate

背景 私は、今までC言語やRubyくらいしかプログミング経験がなかった。 最近、Rustを書き始めたことで、初めましての概念がたくさん出てきたので、頭の整理がてらまとめる。 ここに書く内容は、Rust Programming Languageの原文を読んだことのまとめである。…

RubyKaigiに行ってくる

去年に引き続き、RubyKaigi2024に行く。 セッションを聞くことにも重視したいが、他にも重視したいことがある。 書き出すとこんな感じ。要はできるだけ多くのRubyistと話して、交流したい。 国内にいながら海外のエンジニアさんとも交流できる貴重な機会であ…

身の回りのRust

背景 2023~2024年の3月にかけて、自分の身の回りでRustで作られているツールが増えていると感じている。自分が使っているツールの中でもRustで作られているものがある。これらのツールをまとめたことがなかったため、まとめる。 身の回りのRust Ruby RubyはJ…

Active Recordのカラムの暗号化でソートできずにハマった

背景 記事のタイトルを保存するtitleカラムがあるとします。このtitleカラムは、記事一覧ページでtitleの並び替え機能があるとします。 あるとき、Railsで文字列を保存するtitleカラムを暗号化しようと話題が出ました。 カラムの暗号化 Railsには、2種類の暗…

Neovimにtypoを検知する仕組みを追加した

背景 Neovimには、デフォルトでスペルチェックする機能があります。 しかし、このスペルチェックはマークダウンファイルに対しては有効ですが、コード内の英単語をチェックしてくれません。 そこでコード内の英単語もスペルチェックしてくれる仕組みを導入す…

イタリア語の学習を始めた

背景 2024/09にイタリアへ行く予定を立てた。 学習のモチベは、イタリアの現地人の方と簡単なコミュニケーションを取れると、旅も楽しくなると思ったから。 目標 レストランで注文できる おすすめの品とか聞けると最高 市場で話しながら買い物できる どうや…

開発環境ソフト編 2023

2023年で使用していたソフトウェアをずらずら書いていく。 ソフト ブラウザ Brave あらゆる広告を非表示士にしてくれるため、プライベートでは、いつも使っている。 https://brave.com/ja/ ブラウザ拡張機能 GraphQL Network Inspector https://chromewebsto…

2024年の目標

2024年の目標を決めていく〜 2023年の振り返りはこちらを参照 → https://sontixyou.com/entry/2023/12/21/215413 日頃仕事していると自分のスキルをもっと上げて、プロダクト開発へ活かしていきたいと痛感する一年でもあった。なので、そのあたりを深掘りな…

2023年の振り返り

2023年の月ごとの振り返り 1月 shibuya.rbに初参加! RubyKaigi 2022へ行って以来、Rubyコミュニティに参加できていなかったため。 2月 https://regional.rubykaigi.org/fukuoka03/ RubyKaigi 2022以来、でかいカンファレンスに参加できることが楽しみでウキ…

Neovim HEADをビルドする方法

Neovim Headをビルドすることがはじめてパターン brew install ninja cmake gettext curl git clone https://github.com/neovim/neovim cd neovim make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=$HOME/neovim" make install export PATH="$HOME/neovim/bi…

血便が出たけど回復した話

人生で初めて血便が出て、感染性大腸炎になった。この記事投稿時には、だいぶ回復した。 この経験から2つの学びがあったので書き留める。 学び編 生焼けの肉や内蔵、生肉は食べるな 今回の感染性大腸炎になった要因は、これの可能性がある。自分の場合は、お…

RailsのActiveRecord AVG編

average_ageをSQLだけでどう取得できるのかを考えてみる 普段、極力SQLを使わずに書くなら、こうなるかと思う。 def self.average_age ages = all.pluck(:age) ages.sum / ages.count end SQLを思いっきり使用する場合、こう書く。 result = ActiveRecord::B…

Rails内で直接SQLを書く方法

背景 私の中でRailsのActive RecordとSQLの相対表があまりなく、Active Recordを実行したときにどんなSQLが実行されるのかについてもっと詳しくなりたいため、勉強します。 直接SQLを実行するためには 3種類の方法はあります。 execute これはクエリを実行で…

Rails table_name_prefixメソッドについて

背景 Railsにmatch_resultsというテーブルを追加したいとする。 Railsのモデル ディレクトリの構造をmodels/match/result.rbにしたい。 実際どうやるのか そういうときは、以下のコマンドを実行すればよい。 bundle exec rails generate Match::Result score…