[go: up one dir, main page]

この記事は Johan Euphrosine、Ethan Mahintorabi による Google Open Source Blog の記事 "GlobalFoundries joins Google's open source silicon initiative" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Google は、カスタムチップを開発するデベロッパーや企業のコミュニティを成長させ、オープンソース ハードウェア関連のエコシステムを活性化するため、昨年より無料のオープンソース チップの設計と製造プログラムを拡大する計画に懸命に取り組んでいます。

今回、このプログラムの拡大と、GlobalFoundries とのパートナーシップについてお知らせします。私たちは合同で、GlobalFoundries 180MCU テクノロジー プラットフォームのプロセス デザインキット(PDK)を Apache 2.0 ライセンスのもとで公開します。合わせて、Efabless プラットフォームでオープンソース設計の製造を行う無償チップ実現プログラムも公開します。このオープンソース PDK は、GF との継続的なパートナーシップから生まれた初めての成果です。GF には、テクノロジーと製造技術に関する膨大で広範な専門知識があります。それを土台として、半導体の開発や製造をより身近なものにし、イノベーションを推進するために、今後も共同作業を進めていきたいと考えています。
GF180MCU 1P5M 5 メタル スタックアップ、9kA トップメタル、M3 層と M4 層の間の MIM

Google はこのプログラムを SkyWater Technologies と合同で開始し、SkyWater の PDK の 1 つを Apache 2.0 ライセンスで公開しました。この 2 年間で 6 回のシャトルを後援し、オープンソース コミュニティから 350 点を超える独自の設計の申請を受け、そのうち約 240 点の設計が無償で製造されました。


この新しいパートナーシップは、半導体メーカーのエコシステム市場にとって 1 つの節目を意味します。それを過小評価することはできません。

パンデミックの影響により、世界では、この数年間でデジタル技術の採用がかつてないほど急加速しました。技術トレンドによって、人々の生活のあらゆる側面が変化しています。その結果、GlobalFoundries によると、半導体メーカーの収益の約 73% がモバイル、IoT、自動車などの高成長市場関連になっています。この変化は、半導体産業の「新しい黄金時代」につながるだけでなく、業界としてイノベーションを定義したり実現したりする方法に構造的変化をもたらします。

GlobalFoundries によると、180nm を使用する応用分野は、現在世界全体で年間 1,600 万ウエハーの規模になっています。2026 年には、それが 2,200 万枚以上に増加する見込みです。

180nm の応用分野は、モーター コントローラ、RFID、汎用 MCU と PMIC といった市場に加え、IoT センサー、二重周波数 RFID、モーター ドライブなどの新たな分野によって牽引され続けています。

GlobalFoundries と Google の共同作業によって、こういった応用分野や高成長領域で設計に携わるチップ エンジニアのイノベーションが推進されます。またそれは、半導体メーカーのエコシステムでオープンソース モデルを実現できることを明確に示すものでもあります。

GF 180nm テクノロジー プラットフォームは、大量生産、価格、電圧オプションに関連する新機能をオープンソース チップ設計者に提供します。この PDK には、以下の標準セルが搭載されています。
  • デジタル標準セルライブラリ(7 トラックと 9 トラック)
  • 低(3.3V)、中(5V、6V)、高(10V)の電圧オプション
  • SRAM マクロ(64x8、128x8、256x8、512x8)
  • I/O とプリミティブ(レジスタ、キャパシタ、トランジスタ、eFuse)セルライブラリ
オープンソースの PDK が増えることは、オープンソース チップ開発エコシステムの次のような発展にとって、重要なステップです。
  • オープンソース EDA ツールに複数のプロセス テクノロジーのサポートを追加できる
  • 研究者は、複数のテクノロジー ベースラインで再現性のある設計を実現できる
  • 人気のオープンソース IP ブロックを別のプロセス テクノロジーに移植できる
私たちだけでは、これを作り上げることはできません。ソフトウェア デベロッパーやハードウェア エンジニア、研究者や学部生、愛好家や業界の専門家、スタートアップ企業や業界関係者の皆さんの力が必要です。皆さんの新鮮なアイデアと豊富な経験を、オープンソース チップのエコシステムの拡大に役立てていただけることを期待しています。

ご興味がある方はぜひ、下記をご覧ください :
Posted by Johan Euphrosine、Ethan Mahintorabi – ハードウェア ツールチェーン チーム

この記事は Johan Euphrosine, Ethan Mahintorabi による Google Open Source Blog の記事 "SkyWater and Google expand open source program to new 90nm technology" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

この度、Google は SkyWater Technology とのパートナーシップを拡大することをお知らせします。私たちは、SkyWater の商用 90nm 完全空乏型シリコン オン インシュレータ(FDSOI)CMOS プロセス テクノロジーである SKY90-FD 用のオープンソース プロセス デザインキット(PDK)をリリースするために、協力して作業を進めています。SKY90-FD は MIT Lincoln Laboratory の 90nm 商用 FDSOI テクノロジーに基づいており、設計者はこれを利用して複雑な集積回路を作成し、さまざまな用途に活用できます。

この 2 年の間に、Google と SkyWater Technology のパートナーシップのもとで、あらゆるデベロッパーがアクセスできるオープンなチップが生まれています。その始まりは SKY130 PDK のオープンソース リリースで、その後にオープンソース ハードウェア エコシステムのデベロッパー向けの一連の無償製造シャトルが続きました。これまでに Google は、Efabless プラットフォームで 6 つのシャトルをサポートし、364 件以上のコミュニティ申請を受けて 240 の設計を製造しています。この種のパートナーシップは世界初で、これまでにめざましい成果をあげています。
最新の MPW-6 シャトルでは、24 か国のさまざまなコミュニティから 90 件の申請を受けました。


今後数か月間で、SkyWater Technology と密接に連携しつつ、新しい SKY90-FD PDK を Apache 2.0 ライセンスのもとでリリースする予定です。また、追加の Open MPW シャトルを計画し、Efabless プラットフォームによってこの新しい 90nm FDSOI テクノロジー向けのオープンソース設計の製造も行いたいと考えています。

オープンソースの PDK を通じてさまざまなテクノロジーにアクセスできることは、オープンなチップのエコシステムの拡大と強化にとって欠かせないことであると確信しています。
  • デベロッパーは、親しんだプロセスノードの制約を超え、既存の設計や新しい設計で、異なる性能、消費電力、領域のトレードオフを模索できます。
  • 研究者は、異なるテクノロジーで研究を再現し、さまざまな性能指数を実現できます。
  • ツールの管理者は、テクノロジーのバックエンドを汎用化し、複数のプロセスをサポートできます。
  • コミュニティは、PDK の構造化、配布、管理の方法を改善できます。
SKY90-FD は 90nm FDSOI プロセスです。従来の CMOS BULK プロセスとは異なり、SKY90-FD には基板と上部シリコン層との間に薄い絶縁材料の層があるのが特徴です。この薄い酸化プロセスのおかげで、トランジスタを BULK プロセスよりも大幅に薄くすることができます。それによって素子を「完全空乏」にできるので、製造プロセスを簡素化できます。この絶縁が追加されることで、寄生リーク電流が大幅に減少して接合容量が下がり、さまざまな環境条件下でスピードと消費電力性能が向上します。

SKY90-FD プロセス スタック トポロジの特徴は、主な相互接続用の 5 つの薄い銅ベースの金属層と、それより高い電流を流せる厚みのある 2 つの追加 Al(アルミニウム)金属層。

このオープンソース PDK は今年中にリリースされる予定です。そこからさまざまな新しい用途が生まれるのが楽しみです。皆さんの感想をお待ちしています。また、オープンなチップのコミュニティから、ますますたくさんの画期的なプロジェクトのアイデアが生まれることを期待しています。

それまでの間は、オープンなチップの探求を始めることができるように、https://developers.google.com/silicon のリソースやリンクを確認しておきましょう。


Posted by Johan Euphrosine、Ethan Mahintorabi – ハードウェア ツールチェーン チーム

この記事は Google 副社長、Royal Hansen、Google Cloud および OpenTitan リード、Dominic Rizzo による Google Open Source Blog の記事 "OpenTitan – Open sourcing transparent, trustworthy, and secure silicon" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


 セキュリティは安全なインフラストラクチャから始まります。インフラストラクチャの安全性と整合性に対する信頼を高めるには、確実に信頼できる根底部分、すなわち専用のチップが重要です。

本日(元記事公開当時)は、信頼のルート(RoT)となる初めてのオープンソース チップ プロジェクト、OpenTitan についてお知らせします。これは、私たちがパートナーとともに進めているプロジェクトです。OpenTitan は高品質な RoT 設計と統合ガイドラインを提供するもので、データセンターのサーバーやストレージ、周辺機器などに利用できます。チップの設計をオープンソース化することで、透過性や信頼性が高まり、究極的には安全性も高まります。
OpenTitan ロゴ

チップの信頼の土台となる

RoT チップは、認証と検証が行われたコードを使って重要なシステム コンポーネントが安全に起動することを検証し、ハードウェア インフラストラクチャやそこで動作するソフトウェアが意図どおりの信頼できる状態を保つことを保証します。RoT チップは、以下を行うことで多面的にセキュリティに貢献します。
  • サーバーや端末が正しいファームウェアで起動し、低レベルの不正ソフトウェアに感染していないことを保証します。
  • オペレータがサーバーや端末の正当性を検証できるように、暗号学的に一意なマシン ID を提供します。
  • 暗号キーなどのシークレットを改ざんされない形で保護します。これは、物理的にアクセスできる人(例: サーバーや端末が輸送中の場合)に対しても有効です。
  • 信頼できる改ざん不可能な監査記録などのランタイム セキュリティ サービスを提供します。
この RoT チップ テクノロジーは、サーバーのマザーボード、ネットワーク カード、クライアント端末(例: ノートパソコン、スマートフォン)、コンシューマー ルーター、IoT 端末などに利用できます。たとえば、Google は専用の RoT チップ Titan を利用し、Google のデータセンター内にあるマシンが、検証されたコードによって信頼できる既知の状態から起動することを保証しています。これが私たちのシステムの信頼のルートになっています。私たちは、確実に信頼できるチップの重要性を認識しており、パートナーと連携して、信頼できる RoT チップのメリットをお客様や業界全体に広げたいと考えています。これを実現する最善の方法は、チップをオープンソース化することでしょう。

透過性と安全性の水準を上げる

オープンソース ソフトウェアと同じく、オープンソース チップも以下のことができます。
  1. 設計と実装が透過的なので、信頼性と安全性が高まります。問題を早期に発見でき、盲目的な信頼を減らすことができます。
  2. オープンソース設計への貢献を通して、革新を実現し、推進します。
  3. オープンで共通なリファレンス設計を通して、実装の選択肢を提供し、一連の共通インターフェースやソフトウェアの互換性の保証を維持します。
OpenTitan プロジェクトは、イギリスのケンブリッジに本拠地を置く独立した非営利企業で、フルスタックのエンジニアリング チームが在籍する lowRISC CIC によって管理され、志を同じくする ETH ZurichG+D Mobile SecurityGoogleNuvoton TechnologyWestern Digital などの企業の連合体により支えられています。

OpenTitan プロジェクトの創設パートナー

OpenTitan はアクティブなエンジニアリング プロジェクトで、パートナーの連合体を代表するエンジニアのチームが参加し、さまざまな観点からアイデアや専門知識を持ち寄っています。オープンソースのマイクロプロセッサ(RISC-V ベースの設計である lowRISC Ibex)、暗号コプロセッサ、ハードウェア乱数生成器、高度な鍵階層、揮発性および不揮発性ストレージ用のメモリ階層、防御メカニズム、IO 周辺機器、セキュアブートなど、RoT チップの論理設計は透過的に行われています。OpenTitan では、よりオープンで透過的かつ高品質な RoT を提供するため、パートナーの連合体が協力し合っています。
従来型の RoT と OpenTitan RoT の重要な設計コンポーネントの比較
OpenTitan プロジェクトは、次の 3 つの原則に根ざしています。
  • 透過性 – あらゆる人のための RoT チップの透過性や信頼性を向上させるため、OpenTitan の設計やドキュメントは誰でも調査、評価、貢献が可能です。
  • 高品質 – リファレンス ファームウェア、付帯検証ツール、技術ドキュメントを含め、高品質で論理的に安全なチップ設計を行います。
  • 柔軟性 – ベンダーやプラットフォームに依存せず、データセンターのサーバーやストレージ、周辺機器、その他のデバイスに統合できる RoT チップ設計を使うことで、導入者が費用を削減して多くのお客様に製品を届けることができるようにします。

OpenTitan プロジェクトに参加する

OpenTitan を活用できるのは、インフラストラクチャをチップベースのセキュリティで強化したいと考えているチップメーカーやプラットフォーム プロバイダー、セキュリティに敏感な企業などです。早速、GitHub リポジトリにアクセスしてみてください。

積極的に OpenTitan と連携して実際にオープンソース チップを安全にしたい方は、ぜひ OpenTitan チームにご連絡ください。製品にパイロット OpenTitan RoT を組み込みたい方は、こちらからお知らせいただけるとありがたく思います。


Reviewed by Eiji Kitamura - Developer Relations Team

この記事は プライバシー エンジニア、Giles Hogben、ソフトウェア エンジニア、Milinda Perera による Android Developers Blog の記事 "Project Capillary: End-to-end encryption for push messaging, simplified" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Firebase Cloud Messaging(FCM)で通信すれば、それだけで HTTPS を利用できます。FCM サーバー エンドポイントと端末間のチャンネルは、TCP を介した SSL で暗号化されます。ただし、デベロッパーのサーバーとユーザーの端末間でメッセージをエンドツーエンド(E2E)で暗号化するためには、デベロッパーが特別な措置を講じる必要があります。

そのため、ユーザーの端末で生成された鍵を使用して、プッシュ メッセージをエンドツーエンドで暗号化することをおすすめしていますが、従来より、このような E2E の暗号化を実装するには、深い技術的知識と多大な労力が必要でした。そこで、デベロッパーのサーバーとユーザーの Android 端末間でプッシュ メッセージの E2E の暗号化を簡単に実装できるようにする Capillary オープンソース ライブラリを公開しました。

また、最近ロック解除された端末のみで復号化が可能になるメッセージを送信する機能を追加しました。この機能では、ファイルベースの暗号化(FBE)を使用することにより、端末でのメッセージの復号化がサポートされます。暗号化されたメッセージは端末暗号化(DE)ストレージでキャッシュされ、メッセージの復号鍵は Android Keystore に格納されるため、ユーザーの認証が必要になります。これにより、デベロッパーは機密性の高いコンテンツが含まれるメッセージを指定できるようになります。メッセージは、ユーザーが端末をロック解除して復号化を行うまで、キャッシュされた形式で暗号化されたままになります。

このライブラリは次の処理を実行します。
  • KitKat(API レベル 19)以降のすべてのバージョンの Android を対象とした暗号化機能と鍵の管理。
  • 鍵の生成と登録のワークフロー。
  • メッセージの暗号化(サーバー上)と復号化(クライアント上)。
  • メッセージの改変を防止するための整合性保護。
  • 未認証コンテキストで受信され、端末のロック解除後に復号化して表示されるメッセージのキャッシュ。
  • ユーザーがアプリのインストール後に端末のロックを追加またはリセットした場合やアプリのストレージをリセットした場合などのエッジケース。

このライブラリは ECDSA 認証を使った RSA 暗号化と Web Push 暗号化の両方をサポートするため、デベロッパーは、E2E で暗号化された Web Push メッセージをブラウザベースのクライアントに送信するために開発した既存のサーバー側コードを再利用することができます。

このライブラリに加えて、デモアプリ(ついに Google のプライバシー チームまでもが独自の SMS アプリを作成しました)も公開しています。このデモアプリでは、ライブラリを使用して、E2E で暗号化された FCM ペイロードを gRPC ベースのサーバー実装から送信します。

未対応の領域

  • このオープンソース ライブラリとデモアプリは、ピアツーピアのメッセージングと鍵の交換をサポートするように設計されていません。これらはデベロッパー向けに設計され、E2E で暗号化されたプッシュ メッセージをサーバーから 1 つ以上の端末に送信します。デベロッパーのサーバーと配信先端末の間でメッセージを保護できますが、端末間でメッセージを直接保護することはできません。
  • この暗号化はサーバー側の包括的なソリューションではありません。コア暗号化機能は提供されますが、デベロッパーは、サンプルのサーバー側コードの一部(たとえば、メッセージの構成や公開鍵のデータベース ストレージなど)をデベロッパーのアーキテクチャ固有のものに改変する必要があります。

このライブラリとデモの設計および実装方法の技術的な詳細については、こちらをご覧ください。


Reviewed by Yuichi Araki - Developer Relations Team

この記事は オープンソース プログラム オフィス、Will Norris による Google Open Source Blog の記事 "A New Home for Google Open Source" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google の創業当初より、フリーウェアやオープンソース ソフトウェアは、Google の技術的、組織的な土台を形作ってきました。Linux カーネルを実行するサーバーから、社員は社内のあらゆるチームのコードにパッチを当てることができるという企業文化に至るまで、オープンソースは Google に欠かすことができない要素です。その引き替えに、Google は膨大なオープンソース コードを公開し、Google Summer of CodeGoogle Code-in などのイベントを開催し、Software Freedom ConservancyApache Software Foundation をはじめとする多くの団体を通してオープンソースに関するプロジェクトやコミュニティの後援を行っています。

本日(*原文公開当時)、opensource.google.com を公開しました。この新しいウェブサイトでは、オープンソースの利用、公開、サポートに関する情報を Google のさまざまな取り組みと合わせて確認できます。

この新しいサイトでは、オープンソースに対する深い愛に満ちた、Google による幅広い取り組みをご紹介しています。Google が展開するプログラム、支援する組織、リリースしたオープンソース プロジェクトの包括的なリストなど、皆さんの期待にお応えする情報が掲載されています。さらに、皆さんが想定していないような内容も掲載されており、Google のオープンソースに対する「取り組み」の秘密までご覧いただけます。

おもしろそうなオープンソースを探す

Google のオープンソース コードの公開に対する考え方の 1 つに、「多ければ多いほどよい」というものがあります。どのようなプロジェクトが求められているのかわからないため、Google のチームでは、できる限りコードを公開することが推奨されています。そのため、オープンソース ライセンスのもとで数千のプロジェクトが公開されています。TensorFlowGoKubernetes といった大規模なプロジェクトから、Light My PianoNeuroglancerPeriph.io といった小規模のプロジェクトまで様々です。完全にサポートされているものもあれば、試験運用版や娯楽的なものも含まれます。この膨大な数のプロジェクトは、GitHub の 100 以上の組織と Google 内の Git サービスにホストされています。そのため、Google のオープンソースの取り組みの規模や全容を把握するのは難しいかもしれません。

そこで、もっと詳しく実態を把握できるように、オープンソース プロジェクト ディレクトリを公開しました。これは、今後さらに拡大していく予定です。掲載されている多くのプロジェクトにも、Google 内部での用途などの情報を追加する予定です。将来的には、プロジェクトのライフサイクルや成熟度についての情報も追加したいと考えています。

Google のオープンソースに対する取り組み

オープンソースとは、単にコードを公開するだけではなく、コミュニティやプロセスも含まれます。大企業としてオープンソース関連のプロジェクトやコミュニティに参加すれば、様々な課題に直面することになります。2014 年、Google は TODO グループの立ち上げに協力しました。このグループは、オープンソースに深く貢献する企業間でコラボレーションや、ベスト プラクティスの共有ができるフォーラムを提供しています。何年にもわたって積み重ねてきた議論から生まれた Google のオープンソースに対する取り組みに関する内部ドキュメントも、本日公開されました。

このドキュメントでは、新たなオープンソース プロジェクトの公開や他のプロジェクトへのパッチを提供する際のプロセスに加え、社内に導入するオープンソース コードの管理や使用について説明しています。さらに、このドキュメントは 方法だけにとどまらず、なぜその方法をとっているのかという 理由 まで掲載しています。たとえば、あるライセンスのコードのみを使う理由や、パッチを受け取る際に必ず貢献者ライセンスへの同意を求める理由などが説明されています。

Google のポリシーや手続きは、長年の経験やその中で得てきた教訓に基づくものです。Google のオープンソースに対するアプローチは、万人向けではないかもしれません。オープンソースに対する取り組み方は 1 つではないため、このドキュメントを How-To ガイドとは考えないでください。他のエンジニアのソースコードを読んで問題の解決方法を学ぶことは貴重な体験です。それと同じように、オープンソースに対する Google のアプローチや考え方を確認することに価値を見いだしていただければと思っています。

なお、新しい Google オープンソース サイトの裏話に興味がある方は、私たちの友人が運営している The Changelog というサイトの最新エピソードをお聞きください。この新しいサイトがお役に立つことを願っています。

Posted by Takuo Suzuki - Developer Relations Team

この記事は David Bieber、Google Brain ソフトウェア エンジニアによる Google Developers Blog の記事 "Introducing Python Fire, a library for automatically generating command line interfaces" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

元の記事は Google オープンソース ブログに投稿されました。

今回は、Python Fire のオープンソース化についてお知らせします。Python Fire は、あらゆる Python コードからコマンドライン インターフェース(CLI)を生成します。Python プログラムから Fire 関数を呼び出すだけで、自動的にそのプログラムが CLI に変換されます。このライブラリは、「pip install fire」を実行することで pypi からインストールできます。ソースは GitHub で公開されています。

Python Fire は、自動的にコードを CLI に変換しますので、CLI を定義するコードを書く必要がありません。引数の定義も、ヘルプ情報の設定も、コードの実行方法を定義するメイン関数も不要です。単にメイン モジュールから「Fire」関数を呼び出せば、後のことは Python Fire が行ってくれます。Python Fire は、インスペクションを利用して、クラス、オブジェクト、ディクショナリ、関数、モジュール全体など、指定された Python オブジェクトをコマンドライン インターフェースに変換します。変換後の CLI には、タブ補完機能やドキュメントも付属しており、コードが変更された場合はそれに応じて CLI も更新されます。

簡単な実例を見てみましょう。
#!/usr/bin/env python
import fire


class Example(object):
 def hello(self, name='world'):
   """Says hello to the specified name."""
   return 'Hello {name}!'.format(name=name)


def main():
 fire.Fire(Example)


if __name__ == '__main__':
 main()

Fire 関数の実行により、コマンドが実行されます。Fire を呼び出すだけで、Example クラスをコマンドライン ユーティリティのように使えるようになります。

$ ./example.py hello
Hello world!
$ ./example.py hello David
Hello David!
$ ./example.py hello --name=Google
Hello Google!


もちろん、このモジュールは通常の Python ライブラリとして使うこともできるので、Bash と Python の両方からまったく同じコードを使うことができます。Python ライブラリを書いている際に Python Fire を使うと、コマンドラインから対象ライブラリの一部を実行して簡単に実験できるようになるので、メインメソッドやクライアントをアップデートする必要がなくなります。また、ライブラリを変更すると、それに応じてコマンドライン ツールも更新されます。

Google のエンジニアは、Python Fire を使って Python ライブラリからコマンドライン ツールを生成しています。たとえば、Fire と Python Imaging Library(PIL)を使って構築したイメージ操作ツールがあります。Google Brain では、Fire で構築した実験管理ツールが使われており、Python からでも Bash からでも同じように実験を管理できるようになっています。

Fire によって生成される CLI はインタラクティブモードにも対応しています。CLI に「--interactive」フラグをつけて実行するとコマンドの結果とともに IPython の REPL が起動し、その他の便利な定義済み変数をすぐに使用できます。詳細および Fire が提供するその他の便利な機能については、Python Fire のドキュメントをご覧ください。

強力でシンプル、かつ汎用性の高い Python Fire が皆さんのプロジェクトに役立つライブラリになることを期待しています。

Posted by Ian Lewis, Developer Advocate, Google Cloud

この記事は 上流釣り師、Rohit Rao による Chromium Blog の記事 "Open-sourcing Chrome on iOS!" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

これまで、Chrome for iOS のコードは、他のプラットフォームにはない複雑さがあることから、他の Chromium プロジェクトとは別に管理されてきました。そして何年も慎重にリファクタリングを重ねてきた結果、すべてのコードが Chromium に再結合され、オープンソース レポジトリに移す作業が行われています。

iOS プラットフォームの制約により、すべてのブラウザは WebKit レンダリング エンジン上に構築する必要があります。Chromium にとって、これは WebKit と他のプラットフォームで使われている Chrome のレンダリング エンジンである Blink の両方をサポートしなければならないことを意味します。これによって複雑さが増すことになりますが、私たちはそれを Chromium のコードベースに配置することは避けたいと考えました。

Chrome のオープンソース化という約束を守るため、これまでの数年間、Chrome for iOS のコードを Chromium に統合するために必要な変更を行ってきました。そして本日(翻訳当時)その作業が完了し、デベロッパーの皆さんは、他のバージョンの Chromium と同じように iOS 版の Chromium をコンパイルできるようになったことをお知らせします。Chrome for iOS のすべてのテストが Chromium コミュニティ全体で利用可能になり、コードがチェックインされるたびに自動的に実行されるようになったため、開発のスピードも速まります。

私たちは、オープンソース コミュニティやコントリビューターのみなさまを尊重しています。そこにようやく Chrome for iOS が加わったことを嬉しく思っています。


Posted by Eiji Kitamura - Developer Relations Team

Budou は、ウェブページ上で日本語で書かれた単語が途中で折り返されてしまうことを防ぐためのツールです。オープンソース プロジェクトとして、GitHub で公開しています

ウェブページ上の日本語の文章は、行末に置かれると、単語の途中でも折り返されてしまうことがあります。皆さんも、以下のような文章を見たことがあるはずです。「新しい Android の世界へようこそ。」という見出しの「ようこそ」という単語が、「ようこ」と「そ」の間で折り返され、ひとまとまりの単語として認識しにくくなっています。このように、単語の途中で発生する折り返しは、文章の読みやすさを下げる一因です。



[単語の途中で折り返しが発生している例]


この問題は、日本語がラテン文字を使用する英語等の言語と違って、単語と単語の間に区切りを持たないことに起因しています。ラテン文字を使用する多くの言語では、単語と単語の間に空白による区切りがあり、単語の途中で折り返しが行われないようにブラウザのデフォルト環境で指定されているため問題は発生しませんが、日本語では、単語の途中でも関係なく折り返しが発生します。

従来も、与えられた日本語の文章に対して単語の区切りを指定し、単語の途中で折り返しを行わないように CSS で制御することでこの問題に対処できました。しかし、このような処理を行うには、単語の区切りが指定できる日本語に精通した作業者が必要でした。Google ではたくさんのウェブサイトを制作していますが、多くは英語をベースに多言語化を施し各国に提供しています。そのため、ウェブサイトを制作するエンジニアが、特定の言語を理解しなくても美しいタイポグラフィを提供できる方法が模索されてきました。

Budou は、この問題に対して自動化されたソリューションを提供するために開発されました。 Cloud Natural Language API を使って単語の境界判別と構文解析を行い、その出力結果をもとに文節を特定します。推定された文節ごとに display: inline-block を指定した SPAN タグで囲むことで、文章の折り返し可能な位置を指定します。Budou によって折り返し可能な位置が指定された文章を HTML に変換することで、デバイスの画面幅に関わらず、最適な位置で折り返された文章を自動で表示できるようになります。以下の図では、「常に最新、最高のモバイル。Android を開発した同じチームから。」という文章がさまざまなブロック幅で表示されたときの折り返しの変化を表しています。上のブロックが Budou 適用前、下のブロックが Budou 適用後です。Budou を適用することにより、ブロック幅に関わらず適切な位置で折り返しが行われることがわかります。



[Budou 適用前と適用後の文章の折り返しの比較]


また Budou は、Python で記述されたシンプルなスクリプトなので、テンプレートエンジンのカスタムフィルタとして使うことも、GruntGulp を始めとするビルド ツールのタスクとして使用することもできます。ひとつの文章を処理するたびに Cloud Natural Language API にリクエストを投げますが、バージョン 0.1.1 以降では、すでに処理した文章に対しては重複したリクエストを投げないキャッシュ機能も利用できるようになりました。また、静的コンテンツに対して使う場合には、Budou であらかじめ処理しておいた HTML を使えば、追加リクエストが発生しません。

Budou は、ウェブページのタイトルや見出しなどの比較的短い文章に適用されることを想定して開発しています。スクリーン リーダーの挙動によっては SPAN タグで囲まれた部分や WBR タグで区切られた部分を分割して読み上げることもあるため、長い文章に適用するときには注意が必要です。

2016 年 9 月現在、Cloud Natural Language API がサポートする言語は、英語、スペイン語、日本語です。現時点で Budou は、日本語のみをサポートしています。今後、Cloud Natural Language API のサポート言語の拡充に伴って、中国語やタイ語など、日本語以外の単語区切りを持たない言語にも対応できるようになるかもしれません。

みなさんのご意見・ご要望は大歓迎です。ぜひ GitHub を通してご連絡ください。
https://github.com/google/budou


Posted by Shuhei Iitsuka - Brand Studio

[この記事は Sam Thorogood、デベロッパー プログラム エンジニアによる Google Developers Blog の記事 "A Google Santa Tracker update from Santa's Elves" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

本日(*原文公開当時)は、2015 年 12 月に使われていた Google でサンタ トラッカーのオープンソース版が Android とウェブ用にアップデートされたことをお知らせします。

Firebase や Polymer など、Google のデベロッパー製品を活用したコードの拡張やアップグレードが行われていますので、ユーザーに魅力を感じてもらえる楽しい教育的なアプリを構築する際の参考としていただくこともできます。



サンタ トラッカーを使ってみるには、GitHub(google/santa-tracker-web および google/santa-tracker-android)からコードをチェックアウトします。どちらのリポジトリにも説明が記載されていますので、自分用にビルドすることができます。

サンタ トラッカーは、12 月 24 日にサンタがプレゼントを配る状況を見るだけのものではありません。サンタが休日の旅の準備をしている間、サンタ村を探検して冬にまつわる体験やゲーム、教育用コンテンツを楽しむことができます。

オープンソースとして公開されたサンタ トラッカーの概要は次のとおりです。

Android アプリ

  • サンタ トラッカー Android アプリは、Ice Cream Sandwich(4.0)以上のスマートフォン、タブレット、TV などのすべての端末をサポートしている単一 APK です。アプリのソースコードはこちらにあります。
  • サンタ トラッカーは Remote Config API、友人を招待できる App Invites、妖精たちがアプリのユーザーをよりよく理解できるようにする Firebase Analytics などの Firebase 機能を活用しています。
  • サンタ村は、スマートフォンやタブレットなどの複数の端末に対応した動画やゲーム、トラッカーのランチャーです。Leanback ユーザー インターフェースに対応した Android TV 用のランチャーも搭載されています。




Android Wear



  • Android Wear 用のカスタム ウォッチフェイスは、パーソナライズされています。サンタや愛らしい妖精たちが時間を教えてくれるので、みんな笑顔でいることができるでしょう。カスタム ウォッチフェイスの構築はとても楽しいものですが、パフォーマンスの優れた、電池に優しいウォッチフェイスを作るためには、いくつかの事項を考慮する必要があります。ウォッチフェイスのソースコードは、こちらにあります。
  • サンタ トラッカーは、サンタの旅が始まるとユーザーに通知を送信します。通知は、カスタム バックグラウンドとアプリ内へのディープリンクによって、ウェアラブル端末で快適な体験を提供するための拡張が加えられています。

ウェブ



  • サンタ トラッカーはモバイル ファーストです。今年のサンタ トラッカーは、モバイルウェブ向けに作られています。まったく新しいサンタ村は、レスポンシブでインタラクティブなコンテンツです。3 つに区切られており、タッチ ジェスチャーとウェブアプリ マニフェストもサポートされています。
  • 大規模な開発が行えるよう、Polymer 1.0+ へのアップグレードも行われています。サンタ トラッカーで Polymer が使われていることから、簡単にコードをパッケージ化して再利用可能なコンポーネントを作れることがわかるでしょう。サンタ村のすべてのにはカスタム要素があります。これらの要素は必要な場合のみロードされるので、サンタ トラッカーは最小限のコストで起動できます。



  • Present Bounce などの多くの楽しい新ゲームは、最新の JavaScript 標準(ES6)に基づいて構築されており、Google Closure Compiler によって古いブラウザでもサポートされるようになっています。
  • サンタ トラッカーは、アニメーションするコンテンツを統合できる標準 JavaScript API である Web Animations API を活用することによって、インタラクティブで楽しいコンテンツを実現しています。
  • 今年は Chromecast のサポートを簡素化しており、スクリーンセーバーに注力しました。これは、12 月 24 日の大イベントをカウントダウンしつつ、ときおりサンタ村から何種類かのすばらしい動画コンテンツを自動再生するものです。

今回のアップデートによって刺激を受けた皆様が、サンタ トラッカーを作り上げているすばらしいコンポーネントを活用して、魔法のようなコンテンツを生み出すことを楽しみにしています。


Posted by Yuichi Araki - Developer Relations Team

[この記事は Zoltan Szabadka、圧縮チーム ソフトウェア エンジニアによる Open Source Blog の記事 "Introducing Brotli: a new compression algorithm for the internet" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

インターネット ユーザーにとって時間はこのうえなく貴重で、ウェブ ページが読み込まれるまでずっと待つ必要はないと Google は考えています。遅いより速い方がいい、ということで、2 年前に 圧縮アルゴリズム Zopfli を公開しました。業界では好意的なフィードバックをいただき、PNG オプティマイザーからウェブ コンテンツのプリプロセスに至るまで、多くの圧縮ソリューションに採用されました。こうした利用状況や、ウェブ フォントの圧縮といった新たな圧縮のニーズを踏まえ、新しい圧縮アルゴリズム Brotli を開発し、オープン ソース化したことを発表いたします。

Zopfli は Deflate と互換性がありましたが、Brotli はまったく新しいデータ形式を採用しています。この新しいフォーマットにより、圧縮率が Zopfli より 20 ~ 26% 向上しています。Google が行った研究 「Brotli、Deflate、Zopfli、LZMA、LZHAM、Bzip2 の圧縮アルゴリズムの比較」によると、Brotli の速度は zlib が Deflate を実装した場合とほぼ同じです。Canterbury corpus においても、LZMAbzip2 より圧縮率がやや高くなっています。Brotli は、二次コンテキスト モデリングやエントロピー符号の再利用、過去データのメモリ ウィンドウの拡大、同時分布符号などにより高密度のデータ圧縮を実現しています。Zopfli と同様、新しいアルゴリズムにはスイスのパンにちなんだ名前が付けられています。Brötli とは、スイスのドイツ語で「小さいパン」を意味します。

圧縮サイズが小さければ小さいほど、スペースを有効活用でき、ページの読み込みも速くなります。近い将来主要ブラウザでこの形式がサポートされることを願っています。特にモバイル ユーザーにとっては、圧縮サイズが小さいと、データ転送の費用やバッテリー消費量が減るといったメリットがあります。

Posted by Eiji Kitamura - Developer Relations Team

[ この記事は Jeff Dean, Senior Google Fellow, および Rajat Monga, Technical Lead による Google Research Blog の記事 TensorFlow - Google’s latest machine learning system, open sourced for everyone を元に翻訳、加筆したものです]

ディープ ラーニングは、コンピュータ サイエンスの世界に計り知れない衝撃を与えました。この分野の研究において新たな地平を拓き、また膨大な数のユーザーが日々利用する、驚くほど便利なサービスの開発を可能にしています。

Google では、DistBelief と呼ばれる社内向けのディープ ラーニング インフラを 2011 年に開発し、かつてない規模のニューラル ネットワークの構築や、データセンター内の数千コアへのモデル学習のスケールアウトを実現しました。このインフラは、未分類の YouTube 動画像から「ネコ」のような高度な概念を獲得できることを示したほか、Google 検索アプリの音声認識での 25% に達する品質改善や、Google フォトの画像検索の実装などに用いられてきました。また ImageNet が主催する Large Scale Visual Recognition Challenge in 2014 で優勝したインセプション モデルの学習に用いられたほか、DeepDream画像へのキャプション自動挿入などの開発を支えてきました。

しかし、こうした成功を収めた DistBelief にも、いくつかの制約があります。それは、ニューラル ネットワークのみに特化した技術であること、構成が容易ではないこと、そして Google の社内インフラに密接に結びついていることです。そのため、DistBelief 上での研究で得られたコードの外部公開はほぼ不可能でした。

11 月 9 日、Google は、これらの課題を解決するために設計された第二世代の機械学習ライブラリである TensorFlow をオープンソース公開しました。TensorFlow は、汎用性、柔軟性、ポータビリティ、そして使いやすさに優れた、100% オープンソースのソフトウェアです。さらに、DistBelief を上回る速度とスケーラビリティを備え、サービスの実運用にも適します。実際に、TensorFlow はいくつかのベンチマークで DistBelief の 2 倍の性能を達成しています。プログラミング モデルや実装の詳細については、このホワイトペーパーで公開しています。
TensorFlow は、ディープ ラーニングの実装のための豊富な機能をサポートするほか、演算フローをグラフとして定義することで様々な計算処理を表現でき、ディープ ラーニングに留まらない優れた汎用性を備えます。自由度の高い Python API を提供し、新しいアイディアをすばやく簡単に表現できます。また TensorFlow に備わる自動微分や各種の初期レート最適化の機能は、勾配降下法を使うあらゆる機械学習アルゴリズムの実装で威力を発揮します。ここにあるチュートリアルではいくつかの例を公開しています。
TensorFlow は、ポータブルで高速な実運用サービス向けのライブラリとしてゼロから設計されており、研究目的に限らず実サービスにも利用できます。デスクトップ PC での GPU によるモデルのトレーニングからスマートフォンによるサービス提供まで、シームレスな展開が可能です。Google が公開する最新のモデル アーキテクチャ例を使用すれば、強力な機械学習アルゴリズムをすぐに使い始められます。ImageNet 画像認識モデルの TensorFlow によるフル実装もまもなくリリースする予定です。

さらに TensorFlow の真価は、それがオープンソース ソフトウェアであることにあります。スタンドアロン ライブラリと関連ツール、チュートリアル、そしてサンプルが Apache 2.0 ライセンスで公開されており、あらゆる企業や組織において無償で利用可能です。

Google 社内のディープ ラーニング研究者は、例えばニューラル ネットワークから得たシグナルによる Google 検索の品質向上や、今後提供される魔法のような機能の実現など、すべての研究で TensorFlow をすでに活用しています。Google では今後も各種サービスでの機械学習の実装に TensorFlow を使用していくほか、すでに公開済みのアルゴリズムの TensorFlow 実装も進める予定です。開発者の皆様による www.tensorflow.org への参加をお待ちしています。

Posted by Kazunori Sato - Developer Advocate, Cloud Platform

[この記事は Software Engineer の Ankur Kotwal が Google Developers Blog に投稿した "Ho Ho Ho! Google's Santa Tracker is now open source" という記事を元に荒木が翻訳・加筆したものです]

季節はすっかり春ですね。クリスマスはずいぶん前のことのように感じられますが、お知らせがあります。Google サンタ トラッカーがオープンソースとして GitHub (google/santa-tracker-webgoogle/santa-tracker-androidに公開されました。Web と Android 両方のアプリが Google の開発者向けプロダクトを使ってどのように実現されているのかご覧いただけます。
サンタ トラッカーといっても、ただ単にクリスマス イブのサンタさんのプレゼント配達状況を追跡するだけではありません。クリスマス シーズンを通して、冬をテーマにした数々のゲームで遊んだり、北極にあるサンタ村でサンタさんか配達の準備をする様子を見ることができるんですよ。

オープンソースとしてリリースしたのは以下のようなものです。

Android アプリ

  • Android の サンタ トラッカー アプリはひとつの APK ファイルで Ice Cream Sandwich (4.0) 以降のすべての端末をサポートしています。アプリのソースコードはこちらでご覧いただけます。
  • サンタ村はビデオやゲームやトラッカー (地図) のランチャーになっています。横幅 1 万ピクセルにも及ぶサンタ村を実現するため、Android のリソース階層をちょっと変わったふうに利用しています。これによって画面解像度ごとに別々の画像を用意する必要をなくし、APK のサイズを削減しています。
  • サンタ トラッカーのゲームは様々な技術を組み合わせて作られています。GumballJBox2D、Memory Match は Android の View、Jetpack は OpenGL と特製のレンダリング エンジンを使っています。
  • ユーザー エンゲージメント向上のため、App Indexing API を使って Google 検索からサンタ トラッカーのゲームを開くことができるようにしています。Deep Linking を利用して実現されています。

Android Wear


Web 版


  • Web 版のサンタ トラッカーは Polymer を使って実装されています。Polymer は Chrome チームが Web Component に基づいて作り出した新しいライブラリです。サンタ トラッカーでの利用方法をご覧になれば、コードを再利用可能なコンポーネントとしてまとめるのも Polymer を使えば簡単だということがお分かりいただけるでしょう。サンタ村での各シーン (ゲーム、ビデオ、インタラクティブなページ) はすべてカスタム要素になっていて、必要なときだけ読み込むようにすることで起動のコストを最小化しています。
  • サンタ トラッカーのインタラクティブで楽しい体験は Web アニメーション API を使って作られています。JavaScript でコンテンツのアニメーションをを統一的に扱うための標準化された API です。CSS アニメーションから大きな進歩です。Web アニメーションはインタラクティブに記述することができ、ポリフィルを使えば全てのモダンなブラウザーをサポートすることができます。Polymer 自体もマテリアル デザインの効果を実現するために内部で Web アニメーションを利用しています。アニメーションの例は GitHub を検索すればたくさん見つかります。

  • サンタさんはモバイル ファーストを推進しています。今年はモバイル Web での最適化を主眼に据えて設計しました。完全なレスポンシブ デザイン、Polymer によるタッチ ジェスチャーのサポートなどです。また、theme-colorホーム画面に追加するための Web Application Manifest といった新機能もあります。
  • 徹底的なローカリゼーションのため、Web Component として新しく i18n-msg コンポーネントを開発しました。Chrome Extension の i18n の仕組みが元になっており、開発用にライブ更新も利用できますが、最適化用にビルド ステップも備えています。
サンタ トラッカーを支える技術がどのようなものか、ぜひソース コードをご覧になって確認して下さい。開発者の皆様のお役に立つことを願っております。

Posted by Yuichi Araki - Developer Relations Team

[この記事は Chris DiBona、オープン ソース ディレクターによる Google Open Source Blog の記事 "Bidding farewell to Google Code" を元に、鈴木が翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google Code のプロジェクト ホスティング サービスを 2006 年に開始したときは、プロジェクト ホスティングはまだあまり一般的ではありませんでした。信頼性や成長性に疑問が抱かれていたため、ユーザーにとって別の選択肢となるようなサービスを提示できるよう Google はオープンソース コミュニティに働きかけました。それ以来、GitHub や Bitbucket bloom などさまざまなプロジェクト ホスティング サービスが登場してきました。多くのプロジェクトが Google Code からそうした他のシステムに移行していきました。こうした開発者の方々の現状を考え、Google は Google Code に持っている 1000 近いオープンソース プロジェクトを GitHub に移行しました。

開発者が Google Code から離れているため、残りのプロジェクトでスパムや悪用の割合が増えている実情もあります。最近では Google Code の管理業務がほとんど悪用への対策に費やされるという状況で、Google Code の悪用ではないアクティビティを調べた結果、このサービスはもはや必要でないことが明白になりました。

3 月 12 日をもって、Google Code で新規プロジェクト作成はできなくなりました。そして 2016 年 1 月 25 日にサービスを完全に終了します。Google Code にお持ちのプロジェクトの移行をサポートする各種ツールのリンクを下記に示します。また、Google Code から他のホストへの移行にサポートが必要なプロジェクトについては、今後 3 か月間 Google がサポートいたします。
  • 2015 年 3 月 12 日、新規プロジェクトの作成ができなくなりました。
  • 2015 年 8 月 24 日、Google Code サイトが読み取り専用になります。プロジェクトの Source、Issue、Wiki のチェックアウトや閲覧は引き続き行っていただけます。
  • 2016 年 1 月 25 日、プロジェクト ホスティング サービスが終了します。プロジェクトの Source、Issue、Wiki の圧縮ファイルは引き続きダウンロードできます。圧縮ファイルは 2016 年の終わりまで保持する予定です。
Android や Chrome など特定のプロジェクトについては Git や Gerrit でのホスティングを継続していきます。また、Eclipse や kernel.org、その他のプロジェクトはミラーを維持します。

Google Code からデータを移行する方法

Google Code からデータを移行するもっとも簡単な方法は、Google Code から GitHub へのエクスポート ツールを使うことです。このツールを使えば、プロジェクトの Source、Issue、Wiki を新しい GitHub のリポジトリに自動的に移行できます。GitHub のインポーターでは、Subversion や Mercurial で管理している Google Code プロジェクトが Git 向けに変換されますのでご注意ください。

加えて、スタンドアロン ツールを使って GitHub や Bitbucket にも移行できます。また、SourceForge では、Google Code プロジェクト インポート サービスが提供されています。

これらのツールを使う際に問題が発生した場合は、Google Code の Issue としてご連絡いただくか、google-code-shutdown@google.com までメールでお知らせください。あるいは Chris DiBona に直接メール(cdibona@google.com)をお送りください。Hacker News や Reddit などの一般的なフォーラムサイトも頻繁に確認し、公の場でご質問に回答していきます。Google Code を使い続けていただいている皆さんにはご不便をおかけすることになり、申し訳ございません。移行プロセスが簡単なものになるよう全力でサポートしていきます。

GitHub や Bitbucket では Google Code から移行する開発者の皆さんを受け入れることを楽しみにしています。今回 Google Code 終了を公表するにあたり、どちらのサイトにも多くのご協力をいただきましたので、この場を借りて、彼らのコミュニティへの継続的なサポートに感謝したいと思います。2006 年当時には存在しなかった機能が提供されていますので、皆さんのプロジェクトで役に立つものを探すお手伝いもさせていただきます。

Posted by Takuo Suzuki - Developer Relations Team

Posted by 鈴木拓生 Developer Relations Team

[Google 人事部の千谷裕子から Google Summer of Code についての寄稿をもらいました。- 鈴木]

学生の皆さま、オープンソースのコードを書いてみませんか?

Google Summer of Code (以下 GSoC)は学生にオープンソース開発への参加を奨励するために企画された奨学プログラムです。GSoC はこれまで 100 カ国以上から 8,500 人の学生と 8,300 人のメンターを引き合わせ、過去に 5 千万行ものコードを生み出してきました。

プログラムはすべてオンラインで行われ、世界中の応募者から選抜された学生には、3 か月間のコーディング プロジェクトに集中することを可能にする 5,000 ドルの給付金が支払われます。今年は GSoC 10 周年ということもあり、給付金が 10 % 増しの 5,500 ドルです。



「自分には無理」と思ったあなた!GSoC 経験者で Google 東京 R&D センターで働いているソフトウェア エンジニアの体験談(2012 年2011 年2010 年)をご覧のうえ、日本語で GSoC 関係者や経験者に質問したい方はぜひ GSoC メーリングリスト(日本語) をご利用ください。経験者曰く、GSoC に参加するのに必要なのはコードを書く情熱とほんのちょっとの勇気です。

さあ、プロジェクト一覧を見て、開発者に問い合わせてみましょう。

応募期間: 日本時間 2014 年 3 月 11 日(火)04:00 〜 3 月 22 日(土)04:00
(UTC 協定世界時 2014 年 10 月 10 日(月)19:00 〜 3 月 21 日(金)19:00)

皆様の参加をお待ちしております。

Posted by 鈴木拓生 Developer Relations Team

[この記事は Android Security Engineer の Adrian Ludwig が Android Official Blog に投稿した記事、The value of openness in Android security を元に、翻訳しています。詳しくは元記事をご覧ください。-鈴木]

カスタマイズや選択肢をもたらす Android のオープンソース設計は、Android スマートフォンやタブレットのユーザーに多くの利点を生み出していることは明らかですが、それによってセキュリティが受ける恩恵については、あまりよく知られていません。オープンソースであるということは、誰でも Android のコードを確認できるということですが、その結果、既存の安全性が証明されたり、改良が必要な箇所が発見されたりすることがあります。これは、セキュリティに関わるコミュニティが、Android をより強化したり、未知の脅威から守るためのコードを書くこともできるということでもあります。

Google は製品をより安全かつ信頼できるものにするために、常にセキュリティ分野と密に協力しています。今回は Android におけるそうした活動の一部をご紹介します。

Android は Google Patch Reward Program に参加することになりました
Google は、広く利用されているオープンソースプロジェクトに対するセキュリティパッチの開発に報奨金を支払っていますが、今後、Android も同様に扱われることになります。これは、より多くのコミュニティによってセキュリティが提供されることにつながり、脆弱性が実際に明らかになる前に予防策が取られることを意味します。

コミュニティによって提供される Android 4.4 のセキュリティ
Android 4.4 では、サンドボックスが強化されています。サンドボックスはアプリケーションが要求するリソースを管理することで、機器や部品に悪影響を与えるような挙動を防ぐものですが、Android 4.4 では SELinux が有効化され、これまでで最も強力なセキュリティが提供されています。そして、この SELinux の核となっている部分は、その他多くの Android 専用エクステンションと同様に、オープンソース開発に参加している第三者の尽力によって実現されました。Android におけるこうしたセキュリティ向上は、今日の製品に活用されているコミュニティの力を示す顕著な例であるといえるでしょう。

Pwn2Own Mobile と Android
Android は、今年行われた PacSec Security Conference に参加しました。参加するセキュリティリサーチャー達が、広く利用されているモバイル機器の脆弱性発見を競うこのコンテストにおいて、Android を搭載した Nexus デバイスには脆弱性が発見されませんでした(もちろん、万一発見された場合に備えて、パッチを作成する準備はできていましたが)。

Android チームは、多くのセキュリティ リサーチ コミュニティと密に連携することで、 議論の場を広げ、上記のような改良の実装につなげています。オープンソースであることは、毎日利用する Android スマートフォンやタブレットの安全性の向上に役立っています。

Posted by 山崎富美 Developer Relations Team

[本記事は、Open Source Programs Office の Carol Smith が 4 月 23 日 に Open Source at Google  に投稿した 「Students Announced for Google Summer of Code 2012」という記事を元に、翻訳したものです。詳しくは元記事をご覧ください。 - 山崎] 


2012 年の Google Summer of Code プログラムには、1,212 名の学生の皆さんが参加することになりました。学生の皆さんの、コミュニティでの活動が始まります。まずは、メンターと知り合いになり、ドキュメントを読み、IRC チャネル(ハッシュタグは #gsoc)でハングアウトを行い、5 月末に実際にコーディングを行う前に、コミュニティに慣れ親しみましょう。

今年の Google Summer of Code では 180 もの組織が参加しています。これらの組織やスケジュールについてもっと知りたい場合には、Google Summer of Code のプログラムサイトをご覧ください。

今回、参加される学生の皆さん、おめでとうございます。刺激的で実りの多いプログラムとなることを楽しみにしています。




[本記事は、Open Source Programs Office の Shawn Pearce が書いた"Worldwide Mirrors of git.kernel.org"を元に翻訳・再構成しました。-山崎]

バージョン管理システムである Git は Linux カーネルや関連するユーティリティの開発においてとても重要な役割を担っています。世界中の開発者が git.kernel.org にホストされたリポジトリに素早くアクセスすることを必要としています。

4 月 24 日に、Google は https://kernel.googlesource.com/ にて git.kernel.org の公開ミラーリングサービスを開始しました。 このミラーリングサービスは Android Open Source Project をホストするものと同じぐらい高速なインフラによって支えられています。ちなみに、 Android Open Source Project は毎日 1 テラバイト以上のデータと 250 万ものリクエストを処理しています。

kernel.googlesource.com は、世界中のどこからでも迅速にアクセスできるように、アジア、米国およびヨーロッパの各施設を活用し、複数の Google データセンターから提供されます。



[2008 年・2009 年に学生として、そしてメンターとして Google Summer of Code に関わってきた Google のソフトウェアエンジニアの石橋 賢一から、Google Summer of Code 2012 についてのお知らせです。学生の皆さん、ぜひご参加ください。- 山崎]


Google Summer of Code 2012 (以下 GSoC) の学生申し込みが始まりました。プログラミングが好きな学生のみなさん、5,000 ドルを得るチャンスです。GSoC は 2005 年に始まった、学生とオープンソースコミュニティを結びつける奨学プログラムです。GSoC ではオープンソースコミュニティが学生の皆さんにやってもらいたいプロジェクトのアイデアを用意します。学生のみなさんはこれらのプロジェクトアイデアを元に自分がやりたいことを提案します。もちろん自分独自のアイデアを提案することも可能です。プロジェクト案が採択されたら、メンターとともにプロジェクトの完遂を目指します。メンターはプロジェクトを進めるにあたって適宜アドバイスを提供します。プロジェクトを終えることができれば 5,000 ドルを手にすることができます。そして何より、あなたが書いたコードが世界中で使われるのです。こんなにエキサイティングなことはありませんよね?

私は 2008 年に学生として参加し、2009 年にはメンターとして参加しました。オープンソースコミュニティに本格的に関わるのが初めてだった自分にとって、このときの経験は得難いものになりました。コードをレビューしてもらうことでソフトウェアのデザイン方法やイディオムなどを、自分で勉強するよりもはるかに速いスピードで学ぶことができました。コードをレビューする立場になった時も、問題に対するさまざまなアプローチがあることを知るよい機会になりました。オープンソース活動をしていない学生にとって、他人と協力してコードを書く機会はさほど多くありませんし、人が書いたコードをレビューすることもめったにないでしょう。GSoC はそのような機会を与えてくれる場でもあります。

GSoC に興味はあるけれど応募を躊躇してしまうこともあるかもしれません。私自身がそうであったように、英語でのコミュニケーションに不安を覚えたり、達成できそうなプロジェクトアイデアを見つけられなかったり。過去のエントリ記事にある体験談(2011 年2010 年)をぜひご覧ください。過去の参加者も同じような不安を抱えていました。GSoC に参加するのに必要なのはコードを書く情熱とほんのちょっとの勇気です。

GSoC 2012 では現在、各オープンソースコニュニティがプロジェクトアイデア公開し、学生の皆さんの応募を待っている段階です。オープンソースコミュティの一覧からプロジェクトアイデアを探してみてください。学生の応募締め切りは 4/6 19:00 (UTC)です。みなさまの応募をお待ちしています。



オープンソースソフトのコードを書きたいけれどきっかけがない、そんな学生の皆さまに朗報です。

Google Summer of Code (以下 GSoC)は学生の皆さんにオープンソース開発への参加を奨励するために企画された奨学プログラムです。GSoC はこれまで 4,500 人の学生の皆さんと 300 を超えるオープンソースプロジェクトを引き合わせ、何百万行ものコードを生み出してきました。世界中の応募者から選抜された学生には 3 か月間のコーディングプロジェクトに集中することを可能にする 5,000 ドルの給付金が支払われます。プログラムはすべてオンラインで行われ、これまでに 100 以上の国から学生や学生の面倒をみるメンターの方々が参加しています。さらに、Google Open Source Blog で紹介されているように、2011 年は 175 のプロジェクトに加え採択の枠を 150 枠増やしました。

今回、GSoC 経験者で Google 東京 R&D センターで働いているソフトウェアエンジニア 4 人に話を聞きました。

Q. 最初に、Google での現在の仕事について、簡単に紹介をお願いします。

鵜飼 文敏
2006 年 - 2009 年 FSIJ でメンター組織として GSoC 参加
2006 年 Google 入社、現在 Special Project チームで Chrome などのビルド環境の改善にとりくむ

向井 淳
2006 年 GSoC, haskell.org 参加
2007 年 Google 入社、現在 Google 日本語入力チームで Google Transliteration サービスなどを開発している

花岡 俊行
2006 年 GSoC, FSIJ 参加プロジェクトはオープンソース日本語変換ソフトウェア Anthy への統計的言語モデル導入のための下地づくり
2009 年 Google 入社、現在 Google 日本語入力チームで変換クオリティの改善、自動テストツールの開発にとりくむ

服部 慶士
2008 年 GSoC, WebKit 参加プロジェクトは Web Inspector の機能強化、Firebug API の実装
2011 年 Google 入社、現在入社 2 日目。Chrome チームで HTML5 Forms に取り組む予定


※写真右から、鵜飼 文敏 、向井 淳、花岡 俊行、服部 慶士


Q. 学生時代にオープンソースに関わるようになったきっかけは何でしたか?

花岡: 当時サークルの先輩で今は Google のエンジニアの T さんに誘われました。
向井: 僕は Linux を使っていて、プロダクトの文句をブログで書いたら作者から連絡があったんです。オープンソース系のものはコメント機能やメーリングリストがあることが多いので、意見交換から関わりをもつことができますね。
服部: GSoC がオープンソースのデビューでした。

Q. Google Summer of Code に応募してみようと思った理由は?

向井: 好きな開発ができて、さらにお金がもらえるからです。(笑)
花岡: 興味があるプロジェクトがあったのと、メンターの指導のもとで実際の開発に関われることに惹かれました。
服部: 正直、T シャツが欲しかったから。だめでしょうか。。(良いと思います)

Q. プロジェクトは具体的にどのように進めるのでしょうか。メンターとはどのような関係ですか?

鵜飼: 進め方は携わるプロジェクトの内容と、その組織との物理的な距離や時差によって個人差はありますが、基本の作業はオンラインで行えるので、ネットにさえアクセスできればどこからでも参加可能です。
花岡: そうですね。僕は当時京都にいたんですが、メンターがいる組織が東京にあって、打ち合わせ、中間発表と最終発表を東京で行いました。(※) メンターも日本人でしたし、日常のやりとりや発表はすべて日本語でした。
向井: 僕は反対に一度もメンターと会うことはありませんでした。英語のメールやチャットでやりとりをして、また、進捗についてブログを書くようにしていました。ライブラリーを作る仕事だったので、メンター以外の人からもいろんなメールが飛んできたのを覚えています。
服部: 院試などと重なって大変な時期もありましたが、プロジェクトを終わらせてから院試の勉強をしました。ニューヨークにいるメンターとは、IRC上で連絡を取りながら進めていました。あの時差は学生だったからこそ克服できたのかもしれません。

※開発や発表に掛かる移動などは GSoC の規定外で行われます。詳しくは FAQ をご覧ください。

Q. 振り返って、どういう点が有益でしたか?

花岡: まず、知り合いが増えました。先日、自然言語処理の学会へ行った際に GSoC がきっかけで出会った人たちに再会しました。Google 日本語入力の開発に携わることになったのも、GSoC があったからだと思います。
向井: 技術力が身につくのはもちろんですが、例えば、英語のメーリングリスト上で行われるディスカッションの進め方など、大学の研究所ではあまり得られない知識や経験が身につきます。
服部: 僕は専攻がハードウェアだったんですが、GSoC でソフトウェアの開発に直接携われて、そこからいろいろあって Google に入社できたんだと思います。
全員: おおー。

Q. 応募にあたっての準備や心構えなど、学生にアドバイスがあればぜひ教えてください。

鵜飼: まず、やってみたいプロジェクトを選ぶこと、わからないことがあればメンターにどんどん聞くことです。むしろ、いままで開発をやったことがないけれど、やってみたい人を後押しするための仕組みなので、背伸びをするくらいが良いんです。
花岡: そう。「ちょっとわからないけど、やってみたい」がちょうど良いと思います。
向井: 提案書作成の際に自己アピールを心がけることも重要だと思います。(※) なぜ興味を持ったのか、メンターも学生さんに興味がありますし。

GSoC Student Guide には提案書のサンプルもあるのでぜひご活用ください。

Q. 採択される秘訣、その他裏話があれば教えてください。

鵜飼: 多くの場合、応募をする前にメンターの人たちにコンタクトを取ることが可能なので、質問をしたり、事前に情報収集をすることがおすすめです。
向井: その組織のメーリングリスト上のディスカッションを見て雰囲気をつかむこともできますね。
服部: 僕は提案書の作成や実際の開発より、振込先登録などの手続きに手こずりましたが。
向井、花岡: 同じく。

Q. ありがとうございました。最後に、給付金は何に使いましたか?

花岡: 普通に貯金しました。
向井: 僕も貯金した気がします。
服部: 開発をさらに快適に進められるよう(?)人間工学に基づいたデスクチェアーの購入にあてました。(笑)

参考になりましたでしょうか。

Google は 2011 年 3 月 28 日から 4 月 8 日(金)19:00 UTC まで学生の皆さんからの応募を受付けています。申込み方法や多くの学生に最も重要な T シャツに関する情報など、参加のための詳しい条件は次のサイト(英語)をご覧ください。

http://socghop.appspot.com

日本語で GSoC 関係者や経験者に質問したい方はぜひ GSoC メーリングリスト (日本語) もご利用ください。

皆さまからのご応募お待ちしております!

参考

Google Japan 公式ブログ上で過去に掲載された GSoC 関連記事
2010年  http://googlejapan.blogspot.com/2010/04/google-summer-of-code.html
2009年  http://googlejapan.blogspot.com/2009/03/google-summer-of-code-2009.html
2008年  http://googlejapan.blogspot.com/2008/03/google-summer-of-code-2008_9888.html

Google エンジニア インタビューシリーズ 第 1 弾: 鵜飼文敏
2007年  http://googlejapan.blogspot.com/2007/06/google-1.html


[本記事は、Google のオープンソースプロジェクトやプログラムに関するブログ 「OpenSource at Google」 にオープンソースチームの Ellen Ko が投稿した「Now on YouTube: googleOSPO」というポストの一部を翻訳したものです。-山崎]




また、学生の皆さん向けには、「student programs channel」 というチャンネルを既に用意しており、Google Summer of Code のビデオ、プレゼン資料などをご覧いただけます。こちらもあわせてご覧ください。