タグ

*javaに関するSiroKuroのブックマーク (120)

  • ブラウザから1クリックでアプリケーションを起動する - Java Web Start 〜 JavaFX - Blog by Sadayuki Furuhashi

    festivoice.netはブラウザから1クリックで専用のクライアントソフトウェアが起動して、簡単に音声チャットが始められます。この1クリックでアプリケーションを起動する仕組み - Java Web StartはJavaに標準で搭載されているので、大抵の環境でインストールする手間を掛けることなくクライアントを配布できます。 またサーバーに置いてあるパッケージを更新するとクライアントも自動的にアップデートされます。Webサービスの提供者側からすると、Java Web Startはかなり便利です。 Java Web Startを利用するには、サーバー上に 1)普通のJavaのアプリケーション と、2) JNLPファイル を用意します。JNLPファイルはXMLの設定ファイルで、以下のようなフォーマットになります: <?xml version="1.0" encoding="UTF-8"?> <

    ブラウザから1クリックでアプリケーションを起動する - Java Web Start 〜 JavaFX - Blog by Sadayuki Furuhashi
  • javacでヒープ汚染せずに代入文だけでクラッシュ - しげるメモ

    寝ようと思ったら思いついた。 public class Main { public static void main(String...args) { Comparable<?>[] c = method(1, 1L); } static <T> T[] method(T...ts) { return ts; } } これ、javacで警告でないけど実行するとClassCastException発生。言語仕様違反です。 おそらく、new T[ ]するときにreifiableな型の配列作ろうとしてイレイジャ変換かけている(erase(lub(Integer, Long)) = erase(Number & Comparable<...>) = Number としている)のに、戻り値にそれ伝播させてなくてT[ ]のまま使ってる。 明日まとめなおす予定。

    javacでヒープ汚染せずに代入文だけでクラッシュ - しげるメモ
  • 同じタイプの変数を配列にまとめることの利点

    Javaではint型やdouble型などの変数は基型として扱われますが、配列にするとオブジェクトとして扱われます。基型の変数をメソッドのパラメータにした場合、値渡しとなるため、値のコピーが実行され、コピーした値を変更しても元の値を変えることはできません。これに対して、オブジェクトの場合は参照渡しですので、値のコピーではなく参照が渡され、参照を用いてパラメータの値を変更することもできますので、処理効率が上がります。 よって、複数の同じタイプの変数を受け渡す場合、変数ごとの意味にこだわらずに、1つの配列にして扱うと、モジュール強度が高く効率の良いメソッドになります。 一例として、直方体の幅(x)、高さ(y)、奥行き(z)を得て、体積(v)と表面積(a)を返すメソッドを考えます。戻り値が2つありますので、広域変数を使いたくなければ、メソッドを分割するか、戻り値を構造化(クラス化)するなどの工

    同じタイプの変数を配列にまとめることの利点
  • Javaの例外処理 - K.Maebashi's はてなブログ

    Diksamに例外処理をつけるため、Javaの仕様を参考にしようとしているんですが。 try catchのfinally節は、「何があっても通る」ところなので、たとえば以下のようなソースでは、 for (;;) { try { … break; } catch (Exception e) { … return; } finally { … } }try節の中のbreakやcatch節の中のreturnでfor文やメソッドを抜ける際でもfinallyの中は通らなければなりません。しかも、finally実行後に行うことはbreakだったりreturnだったりと異なるので、これは単にジャンプ命令で引き回すだけでは実現が難しそうです。 そのためにjsr(jump subroutine)という、関数内のサブルーチンコールのインストラクションがJVMにはあるのだと私は理解してました。 JVMの仕様書を

    Javaの例外処理 - K.Maebashi's はてなブログ
    SiroKuro
    SiroKuro 2009/01/28
    しまった。finally return の問題を忘れていた。
  • JavaとMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2008年12月22日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 今年のBlack Hat Japanには、はせがわようすけ氏が「趣味と実益の文字コード攻撃」と題して講演され話題となった。その講演資料が公開されているので、私は講演は聞き逃したが、資料は興味深く拝見した。その講演資料のP20以降には、「多対一の変換」と題して、UnicodeのU+00A5(通貨記号としての¥)が、他の文字コードに変換される際にバックスラッシュ「\」(日語環境では通貨記号)の0x5Cに変換されることから、パストラバーサルが発生する例が紹介されている。 しかし、バックスラッシュと言えばSQL

  • 第5回 演算子と構文 | gihyo.jp

    構文 ブロック構文 ブロック構文は波括弧でくくられた複数の式からなります。複数の式の最後の式がブロック構文の値となります。 第3回のオブジェクトの生成で、アトリビュートの初期化に次のような構文を使用しました。 リスト1 var n = 100; Foo { sum: { var tmpSum = 0; for (x in [0..n]) { tmpSum += x; } tmpSum; } } sumアトリビュートに値を代入するため、波括弧でくくられた複数の式を使用しています。これがブロック構文です。sumにはブロック構文の最後の式、つまりtmpSumの値が代入されます。 このブロック構文はアトリビュートの初期化に限らず、変数に代入することや関数の引数などにも使用することが可能です。たとえば、リスト2のスクリプトは正月までの日数の計算処理をブロック構文で実現しています(import文は省略

    第5回 演算子と構文 | gihyo.jp
  • "".equals(stringVariable) は改悪だろう - まちゅダイアリー(2008-11-30)

    SiroKuro
    SiroKuro 2008/12/05
    if (args == null) throw new IllegalArgumentException(); // を、作ったメソッド全部に書くのは疲れました。あと NullPointerException のほうがいいのかなぁとか時々思う。InvalidArgumentException? ArgumentNullException? ArgumentException? ときどき迷う。
  • わかりずらい Java の参照渡し (1/3) (tec-q note)

    Java の引数はプリミティブ型であれば値渡し、オブジェクトであれば参照渡しというのは周知の事実です。 その参照渡しは "オブジェクトの参照" を渡すのですが、広く知られている "変数の参照" を渡す方法と区別されていないためか、しばしば混乱する場合があります。 例を挙げるとわかりやすいと思います。下のソースを見てください。サンプルA public class SampleA { public static void main(String[] args) { String s1 = "main メソッド実行"; ・・・1 SampleA sampleA = new SampleA(); sampleA.test1(s1);        ・・・2 System.out.println(s1);     ・・・4 } public void test1(String s2) { s2 =

    SiroKuro
    SiroKuro 2008/12/05
    java には参照渡しはないよ。あるのは「”オブジェクトへの参照”の値渡し」だけだから。
  • 特集 私がJavaからC#に乗り換えたくない10の理由

    C#の言語仕様はJavaより優れているとは思うが、しかし.NET FrameworkはJava SE より使いにくい。というより使いにくすぎるC#の言語仕様はJavaより優れているとは思うが、しかしWindowsでしか動かない。というよりLinuxでも動くようにしろゴラァC#の言語仕様はJavaより優れているとは思うが、しかしVisual Studioは高い。というより高すぎる。C#の言語仕様はJavaより優れているとは思うが、しかしWindowsは高い。というより高すぎる。C#の言語仕様はJavaより優れているとは思うが、しかしブロックの前で改行するのは嫌いだ。というより大嫌いだ。C#の言語仕様はJavaより優れているとは思うが、しかしビジュアルデザイナは不必要だ。というよりなくすべきだ。C#の言語仕様はJavaより優れているとは思うが、しかし #region だ。というより #endr

    特集 私がJavaからC#に乗り換えたくない10の理由
    SiroKuro
    SiroKuro 2008/09/15
    乗り換えなくていいよ。J# がんばれー
  • イヌネコ - d.y.d.

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

    SiroKuro
    SiroKuro 2008/08/20
    Integer n = Integer.valueOf(someStringData) or die; // みたいな
  • Java 7のクロージャ(BGGA版)のプロトタイプを試してみた(2) - control invocation syntax - kmizuの日記

    参考URLはこの辺:http://tronicek.blogspot.com/2008/02/version-2008-02-22.html BGGA版のクロージャには、シンタックスシュガーとして、control invocation syntaxというものがあり、クロージャ(というか無名関数。いい加減しつこいけど)を最後の引数に取るようなメソッドの呼び出しを簡潔に書くための記法を提供してくれる。 control invocation syntaxは次のような感じで書くことができ、 withIndex(String s, int i:args) { System.out.printf("%s, %d%n", s, i); }これは以下の呼び出しをしたのと同じ意味になる(らしい)。 withIndex(args, {String s, int i ==> System.out.printf(

    Java 7のクロージャ(BGGA版)のプロトタイプを試してみた(2) - control invocation syntax - kmizuの日記
  • Java におけるコード進化パターン (Code Evolution Patterns in Java)

    Java におけるコード進化パターン (Code Evolution Patterns in Java) asato shimotaki <asatohan at gmail.com> 最終更新日 : 2009/6/21 (2004/4/22 より) [...] For twenty years, I spent two or three hours a day looking at pairs of things -- buildings, tiles, stones, windows, carpets, figures, carvings of flowers, paths, seats, funiture, streets, paintings, fountains, doorways, arches, friezes -- comparing them, and asking my

    SiroKuro
    SiroKuro 2008/07/26
    Java における「あるあるwww」集/めっちゃ化けそうな気がする。がんばってください!
  • ゆの in D - d.y.d.

    17:37 08/07/30 ICFP Workshops via 住井さん で、 ML Workshop の採択論文リストが出てることを知りました。 "Many holes in Hindley-Milner" (複数穴あり Zipper 的なものをMLで扱う話、穴の個数を型情報に含めるための加算できる自然数表現を差分リストで、 っていう技が面白かった) と "Unrestricted call-by-value recursion" (call-by-value で再帰的な (ループした) データ定義を実現する手法、これで、フルの call-by-need セマンティクスがなくてもそっち方面で使われてる テクニックをいくらか持ってこれるよ)というのだけ読んでみた。 他の併設ワークショップ の論文リストも 揃ってきてるみたいですね。 個人的に WGP の "Concepts =? Typ

    SiroKuro
    SiroKuro 2008/07/11
    うあー。これすっげー
  • 今日、友人がネット上で彼女を募集していることを知りました。…

    今日、友人がネット上で彼女を募集していることを知りました。 http://d.hatena.ne.jp/Yoshiori/20080630/1214814814 しかし、こんな不特定多数に募集をして「じゃぁ私が」なんていう女性はいないと思います。常識的に考えてここはJavaで実装すべきですよね!彼に早く彼女ができるように仕様や設計を練るのを手伝ってもらえませんか?

    今日、友人がネット上で彼女を募集していることを知りました。…
  • http://twitter.com/_tad_/statuses/847714834

    http://twitter.com/_tad_/statuses/847714834
  • やる夫で学ぶJRuby最適化 - recompile.net

    ____ / \  /\  キリッ .     / (ー)  (ー)\ /   ⌒(__人__)⌒ \ |      |r┬-|    |  Ruby 1.9はクリスマス前にリリースします \     `ー'´   / ノ            \ /´               ヽ |    l              \ ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒)) ____ /_ノ  ヽ、_\ ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒) | / / /     |r┬-|    | (⌒)/ / / // | :::::::::::(⌒)    | |  | 

  • Javaランタイム周辺の不要ファイルを消すJavaRa | 教えて君.net

    Javaアプリケーションを実行するために必要なランタイム。最近ではぼぼ全てのマシンにインストールされているだろう。JavaRaは、普通にバージョンアップなどを繰り返しているとマシン内に残る、Javaランタイムのゴミを消す小粒ツールだ。 Javaのランタイムをインストールして普通にバージョンアップを行っている場合、マシン内には、既に使わなくなった古いバージョンのランタイムが残されている。旧バージョンランタイムのファイルやレジストリ値など、ランタイム周りの不要ファイル/レジストリを消すための小粒ツールが「JavaRa」。いわゆる汎用的なお掃除ツールを使っていても残っている可能性が高いゴミなので、キレイ好きな人やHDD容量にあまり余裕がない人は試してみよう。100MB程度の空き容量を確保できる、場合もあるぞ。 「C:\Program Files\Java」がJavaランタイム周りのファイル。編集

    SiroKuro
    SiroKuro 2008/06/04
    場合もあるぞ
  • Jythonプログラミング

    西尾泰和(にしお ひろかず) http://www.nishiohirokazu.org/ サイボウズ・ラボ株式会社に勤務。 プログラマのためのコロシアム「どう書く?org」をβ公開中。 2005年、Lightweight Language Day and Nightにて出された 「計算機を作れ」というお題に対して、Jythonで「関数を定義できる関数電卓」を作成。 2006年、Lightweight Language Ringにて「ネットワーク通信をしてじゃんけんを戦う エージェントプログラムを作れ」というお題に対して Pythonのワンライナーで参戦。(動画) 2007年、Lightweight Language SpiritにてJython担当としてパネルディスカッションに参加、 Jythonでフィボナッチ数列を曲にするデモなどを行う。 書の「はじめに」を転載します。 みなさんはど

  • JavaとRubyの共通点と相違点

    実は共通点の多いRubyJavaJavaエンジニアであり、JavaRubyの両方のインストラクターでもある筆者が贈る、JavaエンジニアのためのRuby入門。 前回「Javaエンジニアにこそ、Rubyの良さが分かる」では、JavaRubyの概要と歴史、使われ方について紹介し、なぜJavaエンジニアRubyの学習に向いているのかについて解説しました。 今回から2回にわたって、具体的にRubyJavaの文法を比較してみます。JavaエンジニアRubyを学ぶ際、「ここはすんなり通過できる」というような共通する部分と、「ここは違いをよく認識する必要がある」というようなRubyにあってJavaにない部分を、いくつか紹介したいと思います。 まずは、Javaエンジニアがほとんど戸惑うことがないと思われる、JavaRubyの共通点をいくつか挙げてみます。 JavaRubyの共通点(1)~

    JavaとRubyの共通点と相違点
    SiroKuro
    SiroKuro 2008/03/26
    見た目同じに見えたとしても java と ruby のクラス定義には雲泥の差がある件について
  • ウェブ・アプリケーションの革命がここにある - Apache Wicketユーザーグループを始めます - 矢野勉のはてな日記

    Java, Wicket このブログをいままで読んでいる方なら、私がApache Wicketの大ファンだということはご存知でしょう。ついに1.3としてApacheプロジェクト入りしてから最初のリリースを果たしたWicketフレームワークは、日ではまだそれほど普及していませんが、今年は米国で「Wicket in Action」が出版される予定があるなど、かなり注目されているフレームワークです。 私はそんな控えめな表現では表せない魅力をWicketに感じています。Wicketは、Javaのいままでのフレームワーク開発の積み重ねがもたらした「ウェブ・アプリケーションの革命」です。Echo2のようにHTMLを廃してJavaだけでプログラムを組むのでなく、JSFのように新しいテンプレートを作るのでもない。HTMLJavaを結合して、HTMLJavaで、Javaらしいコードで制御するという方向

    SiroKuro
    SiroKuro 2008/01/17
    面白そうだけどサーバサイドの技術は活用する機会が無くて困る