Javaルールブック 〜読みやすく効率的なコードの原則

Javaルールブック 〜読みやすく効率的なコードの原則 大谷 晋平、 米林 正明、 片山 暁雄、 横田 健彦 @shot6 さんの名前が出ていたので。入門書を読み終わり、言語仕様を一通り理解した上で、Javaで実際にコードを書くときの注意事項が丹念にまとめてある。…

S4

S4

S4というYahooが開発したシステムがある。これはいわゆるストリームコンピューティングのための枠組み。データは連続したストリームとして外部から供給され、それに対する演算を行うというもの。S4はこの処理を分散環境、つまり複数の計算ノードで並列に実行…

Google App Engine 1.4.3

安定してバージョンアップを続けるApp Engine. 1.4系も4つめとなる1.4.3がでた。今回もいくつか面白そうなものが。 Prospective Search Python版のみ。簡単なストリームコンピューティングができる。通常のデータストアに対する検索は、データが蓄積されてい…

Apache Maven 2.0入門

Apache Maven 2.0入門 Java・オープンソース・ビルドツール 野瀬 直樹, 横田 健彦 、 技術評論社 JavaのビルドツールMavenの本。随分前に買ったんだけど、ちゃんと読んでなかった。何となく使っていて、ちゃんと理解できていなかった重要なコンセプトを、い…

Amazon VPC Dedicated Instances

先日のVPCの改良にさらにDedicated Instancesというものが追加された。ただし、US East と EUだけ。 なんなのか そのユーザ専用のハードウェア上で動くインスタンス、ということ。通常のAmazon EC2のインスタンスは、他の複数のユーザと一つのハードウェアを…

Akka Remote Typed Actor

Akka はPOJOをActorとして扱うことができる。要するに普通のRMIと同じだが。。。 サーバ側 trait を定義しておいて、それを実装したImplを定義する。 import akka.actor.Actor import akka.actor.Actor._ import akka.actor.TypedActor import akka.actor.Ac…

Hadoop本2冊

いまさらといわれそうだが、Hadoop本2冊。 Hadoop by Tom White, オライリージャパン Hadoopはかなり複雑なシステムだが、それを逐一丁寧に解説している。すごい情報量。Hadoop 本体だけでなく周辺技術となる、PigやHBase、ZooKeeperなども解説している。こ…

Amazon RDS

RDSについてちょっと調べ直してみたのでメモ。 特徴 RDSは、MySQLを提供してくれるAmazon Web Servicesのサービス。自前でやるのにくらべて何がうれしいかというと、設定しなくてすむ、バックアップを取ってくれる、MySQL, OSのバージョンアップ、パッチ当て…

Akka

AkkaというJava/Scala向けのライブラリがある。Javaで書くと記述量的にかなり厳しいので、実質Scala向けと思っていいだろう。 いろいろな機能があるらしいのだけど、一番喧伝されているのはActorライブラリ。Actorというのは1970年代に提唱された計算モデル…

Amazon VPC 強化

Amazon VPCが大幅に強化されたらしい。こちらがもとのブログ。 Amazon Virtual Private Cloud とは VPC - Virtual Private Cloud とは、クラウドをプライベートなデータセンターの一部としてきりだして利用する技術。従来は、EC2の一部に対してVPNを用いて接…

ZooKeeperを使ってみる(2)

ノード作成と読み出しにどのくらいコストがかかるか見てみよう。とりあえず、ローカルで。あんまり意味ないけど、上限値はわかるだろう。 ノードの作成 こんな感じで、1000個作ってみる。 byte [] b = args[2].getBytes(); long start = System.currentTimeM…

ZooKeeper を使ってみる(1)

Hadoopのサブプロジェクトの一つにZooKeeperというのがある。分散システムを作るためのビルディングブロックとして非常に重要になってきそうなので、ちょっと調べて見ようと思う。ストリームコンピューティングシステムのS4でも使われているそうだ。どう使わ…

AWS Region in Tokyo

とうとう来た。Amazonクラウドが東京に。ブログによると、EC2, S3, SimpleDB, RDS, SQS, SNS, Route53, Cloud Front を含むかなりフルセットの模様。Elastic MapReduceはない。ちょっと残念。Cluster Compute, Cluster GPUもないなあ。そのうち追加される、…

Excelプロトタイピング ―表計算ソフトで共有するデザインコンセプト・設計・アイデア

Nevin Berger, Michael Arent, Jonathan Arnowitz, Fred Sampson Excelほど「創造的」な使われ方をしているソフトも珍しい。あるときもらったExcelファイルには、複数のファイルがただ貼り込まれているだけだった。つまり、アーカイバの代わりに使われていた…

Amazon Simple Email Service

またでた、Amazon の新サービス。これは、バルクでメイルを送信する機能。いままでなかっけ?という気もするが無かったようだ。Simple Notification Serviceでメイルを送ることはできたはずだけど、これは大量にメイルを送ることに特化している。 そんなこと…

クラウド誕生 セールスフォース・ドットコム物語―

Marc Benioff クラウドの最古参業者であるセールスフォースの創業社長Marc Benioffによる111のアドバイス。技術書を期待してたんだけど、バリバリのビジネス書だった。。。まあ、縦書きだし、ダイアモンド社だし、技術的な内容を求める方がおかしいのだけど…

AWS Elastic Beanstalk

Amazon Web Servicesにまた新しいサービスが。 Elastic Beanstalkは、JavaのWeb Serviceのコンテナを提供してくれるサービス。Beanstalkは「豆の木」。BeanがJavaを指すんだろう。 なにができるか 要するに、サーブレットコンテナTomcatが、ロードバランサの…

High replication option for App Engine

ずいぶんさぼってしまって、1.4.1もリリースされるというのにちゃんとフォローできていないのだけど、これはちょっと面白いので書いておこう。App Engineにhigh replication optionが追加された。 High Replication Option App Engineでは、通常マスタ・スレ…

Amazon S3 1ファイルの容量拡大

また、Amazonから We are excited to announce ..で始まるメイルが来た。しょっちゅう興奮してるな。今回の機能強化は、S3に納める1オブジェクト(ファイル)の上限が5G から5Tになった、とのお話。うーん。。。すごいたしかに5Gでは入りきらない場合もある…

JavaによるRESTfulシステム構

Bill Burke JAX-RSを使ったRESTfulアプリケーションの実装について書かれている。JAX-RSはアノテーションを多用した近代的なフレームワーク。なかなか使いやすそうだ。簡単にXMLとJSONを切り替えたりできるのも便利そう。クライアント側のライブラリは標準化…

jQueryによるWebサービス活用ワザ実践サンプル集

葛西 秋雄 JSONPを使ってクロスサイトでWebサービスから情報を取り出して活用するサンプル集。まあ、たしかにjQueryは使ってるけど、基本的にJSONPのために使ってるだけ。こんなに「jQuery」を大きく表紙に書いておいてそりゃないんじゃないの、と思ったり思…

Cluster GPU Instance

TOP 500というスーパーコンピュータのリストに231位で乗ったEC2のCluster Computing Instanceだが、さらにもう一手打ってきた。GPUだ。これは、おそらく、今日から米国ニューオリンズで行われる SC 10という国際会議に合わせてのアナウンスだろう。ようする…

Concurrent Cプログラミング言語―並行プログラミング入門

ナイレン・ゲハーニ, ウィリアム・D. ルーム 職場の本棚で発掘。そういえばこんなのあったなー、と。CSPベースの通信を行うCの並行拡張、という意味でGoに似ている。Goのgoroutineの代わりにプロセスという概念があり、プロセスに対して「トランザクション…

Amazon Web Serviceに無料使用分が導入

Amazon に*新規ユーザ限定で*1年間の無料使用が設定された。無料で使用できるのは以下の通り。一月あたり、 EC2 micro instance 750時間分 Elastic Load Balancer 750時間分、15GB Elastic Block Storage 10GB S3 5GB In/Out それぞれ15GBのデータ転送 Sim…

Go のチャンネルオーバヘッド

go

Goではチャンネルをいろいろな目的に使うことが推奨されている。pythonならgeneratorで書くようなこともgoroutineとチャンネルでやる。確かに書きやすくはなるのだろうけど、どの程度オーバヘッドがあるのか調べてみた。 調べること プロデューサとコンシュ…

初めてのコンピュータサイエンス

Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson 大学1年生の教科書。Pythonを教えると同時にコンピュータサイエンスの初歩、たとえばソートアルゴリズムのオーダだとか、ハッシュテーブルとか、さらにはオブジェクト指向とは、みたいなことま…

Effective Go 野良翻訳(4)

go

これでおわり。並行性、エラー、Webサーバ。 並行性 通信による共有 並行プログラミングは大きなトピックだ。スペースの関係上、Go固有の特徴的な話だけに絞る。多くの環境において並行プログラミングが大変なのは、共有される変数へのアクセスを巧妙に正し…

Effective Go 野良翻訳(3)

go

続き。これで3/4かな。初期化、メソッド、インターフェイス、埋め込み。 初期化 Goの初期化は、CやC++の初期化とそれほど違わないようにみえるが、よりパワフルである。複雑な構造体も初期化で作ることができるし、複数パッケージ間のオブジェクトの初期化順…

Effective Go 野良翻訳(2)

go

続き。関数とデータ。これで半分ぐらい。 関数 複数返り値 Go特有の機能として関数やメソッドが、複数の値を返せることが挙げられる。この機能を使うと、Cでよく出てくるカッコ悪い書き方を改善することができる。エラーステータスを(-1やEOFなどの)特殊な…

Effective Go 野良翻訳(1)

go

Effective Goが面白いので勉強のため翻訳してみる。意外に長いのでちょっとづつ。 はじめに Go は新しい言語だ。Go は既存言語からアイディアを借用しているが、変わったところもあるので、実際のGoプログラムは、Goの親戚言語で書かれたプログラムと異なる…