タグ

javaに関するcurestのブックマーク (32)

  • Javaバイトコードの読み方 - プログラマーの脳みそ

    Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh

    Javaバイトコードの読み方 - プログラマーの脳みそ
  • Executing scripts on a remote machine - Marigan's Weblog

    curest
    curest 2009/12/12
  • GAE/JでSerializableなクラスを永続化してみる(落とし穴注意) - やればできる子の日記

    ここにあるように、GAE/JではSeriarizableなクラスをBLOBとして永続化することができます。 JDO準拠なので、POJOなSerializableを永続化できる! スゲェ! Google様一生ついて行きます! って思ってたんですが、要注意物件でした。 まず、Serializableなフィールドに@Persistentのアノテーションをつけるときに、defaultFetchGroup = "true"とする必要があります。 @Persistent(serialized = "true", defaultFetchGroup = "true") public HashMap<String, Serializable> prop = new HashMap<String, Serializable>(); これをつけないと、PersistenceManager#getObjectB

    GAE/JでSerializableなクラスを永続化してみる(落とし穴注意) - やればできる子の日記
  • Java正規表現の使い方

    正規表現とは正規表現で用意されている特殊な文字や構文を使って作成したパターンを使い、対象の文字列とマッチするかどうか調べるための方法です。正規表現を使うことで「ABCDE」など指定した文字列と完全に一致しているかどうかを調べるだけでなく、「A」で始まり「E」で終わる 5 文字の文字列などのようなより柔軟で複雑なパターンを定義することができます。ここでは Java における正規表現の使い方について解説します。 ※ 正規表現の基的な考え方については「正規表現入門」もあわせてご参照ください。

    Java正規表現の使い方
  • 八角研究所 : Java の MiGLayout で超簡単にGUIアプリを作る方法

    Java の MiGLayout で超簡単にGUIアプリを作る方法

    curest
    curest 2009/08/23
    簡単デザインだ。便利。
  • NetBeans IDE での Swing GUI のデザイン - チュートリアル

    はじめに IDE の GUI ビルダーを使用すると、レイアウトマネージャーを熟知していなくてもプロ級の GUI を構築できます。コンポーネントを任意の場所に置くだけでフォームのレイアウトを決定できます。 GUI ビルダーの視覚的なフィードバックについての詳細は、「 GUI Builder Visual Feedback Legend 」を参照してください。 プロジェクトの作成 IDE では、プロジェクト内で Java 開発を行なうので、ソースやその他のプロジェクトファイルを保存する ContactEditor プロジェクトを新規に作成する必要があります。IDE では、Java ソースファイルと、関連するメタデータ全体をプロジェクトと呼びます。メタデータには、プロジェクト固有のプロパティーファイルや、その構築と実行を制御する Ant 構築スクリプト、Ant ターゲットを IDE コマンド

    curest
    curest 2009/08/23
    GUIの説明は動画があるとわかりやすい。
  • ぼくがLLのひとに「ガツン」と申し上げたこと - ひがやすを技術ブログ

    ぼくは水曜日にTokyo Cloud Developerの集まりに出た。 そこで、LLのひとから、「Google App Engineは、Python版以外にJava版も出たけど、サンプル見たけど、たくさんコード書かなければいけなくて、正直どこがいいのか教えて欲しい」という質問があった。 blogに名前を出していいかの了解を得ることを忘れたので、ここには、LLの人としか書けない。 ぼくは、そこで一言申し上げた。あるいはそれは、「申し上げた」というような生やさしいものではないかも知れない。端的な言い方をすれば、ガツンと言ってやった。 客観的に見て、ぼくはガツンと言ってやったと思う。LLな方々を前に、「いまどきのフレームワークは進化しているから、言語による差なんて余りない。仮に、Javaのほうが二倍コードを書く必要があったとしても、開発の中でコードを書いている時間より考えている時間のほうが圧倒

    ぼくがLLのひとに「ガツン」と申し上げたこと - ひがやすを技術ブログ
    curest
    curest 2009/06/13
    すばらしい。作るのはどの言語でもそんなに変わらないと思うし、保守性はJavaが圧倒的だと思う。
  • プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ

    プログラミングを始めてから今日に至るまで、 様々なタイプのプログラマーと開発を共にしてきたが、 驚くべき速度で高い品質のソフトウェアを作り上げるプログラマーには、 一つ共通の特徴があるように思える。 それは、「はまる」時間が極端に短い、ということである。 風のプログラマー」を指向しており、開発速度を重要視している。 例えば平成14年未踏ソフトウェア創造事業「PICSY」では、 発表直前に知人でプロジェクトリーダーの鈴木健にレスキュー隊として呼ばれて 2,3日でGUI全般と、クライアント/サーバー通信部分の設計と実装を終わらせたのだが、 このときなどは、大体の要件を口頭で聞いた後は、 ほぼまったく手が止まらずコードを書き続ける感じで開発をしていた。 「はまる」時間の長さは開発速度に直結するわけだが、 プログラマーが「はまる」場合にはある程度の傾向があると思うので、 今日は「はまる」プログラマ

    プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ
    curest
    curest 2009/05/16
    わかっちゃいるけど、出来てないなぁ。とりあえずコミットはsvnのコメントによく書いてた。
  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
  • Javaで、ちょwww - よねのはてな

    GoogleAppEngine Javaで遊べるようになったからって変なExceptionばかり投げちゃダメですよ。 public class ChowwwException extends Exception { public ChowwwException(String message) { super(message); } } public class Test { public static void main(String[] args) throws Exception { if (true) { throw new ChowwwException("イミフwww"); } } } Exception in thread "main" ChowwwException: イミフwww at Test.main(Test.java:4)ダメ。ゼッタイ。

    Javaで、ちょwww - よねのはてな
    curest
    curest 2009/04/09
    うは~ww
  • エラーを含んだXMLをルーズにパースする - kaisehのブログ

    各種ブログのRSSのようなWeb上のXMLリソースをdom4jやJDOMなどで読み込むと、パースに失敗するケースがとても多いです。というのも、こういうXMLは基的に、validであることをあまり期待できないからです(エスケープ漏れがあったり、"<!--"で始まったコメントの直後に"-"が来たりする[追記: これはinvalidな例じゃなく非well-formedな例でした])。ひどいときはwell-formedですらないこともあります。 こういう問題がある場合、HTMLであれば、MayaaやS2JSFでも採用されているNekoHTMLというライブラリを使って、エラーを出さずにルーズにパースできます。このNekoHTMLを、HTMLではなくXMLに適用する方法を調べたので、メモしておきます。 パーサを以下のような構成にすると、XMLの解析に適した状態になります。 NekoHTML側ではなく

    エラーを含んだXMLをルーズにパースする - kaisehのブログ
    curest
    curest 2009/02/28
    タイムリーだ。HTML読み込んで同じような事やってた。
  • NetKernelでJavaの並行性を越える

    Javaはマルチスレッドと並行性の構造をサポートしていますが、最新のマルチCPUハードウェアに適合するアプリケーションの開発はそう簡単にはいきません。そのような場合、NetKernelなどの代替環境を用いると、ハードウェアの処理能力を余すことなく利用する道が開けます。 Javaでの並行性プログラミング マルチコアおよびマルチCPUのシステムが普通に使われるようになった現在では、複数のタスクを同時に実行することが現実的な課題となっています。しかし、大抵のシステムでは、別のスレッドにタスクを実行させるというような簡単なやり方でこれに対応することはできません。使用するプログラミング言語から実行環境に問い合わせて、システムリソースの使用スケジュールを決定する必要があります。ハイレベルの並行性にかかわる関数を簡単に活用できるかどうかは、言語の構造に左右されます。 従来は、「ヘルパー」を利用して複数の

    NetKernelでJavaの並行性を越える
  • DOMとSAXとStAXと。 - 都元ダイスケ IT-PRESS

    こんな名前のAPIがありますね。主にXMLの読み込みを行う為のAPI群であります。SAX以外は、書き出しもできますね。そう、SAXは書き出しできないのですね、基的に。 <foo> <bar>baz</bar> </foo> っていうもの凄い単純なXMLを、これらのAPIでどのように扱うのか。比較なエントリ。 まずはDOM DOMは、パース時にXMLの内容を全てメモリ上に保持し、パース後にどの要素にもいつでもアクセスできるような環境を作り出す。 import java.io.ByteArrayInputStream; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.t

    DOMとSAXとStAXと。 - 都元ダイスケ IT-PRESS
  • JavaのInterfaceにstaticメソッドを定義してる風で - yojikのlog

    どうも、正月テレビ漬けになってたおかげで、Perfumeののっちとかしゆかを逆に覚えてたことに気づいたおっさんです。3人の中ではごりあーちゃんファンです。 ThoughtWorksアンソロジーのドメインアノテーションの章で、JavaのInterfaceをアノテーションの代わりに利用してみるという節があります。でも結局色々な理由があってダメダメなわけです。そのダメダメな理由のうち、Interfaceにstaticメソッドを定義できないというのがあるんですが、これに関しては回避できるような気がしたので、試してみました。 Interfaceには実はstaticなネストクラスを定義することができます。それにメソッドを定義すればやりたい放題です。 public interface Sample { public static abstract class Methods { public stati

    JavaのInterfaceにstaticメソッドを定義してる風で - yojikのlog
    curest
    curest 2009/01/29
  • Grailsの登場でRuby on Railsに移行する理由はなくなった - 2009-01-23 - きしだのはてな

    とか極端なことを書いちゃうと、またいろいろ怒られるわけですが。 Grailsによって、少なくともJavaプログラマがRuby on Railsに移行する理由はなくなったと言ってもいいのではないでしょうか。そして、JavaRubyも知らない人にとっても、今からWebアプリを作成するためにどちらかを選ぶならRuby on RailsよりもGrailsのほうがいいのではないかと思います。 Grailsの価値は、もちろんRuby on RailsのようにWebアプリケーションが作成できることにあるのですが、Ruby on Railsのようなフレームワークというのは他にもあります。 実運用を前提に考えると、Grails当の価値は、Java VMで動くこととSpring+Hibernateがベースになっていることであると思います。つまり、SpringやHibernateといった、Javaの世界で

    Grailsの登場でRuby on Railsに移行する理由はなくなった - 2009-01-23 - きしだのはてな
  • WicketとSeasar 2を統合する「wicket-seasar2」ライブラリを作りました - 矢野勉のはてな日記

    Java, Wicket主についったーでid:yuripopがWicketとSeasar2を統合しようとしてウンウン悩んでいるのをみて、いっちょやるかと思ってやった次第。 Seasar 2とWicketの統合にはS2Wicketというライブラリが既に存在していて有名なんですが、このS2WicketがWicket 1.2系統(org.apache.wicketにパッケージ名が変わる前)に向けて作られているっぽく、最新のWicket 1.4-rc1では動かないんですね。 Wicketのページクラス内のフィールドに値を持つ場合、それらのオブジェクトはすべてシリアライズ可能である必要があります。これは、ページはHttpSessionに格納されたり、2次キャッシュ・ファイルに保存されたりするためです。そのために、単純にDIで値を放り込んでもダメなんです。 Wicketでは、この問題を「フィールドには

  • TopHatenar+HatenarMapsのシステム構成 - kaisehのブログ

    TopHatenarとHatenarMapsのシステム構成が、バージョンアップの度に複雑化してきて、自分でも把握しづらくなってきたので、整理する意味で図を作ってみました。 図に示したように、HatenarMapsは、S2RMIを使ってTopHatenarと協調動作しています。はてなダイアリーとはてなブックマークに関するデータをクロールしているのは、TopHatenarの側です。HatenarMapsの側では、TopHatenarのService層をS2RMI経由でコールして、集計済みのはてブ情報を取得し、クラスタリング処理の後にポリゴンを計算しています。その他、HatenarMaps上でコメントビームの表示等がリクエストされる度に、TopHatenarをコールしています。よって、HatenarMaps側のDBには、基的にポリゴンデータしか入っていません。 以下、図中に出てくるフレームワー

    TopHatenar+HatenarMapsのシステム構成 - kaisehのブログ
  • 【P3】P3:PeraPeraPrv - とかいろいろ

    Mac/linux/Windowsに同じ使い心地のクライアントを P3:PeraPeraPrv(以降P3)は、Pure Java Twitterクライアントです。JavaSE5以降の環境で動作します。 P3は@cheebowのWindowsTwitterクライアント「Twit」とMacTwitterクライアント「Twitterific」に範をとり、それぞれのクライアントの良い点にいくつかの機能を追加し、全てのプラットフォームで動作するものを、と書かれたものです。*1 開発、及び動作確認はMacOSX "Snow Leopard"、Windows7、Ubutu10.04LTSで行っており、これらの環境では多少の差異、機能制限こそあるものの、各OSに合わせた、ほぼ同様のルック&フィールと動作をするようにデザインしています。*2 また、P3は多言語対応を行っており、言語コードに対応したxml

    【P3】P3:PeraPeraPrv - とかいろいろ
  • オンデマンドデプロイのすすめ - ひがやすを blog

    JavaでAnnotationがついたクラスがあったら、それに対して処理したい場合は、Seasar2のコンポーネント自動登録で使っているように、ファイルシステムまたは Jar ファイルを全走査してクラスロードする方法もあります。 ファイルシステムまたは Jar ファイルを全走査してクラスロードしてください。が結論です。 Seasar だったら、 org.seasar.framework.util.ClassTraversal を読むべし。 でも、これは、Seasar2.3時代(3年前)の話で、技術としてはちょっと古い。 HOT deployなどと組み合わせると、リクエストのたびに全コンポーネントをデプロイする必要があるので、コンポーネントの数が増えると実用的には使えないのです。 そこで、考え出したのが、Seasar2のONDEMAND deploy。コンポーネントの定義を見に行って、あれば

    オンデマンドデプロイのすすめ - ひがやすを blog
    curest
    curest 2008/11/29
    わかんないことがあれば、きいてください。いくらでも教えますよ。
  • Javaフレームワークの比較検討資料公開 - 矢野勉のはてな日記

    Java仕事で各種フレームワークを比較検討したので、比較用に作った参考資料を公開します。ちなみに現在私は、ドワンゴさんの社内システム開発をお手伝いしてまして、その一環で調べたものです。会社資料じゃなく、私の資料ということでブログで公開してよい、むしろしとけ、とのことなので公開しときます。 今回の案件向けにアプリケーションを画面層コンテナ層データアクセス層に分けて、それぞれフレームワークを選ぶのが目的です。コンテナ層はDIコンテナのうちいずれか、データアクセス層はO/Rマッパーを選ぶことになります。 太枠の範囲が選定対象です。よくに出てくる杓子定規な階層図とは変えてあります。 次のものを比較検討しました。画面層SAStrutsApache Wicket(ほかにもTeedaとかClick Frameworkとかももともとは候補にあったが、調査が追いつかないので二つに絞った)コンテナSeasa

    curest
    curest 2008/11/20
    フレームワークは使えるけど、どれが今回の案件に向いてるとか比較できないなぁ。ここまで出来てjavaで一から全て出来るという事なんだろうな。素晴しい。