devdong

Welcome to devdong — a cozy corner where developers share stories over a cup of coffee. ☕💻

MongoDBを使わないでください:いや、使ってもいいです
かつて開発コミュニティでは「MongoDBを使わないでください」という言葉が流行しました。スキーマがないという理由で、トランザクションのサポートが不足しているという理由で、多くの開発者がMongoDBを避けていたのです。しかし2024年現在、そうした偏見の多くは過去の話となっています。
TypeScript における型変換のすべて:完全制覇ガイド
TypeScript を使っていると、コンパイラが型を正しく推論できなかったり、開発者がより正確な型を把握している場合があります。DHH(David Heinemeier Hansson)が hotwired/turbo プロジェクトで TypeScript を除去し、「TypeScript は本当に必要なのか?」という議論が再燃しました。しかし、大規模プロジェクトにおいて TypeScript の静的型システムがもたらす信頼性は依然として魅力的です。
新しいDOM API、setHTMLを知ろう
Web開発をしていると、動的にHTMLを挿入する必要がある場面がよくあります。このとき最も一般的に使われる方法はinnerHTMLですが、この方法にはクロスサイトスクリプティング(XSS)攻撃に脆弱であるという大きな欠点があります。そのため、多くの開発者はDOMPurifyのような外部ライブラリを使用して、安全にHTMLを挿入してきました。 しかし今後は、Web標準に組み込まれた安全な方法でHTMLを挿入できるようになる見込みです。それが、新しいDOM APIであるsetHTML()の登場です。この記事では、setHTML()とは何か、なぜ必要なのか、そしてどう使うのかを詳しく解説します。
ECS vs EKS: AWS コンテナサービス選択ガイド
クラウド環境でコンテナ化されたアプリケーションをデプロイし管理することは、現代のソフトウェア開発の核心です。AWSで提供される2つの主要なコンテナオーケストレーションサービスであるECSとEKS、どちらを選ぶべきか悩んでいませんか? それぞれのサービスは固有の利点と特徴を持ち、プロジェクトの規模、チームの専門性、長期的な目標によって最適な選択が変わります。本稿では、両サービスの核心的な違いを明確に分析し、実務においてどのような状況でどのサービスを選ぶべきか、具体的なガイドを提供します。
LoRAとQLoRA:AIモデル調整の概況を変える
大規模言語モデル(LLM)を特定のタスク向けに調整することは、まるでF1レース用の車を特定のコースに合わせてチューニングするようなものです。最高のパフォーマンスを引き出すためには細かな調整が必要ですが、この過程では莫大なリソースと時間が消費されることがあります。従来の全パラメータ・ファインチューニング(Full Fine‑tuning)方式では、モデルのすべてのパラメータを更新する必要があるため、コストが高く、時には「壊滅的忘却(catastrophic forgetting)」という問題にも直面します。 でもご安心ください!今、より効率的な方法があります。それが パラメータ効率的ファインチューニング(Parameter‑Efficient Fine‑Tuning, PEFT) 技術です。本稿ではPEFTの代表的技術である LoRA と、さらに一歩進んだ QLoRA について詳しく解説します。これら二つの技術がどのようにLLMチューニングのパラダイムを変えつつあるか、そしてそれぞれがどのような状況でより適しているかを、明確に理解していただけるでしょう。
JavaScript 型変換 完全ガイド

JavaScript 型変換 完全ガイド

dong1 min read
JavaScript を扱っていると、 "5" + 1 が "51" になったり、 "5" - 1 が 4 になったりする状況に出くわします。最初は混乱するかもしれませんが、これは JavaScript の型変換(Type Conversion)メカニズムによるものです。 型変換とは、あるデータ型を別の型へ変換するプロセスを指します。JavaScript は動的型付け言語なので、開発者が明確に型を指定しなくても、ランタイム時に自動的に型が決定・変換されます。このような特性は開発を便利にしますが、予期せぬバグの原因にもなり得ます。 この投稿では、明示的な型変換と暗黙的な型変換の違いから、オブジェクトの型変換、そして実務で注意すべき落とし穴まで、JavaScript の型変換のあらゆる側面を扱います。このガイドを通じて型変換の動作原理を正確に理解し、より安全で予測可能なコードを書けるようになりましょう。
タイプスクリプト、本当に退場されるのか?
少し前の話ですが、開発者コミュニティで熱い議論が繰り広げられています。TypeScriptを「本当に必要か?」という根源的な質問を投げかけるきっかけとなったのが、David Heinemeier Hansson(DHH/Ruby on Railsの創始者)が、Hotwire TurboプロジェクトからTypeScriptを除外したことです。 TypeScriptは2012年にMicrosoftからリリースされて以来、JavaScriptに静的型を導入して大規模プロジェクトの保守性を向上させるツールとして定着してきました。しかしDHHの決断以降、Svelteなど他のプロジェクトでもTypeScriptの削除が検討され、開発者たちは混乱に陥っています。 本稿ではTypeScriptをめぐる賛否の議論をバランスよく見つつ、皆さんのプロジェクトにTypeScriptが本当に必要かを判断するための基準を提示します。
eval() なしで JavaScript 計算機を作る
JavaScript でコードを書いていると、動的にコードを実行する必要がある場面が出てきます。多くの開発者はそのような時に eval() 関数を思い浮かべるでしょう。eval() は文字列をコードとして認識し実行してくれる便利な機能です。しかし、この便利さの裏には重大なセキュリティリスクとパフォーマンス低下の問題が潜んでいます。 この記事では、eval() を使うことがなぜ危険なのかを見ていき、より安全で効率的な代替手段である new Function() を使って動的にコードを実行する方法を詳しく見ていきます。この記事を通じて、皆さんはより安全で堅牢なコードを作る力を養うことができるでしょう。
JavaScript eval()を代替できる方法
JavaScriptの eval() が危険な理由と、 new Function() によって安全に代替する方法を実用的な例とともにご紹介します。セキュリティとパフォーマンスの両方を重視するヒントです! JavaScriptを使っていると、文字列として表現されたコードを実行しなければならない場面があります。その際、最初に思い浮かぶのが eval() 関数でしょう。しかし eval() は、セキュリティの脆弱性とパフォーマンスの問題で悪名高い存在です。 この記事では、 eval() の危険性を確認し、より安全な代替手段である new Function() をどのように活用できるか、実用的な例とともにご紹介します。
JavaScriptでチェックボックスの状態を確認する方法まとめ
JavaScriptとjQueryを使ってチェックボックス(checkbox)の状態を確認する方法を紹介します。checked属性、イベントリスナー、prop()、is()の使い方を例とともに説明します。 ウェブ開発においてユーザーとのインタラクションは非常に重要です。チェックボックスは、ユーザーの同意を得たり、複数のオプションから一つまたは複数を選択させたりと、シンプルながらも必須のユーザーインターフェース(UI)要素です。たとえば「利用規約に同意します」や「自動ログイン」といった機能はいずれもチェックボックスを通じて実装されます。 このようなチェックボックスの選択状況、すなわち“状態”を確認することは、ユーザーの入力を処理し、それに応じたロジックを実行するために必ず知っておくべき技術です。本記事では、JavaScriptとjQueryを使ってチェックボックスの状態を確認する様々な方法を、わかりやすく丁寧にお伝えします。この記事を最後まで読めば、どんな状況でも自信をもってチェックボックスの状態を扱えるようになるでしょう。
Access‑Control‑Allow‑Origin ヘッダー 完全ガイド
CORS エラーの原因となる Access‑Control‑Allow‑Origin ヘッダーを完全に理解して解決しましょう。構文、セキュリティ、Nginx/Node.js の設定例まで網羅します。 ウェブ開発をしていると、コンソールに一度は「CORS error」という恐ろしいメッセージを目にしたことがあるでしょう。このエラーはほとんどの場合、別のオリジン(origin)からのリソースを要求するときに発生します。そして、この問題を解決する鍵が「Access‑Control‑Allow‑Origin ヘッダー」にあります。 この記事では、クロスオリジンリソース共有(CORS)の中核である Access‑Control‑Allow‑Origin ヘッダーが何か、どのように動作するか、そして実際のサーバー環境ではどう設定すればよいかを詳しく解説します。この記事を読み終えるころには、CORS エラーに自信を持って対処できるようになっているでしょう!
Apache AH00072 エラー 完全な解決方法
サーバーを管理していると、予期しないエラーメッセージに遭遇することがよくあります。その中でも、Apache ウェブサーバーを使用している開発者やシステム管理者であれば、 AH00072: make_sock: could not bind to address というエラーを一度は見たことがあるでしょう。このエラーは、Apache が起動できない原因のひとつであり、ウェブサイトがダウンする直接的なトリガーになることもあります。 しかし、心配はいりません!このエラーは通常、いくつかの簡単な確認と対処で解決できます。本稿では、AH00072 エラーがなぜ発生するのか、そしてどうやって解決できるのかを順を追って説明します。この記事を読み終えれば、次に同じエラーに直面しても、慌てずに冷静に問題を解決できるようになります。