seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

Apache Derbyで新規データベースにテーブルを自動構築する簡単な方法

新規データベース作成後の処理 Apache Derbyを埋め込みモードで使う場合、指定したパス上にデータベースが存在しない場合、接続URLのオプションとして、自動的に作成するように指示することができる。 たとえば、以下のような接続URLである。 DriverManager.…

Apache-Derbyのアプリへの組込とUDT/UDFの使い方のメモ(後編)

記事が長くなりすぎたので分割しています。前記事は、こちら。 Derbyにおける自動採番の取得方法とシーケンスオブジェクト Apache Derbyは従来は、プライマリキーとしては「generated always as identity」を指定し、自動採番とする方法と、 SQL:2003準拠、O…

Apache Derby Dbのアプリケーションへの組み込み方と、ユーザー定義型、ユーザー関数の使い方

Apache Derby 10.9.1.0のアプリケーションへの組込方法と、ユーザー定義型とユーザー定義関数の使用例について記述する。 動機 昨今、アプリケーションのバックエンドにSQLite3などの軽量・組み込み型データベースが使われる例が非常に多くなっている。 PCの…

Squirrel SQL ClientをApache Derby(JavaDB)のフロントエンドに使ってみる

Apache DerbyにはGUIの管理ツールが標準では存在しない。 コンソール画面での対話ツールである「ij」で一通りデータベースの管理はできる。 これは、OracleでいうところのSQL*Plusみたいなものである。 DDLのようなものは、たとえばERツールで生成するなどし…

C#でアプリケーション設定を取得・保存する、いくつかの方法

基本はapp.config(web.config)に集約される DotNETではアプリケーション設定の類を扱うには、ざっくりと以下の方法があげられる。 app.config (ウェブアプリケーションの場合は、web.config) appSettingsによる単純な key=value 形式の文字列データによる方…

JavaのJAXBに相当することをC#で行う方法

C#ではXmlSerializerがJavaのJAXBに相当する 前回は、JavaでXMLをあつかう方法に関連してJAXBを調べてみたので、今回は、それと同等なことをC#で試してみる。 DotNET FrameworkはVer1.1のころからXMLには非常に手厚いサポートがあり、 JavaのJAXBに相当する…

設定ファイル等の読み書きにXML形式を使う3つの方法(簡単なもの順)

java.util.Propertiesを使う J2SE5以降のjava.util.Propertiesは、XMLファイル形式をサポートしている。 日本語などを使う場合も、昔ながらの native2ascii のお世話になる手間がなく、 デコードし直さなくても、ちゃんと人間が読める文字なので修正もらくち…

コンパイルされたクラスファイルのターゲットとしていたJavaVMのバージョンを確認する方法

動機 たとえば、コレクションクラスを使っているのにジェネリックでないソースと、そのコンパイル済みのクラスファイルをもらったとする。 日付は2010年あたりになっている。 書き方や使っているクラスからみて、もともとは、かなり古いソースと見受けられる…

[objc] Objective-Cのブロックと、ブロックにキャプチャされたオブジェクトの寿命の確認

上記のObjective-Cのコードでは、ループ中にブロックを作成して配列に格納しているが、 ここで生成されるブロックは本当にループ回数分だけ独自のものが生成されているのか、 ブロックにキャプチャされたローカルスコープのオブジェクトは、ブロックが残存す…

ラムダ/クロージャ/ブロックの覚え書き

C#, C++, Objective-Cのラムダ(匿名関数)の基本的な使い方の覚え書きと、JavaSE7時点のラムダ相当のイディオムについての雑記。(※ プログラムの作用に主眼を置いて、単純に、Lambda ≒ Closure ≒ Block ≒ 匿名関数 という認識で書いてます。) C#4.0のラムダの…

「違法ダウンロード罰則化」

「違法ダウンロード罰則化」は、もっとやばい!? もう一つ、びっくりした法律が試行されようとしています。違反ダウンロードの刑事罰化。 違法ダウンロードは犯罪だよね、そんなこと私はやってないから関係ない、、、とはならない。自分が正規のコンテンツを…

児童ポルノ法が私に及ぼした実害と、今後増えると予想される家宅捜索令状

今回の日記について 大変亀レス的、且つ、私的な話題でネットで晒すのも恐縮なのですが、コンピュータに関係しなくもない経験をしたので、なにかの役に立つかもしれないので日記として残しておきます。 事故や犯罪被害をうけた人は、「まさか自分が、こんな…

JavaSE7でファイルを監視する方法

動機 上記、Windows(C++)でのファイル監視方法を試したので、その流れで、ついでにJavaSE7以降からサポートされるようになったJavaのファイル監視のAPIを試してみる。 いきなり実験コード (JavaSE7 Update4 on Windows7 64ビット版) package fwatch_java7; i…

ファイルの変更を監視する方法

Win32 APIにはファイルの変更を監視する方法として、少なくとも2つの方法がある。私は従来よりファイル監視のためのAPIとして、FindFirstChangeNotification関数を愛用している。 だが、WindowsNT系のUNICODEビルドであれば使えるというReadDirectoryChangeW…

ADO.NETの型つきデータセットを自分で実装する方法

概要 Visual StudioのExpressでない有償版か、もしくはExpressであってもmdfファイルをローカルに持つSQLServerへのデータベースアクセスでは、Visual Studioのアドインまたは内蔵されるツールによって、データベースへのアクセスをタイプセーフにアクセスで…

Oracle11gR2 Expressで本文UTF8エンコードの添付ファイルつきメール送信用ヘルパをパッケージとして作ってみた。

Oracle11gR2 ExpressのPL/SQLで添付ファイルつきメール送信用パッケージを作ってみました。(本文UTF8エンコード) [事前準備] Oracle11gR2 Expressは、こちらから入手できる。 http://www.oracle.com/technetwork/database/express-edition/downloads/index.h…

[Mac] MacOSX 10.6 SnowLeopardのMacBookと、リコーのIPSiO SP 4000をつなぐ方法

mac

動機 長期出張で、会社が用意してくれたアパートに仮住まいしている日々。ノーパソはもってきたけれどプリンタがない。*1数千円の格安なプリンタを捜したら、いきなりアマゾンでリコーのページプリンタが\9000ぐらいで売っている。http://www.amazon.co.jp/d…

JAVAで透過画像(透過PNG)をクリップボードに設定する方法(Linux編)

前回、Windows環境で、透過画像をクリップボードにいれる方法について実験したので、 今回は、Linux環境(Ubuntu10.04 + sun-java-jdk6)での実験を行う。(※2012/5/5追記、Ubuntu12.04 + OpenJDK7で簡単に試した結果を追記しました。)結論的にいうと、現在のLi…

JAVAで透過画像(透過PNG)をクリップボードに格納する方法(Windows編)

Windows上のJAVA実行環境で、透過でない画像をクリップボードに設定するのは簡単である。単に、Transferableを実装したクラスでBufferedImageなど、java.awt.Image派生オブジェクトを返せば、それだけでOKである。たとえば、こんな感じに。 /** * クリップボ…

JAVAアプリをMac OS X用にApplication Bundle化する

昨日の続き。 Mac OS Xには実行ファイルや、それに付随するリソースファイルなどをフォルダにまとめて、それらの複雑な階層構造を、あたかも1個のファイルであるかのように見せかける「バンドル」ファイルというものがある。 たいていのアプリケーションは1…

Javaアプリケーションの起動時にスプラッシュをつける

JavaSE6以降ではJavaアプリケーションの起動時にスプラッシュスクリーンを表示できるオプションが加わった。 これはアプリケーションのクラスがロードし終わるまえにJava実行ファイル側が表示してくれるものであるため、可能な限り早い段階で画面に表示され…

Pure JavaでMacOSX対応のアプリケーションを作る方法 (実行可能JAR編)

JavaアプリケーションをMac OS Xで動かすための注意点 Mac OS Xには、Apple謹製のJavaVMがあるので、動かすことが第一義であれば、通常のJavaのマルチプラットフォーム対策ができていれば良い。 基本的には特別な対策は必要ない。 さすがWrite Once, Run Any…

Mac OS X(Snow Leopard)でスクリーンショットをとる方法

mac

最近、Mac OS X上で画面キャプチャをとりたいケースがあったので、思わずWindowsのキーボードのようにprintscreenキーを探してしまったが、私のMacのキーボードにはprintscreenなんてキーはない。 じゃあ、どうやって画面キャプチャをとればいいのだろう? (…

UPnPによる探索を通すためのファイアウォール設定

PerlのNet::UPnP::ControlPointを使って、ルータの情報を取りに行くための簡単なPerlスクリプトを書いてみた。 中身は、ほとんど http://www.geekpage.jp/programming/perl-network/get-ppp-external-ipaddr.php と同じようなもの。(参考にさせていただきま…

cronからのメールで「WARNING: mismatch_cnt is not 0 on /dev/md1」が届いた場合

Software RAID1を組んでいるサーバで、CentOS 5.3 -> 5.4にアップグレードして久しい気がするのだが、 先週アップデートをかけてたせいかはしらないが、今朝はじめて次のような警告メールが届いた。 /etc/cron.weekly/99-raid-check: WARNING: mismatch_cnt …

AppleScriptを使ってみるよ!(言語編2/2)

mac

前回は言語編1/2として変数やスクリプトまわりを調べてみたよ。 今回はAppleScript特有に見えるオブジェクトの選択・指定方法について調べてみるよ。 (再び) 文字列を使ってみるよ。 ActionScriptではほとんどのオブジェクトは0個以上の要素(Elements)をもて…

AppleScriptを使ってみるよ!(言語編1/2)

mac

動機 AppleScriptはMacOSXにおける、WindowsのWSHのようなものだと思うよ。「iTunes for Windows」はCOMオートメーションをサポートしているから、VBS/JScriptで簡単に操作できるけれど、本家、iTunesでもAppleScriptを使えば同じように制御できるらしいよ。…

Firefox3.6にしたらVMWareServer2.0.1のRemoteConsoleが開かないのでVMware Infrastructure Clientにしてみた。

動機 タイトルのとおり。 Firefox3.6にアップグレードすることにより、ほとんどのプラグインは継続して使えていたのだが、VMWare Server 2.0.1のリモートコンソールだけは開かなくなっている。びっくりして、あわてて3.5に戻してから、調べてみた。ネットで…

Oracle SQL Developer が起動できない場合の設定変更

概要 Oracle SQL Developer 2.1.1 をJRE付きでダウンロードし、普通ならば何も考えず「sqldeveloper.exe」をダブルクリックすれば起動するはずである。が、もし、「Unable to create an instance of the Java Virtual Machine Located at path: ..\..\jdk\jr…

Oracleをcronで定期的にexpでバックアップする方法

概要 expコマンドをcronで定期的に実行する、というだけの話。 簡単そうに思えるが、意外とハマったのでメモとして残しておく。 crontabへの登録 oracleユーザというものがすでに存在すると仮定して、以下、crontabに登録する内容。 (oracleユーザで登録する…