一定期間更新がないため広告を表示しています
今回はN-gramでテキストを分解します。N-gram法とは対象の文字列を一定のN文字単位で分解し、それの出現頻度を求める方法です。これによって、検索エンジンに使われる転置インデックスを作成したいと思います。転置インデックスの作成方法にはN-gramの他に形態素解析があります。両者の性能の長短は全文検索 – Wikipediaに詳しく載っています。 Javaソースコード(Make2gram.java) さて、まずは文字列を2単語に切り分けるプログラムを作成しました。データ構造は単純にArrayListで、出現頻度も求めていません。 import java.io.*; import java.util.*; /** * N-gram法 */ public class Make2gram { public static void main(String[] args) { final shor
EL式を拡張したSAStrutsタグ/ファンクションは超便利:Java初心者が超俊敏にWebアプリを作る方法(4)(1/2 ページ) Eclipseプラグイン「Dolteng」のScaffoldという自動生成機能やSeasar 2.4のHOT deploy機能を利用して、DBの参照・更新・削除ができるSAStrutsのWebアプリを作ります。Java初心者だけでなくStrutsに慣れた開発者も必見です 超俊敏にJavaのWebアプリケーションを作るための便利なツールを紹介する本連載も今回で4回目です。前回の「サーバ再起動不要のSMART deployとバリデーション」では、バリデーション(入力チェック・検証)についてStrutsとSAStrutsを比較し、超俊敏に開発するうえで欠かせない「SMART deploy」とは何かについて解説しました。 今回はJSPの話です。このJSPの話で、SA
このエントリーではSeasar 2.4.26 から 導入された S2AbstractService について書かせて頂きます。S2AbstractService を活用することで、タイプセーフを保ちつつも、データアクセスロジック関連のソースコードを大幅に減らす効果が期待できます。 S2JDBC の弱点 S2JDBCを使えば、お手軽かつパワフルにデータアクセス処理が実現できます。しかし、生のS2JDBCを野放し状態に使った場合、プロジェクトの規模が少し大きくなると、ソースコードの重複を生みやすくなる問題に直面します。具体的に、次の1件分のデータ取得処理ですら、コピー&ペーストされて複数箇所で使用されてしまいます。 Emp emp = jdbcManager.from(Emp.class).id(empId).getSingleResult(); 対処方法は、共通処理を抽出してメソッド化するこ
@IT編集部 2009/3/24 最終更新: 2012/04/11 17:57 このページは、Java開発者/プログラマのための、Java SE(旧、J2SE)のコアAPIの使用コード例の記事へのリンク集です。パッケージごとに表でまとめてあります。メソッドやコンストラクタ、例外などAPIの使い方の参考にしてください。パッケージやクラスの並び順は、標準のJavadoc(「Java Platform, Standard Edition API 仕様」)と同様にしています。 すべてのクラス java awt(Abstract Window Toolkit) event image io(In/Out) lang(LANGuage) reflect math(MATHmatics) net nio(New In/Out) charset(CHARacter SET) rmi(Remote Meth
はーい、元気ですかー?ロックンロール! 今現在、SAStrutsを使い始めて2つめのプロジェクトを荒々しくコーディング中なんですが、今回はJQueryを利用したAjax処理をあちこちで採用してます。 マスタ管理とかの一覧のページングとかはAjaxだし、追加・更新もajaxでlightbox風な感じで表示してるし。 で、リクエストが正常に処理された場合はおkなんですが、入力エラーだったりセッションが切れてたり例外が出たときに、デフォルトのままエラー画面とかにforwardすると、ブラウザ側でエライことになっちまいますよね? divの中にエラー画面がloadされたり、javascriptをevalしようとしたら実はHTMLだったぜ的な。 そこで、今回はRequestのヘッダーの中身によって、Ajaxでのリクエストなのか、クライアントはHTMLを期待しているのかそれともjavascriptやjs
組み込みデータベースといえばApache Derby、H2 Database Engine、HSQLDB、Berkeley DBなどが有名だが、このなかでも高いパフォーマンスで注目を集めているデータベースがH2 Database Engine(以降、H2)だ。先日Apache Derbyの最新版がリリースされたが、H2も最新版が公開された。 図.1 H2のサイト – トップページに掲載されているパフォーマンスグラフに自信がかいまみれる H2の組み込みデータベース最強という呼び声は、H2のサイトに公開されているパフォーマンスグラフの結果によるものだ。真偽のほどは各個評価して欲しいが、組み込みにおける実行性能に自信があるようすは伺える。
StrutsのXML地獄から開発者を解放するSAStruts:Java初心者が超俊敏にWebアプリを作る方法(2)(1/3 ページ) Eclipseプラグイン「Dolteng」のScaffoldという自動生成機能やSeasar 2.4のHOT deploy機能を利用して、DBの参照・更新・削除ができるSAStrutsのWebアプリを作ります。Java初心者だけでなくStrutsに慣れた開発者も必見です 連載第1回の『1分でWebアプリを作れるEclipseプラグイン「Dolteng」』では、Webアプリケーション開発に非常に便利なEclipseプラグインである「Dolteng」の機能を使用して、「SAStruts」(後述)のプロジェクトを自動生成しました。 このDoltengで自動生成されたプロジェクトとソースはテンプレートとしての基本的機能しか作成されていません(Doltengも進化中で
1分でWebアプリを作れるEclipseプラグイン「Dolteng」:Java初心者が超俊敏にWebアプリを作る方法(1)(1/3 ページ) Javaの業務用Webアプリ開発に必要なもの 読者の皆さんは、Javaで業務用のWebアプリケーションを開発するのに必要なものとして何を思い浮かべるでしょうか。統合開発環境? サーブレット/JSP? アプリケーションサーバ? Struts? DB接続のO/Rマッピング? DIコンテナ? 技術的には、これらも確かに必要です。また、アプリケーションが“安全”に“確実”に動くことが業務で使うときには求められます。 上記は当然のものとして、“仕事”として売り上げを上げるためにアプリケーション開発を行う場合に一番求められるのは、アプリケーションを一から開発する際や、デバッグ/修正する際の“速さ”や“俊敏さ”ではないでしょうか。 たとえJava言語の初心者、また
先日、後輩向けにJavaの事始からWicketのあたりまでざっと話をしたのですが、その中で触れたm2eclipseのインストールと使い方についてまとめておきます。 今回の記事ではライブラリ管理についてのみ言及しています。 Eclipseのバージョンは3.4.2でWTPが最初から入っている「Eclipse IDE for Java EE Developers」を使っていますが、3.4.x系なら同じようにできると思います。Pleiadesを使って日本語化していますので、デフォルトの英語のままの方は適当に読み替えてください。 全体的にWebからダウンロードする作業が多いので結構時間がかかりますが、2回目以降はもっと早くなります。 まだ使い始めたばかりの拙い知識で書いているので、間違いやもっとよい方法がある場合はぜひぜひご指摘ください。 1. Mavenとは MavenとはApache Softw
よくある会話 こないだ久しぶりにある方とお会いして、色々情報交換したのですが、「StackTraceをみないでデバッグし始めてしまう人」はだいぶ少なくなってきたように思っているのですが、まだまだ結構こういうことがあるようです。 X「例外がでてるのですが一時間かけても原因がわからなくて...」 Y「お、じゃあStackTraceは見た?」 X「いやみてないです」 Y「ちょっと見せてみて」 X「これです」 Y「(StackTrace見てすぐに)ああもう原因わかった」 X「...」 Y「...」 ポイントは二つ 大きく二つのポイントがあると考えました。 A. 例外発生時のデバッグ作業が手順化されてない B. スタックトレースの見方がわからない A. 例外発生時のデバッグ作業が手順化されてない 例外が発生したら、まず何をするべきか!? A-1. 例外クラス名・例外メッセージを読む A-2. スタッ
デバッグ手順(スタックトレース重要) - jfluteの日記 良エントリ。 A-1. 例外クラス名・例外メッセージを読む A-2. スタックトレースを見て例外発生箇所を特定する A-3. デバッグログをみて挙動をトレースする A-4. 例外クラス名・例外メッセージ・スタックトレース・デバッグログを記録 A-5. 原因特定のための情報が足りてない場合にその情報をログに出力する A-6. それでもわからない場合はデバッガを起動する を無理矢理 3.失敗の原因について仮説を立てる 4.仮説にもとづいて予測する 5.その予測を実際にプログラムを動作させて確認する デバッグ方法について - wyukawa’s blog に当てはめるとA-2が3でA-3、A-5、A-6が4、5かな。 僕自身のやり方で言うとA-2で例外発生箇所を特定したらデバッガで追うかな。。。 前提条件としては言語はJavaでIDE
僕もスタックトレースの読み方についてちょっと書いてみる。 例はOracle Technology Network for Java Developers | Oracle Technology Network | Oracleを使う。 1:class MyClass { 2: public static void main (String args) { 3: crunch(null); 4: } 5: static void crunch(int a) { 6: mash(a); 7: } 8: static void mash(int[] b) { 9: System.out.println(b[0]); 10: } 11: } これを実行すると以下のようになる Exception in thread "main" java.lang.NullPointerException at M
技術者・SE・プログラマ面接時の技術的な質問事項というエントリをはてブで見かけたのだが、私もjavaプログラマーの面接を割とよくやっているので、よく質問する内容をまとめてみた。 (ちなみに、基本的にコーディング面接の形態を取っている) プロジェクトの性質にもよると思うが、私の場合には、情報処理技術者試験的に基礎が満遍なく抑えられているかどうかよりも、 すぐ答えが見つからないような課題に対して、きちんと自分でやり方を考え、対応することができるか 「変な」コードをコミットしたりしないか(見つけにくいバグを混入させるとか、汚いとか、遅いとか)といった点を重視している。 まず、何を知っているかよりも、どんなものを作れるか、どんなことができるか、という質問。 ここで強烈な回答が来る人は、たいていここより下の質問は「あー、はいはい」という感じでサラッと答えてくることが多い。 これまでに携わってきた開発
各種ブログのRSSのようなWeb上のXMLリソースをdom4jやJDOMなどで読み込むと、パースに失敗するケースがとても多いです。というのも、こういうXMLは基本的に、validであることをあまり期待できないからです(エスケープ漏れがあったり、"<!--"で始まったコメントの直後に"-"が来たりする[追記: これはinvalidな例じゃなく非well-formedな例でした])。ひどいときはwell-formedですらないこともあります。 こういう問題がある場合、HTMLであれば、MayaaやS2JSFでも採用されているNekoHTMLというライブラリを使って、エラーを出さずにルーズにパースできます。このNekoHTMLを、HTMLではなくXMLに適用する方法を調べたので、メモしておきます。 パーサを以下のような構成にすると、XMLの解析に適した状態になります。 NekoHTML側ではなく
MCS (Microsoft Consulting Services) の某コンサルタントがまったり語るテクノロジのお話です。 触って覚える Microsoft Azure 今日から TechSummit 2018... Date: 11/05/2018 Docker for Windows & Web Apps for Containers 実践活用技法 先日、しれっと営業部門のクラウドソリューションアーキテクトに異動した話を書いたのですが、このロールは Azure... Date: 09/27/2018 Agile も DevOps も銀の弾丸なんかじゃない ……と、のっけから噛みつかれそうなタイトルを掲げてみたのですが;、ここ最近、立て続けて数件、「いやそれはアジャイルとか無理だろ;」的な話があって、ちょっとエントリを書いてみようかと思った次第。どんな話... Date: 08/28
後輩に聞かれたので書いてみる。 Javaクラスはそのクラスが投げるチェック済み例外をすべて、メソッド・シグニチャーの中で宣言する必要があり、またタイプEのチェック済み例外を投げるメソッドを呼ぶメソッドはどれも、Eを捉えるか、同じくE(またはEのスーパークラス)を投げるとして宣言する必要があります。こうすることでJava 言語は、制御がメソッドから出る方法として想定できるものをすべて、強制的に文書化させるのです。 Javaの理論と実践: 例外をめぐる議論 というわけです。というのも寂しいし、なんとも固い感じなのでもうちょっと噛み砕いてみる。 自分が呼び出しているメソッドで例外が投げられる場合、自分が書いているメソッドでその例外を捉えるか、例外を投げる宣言をする必要がある。 具体的に SimpleDateFormat を例にして考えてみる。 SimpleDateFormat の format
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く