Hatena::ブログ(Diary)

ghostbass1.4β RSSフィード

2015-02-20

二年ぶり更新

アプリケーションベンダー Wiz Logics

テクノロジー

Feature Datastores, Queries, Database, Auth,Acl, Utils,...

2012-12-06

[][][]Windowsでduコマンドっぽいスクリプトを作った

widowsにはdu(directory usage?)がない。リソースキットをインストールすればdiruse.exeとか入るみたいだけどこの程度の作業にいちいちインストールとかめんどくさい。

TreeSizeFreeは便利だが結果をデータに落とせない。

仕方がないからvbscriptで作ってみた。

du.vbs

Dim argumentCount
argumentCount = WScript.Arguments.Count

If argumentCount = 0 Then
	usage
	WScript.Quit 0
End If

Dim filespec
filespec = WScript.Arguments.Item(argumentCount - 1)

Dim maxDepth
maxDepth = 100
If WScript.Arguments.Named.Exists("max-depth") Then
	maxDepth = CLng(WScript.Arguments.Named.Item("max-depth"))
End If

Dim ignoreHidden
If WScript.Arguments.Named.Exists("ignore-hidden") Then
	ignoreHidden = True
Else
	ignoreHidden = False
End If



Dim fileSystem
Set fileSystem = CreateObject("Scripting.FileSystemObject")


Dim f
Set f = fileSystem.GetFolder(filespec)

ShowFolderSize f,0

Function ShowFolderSize(folder,depth)

	Dim subFolders
	Dim subFolder
	If depth < maxDepth Then
		Set subFolders = folder.SubFolders
		For Each subFolder in subFolders
			walk subFolder,depth + 1
		Next
	End If

	WScript.Echo FormatNumber(folder.Size) & vbTab & folder.Path
End Function
Function walk(folder,depth)
	If ignoreHidden Then
		If folder.attributes and 2 Then
			Exit Function
		End If
		If InStr(folder.Name,".") > 0 Then
			Exit Function
		End If
	End If
	ShowFolderSize folder,depth
End Function

Function usage()
	WScript.Echo "usage: cscript du.vbs [/max-depth:n] [/ignore-hidden] dir"
End Function

/max-depth:1 とすると指定ディレクトリ直下まで表示。

/ignore-hidden をつけるとWindowsの隠しディレクトリと"ドットディレクトリ"を無視する。

cscriptで起動するのでロゴが出てうざい、とか言う場合はcscriptのオプションで消すとかする。

2012-10-15

[][][]Zend_Captchaは便利だがデコレータが糞(あえて。)なのでこんなことをした。

デザインの都合上Zend_Captchaの画像部分と入力部分を分離してrender()したいが、なんかどうにもならない予感がするのでこんな風にしてみた

form

class Hoge_Form extends Zend_Form{
  public function init(){
    $this->captcha = new Zend_Form_Element_Captcha(...);
    $this->captcha->setDecorators(array("captcha"));
    $this->addElements(array(
      $this->captcha,
      ...
    ));
  }
}

controller

public function hogeAction(){
  $this->view->assign("form",new HogeForm());
}

view

<div>
<? echo $this->form->captcha ?>
</div>
<div id="captcha_input_box"></div>
<script type="text/javascript">
$(function(){
	$("#captcha-input").remove().appendTo("#captcha_input_box");
});
</script>

Decoratorでどうこうするのは諦めて、jQueryで入力要素を移動。

2012-06-24

[][]Hyper-VにCent OS 6.2をインストールする

ネットワークインストールを利用する場合。どうせあとからyumするときにはネットワークが使えないとどうしようもないのでこれでOK。

肝になるのはネットワークアダプタで、Windowsを乗せるときは通常のアダプタを設定しても問題ないから調子に乗って同じことをやるとハマる。

基本手順は

インストール中にifcfg-eth0にMACアドレスが書き込まれるので通常のアダプタを設定するときにレガシーアダプタに設定されていたMACアドレスを静的に記述する必要がある。


準備

仮想マシン作成

インストール直前

対象マシンの設定。

インストール

初期設定

LinuxIC インストール

ネットワークアダプタを入れ替える

あとは必要なものをyum installとかapt-getとかrpmとかでインストールすれば良い。

ちょっと悩んだのはDNS確認をしようとdig example.comしようとしたら「command not found」といわれたこと。最小構成でインストールすると付いてこない。bind-utilsをインストールすれば良い。