InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architect. View an example
先々月、先月とNIO2の新しいファイルシステムについて解説してきました。今月は、NIO2の残りの機能である非同期I/Oとソケットチャネルでのマルチキャストについて解説していきます。 なお、ここではNIO2の機能を中心に解説するため、バッファやチャネルなどNIOの機能に関しては特に解説を加えておりません。NIOについては、本連載では2006年の4月から5月にかけて「New I/Oで高速な入出力」と題して解説していますので、そちらをご参照ください。 通常のI/O 一般的に入出力処理を行う場合、処理が完了するまで制御が戻ってくることはありません。たとえば、インプットストリームでstream.read(bytes);と記述した場合、読み込みが終了するまでreadメソッドが戻ってくることはありません(例外が発生することはあります)。つまり、処理がブロックされるわけです。 入出力が高速に行われるのであ
オライリーが主催するイベント「Open Source Convention 2011」が7月25日から米国ポートランドで開催されました。 その中で、TwitterがなぜRuby on RailsベースのシステムをJavaVMベースへ移行しようとしているのかを解説したセッション「Twitter: From Ruby on Rails to the JVM」が行われ、ビデオが公開されています。 13分程度の短いセッションのポイントをまとめて紹介します。 世界最大のRuby on RailsによるWebサイトをJavaVMへ移行 Twitterのアプリケーションサービスグループ、Raffi Krikorian氏 Twitterは世界中からのツイートをリアルタイムで扱っている。リアルタイム処理が、ツイッターにおけるもっとも難しい処理だ。 Twitterは、おそらく世界最大のRuby on Rail
【祝】:Java SE 7 正式リリース 2011年7月29日 at 2:00 午前 3件のコメント 本日(2011年07月28日(日本時間29日 日本でもぎりぎり28日だったようです。))Java SE 7 が正式にリリースされました。5年ぶりのリリースとなる Java SE 7 ですが、Java SE 7 は進化として位置づけられているバージョンになります。ここで言う進化とは言語仕様に対する大幅な変更はなく、開発生産性の向上やライブラリのアップデート等が多く、今まで Java SE 5, 6 等で開発をしてきて頂いた Java 開発者は比較的かんてたんに移行が可能になっています。Project Coin, NIO.2 等により可読性、開発生産性が向上した最新の Java SE を入手頂き是非開発現場でご使用ください。 サポート環境はこちら Java SE 7に関するドキュメント チュー
HelloWorldやっても面白くねーんだよ!! 皆さんこんにちは。 Google App Engine (GAE)でJavaがサポートされ、 PythonはスルーしたけどJavaならやりたい!でもJava未経験! GAE/Jに手を出してみたけど、結局hello, world!のサンプルアプリを公開したまま 放置した状態になっていませんか? 僕はそうです! Java使えたら楽しいだろうなー Java覚えて仕事の案件こなしたいなー Java使えたらオブジェクト指向がもっとわかるだろうなー リア充へのあこがれ と、常々思っていつつも、Javaの最初の面倒臭さの前にいつもやる気喪失するんですよね。 HelloWorldひとつやるのにpublic static void main()書くなんて面倒臭すぎです コンパイルなんて面倒でやってられません eclipseの使い方憶えるのが面倒だし ecli
はい、またまた遊んでみるシリーズです。 触るだけ触って深く掘り下げてないのは時間がないのと飽きっぽい性格だからですがまぁ気にしてません。 ってことで!! 「Stax Networks」というPaaS(サービスとしてのプラットフォーム)の話です。 PaaSとは、プラットフォーム一式をサービスとして提供するビジネスモデルのこと。 クラウドコンピューティングとしてプラットフォーム(サーバ環境やDatabaseなど)をネットワーク経由で利用者に提供するサービスをいいますが、要はAmazon S3やGoogle App Engineみたいなサービスのことです。 Java対応のGoogle App Engineとも言うべき「Stax Networks」ローンチ PaaSとは (Platform as a Service) 用語解説 | Impress Innovation Lab. Jungle Ja
JavaとかJRubyはインストールしておいてください。 やり方は省略です。 rawrをインストールします 私はMatzRubyがメインなので、jruby -Sでgemやrakeを操作します。 gemとかrakeとか打つと、MatzRubyが起動してしまいますので。 jruby -S gem install rawrrawr-1.1.2のgemパッケージにはjruby_fetch.rbの入れ忘れがあるので、 rawr-1.1.2/libのディレクトリにwgetで入れてしまいます。 http://gitorious.org/projects/rawr からとって来てください。 wget http://gitorious.org/projects/ 途中省略 /lib/jruby_fetch.rb 実行するスクリプトを用意します rubyの実行ファイルはmain.rbという名前にし、 lib/
ソフトウェアはいろいろな作業の効率化に貢献してきた。プログラミングという作業も例外ではない。現代の高度なIDE(統合開発環境)はプログラマが単純でつまらない作業に時間を割かずに済むようにさまざまな機能を提供してくれる。 もうテキストエディタ+コマンドラインでのコンパイルなんて環境には戻れない。以下は自分が仕事でメインに使っているEclipseというIDEを使い続ける理由。 (追記)私は仕事では主にJavaの開発をやっている。C/C++/C#の開発では以下に挙げるメリットを享受できない部分があることを断っておく。 1. コードの自動補完 標準API+フレームワークのAPIで万単位のクラスが存在するので、暗記は無理。クラスに存在するメソッド名、フィールド名までの暗記はもっと無理。よく使う範囲なら暗記しているけど、typo -> コンパイルエラー -> 探して修正 の手間より、自動補完が断然効率
1分でWebアプリを作れるEclipseプラグイン「Dolteng」:Java初心者が超俊敏にWebアプリを作る方法(1)(1/3 ページ) Javaの業務用Webアプリ開発に必要なもの 読者の皆さんは、Javaで業務用のWebアプリケーションを開発するのに必要なものとして何を思い浮かべるでしょうか。統合開発環境? サーブレット/JSP? アプリケーションサーバ? Struts? DB接続のO/Rマッピング? DIコンテナ? 技術的には、これらも確かに必要です。また、アプリケーションが“安全”に“確実”に動くことが業務で使うときには求められます。 上記は当然のものとして、“仕事”として売り上げを上げるためにアプリケーション開発を行う場合に一番求められるのは、アプリケーションを一から開発する際や、デバッグ/修正する際の“速さ”や“俊敏さ”ではないでしょうか。 たとえJava言語の初心者、また
1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
JSON-libの概要 JSON-libは、JavaオブジェクトからJSON形式の文字列を生成したり、その逆の処理を行うJavaライブラリです。Ajaxアプリケーションにおいて、Webブラウザで動作しているJavaScriptのプログラムとサーバ側のプログラムとの間でオブジェクトをやり取りする際に利用できます。JAR形式のファイルをSourceForgeからダウンロード可能です。ライセンスはThe Apache Software License, Version 2.0です。 JDK1.3用(json-lib-1.1-jdk13.jar)とJDK1.5用(json-lib-1.1-jdk15.jar)がありますので、使用するJDKのバージョンに合ったものをダウンロードし、ファイルのパスをクラスパス(CLASSPATH)に設定してください。ここではJDK1.5用による実行例を紹介します。 実
Javaのオンライン学習するサイトJavalaが公開されている。JavalaはWebブラウザでJavaを学習したり、コードの実行結果を確認したりするための環境。タンペレ工科大学で開発されたもので、Java言語の学習を目的としている。リードデベロッパはTimo Lehtonen氏。使用に制限はなく、自由に利用できるとされている。用意されている言語は英語とフィンランド語。 図.1 Javala – Javaラーニング環境 基本的なトピックとしてはJava言語の基礎(基本型、演算子、制御構文、ループ構文、配列)、文字列(編集、比較、結合、トークン化)、オブジェクト(ネーミングとパッケージ、属性、演算、コンストラクタ、リファレンス、生成、削除)、クラス(クラスメソッド、クラス変数、定数、アクセス指定子)、継承(抽象クラス、サブクラス、動的束縛、型変換、比較、インタフェース)、例外(処理、try c
「Javaでもスクリプト言語に負けない生産性が出せる」---オープンソースのJ2EEフレームワークSeasar2のチーフコミッタひがやすを氏はこう主張する。ひが氏はSeasar2でRuby on Railsのようにアジャイル(俊敏)な開発を行うための機能を開発,公開した。Chura(ちゅら)と呼ぶツールである。 Churaは,プログラムを書くことなく,データベースの検索・更新を行うWebアプリケーションを自動生成できる(ひが氏が公開したデモ「3分間で作るWebアプリケーション」)。Ruby on Railsの生産性の高さを広く印象付けたのは10分で作るRailsアプリなどのアプリケーション作成デモだったが,ひが氏が公開したのはそのSeaser2版と言える。Railsと同様,scaffold(足場)と呼ばれるアプリケーションのベースを自動生成するデモだ。 ChuraはORマッピング・ツールの
Javaプログラミングにおいて、クラスの独立性を高め、再利用性の高さ、実装の入れ替えの容易さ、アスペクトの自動的な適用、ホットデプロイなどサーバデベロップメントに欠かせない機能を実現するための基盤技術のひとつにDI(Dependency Injection)がある。DIはインタフェースと実装の完全な分離を目指し、主にDIコンテナと呼ばれる専用の実行環境/フレームワークを通して実現される。 DIコンテナの実装はいくつかあるが、ここでは11日に最新版の2.4.0(2.4.1)がリリースされたSeasar 2.4(S2Container 2.4)を取り上げて紹介したい。Seasar 2.4はThe Seasar Foundationによって開発がおこなわれているプロダクトで、周辺プロダクトの充実や日本語ドキュメントの充実など、国内におけるエンタープライズ向けWebアプリケーションシステム開発用の
文:Martin LaMonica(CNET News.com) 翻訳校正:藤原聡美、高森郁哉 2006-11-13 21:27 Sun Microsystemsは、Linuxに配慮したライセンスの下でJavaソースコードを公開する準備を整えた。これは、長年にわたる要望と論議を受けての動きだ。 Sunは米国時間11月13日、Linuxなど多くのオープンソース製品の管理に用いられるGeneral Public Licenseバージョン2(GPLv2)の下で、プログラミングソフトウェアのコードを公開する計画だ。Sunが運営するウェブサイトJava.netで、携帯電話向けソフトウェア「Java Platform Micro Edition」(Java ME)とデスクトップアプリケーション向けソフトウェア「Java Platform Standard Edition」(Java SE)にアクセスで
ブログシステムはいくつかあるが、ここではJavaで作成されたブログシステムのなかでも、とくにデプロイが簡単な「Pebble」を紹介したい。Pebbleは先日新しいバージョンである2.0.0がリリースされたばかり。5分もかからず、すぐに使えるため、これを機会に一度使ってみてほしい。 PebbleはJavaで開発されたブログシステム。軽量で高速、高機能という特徴がある。最新版は1日(米国時間)に公開されたPebble 2.0.0。The BSD Licenseのもとで公開されているオープンソースソフトウェアで、特にデプロイが簡単という特徴を備えている。 以前のバージョンである1.9からの主な変更点は次のとおり。 新しいテーマの導入(スライドバーにカテゴリリスト、月次カレンダを追加) ブログエントリ、スタティックページ、コメントに対してリッチテキストエディタであるFCKeditorを統合 レスポ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く