Category: 開発

ローカルでのLLM実行:プライバシー、コスト、そして実験

2025-03-11
ローカルでのLLM実行:プライバシー、コスト、そして実験

この記事では、大規模言語モデル(LLM)をローカルで実行することの利点と方法を探ります。クラウドサービスには性能で劣るものの、プライバシー、コスト管理、実験的な開発において大きなメリットがあると著者は主張しています。3つのツール、Ollama(使いやすく、豊富なモデルライブラリ)、Llama.cpp(クロスプラットフォームでパワフル)、Llamafiles(単一実行ファイルで共有が容易)が紹介されています。モデル選択、パラメータ、量子化、モデルの機能など重要な側面も網羅し、モデルファイルのサイズとセキュリティに関する注意喚起も行われています。結論として、ローカルでのLLM実行は、開発者に柔軟で制御可能なAI開発手法を提供します。

UUIDv7:新しい時間ベースのUUID規格

2025-03-11
UUIDv7:新しい時間ベースのUUID規格

UUIDv7は、従来のUUIDの利点と、最新の拡張可能な分散システムの長所を組み合わせた、新しい時間ベースのUUID規格です。ランダムに生成されるUUIDv4とは異なり、UUIDv7はグローバルに一意で、時間順にソート可能な識別子を備えているため、タイムスタンプと一意性を必要とするアプリケーションに最適です。UUIDv1に関連するプライバシーの問題に対処し、既存のUUIDライブラリとの互換性を維持しています。主なユースケースには、分散システム、データベースインデックス、ログ監視、電子商取引などがあります。

開発

Godotのビルドサイズ削減:93MBから6.4MBへ

2025-03-11
Godotのビルドサイズ削減:93MBから6.4MBへ

この記事では、Godotゲームエンジンのビルドサイズを大幅に削減する方法を詳しく説明します。著者は、3D機能、高度なテキストサーバー、不要なモジュールの無効化から始め、プロジェクトを体系的に最適化します。UPX圧縮ツール、WebAssembly最適化(wasm-opt)、Brotli圧縮などの技術も検討します。この記事では、シンプルな2Dバウンスゲームを例として使用し、各ステップの影響を明確な比較で示しています。これは、さまざまな最適化戦略とその長所と短所を網羅した実践的なガイドです。

TypeScriptネイティブコンパイラ:10倍のパフォーマンス向上

2025-03-11
TypeScriptネイティブコンパイラ:10倍のパフォーマンス向上

TypeScriptチームは、TypeScriptコンパイラとツールのネイティブポートを発表し、パフォーマンスを劇的に向上させました。このネイティブ実装により、エディターの起動時間が大幅に短縮され、ほとんどのビルド時間が10倍になり、メモリ使用量が大幅に削減される予定です。初期テストでは、いくつかの大規模プロジェクト(例:VS Code、Playwright)のコンパイル速度が10倍以上向上しました。将来のネイティブTypeScript(TypeScript 7として計画)は、より高度なリファクタリング、より深いコード分析をサポートし、次世代AI開発ツールの基盤となります。TypeScript 6(JSベース)は、円滑な移行を確保するために引き続き保守されます。

Cinder JIT:ビットセットと半束を用いた効率的な型表現

2025-03-11
Cinder JIT:ビットセットと半束を用いた効率的な型表現

Cinder JITコンパイラは、型を集合(格子でもある)として扱い、コンパクトなビットセット表現を選択するという巧妙な型表現を採用しています。この記事では、Cinderが基本的な型の表現、型の結合、特殊化処理など、効率的な型情報処理のためにビットセットと半束構造をどのように活用しているかを詳しく解説しています。型情報をビットセットにエンコードすることで、Cinderは型の結合を効果的に表現し、より粒度の細かい型の区別を可能にしています。さらに、Cinderは個々のオブジェクトの具体的な値を追跡する特殊化メカニズムを導入し、コンパイラの最適化効率をさらに向上させています。この記事では、Bottom型や型格子の生成方法についても説明しています。

PlusCalによるゼロダウンタイムデータベースマイグレーションの検証

2025-03-11

この記事では、著者がTLA+のDSLであるPlusCalと形式的検証を使用して、ゼロダウンタイムデータベースマイグレーションの正確性をどのように保証したかを詳述しています。ユーザーによるデータベースへのUpsert、Delete、Get操作とバックグラウンドマイグレーションプロセスをシミュレートするPlusCalモデルが構築されました。マイグレーションのないシステムとマイグレーションのあるシステムをシミュレートし、すべての状態においてGet操作の結果の一貫性を検証することで、著者はマイグレーションアルゴリズムの正確性を保証しました。形式的検証は、TOMBSTONEの不適切な処理など、欠陥の早期検出に役立ち、マイグレーション中のデータのチェックと挿入の原子性など、原子操作の重要性を強調しました。

開発

コードの可読性を向上させる8つの視覚パターン

2025-03-11
コードの可読性を向上させる8つの視覚パターン

コードの監査中に、高品質のコードにも関わらず、著しい精神疲労を感じたプログラマーがいました。原因はサイクロマチック複雑度ではなく、可読性でした。調査の結果、可読性を向上させる8つの視覚パターンが明らかになりました。行数/演算子/オペランド数を最小限に抑える、関数の形状、演算子、構文糖での新規性を避ける、長い関数チェーンをグループ化する、条件文を短く保つ、gotoを避ける、ネストを最小限に抑える、記述的で視覚的に区別できる変数名を使用する、変数の寿命を短くする、といったものです。これらのパターンは、コードの可読性を向上させ、バグを減らし、開発者の生産性を高めます。

GCC 15がCOBOLをサポート!

2025-03-11

GCC 15コンパイラに大きなアップデートが到来します。COBOL言語フロントエンドのサポートがマージされました!これはGCCによるCOBOLサポートの大きな一歩であり、レガシーなメインフレームCOBOLアプリケーションをLinuxやクラウド環境に移行することを容易にします。COBOLの人気は以前ほどではありませんが、このマージは嬉しいサプライズです。開発者は`gcobol`コマンドを使用してCOBOLコンパイラフロントエンドを呼び出すことができます。今後数週間でリリースされるGCC 15.1安定版では、多くの機能と共にCOBOLサポートが提供されます。

開発

ローカルディープリサーチアシスタント:LLMとウェブ検索を組み合わせた強力なAI研究ツール

2025-03-11
ローカルディープリサーチアシスタント:LLMとウェブ検索を組み合わせた強力なAI研究ツール

複数のLLMとウェブ検索を使用して、深く反復的な分析を行う、強力なAI駆動型のリサーチアシスタントです。プライバシー保護のためにローカルで実行することも、拡張機能のためにクラウドベースのLLM(Claude、GPT)を使用するように設定することもできます。ローカル処理(Ollamaモデルを使用)とクラウドLLMをサポートしており、要約だけでなく、ウェブページの完全なコンテンツを分析できます。さらに、引用付きの詳細な調査結果、包括的な調査レポート、迅速な要約など、豊富な出力オプションを提供し、プライベートドキュメントコレクションのためのローカルドキュメント検索(RAG)機能も備えています。

Sidekick:macOS向けの強力なローカル実行LLMアプリケーション

2025-03-11
Sidekick:macOS向けの強力なローカル実行LLMアプリケーション

Sidekickは、macOSネイティブのLLMアプリケーションで、完全にローカルで実行され、追加のソフトウェアなしでファイル、フォルダ、ウェブサイトにアクセスできます。RAG技術を使用して、大量のデータセットを処理し、コードインタープリターを含む複数の推論モデルをサポートし、画像を生成し、高度なMarkdownレンダリング機能と組み込みのライティングアシスタントツールを備えています。Sidekickはシンプルさと使いやすさを優先し、完全にオフラインで動作し、会話の追跡がなく、透明性のためにオープンソースです。

9ヶ月間のオデッセイ:ClojureでBelを実装する

2025-03-11

この記事は、ClojureでBelプログラミング言語を実装する9ヶ月間の道のりを詳述しています。当初は週末プロジェクトとして構想されていましたが、著者はいくつかの課題に直面しました。Bel独自の構文のためのカスタムパーサーの作成、Belの継続渡しスタイルの処理(スタックオーバーフローの問題を克服するためにインタプリタのコールスタックの再実装が必要)、Javaデータ構造を使用したパフォーマンスの最適化などです。著者は、`lit`、`globe`、`scope`、`mac`、`err`など、Belの強力な機能を掘り下げ、継続によって実現される機能を示しています。プロジェクトはまだ開発中ですが、著者はこの困難ながらもやりがいのある経験を通して学んだ貴重な教訓を強調しています。

開発

KubernetesにおけるIPアドレスとネットワーク変更の自動化

2025-03-11
KubernetesにおけるIPアドレスとネットワーク変更の自動化

著者のKubernetesクラスタは動的に割り当てられたIPアドレスに依存しており、ネットワーク設定の脆弱性を生み出していました。これを解決するために、Unifi APIを使用してUnifiゲートウェイのパブリックIPアドレスを定期的にチェックし更新するKubernetesデプロイメントを作成しました。IPアドレスまたはIPv6ネットワークの変更を検出すると、UnifiファイアウォールルールとKubernetesサービスリソース(MetalLB設定を含む)を自動的に更新し、MQTTを介してユーザーに通知します。このプログラムはPythonで記述されており、自動化のためにKubernetesとUnifiのAPIを利用しています。

Shef:複雑なシェルスクリプトなしでシェルレシピを作成

2025-03-11
Shef:複雑なシェルスクリプトなしでシェルレシピを作成

Shefは、複雑なbashスクリプトを書くことなく、複雑なシェルワークフローを作成できる強力なCLIツールです。CyberChefにインスパイアされたShefは、シンプルなYAML形式を使用してコマンドを連結し、インタラクティブなプロンプトを組み込み、ループと条件付きロジックを実装し、再利用可能なレシピを作成します。テンプレート、変換、簡単なエラー処理などの機能を提供することで、シェルスクリプトの作成を合理化し、タスクの自動化と複雑なプロセスの管理を変えるツールとなっています。

開発

WindowsエクスプローラーのO(n²)アイコン配置アルゴリズムがフリーズの原因に

2025-03-10
WindowsエクスプローラーのO(n²)アイコン配置アルゴリズムがフリーズの原因に

Windowsユーザーがエクスプローラーのフリーズに悩まされ、著者はパフォーマンス分析ツールを使って原因を特定しました。それは、非効率的なアイコン配置アルゴリズムでした。このアルゴリズムの時間計算量はO(n²)であり、多数のアイコンがある場合、配置に非常に長い時間がかかります。アイコンが非表示の場合でも同様です。著者は実験でこれを検証し、開発者はこのような非効率的なアルゴリズムを避けるべきだと訴えています。

開発

CSSが苦手?この本が解決策かも

2025-03-10

レックス・リープの著書『You Suck At CSS』は、CSSを避ける方法ではなく、効率的にCSSを使いこなす方法について書かれています。初心者から上級者までを対象とし、フロントエンドタスクを迅速に完了し、チームでの効率性を重視することを目指しています。California Stylesheetsフレームワークをサポートしており、最新の技術を使った高速なWeb開発に焦点を当てています。CSSとそのエコシステムが現状である理由についても解説しています。

開発

バグトラッカーの再考:懸念事項の分離

2025-03-10

様々なバグトラッカーを長年使用してきた著者は、そのデータ表現に根本的な欠陥があり、繰り返し不満が生じていることを突き止めました。3つの主要な問題が強調されています。事実と計画を混同する統一された「修正バージョン」フィールド、コードの現実と将来の意図の境界線を曖昧にする2段階のステータスと解決策システム、バグリストとToDoリストの混同により、バグ以外のタスクに困難が生じることです。著者は「懸念事項の分離」という原則を提案し、「事実」と「計画」のテーブルに分割することを提案しています。「事実」テーブルには、バグの客観的な情報(存在、バージョン、重大度)が記録され、「計画」テーブルには、意図、タイムライン、主観的な優先順位が追跡されます。この分離により、バグトラッキングが合理化され、さまざまなプロジェクトタイプにより適応し、バグ解決のみに焦点を当てたプロジェクトでは「計画」テーブルを完全に省略することもできます。

55歳開発者が前雇用主のネットワーク破壊で10年の禁錮刑に直面

2025-03-10
55歳開発者が前雇用主のネットワーク破壊で10年の禁錮刑に直面

55歳のソフトウェア開発者が、前雇用主のネットワークを破壊した悪意のあるコードを展開したとして、最長10年の懲役刑に直面しています。被害額は数十万ドルに上るとされています。11年間Eaton Corp.に勤務していたDavis Lu氏は、2018年の企業再編で「責任が軽減された」ことを不満に思い、悪意のあるコードを仕掛けたとされています。このコードには、「IsDLEnabledinAD」(「Is Davis Lu enabled in Active Directory」の略)という名前の自己起動型「キルスイッチ」が含まれており、2019年のLu氏の解雇日に自動的に起動し、Eaton Corp.のグローバルユーザーに影響を与えました。

オープンソースメンテナのジレンマ:真に役立つ方法

2025-03-10

Hacker Newsで、ある開発者がオープンソースメンテナが直面する課題を強調しています。大企業はコスト削減のためにこれらのプロジェクトに依存していますが、めったに貢献せず、メンテナを圧倒しています。主な問題はコミュニケーションの不足です。メンテナは明確な貢献ガイドラインがなく、貢献者はどのように効果的に支援できるのかがわかりません。著者は、メンテナが自身のニーズを明確に示すこと、つまりPRの受け入れ、バグレポートの提出方法、金銭的支援の受諾などを明確にすることで、効率と協調性を向上させると提案しています。

大好評の強化学習教科書:数学的基礎と付属動画

2025-03-10
大好評の強化学習教科書:数学的基礎と付属動画

5000以上の星を獲得した強化学習の教科書。数学的な基礎に基づきながら、基本的な概念、問題、古典的なアルゴリズムを分かりやすく解説しています。多数の例題を含み、中国語と英語の講義動画(BilibiliとYouTubeで視聴可能)も付属しています。長年の教育経験を活かして作成され、学部生、大学院生、研究者、実務者にとって最適です。

開発

AWS EKS でゼロダウンタイムデプロイメントを実現する3つのステップ

2025-03-10
AWS EKS でゼロダウンタイムデプロイメントを実現する3つのステップ

Glasskube のエンジニアである Jakob は、AWS EKS でゼロダウンタイムデプロイメントを実現する方法について自身の経験を共有しています。この記事では、AWS ロードバランサーコントローラーの仕組みを詳しく説明し、ローリングアップデート中に発生する可能性のある2つのダウンタイムの問題点(ヘルスチェックの遅延とポッドの終了遅延)を指摘しています。そして、3つの解決策として、Pod Readiness Gates の有効化、アプリケーションのグレースフルシャットダウンの実装、サイドカーコンテナの使用またはアプリケーションへの終了遅延の追加を提案しています。これら3つのステップにより、ローリングアップデート中の 502/504 エラーを効果的に回避し、100% ゼロダウンタイムデプロイメントを実現できます。

Visual Studioは思考力を蝕むか? プログラマの嘆き

2025-03-10

この記事では、Visual Studioがプログラマの思考に与える影響を探っています。Visual Studioの有用性を認めつつも、著者は、特にIntelliSenseのような過剰な自動化が、真のプログラミングスキルや創造性を阻害する可能性があると主張しています。著者は、そのような支援なしでの純粋なコーディングの喜びを対比させ、より実践的なアプローチの精神的な利点を強調しています。この記事では、プログラミングツールの歴史にも触れ、Avalon(WPF)とXAMLによる将来的な変化についても考察しています。

開発

arXivLabs:コミュニティ参加者との実験プロジェクト

2025-03-10
arXivLabs:コミュニティ参加者との実験プロジェクト

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

開発

スタックトレース:過小評価されているデバッグツール

2025-03-10

この記事では、デバッグにおけるスタックトレースの重要性を強調しています。Pythonの例を用いて、スタックトレースがどのようにエラーの位置と関数呼び出しを特定するかを示しています。しかし、GoやRustなどのモダンな言語やマイクロサービスアーキテクチャでは、完全なスタックトレースを取得・維持することに課題があることを指摘しています。回避策はありますが、Pythonの使いやすさとは対照的に、追加の作業が必要です。著者はスタックトレースの優先順位付けを主張し、その利点がパフォーマンスのオーバーヘッドを上回ると主張しています。

CPythonのパフォーマンス向上:予期せぬ展開とLLVMの回帰に関する物語

2025-03-10

最近のCPythonの統合により、新しいバイトコードインタープリタの実装が導入され、当初は様々なベンチマークで10~15%という印象的なパフォーマンス向上を示しました。しかし、この向上は、LLVM 19の回帰を無意識のうちに回避した結果であることが判明しました。より適切なベースライン(GCCや調整済みのLLVM 19など)と比較すると、実際のパフォーマンス向上はわずか1~5%に減少します。数週間におよぶコンパイル、ベンチマークテスト、逆アセンブルの結果、LLVM 19におけるテールコールの複製に関する制限が、この回帰の原因であることが明らかになりました。テールコールインタープリタ自体は貴重な改善ですが、この出来事は、ベースラインの選択の難しさやコンパイラの最適化の複雑さの理解不足など、ベンチマーク、パフォーマンスエンジニアリング、ソフトウェアエンジニアリングにおける課題を浮き彫りにしています。

開発

仮想パンチカード:ビッグアイロン時代のレトロ体験

2025-03-10
仮想パンチカード:ビッグアイロン時代のレトロ体験

パンチカードを覚えていますか?無料のオンラインツール「The Virtual Keypunch」で、このレトロなプログラミング方法を体験できます。テキストを入力すると、シミュレートされたパンチカード画像が生成され、FORTRAN、COBOLなど様々なカードタイプやバイナリモードもサポートしています。単なる懐かしい体験だけでなく、開発者にとって初期のプログラミングを学ぶためのユニークな方法です。

開発

オープンソースAndroidアプリ:プライバシー、セキュリティ、そしてカスタマイズ

2025-03-10

クローズドソースアプリの邪魔な広告やプライバシーへの懸念にうんざりしていませんか?オープンソースAndroidアプリが爽快な代替手段を提供します。公開されているソースコードは透明性とセキュリティを保証し、ユーザーと開発者はコードを検査して脆弱性や悪意のある要素を調べることができます。オープンソースアプリは多くの場合、ユーザーのプライバシーを優先し、より少ないデータを収集し、データ使用に関する明確なドキュメントを提供します。さらに、自分のニーズに合わせてアプリをカスタマイズすることもでき、強力なコミュニティが継続的な開発と改善をサポートします。

開発

Free95:Windows互換のオープンソースOS

2025-03-10
Free95:Windows互換のオープンソースOS

Free95は、Windowsと互換性のあるオープンソースのオペレーティングシステムです。ユーザーフレンドリーなWindowsライクな環境を提供し、オープンソースコミュニティによるセキュリティと透明性を追加しています。お気に入りのWindowsゲームやアプリケーションは問題なく動作するはずです。このプロジェクトは、独自OSにしばしば関連する不要なソフトウェアやセキュリティ上の問題を解消することを目指しており、企業の管理から自由な代替手段を提供します。互換性は、NTシステムコールとWin32 APIの実装によって実現されます。貢献するには、プルリクエストを送信するか、Discordで開発者dripkap_19416に連絡してください。ソースからOSをコンパイルするか、リリースセクションからバイナリをダウンロードできます。

開発 Windows互換

Structured:データアプリ開発の再定義

2025-03-10
Structured:データアプリ開発の再定義

Structuredは、分析スタック全体をコードに統合することで、開発者がデータアプリケーションを構築および展開する方法に革命を起こしています。本番環境向けデータ集約型アプリケーションの展開における非効率性に対処するため、Structuredは、開発者が数時間でデータアプリケーション(ダッシュボード、内部ツール)のプロトタイプ作成、展開、管理を可能にする軽量SDKを提供しています。同社は、コアSDKの構築、インタラクティブコンポーネントのデザイン、パフォーマンスの最適化などに携わる経験豊富なフルスタックエンジニアを求めています。テクノロジースタックには、Python、TypeScript、Next.js、React、Postgres、AWS/GCPが含まれます。

arXivLabs:コミュニティとのコラボレーションによる実験プロジェクト

2025-03-09
arXivLabs:コミュニティとのコラボレーションによる実験プロジェクト

arXivLabsは、共同作業者がarXivの新しい機能を直接ウェブサイト上で開発・共有できるフレームワークです。arXivLabsに関わる個人や組織は、オープン性、コミュニティ、卓越性、ユーザーデータプライバシーというarXivの価値観を共有しています。arXivはこれらの価値観にコミットしており、これらの価値観を遵守するパートナーのみと協力します。arXivコミュニティに価値を追加するプロジェクトのアイデアをお持ちですか?arXivLabsについてさらに詳しく学びましょう。

開発
1 2 141 142 143 145 147 148 149 214 215