タグ

Javaに関するagwのブックマーク (234)

  • 「AndroidにJavaコードを流用か?」の報道が出るも専門家は一蹴、しかしFUDは広まる

    結論はこうだ。「Androidに、Javaからのコード流用の疑念が提出されたが、両者のコードを比較した結果、明らかな流用は発見できなかった」。この一連の経緯を振り返ってみよう。 (記事は、ゲストブロガーのITジャーナリスト 星暁雄氏による投稿です) デコンパイルでソースを復元、比較 知的所有権問題のコンサルタントが「AndroidJavaのコードが混在か?」という内容のBlog記事を書いた。記事の内容は、ComputerWorldやEngadgetに紹介された。読んだ人は「Googleはまずい事をしでかしたものだ」との印象を持ったことだろう。Googleは、AndroidJavaの特許と著作権を侵害しているとしてOracleから訴えられている最中だからだ。だが、記事を読んだプログラマが「結論としてJavaコードの盗用の事実はない」ことを明らかにした。 火種となったのは、Florian

    「AndroidにJavaコードを流用か?」の報道が出るも専門家は一蹴、しかしFUDは広まる
  • “Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT

    “Stop the World”を防ぐコンカレントGCとは?:現場から学ぶWebアプリ開発のトラブルハック(2)(1/2 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Full GC問題の時代が再び到来! それまで順調に動いていたはずのWebアプリケーションが、ある時突然、応答を返さなくなる。そして、運用者があたふたしている間に、何事もなかったかのように再び動き出す。 Javaで構築したシステムにかかわる者ならば誰しもが体験するであろう事象、そうFull GC(ガベージ・コレクション)だ。Full GCが行われている間、すべてのアプリケーションスレッドは停止する。この事象は“Stop the

    “Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT
  • Apache Software Foundation、JCPを脱退――「Java SE 7」仕様承認を受け

    Apache Software Foundation、JCPを脱退――「Java SE 7」仕様承認を受け 「権利が認められなければJCPを脱退する」と宣言していたASFが、Oracleが提案した「Java SE 7」を執行委員会が圧倒的多数で承認したことを受け、宣言通り脱退した。 米Apache Software Foundation(ASF)は12月9日(現地時間)、Java管理団体Java Community Process(JCP)から脱退すると発表した。 ASFは11月11日に、ASFの権利が認められなければ脱退すると警告していたが、「Java SE 7」仕様に反対票を投じるよう執行委員会(EC)のメンバーに呼び掛けていたにもかかわらず、同仕様が12対3で可決されたことを受け、JCPのパトリック・クラン議長宛てに執行委員を同日辞任するというメールを送った。 反対票を投じたのは、A

    Apache Software Foundation、JCPを脱退――「Java SE 7」仕様承認を受け
  • アップル、「Mac OS X」のJavaを更新--今後の同梱中止を示唆

    Appleは、米国時間10月20日にMac OS Xに組み込まれているJavaを更新する「Java for Mac OS X 10.6 Update 3」において、MacにおけるJavaのサポートを近い将来終了する可能性を示唆した。同アップデートは以下のように、これが最後になるかもしれないと警告している。 Appleがポーティングし、Mac OS Xとともに出荷したバージョンのJavaであるJava for Mac OS X 10.6 Update 3について、優先度が低下している。 Appleが開発したランタイムは今後、これまでと同じレベルを維持されることはなく、Mac OS Xの将来のバージョンからは削除される可能性がある。Mac OS X 10.6 Snow LeopardおよびMac OS X 10.5 Leopardとともに出荷したJavaランタイムについては、これらの製品の標準

    アップル、「Mac OS X」のJavaを更新--今後の同梱中止を示唆
  • yebo blog: OracleがJavaの特許侵害でGoogleを提訴

    2010/08/13 OracleJavaの特許侵害でGoogleを提訴 Oracleは、Android(DalvikやSDKを含む)でJavaに関連する著作権および特許権を侵害したとして、Googleを提訴したと発表した[ars technica]。訴状によれば、Androidを搭載するデバイスが、7件の特許を侵害していると記されているとのこと。CNETが訴状を入手したようだ[scribd]。単純に金(ライセンス料)をよこせという事なのだろうか。そういえば、SunはJavaのオープンソース化を推進していたと思うのだが(Java SE/ME/EEはGPL)、その流れもこれで止まるということか。Sunの元CEOジョナサン・シュワルツ氏が何とコメントするか注目。更新侵害しているとする特許リスト6,125,447: Protection domains to provide security

  • Javaの父、GoogleのAndroid戦略に「苦言」?

    Googleマニアの中には、今後新しいAndroidスマートフォンの登場に伴い、Android対応アプリケーションも豊富に出そろうものと期待している向きもいるだろう。だが、このオープンソースOSをめぐるGoogleの方針に誰もが納得しているわけではない。 AndroidはオープンソースのJavaプログラミング言語を利用しているが、Javaのそもそもの開発元であるSun Microsystemsには、当然のことながら、Javaを守りたいという気持ちが強い。Googleが2007年11月、携帯端末向けのAndroid OSとそれに付随する開発ツールを発表すると、Sun幹部は「AndroidJavaを分断化させることになる」との懸念を直ちに表明、GoogleAndroidチームを強く非難した。 「Javaプログラマーは通常Javaの互換性テストを受けるが、それも行なわずにプログラマーが手当た

    Javaの父、GoogleのAndroid戦略に「苦言」?
  • Clojureをつくったわけ

    The original document appears at http://clojure.org/rationale. The translation is based on November 27, 2009 version of the page. 読みにくくて申し訳ないです。数多くの間違いがあると思いますので、ご指摘ください。 顧客や出資家は、業界標準のプラットフォームであるJava仮想マシン (Java Virtual Machine; JVM) に相当な投資をしており、そのパフォーマンス、セキュリティ、安定性などに満足している。Java開発者は、動的言語の簡潔さ、柔軟さ、生産性をうらやましく思うものの、顧客の環境で動かせるかどうか、既存のコードやライブラリが使えるかどうか、そして動作速度などについて心配するかもしれない。また、ネイティブ・スレッドやロッキングによる並行処理に

  • Part4 仮想マシンの仕組みを理解する

    Part1「今さら聞けないOSの疑問」,Part2「これがWindows Vistaだ!」,Part3 「Windows XP Tips 25 」に続いてPart4は,Javaなどで用いられている『仮想マシン』を解説します。 Java技術が誕生したのは1995年。誕生してからすでに10年以上の歳月が流れました。登場当初はばく大なメモリーを消費するとか,とにかく遅いという理由で敬遠されがちでしたが,現在ではWebアプリケーションを中心に幅広く普及しています。遅いという欠点も徐々に克服していき,今では性能が重視されるバッチや組み込み系のアプリケーション,変わったところでは火星探査車両の制御にも利用されるようになりました。 ここまでJavaが普及した大きな要因の一つに,一度作成したプログラムが多様なOSの上で動作するという点が挙げられます。この特徴を表す標語として「Write once, run

    Part4 仮想マシンの仕組みを理解する
  • Arrays#sort - てきとうなメモ

    JavaにはArrays#sortというメソッドがあって配列をソートすることができる.ソートする対象がプリミティブ型だとquick sortで実装され,オブジェクトだとmerge sortで実装している.オブジェクトのソートはstableであるという仕様のためだと思われる. さらに,どちらの場合も配列のサイズが小さい場合はinsertion sortで実装されている.merge sortもquick sortも分割して再帰的に実行されるため,分割された配列の要素数が小さくなった時点で,insertion sortに切り替わっている.insertion sortはO(n^2)なんだけどもシンプルな実装なので短い配列の場合はそっちの方が効率がいいということだろう. その他いくつか面白いなと思った点. quick sortのpivot 配列を2等分(サイズが大きい場合は8等分)して,配列の両端と

    Arrays#sort - てきとうなメモ
  • グラフ理論ライブラリのJGraphTを使ってみた - kaisehのブログ

    JGraphT JGraphTは、Javaのグラフライブラリです。グラフの描画ではなく、グラフ理論のモデルとアルゴリズムの方にフォーカスしています。とても使いやすかったので、紹介してみます。 無向グラフ UndirectedGraph<String, DefaultEdge> g = new SimpleGraph<String, DefaultEdge>( DefaultEdge.class); g.addVertex("a"); g.addVertex("b"); g.addVertex("c"); g.addEdge("a", "b"); g.addEdge("b", "c"); System.out.println(g.vertexSet()); System.out.println(g.edgeSet()); System.out.println(g.edgesOf("c"));

    グラフ理論ライブラリのJGraphTを使ってみた - kaisehのブログ
  • Java開発者の読むDjangoの設計思想 - やさしいデスマーチ

    Djangoのサイトには「Djangoの設計思想」というドキュメントがあります。どんなフレームワークでもそうですが、設計思想を理解し、その流れをつかむ事で正しい利用への最短ルートです。もし、自分の思想にあわないならば問題です。可能であれば、そのフレームワークの検討を取り止めるべきでしょう。それが出来ないならば利用している時にはそのフレームワークの思想で思考することが求められます。 Djangoの設計思想は、緩く結合し、必要最低限のコードで、だが隠蔽せずに明示するという事です。DjangoではMVT(モデル/ビュー/テンプレート)と呼ばれるMVCに近い構造をとります。それらの3つのレイヤーはお互いに疎な関係を持ち、モデルとテンプレートはデフォルトの実装以外を容易に採用できるようになっています。また、ほどよく規約を適用し必要なコード量は少なくなっていまが、なんでもかんでも裏側で処理せずに、なに

    Java開発者の読むDjangoの設計思想 - やさしいデスマーチ
  • 西尾泰和のブログ: Javaで破壊的クイックソート

    agw
    agw 2009/05/08
    破壊、非破壊的クイックソート間の考察。
  • 西尾泰和のブログ: QuickSort祭り(一人)

    後輩のQuickSortの課題を見ていて思ったのですけど、QuickSortは分割したリストのために新たに領域を確保していいかどうかによって難易度がだいぶ異なりますよね。高級言語は「QuickSortがこんなに簡単に書ける」なんてことを主張することがありますが、与えられた配列をその配列(+定数サイズ)の領域だけでソートするCとかで書かれたアルゴリズムを「真・クイックソート」だとすれば、新たな領域の確保を伴うQuickSortはちっとも早くないので「似非クイックソート」かもしれません。 で「似非クイックソート」なら簡単に書けるという話題で、ラボから赤坂某所への電車で書いたJavaのコード。 import java.util.Iterator; import java.util.Vector; public class Test { public static void main(String

  • 中途半端に知識だけある素人プログラマを相手にしている場合ではない件について - なんたらノート第三期ベータ

    中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場 が流行ってるみたいなので参戦。 なんだか、「中途半端に優秀なプログラマ」を相手にしているというより、「中途半端に知識だけある素人プログラマ」に対して投げられているように感じました。まあ、ノンプログラマーから見れば、「知識だけある素人」と「優秀」の違いを見極めるのは困難だという意味で、皮肉を込めて「優秀」と言ってるのかもしれないけど。 で、これをきっかけに大きく寄り道、って感じで。細かいこといろいろ考えました。 変数のスコープは狭いほど良い 広いスコープからアクセスできるようにした方が正しいケースの代表的な例は、標準入出力ストリーム(stdinやstdout)がバインドされたグローバル変数の形で実装されているシステム変数や、Rubyのprintやpメソッドだろう。(この点、Jav

    中途半端に知識だけある素人プログラマを相手にしている場合ではない件について - なんたらノート第三期ベータ
  • Java 7で導入されるクロージャ - hidemonのブログ

    次期Javaでは,クロージャが導入されることになっている.クロージャとは,変数と束縛された関数のこと.Lispなどの動的な言語では数十年まえから一般的な機能で,昨今のスクリプト言語では無い方が珍しいぐらいなので,今更という感はなくもないが,導入されるのは大歓迎だ. クロージャはさまざまな場面で使用できるが,最も多用されそうなのは,GUIなどのコールバックハンドラ.現在のJavaではクロージャが無いので,無名クラスを使って定義しているが,これをクロージャが置き換えるものと思われる.また,高階関数のようなものをつかうのにも便利に使えるだろう. mycomジャーナルの記事1,2,3,4,5に良くまとまっている. まだ,規格として安定したものになっているわけではないらしい. Neal Gafterのブログにクロージャの歴史が語られている.参考になる. サンプル 上述のMycomジャーナルの記事から

    Java 7で導入されるクロージャ - hidemonのブログ
  • 「クロージャの定義」 - hidemonのブログ

    Java7のクロージャの提案者の一人,Neal Gafterのブログが大変参考になるので,ちょっと野良翻訳してみよう. クロージャの定義 Java 言語にクロージャを追加しようという我々の提案に関して混乱があるようだ.そもそも,Javaにはすでに無名インナークラスという形で,クロージャがあるのではないか? すでにあるものをなぜまた追加しようというのか? 一部の人々には,我々の提案には,クロージャとは関係ないものが含まれているように思われているようだ.例えば,control invocation 構文,null型,Unreachable, 型パラメータ付きthrows,関数インターフェイス型,「非ローカル」な returnなどがそうだ.Javapolisでの講演で,なぜこれらの機能が提案に含まれているのかを,これまで不可能だったことを可能にするための実用的な観点から説明したつもりだ.しかし,

    「クロージャの定義」 - hidemonのブログ
  • イヌネコ - d.y.d.

    03:14 08/08/31 LLFuture 行ってきました。まとめ記事は何百人も書いてそうなので、以下、これにかこつけて自分語りをする。 ☆ Larry Wall の基調講演。ひたすら Parser の話をしてて素晴らしかった。 ☆ 100年の言語…は、 Ypsilon の藤田さんが、エラーメッセージのわかりやすさについて考えてますか?という問いかけを されてたのが印象に残っています。個人的に この頃 から気になってるんですけども、 言語内DSL のようなものを作ること&そのDSLが正常動作するときに 裏でホスト言語で何が起きているかをまったく気にしなくていいようにすることは簡単でも、 そのDSLがそのDSLのシンタックスや静的セマンティクスとして間違っているときに適切なエラーを 出せるようにするのは非常に面倒、という感覚があります。ホスト言語の意味でのエラーを 出されてもユーザ側とし

  • はてなブログ | 無料ブログを作成しよう

    お花見:2026年 例年よりも開花にやる気を出している桜です。冬のような寒さは去り、3月末で既に満開となりました。この様子だと今年の夏も猛暑・酷暑となりそうな予感がします。その一方で、この異常気象のことなので地球さんを信頼できず、もしかしたら再び雪が積もったりする可能…

    はてなブログ | 無料ブログを作成しよう
  • はてなブログ | 無料ブログを作成しよう

    【献血デビュー】体重が少し足りず400ml献血はできなくとも、献血ルームでの成分献血ならできたぞ、という話 いきさつ 2025年の抱負として「400ml献血をできるようになる」を掲げてから、冬を越し春が過ぎ夏が終わ………なかなか終わらないな……8月も終わろうとしている。記事を書いた頃の体重からは1kgぐらい増えたところだ。 夏バテなんてどこ吹く風とばかりに、ここ数週間は私の…

    はてなブログ | 無料ブログを作成しよう
  • だからLispはすごい(棒読み) - e-learningやってる社長のブログ

    2008/07/27 15:01 | 0 Comments Lisp と LL の関係についてだそうで。要するにLLはクズで、Lispはスバラシイ言語なんだという話らしい。で、このエントリの元ネタになっているStrong Typing vs. Strong Testingについてと、そのさらに元ネタになっているStrong Typing vs. Strong Testingも読んでみたけど、ちょっとあんまりだ。 問題となっているのは英語記事の方に載っているJavaのサンプル。DogとCatにspeakさせるという例だ。 // Speaking pets in Java: interface Pet { void speak(); } class Cat implements Pet { public void speak() { System.out.println("meow!"); }