Category: 開発

トッププログラマーが生産性を向上させるためのLLMの使い方

2025-07-21

ベテランプログラマーのantirezが、Gemini 2.5 PROやClaude Opusなどの大規模言語モデルを18ヶ月間プログラミングに使用してきた経験を共有しています。彼は、現在のLLMは独立したプロジェクト完了ツールではなく、強力なアシスタントとして最適だと主張しています。問題を明確に記述し、効果的に反復処理することで、LLMはバグの排除、アイデアの迅速な探求、ペアデザインへの参加、さらには専門分野外の技術習得にも役立ちます。しかしantirezは、LLMの潜在能力を最大限に発揮するには、十分なコンテキストを提供し、適切なモデルを選択し、コードを常に制御し、自動化されたエージェントへの依存を避けることが重要であると強調しています。これによってのみ、コードの品質を保証し、効率を最大化できます。

開発

OpenBSDの大規模アップデート:FILEオブジェクト構造体が不透明化

2025-07-21

OpenBSDは最近、標準入出力ライブラリ内のFILEオブジェクトの内部構造を不透明化する大規模なシステムアップデートを行いました。これは、プログラムがFILEオブジェクトの内部構造に直接アクセスできなくなることを意味します。この変更は広範囲に影響し、libcとその依存ライブラリ(libcrypto、libtls、libsslなど)に影響を与えます。移行を容易にするため、いくつかのヘルパーシンボルは一時的に保持されますが、将来的には削除されます。潜在的な問題を回避するために、スナップショットアップグレードを使用することを強く推奨します。

開発

SVGフィルターを使った手描き風「沸騰」効果のシミュレーション

2025-07-21
SVGフィルターを使った手描き風「沸騰」効果のシミュレーション

この記事では、手描きアニメーションでよく見られる「沸騰」効果をSVGフィルターを使ってシミュレートする方法を説明しています。この効果は、画像の端にわずかな歪みを適用することで、微妙な動きを演出します。feTurbulenceとfeDisplacementMapフィルターを使ってノイズテクスチャを生成し、画像に適用する方法、そしてJavaScriptを使ってフィルターパラメータをアニメーション化して「沸騰」効果を作成する方法を詳しく説明しています。インタラクティブなデモでは、パラメータを調整して効果の変化を観察できます。シンプルなSVGフィルターとJavaScriptだけで、Web上でリアルな手描きアニメーション効果をシミュレートすることに成功しています。

開発

XMLUI:誰でもできるWeb開発

2025-07-21
XMLUI:誰でもできるWeb開発

XMLUIは、Visual Basicのコンポーネントモデルの使いやすさを最新のWeb開発にもたらします。シンプルなXMLマークアップを使用することで、開発者はReactやCSSに関する深い専門知識がなくても、反応性が高く、テーマ設定されたWebアプリを構築できます。事前に構築されたコンポーネントと宣言的なデータバインディングにより、プロセスが簡素化されます。LLMとの統合により、開発がさらに効率化され、共同作成と容易なメンテナンスが可能になります。XMLUIは、ソリューションビルダーを支援し、専門的なフロントエンドの専門知識がなくてもユーザーインターフェースを作成できるようにすることを目指しています。

開発

時間ベースのロギングはカウントベースのロギングよりも優れている

2025-07-21

ソフトウェアエンジニアリングにおけるロギング戦略は非常に重要です。この記事では、大量のイベントを処理する場合、時間ベースのロギング(例:X秒ごとにログ出力)が、カウントベースのロギング(例:Xメッセージごとにログ出力)よりも優れていると主張しています。カウントベースのロギングは、負荷によってログ出力頻度が大きく変動し、ログが少なすぎたり多すぎたりする可能性があります。時間ベースのロギングは一定のログ出力速度を維持し、ログが多すぎることによるパフォーマンス低下や、ログが少なすぎることによる可観測性の問題を回避します。著者は疑似コードの例と費用便益分析を用いて主張を裏付け、効率的なロギング戦略に関する新しい視点を与えています。

開発

connmap:世界地図上にネットワーク接続を可視化

2025-07-21
connmap:世界地図上にネットワーク接続を可視化

connmapは、世界地図上に現在のネットワークピアの地理的な位置を表示するX11デスクトップウィジェットです。Waylandでも動作します!インストールは簡単です。リポジトリをクローンし、依存関係(READMEに記載)をインストールして、実行ファイルを実行します。地図のサイズ、位置、更新間隔をカスタマイズできます。現在、IPv4のみをサポートしており、主にi3wmでテストされています。

動的計画法:あなたの思っていることではない

2025-07-21

アルゴリズムの学習において「動的計画法」という用語は、しばしば混乱を招きます。「動的」とは、その変化性を指すのではなく、「計画」というプログラミングの意味を指します。これは、1950年代にエンジニアが建設プロジェクトを「プロセススケジューリング」として計画したことに由来します。コンピュータサイエンスにおいて、動的計画法とは、問題を解決するために必要なサブステップの順序を計画することです。例えば、フィボナッチ数列を計算する場合、「プログラム」とは、依存関係の順序でfib(2)からfib(10)を計算するステップのシーケンスです。これはトップダウンまたはボトムアップで計画できます。最終的な計画は同じであり、どちらも動的計画法と見なされます。リチャード・ベルマンは、国防長官の「数学研究」への嫌悪感を避けるために、この用語を作り出し、「動的」という形容詞は軽蔑的に使えないため、「動的計画法」という語を選んだのです。

開発

GitHubにおけるコード提案適用制限

2025-07-20
GitHubにおけるコード提案適用制限

GitHubでコード提案を一括適用する際には、いくつかの制限があります。提案にはコードの変更が必要で、クローズ済みのプルリクエスト、変更の一部、1行に複数の提案がある場合、既に適用済みまたは解決済みの提案、保留中のレビュー、複数行のコメント、マージ待ちのプルリクエストには適用できません。さらに、一時的に提案を適用できない場合もあります。

開発

GitHubコード提案適用制限:単一コミットの制約

2025-07-20
GitHubコード提案適用制限:単一コミットの制約

GitHubでのコード提案の一括適用には、いくつかの制限があります。コードの変更がない場合、プルリクエストが閉じている場合、変更の一部を表示している場合、1行に複数の提案がある場合、削除された行、提案が適用済みまたは解決済みとしてマークされている場合、保留中のレビューからの場合、複数行のコメント、またはプルリクエストがマージ待ち行列にある場合は、提案を適用できません。さらに、不明な理由で「この操作は現在実行できません。」というエラーが発生する場合があります。

開発

Arch LinuxからmacOSへ:博士課程学生による「怠惰な」設定

2025-07-20

神経AI研究の博士課程学生であり、コンピュータエンジニアでもある著者は、9年間Arch Linuxを使用してきた後、新しいMacBook Proに移行しました。この記事では、彼らが1日で新しいマシンを設定し、以前のワークフローを可能な限り再現する方法を詳しく説明しています。彼らはパッケージマネージャーとしてNix、ウィンドウマネージャーとしてAeroSpace、ランチャーとしてRaycastを使用し、zshシェルやZedエディターなどの使い慣れたツールを維持しました。macOSのパッケージ管理はArch Linuxほど便利ではありませんが、より安定したハードウェアと優れたユーザーエクスペリエンスのために妥協しました。

io_uringとデュアルWALによるデータベーススループット10倍向上

2025-07-20
io_uringとデュアルWALによるデータベーススループット10倍向上

複雑なデータベースを構築する際に、著者はio_uringとデュアルWAL設計を用いてパフォーマンスの向上を試みました。従来のWALアプローチ(書き込み後に適用)はパフォーマンスのボトルネックとなります。"書き込みの意図"と"書き込みの完了"を2つのWALに分離し、io_uringの非同期I/Oを活用することで、スループットを10倍向上させました。この設計では、意図を非同期的に書き込み、完了後に完了レコードを書き込みます。復旧時には、意図と完了の両方のレコードを持つ操作のみが適用され、データの一貫性が保証されます。著者はZig言語とPoroプロジェクト(実験的なキーバリューデータベース)を用いてこの手法の有効性を検証し、ハードウェア並列処理、バッチ処理、柔軟な一貫性モデルの重要性を強調しました。

開発

A9/A11デバイスにおける決定論的カーネルエクスプロイトのための、コプロセッサの活用

2025-07-20

Trigonカーネルエクスプロイトのアップデート版がリリースされ、A9(X)およびA11デバイスのサポートが拡張されました。このブログ投稿では、KTRRの制限を克服し、さまざまなデバイスでカーネルベースアドレスを見つけるために使用された困難な技術について詳しく説明します。新しいアプローチは、IORVBARレジスタとコプロセッサ(特にAlways-Onプロセッサ)を活用し、コプロセッサファームウェアを操作して、カーネルへの任意の読み書きを実現し、最終的にA9およびA11デバイスでの成功したエクスプロイトのためにカーネル保護を回避します。

Go 1.24メモリリーク調査:予想外の発見とスイステーブルのサプライズ

2025-07-20
Go 1.24メモリリーク調査:予想外の発見とスイステーブルのサプライズ

Go 1.24リリース後、データ処理サービスで予期せぬメモリ使用量の増加が観察されました。調査の結果、Goランタイムのメモリ割り当て関数のリファクタリングによって、最適化が意図せず削除され、大きなオブジェクトの割り当て時に不要なメモリゼロクリアが発生し、常駐セットサイズ(RSS)が増加したことが判明しました。Goランタイムの内部メトリクスは変化しませんでしたが、システムレベルのメトリクスはメモリ使用量の顕著な増加を示しました。Goコミュニティとの協力により、最終的に問題を特定し、修正しました。驚くべきことに、Go 1.24の新しい「スイステーブル」機能は、高トラフィック環境でメモリ使用量を大幅に削減し、以前の回帰を相殺するだけでなく、さらなるメモリ節約をもたらしました。

開発

Rustの借用チェッカー:祝福か呪いか?

2025-07-20

借用チェッカーのおかげで速度と安全性を両立させたと高く評価されているRustだが、この記事では批判的な見解が示されている。著者は、借用チェッカーが過度に保守的なルールのために完全に有効なコードを拒否し、深刻なエルゴノミクス上の問題を引き起こしていると主張する。複数の例が示すように、不要なリファクタリングが必要となる。この記事では、Rustの安全性における借用チェッカーの役割が過大評価されているという疑問が投げかけられ、PythonやJuliaなどのガベージコレクションを行う言語と比較が行われている。並列処理における借用チェッカーの利点は認めつつも、シングルスレッドのコンテキストではそのオーバーヘッドが利点を上回ると著者は主張する。Rustの強み、つまり強力な型システムや豊富な標準ライブラリこそが真の成功要因だと強調されている。

開発

Rustにおける特殊化の回避:関数ポインタの巧妙な利用

2025-07-20
Rustにおける特殊化の回避:関数ポインタの巧妙な利用

RustでFATドライバを開発中に、作者は特殊化という問題に遭遇しました。この機能は、現在の安定版Rustでは利用できません。マクロやジェネリック列挙型を使った試みは失敗に終わり、最終的に関数ポインタを巧みに利用することで、特殊化と同様の効果を実現しました。この方法は、パフォーマンスとメモリのオーバーヘッドがあるものの、特定の状況では安定版Rustで代替手段を提供します。作者は、より効率的でクリーンなソリューションを提供する特殊化機能の安定化を訴えています。

LLMエージェントのためのCLIツールとAPIの拡張

2025-07-20
LLMエージェントのためのCLIツールとAPIの拡張

著者は、リバースエンジニアリングタスクの自動化に大規模言語モデル(LLM)エージェントを使用する際に、既存のコマンドラインツールとAPIの設計に限界があることに気づきました。特に、ローカルモデルの小さなコンテキストウィンドウを使用する場合です。APIは、ツール呼び出しを減らすために十分な情報を提供することと、コンテキストウィンドウのオーバーフローを回避することのバランスをとる必要があります。検討された解決策には、改善されたdocstring、ヘルパー関数、プリコミットフックなどがあります。さらに、出力をキャッシュし、構造化し、残りの行数を報告するラッパーや、ディレクトリ情報を提供するシェルフックなど、さらなる改善が提案されています。著者は、既存のCLIはLLMの拡張を必要とし、LLM拡張CLIの完全なセットやカスタムLLMシェルが必要になる可能性があると結論付けています。これは、LLMエージェントのユーザーエクスペリエンスを向上させるためです。

開発

BorgBackup:効率的で安全な重複排除アーカイブツール

2025-07-20

BorgBackup(Borg)は、圧縮と認証済み暗号化を組み合わせたオープンソースの重複排除アーカイブツールです。省スペースなストレージと堅牢なセキュリティを実現します。lz4、zstd、zlib、lzmaなど様々な圧縮アルゴリズムに対応し、Linux、macOS、BSDなど複数のプラットフォームに簡単にインストールできます。大規模で活発なコミュニティに支えられ、Borgはマウント可能なバックアップを提供します。そして、非常に重要なことですが、常にバックアップを確認してください!

開発

バックアップ:単純なコピーを超えて

2025-07-20
バックアップ:単純なコピーを超えて

データバックアップの重要性は、しばしば過小評価されています。この記事は、著者の経験に基づいて、様々なデータ損失シナリオを説明し、バックアップが単なる単純なコピーではなく、包括的な計画と戦略が必要であることを強調しています。フルディスクバックアップと個々のファイルバックアップのメリットとデメリット、データ整合性を確保する上でスナップショットが果たす重要な役割を探ります。また、著者は、集中型のバックアップサーバーアーキテクチャと、効率的なバックアップシステムのための指針となる原則を共有し、FreeBSD をベースとしたバックアップサーバーの構築について詳述する今後の記事を予告しています。

開発

Zigにおける動的ディスパッチによるポリモーフィズムの実現

2025-07-19

Zigは多くの言語と異なり、組み込みのインターフェースを持ちません。しかし、これはポリモーフィズムを排除するものではありません。この記事では、vtableインターフェースを使用してZigで動的ディスパッチによるポリモーフィズムを実現する方法を詳述します。このアプローチは、インターフェースと実装を明確に分離し、実装タイプを変更する必要なく動的ディスパッチを可能にします。関数ポインタを使用してvtableを構築し、`implBy`関数を使用して実装とインターフェースを接続することで、オブジェクト指向言語におけるインターフェースの機能を効果的に模倣します。これにより、異なる実装を配列やマップに格納できます。多少のボイラープレートコードが必要ですが、その利点は、実装タイプへの影響を最小限に抑えた、クリーンで柔軟で再利用可能なアプローチです。

AIによるソフトウェア開発:4つのドキュメントと永遠の初心者

2025-07-19
AIによるソフトウェア開発:4つのドキュメントと永遠の初心者

著者はAIペアプログラマーであるClaudeを使って、4日間でProtocollieというソフトウェアを開発しました。それは熟練したプログラミングスキルによるものではなく、4つのドキュメント(アーキテクチャの概要、技術的な考慮事項、ワークフロープロセス、ストーリーの分解)を通じてAIを導くことで、曖昧なアイデアを動作するコードに変換したものです。「壁にスパゲティを投げる」になぞらえられるこのプロセスは、計画よりも実験性を重視し、AI支援プログラミングの風景の変化を示しています。それはプログラマーの役割の変化と、技術の進化が専門知識の蓄積を上回るこの新しい時代の不確実性を受け入れることを明らかにしています。

開発

Linux Secure BootのMicrosoftキーが期限切れに:タイムリミットとの戦い

2025-07-19

Linux Secure Bootシステムは、9月に期限切れとなるMicrosoftキーに依存しています。このキーは、Linuxカーネルを起動するために使用される、第一段階UEFIブートローダー(shim)への署名に使用されます。2023年から代替キーが提供されていますが、多くのシステムではまだインストールされておらず、ハードウェアベンダによるファームウェアアップデートが必要になる可能性があります。これは、Linuxディストリビューションとユーザーに追加の作業を課すことになります。LVFSとfwupdによるファームウェアアップデートが必要になる場合がありますが、成功は保証されていません。古いBIOSシステムでは、容量不足の問題が発生し、BIOSのリセットが必要になることさえあります。ベンダによるアップデートにも問題があり、一部のメーカーはプラットフォームキーへのアクセスを失っています。最終的には、Secure Bootを無効にすることが、いくつかのケースで唯一の選択肢となる可能性があります。

開発

神経データの未来を築くソフトウェアエンジニア募集

2025-07-19
神経データの未来を築くソフトウェアエンジニア募集

Piramidal社は、画期的な神経データプラットフォームのバックエンドインフラを構築・維持するソフトウェアエンジニアを募集しています。この役割には、最先端モデルの展開におけるMLエンジニアとの緊密な協力、および製品チームや社内チームとの直接的な連携による重要な問題解決が含まれます。理想的な候補者は、製品重視の企業で5年以上の経験、Pythonおよびその他のバックエンド言語の熟練度、コンテナ化(Kubernetes)、リレーショナルデータベース(Postgres/MySQL)、およびWebテクノロジー(JavaScript、React)に関する専門知識を備えています。Piramidal社は、テクノロジーを使用して人間の可能性を高め、認知の自由を支持することに取り組んでいます。

AIによるライティングを拒否する理由

2025-07-19
AIによるライティングを拒否する理由

著者が、大規模言語モデル(LLM)を使ったライティングを拒否する理由を説明しています。LLMへの過度な依存は、独創性を低下させ、自立的な思考力を弱め、深遠な思考や個人的な関連付けを書き込みから奪うと主張しています。MITや英国の研究を引用し、LLMが認知的な怠惰や学習意欲の低下につながる可能性を示唆しています。さらに、著者は、LLMによって生成されたテキストは個性と感情が欠如しており、読書中に生まれる独特の関連付けや洞察を捉えられないと考えています。これは、著者が求める深い読書体験と矛盾します。最終的に、彼は独立したライティングを続けることを選び、それが真の独創性と信頼性を維持する唯一の方法だと考えています。

YouTube自動翻訳を無効にするFirefox拡張機能

2025-07-19
YouTube自動翻訳を無効にするFirefox拡張機能

このオープンソースのFirefoxデスクトップアドオンは、YouTubeの自動翻訳を無効にします。ビデオタイトル、オーディオトラック、説明は元の言語のままになり、選択した言語の実際の字幕のみが表示されます(自動生成された字幕は常に無視されます)。このアドオンは無料で使用できますが、Ko-fiで開発を支援できます。Chromeウェブストアでも利用可能です。

Ilograph チームとチーム+ サブスクリプションの比較

2025-07-19
Ilograph チームとチーム+ サブスクリプションの比較

Ilograph は、チーム コラボレーション図面のための 2 つのサブスクリプション プラン、チームとチーム+ を提供しています。チーム プランは最大 5 名の編集者と 20 名のビューアーをサポートし、無制限のチーム図面、図面履歴、カスタム アイコンを提供します。チーム+ プランは 6 名以上の編集者、無制限のビューアーをサポートし、シングル サインオン、図面エクスポート、API アクセス、共有可能なリンクなどのプレミアム機能を追加します。最適なプランは、チームの規模と高度な機能の必要性によって異なります。

ポリゴン数ではなく、マイクロトライアングルこそレンダリングパフォーマンスの真の敵

2025-07-19
ポリゴン数ではなく、マイクロトライアングルこそレンダリングパフォーマンスの真の敵

ポリゴン数がレンダリングパフォーマンスを決定するという旧来の考え方は時代遅れです。現代のレンダリングは、マイクロトライアングルによって大きく影響を受けます。この記事では、非常に小さな三角形(10x10ピクセル未満)は、GPUが三角形が1ピクセルしかカバーしていなくても2x2ピクセルブロック全体を計算するため、指数関数的にレンダリングコストが高くなると主張しています。著者は、「ワイヤーフレームビューの密度」に注目し、ビューがソリッドに近づいたら低いLODに切り替えたり、遠方のオブジェクトには単一のLODとイミテーターを使用することを提案しています。EpicのNaniteテクノロジーは、コンピュートシェーダーとスクリーン空間シェーダーを使用して、マイクロトライアングルのレンダリングコストを最小限に抑えています。

開発 LOD最適化

14KBルール:ウェブサイトのサイズが考える以上に重要な理由

2025-07-19

14KBのウェブページが15KBのウェブページよりも大幅に高速なのはなぜでしょうか?その答えは、サーバーが最初にデータを送信する方法を制御するアルゴリズムであるTCPスロースタートにあります。この記事では、TCPが信頼性の高いデータ送信をどのように保証し、スロースタートが帯域幅の使用をどのように最適化するのかを説明します。衛星インターネットなどの高遅延ネットワークでは、その影響が劇的に示されます。往復時間ごとに大きな遅延が追加されるからです。この記事では、ユーザーエクスペリエンスを最適化するために、ウェブサイトのサイズを14KB未満にすること、または少なくとも最初の14KBに重要なコンテンツを含めることを提唱しています。HTTP/2やHTTP/3が言及されていますが、この原則の重要性を否定するものではありません。

開発

Wii U Boot1 エクスプロイト:データ復旧から「Paid the Beak」へ

2025-07-19

この記事では、破壊された任天堂Wii U工場テスト用SDカードのデータ復旧を通じて、予期せずBoot1の脆弱性を発見し、悪用したチームの取り組みについて詳述しています。WiiCuriousが多数の破損したSDカードを集め、DeadlyFoezが高度な半田付け技術を用いてデータを修復・読み取りました。リバースエンジニアのRairiiはこのデータからBoot1の脆弱性を発見し、「Paid the Beak」というエクスプロイトを開発しました。これにより、ほとんどのWii Uソフトウェアブリックを修復できます。さらに、チームはRaspberry Pi PicoとPICAXE 08M2を用いて、脆弱性をトリガーするために必要な工場専用ツールを模倣する方法を開発しました。このエクスプロイトは、コンソールを分解したりハンダ付けしたりする必要がないため、Wii Uブリックの修復をより簡単にします。

開発

Guixの印象:Nixユーザーの視点

2025-07-19

ベテランNixユーザーがGuixシステムを試用した経験を共有しています。GuixはGNUシステムであるため、ソフトウェアの自由を重視しており、最新のハードウェアをサポートするにはnonguixを使用する必要があります。この記事では、GuixとNixのアーキテクチャの違いに焦点を当てています。Nixはモジュール式の設計を採用しており、パッケージのバージョンの柔軟な組み合わせを可能にしていますが、Guixはすべてのパッケージを固定されたプロファイルに統合しており、更新には再構築が必要です。ドキュメント、パフォーマンス、initシステムを比較した結果、Guixのドキュメントは優れているものの、パフォーマンスは遅いことがわかりました。systemdではなくShepherdを使用しています。全体的に、Guixは魅力的な代替手段ですが、学習曲線が急峻で、Schemeの知識が必要です。

開発

cuBLASとCUTLASSを超える:革新的な行列乗算カーネルエンジン

2025-07-19
cuBLASとCUTLASSを超える:革新的な行列乗算カーネルエンジン

行列乗算は、特にAI分野において、その速度がモデルの能力に直接影響を与えるため、現代計算の中核をなしています。NVIDIAのTensor Coreなどのハードウェアアクセラレータは効率的ですが、柔軟性に欠けます。本稿では、プラットフォームを跨いでの最適化された行列乗算カーネルを生成する、CubeCLという新しいエンジンを紹介します。CubeCLは、階層的な抽象化(Tile、Stage、Global、Batch Matmul)と様々なアルゴリズム(Simple、Double Buffering、Orderedなど)を用いてこれを達成します。GPUアーキテクチャの特徴、例えばプレーン同期実行やコアレースドメモリアクセスを巧みに活用し、ダブルバッファリングなどの手法を用いてメモリレイテンシを隠蔽します。ベンチマークは、様々なGPU(NVIDIA、AMD、Apple Silicon)において、顕著な性能向上を示しており、場合によってはcuBLASやCUTLASSを凌駕する結果となっています。

開発
1 2 38 39 40 42 44 45 46 214 215