Category: 開発

HyperQueueにおける可愛いバグ:SIGTERMと10秒の謎

2025-02-24

Rust製の分散タスクスケジューラであるHyperQueueで、奇妙なバグが発生しました。特に10秒以上スリープするタスクが、謎めいた方法で終了していました。デバッグの結果、一見無害な変更、つまりプロセス生成処理を`tokio::task::spawn_blocking`にオフロードしたことが原因であることが判明しました。これは、`PR_SET_PDEATHSIG`(親プロセスの終了時にSIGTERMを送信する)と組み合わせることで問題を引き起こしました。`spawn_blocking`によって生成されたワーカスレッドは、アイドル状態が続くとTokioによって回収され、SIGTERMシグナルが送信されていました。このバグは、最適化を元に戻すことで修正され、並行処理、システムコール、スレッド管理間の微妙な相互作用が浮き彫りになりました。

開発

Disqusからの脱却:Mastodonを使ったブログコメントシステムの構築

2025-02-23

Disqusの広告とトラッキングにうんざりした著者は、代替手段を探し、MastodonのAPIを使ってMastodonベースのコメントシステムを構築することを選びました。この記事では、MastodonポストIDの取得、JavaScriptを使ったAPIからのコメントデータの取得、静的サイトへのHTMLの生成と埋め込み、メディア添付ファイルの処理、ブラックリストの実装といったプロセスを詳細に説明しています。また、著者は自身の静的サイトジェネレーターと、MastodonポストIDをHTMLに埋め込む方法についても解説しています。これは、オープンソース技術を使用してパーソナライズされたブログコメントシステムを構築するための実践的なガイドです。

開発

ヨーロッパ語単語翻訳:Google翻訳搭載マップ

2025-02-23
ヨーロッパ語単語翻訳:Google翻訳搭載マップ

このウェブページは、Google翻訳APIを使用して、英語の単語を様々なヨーロッパ言語に翻訳します。ユーザーは小文字の英語の単語を1つか2つ入力して翻訳を表示できます。RedditのBezbojniculによる語源マップに着想を得ており、D3.js、Natural Earthデータ、Google翻訳APIを使用しています。翻訳の正確性に欠ける場合があり、データは2014年頃以降更新されていないことにご注意ください。

mdq:Markdownのためのjq、ドキュメント解析をシンプルに

2025-02-23
mdq:Markdownのためのjq、ドキュメント解析をシンプルに

mdqは、jqがJSONで行うように、Markdownドキュメントの解析を簡素化するコマンドラインツールです。GitHub PRのTODOリストなど、ドキュメントの特定の部分を簡単に抽出できます。見出し、リスト、リンク、画像、コードブロックなどをカバーする様々なセレクターをサポートし、正規表現にも対応しています。Markdownの構文と似ているため直感的で、パイプを使って複数のフィルターを組み合わせ、複雑な解析タスクを実行できます。

開発

Clojure:ニッチ言語が君臨する理由

2025-02-23
Clojure:ニッチ言語が君臨する理由

この記事では、Clojureプログラミング言語の長所を詳しく掘り下げ、Clojureコンサルティング会社であるGaiwanがClojureを選択した理由を共有しています。彼らは、Clojureの優れた開発生産性、抜群の長期保守性、活気のあるコミュニティ文化を強調しています。議論されている主な機能には、対話型開発、安定性、堅牢な情報システム表現、関数型プログラミングスタイル、並行処理の取り扱い、局所的な推論、テストの容易さ、そしてポジティブな採用結果が含まれます。この記事では、Clojureの柔軟性とJavaとの相互運用性についても強調しています。要約すると、ニッチな地位にもかかわらず、Clojureは特定のアプリケーションにとって魅力的な選択肢となる独自の利点を提供しています。

LeetCodeランキングモード:競争でコーディングスキルを向上

2025-02-23
LeetCodeランキングモード:競争でコーディングスキルを向上

LeetCodeの新しいランキングモードでは、他者と競争してコーディングスキルを向上させることができます。カスタムルームで友達に挑戦したり、好きな言語でコーディングしたり、実行時間計算量を分析して最適化したり、8つの特殊能力を使って対戦相手を出し抜いたりできます。Vimバインディングも含まれています!

AIエージェントとSQDデータレイクでオンチェーンデータの可能性を解き放つ

2025-02-23
AIエージェントとSQDデータレイクでオンチェーンデータの可能性を解き放つ

Subsquidは、SQDデータレイクを活用してAIエージェントにオンチェーンデータを提供する新しいElizaOSプラグインをリリースしました。このプラグインは、ERC20トランザクションとUniswapスワップのデコードイベントをプロバイダーとアクションの両方として提供します。エージェントは自然言語を使用してデータクエリを行い、JSON、CSV、Parquet形式で結果をエクスポートできます。この記事では、このプラグインを使用してオンチェーンデータを取得するCryoというCLIツールの簡略版を紹介し、マルチチェーンサポートやクエリ体験の向上などの将来的な改善の可能性について議論しています。

WhiteSur:Linux GTKデスクトップ向けのmacOS風テーマ

2025-02-23
WhiteSur:Linux GTKデスクトップ向けのmacOS風テーマ

WhiteSurは、Linux GTKデスクトップにmacOSのような外観をもたらすテーマです。高度にカスタマイズ可能で、色、不透明度、ウィンドウコントロール、Nautilusスタイル、Gnome Shellエクステンションなどを調整できます。シンプルなスクリプトで簡単にインストールできます。基本的なGTKテーマ以外にも、GDMやFirefoxのカスタマイズ、Flatpakアプリの修正(Libadwaitaの問題にも対応)を提供します。macOS風のLinux体験を求めるなら、WhiteSurを試してみてください!

PropRiseが創設エンジニアを募集:数百万件の不動産データプラットフォームを構築

2025-02-23
PropRiseが創設エンジニアを募集:数百万件の不動産データプラットフォームを構築

PropRiseは、急速に成長しているプラットフォームを支えるシステムを所有し構築する経験豊富なフルスタックエンジニアを創設エンジニアとして募集しています。これは、数百万件の不動産レコードに対応する堅牢なバックエンドデータシステムと魅力的なフロントエンドインターフェースの構築を伴います。候補者は、フルスタック開発の経験、スケーラブルでデータ集約型のシステム構築の専門知識、迅速な反復と展開の実績が必要です。テクノロジースタックには、Typescript、Next.js、React、Postgres、GCPが含まれています。これは、迅速な反復、複雑な問題解決、そしてAIとデータ品質の交差点に情熱を注ぐエンジニアにとって、やりがいのある役割です。

Directus:SQLデータベースのためのリアルタイムAPIとアプリダッシュボード - マイグレーション不要!

2025-02-23
Directus:SQLデータベースのためのリアルタイムAPIとアプリダッシュボード - マイグレーション不要!

Directusは、SQLデータベースのコンテンツを管理するためのリアルタイムAPIとアプリダッシュボードです。あらゆるSQLデータベース上に、超高速なNode.js APIを瞬時に構築し、PostgreSQL、MySQLなどをサポートし、マイグレーションは不要です。ローカル、オンプレミス、またはクラウドサービスでの展開が可能です。最新のノーコードVue.jsアプリは直感的で使いやすいです。DirectusはBusiness Source License (BSL) 1.1の下で動作し、年間収益/資金調達が500万ドル未満の組織は無料で利用できます。それ以上の組織は商用ライセンスが必要です。

開発

Hacker Newsの求人市場トレンド:Rust、C++、Python

2025-02-23
Hacker Newsの求人市場トレンド:Rust、C++、Python

Hacker Newsの毎月の「Ask HN: Who is hiring?」「Ask HN: Who wants to be hired?」投稿におけるRust、C++、Pythonの言及頻度を分析することで、これらのプログラミング言語の求人市場におけるトレンドを調べます。数年間(2025年2月まで)のデータに基づいており、グラフ(ここでは省略)で視覚化することで、これらの言語への相対的な需要に関する洞察が得られます。

開発 求人市場

Kaggleコンペティション:偏った指標とXGBoostの意外な効果

2025-02-23

筆者は、骨髄移植後の生存率を予測するKaggleコンペティションに参加しました。コンペティションの評価指標は、異なる人種グループ間の予測に過度な差異が生じないように設計された層化されたコンコード指数です。しかし、この指標には欠陥があります。あるグループのスコアを向上させても、全体スコアが必ずしも向上するとは限らず、低下することもあります。XGBoostモデルを使用する中で、筆者は、複雑な統計モデルよりも単純な決定木アンサンブルモデルの方が効果的であることを見出し、統計的手法と機械学習手法の違いを探りました。最終的に、筆者は、AFT分布の尺度パラメータを調整することでモデルの精度に大きな影響を与えることを発見し、モデル改善のためのいくつかの未解決の課題を提示しました。

開発

Lispとラムダ計算:理論と実践の物語

2025-02-23

この記事は、Lispとラムダ計算の関係を探求します。Lispの生みの親であるJohn McCarthyは、当初ラムダ計算を完全に理解していませんでしたが、その記法を借りてLispを創造しました。Lispはラムダ計算の直接的な実装ではなく、ラムダ計算から着想を得て、IBM 704のハードウェア特性を組み込んだものです。この記事は、Lispの初期の歴史、特にその評価器EVALの実装と、car/cdr演算とIBM 704との関係を深く掘り下げます。ラムダ計算の基本概念が紹介され、ΛΙΣΠと呼ばれるおもちゃの言語を使って例示されています。最終的に、この記事はLispとラムダ計算の間にある魅力的で複雑な相互作用を示し、今後の記事でさらに探求される余地を残しています。

シニアエンジニアをイライラさせる7つの大罪

2025-02-23
シニアエンジニアをイライラさせる7つの大罪

この記事では、シニアエンジニアをイライラさせる7つの一般的な行動について説明しています。それは、基本的なトラブルシューティングを試みずに問題をエスカレーションする、曖昧に緊急のタスクを要求する、大まかな見積もりを締め切りとして扱う、不明確な会議をスケジュールする、予期せぬ短い会議をスケジュールする、「クイックハック」をクリーンアップ計画なしで使用する、優先順位を頻繁に変更することです。著者は、これらの行動が時間と効率を浪費し、チームの士気を損なうことを説明しています。この記事では、ヘルプを求める際に十分な情報を提供すること、緊急性のレベルを区別すること、見積もりを注意深く処理すること、会議を事前に計画すること、エンジニアの集中時間を尊重すること、一時的な修正を計画すること、安定した優先順位を維持することを提案して、前向きで効率的なエンジニアリングチームを構築することを推奨しています。

エクストリームサーバーサイドレンダリング(XSSR):Flappy Birdのケーススタディ

2025-02-23
エクストリームサーバーサイドレンダリング(XSSR):Flappy Birdのケーススタディ

この記事では、エクストリームサーバーサイドレンダリング(XSSR)という技術を紹介しています。これは、サーバー上でHTMLを動的に生成し、クライアントに継続的に更新を送信することで、JavaScriptなしで動的なWebページをレンダリングする技術です。著者は、Flappy Birdゲームを使ってXSSRの実装方法を示し、そのパフォーマンス、帯域幅への影響、そしてサービス拒否(DoS)攻撃の可能性について議論しています。XSSRは低遅延環境では良好に動作しますが、高遅延環境では遅延が発生します。この技術は、古いデバイスやJavaScriptをサポートしていないブラウザで最新のWebページを実行する上で有望です。

Python公式ドキュメントに古典的なXSS脆弱性の例が含まれている

2025-02-23
Python公式ドキュメントに古典的なXSS脆弱性の例が含まれている

セキュリティ研究者のGeorgi Guninskiは、Python 3.12の公式ドキュメントのCGIモジュールのコード例に、重大なクロスサイトスクリプティング(XSS)の脆弱性があることを発見しました。この脆弱性は、ユーザーが提供したフォームデータを、セキュリティ上のサニタイズなしで直接出力することから生じています。これは、PythonによるWeb開発に大きなリスクをもたらし、ChatGPTやDeepseekなどのAI生成コードにも影響を与える可能性があります。Python 3.13ではCGIモジュールが削除されましたが、相当量のレガシーコードが依然として脆弱なままです。

開発

「できますか?」ではなく「やります」と言う:行動へのバイアス

2025-02-23

常に承認を求める代わりに、主導権を握り、締め切りを設定して上司にあなたの計画を伝えましょう。この記事では、著者の小規模企業(200名未満)での経験を例に、「先手必勝」戦略を説明しています。自分の職務範囲内のタスクについては、まず行動し、上司に拒否権を与え、明確な締め切りを設定することで、効率を向上させ、承認を待つことによる遅延を回避します。この方法は、上司に情報を伝え、フィードバックを得る機会を提供しながら、進捗を保証します。

開発 主体性

LLVM静的アナライザがZ3ソルバーを統合:誤検知の排除

2025-02-23

LLVMの静的アナライザは、Z3制約ソルバーをサポートするようになり、誤検知のフィルタリング能力が大幅に向上しました。この記事では、Z3を使用する2つの方法を示しています。1つは外部ソルバーとして使用する方法、もう1つは誤検知の反証に使用するものです。前者の方法は、誤検知を完全に排除しますが、速度が大幅に低下します(約15倍)。後者の方法は、Z3による反証を使用して誤検知を減らすため、より高速です。実験の結果、Z3を有効にすることで、LLVM静的アナライザは、ビット演算による誤検知を正確に特定して回避し、より信頼性の高い分析結果を得られることがわかりました。

開発

優れた政府デジタルサービス構築のための13のステップ

2025-02-23

この記事では、優れた政府デジタルサービスを構築するための13の重要なステップについて説明します。ユーザーニーズ調査、エンドツーエンドのエクスペリエンスデザイン、シンプルで直感的なインターフェース、アジャイルな反復開発、予算と契約の管理、チームリーダーシップとメンバーの選抜、テクノロジースタックの選択、柔軟なホスティング環境、自動化されたテストと展開、セキュリティとプライバシーの管理、データドリブンな意思決定、オープンな原則などを網羅しています。各ステップには、詳細なチェックリストと重要な質問が用意されており、政府機関がユーザー中心で、効率的で、信頼性が高く、安全なデジタルサービスを構築し、最終的に公共サービスのエクスペリエンスを向上させるのに役立ちます。

「Cracking the Coding Interview」を超えて:現代のテクノロジー業界の就職活動攻略

2025-02-23
「Cracking the Coding Interview」を超えて:現代のテクノロジー業界の就職活動攻略

名著『Cracking the Coding Interview』の続編が登場!『Beyond Cracking the Coding Interview』は、進化したテクノロジー業界の面接事情に対応。150以上の新しい問題と詳細な解説、10万件以上の模擬面接データを提供します。コーディングだけでなく、履歴書の最適化、交渉戦略、企業の面接基準の理解、心理的な課題の克服など、就職活動の全プロセスを網羅。よりスマートに、効率的に働き、理想のテクノロジー企業への就職を実現しましょう。

開発 面接対策

2024年Rustサーベイ結果:活気あふれるコミュニティ、しかしコンパイル速度は依然として課題

2025-02-22
2024年Rustサーベイ結果:活気あふれるコミュニティ、しかしコンパイル速度は依然として課題

2024年のRustサーベイの結果が出ました!参加者は前年よりやや減少しましたが、コミュニティは活況を呈しており、Rustの利用は、特に仕事において、増加を続けています。サーベイは、Rustのパフォーマンスと安全性に対する高い満足度を示していますが、コンパイル速度は依然として大きな課題であり、それに続いてデバッグサポートとディスク使用量が挙げられます。心強いことに、多くの開発者はRustの将来に楽観的で、非同期クロージャなど、より多くの機能の安定化を期待しています。

PeerDBを使ったPostgreSQLからClickHouseへの信頼できるデータレプリケーション

2025-02-22
PeerDBを使ったPostgreSQLからClickHouseへの信頼できるデータレプリケーション

この記事では、PostgreSQLからClickHouseへの信頼性の高いデータレプリケーションをPeerDBを使用して実現する方法を示します。PeerDBはPostgreSQLに特化した変更データキャプチャ(CDC)ソリューションであり、その速度と拡張性で知られています。自己ホスト型オープンソースPeerDBと、ClickHouse Cloud(ClickPipes経由)に統合されたフルマネージド版PeerDBを比較します。ピア、ミラー、データ変換の作成といったコアコンセプトと、段階的なデプロイと設定ガイドを説明します。オープンソース版とマネージド版のどちらを選択する場合でも、PeerDBはPostgreSQLとClickHouseのユーザーに高性能で信頼性の高いデータレプリケーションソリューションを提供します。

開発

SimpleWall:Windowsファイアウォールの軽量な代替手段

2025-02-22
SimpleWall:Windowsファイアウォールの軽量な代替手段

SimpleWallは、1MB未満の軽量なWindowsファイアウォール代替ツールで、Windows 7 SP1以降と互換性があります。Windows Filtering Platform(WFP)に基づいており、ユーザーはカスタムネットワークルールを作成し、Windowsテレメトリをブロックし、WSLなどの機能をサポートできます。シンプルなインターフェースを備え、永続ルールと一時ルールをサポートし、アンインストール後には手動でフィルターを無効にする必要があります。Windowsファイアウォールとは独立して動作し、無料でオープンソースです。

開発

ArcaOS 5.1.1リリース:プライバシー重視のOS/2アップグレード

2025-02-22
ArcaOS 5.1.1リリース:プライバシー重視のOS/2アップグレード

Arca Noaeは、UEFIとGPTディスクレイアウトをサポートするArcaOS 5.1.1をリリースしました。幅広い最新のハードウェアにインストールできます。既存のArcaOS 5.1サブスクライバーは無料で利用でき、複数の言語オプションを提供しています。既存ユーザーはアップグレードを割引価格で利用できます。ArcaOSはユーザーのプライバシーを優先し、オンラインアクティビティの追跡を回避し、低スペックのハードウェアもサポートしているため、自由とプライバシーを重視するユーザーにとって理想的な選択肢です。

開発

OSI理事会選挙の論争:タイムゾーンの混乱

2025-02-22

オープンソースイニシアチブ(OSI)の理事会選挙において論争が起こっています。Luke氏の立候補は、2月17日午後11時59分(太平洋時間)の締め切りを過ぎたという理由で却下されました。しかし、OSIのウェブサイトでは締め切り時刻がUTCであるとは明示されておらず、OSIの連絡先はカリフォルニア州にあるため、公平性に疑問が残ります。Luke氏は、OSIが異なるタイムゾーンを考慮し、彼の立候補を認めるべきだと主張しています。この出来事は、グローバルなオープンソース組織にとって、タイムゾーンと締め切りの明確な指定がいかに重要であるかを示しています。

開発 選挙

FFmpegアセンブリ言語:高性能マルチメディア処理の解錠

2025-02-22
FFmpegアセンブリ言語:高性能マルチメディア処理の解錠

このチュートリアルでは、FFmpegにおけるアセンブリ言語プログラミングの基礎を、特にSIMDベクトルプログラミングに焦点を当てて紹介します。手書きのアセンブリコードを書くことで、マルチメディア処理速度を劇的に向上させることができ、例えば、よりスムーズな動画再生につながります。このチュートリアルでは、アセンブリの基本概念、x86-64命令セット、ベクトルレジスタ、FFmpegで一般的に使用されるツールについて説明します。C言語のポインタと高校レベルの数学の予備知識が必要です。

開発

Linus Torvalds、DMAメンテナのRust使用を批判

2025-02-22

Linus TorvaldsとDMAサブシステムのメンテナであるChristoph Hellwigは、LinuxカーネルへのRustコードの統合をめぐって衝突した。Hellwigは、自身の管理するコードが許可なく使用されたことに反発した。Torvaldsは、メンテナは自身のコードには責任を持つが、その使用を制御する責任はないと反論した。そして、カーネルにおけるRustのモジュール方式を改めて強調した。開発者はRustコードの使用または無視を選択できるが、他者の使用を妨げることはできない。この論争は、LinuxカーネルにおけるRust採用に関する継続的な議論を浮き彫りにしている。

開発

Pythonランチャーが仮想環境に対応

2025-02-22
Pythonランチャーが仮想環境に対応

PythonのWindowsインストーラーには、正しいPythonインタープリターを見つけるランチャーが含まれています。しかし、以前は仮想環境をサポートしていませんでした。PEP 486は、ランチャーを「virtualenv対応」にすることを提案しています。つまり、特定のインタープリターが指定されていない場合、ランチャーは現在アクティブな仮想環境を優先し、アクティブな仮想環境がない場合はデフォルトのPythonに戻ります。これにより、仮想環境内でPythonコマンドを実行することが簡素化され、異なるコンテキストで異なるコマンドを使用する必要がなくなります。

開発

50歳でのコーディング:プログラマーの中年危機?

2025-02-22

ベテランプログラマーが自身のキャリアを振り返り、大規模で高圧的なコーディングにフラストレーションを感じていることを述べています。理解しづらい領域、膨大なAPI、分かりにくいドキュメント、常に変化するテクノロジー、予測不能なバグなどです。彼は、特に50歳を過ぎてからは、この高強度の仕事は持続可能ではないと気づきます。彼は、28KB以下のCとErlangで書かれた小さな画像合成ツールなど、小さく信頼性の高いツールを作ることを好みます。これは、プログラマーのキャリアパスと持続可能性に関する疑問を提起します。高圧的なコーディングは若い世代だけの仕事なのか?

開発 中年危機

Common Lisp エコシステムが活況を呈す:Hacker Newsも参入!

2025-02-22
Common Lisp エコシステムが活況を呈す:Hacker Newsも参入!

Common Lispコミュニティは過去2年間で目覚ましい成長を遂げ、数多くの新しいプロジェクト、ツール、ライブラリが登場しました。驚くべきことに、Hacker NewsウェブサイトがSBCL上で動作するようになりました!この記事では、SBCL、ABCL、CCLなどの実装のアップデート、Lemエディターの大幅な改良、新しいゲーム開発ツールやWebフレームワークなど、Common Lisp分野の最近の進歩をまとめています。さらに、ELSカンファレンスやLisp Irelandのミートアップなど、コミュニティ活動も盛んです。経験豊富な開発者も初心者も、この概要からCommon Lispエコシステムの活気と魅力を感じ取ることができるでしょう。

開発
1 2 153 154 155 157 159 160 161 214 215