Category: 開発

OpenTelemetryを用いたGitHub Actionsのオブザーバビリティ

2025-06-15
OpenTelemetryを用いたGitHub Actionsのオブザーバビリティ

このガイドでは、OpenTelemetryを使用してGitHub Actionsを監視することで、CI/CDパイプラインのエンドツーエンドのオブザーバビリティを実現する方法を示します。OpenTelemetry CollectorのGitHubレシーバーを構成することで、ワークフローからのトレースとメトリクスを収集し、ボトルネックの特定、エラーのデバッグ、依存関係の分析を行うことができます。このガイドでは、GitHub Webhookの設定、OpenTelemetry Collectorのインストール、レシーバーとプロセッサーの構成、認証処理など、ステップバイステップの設定方法を示します。YAML設定スニペットも含まれています。最終的に、これらのデータはSigNozなどのオブザーバビリティプラットフォームに送信され、可視化と分析が行われます。

開発

Lisp:プログラマーのための創造的な媒体

2025-06-15

このエッセイは、Lispが単なるプログラミング言語ではなく、執筆や芸術と同様に、プログラマーのための創造的な媒体であると主張しています。著者は、優れたプログラミングは、執筆と同様に、探求と発見、それに続くプレゼンテーションの洗練を伴うと主張しています。Lispの動的な性質は、実験と反復に最適であり、プログラマーは、作家が原稿を改訂するように、コードを調整および改善できます。地図作成や執筆などの例を用いて、著者は発見と洗練の相互作用を示し、パフォーマンスを優先するプログラミング言語設計のアプローチを、創造性と柔軟性を阻害するものとして批判しています。著者は、アジャイル手法の精神を反映した、より柔軟で探求的なソフトウェア開発アプローチを提唱しています。

開発

セキュリティバイパス:仮想マシンのアップデートメカニズムを解読してフラグを簡単に取得

2025-06-15
セキュリティバイパス:仮想マシンのアップデートメカニズムを解読してフラグを簡単に取得

ある学生が、セキュリティコースの仮想マシン内のアップデートファイル(*.gpg)に課題提出用のトークンが含まれていることを発見しました。アップデートプログラム`installUpdate`を分析した結果、`/root/.vmPassphrase`と`/root/.gnupg`ファイルに依存するGPG復号化を使用していることが判明しました。VMのディスクをマウントすることで、学生はこれらのファイルを取得し、アップデートを復号化し、トークンを抽出し、課題を早期に完了させました。アップデートには、AESで暗号化されたトークンを生成するJavaコードが含まれていました。著者は、この攻撃はVMディスクへの完全なアクセス権に依存しており、リモートVMの使用を改善策として提案しています。早期完了にもかかわらず、著者は学習プロセスとコースワークの完了の重要性を強調しています。

開発

ICONIC:GitHub READMEのための洗練されたスキルアイコンライブラリ

2025-06-15
ICONIC:GitHub READMEのための洗練されたスキルアイコンライブラリ

ICONICは、GitHubのREADME、ポートフォリオ、履歴書向けにデザインされた、スタイリッシュなバブル型のスキルアイコンライブラリです。視認性と美しさに優れたバブルアイコン、明暗両方のテーマバリエーション、Markdown/HTMLへの簡単な埋め込み機能を提供します。さらに、HTMLプレビューAPI(Djangoバックエンド)とダウンロード可能なSVGも用意されており、スキルを簡単にアピールできます。

arXivLabs:コミュニティとの共同実験プロジェクト

2025-06-15
arXivLabs:コミュニティとの共同実験プロジェクト

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

開発

Pythonコア開発者サミット:JIT、仮想スレッド、そして未来

2025-06-15
Pythonコア開発者サミット:JIT、仮想スレッド、そして未来

毎年恒例のPythonコア開発者サミットでは、エキサイティングな議論が展開されました。Metaのエンジニアは、新しいAPIを提供することで開発を簡素化することを目指し、プラグ可能なJITコンパイラの可能性を探りました。Javaからの知見は、Pythonの仮想スレッドに関する議論を促進し、並行処理能力の向上を目指しています。さらに、null合体演算子、AI支援コーディングツール、そして「worse is better」という開発哲学に関する議論も行われました。最後に、開発者たちはメモリ性能のベンチマークに注目し、T-stringsの型システムの将来的な進化について深く検討しました。

開発

macOS 26 Tahoeで変わった形のアプリアイコンを復活させる方法

2025-06-15
macOS 26 Tahoeで変わった形のアプリアイコンを復活させる方法

macOS 26 Tahoeでは、Dockの個性的なアプリアイコンがiOS風の角丸長方形アイコンに置き換えられ、多くのユーザーが不満を感じています。この記事では、ユーザーと開発者の両方にとって、カスタムアイコン形状を復元する方法を提供します。ユーザーはアプリケーションパッケージ内の.icnsファイルを置き換えることができます。開発者は、NSApplication.shared.dockTile.contentViewを使用して、実行時にアイコンを変更できます。あなたのDockをかつての輝きを取り戻しましょう!

SQL Serverからキーバリューストアへ:データベースの書き換え失敗の事後分析

2025-06-15

ベテラン開発者が、以前の会社でのデータベース書き換えの経験を語ります。元のシステムはSQL Serverを使用しており、複雑なストアドプロシージャのためにパフォーマンスのボトルネックと頻繁な停止に見舞われていました。書き換えではシンプルなキーバリューストアを選択しましたが、データモデルの不一致とトランザクションサポートの欠如により、I/O操作が急増し、パフォーマンスが悪化し、複雑なチェックポイントシステムが導入されました。最終的に、この書き換えは元の問題を解決できず、新たな課題を生み出しました。このユーモラスな話は、技術選定とアーキテクチャ設計の重要性、そして過度な簡素化による悪影響を反映しています。

macOS での C プログラムのコンパイル:実践ガイド

2025-06-14

この記事では、macOS で C/C++ プログラムをコンパイルする際の著者の経験を詳細に説明し、遭遇した課題と解決策に焦点を当てています。コンパイラのインストール、依存関係の管理(`apt-get` や `brew` などのツールを使用)、`Makefile` や `./configure` スクリプトの操作など、実践的なガイドを提供します。主なポイントは、コンパイラの警告の処理、`CPPFLAGS` や `LDLIBS` などの環境変数を使用したリンカーエラーの解決、`make` を使用したターゲットの選択的コンパイルです。また、システムツールやライブラリにおける C コンパイルの普及性から、C プログラムを書かないプログラマーにとっても C コンパイルの理解が重要であることを強調しています。最後に、著者がコンパイル済みのパッケージを Homebrew に成功裏に貢献したことで、コンパイルプロセスの習得による実用的な利点が示されています。

低レベルプログラミングとシステム設計の分離:システムプログラミングの再考

2025-06-14

この記事では、「システムプログラミング」という用語の進化を探求しています。著者は、この用語が2つの異なる概念、つまり低レベルプログラミング(マシンの実装の詳細を扱うこと)とシステム設計(複雑に相互作用するコンポーネントを作成および管理すること)を混同していると主張しています。1970年代のアセンブリ言語の改善から、1990年代のスクリプト言語の台頭、そして今日のプログラミング言語のパフォーマンス向上まで、システムプログラミングの境界はますます曖昧になっています。著者は「システムプログラミング」を「低レベルプログラミング」として再定義し、システム設計を独立した分野として残すことを提案しています。そして、関数型プログラミングの原則はシステム設計において価値があると主張し、コンピュータサイエンス教育において低レベルプログラミングとシステム設計の指導を分離して、アイデアの相互授受を促進することを提案しています。

開発

Rocky Linux 10リリース:RHEL代替ディストリビューション間の差異が拡大

2025-06-14
Rocky Linux 10リリース:RHEL代替ディストリビューション間の差異が拡大

Rocky Linux 10(Red Quartz)が一般公開されました。RISC-Vアーキテクチャのサポートが追加されましたが、古いRaspberry Piモデルのサポートは廃止されました。今年初めにリリースされたAlmaLinux 10とRHEL 10と比較すると、ハードウェアとソフトウェアの両面で微妙な違いが見られます。最も顕著な違いは、RHEL 10とRocky Linux 10がx86-64-v3 CPUを必要とするのに対し、AlmaLinux 10はx86-64-v2もサポートしている点です。さらに、RHEL 10独自のAIアシスタント「Lightspeed」はRocky Linux 10には含まれていません。機能的には似ていますが、Rocky Linux 10はハードウェア互換性、AI機能、商用サポートにおいて、他のRHEL代替ディストリビューションと少しずつ差をつけ、独自の市場ニッチを築きつつあります。

開発

libcなしプログラミング:straceを使ったLinuxシステムコールの習得

2025-06-14

著者は最近、libcを使わずにソフトウェアを構築することで、Linuxシステムコールと内部機構をより深く理解しようと試みました。最小限のシェル、スネークゲーム、純粋なARM64アセンブリHTTPサーバー、そしてスレッドの実装を作成しました。デバッグにはstraceを多用し、この記事ではstraceの多くの便利なオプションとフラグについて詳しく説明しています。子プロセスのトレース、詳細な構造体の情報出力、システムコールの選択的トレース、さらにはデバッグのためにシステムコールのエラーを注入するなど、幅広い機能が紹介されています。これは、高度なLinuxシステムプログラミングとデバッグ技術に関する貴重な洞察を提供します。

開発

Argparseの相互に排他的なグループのネスト制限:フラストレーションな謎

2025-06-14

Pythonのargparseモジュールは、コマンドライン引数の処理において、相互に排他的なグループを含む便利な機能を提供しますが、ネストに関してはフラストレーションな制限があります。複数のタイムアウト設定を持つプログラムを考えてみましょう。ユーザーは個々のタイムアウトを調整するか、完全に無効にすることができます。argparseは、個々のタイムアウトオプションのグループ内に「タイムアウトなし」オプションをネストすることをサポートしていません。これは設定を面倒にします。通常のグループの中に相互に排他的なグループをネストすることはできますが、その逆はサポートされておらず、公式ドキュメントでもこの制限が明示的に述べられています。そのため、開発者は特定のスイッチが使用されたかどうかを手動で確認する必要があり、複雑さが増します。

開発

Lispにおける真理のオラクル:型理論、カリー・ハワード対応、call/ccをめぐる奇妙な物語

2025-06-14

この記事では、Lispで「真理のオラクル」を作成しようと試みます。これは、任意の数学的命題の真偽を判定するプログラムです。著者はカリー・ハワード対応を紹介し、論理的証明が型付き関数型プログラミングにおける表現式に対応することを説明します。Racketのcall/cc関数(ピアースの法則と同型)を用いて、排中律と同型なプログラムの実装を試みます。しかし、実験結果は予想外でした。オラクルは常に偽を返し、不可能な型値にアクセスしようとした場合のみ真を返します。これは、古典論理と構成的論理の違い、そしてcall/cc関数の非標準的な制御フローメカニズムを明らかにします。最後に、著者は「悪魔との取引」という比喩を用いてこの奇妙な振る舞いを説明し、call/cc関数に潜むタイムトラベルのようなメカニズムを示します。

開発

毎日の天気予報SMSの自動化

2025-06-14

毎朝天気アプリを開くのにうんざりしていませんか?著者は2つの方法を試しました。まず、Zapierを使って午前7時頃に毎日の天気予報SMSを受信する自動化を行いました。しかし、カスタマイズ性がなく、サードパーティに依存していたため、TypeScript、Twilio、GitHub Actionsを使ってより柔軟なシステムを構築しました。Open-Meteo APIが天気データを提供し、TwilioがSMSを送信し、GitHub Actionsが毎日午前6時45分(タイムゾーンを考慮)にタスクを実行します。カスタムサマリーはZapierほど詳細ではありませんが、制御とコスト効率が向上し、サマリーの詳細を改善する予定です。

開発

arXivLabs:arXiv機能へのコミュニティ協力

2025-06-14
arXivLabs:arXiv機能へのコミュニティ協力

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

開発

Netflixの統合データアーキテクチャ:一度モデル化すれば、どこでも表現可能

2025-06-14
Netflixの統合データアーキテクチャ:一度モデル化すれば、どこでも表現可能

Netflixのコンテンツ提供の急増(映画、シリーズ、ゲーム、ライブイベント、広告など)により、それを支えるシステムの複雑さが急激に増大しました。重複したモデル、矛盾する用語、データ品質の問題に対処するために、Netflixは統合データアーキテクチャ(UDA)を構築しました。UDAは、チームが一度モデルを定義し、それをあらゆるシステムで一貫して再利用できるようにするナレッジグラフです。内部メタモデルであるUpperを活用し、UDAはドメインモデルを様々な技術的なデータ構造(GraphQL、Avro、SQLなど)に変換し、コンテナ間のデータ移動と変換を自動化します。これにより、効率性とデータの一貫性が向上します。主要データ管理(PDM)とSphereという2つの本番システムがUDAの能力を実証しており、それぞれ権威のある参照データの管理とセルフサービスの運用レポートを提供しています。

クオンツからBCIへ:2025年の独学ロードマップ

2025-06-14

定量金融とソフトウェア開発のバックグラウンドを持つベテランエンジニアが、脳コンピューターインターフェース(BCI)というエキサイティングな分野へと転身しています。彼は12~24ヶ月間の独学の旅に乗り出し、3つのフェーズに構造化しました。基礎ハードウェア(デジタル時計の製作、生体電気信号の増幅)、中級システム(アナログ/デジタルラジオ、FPGAベースの信号処理)、高度なトピック(閉ループニューラル刺激、インプラントからのワイヤレスデータ転送)です。この野心的な計画は、独学、実践的なプロジェクト、コミュニティへの参加を組み合わせ、最終的にはBCI分野における学界、スタートアップ、または業界での役割獲得を目指しています。

開発

混合整数線形計画法(MILP)の最近の進歩

2025-06-14

混合整数線形計画法(MILP)は、最新のソルバーの効率向上により、オペレーションズリサーチの礎となっています。これらのソルバーは、10年前には解くことができなかった問題のグローバル最適解を数秒で求めることができます。この汎用性により、輸送、物流、サプライチェーンマネジメント、収益管理、金融、通信、製造など、多くの分野で成功裏に適用されています。この成功にもかかわらず、多くの課題が残っており、MILPは活気のある研究分野です。この記事では、MILP解法の最も重要な進歩を概観し、計算上の側面と最近の実際的な性能向上に焦点を当て、計算実験を報告する研究を重視しています。この調査は、分枝限定法、Dantzig-Wolfe分解、Benders分解を中心に構成されており、現在の課題と将来の方向性に関する議論で締めくくられています。

最悪のPythonコードを書く方法

2025-06-14
最悪のPythonコードを書く方法

このユーモラスなガイドでは、想像を絶するほど理解不能でイライラのするPythonコードの書き方を学びます。`data1`、`temp`のような分かりにくい変数名や複雑な入れ子ループなど、一連の反例を通して、本当にひどいコードの作成方法を示します。最終的な目的は、クリーンで分かりやすいコードを書くことの重要性を強調し、保守が難しい技術的負債の作成を避けることです。

開発

Linuxカーネル6.16、コアダンプの脆弱性を修正:「愚かな」APIとの別れ

2025-06-14

Linuxカーネル6.16リリースでは、コアダンプの処理が大幅に改善され、長年存在していたセキュリティの脆弱性が解決されました。以前のAPI設計には、コアダンプハンドラーがroot権限で実行されることによる攻撃対象となりやすさや、競合状態による脆弱性など、多くの欠陥がありました。新しい改善策では、pidfdを導入することで、ハンドラーが正しいクラッシュプロセスを操作することを保証し、ソケットにバインドしてコアダンプを受信できるようにすることで、権限昇格のリスクを軽減し、攻撃を効果的に防止します。

React Three Fiberにおけるボリュームライティング:ポストプロセッシングによるレイマーチング

2025-06-14
React Three Fiberにおけるボリュームライティング:ポストプロセッシングによるレイマーチング

この記事では、ポストプロセッシングとボリュームレイマーチングを組み合わせることで、React Three Fiberでリアルなボリュームライティング効果を作成する方法を詳しく説明します。著者によって、座標系の変換、スクリーン空間からの3Dレイの再構築、パフォーマンス最適化のための深度バッファの使用方法が綿密に解説されています。SDFを使用した光のシェーピング、シャドウマッピング、光の散乱などの高度なテクニックも網羅されており、影と霧の効果を持つダイナミックなボリュームライティング効果が実現します。アーチや宇宙空間のシーンなど、複数のデモでこのテクニックが紹介され、マルチライトソースや全方向シャドウイングについても探求されています。

Green Tea GC:Goのパフォーマンス向上のためのメモリ意識型アプローチ

2025-06-14
Green Tea GC:Goのパフォーマンス向上のためのメモリ意識型アプローチ

Goチームは、マルチコアシステムと不均一メモリアーキテクチャにおける従来のガベージコレクションアルゴリズムのパフォーマンスボトルネックに対処するために設計された、実験的なガベージコレクターであるGreen Teaを開発しています。Green Teaは、個々のオブジェクトではなく連続したメモリブロックをスキャンすることで、空間局所性と時間局所性を向上させ、ガベージコレクションのCPUオーバーヘッドを大幅に削減します。初期評価では、一部のGC負荷の高いワークロードで、GC CPUコストが10〜50%削減されることが示されています。今後の作業には、SIMDアクセラレーションとコンセントレータネットワークの調査が含まれ、パフォーマンスの更なる向上を目指します。

開発

Claudeを使ったWordPressブログ投稿:カスタムMCPサーバー

2025-06-14
Claudeを使ったWordPressブログ投稿:カスタムMCPサーバー

著者は3日間で、ClaudeをWordPressブログに直接接続するカスタムモデルコンテキストプロトコル(MCP)サーバーを構築しました。このサーバーはWordPress REST APIの複雑さを処理し、Claudeが適切にフォーマットされたHTMLブログ投稿を作成し、カテゴリとタグを自動的に管理し、ブログ情報を取得することを可能にします。著者はこれを、編集上の管理を維持しながら、AI支援コンテンツ作成における大きな進歩と考えています。

開発

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

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

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

開発

FileDB:Zigで実装されたBitcaskに着想を得たキーバリューストア

2025-06-14
FileDB:Zigで実装されたBitcaskに着想を得たキーバリューストア

FileDBは、RiakのBitcask論文に触発されたキーバリューストアで、Zig言語で実装されています。ログ構造のハッシュテーブルをメタデータに、ディスクファイルへの追記でレコードを保存することで、高いスループットを実現しています。定期的な圧縮と同期によりデータの耐久性を確保しています。Redis互換クライアントのベンチマークテストでは、読み込み速度が毎秒10万リクエストを超え、書き込み性能も非常に優れています。

sandboxfs:BazelのmacOSサンドボックス化高速化への失敗した試み

2025-06-13
sandboxfs:BazelのmacOSサンドボックス化高速化への失敗した試み

Googleのエンジニアは、sandboxfsプロジェクトでBazelのmacOS上でのサンドボックス化のパフォーマンス向上を試みました。sandboxfsはユーザー空間ファイルシステムを利用し、Bazelの元のシンボリックリンク方式に代わる、より効率的な仮想ファイル階層の構築を目指しました。しかし、macOSのシンボリックリンクのパフォーマンスがボトルネックではなかったこと、実装上の問題、macOSエコシステムの変化などの理由から、sandboxfsは最終的に放棄されました。それでも、作者は、その中心的なアイデアである効率的なサンドボックス作成が、BazelのmacOS上でのサンドボックス化のパフォーマンス問題解決に依然として有効であると考えています。

開発

PythonによるDatalogの実装:SQLより強力なリレーショナルデータベース言語

2025-06-13
PythonによるDatalogの実装:SQLより強力なリレーショナルデータベース言語

この記事では、Pythonを使用して、SQLよりも強力なリレーショナルデータベース言語であるDatalogを実装する方法を示します。DatalogはPrologのサブセットであり、チューリング完全ではありませんが、関係をモデル化することに優れています。この記事では、述語、事実、ルール、変数など、Datalogの基本概念を詳しく説明し、ナイーブ評価アルゴリズムを使用した簡単なPython実装を提供します。この実装により、Datalogプログラムを作成およびクエリし、このリレーショナルモデリングアプローチのエレガンスとパワーを体験できます。

開発

MUMPS:医療データベースの影の立役者

2025-06-13

1960年代に生まれたMUMPSは、当初マサチューセッツ総合病院の患者の医療記録管理のために開発されたプログラミング言語です。独自の統合データベース機能により、米国における医療情報システムと電子カルテの主要なデータベースとなり、78%以上の患者にサービスを提供しています。MUMPSの歴史は、PDP-7での初期バージョンから今日のオープンソース実装と商用製品に至るまで、革新と適応の物語です。コンピューティング技術の急速な進化を目の当たりにし、医療業界に不可欠なサポートを提供し続けています。

開発 医療IT

arXivLabs:コミュニティとの共同作業による実験プロジェクト

2025-06-13
arXivLabs:コミュニティとの共同作業による実験プロジェクト

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

開発
1 2 60 61 62 64 66 67 68 214 215