Category: 開発

時計回り/螺旋ルール:複雑なC言語宣言のマスター

2025-01-01

この記事では、複雑なC言語の宣言を解析するための巧妙なテクニックである「時計回り/螺旋ルール」を紹介しています。宣言を時計回りに螺旋状にたどり、配列、ポインタ、関数などの要素を日本語の同義語に置き換えることで、最も複雑な宣言でも理解しやすくなります。著者は、単純なポインタ配列から入れ子になった関数ポインタまで、いくつかの例を用いてこのテクニックを実演し、`const`と`volatile`キーワードの扱い方を示しています。この方法は、混乱しやすいCコードを解読するための実践的で直感的な方法を提供します。

開発

スタッフエンジニアへの昇進:2度の経験から学んだこと

2025-01-01

著者は2年間にわたり2回、スタッフエンジニアに昇進した経験を共有しています。昇進の鍵は技術力ではなく、会社の目標に沿った高優先度プロジェクトの成功による価値提供でした。会社の方針を理解し、影響力の大きいプロジェクトに取り組み、経営陣やチームメンバーとの良好な関係を築くことが重要だと強調しています。サポートしてくれるマネージャーの存在も不可欠です。重要なのは、会社が優先する高インパクトなプロジェクトに集中すること、メンタリングを過大評価しないこと、そして昇進を支援してくれるマネージャーがいることです。

Lucy:有限状態マシン向けの簡潔なDSL

2025-01-01

Lucyは、有限状態マシン(FSM)を記述するための簡潔な言語です。複雑なイベント、ガード、アクション、遷移先状態を1行で記述できます。マシンのネストにより、階層的なFSMを作成できます。Lucyは、一流のJavaScript FSMライブラリであるXStateにコンパイルされ、そのコア機能をすべてサポートしています。C言語で記述され、WebAssemblyにコンパイルされるため、JavaScriptプロジェクトで非常に高速です(以前のJavaScriptベースのコンパイラよりも15倍高速)。

ゴーストCVE:ターミナルエミュレータGhosttyのセキュリティバグ

2025-01-01

新しいターミナルエミュレータGhosttyが最近バージョン1.0をリリースしました。セキュリティ研究者のDavid Leadbeaterは、2003年のCVEに似た脆弱性(CVE-2024-56803)を発見し、攻撃者がターミナルのタイトルクエリ機能を利用して任意のコードを実行することを可能にしています。この脆弱性は、ターミナルのインバンドシグナリングと、viモードでのZshの動作を利用しています。攻撃者は、巧妙に作成されたエスケープシーケンスを使用して、ユーザーの知らずに悪意のあるコマンドを実行し、SSH経由でリモート攻撃を行うことさえできます。Ghostty 1.0.1はこの問題を修正しており、ユーザーはアップグレードするか、アドバイザリで提供されている軽減策を適用することを推奨されています。

(dgl.cx)

静的探索木:バイナリサーチより40倍高速

2025-01-01

この記事では、ソート済みデータの高スループット検索のための静的探索木(S+木)の実装と最適化について説明し、バイナリサーチより40倍高速な結果を得ています。Algorithmicaのコードをベースに、ベクトル化、SIMD命令、バッチ処理による綿密な最適化が行われています。アセンブリコードの詳細な分析により、さらなるパフォーマンス向上のための機会が発見されました。様々な木構造とメモリ戦略が検討され、最終的に、1GBのデータセットでクエリ時間を1150nsから24nsに短縮する、非常に効率的なソリューションが実現しました。

Tirreno:オープンソースのセキュリティユーザー分析によるプラットフォーム保護強化

2025-01-01

Tirrenoは、ウェブサイト、アプリケーション、SaaS、コミュニティ、IoTデバイスなど、さまざまなオンラインプラットフォームを監視するために設計されたオープンソースのセキュリティユーザー分析ソフトウェアです。アカウント乗っ取り、悪意のあるボット、ユーザー行動に起因する一般的な脆弱性から検出し、防御します。PHPとPostgreSQLを使用して構築されており、インストールと使用が容易で、リアルタイム分析を提供します。有料サブスクリプションにより、IPアドレス、メールアドレス、電話番号の追加検証を提供することで、不正防止機能が強化されます。Tirreno Technologies Sàrlによって開発され、プライバシーとデータセキュリティを優先しています。コードはオープンソースですが、商標はオープンソースではありません。

NetBSDビルドシステム再考:強力だが難解なツール

2024-12-31

この記事では、BSD makeとシェルスクリプトの組み合わせに基づく、強力だがやや難解なNetBSDビルドシステムについて再検討します。このシステムは、事実上あらゆるPOSIXプラットフォーム上で、root権限なしで、完全なNetBSDシステムをゼロから構築でき、さまざまなアーキテクチャへのクロスコンパイルをサポートしています。著者は、ツールチェーンの生成、ビルド構造、destdirメカニズム、root権限不要のビルド、ディストリビューションメディアの作成など、ビルドプロセスを詳細に説明しています。非効率的な増分ビルドや不完全な依存関係管理などの欠点を認めつつも、システムの長所とその設計思想を強調しています。最後に、著者は現在NetBSDを使用している組み込みプロジェクトについて触れ、効率向上のためビルドシステムをBazelに移行する可能性を探っています。

YCスタートアップjust wordsがシニアフロントエンドエンジニアを募集

2024-12-31

Y Combinator支援のスタートアップ企業just wordsが、バックエンドとレコメンドシステムの構築・拡張を行うシニアソフトウェアエンジニア(フロントエンド)を募集しています。同社はAIを活用したハイパーパーソナライズされたメッセージングと、マーケティング効果の最適化のための動的テストを実装しています。理想的な候補者は、フロントエンド開発で4年以上の経験、JavaScript/TypeScriptとReactなどのモダンフレームワークの熟練度を持ち、変化の速い環境で活躍できる方です。創業メンバーと共に働き、重要な意思決定に関わり、最先端のAI技術を用いて複雑な問題解決に取り組む絶好の機会です。

開発

Ruby VMのピープホール最適化:opt_respond_toの追加

2024-12-31

これは、Ruby仮想マシン(VM)の最適化に関するシリーズ記事の第4部です。著者は、`respond_to?`メソッド呼び出しを最適化するために、CRubyに`opt_respond_to`命令を追加する過程を詳しく説明しています。この記事では、デバッガーを使用してコードの実行をトレースし、ピープホール最適化器`iseq_peephole_optimize`を見つけ、既存の凍結配列最適化の実装を分析することで、`respond_to?`メソッド呼び出しのパターンにマッチさせ、新しい最適化命令を追加するための準備をしています。簡潔なコード例とデバッグ手順を使用して、ピープホール最適化のメカニズムとCRubyソースコードでのデバッグ方法を明確に示しています。

GitHubで310万個以上の偽のスターがマルウェアの宣伝に使用されている

2024-12-31

最近の研究で、GitHub上で310万個を超える偽の「スター」が発見されました。これは、詐欺やマルウェアのリポジトリの人気を人工的に高めるために使用されていました。研究者たちはStarScoutというツールを使って大量のデータを分析し、15,835のリポジトリでこれらの偽のスターに関与した27万8000個のアカウントを特定しました。特に2024年に急増したこの欺瞞的な行為により、悪意のあるプロジェクトが正当なもののように見え、うかつなユーザーに到達することが可能になります。GitHubは多くの関連アカウントとリポジトリを削除しましたが、問題は依然として残っています。ユーザーはプロジェクトの品質を慎重に評価し、GitHubからソフトウェアをダウンロードする際には注意を払うように促されています。

一見良さそうだがほとんど機能しないシステムのアイデア

2024-12-31

この記事で、スティーブン・シノフスキーは、一見すると良さそうだが実際にはほとんどうまくいかないいくつかのソフトウェアエンジニアリングの概念を論破しています。「簡単にプラグイン可能にする」「単にAPIを追加する」「もう一段階抽象化する」といったアイデアは、ソフトウェアエンジニアリングの本質的な複雑さのために、多くの場合、実際にはうまくいきません。APIの保守性、非同期操作のバグ、アクセス制御の複雑さ、クロスプラットフォーム開発の困難など、多くの問題が指摘されています。シノフスキーは、成功するソフトウェアエンジニアリングは、パターンを盲目的に適用するのではなく、第一原理に基づいている必要があると強調しています。

OnrampコンパイラがDOOMをゼロからコンパイルすることに成功

2024-12-31

2年間の開発の後、プログラマはOnrampという自己ホスティングコンパイラを使って、古典的なゲームDOOMをコンパイルすることに成功しました。x86_64アセンブリで記述された単純な仮想マシンから始まり、Onrampはアセンブラ、Cコンパイラなどのツールを段階的に構築し、最終的にDOOMのコンパイルと実行を実現しました。パフォーマンスはまだ限定的ですが、Onrampは優れた自己ホスティング機能とクロスプラットフォームの可能性を示しています。長期的な目標は、エイリアンの文明のコンピュータであっても、あらゆるアーキテクチャでコードのコンパイルと実行を可能にし、遠い未来に向けて私たちの文化とコンピューティングの歴史を保存することです。

RSS.Beauty:あなたのRSSフィードを美しく

2024-12-31

RSS.Beautyは、RSSの読書体験を向上させるためのオープンソースツールです。シンプルなRSSフィードを美しくフォーマットされた読書体験に変換します。RSSまたはAtomのスタイルファイル をダウンロードして、静的リソースディレクトリに配置し、RSSの``の後にコード行を追加するだけです。RSS.Beautyは優れた互換性を誇り、実績のあるテクノロジーを使用することで、RSSに新たな命を吹き込みます。

開発 読書体験

Grafana Cloud:簡単にカスタマイズ可能な天気予報ダッシュボードを作成

2024-12-31

この記事では、Grafana Cloudと、無料で利用できる米国国立気象局の公開APIを使用して、パーソナライズされた天気予報ダッシュボードを迅速に作成する方法を説明します。簡単な手順で、生のJSON天気データを分かりやすいグラフに変換し、ユーザーはいつでもローカルの天気情報をチェックできます。Grafana Cloudは様々なデータソースに対応し、豊富な視覚化オプションを提供することで、データ分析をシンプルかつ効率的にします。

開発

Pythonにおけるシンボリックリファレンスとハードウェアモデル:ハードウェア設計効率向上のための新しいアプローチ

2024-12-31

この記事では、Pythonを使ったハードウェアモデリングの新手法であるシンボリックモデルを紹介します。従来のハードウェア設計ワークフローでは、検証のために複数のモデル(ビヘイビアモデル、アーキテクチャモデル、RTLモデルなど)を使用しますが、複雑なアルゴリズムやデータ管理においてはデバッグが困難になる場合があります。著者は、Pythonシンボリックモデルを用いて、データそのものよりもデータの起源を追跡することで、デバッグプロセスを簡素化することを提案しています。画像ダウンサンプラーを例に、リファレンスシンボリックモデルとハードウェアシンボリックモデルの構築と比較を詳細に説明し、特に複雑なデータ管理や仕様変更に対処する際に、シンボリックモデルが設計効率と信頼性を向上させる利点を示しています。

darktable 5.0.0 リリース:UI、パフォーマンス、サポートが向上!

2024-12-31

人気のオープンソース写真編集ソフトウェアdarktableがバージョン5.0.0をリリースしました。UI/UXの大きな改善、パフォーマンスの向上、カメラとファイル形式のサポート拡大が特徴です。新機能には、カメラ固有のスタイル、起動時の進捗表示、一括処理時のフィードバック、より正確なマスクコントロールなどがあります。パフォーマンスの向上は、最適化されたカラーイコライザーと、より高速なPFMファイルの読み込みに顕著です。多くのバグが修正され、より幅広いカメラとファイル形式のサポートが追加されました。4.8からのアップグレードでは編集内容は保持されますが、データのバックアップを強くお勧めします。

Unityサポートページフッターの概要

2024-12-31

このテキストは、Unity Technologies Webサイトのフッターです。著作権情報、プライバシーポリシー、Cookieポリシー、およびUnity Ads、Asset Store、学習教材、コミュニティフォーラム、ドキュメントなどのさまざまなリソースへのリンクが含まれています。それ自体は記事ではなく、Unity関連のさらなる情報とリソースをユーザーに示すナビゲーション要素です。

ネイティブアプリの衰退:ウェブアプリの台頭

2024-12-31

スマートフォンのブームはネイティブアプリをどこにでも普及させましたが、今では負担になりつつあります。最新のブラウザは、かつてネイティブアプリ独自の機能であった通知やオフラインアクセスなどを提供できるほど強力になりました。この記事では、多くの企業が依然としてネイティブアプリに固執しており、ユーザーのアプリのオーバーロードにつながっていると主張しています。一方、ウェブアプリはコスト効率が高く、柔軟性があり、デバイス間でシームレスに動作します。ゲーム業界はこのことを特に示しており、HTML5、WebGL、WebAssemblyなどの技術により、ブラウザゲームがネイティブゲームに匹敵するようになりました。この記事は、開発者にウェブアプリの未来を受け入れ、Rogue Engineなどのツールを利用して、よりアクセスしやすく、普遍的に使用できるエクスペリエンスを作成するよう呼びかけています。

Linux GitコミットのSHAプレフィックス衝突リスクが差し迫る

2024-12-31

Linuxの「Fixes」タグは従来、12文字のコミットSHAプレフィックスを使用していましたが、コミット数の増加に伴い、衝突のリスクが高まっています。セキュリティ研究者のKees Cookは、12文字のプレフィックス衝突を発生させることに成功し、「Fixes」タグを解析するツールが壊れました。この衝突は、Linux 2.6.12-rc2の最初のコミットIDを利用しており、linux-nextの「Fixesタグチェッカー」やLinux CNAのコミットパーサーなどのツールに影響を与えます。将来の衝突を防ぐために、Cookは最小短縮IDを16文字に増やすことを提案しており、ツール開発者が修正を行うためのテストコミットを公開しました。

開発

オープンソースプロジェクトの再ライセンス:Elasticsearch、Redis、Terraformのケーススタディ

2024-12-31

経済的圧力に直面し、収益増加のためにより制限的なライセンスに人気のあるオープンソースプロジェクトを再ライセンスする企業があります。これにより、プロジェクトのフォークが発生します。CHAOSSは、Elasticsearch、Redis、Terraformのケーススタディを行い、フォークは、特にLinux Foundationのような中立的なファウンデーションの下では、元のプロジェクトよりも組織的な多様性が高い傾向があることを発見しました。再ライセンスは元のプロジェクトの貢献者への影響は最小限でしたが、ユーザーには大きな影響がありました。この研究は、より大規模な進行中のプロジェクトの最初のステップであり、将来の分析では、より多くのデータとプロジェクトが取り入れられ、より深い理解が得られるでしょう。

DocumentCloud:オンライン文書コラボレーションプラットフォーム

2024-12-31

DocumentCloudは、ユーザーが様々な種類のドキュメントをアップロード、共同編集、共有できるオンラインプラットフォームです。強力な検索と整理機能を提供し、大量のファイルを簡単に管理できます。ジャーナリスト、研究者、チームワークが必要な組織にとって、DocumentCloudは効率性を向上させ、情報共有を促進する貴重なツールです。

Rubyコアクラス凍結ツール:Ruby Refrigerator

2024-12-31

Ruby Refrigeratorは、すべてのRubyコアクラスとモジュールを凍結し、実行時にコアクラスへの予期しない変更を防ぐツールです。コアクラスを凍結する`freeze_core`メソッドと、コアクラスへの変更についてライブラリをチェックする`check_require`メソッドを提供します。`check_require`は、モジュールとクラスの事前定義、特定クラスの除外、依存関係の指定などのオプションをサポートしています。使いやすいコマンドラインツール`bin/check_require`も提供されています。このツールは、本番環境とテスト環境でのコードの安定性を確保するために非常に役立ちます。

t2x:AI対応テキスト操作用CLIツール

2024-12-31

開発者がt2x(「text to whatever」の略)というオープンソースの コマンドラインインターフェース(CLI)ツールを開発中です。t2xは、ローカルまたはクラウドベースの言語モデルを使用して、さまざまなテキスト操作を実行します。まだ完全に完成していないため、GitHubへの公開は休暇後を予定しています。

開発

Guixによる完全自己起動Monoの構築成功:長い道のり

2024-12-31

Guixシステムは、完全自己起動型のMono環境を構築することに成功し、その過程で多くの課題を克服しました。著者は、C# 12.0機能をサポートするために取り組んだ過程で、事前にコンパイルされたバイナリに依存する古いMonoバージョンに問題があることを発見しました。一連のパッチを通じて、Mono 1.2.6から6.12.0までの完全自己起動型のバージョンチェーンが作成されました。その過程で、Monoとxbuildのバグが修正され、Monoのrunpathサポートが強化されました。これは、著者のC#互換性の問題を解決しただけでなく、完全自己起動型で再現可能なビルドの重要性と、ソフトウェアセキュリティへの影響を浮き彫りにしました。

Monokai Proテーマ:JetBrains IDEなどに対応

2024-12-31

Monokai Proは、JetBrains IDE(IntelliJ IDEA、WebStormなど)、Sublime Text、VS Codeで使用可能なテーマプラグインです。70種類以上のカスタムアイコンと、好みに合わせて調整可能な設定を提供します。無料トライアル版もありますが、月額1ユーロのサブスクリプションでポップアップ広告を削除できます。多くのプログラミング言語とIDEに対応しており、ソフトウェアエンジニアに人気です。

Mozilla、プライバシー重視のAIツール「Orbit」を発表

2024-12-31

Mozillaは、プライバシーを重視したAIツール「Orbit」を発表しました。FirefoxアドオンであるOrbitは、メール、ドキュメント、記事、動画などのウェブコンテンツを要約する機能を提供します。アカウント作成は不要で、セッションデータや個人情報は保存されません。MozillaがホストするMistral 7B LLMモデルを使用しています。ユーザーは長いドキュメントや動画を簡単に要約し、メールや記事の要点をすばやく把握し、質問を通じて特定の情報を得ることができます。

開発

Google スプレッドシートを便利なウェブアプリに変換する:プログラマーの物語

2024-12-31

Ars Technica の記者が、Glide を使用してシンプルな Google スプレッドシートをスマートフォンに優しいウェブアプリに変換した方法を共有しています。当初はテイクアウトの注文を合理化するために作成されたこのアプリは、効率的な検索とフィルタリング機能を備え、地元のレストラン情報を管理します。その後、レシピやパントリーアイテムのアプリも開発し、日常生活を改善しました。この記事は、ノーコードツールの威力と、シンプルなソリューションが現実世界の課題を解決できる方法を示しており、創意工夫とより良い生活への追求を強調しています。

Linuxカーネル初期コミットのSHA衝突リスク

2024-12-31

Linuxカーネル開発者のKees Cookは、カーネルのドキュメントコミットのIDが、カーネルリポジトリの最初のコミットの最初の12文字と一致していることを発見しました。この潜在的な衝突は、一意のコミットIDに依存するさまざまなツールを壊す可能性があります。まだアップストリームにマージされていませんが、このコミットは、SHA衝突を事前に解決し、将来の広範囲にわたる問題を防ぐためのテストケースとして機能します。

開発 SHA衝突

Lightstorm:ミニマルなRubyコンパイラがMLIRでパフォーマンス向上

2024-12-31

DragonRubyチームは、クロスプラットフォームゲームエンジンのパフォーマンス向上を目指して、LightstormというミニマルなRubyコンパイラを開発しました。MLIRを活用し、mruby仮想マシンのバイトコードをCコードに変換することで、VMインタプリタループ内のロード/ストアおよび分岐操作を排除し、パフォーマンスを最適化します。ベンチマークの結果、パフォーマンスは1%から1200%向上し、実行時間とサイクル数は平均で約30%削減されました。現在、Rubyのサブセットのみをサポートしていますが、このプロジェクトは、パフォーマンス向上のためのRubyコードの事前コンパイルの可能性を実証しています。今後の計画には、エンジンの重要なCコンポーネントをコンパイル済みRubyコードに置き換えることが含まれています。

LineageOS 22.1リリース:抽出速度30倍向上、新音楽アプリとPDFリーダーが登場

2024-12-31

Android 15 QPR1ベースのLineageOS 22.1が、大幅な改善を伴ってリリースされました。抽出ユーティリティの速度が30倍向上し、新しい音楽プレイヤーアプリ「Twelve」とPDFリーダーアプリ「Camelot」が追加されました。SeedVault、Etar、WebViewもアップデートされています。バージョン番号はAndroidのマイナーバージョン番号と整合するように調整され、Androidのバージョンの区別が容易になりました。プロジェクトはコードベースを簡素化し、より多くのデバイスのサポートを追加し、開発者によるコードと翻訳への貢献を奨励しています。

開発
1 2 4 6 7 8 9 17 18