タグ

programmingとjavaに関するhiro360のブックマーク (250)

  • 【新人研修向け特別企画】JavaでPHPを使ってみた

    教育界、技術者コミュニティでJava言語の教育と啓蒙に長年携わってきた筆者が、独自の視点からJavaの面白さを掘り下げていく。(編集部) Webサービスを実装する際によく使われるプログラミング言語として、Java以外には何があるでしょうか? RoR(Ruby on Rails)の出現によりRubyが最近は注目されていますが、普及度を考えるとPHPではないでしょうか。数年前には、LAMP(Linux、Apache HTTP Server、MySQLPHP)という用語が流行しました。もちろん、LAMPのPはPerlPythonを意味する場合もあるようですが、筆者がよく使用しているWebアプリケーションはJavaPHPでコーディングされたものが多いので、PHPの方をすぐに想像してしまいます。今回は、Javaで記述されたPHP実行エンジンがあるということで調べてみました。 Quercusとは

    【新人研修向け特別企画】JavaでPHPを使ってみた
  • 2007-10-25 - ひがやすを blog

    っていうか、Hibernateにも昔からcriteriaあるよね? http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#querycriteria List cats = sess.createCriteria(Cat.class) .add( Restrictions.like("name", "Fritz%") ) .add( Restrictions.between("weight", minWeight, maxWeight) ) .list(); 流れるようなインターフェースとメソッドチェーンは違うものだよヨシオリ。ぱっとみは似ているかもしれないけど。 流れるようなインターフェースでは、ソースコードを書いている人が、中断することなく流れるようにコーディングできなければいけない。 HibernateのCrit

    2007-10-25 - ひがやすを blog
  • 回転と脱線 - vimでjavaの開発を行う その1

    まあ前々から考えてた事なんだけどできるのかなあと。 インスコ時はXみてーなのとか立ち上がってないといかんっぽいけどインスコが 終わればterminalだけで動くはずです。 まあちょっとやってみたいひとは参考にしてみてください。 使用するもの JDK1.5 Eclipse3.3 Vim7 eclim1.3.1 1. JDKをインスコ まあ普通にインスコします。 1.5以上じゃないとあかんらしい。 2. Eclipse3.3をインスコ Enabling Open Innovation & Collaboration | The Eclipse Foundationから3.3をダウンロードします。 解凍して適当な場所に置きます。 一度起動してworkspaceの場所、あと自動ビルドの指定をしておきます。 WTPとかインスコしておくといいらしいのでupdateから入れておきます。 emfとかもいる

    回転と脱線 - vimでjavaの開発を行う その1
  • プログラマなら人月なんかさっさと超えろ - 矢野勉のはてな日記

    Java, プログラミングノリノリで書いてみる。 人月というのは「人月の神話」以来、現場の技術者にとっては「お金の計算にしか使えない単位」なのですが、発注者側に分かりやすいということでいまでも大はやりしています。というか受注者側もまじめにこの単位で計算しています。 そしてJavaの世界というのは、私のようにJavaが大好きだからやってる、という人間はすごく少数派で、「そろそろJavaでもやっとくか」「Strutsの使い方覚えたからもういいか」「できればJavaなんかいじりたくないなー。俺も早くプログラマに『これやっといて』って言えるようになりたい」という人のほうが多いのが実情なんですね。その点Rubyの世界は、今は「好きだからやってる」人が圧倒的でしょう。プログラム能力の高いJavaプログラマを探すのは、プログラム能力の高いRubyプログラマを探すよりずっと大変だろうと思う。 Javaの世

  • ひがやすを blog - 2007-09-24 - 「なぜお前らは「好きだからコードを書く」はできるのに「好きだからメンテナンスする」ができないのか?

    当の問題は「スーツ + 頭のカタイおやじ VS. 無垢な技術者」という話だろうか。なんで、スーツの人や、頭のカタイおやじや、無垢な技術者がいるのか、その前提条件を問わなくちゃいけないんじゃないのか。その前提条件に、自分がどんな一手を打てるのかを考えて、世界を変えていこうよ。ていうか、世界を変えていたじゃない。 なんか、高井さんが勘違いしているみたいだから、書いておくけど、俺は、「だから世の中が悪い」とかいうつもりはありません。この構図は、過去何度も繰り返されている事実だから、まず私たち技術者は、その事実をきちんと認識しなければならない。 昨日は書かなかったけど、実は、「弱い技術者」というのは、「頭の固いおやじ予備軍」でもだったりする。 実際良く見かけるんだけど「最新の技術についていくのは疲れた」「なにかスーパーなデファクトが現れてそれで統一されて欲しい」「考えるのめんどくさいから標準で統

    ひがやすを blog - 2007-09-24 - 「なぜお前らは「好きだからコードを書く」はできるのに「好きだからメンテナンスする」ができないのか?
  • mixi Engineers’ Blog » OpenSSLの暗号文をJava/Perl/Rubyで開く

    秘密鍵やプライベートな情報などを秘匿するためにパスワードでデータを暗号化・復号したい場合があります。このとき、暗号化と復号するアプリケーションが同じであれば簡単ですが、例えばCで暗号化してJavaPerlRubyで復号するといった風に異なるプラットフォームで暗号データをやりとりする場合には、いくつか気 をつけなければいけないポイントがあります。 OpenSSLによる暗号化 OpenSSLはWebサーバのSSL/TLSサポートに利用されますが、その他にも付属しているopensslコマンドから基的な暗号アルゴリズムを利用できます。次のような簡単なコマンドで、パスワードを使ってデータを暗号化したり復号したりすることができます: $ echo 'Hello World!' | openssl enc -e -aes-128-cbc > cipher.txt enter aes-128-cbc

    mixi Engineers’ Blog » OpenSSLの暗号文をJava/Perl/Rubyで開く
  • プログラマーの“宿命”? ファイル操作に関する常識

    プログラマーの“宿命”? ファイル操作に関する常識:プログラマーの常識をJavaで身につける(7)(1/4 ページ) 連載は、Java言語やその文法は一通り理解しているが、「プログラマー」としては初心者、という方を対象とします。Javaコアパッケージを掘り下げることにより「プログラマーの常識」を身に付けられるように話を進めていきます。今回は「ファイル操作」について。OSやアプリケーションなどのさまざまなプログラムでよく行われ、とても身近な存在であるファイル操作の仕方を一から解説します

    プログラマーの“宿命”? ファイル操作に関する常識
  • JavaでRubyのfixtureみたいなことをしよう - Fixtureを作りました - 矢野勉のはてな日記

    Java Ruby on Railsのfixtureという機能は有名なので皆さんご存じかと思います。JavaでいうJUnitのTestCaseクラスに、 fixture :test と書くだけでtestというテーブルにtest.ymlという名前で用意されたテストデータが投入されるという機能です。 同じような機能はJavaでもかなり以前からDbUnitとして提供されてきましたが、使い勝手という点で圧倒的にfixtureが勝っている。というのは、DbUnitは汎用的なライブラリなので使うためにはDBへの接続定義をコードで書いたり、ロードするxmlファイルを探したり、といろんな手間があったのです。 DbUnitはデータベーステストのデファクト・スタンダードなのでJavaプログラマなら一度くらいは使ったことがあるかと思います。私も仕事柄いろんなところのアプリケーション開発環境を構築するのを手伝いま

  • Djangoへの片思い日記 - ■Struts脳の恐怖とRails

    Strutsは良いフレームワークであった。 登場時のStrutsは MVCを体現しWebフレームワークとしてプログラマ達に夢を見せた。 今見てしまえば冗長で可読性の低い設定ファイルに 糞のようなtaglibとゲロのようなjspであるが それでも当時はセンセーショナルだった。 しかし、その後、Strutsには悲劇が起きる。 あまりにもセンセーショナルなデビューのおかげで それを金に換えようとしている奴らに目を付けられてしまった。 人月計算とExcelスーツで出来ている奴らだ。 奴らは Strutsをいかに簡単であるか宣伝し 役に立たない講習会で金を取り sessionが何なのかすら知らない人間を大量に生み出した。 そうやって生み出されたStruts脳人間は 「動くコードが正義」の負の面を体現し スパゲティを更に絡ませたActionFormを書き 解読不能なActionを書いた。 勉強など一

    Djangoへの片思い日記 - ■Struts脳の恐怖とRails
  • Java SE 6 じゃじゃ馬ならし

    第一幕 虫退治と管理 OutOfMemoryError でお悩みのあなたに (改訂 Feb. 2007) OutOfMemoryError のハンドリング MXBean を作ってしまおう (改訂 Feb. 2007)ユーザ定義 MXBean より便利になった JConsole (Feb. 2007)JConsole JConsole をカスタマイズしよう (Feb. 2007)JConsole API 管理に使える便利なツール (Feb. 2007)jinfo, jmap, jstack, jhat 第二幕 脚 言語の中の言語 (Nov. 2005)Scripting 第三幕 机の上 ネイティブアプリにアクセス (改訂 Feb. 2007)Desktop システムトレイが使える (Nov. 2005)TrayIcon 起動を華麗に (Nov. 2005)SplashScreen タブにボ

  • 『パッケージ図とマインドマップ』

    私の『ソースコードリーディングから学ぶ Javaの設計と実装』では、Javaのソースコードを読む際にはまず「ソースコードの地図」となるパッケージ図を描いて、そのパッケージ構造を把握してから読むことを薦めている。 パッケージ図を使って依存関係まではっきり把握するのがベストなのだけれども、実際にやってみるとパッケージが膨大にあって描ききれない場合や、依存関係が複雑に入りくんでいて明確な構造を見出せないことが多い。その場合は、単にディレクトリの階層構造を表すような図を描くだけでもいいと説明している。 上記のように素っ気なく描くのもいいのだが、パッケージ構成をマインドマップを使って描いてみるのはどうだろうか、と最近ふと思った。さっそく試しに、JRubyソースコードのパッケージ構成をマインドマップで描いてみた(ツールにはFreeMindを使った)。 かなりいい。マインドマップは空間を上手に使うので

  • 新・たけぞう瀕死の日記

    ■ [Click]ClickとUrl Rewrite Filter ClickとUrl Rewrite Filterを組み合わせて任意のURLを使う方法を試してみました。以下は/pages/ページ名というパスを/ページ名.htmにマッピングする場合の例です。<outbound-rule>を定義しておくことでページに出力されるリンクやフォームのパスを書き換えることもできます。<urlrewrite> <rule> <from>/pages/(.*)</from> <to type="forward">../$1.htm</to> </rule> <outbound-rule> <from>/(.*?)/(.*)\.htm</from> <to>%{context-path}/pages/$2</to> </outbound-rule> </urlrewrite> いろいろとハマったのですが最

  • Url Rewrite Filter その7 実は結構重くない? - monjudoh’s diary

    web.xmlの設定からUrl Rewrite Filter自体を外した時との比較で、 outbound-ruleとruleが両方記述されている場合は2,3割CPU使用率が上がってる感じ。 outbound-ruleのみの場合は両方記述されている場合とほぼ同じ、 ruleのみの場合はほとんどCPU使用率が上がらないので、 outbound-ruleを使うと重くなるということみたい。 その5で書いたけど、outbound-rule動作時には、 UrlRewriteWrappedResponseのインスタンスが生成されているはずだから、 その分重くなってるのかもしれない。

    Url Rewrite Filter その7 実は結構重くない? - monjudoh’s diary
  • Amazon Web ServiceとMavenで開発する蔵書管理システム:CodeZine

    はじめに Amazon Web Serviceを利用した蔵書管理システムの開発を通して、以下の技術の利用方法を紹介します。Amazon Web ServiceApache Mavenと各種PluginJAXBによるXML Data→Java Objectへの変換Spring Framework、HibernateによるDAOの開発Web ServiceとDAOを統合したFacadeの開発BarracudaMVCによるWeb Applicationの開発  この回では、以下のテーマを紹介します。Amazon Web Serviceの登録ID(Subscription ID)の取得Mavenによる開発環境の構築Amazon Web Serviceへのアクセス  なお、Amazon Web ServiceやMavenに関する情報は、「参考資料」で紹介しています。対象読者中級レベルのJava開発者

  • Rhino on Rails

    Steve Yegge / 青木靖 訳 2007年6月26日 なんて日だろう。John Lamに取り上げられると、Slashdotに取り上げられるよりひどいことになるらしい。私のチームのみんなは一日中私のことを笑っていた。どうしてこんなことになったのか見当も付かない。 雪崩のようなメールにいちいち返答するより、一括アップデートしてしまう方が良さそうだ。 しかしその前にだ、いったい今の私くらい当惑している人間が他にいるだろうか? Foo Campで行われた数々の目を見張るような議論の中で、私が即興でしたちょっとした講演——それにはどういうわけか20分前にテントからはい出 してきたばかりみたいな私の写真が添えられていて、二日酔いで道に迷い、どうして自分がセバストポルの真ん中の原っぱにいるのかも分らない様子で写っており、分ったのは どうも前の夜に朝10時の講演を引き受けたらしいということだけとい

  • Java開発者のためのRubyガイド:CodeZine

    Builderパターンは、Template Methodパターンによく似ています。Template Methodパターンとの大きな違いは、その目的がオブジェクトを生成することであり、アルゴリズムを実行することではないという点です。Builderパターンは、役割分担を明確にするだけでなく、インターフェイスと実装の分離を実現する代表的な事例であり、パターンを使用しない場合に起こりうる重複をかなりの程度防ぐことができます。

  • Url Rewrite Filter その6 なんかキモイ現象 - monjudoh’s diary

    <rule> <condition type="parameter" name="hoge" operator="equal">HOGE</condition> <from>.*/hogehoge\?.*</from> <run class="Fugafuga" method="doSomeMethod" /> <!-- doSomeMethodにてパラメタfugaを変換して、attribute・rewrited_fugaに格納 今回は"fugafuga"が入るとする。 --> <set name="rewrited_hoge">HO</set> </rule> <rule> <condition type="attribute" name="rewrited_hoge" operator="equal">HO</condition> <from>.*</from> <to type="r

    Url Rewrite Filter その6 なんかキモイ現象 - monjudoh’s diary
  • Url Rewrite Filter その5 outbound-rule要素について - monjudoh’s diary

    外向けのURLを書き換える際のルールを記述する要素で、 HttpServletResponseのencodeURLメソッドが実行されるタイミングで、 ルールが適用されるくらいにしか把握していませんでしたが、 具体的には↓こんな感じみたいです。 下準備 UrlRewriteFilterがフィルタチェーンでたらい回されてきたHttpServletResponse等をUrlRewriteWrappedResponse*1でラップする。 ラップしたUrlRewriteWrappedResponseの方をフィルタチェーンにたらい回す ほんちゃん UrlRewriteWrappedResponseのencodeURLメソッドが呼ばれる encodefirst="false"(デフォルト)のoutbound-rule要素で定義したルールがすべて適用される UrlRewriteWrappedRespons

    Url Rewrite Filter その5 outbound-rule要素について - monjudoh’s diary
  • Url Rewrite Filter その4 run要素を使うときはjarをshared/libに置いちゃダメ - monjudoh’s diary

    Url Rewrite Filterにはrun要素というのがあって、 <rule> <from>^/world/[a-z]+/[a-z]+$</from> <run class="com.blah.web.WorldServlet" method="doGet" /> <to>/world-presentation.jsp</to> </rule> こんな感じで記述してやると、指定したクラスの指定したメソッド*1を実行できますが、 これを使う場合はUrl Rewrite Filterのjarをshared/libに置いてはダメで、 WEB-INF/lib配下に置いてwarに含めてやらないといけないよーだ。 WEB-INF/classes配下に置かれたクラスはアプリのクラスローダからじゃないとロードできないけど、 この辺に書いてあるように、アプリのクラスローダはSharedのクラスローダの子

    Url Rewrite Filter その4 run要素を使うときはjarをshared/libに置いちゃダメ - monjudoh’s diary
  • Url Rewrite Filter その3 - monjudoh’s diary

    cookieオフ時のjsessionid削除でけた。 <outbound-rule encodefirst="true"> <from>(.*);jsessionid=[0-9A-Fa-f]{32}(.*)</from> <to>$1$2</to> </outbound-rule>encodefirst="true"が重要で、ルール適用前にencodeURL()を実行するという意味らしいんだけど。 詳しいところは後で調べて書きます。 後、セッションIDの文字数が32文字決め打ちなので、動作はAPサーバに依存します。 というかTomcat用です。 Tomcatの設定でjsessionidを出さないように出来たような気がするけど、これも調べて後で書くことにします。

    Url Rewrite Filter その3 - monjudoh’s diary