home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

971 - 980 / 1320    [|<]  [|<]  [<]  91  92  93  94  95  96  97  98  99  100   [>]  [>|][>|]
タイトル/名前 更新者 更新日
日記/2009/08/06/JavaのMBeanメモ msakamoto-sf 2009-08-06 22:21:02
Erlang/基礎 msakamoto-sf 2009-08-03 23:56:12
Erlang/HowTo/GetMD5OrSHA1CheckSum msakamoto-sf 2009-08-02 23:58:53
Erlang/HowTo/ListUpProcessInformations msakamoto-sf 2009-08-02 12:52:44
Erlang msakamoto-sf 2009-08-02 11:09:17
日記/2009/08/02/Erlangの比較演算子 msakamoto-sf 2009-08-02 08:59:14
日記/2009/08/02/戸籍を郵送で取り寄せてみた msakamoto-sf 2009-08-02 07:18:26
日記/2009/07/30/本日付けで退職しました。 msakamoto-sf 2009-07-31 00:16:15
日記/2009/07/27/梅雨がなかなか明けない。 msakamoto-sf 2009-07-27 00:37:47
読書/データベース関連 msakamoto-sf 2009-07-24 00:56:21
ソート項目 / ソート順     1ページ 件ずつ表示

日記/2009/08/06/JavaのMBeanメモ  

所有者: msakamoto-sf    作成日: 2009-08-06 21:59:03
カテゴリ: Java 

ちょっとJBossの設定絡みでドキュメントを読んでみたのだけれど。

そもそものきっかけはJNIのDLL(ホントはUNIXサーバだから.soファイル)を、同じJBossインスタンス(=一つのJVM)内で異なる二つのWebAppでSystem.LoadLibrary()しようとしてエラーになってるっぽい、ということで、上手い事できないか・・・という話が寄せられた。

で、以前WebLogic9.1を使った時にもやっぱり似たような話があった。
WebLogicの場合は起動クラスと停止クラスというものがあり、WebLogic Serverの起動 or 停止時に自前で何らかの処理を行わせるJavaクラスを登録できた。

で、JBossでも同じ事やらせようと「JBoss startup class」でググったらどうやらMBeanとして実装するみたい。

「そーいえばWebLogicでも時々MBeanって出てきたよなー」ということで、あんまりMBeanについて詳しく調べたり手を動かした事が無かったので、とりあえずメモ。

あとで読む・・・かも。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-08-06 22:21:02
md5:1f87b6c23a805e63c5807aa4363e7df9
sha1:7a61cc34fe9874baa20e4485700b5c73bf4bdd51

Erlang/基礎  

所有者: msakamoto-sf    作成日: 2009-08-02 07:37:20
カテゴリ: Erlang 

Erlangシェルの起動停止, ロードパスの調整, コンパイルと実行などのメモ。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2009-08-03 23:56:12
md5:c3be89ec5c465e6e9fce2815b43f6e72
sha1:738d173553206a46f6dbba20cda52b5b7b695ae9

Erlang/HowTo/GetMD5OrSHA1CheckSum  

所有者: msakamoto-sf    作成日: 2009-08-02 23:33:28
カテゴリ: Erlang 

ファイル内容のMD5, SHA-1チェックサムを取得してみます。

MD5の場合(erlangモジュール)

MD5であれば、erlang:md5/1 を使う事で取得できます。

1> {ok, Data} = file:read_file("target_file.dat").
{ok,<<...>>}
2> erlang:md5(Data).
<<107,234,210,187,213,214,238,244,213,7,165,33,228,191,197,244>>

erlang:md5_init/0, md5_update/2, md5_final/1を組み合わせても可能です。

3> C1 = erlang:md5_init().
<<1,35,69,...>>
4> C2 = erlang:md5_update(C1, Data).
<<158,140,...>>
5> C3 = erlang:md5_final(C2).
<<107,234,210,187,213,214,238,244,213,7,165,33,228,191,197,244>>

得られたバイナリはerlang:md5/1と同一です。

ダウンロードファイルのチェックサムを確認したい場合などは、バイナリから16進数表記の文字列にして、チェックサムが書かれたサーバ側のファイルと中身を付き合わせる事になると思います。
・・・が。バイナリを簡単に16進表記にするショートカット関数が上手い事見つかりませんでした。

とりあえず確認したかったので、アルゴリズムもへったくれもない力業で済ませておきます。

6> lists:flatten(lists:map(fun(X) -> io_lib:format("~.16X", [X,""]) end, binary_to_list(C3))).
"6BEAD2BBD5D6EEF4D57A521E4BFC5F4"

Erlangの素人が無理矢理でっち上げた力業なので、真似しないで下さい(;・∀・)。

「プログラミング Erlang」のソースコードに、lib_md5.erlというモジュールが入ってまして、これのソースコードを見るともっとちゃんと「プログラミング」されてる16進数変換関数が書かれてます。実際はそちらを参考にするべきでしょう。

SHA-1の場合(cryptoモジュール)

SHA-1についてはcryptoモジュールで提供されている sha/1, sha_init/0, sha_update/2, sha_final/1 を使って計算できました。sha/1の場合だけ載せます。

7> crypto:start().  % これをやっておかないとまずいらしい。
ok
8> C4 = crypto:sha1(Data).
<<149,229,83,86,245,217,56,145,166,127,215,161,123,238,204,31,131,12,10,86>>
9> crypto:stop().
ok

なお、crypto:md5/1, md5_init/0, md5_update/2, md5_final/1 というのもありまして、erlangモジュールでの結果と同じになります。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-08-02 23:58:53
md5:2894675ff639164743f94a51aca3b2d5
sha1:516b6db6db62763711fed3b8cc76ac0cc0724230

Erlang/HowTo/ListUpProcessInformations  

所有者: msakamoto-sf    作成日: 2009-08-02 12:39:22
カテゴリ: Erlang 

BIFsの erlang:processes/0 はPidのリストを返す。また、erlang:process_info/1 はPidを引数に取りプロセス情報のタプルのリストを返す。
lists:map()を使えば全Pidのプロセス情報のリストを取得できる。

1> lists:map(fun erlang:process_info/1, erlang:processes()).
[[{registered_name,init},
  {current_function,{init,loop,1}},
  {initial_call,{otp_ring0,start,2}},
  {status,waiting},
  {message_queue_len,0},
  {messages,[]},
  {links,[<0.4.0>,<0.5.0>,<0.2.0>]},
  {dictionary,[]},
  {trap_exit,true},
  {error_handler,error_handler},
  {priority,normal},
  {group_leader,<0.0.0>},
  {total_heap_size,1364},
  {heap_size,987},
  {stack_size,2},
  {reductions,2786},
  {garbage_collection,[{fullsweep_after,65535},{minor_gcs,3}]},
  {suspending,[]}],
 ...

Pidも戻してみたいので、次のようにしてみる。

1> lists:map(fun(X) -> {X, erlang:process_info(X)} end, erlang:processes()).
[{<0.0.0>,
  [{registered_name,init},
   {current_function,{init,loop,1}},
   {initial_call,{otp_ring0,start,2}},
   {status,waiting},
   {message_queue_len,0},
   {messages,[]},
   {links,[<0.4.0>,<0.5.0>,<0.2.0>]},
   {dictionary,[]},
   {trap_exit,true},
   {error_handler,error_handler},
   {priority,normal},
   {group_leader,<0.0.0>},
   {total_heap_size,1364},
   {heap_size,987},
   {stack_size,2},
   {reductions,2786},
   {garbage_collection,[{fullsweep_after,65535},{minor_gcs,3}]},
   {suspending,[]}]},
 ...

なおerlang:process_info/1はデバッグ用途にのみ使ってね、という記述がある。
通常用途ではerlang:erlang:process_info/2を使って、どの情報を取得するか明示的に指定する。

1> erlang:process_info(list_to_pid("<0.29.0>"), status).
{status,running}
2> erlang:process_info(list_to_pid("<0.29.0>"), [status, memory]).
[{status,running},{memory,142044}]

なおerlang:list_to_pid/1もデバッグ用途orErlang内部限定であり、一般アプリでは使うべきではない、との警告がリファレンスマニュアルには記載されている。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-08-02 12:52:44
md5:7d82bd410f8337c7645fc41bfb5eeabe
sha1:fc5f1aabc370e5c1f54b936cc02221002c5d2e92

Erlang  

所有者: msakamoto-sf    作成日: 2009-07-27 21:01:52
カテゴリ: Erlang 
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2009-08-02 11:09:17
md5:e02dd7a554fcbd2bd64e8fa61117a270
sha1:e7e74ab256adcf9eca8cb9ee760e71651d29c899

日記/2009/08/02/Erlangの比較演算子  

所有者: msakamoto-sf    作成日: 2009-08-02 08:56:11
カテゴリ: Erlang 

Erlang Reference Manualの "6.11 Term Comparisons" にあるのだけど・・・。
まず「不一致」が

/=

なのが忘れやすそう。他の言語は大体 "!=" なので。

1> 1 /= 2.
true

続いてデータ型変換の発生しない、PHPでいうところの"===", "!=="が

=:=
=/=

というのもまた・・・。":"ってなんだよ、":"って。忘れやすそうというか、暫く離れた後戻ってきた時にぎょっとしそう。

1> 1 =:= 1.0.
false
2> 1 =/= 1.0.
true

プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-08-02 08:59:14
md5:fe377dc270ff8ef7d968a82d642a2b8d
sha1:328414cebb644230b209703a50e52f84e1cd0d3c

日記/2009/08/02/戸籍を郵送で取り寄せてみた  

所有者: msakamoto-sf    作成日: 2009-08-02 07:06:27
カテゴリ:

のだが。
80円切手を貼っておいた返信用封筒に入ってきたのだが、封筒に「不足料金受取人払」という判子が押されていた。
が、普通に郵便受けに入っており、特にその後も郵便局員から料金請求された訳でもない。

「戸籍 郵送 不足料金受取人払」でググってみたところ、役所側としては切手代が不足する場合は判子を押すらしい。一方、郵送請求する人向けの文書では不足すると予想される場合は予め封筒に「不足料金受取人払」と書いておくと良いですよ、というのを見つけた。

請求する側としては80円切手で足りるか不明なので、返信先の自分自身で不足分は払いますよ、ということで念のため「不足料金受取人払」と書いておくのは納得。
しかし返信する役所側としては、重さを量るチャンスがあるのだから切手が足りているかは分かる。なので、予想ではなく確実に不足する「場合は」と書いたのも納得。

・・・でも今回、判子押されてるのに請求されてない・・・。
いいのかな?役所の人が重さを量ってOKだったけど念のため、というかその役所内での通例として「不足~」の判子を押しただけなのかも・・・。
まぁ最終的に不足分を請求されたわけでも無いし、特にそのような連絡のメモなども入ってなかったのでOKなのだろう・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-08-02 07:18:26
md5:c38cc95af78befaae9439b6b58843a29
sha1:dcaca00e3eec31f44eb266e852f342b922660395

日記/2009/07/30/本日付けで退職しました。  

所有者: msakamoto-sf    作成日: 2009-07-30 23:58:01
カテゴリ:

公私でお世話になった方々へ:

本日付で msakamoto-sf こと坂本昌彦は立川の某システム開発会社を退社致しました。
9/1より新しい会社に移ります。そこでは研究開発として新しいWebサービスを開発したり、既存Webサービスに関連したシステム開発・プログラミングなどに携わる予定です。

これまでの常駐型受託開発のSEとはガラリと働き方が変わる事が予想され、不安がないとは言い切れませんが、この度の転職も何かしらご縁が有ってのことですので、心機一転して職務に励みたいと思います。

今後もご縁が合ってばったり出会った時はご挨拶だけでもさせてください。
簡単ではありますが、これにてご挨拶と致します。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-07-31 00:16:15
md5:a0e36a6b1ec735894dbed00ae190306c
sha1:bb28a9a00b7ff7caf8e2cf9b3419eaad6b511fa7

日記/2009/07/27/梅雨がなかなか明けない。  

所有者: msakamoto-sf    作成日: 2009-07-27 00:28:11
カテゴリ:

太平洋高気圧の張り出しが7月終わろうとしていてもまだ弱い。
梅雨前線が未だに日本の本州上に停滞しているのって、おかしいような気がする。

感覚的に、小学校(1990年代前半)の頃の「夏」の気象と、大学時代後半の2003-4年以降の「夏」の気象が随分違ってきているような気がする。
梅雨が中々明けないし。
お盆過ぎた辺りで一旦長雨になるパターンが増えてきてるし。

何というか体感レベルで、天気の変動パターンが以前と明らかに違ってきている気がするんですけど。

高校まで過ごした千葉県の利根川沿いの一地方と、大学以降の東京八王子近辺ではそれほどパターンが違うのだろうか。
梅雨前線とか気圧配置とかはその程度の距離の差は関係ないだろうし。

温暖化の影響かなぁ。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-07-27 00:37:47
md5:59000912fc4b898539ae2a42238aab2c
sha1:f475a06edef7710fc29ef57ae2b9f43c43e48b3c

読書/データベース関連  

所有者: msakamoto-sf    作成日: 2009-07-24 00:29:44
カテゴリ: Oracle システム開発 読書 

データベース(主にRDBMS)を勉強した時にお世話になった本を紹介します。
といっても、MySQL/PostgreSQLは公式ドキュメントでOracleはOTN(Oracle Technology Network)、あとGoogle検索で大概事足りてしまいますので、個別のDBの勉強、というよりは「リレーショナルDBの一般的な仕組みや運用方法」について勉強した本になります。
以下2冊になりますが、いずれも新品は無いようです。残念です。*1

データベース設計・構築「基礎+実践」マスターテキスト

この本には本当に感謝してるんですが・・・増刷は無いのかな・・・。
RDBMSを使った主に企業の業務システムを想定していて、DBもOracleやDB2など商用のDBMSを意識しています。
とはいえ、一般的な概念の話として、

  • データの性質
  • データモデルの概念
  • 集合の話
  • 排他制御/トランザクション/分散+2フェーズコミット
  • 障害対策や領域管理
  • データベース設計のライフサイクル
  • 正規化

などなど重要ポイントを網羅しています。また図も多用されていますので分かりやすいと思います。
ページ数は300Pを少し超えた程度ですが、結構読むのに時間がかかりました。それだけ密度が濃いです。

データベース運用・管理「基礎+実践」マスターテキスト

「データベース設計・構築」の姉妹本で、こちらは運用と管理について扱っています。
運用となると、組織との絡みもありますので抽象的にならざるを得ず、やはり人間的な部分や監査などを扱った章は一般的なお話が多いです。
開発者としては、第3章の「データベースの運用管理の実際」の方が興味深かったです。

  • スケジューリング, オンライン処理とバッチ処理の話
  • ログファイルの設計や運用管理
  • バックアップとリカバリ
  • ロールバックとロールフォワード
  • デッドロック, 性能管理, 領域管理など

この姉妹本を読んでいたお陰で、お客様のSI部隊のDB担当の人と話もし易くなりました。全体的に一通り網羅できますので、単にSQLを組んで終わりというのではなく、運用まで含めた全体を見渡せる視点が得られたと思います。

最後に、Oracleに特化してしまいますがディープな話を軽いノリでガンガン進めていく一冊を。

おら!オラ!オラクル

ぶっちゃけまだ読み終わっていません。(;・∀・)
もう最初のインデックス構造の部分だけでお腹一杯です。
Oracleの内部処理に興味のある人にはオススメ・・・って、これも新品無さげです。

結局全部新品が無い本ばかりになってしまいましたが、坂本が新入社員のころ(2004-2005年当時)にたまたま書店で見かけて入手した本です。
えー、その、まぁこういう本を読んでDB勉強しましたよ、という程度にしか参考にならないですね、スミマセン・・・。


*1: 最近はIT系ポータルサイトやブログなどでこうしたディープな部分も分かりやすく解説している所も多いようですので、今更かもしれませんが・・・

プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-07-24 00:56:21
md5:1749d24f2029f076ea71f8271f11f49c
sha1:572035aea2a39fae8fc14d175c572f3f189053fc