音楽に関する話題、プログラムに関する話題、ジョギングに関する話題、後は日々気になったことを綴っていきます。
ザ☆ミュージシャンズ・プログラマー - Exploring Music & Programming -



今はやりの主要なスクリプト間で同じようなことをしたい場合、どのように書けばいいのかを研究していきたいと思います。

まず、とりあげる主要なスクリプトを以下にあげます。


  1. Perl [ジャンプ]

  2. Python [ジャンプ]

  3. Ruby [ジャンプ]
  4. PHP [ジャンプ]

  5. Tcl/TK [ジャンプ]

  6. Windows PowerShell [ジャンプ]

  7. WSH(VBScript & JScript ... etc) [ジャンプ]

  8. Groovy [ジャンプ]

  9. node.js [ジャンプ]

  10. Bash(おまけ) [ジャンプ]

  11. Lispもやりたいけど、、、いつかチャレンジ!! [ジャンプ]



Perl


Python


Ruby


PHP


Tcl/TK


Windows PowerShell


WSH


Groovy


Node.js


Bash


Lisp





コメント ( 0 ) | Trackback ( )





超ムカツクぜー!!

業務でSolarisを使っていて、なぜかログインシェルが大っ嫌いな

tcsh


何が嫌いって、エスケープシーケンスが分からん!!

普通だったら\(バックスラッシュ)だろが!!

まぁ、Cシェル系って普通の人は使わんだろ?

サーバで使えるのはやはりBシェル系だな・・・



コメント ( 0 ) | Trackback ( )




<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

<form action="http://www.google.co.jp/cse" id="cse-search-box">

大分昔になりますが、「RailsによるアジャイルWebアプリケーション開発(第1版)」を購入しました。
着実に先へ進んでいたのですが、現場の仕事が忙しくなり、Ruby自体にもほとんど触れることがなくなってしまいました。
最近ようやく時間ができたので、最初っからやり直そうと思ったのですが、時代が激変していました。
第1版はRailの1.0(脚注0.13なんて書いてありますが、、、)の解説で、今はすでにRails3が出ているではないですか!!
しかも、EclipseベースのAptana StudioなるIDEなんかも。

こりゃぁ、遅れをとってはならぬ(かなり遅れていますが)、と思い、早速、いろいろとインストールを始めました。

残念ながら、一発では動きませんでしたね。

Ruby1.8.7(p302)、Rails2.3.4(Rails3はまだまだ)、Aptana Studio 2.0.5で勉強やり直しです。
Ruby1.9.2やRails2.3.9というバージョンもありますが、やってはみましたが、Ruby1.9はキャラクタセットの扱いがそれ以前と異なるということで、断念しました。
後々、勉強しなければいけないところではありますが。

Four Days on Rails 2.0 」が非常に参考になりました。
あと、やはり「RailsによるアジャイルWebアプリケーション開発 第3版 」も必携ですかね(まだ、購入していませんが)。
いずれ、第4版が出ることでしょう(その時は、Rails3かも)。

実際のところ、RoRでの開発実績ってどんなもんでしょう。
Real application live in the wild 」にいろいろとサイトがあるようですが、どうみれば「Powerd By Ruby On Rails」ということがわかるんですかね?

YWT的に綴っていければと思います。

 
    <input type="hidden" name="cx" value="partner-pub-3407383286528802:x1hdk1ewp2s" />     <input type="hidden" name="ie" value="UTF-8" />     <input type="text" name="q" size="31" />     <input type="submit" name="sa" value="検索" />  
</form>

<script type="text/javascript" src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja"></script>



コメント ( 0 ) | Trackback ( )




<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

Prossioneでの監視やジョブ管理はどうしてもHinemos を使わないと駄目なんです。
現行運用中のシステムではJP1が当たり前のように使われている。
ビューアーもしっかりして、長年使っているせいか、コマンドラインでの操作も普通にやっているのが現状です。
で、いまさら別のスケジューラ・アプリケーションも何かなと思う。
費用対効果があがればいいんですけどね。

で、ちょっとHinemosを使ってみました。
マネージャーのコントローラーとしてJBoss、管理DBはPostgreSQL、ユーザー管理はOpenLDAPが使われている。
サーバー情報収集にはnet-snmpが大活躍しています。
管理クライアントは思いっきりEclipseベースですね。項目がパースペクティブで分かれているのを見て、瞬時にわかりました。
TERASOLUNA-IDEとしてEclipseを毎日のように使っていたので、あまり違和感はなかったですね。
はっきり言って、JP1/AJS2-Viewに比べると、見劣りはするものの、機能ははるかに豊富に取り揃えられています。
逆に言うと、機能がありすぎでよくわからない。

SNMPを使用しているので、サーバーの監視をする場合は、結構便利で、かなり細かい設定ができます。
プロセス監視やディスク監視など、頻繁に使用されるものについては、別立てで設定画面があるので、わかりやすい。
それ以外でSNMPを使って何かできるかというと、今のところ、思いつきませんね。

今後はProssioneでの環境構築が乱立することになるので、Hinemosは十分に抑えとかないと駄目だなと思っている今日この頃です。

<form id="cse-search-box" action="http://www.google.co.jp/cse">  
    <input type="hidden" value="partner-pub-3407383286528802:x1hdk1ewp2s" name="cx" />     <input type="hidden" value="UTF-8" name="ie" />     <input type="text" size="31" name="q" />     <input type="submit" value="検索" name="sa" />  
</form>

<script src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja" type="text/javascript"></script>



コメント ( 0 ) | Trackback ( )




<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

Strutsの勉強を経て、いつしかTERASOLUNAマスターになった気分に浸っています。
しかし、Strutsをやればやるほど、TERASOLUNAの仕組みがよくわからなくなってくる。
例えば、Validation。
validation.xmlのformset/formタグのname属性になんでパスを書かなきゃならんのだ?
Strutsやっていないくとも、formのnameといっているんだから普通に考えれば、Form Beanの名前だろうと思う。それが違う。。。笑える。

で、今はまっているのが、別にTERASOLUNAというわけではなく、SPRINGFRAMEWORK。
APサーバーとしてTomcatを使っているけど、WARファイルを展開したくないので、Deployの指定でunpackWARsをfalseにした瞬間に

[2010/09/09 22:49:33][ERROR][[/]] クラス org.springframework.web.util.Log4jConfigListener のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
java.lang.IllegalStateException: Cannot set web app root system property when WAR file is not expanded
    at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:125)
    at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:118)
    at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:47)
・・・・以下略・・・

なんだと思い、Log4jConfigListenerのJavaDocを見ると、注意書きがあった。

Log4jConfigListener

なになに、「WARNING: Assumes an expanded WAR file, both for loading the configuration file and for writing the log files. If you want to keep your WAR unexpanded or don't need application-specific log files within the WAR directory, don't use Log4J setup within the application (thus, don't use Log4jConfigListener or Log4jConfigServlet). Instead, use a global, VM-wide Log4J setup (for example, in JBoss) or JDK 1.4's java.util.logging (which is global too).」と。
じゃぁ、使わないでおこう。と思ったが、自分の一存では決められないけど、多分、「よくわからんから、展開する方向で」で、この話は終わりになりそう。。。
うちのプロジェクトはこんな感じで、あまり考えたくないみたい。
追従します。。。
しかし、まともな回避策はないのかね。

<form action="http://www.google.co.jp/cse" id="cse-search-box">
<input type="hidden" name="cx" value="partner-pub-3407383286528802:x1hdk1ewp2s" /> <input type="hidden" name="ie" value="UTF-8" /> <input type="text" name="q" size="31" /> <input type="submit" name="sa" value="&#x691c;&#x7d22;" />
</form> <script type="text/javascript" src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja"></script>

コメント ( 0 ) | Trackback ( )




<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

7月は、今年度最初の多忙な月になりそうです。
ほぼ毎週末にデータセンターへ足を運ぶことになってしまった。
先週末はめずらしく、サーバーのフルバックアップがあった割には無難に終わった。
対象サーバーは1台でしたが、いつもであれば、サポート祭りになるところが、何事もなく、1時間足らずで終わった。翌日はきっと何かがあると、思いきや、まったく何事もなく、昼過ぎに終わった。
じゃぁ、週明けに、、、と思ったのですが、明けてみると、週末作業があったの?というくらい、何も起きなかった。
こういう、切り替えが続けばいいのになぁ。

今週末はメンテナンスではなく、お客様データ収集で、今までにやったことのないことをやります。
データ集めだから、何もないと思っています。
余計な作業が増えなければ。

さぁ、今週末に向けて、準備しなくちゃね。

<form action="http://www.google.co.jp/cse" id="cse-search-box">
<input type="hidden" name="cx" value="partner-pub-3407383286528802:x1hdk1ewp2s" /> <input type="hidden" name="ie" value="UTF-8" /> <input type="text" name="q" size="31" /> <input type="submit" name="sa" value="&#x691c;&#x7d22;" />
</form> <script type="text/javascript" src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja"></script>

コメント ( 0 ) | Trackback ( )




分かっていながら、ついやってしまうことってありますよね。

最近、ばかなことをして、PJリーダーに怒られることが増えてきました。

今日もまたやってしまった。

サーバー・メンテナンスで、申請データをを抽出した後、その環境に残しておかないといけないのは分かっていたのですが、それをログファイルと一緒に送ろうとしたら、

「何を考えているんですか?送ってはいけない理由は分かりますよね?」

と一蹴。

確かに、私が迂闊でした。。。

ちょー反省をしている、今日この頃です。



コメント ( 0 ) | Trackback ( )




<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

今までごちゃごちゃと書いてきましたが、お分かりの通り、Derbyのマニュアル、Getting Started with Derby(さあ、Derbyを始めよう!!) からの引用です。

とにかく、今回がその最後になりますが、クラサバ環境でクライアント・ドライバーを使用したJDBCプログラムをこしらえて、動かしてみようと思います。
例の如くDERBYTUTORへ移動します。

前回はその直下にsrcというディレクトリを作成して、デモをコピーしてきています。

その中のWwdEmbedded.javaを弄って動くものを作ります。

■WwdEmbedded.javaをWwdClient.javaとしてコピーします。

> cp WwdEmbedded.java WwdClient.java

■WwdClient.javaを編集する。

クラス定義をまずは変えないといけません。

修正前
    public class WwdEmbedded

修正後
    public class WwdClient

続いて、ドライバー名、URL属性名を変えます。

修正前
    // define the driver to use
        String driver = "org.apache.derby.jdbc.EmbeddedDriver";
    // the database name
        String dbName = "jdbcDemoDB";
    // define the Derby connection URL to use
        String connectionURL = "jdbc:derby:" + dbName + ";create=true";

修正後
    // define the driver to use
        String driver = "org.apache.derby.jdbc.ClientDriver";
    // the database name
        String dbName = "jdbcDemoDB";
    // define the Derby connection URL to use
        String connectionURL = "jdbc:derby://localhost:1527/" + dbName + ";create=true";

■ビルド(コンパイル)します。

> ant -f build-db.xml

■別端末エミュレータにてDBサーバーを起動します。

/var/tmp/DERBYTUTORに移動して、以下のコマンドを入力します。

> java -jar $DERBY_HOME/lib/derbyrun.jar server start
2010-06-24 07:03:35.922 GMT : セキュリティーマネージャーが Basic サーバーセキュリティーポリシーを使用してインストールされました。 2010-06-24 07:03:37.634 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) が起動し、ポート 1527 で接続の受け入れ準備が完了しました

■クライアントを起動します。

まずは、前回作成したbuild-db.xmlのembの次に以下を追加します。

        <target name="client" depends="build">
               <java classname="WwbClient" fork="yes">
                     <classpath refid="cp">
               <java>
        </target>

> ant -e -f build-db.xml client(Emacsモードで)
・・・中略・・・
client:
org.apache.derby.jdbc.ClientDriver loaded.
Connected to database jdbcDemoDB
Enter wish-list item (enter exit to end):
a sunny day
  __________________________________________________
On 2010-06-24 00:49:04.977 I wished for a peppermint stick
On 2010-06-24 00:49:12.258 I wished for a long vacation
On 2010-06-24 16:20:18.104 I wished for a sunny day
  __________________________________________________
Enter wish-list item (enter exit to end):
a new car
  __________________________________________________
On 2010-06-24 00:49:04.977 I wished for a peppermint stick
On 2010-06-24 00:49:12.258 I wished for a long vacation
On 2010-06-24 16:20:18.104 I wished for a sunny day
On 2010-06-24 16:20:22.523 I wished for a new car
  __________________________________________________
Enter wish-list item (enter exit to end):
exit
Closed connection
Getting Started With Derby JDBC program ending.

BUILD SUCCESSFUL
Total time: 1 minute 18 seconds
※ボールド体が入力項目です。

■サーバーが起動している端末とは別の端末エミュレータで停止させます。

/var/tmp/DERBYTUTORに移動して、以下のコマンドを入力します。

> java -jar $DERBY_HOME/lib/derbyrun.jar server shutdown
そうすると、サーバーを起動した端末側で以下が出力されます。
2010-06-24 07:54:03.975 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) はシャットダウンしました

ざっとですが、Derbyを使ってみて、ちょっとしたアプリ開発であれば、問題なさげな感があります。 この後は、もう少し掘り下げて、ツールの使い方や、プログラミングを勉強していこうと思います。 フレーム・ワークへの組み込みなんかも意外と簡単にできそうです。 <form action="http://www.google.co.jp/cse" id="cse-search-box">
<input type="hidden" name="cx" value="partner-pub-3407383286528802:x1hdk1ewp2s" /> <input type="hidden" name="ie" value="UTF-8" /> <input type="text" name="q" size="31" /> <input type="submit" name="sa" value="&#x691c;&#x7d22;" />
</form> <script type="text/javascript" src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja"></script>

コメント ( 0 ) | Trackback ( )




<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

次は組み込みドライバーを使ったJDBCプログラムを試してみます。
例の如くDERBYTUTORへ移動します。

> /var/tmp/DERBYTUTOR

ここでDERBYのデモプログラムを使ってみます。

> mkdir src
> cp $DERBY_HOME/demo/programs/workingwithderby/* src/
> ls src

WwdClientExample.class WwdEmbedded.class WwdUtils.class readme.html
WwdClientExample.java WwdEmbedded.java WwdUtils.java

.classファイルは邪魔なので削除してください。

DERBYTUTOR直下で以下のようなbuild.xmlを作成しました。

■build-db.xml

<?xml version="1.0" encoding="EUC-JP"?>

<project name="derby-demo" default="build" basedir=".">
    <property name="src.dir" value="src" />
    <property name="dest.dir" value="classes" />
    <property environment="env" />

    <path id="cp">
        <pathelement location="${dest.dir}" />
        <fileset dir="${env.DERBY_HOME}/lib">
            <include name="**/*.jar" />
        </fileset>
    </path>

    <target name="echo">
        <property name="echo.path" refid="cp" />
        <echo message="${echo.path}" />
    </target>

    <target name="init">
        <tstamp />
    </target>

    <target name="build" depends="init">
        <mkdir dir="${dest.dir}" />
        <javac srcdir="${src.dir}" destdir="${dest.dir}" debug="yes">
            <classpath refid="cp" />
            <include name="*.java" />
        </javac>
    </target>

    <target name="emb" depends="build">
        <java classname="WwdEmbedded" fork="yes">
            <classpath refid="cp" />
        </java>
    </target>

</project>

■プログラムのコンパイルおよび起動の確認

> ant -f build-db.xml build
> ant -f build-db.xml emb
emb:
     [java] org.apache.derby.jdbc.EmbeddedDriver loaded.
     [java] Connected to database jdbcDemoDB
     [java]  . . . . creating table WISH_LIST
     [java] Enter wish-list item (enter exit to end):
a peppermint stick
     [java]   __________________________________________________
     [java] On 2010-06-24 00:49:04.977 I wished for a peppermint stick
     [java]   __________________________________________________
     [java] Enter wish-list item (enter exit to end):
a long vacation
     [java]   __________________________________________________
     [java] On 2010-06-24 00:49:04.977 I wished for a peppermint stick
     [java] On 2010-06-24 00:49:12.258 I wished for a long vacation
     [java]   __________________________________________________
     [java] Enter wish-list item (enter exit to end):
exit
     [java] Closed connection
     [java] Database shut down normally
     [java] Getting Started With Derby JDBC program ending.

<form id="cse-search-box" action="http://www.google.co.jp/cse">  
    <input type="hidden" value="partner-pub-3407383286528802:x1hdk1ewp2s" name="cx" />     <input type="hidden" value="UTF-8" name="ie" />     <input type="text" size="31" name="q" />     <input type="submit" value="検索" name="sa" />  
</form>

<script src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja" type="text/javascript"></script>



コメント ( 0 ) | Trackback ( )




<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

第2弾として、クラサバ環境でJavaDBを使用してみます。
前回作成したDERBYTUTORへ移動します。
> /var/tmp/DERBYTUTOR
■別の端末エミュレーターを使ってネットワーク・サーバーを起動します。

> java -jar $DERBY_HOME/lib/derbyrun.jar server start
2010-06-23 14:49:32.045 GMT : セキュリティーマネージャーが Basic サーバーセキュリティーポリシーを使用してインストールされました。
2010-06-23 14:49:33.738 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) が起動し、ポート 1527 で接続の受け入れ準備が完了しました

■ijツールを起動します。

> ij

■クライアント・ドライバーを使ってデータベースに接続します。

> CONNECT 'jdbc:derby://localhost:1527/seconddb;create=true';

■次のSQLステートメントを使って2つのカラムを定義したテーブルを作成します。

> CREATE TABLE SECONDTABLE(ID INT PRIMARY KEY,NAME VARCHAR(14));
0 行が挿入/更新/削除されました

■3レコード追加します。

> INSERT INTO SECONDTABLE VALUES(100,'ONE HUNDRED'),(200,'TWO HUNDRED'),(300,'THREE HUNDRED');
3 行が挿入/更新/削除されました

■テーブルを全件検索します。

> SELECT * FROM SECONDTABLE;
ID         |NAME
--------------------------
100        |ONE HUNDRED
200        |TWO HUNDRED
300        |THREE HUNDRED

3 行が選択されました

■WHERE句を使ってテーブルのサブセットを検索します。

> SELECT * FROM SECONDTABLE WHERE ID=200;
ID         |NAME
--------------------------
200        |TWO HUNDRED

1 行が選択されました

■ijツールを終了します。

> exit;

■Derbyネットワーク・サーバーを停止します。

> java -jar $DERBY_HOME/lib/derbyrun.jar server shutdown

そうすると、別端末エミュレータで起動したネットワーク・サーバーが以下を出力して停止します。
2010-06-23 15:15:15.660 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) はシャットダウンしました

<form id="cse-search-box" action="http://www.google.co.jp/cse">  
    <input type="hidden" value="partner-pub-3407383286528802:x1hdk1ewp2s" name="cx" />     <input type="hidden" value="UTF-8" name="ie" />     <input type="text" size="31" name="q" />     <input type="submit" value="検索" name="sa" />  
</form>

<script src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja" type="text/javascript"></script>



コメント ( 0 ) | Trackback ( )



« 前ページ 次ページ »