Category: 開発

FSF、Neo4jのAGPLv3ライセンス紛争に介入

2025-03-09

フリーソフトウェアファウンデーション(FSF)は、Neo4j, Inc.とPureThink, LLC.の間の訴訟において、法廷助言書を提出しました。中心的な問題は、Neo4jがGNU AGPLv3ライセンスと両立しない商用制限条項(Commons Clause)をソフトウェアに追加したこと。FSFは、GNUライセンスは、ソフトウェアの4つの自由と矛盾する制限をユーザーが削除することを許可していると主張しています。2023年11月のNeo4jへの差止命令書の後、Neo4jは問題のファイルを削除し、GNU AGPLv3ライセンスの下でのソフトウェア提供を停止しました。これは、FSFの立場を暗黙的に認めたことになります。FSFの助言書は、GNUライセンス作成におけるFSFの意図を明確にし、ソフトウェアの自由を守るためのFSFの取り組みを強調しています。

開発

軽量Pi-Hole 6:家庭ネットワークで広告を簡単にブロック

2025-03-08
軽量Pi-Hole 6:家庭ネットワークで広告を簡単にブロック

新しくリリースされたPi-hole 6はより軽量になり、PHPや外部Webサーバーを必要としません。これにより、システムリソースの要求が削減されます。この記事では、適切なハードウェア(Raspberry Piなど)の選択、静的IPアドレスの設定、ルーターのDHCP設定の変更など、Pi-holeのインストールと設定手順を詳しく説明しています。著者は古いRaspberry Pi 3Bで正常にテストし、広告を効果的にブロックし、速度を向上させ、データ消費量を削減しました。他の広告ブロッカーと比較して、Pi-holeはシンプルで使いやすく、システムリソースの消費が少ないという利点がありますが、ネットワーク設定に関する一定の知識が必要です。

開発

presenterm:ターミナルベースのMarkdownプレゼンテーション

2025-03-08
presenterm:ターミナルベースのMarkdownプレゼンテーション

presentermを使用すると、Markdownでプレゼンテーションを作成し、ターミナルから実行してPDFとしてエクスポートできます。画像、アニメーションGIF、カスタマイズ可能なテーマ、コードの強調表示などをサポートしています。例とドキュメントを参照して開始してください。

オートコンプリートを超えて:TypeLeap UI/UXの紹介

2025-03-08

TypeLeap UI/UXは、インターフェースデザインにおけるパラダイムシフトです。大規模言語モデル(LLM)を活用することで、ユーザーの入力意図に基づいてインターフェースをリアルタイムで動的に調整し、単純なオートコンプリートをはるかに超えています。単語の予測だけでなく、ユーザーの目的を理解します。「東京の天気…」と入力すると、すぐに天気ウィジェットが表示される可能性があります。この記事では、ローカル処理とサーバー処理、パフォーマンス最適化、ユーザーフィードバックメカニズムなど、技術的な課題と解決策を詳細に説明しています。実用的な例は少ないですが、TypeLeapの可能性は大きく、検索、ナレッジマネジメント、AIアシスタントなどで、より直感的で効率的なユーザーエクスペリエンスをもたらすと期待されています。

ソーシャルメディアで偽の太字や斜体をもう使わないで!

2025-03-08
ソーシャルメディアで偽の太字や斜体をもう使わないで!

この記事では、Unicode文字を使って作成された偽の太字や斜体テキストに出会ったときの、スクリーンリーダーの矛盾した動作を示すテストについて詳しく説明しています。一部のスクリーンリーダーはフォーマットを完全に無視しますが、他のスクリーンリーダーは各文字を個別に読み上げるため、視覚障害のあるユーザーにとって悪いユーザーエクスペリエンスにつながります。著者は、アクセシビリティを確保し、スクリーンリーダーユーザーの混乱を避けるために、テキストスタイルにはHTMLなどの標準マークアップを使用することの重要性を強調しています。

MCP:AIエージェントのための統一インターフェース

2025-03-08
MCP:AIエージェントのための統一インターフェース

AIモデルを様々なツールやデータソースに接続するユニバーサルインターフェースを想像してみてください。それがMCP(モデルコンテキストプロトコル)です。AIのためのUSB-Cポートのようなもので、AIと外部世界との相互作用を簡素化します。個々の統合を必要とする従来のAPIとは異なり、MCPは標準化、動的な検出、リアルタイムの双方向通信を提供し、AIアプリケーションをより柔軟で効率的にします。コンテキスト認識が必要な複雑なシナリオ、例えばスマートスケジュールアシスタントや高度なIDEなどに最適です。

開発

AIコーディングアシスタント:誇大宣伝 vs 現実

2025-03-08
AIコーディングアシスタント:誇大宣伝 vs 現実

多くの開発者は、AIコーディングアシスタントが生産性を5~10倍向上させると主張していますが、約800人のエンジニアを対象とした調査では、異なる結果が示されています。この調査では、効率指標に大きな改善は見られず、実際にはAIアシスタントの使用によってバグが41%増加しました。ドキュメント作成、関数検索、APIの理解には役立ちますが、中規模または複雑なコードベースでは苦労します。著者は、AIアシスタントは強化された検索エンジンに近く、生産性向上は約10%にとどまり、しばしば宣伝されるほどではないと示唆しています。モーダルエディタの方が、インラインAIコード補完よりもコーディング速度の向上が大きい可能性があります。

オープンソースAI定義をめぐる論争がOSI理事会選挙を揺るがす

2025-03-08
オープンソースAI定義をめぐる論争がOSI理事会選挙を揺るがす

オープンソースイニシアチブ(OSI)の2025年理事会選挙は、昨年10月に発表されたオープンソースAI定義(OSAID)を巡る論争に巻き込まれている。候補者Luke Faraone氏の応募締め切り違反による却下は、OSIのコミュニケーションとプロセスの透明性に関する議論を巻き起こした。手続き上の問題に加え、OSAID自体もオープンソースコミュニティの主要関係者から強い反対に直面しており、Richard Fontana氏やBradley Kuhn氏といった著名な人物は、オープンソースAIの正式定義を5~10年間延期すべきだと主張している。選挙は継続中で、OSAIDの未来は不透明だ。

ソフトウェアエンジニアリングにおけるコントロール階層の適用

2025-03-08

機械技師が、職場安全において重要な概念であるコントロール階層(HoC)を著者へ紹介しました。著者はHoCをソフトウェアエンジニアリングに適用し、10年前に間違ったクエリによって引き起こされた本番データベースのインシデントを分析します。この記事では、ソフトウェア開発におけるリスク軽減のために、排除、代替、エンジニアリングコントロール、管理コントロール、個人保護具(PPE)の適用を探ります。各レベルの長所、短所、制約が議論されます。例えば、厳しすぎるアクセスポリシーは問題解決を遅らせる可能性があります。著者は、システムの安全に対するコントロールの影響を包括的に考慮し、新たなリスクの導入を避ける必要性を強調しています。

開発

Airo:自己ホスト型サーバーへの簡単なデプロイ

2025-03-08
Airo:自己ホスト型サーバーへの簡単なデプロイ

複雑なCI/CDパイプラインにうんざりしていませんか?Airoは、ローカルマシンから自己ホスト型サーバーへのプロジェクトのデプロイを簡素化するコマンドラインツールです。複雑なパイプラインやサービスを設定する必要はありません。`compose.yml`と`env.yml`ファイル(DockerfileとCaddyfileを含む)を定義するだけで、`airo deploy`コマンドでワンクリックでデプロイできます。自動HTTPSとリバースプロキシをサポートしています。Airoを使用すると、インフラストラクチャの管理ではなく、製品の構築に集中できるため、小規模プロジェクトに最適です。

開発

プライバシー重視のOrionブラウザがLinuxに登場

2025-03-08
プライバシー重視のOrionブラウザがLinuxに登場

有料でプライバシー重視の検索エンジンを提供するKagi社が、WebKitベースのOrionブラウザのLinux版リリースを発表しました。Orionは、速度、低メモリ使用量、プライバシー機能で知られており、現在macOSとiOSで利用可能で、ChromeとFirefoxの拡張機能をサポートしています。現在クローズドソースですが、Kagi社は段階的にコンポーネントをオープンソース化し、来年にはLinux版とmacOS版で機能の同等性を達成することを目指しています。これはLinuxユーザーにとって朗報であり、強力なブラウザの選択肢が増えることになります。

開発

arXivLabs:コミュニティとの協働による実験プロジェクト

2025-03-08
arXivLabs:コミュニティとの協働による実験プロジェクト

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

開発

Redis:本当に必要ですか?

2025-03-08

10年以上にわたり3社で勤務した著者は、Redisが頻繁に過剰に使用されているという共通のパターンを発見しました。高性能データベースシステムであるTantanにおいてさえ、当初は少量のユーザーインタラクションカウントデータをキャッシュするために使用されていたRedisは、実際には不要であることが判明しました。追加の複雑さを加えることなく、PostgreSQLデータベースに直接効率的に保存できたのです。他の2社でも、低負荷のシステムにRedisが不必要に使用され、複雑さが増す一方でパフォーマンスが大幅に向上しない事例が見られました。著者は、新しいテクノロジーを導入する際には慎重な評価を行い、「テクノロジーのためのテクノロジー」を避け、よりシンプルで信頼性の高い選択肢を選ぶよう提唱しています。

開発

サンフランシスコのスタートアップが経験豊富なエンジニアを募集

2025-03-08
サンフランシスコのスタートアップが経験豊富なエンジニアを募集

サンフランシスコに拠点を置くスタートアップ企業が、小規模で機敏なエンジニアリングチームに加わる経験豊富なエンジニアを募集しています。業務内容は多様なプロジェクトと大規模なデータパイプライン(月間1億件以上のデータポイント)です。Python、SQL、Dockerのスキルが必須で、Webクローリング、Kubernetes、LLMパイプラインの経験があれば尚可です。充実した福利厚生には、昼食、無制限の休暇、401k、プラチナ等級の医療保険、15万ドル~20万ドルの年収、0.5%~2%の株式が含まれます。

開発

KnuthのTAOCPのバグを発見し、報酬をもらった!

2025-03-08
KnuthのTAOCPのバグを発見し、報酬をもらった!

著者はDonald Knuthの『The Art of Computer Programming』(TAOCP)でいくつかのバグを発見し、Knuth本人へ報告しました。Knuthは迅速に対応し、バグを修正しただけでなく、架空の「サン・セリフ銀行」の「16進数のドル」で著者に報酬を与えました。この記事では、発見されたバグ、Knuthからの回答、それに対応する報酬について詳細に説明し、Knuth独自の修正方法と面白い逸話を共有しています。Knuthの正確さと細部へのこだわり、そして著者の古典作品への敬意を強調しています。

Clojureによる会計処理:スクリプトからインタラクティブなWebアプリへの進化

2025-03-08

著者は当初、会計処理にClojureスクリプトを使用していましたが、トランザクション数が増加するにつれて、メンテナンスと共有が困難になりました。単純なスクリプトは記述しやすいですが、ユーザーエクスペリエンスは悪いです。一方、複雑なWebアプリケーションは優れたエクスペリエンスを提供しますが、開発コストが高くなります。著者は、Clojureの機能とシンプルなWebアプリケーションフレームワークを巧みに組み合わせて、ノートブックのようなインタラクティブな会計システムを作成しました。このシステムにより、ユーザーはClojureコードを記述し、リアルタイムで結果を確認し、シンプルなUI要素を使用して会計ルールとデータを変更できます。また、データの永続化、バージョン管理、共同編集をサポートすることで、元のスクリプトの欠点を効果的に解決し、ユーザーエクスペリエンスと効率性を向上させています。

arXivLabs:コミュニティ主導の機能を試す

2025-03-08
arXivLabs:コミュニティ主導の機能を試す

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

開発

型にはまらない:高性能テックチーム構築のための6つの異例の方法

2025-03-08
型にはまらない:高性能テックチーム構築のための6つの異例の方法

この記事は、テックチームマネジメントにおける6つの一般的だが非生産的な慣習に異議を唱えます。著者は、小規模チーム、ハッカソン、強制的な「技術的負債」への対処時間、エンジニアの時間の過剰な保護、ゼロ離職率、過剰な専門化などが、平凡でやる気のないチームにつながると主張しています。代わりに、著者は、適切な規模の自己組織化チームの構築、ハッカソンの代わりに構造化された「インターミッション」の使用、「技術的負債」を製品ロードマップに組み込むこと、エンジニアの顧客サポートへの関与の促進、健全な離職率の受け入れ、および多機能スキル開発の促進を提唱し、回復力があり、革新的で、影響力のあるチームを構築することを目指しています。

Svelte5:宣伝ほどは良くない?

2025-03-08
Svelte5:宣伝ほどは良くない?

Svelte5のリリースでは、リアクティブな状態システム「runes」が大きな改善点として謳われました。しかし、著者は実際のプロジェクトでいくつかの制限を発見しました。runesはSvelteコンポーネントまたは.svelte.tsファイルのみに制限され、リアクティブ性を維持するために状態を関数でラップする必要があり、クラスに対するサポートも不完全です。Svelteのテンプレート機能はJavaScriptの等価物がなく、バインド可能なプロパティのテストが面倒です。フォームコンポーネントはデフォルトで非制御型であり、潜在的な問題を引き起こす可能性があります。Svelte5はReact/Vueを模倣しようとしていますが、使いやすさと機能の完全性においては不足しており、著者はSolidJSをより優れた代替案として検討しています。

偶然のセキュリティバグ発見:右クリック冒険記

2025-03-08
偶然のセキュリティバグ発見:右クリック冒険記

セルフサービスポータルの設定中に、好奇心から、編集不可能なはずのメールアドレスフィールドを変更したところ、SSOのセキュリティ脆弱性を発見しました。これにより、会社のメールアドレスを個人のメールアドレスに変更し、認証をバイパスすることが可能になりました。この脆弱性は報告され、ベンダーは迅速に修正しました。この事例は、簡単なテストでも重大なセキュリティ欠陥を発見できることを示しており、ソフトウェアテストにおける好奇心とユーザー中心のアプローチの重要性を強調しています。

Python vs. Go:Webサーバーの比較と資源使用量の巨大な違い

2025-03-08
Python vs. Go:Webサーバーの比較と資源使用量の巨大な違い

この記事では、シンプルなFastAPI(Python)とGoのWebサーバーを比較し、本番環境におけるPythonの過剰なリソース消費を浮き彫りにしています。PythonのDockerイメージはGoのそれに比べてはるかに大きく、実行には何桁も多くのRAMが必要となります。これにより、サーバーコストと運用上の複雑さが増大します。さらに、Pythonコードのメンテナンスとアップグレードは、GILの制限、例外処理、パッケージ依存関係のアップグレードなど、多くの課題を伴います。著者は自身の経験と業界の事例を用いて、言語の選択がプロジェクトコストとエンジニアリング効率に与える影響を示し、リソースに制約がある場合やパフォーマンスが重要なアプリケーションには、Goなどの軽量な言語を優先することを提案しています。

システムプログラミング言語のエラーモデル:壮大な論文

2025-03-08

15,000語を超えるこのブログ投稿は、システムプログラミング言語におけるエラーモデルを深く掘り下げています。著者は、製品、型システム、言語設計という複数の視点から、エラーの表現、伝播、処理方法を考察しています。そして、優雅な劣化、パフォーマンスの最適化、ライブラリ間の相互運用性のバランスを目指した、仮説上の言語「Everr」とそのエラーモデルを提案しています。この記事では、さまざまなプログラミング言語のエラーモデルを比較し、プログラマーによるエラーの理解と処理方法を探求しています。

開発

オンプレミスIISへの安全なデプロイ:Azure Pipelines実践記(パート3)

2025-03-08
オンプレミスIISへの安全なデプロイ:Azure Pipelines実践記(パート3)

この記事では、管理者権限なしでAzure DevOpsからオンプレミスのIISサーバーにアプリケーションを安全にデプロイする方法を詳しく説明します。筆者は、権限の最小化やアプリケーションプールの操作などの課題に取り組み、自動化されたデプロイメントを実現しました。PowerShellとJEA(Just Enough Administration)を使用した安全なリモート管理に焦点を当て、完全なYAMLパイプラインテンプレートとPowerShellスクリプトを提供することで、迅速かつ安全なセットアップを支援します。

Debian GNU/kFreeBSD:DebianとFreeBSDを融合したハイブリッドOS

2025-03-08

Debian GNU/kFreeBSDは、DebianのユーザーランドとFreeBSDのカーネルを融合させたユニークなオペレーティングシステムです。この記事では、そのアーキテクチャ、インストールプロセス、利点(ZFSサポートやパフォーマンス最適化など)、および限界(ソフトウェアの互換性やコミュニティサポートなど)を探ります。Debianの膨大なソフトウェアリポジトリとFreeBSDの堅牢なカーネルの説得力のある組み合わせを提供する一方で、始める前に課題を考慮することが重要です。OSハイブリダイゼーションにおける興味深い実験であり続けています。

開発

翻訳トラブル:スマホ利用削減アプリのドイツ語翻訳の難しさ

2025-03-08
翻訳トラブル:スマホ利用削減アプリのドイツ語翻訳の難しさ

スマホの使用時間を減らすためのアプリを開発した開発者が、アプリのドイツ語翻訳で「スピードバンプ(減速帯)」の翻訳に苦戦したという話。ドイツ語にはスピードバンプを表す言葉がなんと18個もあり、様々な翻訳ツールやリソースで結果が異なり、誤訳もあったという。AI翻訳への依存の危険性と、プロの翻訳サービスの重要性を指摘し、一見簡単な言葉でも、文化的な違いによって予期せぬ問題が発生することを示唆している。アプリ開発におけるローカライズの難しさ、文化に配慮したアプローチの必要性を説く教訓的な事例だ。

ネットワーク・クロニクル:ゲーム化されたネットワークドキュメント

2025-03-08
ネットワーク・クロニクル:ゲーム化されたネットワークドキュメント

ネットワーク・クロニクルは、退屈なネットワークドキュメントを没入型のミステリーアドベンチャーに変換します。ユーザーは、前任者である「建築家」の謎めいた失踪後にネットワークを維持する任務を負った新しいシステム管理者になります。探検、パズル解決、ドキュメント作成を通じて、プレイヤーはネットワークの秘密と建築家の失踪の真相を明らかにします。ゲーム化されたシステムには、経験値、レベル、実績、チャレンジが含まれており、ターミナルとシームレスに統合されています。LinuxとmacOSをサポートし、標準インストールとユーザー空間インストールを提供します。

Letta:状態を持つLLMアプリケーションのためのオープンソースフレームワーク

2025-03-08
Letta:状態を持つLLMアプリケーションのためのオープンソースフレームワーク

Letta(旧MemGPT)は、状態を持つLLMアプリケーションを構築するためのオープンソースフレームワークです。高度な推論能力と透明性のある長期記憶を持つエージェントを作成できます。Lettaフレームワークはモデル非依存型であり、さまざまなLLMバックエンド(OpenAI、Anthropicなど)をサポートしています。Dockerとpipによるインストール方法があります。また、エージェント開発環境(ADE)というグラフィカルインターフェースを提供し、エージェントの作成、デプロイ、インタラクション、監視を簡素化します。

開発

シニアソフトウェアエンジニアが会社のシステムを破壊、懲役10年の判決

2025-03-08
シニアソフトウェアエンジニアが会社のシステムを破壊、懲役10年の判決

55歳のベテランソフトウェアエンジニア、デイビス・ルー氏は、以前の雇用主であるイートン社のシステムを破壊した罪で有罪判決を受け、最長10年の懲役刑に直面することになりました。退職前に、ルー氏は悪意のあるソフトウェアを開発し、数千人の従業員がネットワークからロックアウトされ、多大な経済的損害が発生しました。捜査官は、ルー氏が「破壊」を意味する「ハカイ」と「睡眠」を意味する「フンスイ」という名前のマルウェアを作成し、アクセス権限が取り消された後にすべてのアカウントをロックする「キルスイッチ」を作成していたことを突き止めました。また、会社のデータやオペレーティングシステムのディレクトリを削除しようともしていました。自らの行為を認めたものの、陪審員はルー氏を保護されたコンピューターを故意に損傷した罪で有罪としました。

開発

コーデックの実装にC言語を選んだ理由

2025-03-08
コーデックの実装にC言語を選んだ理由

このブログ記事では、コーデックの実装にRustではなくC言語を選んだ理由について説明しています。Rustは強力な型システムとメモリ安全性を備えている一方で、コーデックのような低レベルでパフォーマンスが重要なコードでは、その恩恵がパフォーマンスの低下というコストを伴います。著者は、C言語のシンプルさとハードウェアへの直接的な制御が、高パフォーマンスなコーデック開発により適していると主張しています。PAQ8、bzip3、LZ4の実装例を通して、メモリ管理とパフォーマンス最適化の課題が示されています。著者は、低レベルな最適化はC言語の方が容易だと考えています。Rustの安全性は利点ですが、パフォーマンスを重視するシナリオでは、そのオーバーヘッドは許容できません。

開発

Polars Cloud:スケーラブルでサーバーレスなDataFrame処理プラットフォーム

2025-03-07
Polars Cloud:スケーラブルでサーバーレスなDataFrame処理プラットフォーム

Polarsチームは、高性能コンピューティングを基盤とした柔軟なDataFrame APIプラットフォームであるPolars Cloudを構築しています。これは、PandasとPySparkのギャップを埋めることを目指し、使いやすさとスケーラビリティの両方を提供します。Polars Cloudは、分散コンピューティング、サーバーレスコンピューティング、設定可能なハードウェア(GPUとCPU)、対角線スケーリング(水平と垂直)、マルチクラウドサポート(AWS、Azure、GCP)、オンプレミスライセンス、フォールトトレランス、データリネージ、オブザーバビリティをサポートしています。ユーザーは、シンプルなAPI呼び出しでリモートでクエリを実行でき、バッチモードとインタラクティブモードの両方をサポートしています。Polars Cloudは、分散クエリ、パーティション化クエリ、並列クエリなど、さまざまなスケーリング戦略にも対応しています。

開発
1 2 143 144 145 147 149 150 151 214 215