米Googleは1月4日(現地時間)、PythonのコードをGo言語に変換して実行するランタイム「Grumpy」を発表した。Grumpyは、同社が抱えている問題を解決するために作られたという(GitHub)。 GoogleはさまざまなサービスでPythonを用い、何百万行ものコードを実行している。例えば、youtube.comとYouTubeのAPIは主にPythonで書かれており、YouTubeのフロントエンドはCPython 2.7上で動作しているという。 しかし、CPythonの制約によって複数の処理を同時並行で行うコンカレント処理をうまく実行するには限界があり、そうした処理に優れたGo言語で実行するために開発されたのがGrumpy。Googleは、Grumpyによって既存のPythonプロジェクトをGo言語に置きかえることを目指しているという。 Grumpyは、C拡張モジュールのサ
JavaScriptコードを圧縮・最適化・難読化する「Closure Compiler」のJavaScript版をGoogleが公開。Node.jsもしくはWebブラウザ上で実行可能 JavaScriptのコードを実際のアプリケーションとしてデプロイする場合には、コード内のコメントやタブ、スペース、改行などの余計な要素を削除し、変数名を短くしたりコードの冗長性を排除するといった最適化を行うことで、ロード時間を短縮しコードを高速に実行できるようになります。また、コードの中身を簡単に読めないよう、難読化を行うことも多いでしょう。 こうしたJavaScriptコードの圧縮や最適化、そして難読化を行ってくれる代表的なツールの1つが、Googleがオープンソースで公開しているClosure Compilerです。 Closure Compilerはコードの単純な圧縮や最適化だけでなく、JavaScr
2015年12月17日、Google Chrome の JavaScript エンジン(処理系)である V8 の公式ブログにて、 JavaScript の標準的な乱数生成APIである Math.random() の背後で使われているアルゴリズムの変更がアナウンスされました。 Math.random() 関数は JavaScript を利用する際には比較的よく使われる関数ですので、親しみのある方も多いのではないかと思います。 新たなバグの発見や、従来より優秀なアルゴリズムの発見によってアルゴリズムが変更されること自体はそれほど珍しくはないものの、 技術的には枯れていると思われる Math.random() のような基本的な処理の背後のアルゴリズムが変更されたことに驚きを感じる方も少なくないかと思いますが、 それ以上に注目すべきはその変更後のアルゴリズムです。 実際に採用されたアルゴリズムの原
米Googleは9月22日、新たなロスレスデータ圧縮アルゴリズム「Brotli」を発表した。Deflateと同等の速度でより高い圧縮率を実現するという。オープンソースでコードを公開し、データフォーマットの仕様はインターネット技術タスクフォース(IETF)で公開されている。 Googleは2013年にDeflate互換の圧縮アルゴリズム「Zopfli」を発表している。このZopfliはPNGオプティマイザに統合されるなど、業界から肯定的なフィードバックを得られたという。BrotliはZopfliの利用から学んだことを取り入れつつ、Webフロント側の圧縮など新しいニーズを受けて開発したと経緯を説明している。 Brotliは汎用のロスレス圧縮アルゴリズムで、LZ77派生アルゴリズムやハフマン符号、二次コンテキストモデリングなどの技術を組み合わせているという。データフォーマットはDeflate互換
20億行のコードを保存し、毎日4万5000回のコミットを発行しているGoogleが、単一のリポジトリで全社のソースコードを管理している理由 Googleは検索サービスやGoogle Apps、Google Cloud Platformなど巨大なサービスを多数運営しています。その同社は、20億行にもおよぶソースコードの管理をサービスやプロジェクトごとに分けず、すべて単一のリポジトリで管理しているそうです。 先週9月14日にサンノゼで開催されたイベント「@Scale」で、Googleによるセッション「The Motivation for a Monolithic Codebase: Why Google Stores Billions of Lines of Code in a Single Repsitory」(単一コードベースへの取り組み:なぜGoogleは単一リポジトリに数十億行ものコー
米Googleは3月12日、プロジェクトホスティングサービス「Google Code」の閉鎖を発表した。同日より新規プロジェクトの作成ができなくなり、2016年1月に閉鎖となる。「もはや必要とされていない」と閉鎖に至る理由を説明している。 Google Codeは、Googleが2006年にスタートしたオープンソースのプロジェクトホスティングサービス。Googleによると、「当時はプロジェクトホスティングの世界は制限があった」とのことで、オープンソースコミュニティに別のオプションを提供するために開始したと経緯を説明する。 その後、2008年に「ソーシャルコーディング」をうたって登場したGitHub、GitやMercurial用のコードホスティングサービスBitbucketなどのサービスが登場し、Google Codeからの移管が相次いだ。Google自身も数千単位のプロジェクトをGitHu
プログラミング言語、「Go」の存在感が増している。Goは、2009年に米グーグルが発表し、オープンソースとして公開した言語(画面1)。動的型付け言語の高い生産性と、C/C++のような静的型付けを持つコンパイラ型言語の安全性/性能の両立を目的に開発された(関連記事:GoogleがUNIX作者らが開発した新言語「Go」をオープンソースとして公開)。 文法自体はCに似ているが、オブジェクト指向の考え方を採り入れ、ガベージコレクションの仕組みも備える。メモリーの確保や解放をプログラマーが明示的に行う必要がない。並列処理を標準でサポートしているのも特徴だ。 Go言語はグーグル自身がソフトウエア開発の一部で用いているほか、他社による採用事例も増えている。例えば米ドロップボックスは2014年7月、Go言語の採用を表明した。国内でも、はてなやメルカリ、Gunosyなどが、サービス開発の一部にGo言語を採用
Googleがディズニーの専門チャンネル「ディズニージュニア」と手を組んで、将来プログラマーが不足することが懸念されるIT業界の問題を解決しようとしているとのこと。園児向けの新たなアニメシリーズ「Miles From Tomorrowland」を通して、子供達、特に女の子達に、コンピューターサイエンスに興味を持ってもらおうというのが狙いのようだ(Slashdot、LA Times)。 同番組は今週金曜日より米国で放映されるそうで、宇宙冒険家のマイルスと、マイルスの姉であり並外れたコーディング能力を持つロレッタ、そして科学者の両親が、宇宙で冒険を繰り広げるというもの。エピソードの一つに、ロレッタがコードを使って他の惑星を探すのを助けるというものもあるそうだ。また、同番組ではGoogleのエンジニアがコンサルタントを務めるという。 GoogleのプログラムマネージャーであるJulie Ann
最近GoogleがJavaコーディング規約を公開したとニュースで知り、目を通してみたメモを書きます。 また、以前Javaのコーディング規約について調べたメモを次のURLに書きましたが、それ以降に公開されたJavaコーディング規約を探してみました。 http://www.alles.or.jp/~torutk/oojava/codingStandard/ Googleが策定・公開したJavaコーディング規約 先月、InfoQの日本語訳の記事で、Googleが最近Javaコーディング規約を公開したことを知りました。 InfoQの記事(日本語訳)GoogleのJavaコーディング規約 (Google)http://google-styleguide.googlecode.com/svn/trunk/javaguide.html さらっと目を通してみたメモを箇条書きで列挙します。 ファイルのエンコ
世界のセキュリティベンダーのブログから、サイバーセキュリティに関する最近の話題を紹介する。今回は、ちょっと変わった話題から。米グーグルのめがね型ウエアラブルコンピュータ「Google Glass」のセキュリティに関する問題である。米シマンテックがブログで提起している。 Google Glassは4月下旬に、「Glass Explorer」と呼ばれる一般ベータテスター向けにリリースされた。Glass Explorerは、ハッシュタグ「#ifihadglass」を付けた50ワード以内のエッセイを応募し、Google Glassを1500ドルで購入する権利を獲得した人々である。 Google Glassは、あらゆることができそうなデバイスという賞賛の声が聞こえる一方で、議論も呼んでいる。Google Glass購入権を得た8000人は厳しいユーザーライセンス契約を結ばなくてはならない。ライセンス
2012/09/18 米Googleは、オープンソースのコード変換ツール「J2ObjC」をリリースした。JavaのソースコードをiOSアプリ開発に使われるObjective-Cのソースコードに変換できる。 Googleのオープンソースブログによると、同ツールではJavaコードをiOSアプリケーションビルドの一部とすることができ、生成されたファイルの編集は不要。データアクセスやアプリケーションロジックといった、UI以外の部分に関するコードをJavaで記述し、それをWebアプリだけでなくAndroidアプリ、iOSアプリで共有できる。 Java 6を完全サポートしているほか、ランタイム機能のうち、例外、内部および匿名クラス、ジェネリックタイプ、スレッド、リフレクションなど、クライアントサイドのアプリケーション開発に必要な機能の大半をサポート。JUnitテスト変換と実行にも対応し、XcodeとM
ソースコードのなかでバグが多いのは、より高頻度に、かつ最近になって集中的に直している部分。これが、グーグルで採用された「バグ予測アルゴリズム」であることを、先月の記事「グーグルはコードの品質向上のため「バグ予測アルゴリズム」を採用している」で紹介しました。 そのバグ予測アルゴリズムを実装したツール「bugspots」がオープンソースとして公開されています。 gitのレポジトリを分析 bugspotsはRubyで記述されており、gitのレポジトリから履歴を読み込んで分析し、どのモジュールにバグが含まれている確率が高いかを示してくれます。 以下のようにインストールして実行(説明ページから引用)。 $> gem install bugspots $> git bugspots /path/to/repo $> git bugspots . # (in current git directory)
DartはWebアプリケーションの開発を想定したプログラミング言語。実行方法として、JavaScriptに変換してWebブラウザ上で実行する方法と、専用の仮想マシンを搭載したWebブラウザで実行する方法が予定されています。グーグルはChromeにDartの仮想マシンを搭載する計画を検討中であることを明らかにしています。 Dartの設計方針は次のように説明されています。 Create a structured yet flexible language for web programming. Webプログラミングのための、構造的だが柔軟性のある言語を作る Make Dart feel familiar and natural to programmers and thus easy to learn. Dartを、プログラマにとって親しみのある自然で、学びやすいものとする Ensure t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く