タグ

javaに関するtroterのブックマーク (27)

  • Javaガベージコレクションのエッセンス

    あるアプリケーションの作業にとって、スループットは最も重要なターゲットです。1つ例を挙げると、長時間実行されるバッチ処理のジョブです。ガベージコレクションが実行されている間、バッチジョブが時々1、2秒止まっても、ジョブ全体がすぐに完了すれば問題ありません。 人間が直接対話するアプリケーションから金融取引システムまで、実質的な他のすべての作業では、システムが1、2秒か、数ミリ秒以上反応しない場合、大変なことになり得ます。金融取引では、しばしば一貫した停止時間と引き換えに、スループットを犠牲にするだけの価値はあります。物理的に利用可能なメモリ量によって制限されるアプリケーションを持ったり、footprintを維持しなければならなかったりすることもあります。そのような場合、停止時間とスループットの面の両方で、パフォーマンスをあきらめなければなりません。 以下のトレードオフは度々起こります。 大部

    Javaガベージコレクションのエッセンス
  • WildFly

    WildFly A powerful, modular, & lightweight application server that helps you build amazing applications. Now available: WildFly 32.0.1 Final Powerful Configuration in WildFly is centralized, simple and user-focused. The configuration file is organized by subsystems that you can easily comprehend and no internal server wiring is exposed. All management capabilities are exposed in a unified manner a

    troter
    troter 2013/04/25
  • http://books.shoeisha.co.jp/book/b92647.html

    troter
    troter 2012/02/23
    表紙がかっこいいので欲しい
  • JBossがおかしい!あなたならどうしますか? - nekop's blog

    Java Advent Calendar 2011とJBoss Advent Calendar 2011の28日目のエントリです。タイトルはMySQLがおかしい!あなたならどうしますか? – MySQL Casual Advent Calendar 2011のパクリです。素晴らしいエントリですね。 このエントリでは対象をJBossとJava VMに置き換えてお送りします。 JBossがおかしい! (略) まずはserver.log このファイルがトラブルシューティングの基になります。WARNかERRORレベルで出力されているものをチェックすれば大抵何が起きているのかはわかります。ほとんどの場合はエラーメッセージや例外メッセージでぐぐるとそれなりに情報は出てくるでしょう。 $ grep -nEe "WARN|ERROR" server.log | less $ grep -nEe "WAR

    JBossがおかしい!あなたならどうしますか? - nekop's blog
    troter
    troter 2012/01/05
  • AnnotationProcessorを利用して楽してintrefaceを徹底活用したプログラミングをしようぜ - 矢野勉のはてな日記

    Java, Advent Calendarこの記事は Java Advent Calendar 2011 の一環で書いてます。詳細はこちらを参照してください。昨日の id:ttmmrr さんの記事はこちら (2012年の公休日とか)JTableのフィルタリング - ttmmrr(@o_tmr)の日記たまたま、いま作ってるプログラムで、Javaプログラマに役立ちそうな部分があったので、その部分を抜き出して公開することにしました。今回はその紹介をしようと思います。 「インタフェースこそが型である」世界Java: The Good Parts というがありまして、その3章において、(私の理解としては)Javaにおいて、型とはインタフェースのことあり、クラスは型に実装を提供するものであり、すべてのクラスはインタフェースを備えるべきだ、とかいう意味の論が展開されてます。インタフェースはクラスから型

    troter
    troter 2011/12/08
    これでボイラープレートを削除したい。(でもGroovy採用したほうが楽な気もする)
  • Heroku for Java

    We're pleased to announce the public beta of Heroku for Java. Java is the fourth official language available on the Cedar stack. Java is, by many measures, the world's most popular programming language. In addition to its large and diverse developer base, it offers a huge ecosystem of libraries and tools, an extremely well-tuned VM for fast and reliable runtime performance, and an accessible C-lik

    Heroku for Java
  • JavaでプロセスIDを取得 - MOYO Laboratory

    プロセスの PID を記録してデーモンの起動と終了を行うといった Unix 系のサーバで一般的に行われている手法を Java VM で行うためなどに VM のプロセス ID が取れたらと何時も思っておりましたが、実際にやろうと思うと JNI を使用して環境ごとのネイティブライブラリを作らなければならなかったりと一々面倒です。 たまたま JMX (Java Management Extensions) を使ってサーバ管理系の MXBean などを作っておりましたところプロセス ID らしきものが目についたのでここにメモしておきます。やり方は簡単、RuntimeMXBean を使用するだけです。 import java.lang.management.*; RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean(); String name

    JavaでプロセスIDを取得 - MOYO Laboratory
    troter
    troter 2011/08/24
    裏ワザっぽい
  • http://stapler.java.net/

    troter
    troter 2011/08/20
    jenkinsってこのフレームワーク使ってるのか。初期化時にrootオブジェクトを切り替えてるのが面白い
  • 【祝】:Java SE 7 正式リリース

    【祝】: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に関するドキュメント チュー

    【祝】:Java SE 7 正式リリース
    troter
    troter 2011/07/29
    eclipseが対応したら実戦投入したい
  • Java EE6標準の範囲でフルスタックのWebアプリケーションが簡単に作成できることを確かめてみました。 - 達人プログラマーを目指して

    Java EE6でさらに開発は容易になった? 以前JavaEE標準の進化から最近の業務アプリケーション開発手法の変遷について考える - 達人プログラマーを目指してにてJava EE標準の開発モデルの進化について説明しました。10年前の相当面倒だったJ2EEの開発モデルと比べて、最新のJava EE6では、様々なOSSの良い特徴を取り入れて、簡単にプログラミングできるように大幅に改良されています。また、Glassfish 3.1やJBoss AS7などは起動時間が非常に短縮されており*1、よほど遅いPCでなければわずか数秒で再起動することができます。さらに、Java EEサーバーが重くてテスト不能というイメージはもう過去の話かもしれない - 達人プログラマーを目指してで紹介したように、Java EE6では従来困難であった単体試験の自動化も容易になっています。 個々の技術は優れているのだけれど

    Java EE6標準の範囲でフルスタックのWebアプリケーションが簡単に作成できることを確かめてみました。 - 達人プログラマーを目指して
    troter
    troter 2011/07/26
    あとでみる
  • 技術者が知っておきたいTomcat 7の新機能20連発

    ■ リクエスト処理のアーキテクチャ Tomcat 4時代から採用されているリクエスト処理のCatalinaアーキテクチャは変更なしで、そのまま採用しています。Tomcatが受け付けたリクエストは、リクエスト処理パイプラインによってServletまで到達し処理されます。 ■ クラスタリング(セッションレプリケーション) 若干のインターフェイスの改良はありますが、基的には同じ仕様です。 「All-to-All」「primary-secondary」の2つのレプリケーション方式が利用可能となっています。 ■ DBコネクションプール 今までどおりApache Commons DBCPを使用し、バージョンはDBCP 1.4系(JDBC 4用)を採用しています。Tomcat独自のjdbc-poolを利用する場合は別途ビルドが必要です。jdbc-poolは近いうちに同梱されるかもしれません。 では、T

    技術者が知っておきたいTomcat 7の新機能20連発
    troter
    troter 2011/06/26
    tomcat7を本番で利用するいいわけがついた
  • nullはJavaのWeakポイント - Return to Saisse’s Wiki

    純粋にオブジェクト指向的に考えた場合、オブジェクト間の通信にnullを使用するなんてことはあってはならない事だ。 ある値がnullであるということは何かの状態を表しているわけで、その状態をnullで表してしまうと人間の頭にとっては扱い難い存在となる。 例えばあなたがコーヒーカップを持っているとしてコーヒーカップがnullだでは想像で補うことは可能であっても意味が通じない。状態をnullで表すのを止めてコーヒーカップが空だと言えば格段にわかりやすくなる。 ここで重要なのは名前がついているかどうか?ということだ。名前を付けることによって人間の頭は高速に処理できるようになる。名前を省略されるとそもそも状態があることを認識することが困難になる。 このことからnullはコンピュータのメモリの状態を表す言葉であって実装であるといえる。つまりnullはカプセル化の対象であって、インターフェース間でやりと

    nullはJavaのWeakポイント - Return to Saisse’s Wiki
    troter
    troter 2011/06/10
    orNull使ってた。もしかしたら、前にこのblog見てたのかもしれない
  • 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。

    10万行コード読んだらJava分かるよってTwitterに書いたらすげぇ勢いでRTされたので、調子に乗って捕捉エントリ書くよ。 Java Core API JDKインストールしたディレクトリに入ってるsrc.zipを展開すると入ってるから読むと良いよ。 すぐ近くにあるのから読むってのはメンタル的に楽でいい。 厳密にはOSSじゃなくて単に公開されてるってだけなんだけども、JavaプログラマなのにコアAPIのコード読んでないとか無いよね? どれから読めば良いか分からんかったら、 java.lang java.util java.io java.text 辺りをまずはキチンと理解すること。当然コードを読み終わったら、それを使ってコードを書く事。 OpenJDK http://hg.openjdk.java.net/jdk7/jdk7 OpenJDKを読むことで、プログラム言語してのJavaではな

    一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。
    troter
    troter 2011/06/10
    OpenJDKのコードチェックアウトして読んでたのでモグリ認定回避できてた
  • Best Redis library for Java

    troter
    troter 2011/05/29
    jredisじゃなくてjedisかrjcが良いのか。
  • EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して

    十年一昔といいますが、文字通り一昔前の書籍ではJ2EEのEJBコンポーネントはプロセスが分散化されたリモート呼び出しにより処理を行う分散コンポーネントとして説明されています。そして、残念ながら現状Java EE関連の日語の書籍はこうした古い時代に書かれたものがほとんどとなっています。それゆえ、 開発効率がきわめて悪い 実行性能が悪い*1 仕様がきわめて複雑で理解が大変 といった悪いイメージが定着してしまっているのではないかと思います。しかしながら、最新バージョンのJava EE6では、Spring、Guice、SeamなどのOSSの軽量コンテナのアイデアを取り込むことにより、以前とは比較にならないくらい開発効率が改善されているという事実があります。 ここでは、Hello WorldのEJBの書き方を以前の古いバージョンから順次振り返りながら比較してみることで、EJBのプログラミングモデル

    EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して
    troter
    troter 2011/05/29
    最近Javaプログラマになったのは不幸中の幸い
  • Java + kumofsは苦痛が伴うのでオススメできない - terurouメモ

    2010/04/22追記 この情報はkumofs-0.3.2での調査結果です。0.3.4ではkumo-gatewayに-Fオプションを付けて起動することで、memcached client for Javaでも動作するようになりました。 memcached client for Java + kumofs 0.3.4 での接続確認 - DenkiYagi 研究開発しているJava製システムにkumofsを採用しようと思い色々調査したのだが、とりあえず採用は見送る(最終決定は先送りする)ことにした。ここでは、なぜ見送ることにしたのか記しておく。 なお、調査段階でkumofs作者の古橋さん(id:viver、@frsyuki)にTwitterで助けて頂いたのにも関わらず、若干ネガティブな記事になってしまっているので多少心苦しい…。 結論 kumofs自体には問題はない。 だが、Javaにはロク

    Java + kumofsは苦痛が伴うのでオススメできない - terurouメモ
  • Aptina - Welcome to Aptina Project

    Aptina プロジェクトは, Pluggable Annotation Processing API (JSR 269) を利用する注釈処理ツールや, 注釈処理ツールを開発するためのコンポーネントを提供します.

    troter
    troter 2011/05/25
    おもしろそう
  • 僕の考えるAPT開発の常識 ぐだ生 2011/04/09版

    The document describes the Annotation Processing Tool (APT), which can be used to convert JSON to Java POJO models. APT uses annotations to map JSON fields to Java properties. It utilizes reflection and annotation processing to generate Java code from the annotations at compile time. The tool has evolved over time and now supports newer Java versions and additional features like JSON parsing.Read

    僕の考えるAPT開発の常識 ぐだ生 2011/04/09版
    troter
    troter 2011/05/25
    今のプロジェクトのコードの自動生成、これで書き直したい。
  • サーブレット3.0仕様書邦訳版

    サーブレット3.0仕様書邦訳版 2010年5月 邦訳(ODF)のダウンロードはここから PDF版のダウンロードはここから サーブレット3.0とTomcat 7のチュートリアルはここから このファイルはOpenOfficeのODTフォーマットであり、OpenOffice WriterまたはMicrosoft Office Word 2007以降で読むことができる。Internet Explorerでうまくダウンロード出来ないときは(ファイル拡張子が.zipとなったときは、これを元に戻す必要がある)、FirefoxやChromeなどのブラウザを使用をお勧めする。OpenOfficeはここからダウンロードできる。Writerを使うときは下図のようにナビゲータを左枠にはめ込むと、見たい章、節、図表を簡単に開くのにWordの見出しマップと同じ使い方ができる。 仕様書をアプリケーションの開発者が読むこ

  • O/Rマッピングで緩和されるインピーダンスミスマッチには静的と動的の側面がある - 達人プログラマーを目指して

    一般的な業務アプリケーションではデータを永続化するために、RDBMS(関係データベース管理システム)を利用します。RDBMSでは大量のデータを効率的に検索したり、集約してレポートを作ったりすることが得意ですし、一般的に業務システムで求められるトランザクションのACID特性*1を満たすことも容易です。また、適切にテーブル設計の正規化を行うことにより、運用面においてデータの管理コストを下げることもできます。最近ではスケーラビリティの問題などもあり、RDBMS以外のデータベースについても注目されるようになってきていますが、今後も業務アプリケーションの主流としてRDBMSは使われていくだろうと思われます。 従って、Javaなどのオブジェクト指向言語で開発を行い、DDDのようなオブジェクト指向の設計技法を利用する場合に必ず考えなくてはならない問題は、オブジェクト指向と関係モデルとのインピーダンスダン

    O/Rマッピングで緩和されるインピーダンスミスマッチには静的と動的の側面がある - 達人プログラマーを目指して