Category: 開発

深層学習フレームワークにおける効率的なインデックス付け:Torch、TensorFlow、Einopsの比較

2025-09-24

この記事では、PyTorch、TensorFlow、Einopsにおける効率的な配列インデックス付けの様々な手法を比較します。`torch.gather`、`torch.take_along_dim`、`torch.index_select`、`torch.take`、`tf.gather`、`tf.gather_nd`、そしてEinopsの`einx.get_at`を比較することで、異なる次元やバッチインデックス処理における柔軟性と効率性の違いを示し、開発者にとって最適なソリューションを選択するための参考となります。

Fortran対Python:工学部の学生への科学計算教育における意外な発見

2025-09-24
Fortran対Python:工学部の学生への科学計算教育における意外な発見

10年以上Pythonを使って科学計算入門科目を教えている教授が、特に数値線形代数において、Pythonが初心者にとって最適な選択肢かどうかを疑問視する記事。強型付け言語であるFortranの方が学習体験が良いと主張。Pythonの柔軟性は便利だが、学生がよく犯すエラー(NumPyライブラリの誤用、インデントエラー、0ベースインデックスによるオフバイワンエラーなど)につながる。一方、Fortranの強型付けと明示的なループ構造は、学生がアルゴリズムを理解しやすくし、エラーを減らす。Jacobi法とQR分解を例に、PythonとFortranの実装を比較し、Pythonの豊富なエコシステムにもかかわらず、Fortranの教育における潜在的な利点を主張している。

開発

更新版:プログラミング言語入門教科書

2025-09-24

KAISTのホン・ジェミン教授とリュ・スギョン教授は、教科書『プログラミング言語入門』の更新版をリリースしました。この入門書は、構文、意味論、型システム、インタプリタ/型チェッカーの実装など、プログラミング言語の基本概念を網羅しています。著者らは、これらの概念を学習または教授するすべての人々にこの書籍の使用を奨励し、学生やティーチングアシスタントの貢献に感謝しています。最新版では、誤植の修正とページ余白の縮小が行われています。

開発

Podman Desktopのダウンロード数が300万件を突破!

2025-09-24
Podman Desktopのダウンロード数が300万件を突破!

コンテナとKubernetesの管理のためのデスクトップアプリケーションであるPodman Desktopのダウンロード数が300万件を突破しました!この成功は、強力なコミュニティサポートと継続的な改善によるものであり、よりスムーズなKubernetesワークフロー、Dockerとの向上した互換性、日々の使いやすさの向上などが含まれます。Podman DesktopはCNCF Sandboxプロジェクトにも参加しており、ますます多くの企業で採用されています。チームはユーザーからのフィードバックに感謝し、継続的な改善に尽力し、開発者にさらに効率的なコンテナとKubernetesの管理体験を提供します。

開発

Vtermプロジェクト更新ログ:継続的なパフォーマンスと機能の改善

2025-09-24

Vtermの開発者Tom Szilagyiは最近、パフォーマンスの最適化、バグ修正、新機能追加などを含む多くのコミットを行いました。これらの更新には、GPUパフォーマンスの向上、符号付き整数のバグ修正、新しいコマンドラインオプションの追加、文字レンダリングと下線表示の改良などが含まれます。継続的なコード改善により、Vtermの安定性と効率性が向上します。

Rustの`fetch_max`:コンパイラ最適化の深層探求

2025-09-24
Rustの`fetch_max`:コンパイラ最適化の深層探求

最近のエンジニア面接で、応募者がRustの1行のコードで、複数のプロデューサースレッド間で最大値を追跡するという古典的な並行処理の問題を解きました。これがきっかけで、筆者はRustの`fetch_max`がどのように動作するのかという疑問を抱きました。この記事では、Rustコードからアセンブリコードへのコンパイルプロセスを深く掘り下げ、マクロ、LLVM中間表現、コンパイライントリ intrinsic、ターゲットアーキテクチャの仕様といった最適化の層を明らかにします。x86-64アーキテクチャでは、`fetch_max`は最終的にcompare-and-swap (CAS)ループにコンパイルされますが、ARMアーキテクチャではハードウェアのatomic max命令を直接使用します。この記事は、現代のコンパイラの強力な機能と、高レベルな抽象化の裏にある低レベルの詳細を示しています。

開発

Val Town、TypeScript統合を書き換え、高速化を実現

2025-09-24
Val Town、TypeScript統合を書き換え、高速化を実現

Val Townは、オンラインエディタのTypeScript統合を完全に書き換え、以前のクライアントサイドのWeb Workerベースの実装を、クラウドコンテナベースのDeno Language Serverに置き換えました。これにより、旧システムにおけるNPMパッケージの遅いインポートや、TypeScriptとDenoの非互換性といった問題が解決され、保存時のデプロイ速度が100msに達しました。新しいシステムはCloudflare Containersを活用して、ユーザーワークロードの分離とリソース制限を確保し、すべてのコードはオープンソース化されており、開発者によりスムーズで効率的なTypeScript開発体験を提供します。

亜線形空間ゼロ知識証明:画期的な進歩

2025-09-24
亜線形空間ゼロ知識証明:画期的な進歩

研究者らは、KZG/BN254を用いたRust実装による、亜線形空間ゼロ知識証明システムSSZKPを開発しました。長さTのトレースに対してO(√T)のメモリ使用量を実現し、ブロック化されたIFFTとストリーミングアキュムレータを使用しています。SSZKPは、多項式全体をバッファリングすることなく標準的なKZGコミットメントを使用し、スケーラブルなzkシステム構築のための非常に効率的なアプローチを提供します。このプロジェクトには、完全な証明者と検証者のCLIツール、エンドツーエンドのテストスクリプトが含まれています。

開発

プログラミング言語の未来:人気は終焉を迎えるか?

2025-09-24
プログラミング言語の未来:人気は終焉を迎えるか?

2023年のプログラミング言語ランキングが発表され、Pythonが再びトップに輝きました。しかし、AIの台頭が状況を一変させようとしています。ChatGPTやCursorといったAI支援コーディングツールにより、特定の言語への依存度が低下し、言語の人気という概念自体が曖昧になりつつあります。プログラマーは構文の細部にこだわるよりも、プログラムのアーキテクチャやアルゴリズム設計に重点を置くようになっています。これにより、新しい言語の登場が難しくなり、言語の人気は鉄道の軌間の人気と同じくらい曖昧になる可能性があります。将来のプログラマーは、特定の言語の習得よりも、堅牢なコンピュータサイエンスの基礎を必要とするでしょう。

開発

隠されたWebシェル:同一MD5ハッシュのPHPファイル

2025-09-24
隠されたWebシェル:同一MD5ハッシュのPHPファイル

2つのPHPファイルが同じMD5ハッシュを共有していますが、そのうちの1つはWebシェルです。このテクニックにより、攻撃者はキャッシュされたWebシェルの検出を回避できます。ヘックスダンプは、ファイル間の微妙な違いを示しており、機能が大きく異なるにもかかわらず、同一のMD5ハッシュになります。これは、セキュリティチェックにMD5ハッシングのみを頼るだけでは不十分であることを強調しています。より包括的なセキュリティ戦略が必要です。

Ghosttyの埋め込み型ターミナルエミュレータライブラリlibghosttyがリリース

2025-09-24

Ghosttyプロジェクトは、任意のアプリケーションに最新の高速ターミナルエミュレータを統合するための埋め込み型ライブラリlibghosttyをリリースしました。最初のリリースであるlibghostty-vtは、依存関係のない(libcも不要)ライブラリであり、ターミナルシーケンスの解析とターミナル状態の維持のためのAPIを提供します。これはGhosttyのコアコードから直接抽出されています。Zig APIは現在テスト可能です。C APIは近日公開予定です。libghosttyは、既存のターミナルエミュレータの実装に見られる一般的な欠点(不完全さ、バグ、低速)を解決し、開発者に安定した再利用可能なソリューションを提供することを目指しています。将来の計画には、入力処理、GPUレンダリングなどの機能拡張が含まれます。

3つのC++コンパイラバグ:隠れた機能の物語

2025-09-23
3つのC++コンパイラバグ:隠れた機能の物語

シニアエンジニアのMichael Gibsonは、めったに使われない3つのC++機能の組み合わせから生じたclang++コンパイラバグを発見した経緯を語っています。C++ SDKでREACHABLEアサーションを実装する際に、静的初期化、非型テンプレートパラメータ、匿名名前空間を使用しました。しかし、clang++ 17以降の新しい最適化パイプラインがこの組み合わせと衝突し、シンボルの重複除去エラーが発生しました。これは、複雑なシステムにおける珍しい機能の相互作用から生じる、隠れたバグのリスクを浮き彫りにし、このような問題を発見する際の自動テストの威力を示しています。

開発

Zig:実用的なCLIツールのためのRustよりも実用的な選択肢

2025-09-23
Zig:実用的なCLIツールのためのRustよりも実用的な選択肢

この記事では、コマンドラインインターフェースの構築において、ZigがRustよりも実用的な利点を持つことを詳しく説明します。著者は、簡単なメモ管理CLIツールを使用して、2つの言語のメモリ管理の違いを示しています。Rustのborrow checkerはメモリセーフティを保証しますが、単純なCLIツールを扱う際には、その複雑さと儀式的な側面が煩雑になります。一方、Zigはより直接的なメモリ管理アプローチを提供し、`defer`ステートメントとアロケーターを組み合わせて、コンパイラのオーバーヘッドを削減しながら、効率的で安全なコードを簡単に作成できます。小規模なCLIツールの場合、Zigの軽量性、速度、直接的な性質により、より実用的になります。メモリセーフティは重要ですが、保守可能なコードと開発者の効率も同様に重要です。

開発

JavaScript疲れを克服する:HTMX上に構築されたモジュール型SSRフレームワークMESH

2025-09-23

Web開発は「JavaScript疲れ」と「フレームワーク疲れ」に直面しています。この記事では、HTML属性を使った宣言的なWeb開発アプローチであるHTMXを解決策として探求しています。しかし、HTMXの構造の欠如により、著者はMESHというモジュール型サーバーサイドレンダリング(SSR)フレームワークを作成しました。MESHは「コンポーネント一つ、エンドポイント一つ」モデルを使用し、GoとWeb Componentsを活用してSSRとハイドレーションを実現しています。HTMXがShadow DOMの境界を超えられないという課題は、巧妙な回避策で克服されました。サーバーセントイベント(SSE)によるリアルタイムコラボレーションも実装されています。最終的に、著者はHTMXを完全に削除し、よりクリーンなJSコードで同じ機能を実現し、HTMXの欠点と将来の方向性について考察しています。

開発

AppleのWebKit:Web標準への参加に関する詳細分析

2025-09-23
AppleのWebKit:Web標準への参加に関する詳細分析

この記事では、AppleのWeb標準への参加について詳細に分析し、データとグラフを用いて、Web MIDI、Web USB、Web Bluetoothなどの重要なWeb APIにおけるAppleの採用遅延と協調不足を明らかにしています。著者は、Appleがこれらの機能の拒否や遅延の理由として「プライバシーとセキュリティ」の問題を頻繁に挙げるものの、それを裏付ける十分な証拠は提示していないと主張しています。むしろデータは、Appleが他のブラウザに追いつくことに主眼を置いていることを示唆しており、積極的な共同設計には参加していないようです。この記事は、AppleのWeb標準への取り組みを疑問視し、その行動がApp Storeのビジネス利益の保護と関連している可能性を示唆しています。

開発

oLLM:コンシューマーGPUで巨大コンテキストLLMを実行

2025-09-23
oLLM:コンシューマーGPUで巨大コンテキストLLMを実行

oLLMは、8GB VRAM搭載のコンシューマーGPU(例:200ドルのNvidia 3060 Ti)で、gpt-oss-20Bやqwen3-next-80Bなどの巨大コンテキストLLMの推論を可能にする軽量Pythonライブラリです。最大10万コンテキストを処理します。量子化なしで、レイヤーの重みとKVキャッシュをSSDにオフロードし、FlashAttention-2やチャンク化されたMLPなどの技術を用いることで実現しています。様々なLLMをサポートし、契約の分析、医療文献の要約、巨大ログファイルの処理など、大規模なテキスト処理タスクのための使いやすいAPIを提供します。

arXivLabs:arXivの新機能に関するコミュニティコラボレーション

2025-09-23
arXivLabs:arXivの新機能に関するコミュニティコラボレーション

arXivLabsは、共同作業者がarXivの新しい機能をウェブサイト上で直接開発・共有できる実験的なフレームワークです。arXivLabsと連携する個人や組織は、オープン性、コミュニティ、卓越性、ユーザーデータのプライバシーというarXivの価値観を受け入れています。arXivはこれらの価値観に尽力しており、これらの価値観を共有するパートナーのみと協力しています。arXivコミュニティに利益をもたらすプロジェクトのアイデアをお持ちですか?arXivLabsの詳細をご覧ください。

開発

感染したqBittorrent Dockerイメージが密かに仮想通貨をマイニング

2025-09-23

サーバーの移行中に、作者はhotio/qbittorrent Dockerコンテナ内で、過剰なCPUリソースを消費する疑わしいプロセスnetservletを発見しました。調査の結果、netservletはステルス型の仮想通貨マイナーであり、おそらくXMRigまたはその派生版であることが判明しました。コアダンプの分析により、仮想通貨マイニング関連の文字列(例:cryptonight、ethash_calculate_dag_item)とマイニングプールのアドレス(auto.c3pool.org:19999)が検出されました。これは、ランダムなDockerイメージを信用せず、システムリソースを定期的に監視し、ホストとコンテナを監査してセキュリティ侵害を防ぐことの重要性を強調しています。

StringZilla v4:CUDA対応SIMD文字列処理ライブラリがリリース

2025-09-23
StringZilla v4:CUDA対応SIMD文字列処理ライブラリがリリース

StringZilla v4がリリースされました!このSIMD-first文字列処理ライブラリは、CUDAに対応したため、CPUだけでなくGPUでも高速に動作します!v4では、GPUアクセラレーションされた動的計画法アルゴリズム、複数のハッシュ関数(AESベースの新関数を含む)、52ビット整数を使ったバイオシーケンスフィンガープリンティングなど、多くの新機能が追加されました。ベンチマークテストでは、StringZilla v4がLevenshtein距離計算で500 GCUPSを超える驚異的な速度を達成し、他のライブラリを数十倍から数百倍上回ることが示されました。このライブラリはApache 2.0ライセンスで、商用利用も可能です。

開発

YAML:地獄からの設定ファイル?

2025-09-23

この記事は、YAML設定ファイルの複雑さを批判し、その一見ユーザーフレンドリーな性質の裏に多くの落とし穴が潜んでいると主張しています。著者はいくつかの例を用いて、YAMLのバージョンの違い、予測不可能な解析結果、セクステシマル数、タグ、ブール値の解析などの潜在的なセキュリティリスクを説明しています。著者は、YAMLの問題を回避するためにTOMLのようなよりシンプルな代替案やJSONの生成を推奨し、複雑な設定にはNixやPythonなどのより強力な選択肢を提案しています。

開発

小さな関数型言語をLLVMにコンパイルする:簡単な電卓の例

2025-09-23

この記事では、小さな関数型言語をLLVMにコンパイルするプロセスを詳細に説明します。基本的な電卓言語から始めて、字句解析器、構文解析器、LLVMコードジェネレーターを段階的に構築します。この記事では、megaparsecライブラリを使用したパーシング、llvm-hs-pureとllvm-hs-prettyライブラリを使用したLLVM IRコードの生成、そして最終的なコンパイルと実行のプロセスを詳しく説明します。この例を通して、読者は関数型言語の特徴(パターンマッチングなど)をLLVM IRに変換する方法、そしてLLVMをコード生成とコンパイルにどのように使用するかを学ぶことができます。

arXivLabs:コミュニティとの協働による実験プロジェクト

2025-09-23
arXivLabs:コミュニティとの協働による実験プロジェクト

arXivLabsは、共同研究者がarXivの新しい機能を直接ウェブサイト上で開発・共有できるフレームワークです。arXivLabsに関わる個人や組織は、オープン性、コミュニティ、卓越性、ユーザーデータのプライバシーというarXivの価値観を受け入れています。arXivはこれらの価値観にコミットしており、これらの価値観を共有するパートナーとのみ連携します。arXivコミュニティに役立つプロジェクトのアイデアをお持ちですか?arXivLabsの詳細をご覧ください。

開発

プログラマの猫の糞と救済

2025-09-23
プログラマの猫の糞と救済

あるプログラマが、バーで同僚がミントキャンディーで覆われた猫の糞を食べるのを見て、深い思考に陥る。彼は長年、プログラミングの仕事で遭遇してきた様々な「猫の糞」の問題について振り返る。無意味なコード変更、煩雑なプロセス、そして過去に抱いていた他人への辛抱のなさや理解不足などだ。かつては自分の専門知識を誇り、それを使って他人を判断さえしていたことに気づくが、今では疲弊し、途方に暮れている。この記事は、プログラマがキャリアにおいて直面する困難と、情熱と創造性を維持する方法を探求し、最終的にAIの助けを求めて問題を解決し、自身の態度を省みることで、自己救済への道を示している。

開発

PythonとWhisperを使ってローカル音声テキスト変換システムを構築する

2025-09-23
PythonとWhisperを使ってローカル音声テキスト変換システムを構築する

機密性の高い音声をクラウドの転写サービスにアップロードすることのリスクにうんざりしていませんか?この記事では、PythonとOpenAIのWhisperモデルを使ってローカルの音声テキスト変換システムを構築する方法を紹介します。わずか10分以内で、96%の精度で音声を転写できます。完全に無料で、ローカルのラップトップで処理されます。このチュートリアルでは、FFmpegの設定、Python環境の設定、Whisperモデルの使用、バッチ処理、SRT字幕の作成、一般的な問題のトラブルシューティングについて説明します。`speech_recognition`ライブラリを使った代替方法も提供します。

開発

RubyGemsとBundlerのセキュリティインシデント:会計担当者の説明

2025-09-23
RubyGemsとBundlerのセキュリティインシデント:会計担当者の説明

Ruby Centralの理事兼会計担当者であるMINASWANは、RubyGemsとBundlerのセキュリティに関する最近の論争について声明を発表しました。彼は、コミュニケーション不足と時間的制約により、システムのセキュリティを確保し、資金調達の損失を防ぐため、一部のメンテナのアクセス権を一時的に取り消すという決定がなされたと説明しています。彼はコミュニケーションの失敗を認め、結果として生じた恐怖と混乱について謝罪するとともに、この措置はRubyエコシステムの安定性と安全性を守るためのものであったと強調しています。

開発

ソフトウェア開発における作業単位の再考

2025-09-23

この記事では、ソフトウェア開発における「作業単位」のベストプラクティスを探ります。著者は、優れた作業単位は、分解可能、検証可能、独立性があり、優先順位付けが可能であるべきだと主張しています。これはユーザーストーリーに似ていますが、ソフトウェアライフサイクル全体における役割をより重視しています。著者は、作業単位を明確に定義することで、チームの効率が向上し、不要な複雑さが軽減され、最終的に顧客価値が向上すると述べています。また、AI支援開発の効率をコード生成量だけで測ることを批判し、顧客価値を重視した作業単位の実質的な効果を評価すべきだと主張しています。

開発 作業単位

httpjail:AIエージェントのためのきめ細かいHTTPフィルタリング

2025-09-23

AIエージェントが強力になるにつれて、セキュリティリスクも増加します。httpjailは、JavaScript式またはカスタムスクリプトを使用して、エージェントのネットワークアクセスを制御できる、きめ細かいHTTP(S)フィルタリングを提供するツールです。これにより、データ漏洩や悪意のある行動を防ぎます。Linux名前空間とnftablesを使用する強力なモードと、環境変数を使用する弱いモードの2つのモードで動作し、安全なHTTPSトラフィックのためのTLSインターセプト機能を備えています。完全なセキュリティシステムはありませんが、httpjailは強力なAIエージェントを使用する際のセキュリティを大幅に向上させます。

テストはアルゴリズムに勝る:ソフトウェアエンジニアの就職活動ガイド

2025-09-23

ベテランエンジニアが、就職活動者はデータ構造とアルゴリズム(DSA)に過剰に焦点を当て、重要なスキルであるテストを軽視していると主張しています。DSAはプログラミングの基礎ですが、現実には複雑なアルゴリズムをゼロから実装する必要はほとんどありません。著者は、基本的なデータ構造とアルゴリズムを学び、時間計算量を理解し、Pythonの組み込みデータ構造を習得することを推奨しています。さらに重要なのは、テストスキルを優先することです。これは実務において不可欠であり、面接で有利に働くでしょう。LeetCodeに固執するのではなく、テスト能力を向上させて高品質なコードを書くことに集中しましょう。

開発

Notion 3.0:AIエージェントが面倒な作業を引き受ける

2025-09-23
Notion 3.0:AIエージェントが面倒な作業を引き受ける

Notion 3.0がAIエージェントと共にリリースされました。このエージェントは、人間がNotionで行えるあらゆるタスクを実行できます。面倒な作業を自動化し、ドキュメント、データベース、レポートを作成します。一般的なチャットボットとは異なり、Notion AIエージェントはあなたのワークフローを理解し、コンテキストを考慮したアクションを実行します。パーソナライゼーションオプションにより、エージェントの動作と指示をカスタマイズできます。今後のアップデートでは、チーム全体の自動化のためのカスタムエージェントが追加されます。このリリースには、データベース行の権限や新しいAIコネクタなどの、強く要望されていた機能も含まれています。

開発

g++のためのGNUインターフェースレイヤー(GIL)

2025-09-23
g++のためのGNUインターフェースレイヤー(GIL)

このリポジトリは、g++のためのGNUインターフェースレイヤー(GIL)と標準ライブラリのインプリメンテーションを提供します。「Hello, world!」の簡単なC++プログラムの例や、電卓、マージソートなどの他の例が含まれています。プログラムの実行にはg++コンパイラが必要であり、パス設定に注意する必要があります。このプロジェクトは、カスタム標準ライブラリを使用した、C++プログラミングの非伝統的なアプローチを示しています。

開発
2 4 5 6 7 8 9 214 215