22 captures
24 Oct 2017 - 16 Feb 2026
Jun
JUL
Aug
27
2018
2019
2020
success
fail
About this capture
COLLECTED BY
Collection:
Wikipedia Eventstream
TIMESTAMPS
The Wayback Machine - https://web.archive.org/web/20190727181510/https://developers-jp.googleblog.com/search/label/opensource
Local blog for Japanese speaking developers
Capillary プロジェクト: プッシュ通知を簡単にエンド ツー エンドで暗号化
2018年6月21日木曜日
この記事は
プライバシー エンジニア、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
Google オープンソースの新たなサイト
2017年4月10日月曜日
この記事は
R
オープンソース プログラム オフィス、Will Norris
による Google Open Source Blog の記事 "
A New Home for Google Open Source
" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Google の創業当初より、フリーウェアやオープンソース ソフトウェアは、Google の技術的、組織的な土台を形作ってきました。Linux カーネルを実行するサーバーから、社員は社内のあらゆるチームのコードにパッチを当てることができるという企業文化に至るまで、オープンソースは Google に欠かすことができない要素です。その引き替えに、Google は膨大なオープンソース コードを公開し、
Google Summer of Code
や
Google Code-in
などのイベントを開催し、
Software Freedom Conservancy
、
Apache Software Foundation
をはじめとする
多くの団体
を通してオープンソースに関するプロジェクトやコミュニティの後援を行っています。
本日(*原文公開当時)、
opensource.google.com
を公開しました。この新しいウェブサイトでは、オープンソースの利用、公開、サポートに関する情報を Google のさまざまな取り組みと合わせて確認できます。
この新しいサイトでは、オープンソースに対する深い愛に満ちた、Google による幅広い取り組みをご紹介しています。Google が展開するプログラム、支援する組織、リリースしたオープンソース プロジェクトの包括的なリストなど、皆さんの期待にお応えする情報が掲載されています。さらに、皆さんが想定していないような内容も掲載されており、Google のオープンソースに対する「取り組み」の秘密までご覧いただけます。
おもしろそうなオープンソースを探す
Google のオープンソース コードの公開に対する考え方の 1 つに、「多ければ多いほどよい」というものがあります。どのようなプロジェクトが求められているのかわからないため、Google のチームでは、できる限りコードを公開することが推奨されています。そのため、オープンソース ライセンスのもとで数千のプロジェクトが公開されています。
TensorFlow
、
Go
、
Kubernetes
といった大規模なプロジェクトから、
Light My Piano
、
Neuroglancer
、
Periph.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
コマンドライン インターフェース自動生成ライブラリ、Python Fire のご紹介
2017年3月24日金曜日
この記事は 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
iOS 向け Chrome をオープンソース化しました
2017年2月13日月曜日
この記事は 上流釣り師、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: 日本語のための自動折り返し制御ツール
2016年10月20日木曜日
Budou は、ウェブページ上で日本語で書かれた単語が途中で折り返されてしまうことを防ぐためのツールです。オープンソース プロジェクトとして、
GitHub で公開しています
。
ウェブページ上の日本語の文章は、行末に置かれると、単語の途中でも折り返されてしまうことがあります。皆さんも、以下のような文章を見たことがあるはずです。「新しい Android の世界へようこそ。」という見出しの「ようこそ」という単語が、「ようこ」と「そ」の間で折り返され、ひとまとまりの単語として認識しにくくなっています。このように、単語の途中で発生する折り返しは、文章の読みやすさを下げる一因です。
[単語の途中で折り返しが発生している例]
この問題は、日本語がラテン文字を使用する英語等の言語と違って、単語と単語の間に区切りを持たないことに起因しています。ラテン文字を使用する多くの言語では、単語と単語の間に空白による区切りがあり、単語の途中で折り返しが行われないようにブラウザのデフォルト環境で指定されているため問題は発生しませんが、日本語では、単語の途中でも関係なく折り返しが発生します。
従来も、与えられた日本語の文章に対して単語の区切りを指定し、単語の途中で折り返しを行わないように CSS で制御することでこの問題に対処できました。しかし、このような処理を行うには、単語の区切りが指定できる日本語に精通した作業者が必要でした。Google ではたくさんのウェブサイトを制作していますが、多くは英語をベースに多言語化を施し各国に提供しています。そのため、ウェブサイトを制作するエンジニアが、特定の言語を理解しなくても美しいタイポグラフィを提供できる方法が模索されてきました。
Budou は、この問題に対して自動化されたソリューションを提供するために開発されました。
Cloud Natural Language API
を使って単語の境界判別と構文解析を行い、その出力結果をもとに文節を特定します。推定された文節ごとに display: inline-block を指定した SPAN タグで囲むことで、文章の折り返し可能な位置を指定します。Budou によって折り返し可能な位置が指定された文章を HTML に変換することで、デバイスの画面幅に関わらず、最適な位置で折り返された文章を自動で表示できるようになります。以下の図では、「常に最新、最高のモバイル。Android を開発した同じチームから。」という文章がさまざまなブロック幅で表示されたときの折り返しの変化を表しています。上のブロックが Budou 適用前、下のブロックが Budou 適用後です。Budou を適用することにより、ブロック幅に関わらず適切な位置で折り返しが行われることがわかります。
[Budou 適用前と適用後の文章の折り返しの比較]
また Budou は、Python で記述されたシンプルなスクリプトなので、テンプレートエンジンのカスタムフィルタとして使うことも、
Grunt
や
Gulp
を始めとするビルド ツールのタスクとして使用することもできます。ひとつの文章を処理するたびに 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
サンタ トラッカーについてサンタのエルフからアップデート
2016年9月6日火曜日
[この記事は
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 のゲームは、
JBox2D
(
ガムボール ゲーム
)、Android ビュー階層(
メモリマッチ ゲーム
)、OpenGL と特殊なレンダリング エンジン(
ジェットパック ゲーム
)などのさまざまな技術を使って構築されています。Android TV、スマートフォン、Google Cardboard の VR 内で動作する楽しいゲーム
Pie Noon
のホリデーテーマ版も含まれています。
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
インターネット用の新しい圧縮アルゴリズム、Brotli のご紹介
2015年11月19日木曜日
[この記事は 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
においても、
LZMA
と
bzip2
より圧縮率がやや高くなっています。Brotli は、二次コンテキスト モデリングやエントロピー符号の再利用、過去データのメモリ ウィンドウの拡大、同時分布符号などにより高密度のデータ圧縮を実現しています。Zopfli と同様、新しいアルゴリズムにはスイスのパンにちなんだ名前が付けられています。Brötli とは、スイスのドイツ語で「小さいパン」を意味します。
圧縮サイズが小さければ小さいほど、スペースを有効活用でき、ページの読み込みも速くなります。近い将来主要ブラウザでこの形式がサポートされることを願っています。特にモバイル ユーザーにとっては、圧縮サイズが小さいと、データ転送の費用やバッテリー消費量が減るといったメリットがあります。
Posted by
Eiji Kitamura - Developer Relations Team
TensorFlow: Google 最新の機械学習ライブラリをオープンソース公開
2015年11月10日火曜日
[ この記事は 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
フォフォフォ!Santa Tracker がオープンソースになったんじゃ
2015年4月9日木曜日
[この記事は Software Engineer の Ankur Kotwal が Google Developers Blog に投稿した "
Ho Ho Ho! Google's Santa Tracker is now open source"
という記事を元に荒木が翻訳・加筆したものです]
季節はすっかり春ですね。クリスマスはずいぶん前のことのように感じられますが、お知らせがあります。Google サンタ トラッカーがオープンソースとして GitHub (
google/santa-tracker-web
と
google/santa-tracker-android
に公開されました。Web と Android 両方のアプリが Google の開発者向けプロダクトを使ってどのように実現されているのかご覧いただけます。
サンタ トラッカーといっても、ただ単にクリスマス イブのサンタさんのプレゼント配達状況を追跡するだけではありません。クリスマス シーズンを通して、冬をテーマにした数々のゲームで遊んだり、北極にあるサンタ村でサンタさんか配達の準備をする様子を見ることができるんですよ。
オープンソースとしてリリースしたのは以下のようなものです。
Android アプリ
Android の サンタ トラッカー アプリはひとつの APK ファイルで Ice Cream Sandwich (4.0) 以降のすべての端末をサポートしています。アプリのソースコードは
こちら
でご覧いただけます。
サンタ村
はビデオやゲームやトラッカー (地図) のランチャーになっています。横幅 1 万ピクセルにも及ぶサンタ村を実現するため、Android のリソース階層を
ちょっと変わったふうに
利用しています。これによって画面解像度ごとに別々の画像を用意する必要をなくし、APK のサイズを削減しています。
サンタ トラッカーのゲームは様々な技術を組み合わせて作られています。
Gumball
は
JBox2D
、Memory Match
は Android の View、
Jetpack
は OpenGL と特製のレンダリング エンジンを使っています。
ユーザー エンゲージメント向上のため、
App Indexing API
を使って Google 検索からサンタ トラッカーのゲームを開くことができるようにしています。
Deep Linking
を利用して実現されています。
Android Wear
サンタ トラッカーをインストールすれば、サンタさんや妖精がいつも側にいて時間を教えてくれるのです。
カスタムの文字盤を作る
のは楽しいですが、パフォーマンスやバッテリー消費に気を配って作ろうとすると
いろいろ考えなければなりません
。文字盤のソースコードは
こちら
でご覧いただけます。
サンタ トラッカーはサンタさんがプレゼント配達に出発したことを通知してくれます。通知機能も
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
Google Code サービス終了のお知らせ
2015年4月8日水曜日
[この記事は 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
Google Summer of Code 2014 が開催されます
2014年3月7日金曜日
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)
皆様の参加をお待ちしております。
オープンソースであることが Android の安全性にもたらす価値
2013年12月10日火曜日
Posted by
鈴木拓生 Developer Relations Team
[この記事は Android Security Engineer の Adrian Ludwig が Android Official Blog に投稿した記事、
The value of openness in Android securit
y を元に、翻訳しています。詳しくは元記事をご覧ください。-鈴木]
カスタマイズや選択肢をもたらす 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 スマートフォンやタブレットの安全性の向上に役立っています。
Google Summer of Code 2012 に参加する学生の皆様へ
2012年5月7日月曜日
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 の
プログラムサイト
をご覧ください。
今回、参加される学生の皆さん、おめでとうございます。刺激的で実りの多いプログラムとなることを楽しみにしています。
git.kernel.org のミラーリングサービスについて
2012年4月27日金曜日
Posted by 山崎富美 / Developer Relations Team
[本記事は、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 データセンターから提供されます。
学生の皆さん、オープンソースソフトウェアに貢献してみませんか?
2012年4月2日月曜日
Posted by 山崎富美 / Developer Relations Team
[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 のおしらせ
2011年4月5日火曜日
Posted by 山崎富美 / Developer Relations Team
オープンソースソフトのコードを書きたいけれどきっかけがない、そんな学生の皆さまに朗報です。
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 とオープンソースの情報は「googleOSPO」で
2011年1月6日木曜日
Posted by 山崎富美 / Developer Relations Team
[本記事は、Google のオープンソースプロジェクトやプログラムに関するブログ 「
OpenSource at Google
」 にオープンソースチームの Ellen Ko が投稿した「
Now on YouTube: googleOSPO
」というポストの一部を翻訳したものです。-山崎]
このたび、
googleOSPO
という新しい YouTube チャンネルがローンチしました。googleOSPO は
Google とオープンソース
に関連するビデオをまとめたチャンネルです。オープンソースプロジェクトに特化した
Google Tech Talk
や、オープンソース系のカンファレンスでの講演、また、Jeremy Allison の
Geek Time
といったオリジナルコンテンツもご覧いただけます。
また、学生の皆さん向けには、「
student programs channel」
というチャンネルを既に用意しており、
Google Summer of Code
のビデオ、プレゼン資料などをご覧いただけます。こちらもあわせてご覧ください。
ラベル
.app
1
.dev
1
#DevFest16
1
#DevFest17
1
#DevFest18
1
#hack4jp
3
A/B Testing
1
A4A
4
Actions on Google
15
Activation Atlas
1
Addy Osmani
1
ADK
2
AdMob
31
Ads
39
Ads API
32
AdWords API
10
Agency
1
AI
10
AIY
3
AIY Vision Kit
2
ALPN
1
AMP
76
AMP Cache
5
AMP for Email
2
AMP Story
2
amp-bind
1
AMPHTML Ads
1
Analytics
9
Andorid
12
Android
334
Android Auto
1
Android Design Support Library
1
Android Developer Story
4
Android Developers
4
Android Enterprise
5
Android Go
1
Android Jetpack
3
Android N
18
Android O
13
Android P
7
Android Pay
1
Android Q
8
Android Security Year in Review
1
Android Studio
37
Android Support Library
5
Android Things
15
Android TV
10
Android Vitals
3
Android Wear
29
androidmarket
3
AndroidX
2
Angular
2
Angular 2
2
AngularJS
2
API
25
APIExpert
45
apk
2
app
3
App Action
1
app engine
23
App Indexing
7
App Invites
6
App Maker
2
AppCompat
2
Apps Script
11
aprilfool
4
AR
2
Architecture Components
6
ARCore
1
ArtTech
1
Associate Android Developer Certificate
1
Audio
7
Auth Code
1
Authentication
8
AuthSub
2
AutoML
1
Autotrack
2
award
1
Awareness API
1
Beacons
6
Better Ads Standards
1
BigQuery
9
Billing
1
BLE
4
Blink
1
Blockly
1
blogger
1
BodyPix
1
Brillo
1
Brotli
2
Budou
1
Calendar
3
Cardboard
4
Career
1
Case Study
1
Certificate
2
chrome
115
Chrome Custom Tab
2
Chrome Dev Summit
2
chrome extension
9
Chrome for Android
2
Chrome for iOS
2
Chrome OS
5
Chrome Tech Talk Night
4
Chromebook
3
Chromecast
7
chromewebstore
7
Chromium
5
CLI
1
ClientLogin
3
Closure Compiler
1
Cloud
21
Cloud Firestore
4
Cloud Functions
9
Cloud IoT Device SDK
1
Cloud Next
8
Cloud OnBoard
3
Cloud PubSub
1
Cloud Storage
1
Cloud Study Jams
3
Cloud Test Lab
2
Cloudflare
1
CNN
1
Coalition for Better Ads
1
CocoaPods
1
codejam
5
codelab
4
Colaboratory
1
Community
1
compute engine
3
Context
1
Cookie
1
Coral
2
Crash Reporting
2
Crashlytics
2
Dart
2
DataCenter
1
Daydream
4
Deep Learning
4
Demo Party
1
Design Sprint
3
DesignBytes
1
DevArt
3
DevBytes
6
Developer
14
Developer Console
4
Developer Preview
6
Developer Relations
2
DevFest
7
DevFestX
3
DevOps
1
devtools
4
Dialogflow
1
DirectShare
1
Domain
1
Doodle
1
DoubleClick
4
Doze モード
1
drive
2
Dynamic Links
3
EarlGrey
1
Easter Egg
1
ECMAScript 2015
1
Eddystone
4
egypt
1
Encryption
1
English
2
ES2015
1
ES2016
1
ES6
2
ES7
1
Featured
2
Firebase
115
Firebase Admin SDK
6
Firebase Analytics
10
Firebase Auth
4
Firebase Cloud Messaging
10
Firebase Crashlytics
2
Firebase Database
5
Firebase Libraries
1
Firebase Notifications
1
Firebase Performance
3
Firebase Remote Config
5
Flash
1
Flutter
6
font
3
fraud
1
G Suite
18
game
38
Game Developers Conference 2018
1
Game Developers Conference 2019
1
Gboard
1
GCP
9
GCPUG
1
GDD11JP
56
GDD2010JP
23
GDE
2
GDG
15
GDG Cloud
1
Geo
51
Gingerbread
1
GLIDE
5
Gmail
4
Gmail API
2
Go
1
golang
5
goo.gl
1
Google
5
Google Analytics
3
Google API
1
Google Apps
14
Google Apps Script
4
Google Assistant
8
Google Assistant SDK
1
Google Cast
8
Google Cloud
24
Google Cloud INSIDE Games & Apps
6
Google Cloud Messaging
11
Google Cloud Platform
11
Google Code-in
1
Google Developer Experts
2
Google Developers Academy
1
Google Developers live
5
Google Developers Summit
2
Google Drive
6
Google Earth
1
Google Fit
2
Google for Mobile
2
Google for Work
1
Google I/O
17
Google Impact Challenge
1
Google Maps
55
Google Maps Platform
4
Google Pay
1
Google Photo
1
Google Play
108
Google Play Console
8
Google Play Game Services
9
Google Play Instant
1
Google Play Services
22
Google Plus
14
Google Search
7
Google Sheets API
3
Google Sign-In
12
Google Slides API
5
Google Summer of Code
1
Google Tag Manager
1
Google Trust Services
1
Google マップ
4
Google+
2
Googleapps
10
GoogleGames
1
GoogleI/O
28
GoogleLabs
1
GooglePlay
1
GoogleTV
1
Gradle
1
gRPC
2
GTUG
5
GWT
2
hack4jp
2
hackathon
7
Hangouts Chat
2
Hosting
3
HTML5
17
HTML5Rocks
1
HTTP/2
5
HTTPS
11
I/O Extended
4
ID Token
1
Identity
14
Identity Toolkit
1
Ignite
4
IME
11
Indie Games Festival 2018
2
Indie Games Festival 2019
12
Inevitable ja Night
21
Instagram
1
Instant Apps
6
intern
2
Invites
1
IO19
3
iOS
20
IoT
6
IPv6
1
Issue Tracker
2
Japanese Input
1
JavaScript
7
Jetpack
1
K-12
1
Key Transparency
1
Knowledge Graph
1
Kotlin
8
l10n
8
LaunchPad
1
Lighthouse
1
LINE
1
Local AI
1
Lollipop
10
Machine Learning
20
Maker Faire Tokyo
1
Marshmallow
10
Material
1
Material Design
30
MDL
1
MDN
1
MIDI
2
ML Kit
10
Mobile
13
Mobile Bootcamp
4
Mobile Sites certification
1
Mobile Vision
4
mod_pagespeed
1
monetize
3
Mozc
15
Music
1
NativeDriver
2
NativeScript
1
NBU
1
ndk
3
Nearby
5
Next Extended
1
Next Tokyo
3
Nexus
2
Nexus S
1
NFC
1
Node.js
3
Noto CJK
1
NPAPI
2
NPN
1
oauth
11
OpenAI
1
OpenGL
4
OpenID
3
OpenID Connect
4
OpenSocial
1
opensource
17
Optimization
1
Payment
4
PEM
33
People API
2
Performance
12
Performance budget
1
PersonFinder
1
Physical Web
3
Pi
1
Place Picker
1
Play Billing Library
1
Player Analytics
4
Playtime 2017
1
Policy
4
Polymer
7
privacy
2
Progressive Web Apps
13
project hosting
1
Promise
1
Promo code
1
Protocol Buffers
1
PRPL
1
publicdata
1
Push API
1
Push Notification
3
PWA
2
Python
2
QUIC
1
QWIKLABS
3
RAIL
1
React
1
React Native
2
Realtime Database
9
Recap Live Japan 2019
3
reCaptcha
1
Redux
1
Remote Config
3
Remote Display API
1
Resonance Audio
1
Rewarded Video Ads
2
Runtime Permission
1
Safe Browsing
1
Sample Code
2
Santa Tracker
1
schema.org
1
secur
1
security
49
Service Worker
4
SHA-1
1
sketchup
1
SmartLock for Passwords
4
social
4
Social Good
1
Social Media
1
SPDY
3
speak2tweet
1
Spreadsheet
3
startup
5
Storage
2
story
1
streetview
3
Study Jams
5
Swift
2
SwiftShader
1
Symantec
1
Task
4
Team Drive
1
techtalk
12
TensorFlow
26
TensorFlow Federated
1
TensorFlow Lite
4
TensorFlow Object Detection API
1
TensorFlow Probability
2
TensorFlow.js
1
test
4
Test Lab
6
TFX
1
ToS
1
Transliteration
1
Twitter
1
Udacity
20
Unity
3
UX
4
V8
2
VP9
1
VR
11
Vulkan
2
Watch Face
2
wave
2
Wear OS
2
Weave
1
Web
21
Web Animations
1
Web Components
6
Web Manifest
1
Web Packaging
3
WebAssembly
4
WebGL
1
WebMusic
5
WebView
1
Women Techmakers Scholars Program
1
WTM
5
Xcode
1
YouTube
17
YouTube API
1
インタビュー
1
コードサンプル
1
プライバシー
1
言論の自由
1
節電
3
東日本大震災
9
日本語入力
41
ブログ アーカイブ
2019
7
6
5
4
3
2
1
2018
12
11
10
9
8
7
6
5
4
3
2
1
2017
12
11
10
9
8
7
6
5
4
3
2
1
2016
12
11
10
9
8
7
6
5
4
3
2
1
2015
12
11
10
9
8
7
6
5
4
3
2
2014
12
11
10
9
8
7
6
5
4
3
2
1
2013
12
11
10
9
8
7
6
5
4
3
2
1
2012
12
11
10
9
8
7
6
5
4
3
2
1
2011
12
11
10
9
8
7
6
5
4
3
2
1
2010
12
11
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"