Rustのエラーハンドリングを楽にするanyhowの使い方

Rustでいろいろなエラー型のエラー処理が大変だなと感じる場合は、dtolnay/anyhow を使うことで簡単にエラーハンドリングをシンプルにすることができます。 この記事では、anyhowの主要な使い方を3つ紹介しながら、どれだけ簡単にエラー処理を実装できるかを…

Rustで独自のエラータイプの実装を楽にするthiserrorの使い方

Rustで独自のエラータイプを実装する必要がある場合、dtolnay/thiserror を使うことで簡単にカスタムエラータイプを実装できます。 この記事では、thiserrorを「利用した実装」と「利用していない実装」を比べることで、どれだけ簡単にカスタムエラータイプ…

RustのWebアプリケーション開発でよく利用するクレート(2023年版)

RustのWebアプリケーション開発でよく利用するクレートをまとめてみました。 選定方法は、awesome-rustや各リポジトリのスター数などから独断と偏見で記載しています。あくまで個人的な見解なので、「こんなのもあるよ」「ここは違うんじゃないの」などあれ…

RailsやRSpecの起動が遅いと感じたときの高速化テクニック

開発をしていてRailsやRSpecの起動がなんか遅いなーと感じることはないでしょうか。 はじめは遅いと思っても次第に慣れていってしまいがちですが、日々の開発を通してRailsやRSpecの起動は何回も実行するので塵も積もれば山となってしまうので改善したいもの…

RustでOSを作りながら学ぶ!オペレーシングシステムの仕組み

Writing an OS in Rust は、ステップバイステップでRustを使って軽量なOSを作成するチュートリアルです。手を動かしながらOSを少しずつ作ることで、カーネル、CPU割り込み、メモリ管理といったOSの基本的な仕組みについて理解を深めることができます。 OSの…

メタプログラミングRuby 第2版の読者向けの練習問題集やってみた

「メタプログラミングRuby 第2版」はRubyをより深く使いこなすための素晴らしい本ですが、理解を深めるには実際にコードを書いてみることが不可欠です。読者向けの練習問題集がGitHub - kinoppyd/reading-metaprogramming-rubyに公開されているので、手を動…

詳解!Ruby on Railsの初期化プロセス - railsコマンドからアプリケーションの起動まで

Railsの初期化プロセスは複雑で、数多くのステップが絡み合っています。この記事では、その複雑さをステップバイステップで確認していくことで、Railsの初期化順序を理解できます。そして、Railsの初期化にまつわる改善やバグ解消を行いやすくなるでしょう。…

Railsのログ出力をフィルタする config.filter_parameters の仕組み

ログはとても重要ですが、機微情報を出力してしまうとすると大きなリスクにつながります。Railsではconfig.filter_parametersとActiveSupport::ParameterFilterを用いてリクエストパラメータやカラムの値をフィルタリングしています。この記事では、具体的に…

解説みながらISUCON12予選でSQLiteのままRuby実装で8万点にいけた

isucon.net 2022年に開催されたISUCON12予選を「ISUCON12 予選の解説 (Node.jsでSQLiteのまま10万点行く方法) : ISUCON公式Blog」をみながら試してみて、SQLiteのままRuby実装で86,910点(予選No1水準)までいけました。どのような流れでスコアを高めていけ…

RustのWebアプリ開発に慣れるためRustのactix-webとdieselを使ってMedium.comクローンを作ってみた

RustのWebアプリケーションの開発に慣れるためRustのactix-webとdieselを使ってMedium.comクローンを作ってみました。作り方は、 https://github.com/gothinkster/realworld リポジトリのRustの実装を写経しました。この、Medium.comクローンではAPIは20API…

Rubyのプロファイラメモ

プロファイラを活用することで、プログラムの実行速度や使用リソースの収集ができます。そして、プロファイル結果を解析することでコードのボトルネックを把握し、プログラムのパフォーマンスチューニングを効率的に実施できます。 プロファイラとは何か プ…

VSCodeの開発効率を向上させる便利なショートカット集

VSCodeのショートカットキーを活用することで、プログラミングの作業効率を向上することができます。 この記事では、普段の開発作業で使える有効なショートカットを紹介します。キーバインドを覚えるのは大変ですが、マウスを使わずVSCodeのショートカットを…

LlamaIndexを使ってChatGPTにGitHubリポジトリについて答えてもらう

現時点でChatGTP-4の最新の学習データは2021年9月 1になっており、それ以降の情報は聞いても教えてもらえません。 例えば、次のようにGitHubの llama_indexリポジトリについて聞いてみた結果「詳しく説明できません」と回答されてしまいます。 GPT-4にllama_…

Rustアトリビュート活用法!コンパイラへの指示からテストまで幅広く説明

Rustのアトリビュートは、関数や構造体などの項目に追加情報を注釈することができる強力な機能です。 Rustのアトリビュートを使いこなすことで、コンパイラへの指示やテストの効率化など、幅広い分野で活用できます。 この記事では、アトリビュートの使い方…

Rustのエラーハンドリングガイド!Option型やResult型を使いこなす

Rustでは、他の言語のようにnullや例外(Exception)が存在しません。 その代わりに、Rustは「値の存在有無をOption型」、「処理の成功・失敗をResult型」で扱います。また、回復不能なエラーが発生した場合にはpanic!でプログラムの実行を中止させることがで…

初心者でもわかる!Rustの所有権をわかりやすく解説

Rustの所有権について、初心者でも理解しやすいようにわかりやすく整理してみました。 本記事では、基本的な所有権の説明から具体的な使い方まで、分かりやすいサンプルコードを交えて解説します。Rustの鍵となる所有権の概念を楽しく学びましょう! Rustの…

Rust初心者必見!Rust初心者が実務レベルになるまでの学習ステップ

Rustプログラミングの学習を始めたばかりのあなたへ。実務で活躍できるレベルまでスキルを磨くための効果的な学習ステップを解説します。 本記事を参考に、Rustの知識を確実に身につけ、実務で役立つスキルを習得しましょう。 Rustを学ぶ(公式サイト) ステ…

Rust初心者がChatGPT-4を使ってRustを勉強してみた

Rustはパフォーマンスが良いことやメモリ安全でなんとなく知っており「Rust勉強したいなー」と思っていたところ、ここ最近ではChatGPTなどLLM(大規模言語モデル)も盛り上がってきてジェネレーティブAIも試してみたいとなっていました。 そんな中、「あれ、…

Chat GPT-4と冒険の扉を開く!Chat GPT-4で自分だけのファンタジーRPGをプレイしてみた

Chat GPT-4を使って、ファンタジーRPGをプレイしてみました。元ネタはこちらです。 note.com Chat GPT-4で「こんなこともできるのか!」とおもしろかったです。なんでもできるファンタジーRPGをやっているような、自由に展開を考えられるファンタジー小説を…

大規模言語モデルのプロンプトエンジニアリング

generated by openai image generation beta by "Dialogue between two characters" プロンプトエンジニアリングとは 大規模言語モデルのプロンプトエンジニアリングにおいて重要な要素 1. 明確な指示をする 2. 必要な情報を制限する 3. コンテキストを提供…

大規模言語モデルとは

prompt "word cloud" by ChatGPT Image Generation beta 大規模言語モデルとは 大規模言語モデルでできること 大規模言語モデルの仕組み 一般公開されている大規模言語モデル まとめ 大規模言語モデルとは 人工知能の分野において、大規模言語モデル(LLM:L…