java 証明書を作成する際に、期限の設定をする
2007/07/31

証明書を作成する際に使用するkeytoolで、期限の設定の仕方は、-validityで日にちを設定するようです。
keytool -genkey -keystore myKeyStore -alias myAlias -validity 4000
この例だと4000日ということになります。
証明書を作成する際に使用するkeytoolで、期限の設定の仕方は、-validityで日にちを設定するようです。
keytool -genkey -keystore myKeyStore -alias myAlias -validity 4000
JNLP API の FileOpenService を使用すると、証明書などを用意しなくても、ユーザがFileChooserで指定したローカルファイルだけを読み書きすることができます。Java Web Start - てんぷらメモ
eclipseのプラグインをインストールするまたもうひとつの方法です。
インストールするプラグインのイメージがファイルで提供されている場合です。
(1)
インストールしたいファイルを任意のディレクトリで展開します。
(2)eclipse上から展開したプラグインのディレクトリを指定します。
具体的には、
メニューから
[Help] - [Software Updates] - [Find and Install]を指定します。
次に、
から、
の[New Local Site]を選択して後に展開したプラグインのディレクトリを指定します。
画面であのプラグインがたりないこのプラグインがバージョンがあわないとかでてきたら、それにあわせて調整するという感じです。
アイデアレベル。
閲覧しているwebページから、特定の部分データをクリッピングする場合、firefoxでgreasemonkeyを動かして、自分のマシン上にlocalhostのwebサーバを動かして、通信させて、ローカルに保存するというのはどうだろうと考えた。
(1)greasemonkeyを使用して、特定部分のデータを取得。
(2)GM_xmlhttpRequestを使用してhttp://localhost:8080/clippingとかに送信して、ローカルサーバがファイルに保存なり、データベースなり保存して後から利用できるようにする。
って感じ。
何故そうしたいかというと、greasemonkeyを使って特定のページの特定の部分を取得してファイルにして保存できるかなと考えていたのだけども、どうも、greasemonkeyから直接ファイル保存はできないみたいだから。
作るなら、jettyをクリッピングサーバーにしてgroovyでコード書いてみたいなぁ
今週は時間がないので来週ためしてみよう。
もとネタはtomcatの設定だった思う。
for ~ in ~
って書き方
OLDIFS=${IFS}
IFS='
'
for f in `find "${TARGET_DIR}" -name "*.jar" -o -name "*.ZIP" -o -name "*.zip" 2> /dev/null`
do
if [ -f "$f" ]; then
CLASSPATH=${CLASSPATH}:"$f"
fi
done
IFS=${OLDIFS}
ブログで簡単にjavascriptを実行する方法です。
404 Blog Not Found:javascript - Lambda Calculus
(1)まず、タグにidをふります。document.getElementById(id).valueで中の値をとりだします。
※中の値をとる方法は他にもあります、しようするタグ(node?)によっても変わるかもしれません。
(2)evalを使ってとりだした値を実行。
スクリプトを入力欄:
実行をクリックすると上記の入力したスクリプトが実行されます。
実行
このタグのidはR20070726です。上記の入力欄にdocument.getElementById('R20070726').innerHTML='o_o!'と入れるとたしかめられます。
年に一度は何故かはまるjavaの文字列の切り分け。
単純にStringのsplitを使ってはじめはよろこんで、何か、思い通りにいかず、StringTokenizerを使っても、思い通りにいかず、最後に実装をjakarta コモンズにたよってしまったというパターン。
カンマ区切りでためしてみました。
シナリオ:
カンマ区切りを行いたい。値がない区切りデータも受け取りたい。
StringTokenizer
[aa]
[bb]
-------------
split
[aa]
[]
[bb]
-------------
commons StringUtils splitPreserveAllTokens
[aa]
[]
[bb]
[]
[]
[]
[]
-------------
using indexof substrin
[aa]
[]
[bb]
[]
[]
[]
String[] strings = s.split(",");
を
String[] strings = s.split(",", -1);
とすれば「カンマ区切りを行いたい。値がない区切りデータも受け取りたい。」ができます。
どうもIEにしかない命令をよんで、javascriptがエラーになっていたようなので、greasemonkey上から関数を上書きしてみた。
jakarta commonsのcollectionsです。
コレクション同士の演算です。
なかなか使う機会がないので試してみました。
A∩B
XMLファイルに改行を含めたい場合、文字参照?を使用します。
シナリオ:
全角、半角スペースが前後にある文字列のトリムをしたい。
[ 新宿 神楽坂 ]
[ 新宿 神楽坂 ]
[新宿 神楽坂]
injectがよくわからないので考えてみる。
rubyのinjectと似ているらしいのでrubyの説明をさがしてみる。
inject([init]) {|result, item| ... } (ruby 1.7 feature)
最初に初期値 init と self の最初の要素を引数にブロックを実行します。2 回目以降のループでは、前のブロックの実行結果と self の次の要素を引数に順次ブロックを実行します。そうして最後の要素まで繰り返し、最後のブロックの実行結果を返します。
要素が空の場合は init を返します。
初期値 init を省略した場合は、最初に先頭の要素と 2 番目の要素をブロックに渡します。この場合、要素が 1 つしかなければブロックを実行せずに最初の要素を返します。要素が空なら nil を返します。Rubyリファレンスマニュアル - Enumerable
(0 + 1) (1 + 2) (3 + 3) (6 + 4) (10 + 5) result:15
私は,20代の中頃,縁に恵まれてSmalltalkを勉強し始め,13年もの長きに渡って使い続けてきました。私たちは,話す能力というか,抽象化する能力というか,構造化する力を持って生まれてきます。しかし,インドのアマラとカマラの姉妹や,アヴェロンの野生児に見るように,ある時期に,ある言語の世界というか,ある社会の中に置かれなければ,言語を操ることができなくなってしまいます。この本は,ぜひ,母国語としてのプログラミング言語を探し求めているプログラマに読んでいただきたいと思います。また,Basic, C++, Java, HTMLなどの多くのプログラミング言語を,そこそこ操れるのだけれど,これぞという決め手の言語に欠けるプログラマにもお薦めします。Smalltalk Idioms, Chapter 1
「S式は異星人の言葉」というのは、S式が森羅万象ってことが理解できない
人が多いってことね。プログラムばっかりやってるから、わからないんだよ。
文学と哲学を勉強しましょう。\(^O^)/
(と)の間に全宇宙があるんです。\(^O^)/
(と)の間に何を入れてもいいし、それをどう解釈してもいいのがLispの基本。
ただし、無限の自由は人を不安にするから、CLやSchemeの標準では、デフォ
ルトではこういうものを入れて、こういう解釈をしますよと決めてるだけ。そ
れだけわかれば、あとは所詮プログラムという下世話な話。\(^O^)/Gauche Night: ホットコーナーの舞台裏
アプリケーション引数(コマンドラインオプション)の解析です。
いまとなっては自分でつくるより、CLI(Command Line arguments parser)を使用したほうがよさげ。
調べればすぐみつかるけど、とりあえず簡単な使い方の流れ。
(1)欲しい引数を決定
(2)引数をチェック、失敗したら使い方表示
(3)引数の値をとりだして使用
おおまかにこの流れだと思う。
ライブラリは、ここから取得。
正規表現の勉強中
置換オペランド
$text =~ s{
... ここに多くのコメントを伴う大きな正規表現がくる...
} {
...評価されると置換テキストを生成するPerlの部分プログラム...
}ex;
groovletから別のgroovyを読み込む方法です。
シナリオ:
groovletから別のgroovyファイルに定義されたクラスを利用したい。
今までのあらすじ
現状の最新のeclipse3.3では、公式なvisual editorのプラグインが提供されていません。
それで、Erik Hechtさんという方が非公式なvisual editorを作成して公開していました。
groovyの練習になるような題材がないかなとさがしていて、
i=nからmまでの関数値f(i)の総和Σf(i)
groovyのswitchです。
いろいろなものがcaseに使えて便利ですね。
ところで、デコレートパターンについて考えた。結論はないのだけども。
javaでこのパターンの適用として成功しているものとしての説明としては、java.io.*がよく例にあげられるみたい。
さて、このパターンがうまくいく場合って、実際にはどういう場合なんだろう?
ひとつのオブジェクトが別のオブジェクトから構成されるような図のオブジェクトグラフを操作単一クラスで操作したい場合にさてデコレートパターンを適用するってどういう感じになるのだろう。そもそも
何か勘違いしているような気がするな。
ちなみに、図のオブジェクトグラフは、データオブジェクトの集まりとして、さらにこれをMapにしてみたとする。下記の図のようになるのかな。
で、データオブジェクトをMapで作成したいという考えには、Mapのキーを文字列にした場合に、他の定義との親和性が高くなるからそうしたい気持ちがあるだと思う。
例えば、プロパティとgetter,setterのデータオブジェクトの場合(javaならPOJO)、他の定義とマッピングする場合、コード上の変換が面倒になるから。getter,setterをコードで書くの面倒だということなんだよね。
Mapだとキーの配列があってぐるぐるまわせば、値の出し入れができるから。
しかし、Mapだとオブジェクトグラフを表現する場合にその性質上、なんでも格納することが可能なので、厳密ではなくなる。木構造で保持したいオブジェクトグラフが簡単に壊すことができる。
とはいってもMapに格納するデータの型を決定してしまえばいいのだけれども。
それとはべつにどこにデータオブジェクトのキーを設定するのかということも気にしないといけない。
そもそもドメインオブジェクトの実装をMapにするというアイデアはあまりよくないのかもしれない。
オブジェクト構造をもたないフラットなデータの集まりであれば、いいのだが、関連をもつオブジェクトグラフをMapにうつすのはできないと思う。
クラスのもつ型が強力な制約になると考えているのだけども、それをすててしまうのももったいない気がする。
とつらつら考えた。
全然、的を得ていないな。
groovyの練習がてらに作成。
やはり目的指向のプログラミングのほうが調べる努力しますね。
自分がgroovyの配列、ループがよくわかっていないことがよくわかりました。。。
シナリオ:
パスカルの三角形を10段まで表示してください。
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]
確率とかの本ででてきたので、ちょっとためしてました。
シナリオ:
パスカルの三角形を10段まで表示してください。
この三角形の作り方は単純なルールに基づいている。まず最上段に1を配置する。それより下の行はその位置の右上の数と左上の数の和を配置する。例えば、5段目の左から2番目には、左上の1と右上の3の合計である4が入る...パスカルの三角形 - Wikipedia
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
javaとの親和性がたかそうなので、しばらくgroovyで遊ぼうという一貫で、Groovletsをためしてみる。
Groovy - Groovlets
コメットをサポートしているという話なので、jetty6を使用して、Groovletsを動かすことにチャンレンジ。
上記のサイトをみれば簡単なのだけども、必要なライブラリをantとantlrをまちがえてしばし悩む。
既に生成されたオブジェクトにたいして、あらたにマーカーインターフェイスを付加できたらいいなと考えました。それでCGLIBを使用した方法です。
参考:
cglib メモ
非常に参考になりました。
CGLIB
Code Generation Library - Code Generation Library
シナリオ:
既に生成されたオブジェクトにたいして、あらたにインターフェイスを付加する
windowsで隠れたjava画面を表にだすためのアイデア
使えるだろうか。
javaバージョンは1.4
プラットフォームはwindows XP
eclipseのswtを使用している。
他にもいろいろ使用してみたのだけども、画面が表にでてくる方法をみつけることができなかった。
単純だけど、下記のコードは効果があった。
win32でJNI気分で作成手順、自分のためのメモ
ちなみに、いまボーランドというよりコードギアって感じですかね。
Borland C++ Compiler 5.5日本語版のインストールの方法
civic site : JNIを使ってWin32 APIを実行するサンプル
忘れないようにとりあえず、
ヘッダーつくるのは下記のような感じで。
シナリオ:
複数の検索エンジンを同時に検索して、その検索結果をまとめて取得したい。
8人の女王はバックトラックの例題でよくでてくるようです。
バックトラッキング - Wikipedia
バックトラックとは、だめだったらひとつもどって再チャレンジという感じです。
8X8で92みつかりましたので、正解だと思います。
下記のコードは一応バックトラックしてます。
8人の女王はほかにビットをつかったりして計算させる方法など、高速化の方法もあるようです。
8人の女王に再チャレンジ、一応ひとつ解をもとめることはできたけども、どうもいい感じではないです。
一応、コードは再帰しているのでそれっぽい感じにはなっています。
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
count:8
引数でもらったCanvasにSWTのBrowserを貼り付けます。
注意しないといけないのが、このCanvasはもちろん他のJFrameのような部品に既にのっていて、setVisibleしていないといけないようです。
SWT: The Standard Widget Toolkit
peerが生成されていない場合に発生する例外
ERROR_INVALID_ARGUMENT - if the parent's peer is not created
Dynamic Languages Toolkit
ぼーとしている間に、IDEが動的言語をつぎつぎサポートしていますね。
DLTをためしてみてますが、いい感じですね。
試しているのは、rubyのwindows版とjrubyでなのですが、両方ともプラグインからアクセスして実行できました。Hello Worldしか実行していませんが。。。
たまに実行モジュールへの設定がなくなってしまうのが気になりますが。
他にもeclipse上でRuby用のプラグインがあるようなので試してみたいところです。
現在のアップデートサイトは
http://download.eclipse.org/technology/dltk/updates
Groovy - Eclipse Plugin
eclipse3.3にインストールは簡単にできました。
現在のプラグインのアップデートサイトは
http://dist.codehaus.org/groovy/distributions/update/
Adobe Labs - JSEclipse
がいいかんじです。
コード補完してくれるプラグインをさがしていたのですが、上記のプラグインはいいかんじです。
EclipseZone - Is VE Dead? ...
eclipse3.3になって3.2からあげたいのだけども、VEが使えないようなので困っています。
3.3になってeclipse上でrubyとかやりつつveでGUIとかの開発も同時にしたいなぁと考えているのに...
veのちょっと動向が気になります。
20070704(現在)、Erikさんという方が非公式ですが、3.3用のveを作成しています。
非公式な3.3用ve www.ehecht.com
ためしてみたところ、eclipse3.3のEclipse IDE for Java EE Developers 向けのwindows版を使用して、みたところ使えました。
WTPでないといけない理由は、2.0.0のorg.eclipse.jem.xxxxがふくまれているからのようです。どうもこのjemがキーみたいです。
ニューズグループ eclipse.tools.ve
Newsgroup: eclipse.tools.ve (web interface)
開発者のメーリングリスト
ve-dev Archive (Date View)
しばらくウォッチしていこうと思います。
Requested operation cannot be performed because it would invalidate the current configuration. See details for more information.
Visual Editor (1.3.0.200707070308) requires plug-in "org.eclipse.jem (2.0.0)", or compatible.
to get it working simply install the WTP sdk, there is it included,
Otherwise wait until my next update I will include JEM.
I think its on Tuesday, because I'm actually remove warnings to bring some Packages to Java 1.5
データと振る舞いを両方兼ねそなえている。
データベースにたいするドメインロジックを含んでいる。インサート、アップデート、デリートなどを含んでいる。
ドメインロジックが複雑な場合、ActiveRecordを使用するのではなくDataMapperを代わり使用するとよいようだ。
A={a, b, c, d}の中の関係RがR={(a, a), (a, b), (a, d), (b, a), (b, b), (b, c), (c, a), (c, b), (d, c)}で与えられたとき、これをグラフで表現すると下記イメージとなります。
a, b, c, dをひとつの状態とみたてて、与えられた状態から次の状態へ遷移できるか判定する。