Category: 開発

GUIはなぜ少なくとも2.5回構築する必要があるのか?リーンソフトウェア開発への批判

2025-06-03
GUIはなぜ少なくとも2.5回構築する必要があるのか?リーンソフトウェア開発への批判

この記事は、リーンソフトウェア開発の限界を批判し、ソフトウェア開発を工場の生産ラインになぞらえることは根本的に間違っているという主張をしています。ソフトウェア開発は、ユーザーが本当に求めるものを発見するために、反復的な実験を必要とする設計プロセスに似ています。GUI開発を例にとり、著者は、満足のいく結果を得るためには、GUIの構築に多くの反復が必要であることを強調しています。これは、工場の生産ラインの線形フローとは大きく異なります。リーンソフトウェア開発における「無駄」という概念は、ソフトウェアには適用しにくく、探求と発見の重要性を無視しています。著者は、成功するソフトウェア開発は製造プロセスではなく、発見のプロセスであり、ユーザーニーズの深い理解と反復による継続的な改善が必要だと主張しています。

情報ソフトウェア設計:グラフィックスの勝利、インタラクションの失敗?

2025-06-03

ブレット・ビクターの論文は、従来のソフトウェア設計に挑戦し、ほとんどのソフトウェア(情報ソフトウェア)の中心は情報提示であり、インタラクションではないと主張しています。彼は、巧みな視覚化とコンテキスト認識によってユーザーインタラクションを削減することで、グラフィックデザインに基づいた情報ソフトウェア設計を提唱しています。この論文では、列車の時刻表、オンライン書店、映画リストなどを例に、従来のインタラクティブデザインとグラフィックデザイン主導のアプローチを比較しています。環境センシングと履歴データを利用したコンテキスト推論方法を提案しています。ビクターは、ソフトウェア設計業界に対し、視覚コミュニケーションを優先し、情報ソフトウェア設計に革命を起こして、より直感的で効率的なユーザーエクスペリエンスを生み出すよう求めています。

開発

人文教育におけるAI:両刃の剣

2025-06-03
人文教育におけるAI:両刃の剣

この記事は、生成AIが人文教育に及ぼす深い影響を探っています。著者は、AIの影響を無視することは愚かであり、AI言語モデルの能力は人文的な知識とスキルに依存していると主張しています。AIは言語翻訳、分類などで大きな可能性を示していますが、人文的なスキルはAI研究自体にとってもますます重要になっています。歴史をテーマにした教育ゲーム開発の自身の経験を通して、著者はAIの教育における応用を示しながら、AIの誤用が生徒の学習意欲の低下や教育格差の拡大につながる可能性も指摘しています。最終的に、著者は教育関係者が積極的に参加し、カスタマイズされたAI学習ツールを開発することで、AIの悪用を防ぎ、質の高い教育の根本的な価値を守っていくべきだと訴えています。

開発

Cloudflare Workers向けOAuth 2.1プロバイダーフレームワーク:AI支援によるセキュリティライブラリ

2025-06-03
Cloudflare Workers向けOAuth 2.1プロバイダーフレームワーク:AI支援によるセキュリティライブラリ

これは、Cloudflare Workers向けのPKCEサポート付きOAuth 2.1プロトコルのプロバイダー側を実装するTypeScriptライブラリです。ワーカーコードのラッパーとして機能し、トークン管理とユーザー認証を自動化します。開発者は通常のfetchハンドラーを作成するだけで、ライブラリが認証処理を行います。ユーザー管理やUIフレームワークに依存せず、ハッシュのみを保存し、シークレットは保存しません。興味深いことに、このライブラリの開発にはAIモデルのClaudeが使用され、Cloudflareのエンジニアによるセキュリティレビューを経て、ソフトウェア開発におけるAIの可能性が実証されました。このライブラリは、一時的なエラーに対する耐性とセキュリティのバランスを保つ、革新的なリフレッシュトークン管理アプローチも特徴としています。

開発

MonsterUI:純粋なPythonでモダンなWeb UIを構築

2025-06-03
MonsterUI:純粋なPythonでモダンなWeb UIを構築

HTML、CSS、Python間の切り替えにうんざりしていませんか?MonsterUIが登場です!FastHTML上に構築されたこのライブラリは、Pythonのみを使用して美しく、レスポンシブなWebアプリケーションを構築できます。Tailwind、FrankenUI、DaisyUIなどの最新のライブラリを活用し、MonsterUIはプリスタイルされたコンポーネントとスマートなデフォルトを提供しながら、Tailwind CSSへの完全なアクセスを維持します。スタイリングを簡素化し、ユーティリティクラスの記憶に気を取られることなく、機能の構築に集中できます。テーマ、基本コンポーネント、セマンティックテキストスタイル、スマートレイアウトヘルパー、一般的なUIパターン、高度なコンポーネントなどの機能を備え、生産性を大幅に向上させます。

開発

Amazon、Dafnyベースのプログラム検証コースを公開

2025-06-02

Amazonは、Dafnyを使ったプログラム検証の教育資料を公開しました。このコースは、Dafnyの基本的なプログラミングにとどまらず、証明支援ツールとしての機能を深く掘り下げています。3つのパートで構成されています。パート1ではDafnyプログラミング言語を紹介し、パート2ではDafnyを証明支援ツールとして扱い、自然演繹などの形式的証明手法を学びます。パート3では、これらの知識をプログラム検証に応用し、関数型、命令型、オブジェクト指向プログラムの検証を扱います。このリソースは、初心者から経験豊富なDafny開発者まで、幅広いレベルの学習者に適しており、プログラム検証への包括的なアプローチを提供します。

開発

MongoDBにおけるエクストリームモデリング:実践的なコンプライアンスチェック

2025-06-02

MongoDBのエンジニアは、TLA+仕様と2つのコンプライアンスチェック手法(トレースチェックとテストケース生成)を用いて、製品の実装が仕様に準拠しているかどうかを検証する実験を行いました。MongoDBサーバーで行われたトレースチェック実験は、Raftコンセンサスプロトコルの実装の検証を目指し、MongoDBモバイルSDKで行われたテストケース生成実験は、オペレーショナルトランスフォーメーションアルゴリズムの実装の検証を目指しました。その結果、トレースチェックは、マルチスレッドプログラムの状態のスナップショット取得の困難さと、仕様と実装の食い違いのために失敗しましたが、テストケース生成はアルゴリズムのバグを正常に発見し、100%のブランチカバレッジを達成しました。この記事では、得られた教訓をまとめ、この分野における最近の進歩を紹介し、TLA+の主流採用における継続的なコンプライアンスチェックの重要性を強調しています。

LLM支援プログラミング:流行か革命か?ベテラン開発者の視点

2025-06-02
LLM支援プログラミング:流行か革命か?ベテラン開発者の視点

ベテランプログラマーのThomas Ptacek氏は、AIプログラミングツールが単なる一時的な流行であるという考えを否定しています。彼は、LLMによって生成されたコードは完璧ではなく、人間のレビューと修正が必要であるものの、特に反復的なタスクにおいて、コーディングの効率を劇的に向上させることを主張しています。エージェントを使用することで、LLMはコードの記述、テスト、デバッグなどを自律的に行うことができ、プログラマーの負担を大幅に軽減します。著者は、LLMはプログラマーを置き換えるのではなく、強力なアシスタントとなり、特に大量の反復作業を処理する場合に、開発効率を全体的に向上させると主張しています。

(fly.io)
開発

HTML属性値のグループ化の芸術:より読みやすいコードのために

2025-06-02
HTML属性値のグループ化の芸術:より読みやすいコードのために

この記事では、HTMLのclass属性の整理方法を改善する方法を紹介しています。class属性値の中にスペース、改行、その他の文字を追加することで、異なるCSSクラスをより明確にグループ化することができます。例えば、`card-section-background1-colorRed`の代わりに`[card] [section box] [bg-base color-primary]`や`card | section box | bg-base color-primary`を使用します。この方法は、最適化ツールがスペースを削除したり、プリプロセッサが値の順序を変更したりするといった制限はありますが、特に大規模プロジェクトにおいて、コードの可読性と保守性を向上させることができます。また、著者は絵文字やコメントなど、より創造的な方法でclass属性の可読性を高める方法を示し、コードの理解とチームワークの重要性を思い出させてくれます。

開発

macOS CoreAudioのゼロデイ脆弱性:詳細な分析

2025-06-02
macOS CoreAudioのゼロデイ脆弱性:詳細な分析

2025年4月、Appleは、実際に悪用されていたCoreAudioのバグCVE-2025-31200(メモリ破損の脆弱性)に対するパッチをリリースしました。セキュリティ研究者は、古いバイナリと新しいバイナリを比較して、問題のある関数apac::hoa::CodecConfig::Deserializeを特定することにより、このバグを綿密に分析しました。この脆弱性は、オーディオデータの解析中の配列サイズの不適切な処理に起因していました。攻撃者は、これを利用して境界外の読み取り/書き込みを行い、システムクラッシュを引き起こす可能性があります。リバースエンジニアリングと動的分析により、研究者は脆弱性を再現し、その悪用方法を明らかにしました。これは、Apple Positional Audio Codec(APAC)を利用し、特別に作成されたオーディオファイルを使用して配列サイズを操作し、境界外のメモリアクセスを実現します。クラッシュを引き起こすものの、この脆弱性は、より高度な攻撃の可能性を秘めています。

開発

Vanta:軽量なネットワーク動作解析ツール - 学生からの感謝

2025-06-02
Vanta:軽量なネットワーク動作解析ツール - 学生からの感謝

Vantaは、軽量で高速なコマンドラインベースのネットワーク動作解析ツールです。プロトコルレベルのフローを再構築し、キャプチャされたデータから構造化されたアクティビティを抽出します。Wiresharkなどのフル機能のGUIツールとは異なり、Vantaは明確性、構造、シンプルさに重点を置いており、カスタムスクリプトと最小限の設定に最適です。HTTP、DNS、TLS(部分的なフィンガープリンティング付き)の解析をサポートし、双方向フローを自動的に再構築し、クリーンなJSONサマリーを出力します。MacBook Air M1で学部生によって開発され、留学生を支援した大学への感謝の気持ちを表しています。

Onlook:デザイナー向けのオープンソース、ビジュアルファーストコードエディター

2025-06-02
Onlook:デザイナー向けのオープンソース、ビジュアルファーストコードエディター

Onlookは、Next.jsとTailwindCSSで構築された、デザイナー向けのオープンソースのビジュアルファーストコードエディターです。ブラウザのDOMで直接編集し、コードの変更をリアルタイムで確認できます。AIアシスタンス、ドラッグアンドドロップによるレイアウト調整、要素を右クリックしてコードの位置に直接移動する機能を備えています。現在開発中であり、コミュニティからの貢献を歓迎しています。

開発

シニアバックエンドエンジニア募集:脳の戦場を守る

2025-06-02
シニアバックエンドエンジニア募集:脳の戦場を守る

Piramidal社は、主力となるニューラルデータプラットフォームのバックエンドインフラストラクチャの構築と保守を担当するベテランソフトウェアエンジニアを募集しています。理想的な候補者は、製品主導型の企業で5年以上の経験を持ち、Pythonやその他のバックエンド言語、コンテナ化/オーケストレーション(例:Kubernetes)、リレーショナルデータベース(例:Postgres/MySQL)、Webテクノロジー(例:JavaScript、React)に精通している必要があります。彼らはMLエンジニアや社内顧客と緊密に協力して、安全で効率的で快適なユーザーインタラクションと自動化を構築します。同社は、テクノロジーを活用して人間の可能性を最大化し、認知の自由を守り、心の商品化と操作に反対することを目指しています。

多角形メッシュの辺を計算するための3つの最適化アルゴリズム

2025-06-02
多角形メッシュの辺を計算するための3つの最適化アルゴリズム

この記事では、多角形メッシュの辺を計算するための3つの同等のアルゴリズムを紹介します。これは、効率性を向上させながら同じ結果を得るための段階的な最適化ステップを表しています。メッシュトポロジの表現と辺の概念の説明から始まり、3つのアプローチを詳しく説明します。マップベースのアルゴリズム(O(n log n)の複雑さ)、ソートベースのアルゴリズム(O(n log n)の複雑さ)、そして新しいマイナーバレンスアルゴリズム(O(n)の複雑さ)です。著者はそれらのパフォーマンスを比較し、マイナーバレンスアルゴリズムの革新的な性質と、ゲーム開発における潜在的な用途を強調しています。

Stack Overflowの盛衰(そして復活の可能性?)

2025-06-02
Stack Overflowの盛衰(そして復活の可能性?)

かつて開発者の聖地であったStack Overflowは、相互扶助と知識共有の文化によって繁栄しました。しかし、ゲーム化された評判システムは、意図せずして協調よりも競争を促進し、活気のあるコミュニティを徐々に蝕んでいきました。AIの登場はさらにこの傾向を加速させ、開発者コミュニティの未来について考えさせられます。Stack Overflowの軌跡は、警告物語として役立ちます。真のコミュニティを単なるコンテンツ生成よりも優先するテクノロジー・プラットフォームは、特にAIの時代において、より繁栄する可能性が高いのです。

開発

ThorVG:WebGPU革命をリードするクロスプラットフォームベクターグラフィックスライブラリ

2025-06-02
ThorVG:WebGPU革命をリードするクロスプラットフォームベクターグラフィックスライブラリ

ThorVGは複数のラスターエンジン実装を提供しており、アプリケーションとシステムの設定に最適なものを選択できます。特にWeb開発においては、先進的な技術です。WebGPUのコンピュートシェーダーと低オーバーヘッドの最新のGPUアクセスを活用することで、積極的な最適化と幅広いアプリケーションを実現します。WebGPUの上にベクターレンダリング機能を完全にサポートし、ハードウェアアクセラレーション(Metal、Vulkan、DirectX)を抽象化することで、シームレスなクロスプラットフォーム互換性を確保します。

開発

Androidシステムフォントイテレータのバグハント:隠れたシンボルの物語

2025-06-02

このブログ投稿では、驚くほど長引いたバグ修正について説明します。Androidは異なるAPIレベルを定義しており、一部のシンボルは特定のバージョンからしか利用できません。Android版Firefox(Fenix)は、API 29以降でしか利用できない`ASystemFontIterator_open`を使用しています。下位互換性のために、Fenixはコンパイル時と実行時のチェックに`__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__`と`__builtin_available`を使用しています。しかし、Firefoxのビルドシステムはデフォルトで非表示の可視性(`-fvisibility=hidden`)を使用しているため、弱いシンボル`ASystemFontIterator_open`が共有ライブラリで未定義となり、クラッシュが発生します。修正は、Androidシステムヘッダーを含める際のデフォルトの可視性を一時的に変更するという簡単なものでした。

開発

Rustのターゲットディレクトリのサイズ縮小:新しいコンパイラフラグ

2025-06-02

大きなターゲットディレクトリは、Rust開発者にとってよくある不満です。この記事では、そのサイズを大幅に削減する新しい方法を紹介します。新しいコンパイラフラグ`-Zembed-metadata=no`と、新しいCargoフラグ`-Zno-embed-metadata`を組み合わせることで、.rlibファイルと.rmetaファイルへのメタデータの重複保存を防ぎます。テストでは、リリースモードで最大36.3%の削減が確認されました。この機能は現在不安定版(nightly)であり、デフォルトにする計画がありますが、後方互換性の問題を慎重に考慮する必要があります。

開発

AttendListのRuby on Railsスタック:詳細解説

2025-06-02
AttendListのRuby on Railsスタック:詳細解説

Google Meetの出席状況トラッカーであるAttendListは、Chrome拡張機能と連携するRuby on Railsバックエンドを利用しています。この記事では、バックグラウンドジョブ、認証、ブログからデプロイと追加機能まで、AttendListのインフラストラクチャとgemの選択について詳しく説明します。コアスタックにはPostgreSQL、Redis、Sidekiq、RSpecが含まれます。認証には、増分承認フローを使用するGoogle OAuthによるDeviseを使用します。ビューレイヤーはTailwind CSSとViewComponentsを使用します。パフォーマンスとプロファイリングはBulletとRack Mini Profilerによって処理されます。また、HetznerサーバーとHatchboxデプロイメントプラットフォームを使用する、コスト効率の高いホスティングソリューションについても説明します。

開発

Cuss:多言語俗語検出ライブラリ

2025-06-02
Cuss:多言語俗語検出ライブラリ

Cussは、複数の言語における卑語リストと信頼度評価を提供するオープンソースライブラリです。卑語フィルターの作成を目的としていません(作者は推奨していません)が、自然言語処理の研究に使用できます。npm、esm.shなど、さまざまなインストール方法に対応し、複数の言語バージョン(英語、アラビア語、スペイン語、フランス語、イタリア語、ポルトガル語など)が含まれています。各単語は0から2の評価が付けられ、卑語として使用される可能性を示します。さらに、流行語、一般的な単語などの他の単語リストも含まれています。

開発 卑語検出

arXivLabs:コミュニティとの協働によるarXivの新機能開発

2025-06-02
arXivLabs:コミュニティとの協働によるarXivの新機能開発

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

開発

Kan:オープンソースのTrelloキラー?

2025-06-02
Kan:オープンソースのTrelloキラー?

Kanは、Trelloの強力な代替を目指したオープンソースのプロジェクト管理ツールです。Kanbanボード、チームコラボレーション、Trelloからのインポート、ラベルによるフィルタリング、コメント、アクティビティログなどを備え、将来はテンプレートと統合を計画しています。コードはオープンソースであり、コントリビューションは大歓迎です!

開発 Trello代替

コンピュータサイエンスの失業率:ブームの終焉?

2025-06-02
コンピュータサイエンスの失業率:ブームの終焉?

人気にもかかわらず、コンピュータサイエンスは驚くほど高い失業率を誇っています。最近のレポートでは、コンピュータサイエンスは、6.1%の失業率で、学部専攻の中で7位にランクインしています。テクノロジーブームが需要を押し上げましたが、アマゾンやグーグルなどの巨大企業による後続のレイオフによって状況が変わりました。専門家は、実践経験を欠く卒業生の供給過剰、業界の需要の高まり、そして縮小するエントリーレベルの市場をこの原因としています。コーディングを取り巻く「一攫千金」という物語は、厳しい経済的現実と衝突しています。

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

2025-06-02
arXivLabs:コミュニティ協力者との実験プロジェクト

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

開発

tmux:ターミナルマルチプレクサの詳細解説

2025-06-02
tmux:ターミナルマルチプレクサの詳細解説

tmuxは、複数のターミナルセッション、ウィンドウ、ペインを同時に管理できる強力なターミナルマルチプレクサです。tmuxをターミナルマネージャーと考えてください。サーバーが複数のセッションを管理し、各セッションには複数のウィンドウが含まれ、各ウィンドウは複数のペインに分割でき、各ペインは別々のプログラムまたはシェルを実行します。複数のクライアントが同時に同じセッションに接続できます。プレフィックスキー(通常はCtrl+b)を使用すると、tmuxの各コンポーネントを簡単に制御および管理し、効率的なターミナル管理を実現できます。

開発

データベースの一貫性:基礎を超えて

2025-06-02
データベースの一貫性:基礎を超えて

この記事では、高並行環境下でのデータベーストランザクションの一貫性の課題について掘り下げています。Spring Bootの例を用いて、大量の売上データ処理において、デフォルトのページングと冪等性チェックがどのようにデータの不整合(行の欠落や重複更新)につながるかを示しています。この記事では、データベースの分離レベル(READ UNCOMMITED、READ COMMITED、REPEATABLE READ、SERIALIZABLE)と楽観的ロック/悲観的ロック戦略を詳細に説明しています。最終的に、REPEATABLE READ分離レベルと楽観的ロックを使用することで、データの不整合を効果的に解決し、パフォーマンスを大幅に向上させています。

開発

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

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

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

開発

iPhoneエージェント:GPT-4.1でiOSデバイスを制御

2025-06-02
iPhoneエージェント:GPT-4.1でiOSデバイスを制御

PhoneAgentは、OpenAIのGPT-4.1モデルを利用して、複数のアプリにまたがってiPhoneを制御するiOSアプリです。アクセシビリティツリーにアクセスすることで、メッセージの送信、アプリのダウンロード、通話などのタスクを実行できます。XcodeのUIテストフレームワークを使用し、脱獄は不要ですが、実験段階であり、長時間実行されるタスクやアニメーションの処理など、既知の制限事項があります。アプリはアプリの内容をOpenAI APIに送信し、TCPサーバーを介してUIテストと通信します。

開発

HIP:AMDとNVIDIA GPU向けシングルソースポータブルランタイムAPI

2025-06-02
HIP:AMDとNVIDIA GPU向けシングルソースポータブルランタイムAPI

HIPは、単一ソースコードからAMDとNVIDIA GPU向けのポータブルアプリケーションを作成できるC++ランタイムAPIおよびカーネル言語です。主な機能には、オーバーヘッドの少ない高性能、テンプレート、ラムダ関数などを含むシングルソースC++プログラミングのサポート、各プラットフォームで最高の開発ツールを活用できる機能などがあります。HIPIFYツールはCUDAからHIPへの変換を自動化しますが、プラットフォーム固有のチューニングのために手動最適化も可能です。HIPは新規プロジェクトをサポートし、既存のCUDAコードの容易な移植を提供しますが、直接的な置き換えではなく、完全な移植と最適化には手作業が必要です。

開発

「ただのJavaScript?」:想像以上に複雑です

2025-06-02

プログラミングの世界で「ただのJavaScript」という言葉は、しばしば誤用されています。この記事ではJavaScriptの複雑さを探り、一見単純な.jsファイルの多くが実際にはブラウザAPI、Node.js環境変数、JSXコンパイル、プリプロセッサ、TypeScript型アノテーションなどに依存していることを指摘しています。実行環境とツールチェーンの選択は、コードの実行可能性に大きく影響します。著者は一連の例を用いて、特定の実行環境やツールチェーンから切り離された「純粋な」JavaScriptコードだけが、真に「ただのJavaScript」と言えることを示しています。

開発
1 2 69 70 71 73 75 76 77 214 215