タグ

Javaに関するYaSuYuKiのブックマーク (149)

  • 最近のJava関係イベントの個人的なまとめと感想 - Splash of waters - 2nd. Season

    デブサミやJava Day Tokyoなど、会社の許可をもらってイベントにありがたく行かせてもらっているけど、ちゃんとレポートできていなかったということで、社内勉強会で話すことにしました。 まとめ資料を作ったので、このブログにて先行して公開してしまいます*1。少し前のエントリで資料をアップロードしたのはこのための準備でした。 資料の位置づけ 古いJavaの知識で止まっている人(自分含め)やこれから格的にJavaを学ぼうと思っている人に、最近のJava関連の新機能などをざっくりつかんでもらうための資料です。内容の深さ・広さは、聴く人のJavaスキルに合わせた一応合わせたつもりです。 Java SE 8がリリースされて、その界隈では「for文禁止」などと言われる一方で、会社の新人研修で教えるJavaでは、「ループはforやwhileを使って書きます」みたいに教えるわけで、その辺のギャップを埋

    最近のJava関係イベントの個人的なまとめと感想 - Splash of waters - 2nd. Season
    YaSuYuKi
    YaSuYuKi 2014/06/16
    チーム全員がこの資料を理解している状態にできればかなり強力
  • JVM! JVM! JVM!

    Monitoring casual #6 http://www.zusaar.com/event/11447004Read less

    JVM! JVM! JVM!
  • jOOQ: The easiest way to write SQL in Java

    jOOQ generates Java code from your database and lets you build type safe SQL queries through its fluent API. Start your free jOOQ trial now! Great Reasons for Using jOOQ Our customers spend most time on their business-logic. Because jOOQ takes care of all their Java/SQL infrastructure problems. Database First Tired of ORMs driving your database model? Whether you design a new application or integr

    jOOQ: The easiest way to write SQL in Java
  • 見せてやろうJVMが持つ真のチカラを! JVMのオプションを一覧する方法について。 - Qiita

    java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions 尚、詳細が知りたい方は、この辺りを眺めるとより具体的に分かります。 src/share/vm/runtime/globals.hpp#l481 コマンドの説明 -XX:+PrintFlagsFinal -XXオプションの一覧を標準出力するオプションです。 -XX:+UnlockDiagnosticVMOptions 仮想マシンをチューニングする為のオプションを使えるようにするオプションです。 以下に示すリストでは {diagnostic}となっているものがこのフラグによって変更できるようになります。 -XX:+UnlockExperimentalVMOptions 将来サポート予定であるものの機能性が不安定なオプ

    見せてやろうJVMが持つ真のチカラを! JVMのオプションを一覧する方法について。 - Qiita
    YaSuYuKi
    YaSuYuKi 2014/05/30
    experimentalなオプションの多くがG1GC関連なので、GC変更で更に増えたのか。それでも10個くらいしかないけど
  • Java による Web アプリケーションのプロトタイプのために最近使っている構成

    2014 年 5 月 3 日に開催された 「Kyoto.なんか」 で喋った内容です。Read less

    Java による Web アプリケーションのプロトタイプのために最近使っている構成
    YaSuYuKi
    YaSuYuKi 2014/05/27
    テンプレートエンジンは、Mustache Javaあたりもあるけど、どうにも決め手にかけるんだよな
  • Java Day Tokyo 2014でテストのお話 - nekop's blog

    Java Day Tokyo 2014で「Javaアプリケーション開発におけるテストとTDDの実践」というセッションを@t_wadaと@shuji_w6eと@nekopの3人共演でやりました。講演中はいっぱいいっぱいなのであまりまわりの状況がよく見えていなかったのですが、250人の部屋が満席立ち見という状態になっていたみたいです。ありがとうございます。 こんな大規模なイベントを参加費無料かつすばらしい設備の会場でやるというのはとてもすごいことだと思います。OracleさんのJavaに対する姿勢が見えますね。ありがとうございました。 自分は統合テスト自動化というトピックで、より物に近い環境でテストすることの重要性とか、Arquillianイイヨー、統合テストのコスト下げられるよー、楽しいよー、ってお話をしました。スライドは以下のURLで公開しています。 http://nekop.githu

    Java Day Tokyo 2014でテストのお話 - nekop's blog
  • Javaトラブルに備えよう #jjug_ccc #ccc_h2

    GraalVMJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...Shinji Takao

    Javaトラブルに備えよう #jjug_ccc #ccc_h2
  • Not Your Father's Java: An Opinionated Guide to Modern Java Development, Part 1 | Parallel Universe

    May 01, 2014 Not Your Father's Java: An Opinionated Guide to Modern Java Development, Part 1 By Ron This is part 1 in a three-part series: part 2, part 3 More working, useful code has been written in the Java programming language than in any other in history, with the possible exceptions of C and COBOL. When Java was released almost 20 years ago, it took the software world by storm. It was a simpl

    Not Your Father's Java: An Opinionated Guide to Modern Java Development, Part 1 | Parallel Universe
  • http://hmdt.jp/blog/?p=1187

    http://hmdt.jp/blog/?p=1187
    YaSuYuKi
    YaSuYuKi 2014/05/08
    Eclipseが不安定になった時は、indexを削除して再起動するといいというバッドノウハウ/2,3,5,6は対策があるがもう書かれているな
  • 10分で基礎をマスターするApache Camel - Qiita

    思ってた以上に前回の記事がアクセス多かったので、今回は使い方のほうをご紹介しようかと。 Apache Cmaelとは 前回の記事に書いた Apache Camel (Java)を使うと開発が楽になる7つの理由 ステップ0 > ガチのHelloWorld package test.hello; public class Hello { public static void main(String[] args) throws Exception { System.out.println("hello camel"); } }

    10分で基礎をマスターするApache Camel - Qiita
  • JavaBeansに対するリフレクションとClassLoader脆弱性 - ひがやすを技術ブログ

    今回の問題は、(SA)Strutsだけの問題ではなく、いろんなフレームワークでもちゃんと調べた方が良い話しなので、もう少し詳しく書いておきます。 Javaで、JavaBeansのプロパティにアクセスする場合、 PropertyDescriptor[] descriptors = Introspector.getBeanInfo(クラス).getPropertyDescriptors();で取得できるPropertyDescriptorを使うことがほとんどです。この中に、classプロパティは含まれます。 ここまでは良くて、ネストしたリクエストパラメータ(class.classLoader.xxxなど)をJavaBeansにセットする時に、BeanInfo.getPropertyDescriptors()で取得したものをそのまま使うのが問題なのです。 Seasar2(BeanDesc)では、

    JavaBeansに対するリフレクションとClassLoader脆弱性 - ひがやすを技術ブログ
    YaSuYuKi
    YaSuYuKi 2014/04/25
    念のためパッチを当てておこう。問題の生じる可能性のある使い方は把握している限りではしていないが
  • S2-020類似攻撃のStruts1での対策方法 - Qiita

    恐ろしいことですが、実装が全然違うStruts2の脆弱性S2-020と同様の攻撃手法で、Struts1も脆弱性があることが分かりました。 http://www.lac.co.jp/security/alert/2014/04/24_alert_01.html ここではあまり明らかになっていませんが、原因は // Set the corresponding properties of our bean try { BeanUtils.populate(bean, properties); } catch(Exception e) { throw new ServletException("BeanUtils.populate", e); } finally { if (multipartHandler != null) { // Set the multipart request handl

    S2-020類似攻撃のStruts1での対策方法 - Qiita
    YaSuYuKi
    YaSuYuKi 2014/04/25
    古いシステムだと、どこかで独自に似たことをしている可能性があるので、再確認が必要たな
  • Apache Camel (Java)を使うと開発が楽になる7つの理由 - Qiita

    まず題に入る前に、ApacheCamelの簡単な説明から Apache Camelとは Javaのフレームワーク。どんなフレームワークかというと ベルトコンベア(ライン生産的な)フレームワーク 「生産物」に相当するものはデータ 「生産物を作るロボットや人」に相当するものはコンポーネントや個別実装 「スタート」は外部からのリクエストやタイマーでの監視(例えばメールチェックみたいな) 「最終生成物」はリクエストもらった人に返す フレームワーク自体は超軽量。 概要すぎるので、もうちょっと細かな話をすると データ エクスチェンジと呼ばれる「箱」でベルトコンベアに流れている 箱の中にはメッセージと呼ばれる生産物が入っている 箱の中にはメッセージの他に「エラー」やIDや処理過程の「パンくずリスト」なども入っている メッセージの中はヘッダーとボディがあって、ヘッダーがMap型、ボディがObject型に

    Apache Camel (Java)を使うと開発が楽になる7つの理由 - Qiita
  • 自動生成したJavaコードに手を加えても綺麗にマージしてくれるJmerge - Qiita

    /** * method1.<br/> * @generated */ public void method1() { System.out.println("a"); } /** * method2.<br/> */ public void method2() { System.out.println("あ"); } この機能を扱うクラスはEMFにあるので、eclipseにEMFを入れておく必要があります。 Eclipseのupdate site で、例えば、Kepler - http://download.eclipse.org/releases/keplerを選択して、Modeling → 「EMF - Eclipse Modeling Framework SDK」をチェックしてインストールします。 merge ruleを記述 どのようにマージするかのルールはxmlで記述します。 こ

    自動生成したJavaコードに手を加えても綺麗にマージしてくれるJmerge - Qiita
  • 例えば、Strutsを避ける

    はじめに 筆者は10年以上ウェブアプリケーション開発を主な業務とするJavaプログラマであったにも関わらず、Strutsについてはこれまでずっとわず嫌いでした。初期のStrutsは「XMLだらけで効率が悪そう」というイメージが強かったためです。最近はRuby on Rails等の影響を受けCoC(convention over configuration)を採り入れ、XML地獄もだいぶ解消したようです。 StrutsはJavaアプリケーションらしくない種類(任意のコード実行等)の脆弱性を連発することでも知られており、最近は我々の提供するSaaS型WAFサービス、Scutum(スキュータム)のお客様からも頻繁にStrutsについての問い合わせを受けるようになりました。また、去年見つかった任意のコード実行の脆弱性では、脆弱性の公表後すぐにPoCが出回り実際に攻撃が発生するなど、悪い意味で注目

    例えば、Strutsを避ける
    YaSuYuKi
    YaSuYuKi 2014/04/23
    Strutsは10年前の1時代の知識しかないが、2はこんなことになっているとは
  • Javaでコードを書くのがだるすぎたけどLombok使ったら思いのほか楽しかった - Qiita

    「Lombok、便利そうだけどまあそんなに使わないかなあ」と思ってたんだけど試しに使ってみたらかなり快感だったのでメモ。 Javaのだるさ Javaでプログラムを書いているとよく「intのtype, Stringのnameというフィールドを持つだけの、特定の処理などは含まないHogeクラスを作ろう。まあ普通に文字列表現もあってequalsによる比較とかもできるように」のように思います。 package org.hogel; public class Hoge { private int type; private String name; public Hoge() { } public Hoge(int type, String name) { this.type = type; this.name = name; } public int getType() { return type

    Javaでコードを書くのがだるすぎたけどLombok使ったら思いのほか楽しかった - Qiita
    YaSuYuKi
    YaSuYuKi 2014/04/18
    issues見たら、「Java8でval使ってたらコンパイルに失敗する」みたいな怖いものが見えたので、言語仕様自体を置き換えるような機能は避けたほうが良さそうな程度の信頼性に見える
  • Java8のCollectorをfor文と比較しながら一から作って理解する - Qiita

    Java8になってたくさんの機能が追加されたッッッ!!!。Stream APIもその一つ!!! lambda関数は理解できた!Stream APIの各機能も大体理解できた。。 だけど、collectメソッド、およびその引数に渡すCollectorがよく理解できなかったので、関数型の考え方に不慣れながら簡単なものを作ってみるところから勉強してみた! collectとは? ストリームの終端処理の1つ。ストリームから流れ出るデータをまとめて1つのデータを返す。 reduceみたいな動きと似ているけどもっと汎用的に記述ができるらしい。返すデータがまたもやストリームでもよい。 collect関数に渡す引数がCollector。つまりストリームからなにか新しいデータを作りだしたいときにCollectorを用意すればなんなりと作り出して左辺に代入できるのだ! OreOreData ood = strea

    Java8のCollectorをfor文と比較しながら一から作って理解する - Qiita
  • もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics

    ある日、 id:cero-t がJJUGの重鎮たちと話している中で、とある宿題をもらいましたとさ。 「Java8のラムダの中で例外が発生したら、どうなるんだろう?」 こんにちは、アキバです。 もう皆さんはJava8を使ってみましたか? とりあえずインストールしてみた人! ・・はーい (おまえか という冗談はさておき、 今回は、id:cero-t に代わって私が冒頭のお題を調べてみました。 1. SerialStreamで動かしたラムダで例外が発生したら まずは、小手調べにシングルスレッドの場合を見てみましょう。 検査例外が発生するようなコードをラムダに書いてみると、コンパイルエラーになります。 こんなコードです。 try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(W_FILENAME))) { // writer.

    もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics
  • 人類は Java をターミナル内で書く手段を確立していた - Qiita

    X なしで Eclim を使う方法。 導入 Vagrant や Docker の流行により、気軽に仮想マシンを使う時代になっています。すると開発にも仮想マシンを使うようにしてホストマシンはできるだけ汚さない方向に持って行きたいことになる。手軽に使いたいため当然 X 環境などは構築しない。 ここで問題になるのは IDE を前提にした言語。 IDE はウィンドウシステムの中で動くため、仮想マシンを X なしで使うと IDE の機能を使えず開発が厳しくなってくる。 具体的に言うと Java 、ジャバ、ジャヴァである。 書くときはあまりにも長い名前をタイプしたくないため補完が欲しくなり、読むときは名前解決のためのタグジャンプが欲しくなる。 追記 僕のモチベーションは VM の中に開発環境を閉じ込めてしまいたくて、かつ X を使いたくないところにあります。そうじゃない人はホストマシンで開発なり VM

    人類は Java をターミナル内で書く手段を確立していた - Qiita
    YaSuYuKi
    YaSuYuKi 2014/04/14
    面白いが、操作が長くて使いやすそうにはない。かなりカスタマイズしないといけないがそうするとVimのデフォルトのキーバインドとぶつかる
  • ビルドツールGradleのインストールと使い方、Jenkins/Git連携

    ビルドツールGradleのインストールと使い方、Jenkins/Git連携:小山博史のJavaを楽しむ(18)(1/5 ページ) オープンソースのビルドツール「Gradle」の主な特長やLinux/Windowsでの環境構築方法、さまざまな使い方に加え、CI/バージョン管理との連携方法を解説します。 「これから」のための柔軟なビルドツール、Gradleの主な特長4つ Javaではアプリケーションをビルドしたり、Webアプリをサーブレットコンテナへデプロイしたりするときにビルドツールを使うことがよくあります。ビルドツールを使うと、開発中に変更があった部分に影響する範囲だけコンパイルをしたり、アプリのパッケージを作成するときに必要な比較的単純なファイルコピーの作業をミスなく実行したりすることが、簡単にできるようになります。 今回紹介をするGradleはオープンソースのビルドツールの1つです。J

    ビルドツールGradleのインストールと使い方、Jenkins/Git連携