2008年2月29日金曜日

【vmware】Windows Server 2003 R2だと遅い

VMクライアントにWidows Server 2003 R2をインストールして試してましたが、コンソール画面で操作するとマウス操作が異様に遅い。

VMware Toolsを再インストールしても直らず、ただメモリが足らないだけかなと思っていましたが、クライアント側のハードウェアアクセラレータを最大にしたら直りました。

2008年2月28日木曜日

メモリ増設

この続編でメモリを追加しました。

プラス2GBで計3GB。これでVMクライアントを複数起動しても快適なはず。

Windows Server 2008 RC1を入れてみようと思ったけど、ダウンロードに24時間かかるという表示が・・・

・・・っというか、VMware Server にWindows Server 2008ってインストールできるのかな?

【SQL Server】ストアドやユーザー定義関数で現在日付を取得

前は検索したらさくっと出てきたような気がしましたが、見つからないので拾い物ですが置いときます。

ストアドプロシージャやユーザー定義関数では、実行するごとに値の変わる関数は使えないのですが(例えばgetdateとか)、 それを別の方法で取得するやり方です。

ビューを使ってselect getdate()としといて、それを使う方法もありますが、こっちの方が汎用性がありそうなので参考に。

vbscriptを実行してその値を取得してるので、vbscriptでできることは全部できそう。あとWindowsのシェルにストアドからコマンドを投げる方法もあるので、やろうと思えばなんでもできる気がします。こことかを参考に。

以下、ユーザー定義関数で現在日時を取得するサンプルです。これをそのままクエリアナライザで実行して、select dbo.func_GetDate()とすれば実行結果を見れます。

CREATE FUNCTION func_GetDate()
RETURNS datetime AS
/***************************************
FUNCTION : getdate()が関数内で使えないのでこっちで現在の日付を取得
RETURN    : datetime
***************************************/
BEGIN
DECLARE @object int
DECLARE @hr int
DECLARE @ScriptText varchar(8000)
DECLARE @temp varchar(100)
DECLARE @return datetime

--スクリプトエンジンのロード
EXEC @hr = sp_OACreate 'MSScriptControl.ScriptControl', @object OUT
IF @hr <> 0 BEGIN return '' END --失敗時

-- Languageプロパティ設定
EXEC @hr = sp_OASetProperty @object, 'Language', 'VbScript'
IF @hr <> 0 BEGIN return '' END --失敗時

-- スクリプトリセット
EXEC @hr = sp_OAMethod @object, 'Reset'
IF @hr <> 0 BEGIN return '' END --失敗時

--スクリプト作成
Set @ScriptText = ''
Set @ScriptText = @ScriptText + 'Function GetDate()' + CHAR(13) + CHAR(10)
Set @ScriptText = @ScriptText + 'GetDate = Now()' + CHAR(13) + CHAR(10)
Set @ScriptText = @ScriptText + 'End Function' + CHAR(13) + CHAR(10)

--スクリプト設定
EXEC @hr = sp_OAMethod @object, 'AddCode',NULL,@ScriptText
IF @hr <> 0 BEGIN return '' END --失敗時

--項目取得スクリプトを実行する
EXEC @hr = sp_OAMethod @object, 'Run',@temp Out,'GetDate'
IF @hr <> 0 BEGIN return '' END --失敗時

--datetime型に変換
select @return = convert(datetime, @temp)

--オブジェクト破棄
EXEC @hr = sp_OADestroy @object
RETURN @return
END
--------------------------------------------------------------

2008年2月26日火曜日

ActiveMQを調査

ActiveMQとはプログラム間で非同期で通信を行うための手助けをしてくれます。

詳しくはここ

ActiveMQを導入すると、送信側システムはActiveMQに対してやってほしいコマンドをただ送信するだけでよく、受信側システムはActiveMQにアクセスすれば順番どおりにコマンドを実行できます。

さらにコマンドを一塊で送受信できるので、システム間で連携するときに役に立ってくれそう。

この辺にも書いてありますが、他のデータベースも使えるので汎用性はありそう。

Apache ActiveMQ

PHPで試すときはここを参考に。

心配したのはセキュリティ。誰とも知らない人にメッセージを横取りされては困る。JAAS認証機能というのがあるらいいですが、プログラムからどう利用するのかはわからず。

別にコマンドぐらい知られてもいいかな・・・。

Aシステムが1、2、3、のメッセージを受け取ったらBシステムは4から?Bシステムも1からメッセージを受け取りたいときはできるのかな?

Aシステムが1,2のメッセージを受け取って、Bシステムが3,4のメッセージを受け取った場合、Aシステムは3のメッセージを受け取ることはできる?Aシステムが3をくださいって要求だせばよいか・・・。ActiveMQ側では覚えてくれないかな?

と試してみないと疑問はつきないですが、今日はここまで。

【Linux】HDD増設

VMwareのホストになっているマシンを開発で酷使していましたが、社長の許可が下りて、ハードディスクとメモリの増設をすることにしました。

今日はハードディスクが届いたので増設してみました。以下メモ。

ここを参考に。

ドライブをBIOSで認識していることを確認したら

# dmesg | grep disk

image

で増設したHDDの場所を確認。次はパーティション作成

# fdisk /dev/sdb

コマンドを入力しないといけないが、こことかを参考にしてmでhelpを表示させれば難しくない。Vine Linuxだと日本語で聞いてくれるからわかり易い。最初の増設であればn→p→1でOK。

/dev/sdb1とかができているはずなので、今度はフォーマット。/etc/fstabをみると今まではext3で作っていたので同じくext3で作成。

# mkfs -t ext3 /dev/sdb1

最後はmount。

# mkdir /mnt/sdb

# mount /dev/sdb1 /mnt/sdb/

無事マウントされたかはdfとかで確認。

あとはWindowsからアクセスするならsambaで共有してショートカット作ったり、シンボリック・リンク張ったりすれば便利に。

あと忘れてたけど次回起動時に自動マウントするためには/etc/fstabに記述。

LABEL=/               /               ext3      defaults        1 1
/dev/sdb1            /mnt/sdb  ext3      defaults        1 2
none                    /dev/pts   devpts   gid=5,mode=620  0 0
none                    /dev/shm  tmpfs    defaults        0 0
none                    /proc         proc      defaults        0 0
none                    /sys          sysfs     defaults        0 0
LABEL=SWAP-sda2  swap    swap     defaults        0 0

2008年2月23日土曜日

Visual Studio 2005でOracleへの接続設定

Oracle 9iの開発をしてますが、クライアントからOracleに接続するためにはOracle clientをインストールしないといけない。

Oracle 9iのCDに入ってますが、どうせなら最新のOracle Clientをインストールしたいと思い、探しましたが、Oracle Clientはデータベースを買うか別途購入しないと駄目みたい。

ただ単に接続するだけならOracle Instant Client(無償配布)でできるみたいですが、これは機能が制限されているので使いにくいらしい。

結局もともとVisual Studio 2005は使っていたので、これにOracle Data Provider for .NET (ODP.NET) をインストールしてOracleのデータベースを参照することにしました。ODP.NETは無償配布。

ODP.NETについて詳しく知りたい人はこことかを参照。

ODP.NETをインストールしたあとOracleのデータベースを参照するやり方は、Visual Studioを立ち上げて

ツール→データベースへの接続

を選択。データプロバイダで「Oracle Data Provider for .NET」を選択。

image

その後のダイアログ↓でデータ・ソース名には、tnsnames.oraに設定した名前をプルダウンから選択。tnsnames.oraはODP.NETをインストールしただけでは作成されないので、<ODP.NETをインストールしたフォルダ>\Network\Adminにサンプルを見ながらtnsnames.oraを設定。tnsnames.oraに記載してあればプルダウンで選ぶだけなので便利。

あとはユーザ名とパスワードを入力すればOK。

image

Visual Studioでクエリ書いたりできるので便利は便利。

ただ表領域を変更したりとかユーザ追加したりとかは(GUIで)できないみたいなので、そういうのはSI Object Browserの方が便利。

2008年2月21日木曜日

【SSL】[グローバルサイン] サイトシールのインストール方法

SSLを取得したらせっかくなのでサイトシールを表示させましょう。

インストール方法

SSL取得していればタグを埋め込むだけで使えるみたい。

2008年2月20日水曜日

【Windows】削除するときに時間がかかる場合の対処法

最近ファイルを削除するときに時間がかかるので、「なんで?」と思って検索してみました。

どうやらゴミ箱に貯まっているファイルのサイズが大きいと時間がかかってしまうらしい。ゴミ箱を空にしてみたら確かに速い。

ゴミ箱の最大サイズは少なめの方がよいみたい。

2008年2月18日月曜日

【xyzzy】【outline-tree2】PHP用マクロ

PHPでの開発をするようになって、outline-tree2にクラスや関数の一覧を表示させたいのですが、デフォルトでは表示してくれません。

絶対どっかの誰かがマクロを公開してくれていると思って検索しましたが見つからず。しょうがないので自分で対応しました。javaの正規表現を参考に記述。

まずはoutline-tree2の機能でアウトライン自動生成の機能でファイルを生成。
image
アウトライン関数名:outline-php
メニュー表示名:PHP
アウトラインの説明:なし

そうすると.outline-tree/autoload/cr-user-regexp-outline-php.lが生成されるので、それを以下に置き換え


(require "outline-tree/outline-tree")
(require "outline-tree/cr-regexp-internal")

(in-package "outline-tree2")

;; PHP 解析
(defun outline-tree-create-outline-user-regexp-outline-php (root-node)
  (outline-tree-create-outline-regexp-internal
   :root-node root-node
   :layer-regexp-list
   '("^[ \t]*\\(function\\|class\\)[ \t]+\\([&_a-zA-Z]+(.*)\\|[_a-zA-Z]+\\).*[{\n]"
     "^[ \t]*\\([^{\n()/]*?\\(public\\|private\\|function\\)[^{\n()]*?\\)\\([_a-zA-Z]+[\t]*(.*)[^(){}]*\\)[ \t]*{")
   :layer-regexp-list-case-fold nil
   :layer-regexp-list-order :non-miss))
(outline-tree-add-create-outline-function
 'outline-tree-create-outline-user-regexp-outline-php "PHP" '(:language :line-oriented :sequential)
 "PHP 言語を非常に簡易的な方法でアウトライン表示します。
実用に耐える実装には至っていません。")

↑「/」になっているのは「¥」です。クリップボードにコピーすれば大丈夫。
そのあと.outline-tree/config.lを作成して以下を記述してPHPモードのときは作成した関数を実行するように指定。
(in-package "outline-tree2")
;; PHPモードのとき
(add-hook 'ed::*php-mode-hook* #'(lambda () (setq outline-tree-create-outline-function 'outline-tree-create-outline-user-regexp-outline-php)))
以上です。
image
<2008/06/26> class とか function はいらないので正規表現を修正。

<2010/04/20> 改行がおかしくなっていたのを修正

2008年2月16日土曜日

Google Documents API

Google ドキュメントをWebアプリから操作できたらおもしろいなぁと思い、公開されているGoogle Documents APIをダウンロードしてきて、サンプルを動かしてみました。

まだ眺めている途中ですが、いろいろメモ。

GoogleのAPI公開元

試してみた人のブログ

Google Calendar APIの基礎

リモート・デスクトップ接続クライアント6.0

前にWindows Server 2008のターミナルサービスについて書きましたが、リモートデスクトップの拡張についてはクライアントWindows XP以上、サーバWindows Server 2003以上でできるみたい。

やるためには新しいバージョンのリモートデスクトップをインストールします。

詳細は下記。

リモート・デスクトップ接続クライアントを新バージョンにアップグレードする

性能も向上しているみたいなので、それだけでもインストールする価値あり。

そろそろWindows Server 2008を試しとこうかな。

2008年2月14日木曜日

Happy Valentine's Day!

今日はバレンタイン。

設計作業で別の会社に通ってますが、今日行ってみたら机の上にチョコが・・・

みんなの机に置いてあるけど、誰が置いたのか謎です。

もらってよいのかな?

とりあえず放置して帰ってきてしまいました。

社内に帰ってくると姉様たちからはチョコを頂きました。ありがたや。

ちなみにGoogle Docsもバレンタインモードになっててビックリ

image

Windows Server 2008でのターミナルサービス

前のブログでシンクライアント化について書きましたが、Windows Server 2008ではシンクライアントっぽくターミナルサービスが進化しているようです。

注目機能は

RemoteApp クライアントからサーバのアプリケーションを実行でき、クライアント側からはローカルのアプリを実行している感覚で操作可能。
実行する際のCPU、メモリなどはサーバ側のリソースを使用する。
作成されたファイルなどの保存先にクライアント側を指定することも可能。印刷先にクライアント側に接続されているプリンタを指定可能。
リモートデスクトップの拡張 クライアント側に接続されたリソースをあたかもサーバ側に接続されているように操作可能。
たとえばクライアント側に接続したUSBメモリをリモートデスクトップで接続したサーバで取り出せる。

 

詳しく知りたい人は下記参照。

@IT 第8回 ターミナル・サービスによるクライアントの仮想化(前編)

Windows Server 2008で大幅に進化したターミナルサービスを試す【前編】

2008年2月11日月曜日

【Linux】chkconfigを眺める

chkconfigを眺めて、いらないデーモンをアンインストールしようと調べてみました。

ディストリビューションはVine Linux

以下chkconfig --list の一覧。

※このマシンはvmwareのホストとして稼働するのみ

名前 説明 起動
atd コマンドの遅延実行を有効にするサービス on
autofs ファイルシステムの自動マウント/アンマウント on
anacron ダウンタイム時に損失したジョブを自動実行するデーモン on
acpid 電源管理(Advanced Configuration and Power Interface) off
cpuspeed システムのアイドル比率に応じてCPUの動作周波数を上下させる on
crond 定期的にジョブを実行するためのジョブスプーラ on
haldaemon

ハードウェア情報収集サービス。messagebusが起動している必要あり。

on
inet スーパーサーバデーモン on
iptables IPv4 のパケットフィルタと NAT を管理するツール on
irqbalance マルチCPU環境でセカンドCPU以降も割り込み処理を行える on
keytable キーマップユーティリティプログラム on
kudzu ハードウェア検出ツール on
network ブート時にネットワーク・インターフェイスを初期化 on
netfs /etc/fstabを参照しNFS,SMB,NCPのネットワークファイルシステムをマウントするサービス off
nscd

ネームキャッシュサービスデーモン

off
messagebus アプリケーション間のメッセージを送るD-BUSを利用可能にする on
portmap RPC サービスの親玉サーバデーモン off
random 乱数生成デーモン on
rdisc

ネットワークルータディスカバリーデーモン

off
smb samba on
sshd 通信経路を暗号化して安全なリモートログインを可能とするSSH(Secure Shell)サーバサービス on
saslauthd sasl認証デーモン off
syslog システムログデーモン on
vmware vmware on
winbind

Windowsドメインのアカウントでログインを可能にさせる

off

よく分からないものは、とりあえずoffに。

いらないデーモンの例

  • mdadm ・・・ Linux ソフトウェア RAID md デバイスの管理
  • postfix ・・・ メールサーバ
  • rp-pppoe ・・・ PPP Over Ethernet (xDSL support)

参考にしたのはこことかこことかここ

結果

/sbin/chkconfig --list | sort | grep on
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
inet            0:off   1:off   2:off   3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:off   4:off   5:off   6:off
irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
keytable        0:off   1:off   2:on    3:on    4:on    5:on    6:off
kudzu           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
random          0:off   1:off   2:on    3:on    4:on    5:on    6:off
smb             0:off   1:off   2:off   3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
vmware          0:off   1:off   2:on    3:on    4:off   5:on    6:off

 

2008/2/25追記

haldaemonはmessagebusが起動していないとだめらしい。

2008年2月9日土曜日

【Linux】CUIでも簡単にファイヤーウォール(ポート)設定

外部に公開されてないのでiptablesのサービスはアンインストールしようかなと思いましたが、CUIでも簡単に設定できるコマンドを見つけたので一応ファイヤーウォール(Firewall)を有効にすることにしました。

コマンドは

# system-config-securitylevel-tui

< 2011/11/13 Modified >
CentOS 6.0からは
# system-config-firewall-tui

 

こんな感じで起動する↓

image

有効にしてカスタマイズを選択

image

あとは好きなように設定してOK。

実際は/etc/sysconfig/iptablesに書き込まれる。

【Linux】依存関係の解決

Vine Linuxの設定をしているときにOpenSSHをアンインストールするときにエラーで失敗した。

openssh-serverを削除するときに中途半端に削除されたみたいで、もう一回削除しようとしてもファイルがないと言われるし、インストールしようとすると「インストール済み」と怒られる。

なので強制アンインストールを実行。

openssh-serverをアンインストールするときに

サービス sshd の情報を読み込み中にエラーが生じました: そのようなファイルやディレクトリはありません
エラー: %preun(openssh-server-4.5p1-0vl1.2.i386) スクリプトの実行に失敗しました。終了ステータス 1

と怒られるので、rpmのコマンドで--nopreunを付けて実行する

rpm -e --nopreun openssh-server

それでも怒られる場合はスクリプトの頭にnoを付けて実行しないようにしてアンインストールする。詳しくはここ

あとは通常通りapt-get でインストールすれば元通り。

Linux(CentOS)のホスト名を設定(ネットワークの設定)

Linuxマシンに自分自身が何て名前か教えてあげる。インストール直後に必要なネットワークの設定でもある。以下ホスト名を「test」とする場合

/etc/hosts

127.0.0.1 localhost test test.exbridge.jp

/etc/sysconfig/network

NETWORKING=yes HOSTNAME=test.exbridge.jp

これでログイン画面やコマンドラインでlocalhostとなっていたのがtestに変わります。

名前解決のファイルは/etc/resolv.conf

nameserver 192.168.0.2 search exbridge.jp

名前解決に192.168.0.2を使う。

searchはデフォルトのドメイン。

ping test

とかの場合、

ping test.exbridge.jp

を検索するようになる。

あとDHCPやらIPアドレスの設定はCentOSの場合
# system-config-network
というコマンドでCUIでも簡単に設定可能なツールが起動するので便利。

実際には
/etc/sysconfig/network-scripts/
にあるifcfg-eth0に書き込まれる。このファイルを直接編集してもO.K.

<2009/01/10 追記>
どうやらsystem-config-networkのツールは一時的に

/etc/sysconfig/networking/devices/

に書き込んでいるみたい。system-config-networkからデバイスを削除したい場合はこのファイルを直接削除する。

2008年2月8日金曜日

Adobe Air VS Microsoft Silverlight

昨日はFlashとSilverlightを書いたけど、世間では

Adove 「AIR」 VS Microsoft 「Silverlight」

の構図らしい。

WPFが引き起こすデスクトップアプリの革新--Silverlightでウェブもカバー

の記事も参考に。

これらの技術とAjaxも組み合わせて、サーバとクライアントでいい感じで作業分担できたらなぁと思ってます。

Silverlightって実行速度が速いというふれこみですけど、実際どうなのでしょう?

2008年2月7日木曜日

FlashとSilverlightどっちを使う?

マイクロソフトからSilverlightが発表されてからしばらく経ちますが、いったいどれくらい世間に広まったのだろう・・・。

知らない人はSilverlight特集とか@ITを参照

Silverlight特集からリンクされているページをみると実際に動く画面をみれるのでおもしろい。

JavaScriptで簡単に書けるみたいので、そのうち作ってみようかな。

2008年2月2日土曜日

【DB2】PHP+DB2文字化け

今後DB2の環境を構築するかもしれないためのメモ。

ここにもちょっとメモ書きが。

ibm_db2ドライバーリファレンス

DB2の環境を構築したあと困ったのが文字化け。

DB2側の文字コード(ZendCoreで設定)とWebサーバ(php.ini、.htaccess、ファイル、charset)の文字コードを合わせても直らなかった。

でも今見た雑誌に「php.iniにibm_db2.i5_dbcs_alloc=1とすると直る」という記事が。

時間があったら試してみよう。

【Firefoxアドオン】CSSをデバッグする「EditCSS」

リアルタイムでスタイルシートを編集して表示するアドオンの紹介です。

EditCSS

image

左のサイドバーに現在表示しているサイトのCSSが表示され、これを編集するとすぐに画面に反映されます。

CSSの確認やデバッグするときは便利。

適用するスタイルを別ファイルで読み込むとそのスタイルが反映した画面を確認できます。

ただimportしているCSSファイルは編集できない。

Related Posts Plugin for WordPress, Blogger...

Blog Archives