symfonyのmoveFile()メソッドでファイルが移動できない

symfonyではアップロードファイルを、任意の場所に移動させる moveFile というメソッドがあるのですが、このメソッドは失敗したときにエラーを出してくれない。 $this->getRequest()->moveFile('filename', $destFileName)なので失敗していて、かつ原因がわ…

MySQLで、PrimaryKey以外を条件としてINSERT or UPDATE のような事を実現する

MySQLの REPLACE 文は、プライマリーキー(正確にはPrimaryKey、またはUniqKey)を条件にして一致するものがある場合は DELETE&INSERT、一致するものがなければ INSERT のみを行うという事ができるます。似たような事を行うものとして、Oracleの MERGE 文が…

WindowsのApacheでPHPを動かそうとしたときに、Cannot load mysql extension. といわれた

Windows 上に、Apache + PHP + MySQL の環境を構築していて、ハマった問題と解決策のメモ。■事象 PHPからMySQLに繋ごうとすると、Cannot load mysql extension.というエラーが発生。Apache のログにも以下が出力されていた。 PHP Warning: PHP Startup: Unab…

MySQLでNULLを含むカラムにINDEXを張っても大丈夫

「NULLを含むカラムにINDEXを張っても使用されないので、できればNULLを意味するデフォルト値を設定しよう」という記述を何回かみたことがあって、てっきりそうだと思い込んでいました。が、MySQLのマニュアルには、 column_name IS NULL を使用した検索では…

Eclipseプロジェクト内に、Validate対象外のディレクトリを作る方法

Eclipseプロジェクト内に、Tomcatのランタイムを格納すると便利だと思ってやってみたのですが、TomcatのサンプルのWebアプリが検証にひっかかってしまって、Eclipse上に大量のエラーがでてしまいました。Tomcatのサンプルを捨ててしまうという解決策も考えた…

Java1.6+Antを動かそうとすると、java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher

Linux(Fedora)に、Java1.6とAntをインストールして、いざAntを動かそうとすると表題のエラーが発生。 Javaは、jdk-6u7-linux-i586-rpm.bin をダウンロードしてインストール、Antは yum install antでインストールしたもの。原因調査のために、まず、javaコ…

XMLHttpRequestオブジェクトでリダイレクトをハンドリングする方法

以前に、同じタイトルのエントリを書いたのですが、それよりもスマートなやり方がわかったので、書いておきます。やりたいことについては前のエントリで書いたとおり。 XMLHttpRequestで送ったリクエストが、サーバで認証エラー(セッションタイムアウトなど…

WebLogic をバージョンアップしたときに、(JSPで)空白が「null」となってしまう問題

アプリケーションサーバを、WebLogic6からWebLogic10にバージョンアップするという仕事で、問題が発生しました。問題となったのは、JSPのスクリプトレットを評価した結果が null のときです。 この実行結果は、JSPの仕様からすると「null」と出力されて当然…

JavaScriptでブラウザの判別(各種JavaScriptライブラリの判定方法を抜粋)

JavaScriptのライブラリを使わずに開発しているときに、ブラウザの判定をするのって意外と悩むので、調べた結果をまとめておきます。Prototype.js、JQuery、MooTools、Dojo について調べました。●Prototype.js の場合 Browser: { IE: !!(window.attachEvent …

Javaで文字列の暗号化/複合化(※外部ライブラリを使わずに)

僕がいま係っているシステムで、別システムのログインパスワードを文字列でデータベースに格納することになりました。これを実現するために、Javaで文字列の暗号化/復合化を行う方法を調べたので、その結果を記しておきます。(※既に別の方々が解説している…

MySQLで階層化されたデータを扱う(再帰的に検索しないで済む方法)

SQL

Oracleの場合は、Start With〜Connect By Prior〜というSQLで階層化されたデータを取り扱うことができます。では、MySQLではどうか?下記のサイトでしっかり解説してありました。Managing Hierarchical Data in MySQL 階層化されたデータをMySQLで扱う(上記…

java.util.logging.Loggerを使う上での注意点

java.util.logging.Loggerを初めて使ったのですが、ちょっとハマってしまった点などあったので紹介しておきます(主に設定ファイル=logging.propertiesまわり)。 ○問題 logging設定ファイルはシステムクラスローダによりロードされる logging設定ファイルで…

JavaでFriendクラスを実現するためのパターン(フレンドアクセスブリッジパターン?)

以前、JavaでFriendクラスのような事を実現する方法というエントリを書いたのですが、もう少しすっきりした書き方を見つけたので紹介&再掲載しておきます。【やりたいこと】Fooクラスのfooメソッドを、別パッケージのBarクラスにのみ公開したいまず、Fooク…

MySQLで大きなデータを登録しようとするとcom.mysql.jdbc.PacketTooBigException: 発生

MySQLで、3M程度のデータを登録しようとすると、以下のような例外が発生。 com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3526504 > 1048576). You can change this value on the server by setting the max_allowed_packet' varia…

IEでFunction.prototype.extendsというプロパティが使えない。

JavaScriptで継承を実現するために、 Function.prototype.extends = function(superObj) { for (var prop in superObj) this.prototype[prop] = superObj[prop]; }; このようなメソッドを作ってました。FireFoxで開発している分には全く問題なく動作していた…

JavaからコンパイルされてないGroovyを呼び出す方法(クラス、メソッド)

前回に続き、JavaからGroovyスクリプを実行する方法。今回は通常のクラスの、インスタンスメソッドを実行する方法について紹介。 GroovyClassLoader loader = new GroovyClassLoader(this.getClass().getClassLoader()); Class cls = loader.parseClass(new …

JavaからコンパイルされてないGroovyを呼び出す方法(ルーズステートメント)

JavaからGroovyスクリプトを実行する方法。やり方はいくつかあるのですが、その中から比較的シンプルなやりかたを紹介。 new GroovyShell().parse(new File("....name.groovy")).run(); これだけです。....name.groovy のところを該当のスクリプトファイル名…

Socketに出力中に Connection reset by peer: socket write error

Javaでプロキシサーバのようなものを作っていたところ、クライアントへレスポンスを返している途中に、以下の例外が多発。 SocketException: Connection reset by peer: socket write error プログラムはすごく簡単なサンプルを参考にしてたので間違ってると…

XMLHttpRequestオブジェクトでRedirectをハンドリングするには?(リダイレクトを拾う方法)

XMLHttpRequestオブジェクトから送信したリクエストに対し、サーバがリダイレクト応答(ステータスコード=302)を返したときのハンドリングってどうやればいいんだろうか?と悩んだのでその記録。解決したかったのは、以下のような問題。 XMLHttpRequestで送…

Rails2.0 + Lighttpd + CentOS5の環境構築での問題

Apache + lighttpd で Rails を動かす を参考にして、Railsアプリの実行環境を構築していたところ、僕の環境ではなぜか問題が発生したのでメモ。僕の環境は、以下のとおり。 CentOS 5.0 Ruby 1.8.5 Lighttpd 1.4.19 Rails 2.0.2 各アプリのインストールは上…

静的HTMLで、インクルードを実現するためのJavaScript

ローカルディスク上に存在する静的HTMLで、外部ファイルをインクルードするためのスクリプト(つまり、XMLHttpRequestオブジェクトの代わり)。以前にも同じようなエントリを書いたのですが(http://d.hatena.ne.jp/kenpoco/20080228/1204198090)、いくつか…

CentOS5からWindowsの共有フォルダを参照するには

LinuxからWindowsの共有フォルダを参照するには、sambaのクライアントツールである、smbmountコマンドが有名ですが、CentOS5のsamba-clientパッケージにはsmbmountコマンドが入っていない(インストールされない?)ので注意です。同様に、mount -t smbfs も…

Javascriptでフォーカスを移動させないようにする方法

ブラウザ(FireFox)上での書式チェックエラーのときに、次の項目にフォーカスを移動させないようにする方法。簡単にできると思ったら意外と苦戦(IE6のときは簡単にできたような気がするのだが)。 <input type="text" onblur="if (any expression) { this.focus(); return false; }" />上記コードは、まず最初に思いついたものなのですが、これだ…

Trac - Wiki のテンプレートを編集する

Trac - Wiki のテンプレート部分を編集する方法について、ネットを調べたけどすぐには でてこなかったので、自分なりに適当にやってみました。そのメモ。 まず、Tracのインストールディレクトリへ移動。(僕の環境では、/usr/share/trac) 今回やりたいのは…

JavaでFriendクラスのような事を実現する方法

C++のFriendクラス、Friend関数は、アクセス権限を細かく制御したいときにすごく便利だ。クラスを設計(コーディング?)しているときに、「プライベートにしときたいけど、ある処理でだけはアクセスできるようにしたい」という場面が多々ある。 Javaでは、F…

IE7でスクロール量を取得する

最近、会社用のPCのブラウザをやっとIE7にあげたのですが、「スクロールした量が取得できない」という問題にぶつかりました。既知の問題なので、 IE7において座標が正しく取得出来なくなった件 などに詳しく解説がありました。上記のサイトでは、IE6とIE7で…

セルを結合したシートを cloneSheet すると IndexOutOfBoundsException が発生する(POI)

テンプレートとなるExcelファイルを読み込んで、プログラムから値を設定し出力する、というありがちなプログラムを開発していた時のこと。Excelシート内に結合したセルがある場合に以下のコードを実行すると、 HSSFWorkbook book = ....; book.cloneSheet(0)…

SELECTした結果を使って、CREATE TABLEする

SQL

一時的にデータを退避しておくときに、SELECTした結果をそのままワークテーブルにぶちこみたくて調べてみたら、結構簡単にできるんですね。複数のデータベースに対応したかったので、各データベースについて調べてみたところ、大体同じようなSQLでできるみた…

imgタグの下にわずかなスペースができるときの解決策

例えば、以下のようなHTMLがあるとき <div ><img src="aaa.jpg" /> </div> テキスト画像"aaa.jpg"と、"テキスト"との間に2〜3pxほどの隙間(ホワイトスペース)が できてしまいます。これをなくすには、 <div ><img src="aaa.jpg" /></div> テキストこのように、<img>タグの後ろに改行をいれずに、閉じタグ</div>をつけてやります。 タグと…

Google の RSSリーダーに乗り換えました

Google にRSSリーダーがあることをたまたま発見し、使ってみたら結構使い勝手もよい感じ。しばらくこれでいこうと思います。あと、久しぶりにGoogleカレンダーを使ったら、なんか前より便利になっててこれも乗り換えようか検討中。例えば、予定を登録すると…