Recent Entries
Archives
Search


Links
Powered by
Movable Type 2.64

2008年11月24日

llvm-2.4とMSIL

llvm-2.4のMSILのコードは長らく更新されていないのです(´ー`)

llvm-2.4でMSILのバイナリ吐かせてみようと思って llc -march=msil してみるわけですが、abortしてしまいますのでちょっと調べてみました(´ー`)いくらかbcのバイナリに対して未実装の部分があるようです。


HANDLE_OTHER_INST(42, PHI , PHINode ) // PHI node instruction
HANDLE_OTHER_INST(45, UserOp1, Instruction) // May be used internally in a pass
HANDLE_OTHER_INST(46, UserOp2, Instruction) // Internal to passes only
HANDLE_OTHER_INST(48, ExtractElement, ExtractElementInst)// extract from vector
HANDLE_OTHER_INST(49, InsertElement, InsertElementInst) // insert into vector
HANDLE_OTHER_INST(50, ShuffleVector, ShuffleVectorInst) // shuffle two vectors.
HANDLE_OTHER_INST(51, ExtractValue, ExtractValueInst)// extract from aggregate
HANDLE_OTHER_INST(52, InsertValue, InsertValueInst) // insert into aggregate
HANDLE_OTHER_INST(53, VICmp , VICmpInst ) // Vec Int comparison instruction.
HANDLE_OTHER_INST(54, VFCmp , VFCmpInst ) // Vec FP point comparison instr.

特に上記のうち42,45,50についてはX86では対応していますので、対応しておくのが無難と思われます。lib/Target/MSIL/MSILWriter.cpp に実装を追加する必要がありまして、1168行目でassertが出ないように(つまり case でdefaultを通らないように)してやらないといけないわけです。で、おそらくその部分を実装すれば何とかなると思われます。

#がしかし(;´Д`)今はそんなのやってる暇無いので放置

2008年01月28日

VirtualBoxでclonevdi

VirtualBox 1.5.2 でclonevdi(´ー`)というか仮想DISKのコピー
結構ハマります。


VBoxManage clonevdi コピー元.vdi コピー先.vdi

ですが、コピー先.vdiはfullpathで指定する必要があったのでメモ。相対パスやVDIのディレクトリ中で行ってもエラーになりました(VDIディレクトリが作成できないとかなんとか)。コピー先として指定した文字列先頭にパスセパレータが来ていない場合にそういう動作をしていたポイので "\Documents and Settings\mine\.VirtualBox\VDI\SX006AA26.vdi" みたいな指定をしてやったら成功。

以下、作業時のログ(´ー`)

失敗例1:


C:\Program Files\innotek VirtualBox>VBoxManage clonevdi SX006AA25.vdi SX006AA26.vdi
VirtualBox Command Line Management Interface Version 1.5.2
(C) 2005-2007 innotek GmbH
All rights reserved.

[!] FAILED calling hardDisk->CloneToImage(Bstr(argv[1]), vdiOut.asOutParam(), progress.asOutParam()) at line 2412!
[!] Primary RC = E_FAIL (0x80004005) - Unspecified error
[!] Full error info present: true , basic error info present: true
[!] Result Code = E_FAIL (0x80004005) - Unspecified error
[!] Text = Could not create a directory 'VDI' to store the image file (VERR_ACCESS_DENIED)
[!] Component = HardDisk, Interface: IHardDisk, {fd443ec1-000f-4f5b-9282-d72760a66916}
[!] Callee = IHardDisk, {fd443ec1-000f-4f5b-9282-d72760a66916}

成功例(´ー`):


C:\Program Files\innotek VirtualBox>VBoxManage clonevdi SX006AA25.vdi "\Documents and Settings\mine\.VirtualBox\VDI\SX006AA26.vdi"
VirtualBox Command Line Management Interface Version 1.5.2
(C) 2005-2007 innotek GmbH
All rights reserved.

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

失敗例2:


C:\Program Files\innotek VirtualBox>cd "\Documents and Settings\mine\.VirtualBox"

C:\Documents and Settings\mine\.VirtualBox>"\Program Files\innotek VirtualBox\VBoxManage.exe" clonevdi SX006AA25.vdi SX006AA21.vdi
VirtualBox Command Line Management Interface Version 1.5.2
(C) 2005-2007 innotek GmbH
All rights reserved.

[!] FAILED calling hardDisk->CloneToImage(Bstr(argv[1]), vdiOut.asOutParam(), progress.asOutParam()) at line 2412!
[!] Primary RC = E_FAIL (0x80004005) - Unspecified error
[!] Full error info present: true , basic error info present: true
[!] Result Code = E_FAIL (0x80004005) - Unspecified error
[!] Text = Could not create a directory 'VDI' to store the image file (VERR_ACCESS_DENIED)
[!] Component = HardDisk, Interface: IHardDisk, {fd443ec1-000f-4f5b-9282-d72760a66916}
[!] Callee = IHardDisk, {fd443ec1-000f-4f5b-9282-d72760a66916}

C:\Documents and Settings\mine\.VirtualBox>"\Program Files\innotek VirtualBox\VBoxManage.exe" clonevdi SX006AA25.vdi VDI\SX006AA21.vdi
VirtualBox Command Line Management Interface Version 1.5.2
(C) 2005-2007 innotek GmbH
All rights reserved.

[!] FAILED calling hardDisk->CloneToImage(Bstr(argv[1]), vdiOut.asOutParam(), progress.asOutParam()) at line 2412!
[!] Primary RC = E_FAIL (0x80004005) - Unspecified error
[!] Full error info present: true , basic error info present: true
[!] Result Code = E_FAIL (0x80004005) - Unspecified error
[!] Text = Could not create a directory 'VDI' to store the image file (VERR_ACCESS_DENIED)
[!] Component = HardDisk, Interface: IHardDisk, {fd443ec1-000f-4f5b-9282-d72760a66916}
[!] Callee = IHardDisk, {fd443ec1-000f-4f5b-9282-d72760a66916}

C:\Documents and Settings\mine\.VirtualBox>

2006年09月27日

インクリメント演算子

挙動(;´Д`)読めなさすぎ
mine@MS-1013 ~
$ perl -e '$a=1;print ++$a + ++$a ;'
6
mine@MS-1013 ~
$ perl -e '$a=1;print ++$a + $a++ ;'
5
mine@MS-1013 ~
$ perl -e '$a=1;print $a + ++$a ;'
4
mine@MS-1013 ~
$ perl -e '$a=1;print $a + $a++ ;'
3
なんで6とか5になるのか分からない。というか
my $a = 1;
my $b = $a + ($a++) + ($a++) + ($a++);
print $a;
でJavaの講義中にインクリメント演算子の挙動について説明してたときに自爆したのが元で、 Javaとかawkは7で、C,C++は4だとか式の中、行の中で$a++のような後置の場合の値の 挙動が…って話だったのに(;´Д`)泥沼化
ちなみに、 phpだと4系~5.0.xと5.1以降で挙動が異なってるようです(;´Д`)

おまけ:by ZiM先生
mine@MS-1013 ~
$ perl -e '$a=1;print ($a++) + ($a++) + ($a++) ;'
1
謎過ぎる(;´Д`)

2006年09月12日

Curl/Personal 発表

Curl/Personal 発表されましたね(´ー`)無償
これで普及に弾みがつけば面白いんですが。

http://www.curlap.com/release/release.php?id=157
http://www.atmarkit.co.jp/news/200609/12/curl.html
http://www.curlap.com/personal/index.htm

ただ、相変わらず価格体系が分かりにくい…うちの既存ライセンスどうなるんだろうね(;´Д`)
非商用に 自治体、大学での使用 が含まれるのか気になるところです(ぉ
# 独立行政「法人」とか 公立大学「法人」だと難しいかな?

2006年03月04日

PostgreSQLでpgpoolで敗北

某所にてMS_Access用に PostgreSQLで稼動してる箱にpgpool投入ヽ(´ー`)ノ二重化

ということで、pgpoolを安全側に倒して入れてみたんですが、SEQUENCE多用してたり ODBCドライバの先にあるし…で pgpoolの運用は極度に安全側に倒してインストール(;´Д`)。案の定ですが「今日は重い!(゚Д゚)」「凄く時間がかかって(゚Д゚)ストレスですね」と不評バンバン(;´Д`)
ある程度予想はしてたんですが、こちらで書いてないプログラムで処理時間3秒~5秒かかってたのが7秒~10秒程度かかるようになってしまったらしく我慢できるトコできないトコの境界を超えてしまったらしく敗北。元に戻して対策を練ることに…こちらで書いてないプログラムなので流されてるSQLみてindex追加かPostgreSQL自体の最適化くらいしか手が無いかもしれず。

ODBCの向こう側でSQL生成されててコントロールしにくい箇所も多数あるシステムだし、クライアント数も40台くらいが同時アクセスと結構マトモな業務系で、サーバのloadavgも そろそろ1.00超えそうな危険水域だったので取りあえず元の状態に戻して・・・と後ろ向き(;´Д`)

SQLのチューニングを更に全体的に入れていけばloadavgも小さめに押さえることも出来て、応答時間も速くなるだろうからこの方向で進めるしかないかなあ…と考えつつ mrtg入れて通常業務時の負荷ログ取ることにして撤退(;´Д`)リベンジ予定

あと、pgpoolで接続してる2台のDBの片方のPostgreSQLのプロセスをkillall(pgpoolが接続してるので pg_ctlでは落ちない)かけたところ pgpoolがクライアントとの接続を一旦きってしまったらしく、各所でODBCドライバのエラーがバリバリ発生して苦情バンバン(;´Д`)電話が鳴りまくり。このへん設定で色々可能かもしれないので、まあコレも含めて差戻し再検討になったりして(;´Д`)敗走

もう一つの解としては、SEQとか使用している箇所についてだけSELECT時二重化…ですな。こっちだと逆に検索時の負荷分散も可能だし。ということで、まだまだこの話は続くのです(´ー`)

2006年02月17日

ODBCの設定画面

忘れないようにメモ(´ー`) ODBCの設定画面関連

コマンドプロンプト から
odbccp32.cpl

これは cplファイルがあるからわかるけど
control admintools

とかどうやって暴いてるんだろうね。 userpasswords2 とかに至っては どうやって探したんだか…って感じですが。

Administratorで odbccp32.cpl 開くのは:
>runas /user:administrator "cmd /c odbccp32.cpl"
でいいのかな。Windowsは難しいね(;´Д`)

2005年10月04日

php2jsp

php2jspヽ(´ー`)ノそれは誰だって考え付きそうなキーワード

googleさんにお伺いをたててみよう、彼は迷える者を導いてくれる(゚Д゚)

http://phpjsp.sourceforge.net/

予想通り(´ー`)

2005年07月05日

AccessでリンクテーブルでXMLで

MS-Accessでリンクテーブル作りまくるのが面倒だったので、リンクテーブルの名前とインデックス用のフィールド名をXMLからザクザク読んで自動処理するコード作成(VB)ヽ(´ー`)ノMDB
所要時間4時間くらいで作ったので効率割るい部分だのバグだのエラー処理が甘いトコがわんさかあるはずだけど、自分のメモのために晒してみたり。ちなみに、PostgreSQL使っていろいろやってる作業用に作ったわけで・・・
使い方モ忘れないように書いておくと・・・
なんとか.mdb 用の作業をする場合は なんとか.dsn というFILEDSNを Program Files/Common Files/ODBC/DataSource下に作っておく。
リンクテーブル用の定義は なんとか.linkdef ファイルに:
Tables
  Table name="tablename"
    MakeIndex
      Fields
        Field name="fieldname"
      /Fields
    /MakeIndex
  /Table
・・・
で作っておく等

# 当然無保証、無担保、無責任(´ー`)コピペして使って大事なtable全部ぶっ飛ばしても
# 自他ともに自己責任で宜しくどうぞ(つか、実際table上書きしてぶっ壊してくれます ワライ)。
# もちろん質問は受け付けますけど、回答するかどうかは不明(´ー`)気分次第

で、DBサーバのIPアドレスが変わったりとかしたときにリンク貼りなおすのが至極面倒・・・ありますよね(あるよねー)そんなときに、いちいち手でチクチクとリンクテーブルの定義弄りたくないわけですよ。前にリンクしたときと新しくリンクしなおしたときとおおかた違う設定でリンクしてしまったりして、アプリの動作が再現しないカナシミ(;´Д`)や同じようなテーブルをリンクするMDBをたくさん抱えてたりしてウンザリ・・・とか(って、それは全部現在の困り事ではあったりする)。
Private Sub MakeLinkTable_Click()
    Dim db As Database
    Dim dbODBC As Database
    Dim strConn As String
    Static wsp As Workspace
    Static con As Connection
    Dim tdfAccess As TableDef
    Dim strSQL As String, strXML As String
    '
    Dim xDoc As New MSXML2.DOMDocument
    Dim xNode As MSXML2.IXMLDOMNode
    Dim xNodeList As MSXML2.IXMLDOMNodeList
    Dim xTableNodeList As MSXML2.IXMLDOMNodeList
    Dim strTableNames As String
    With CommonDialog1
'        .Flags = cdlOFNFileMustExist Or cdlOFNPathMustExist Or cdlOFNHideReadOnly
'        .Filter = "テキストファイル(*.txt)|*.txt"
'        .ShowOpen
'        TableDefsList .FileName
        .FileName = "C:\なんとかかんとか\pg\default.mdb"
        .Flags = cdlOFNFileMustExist Or cdlOFNPathMustExist Or cdlOFNHideReadOnly
        .Filter = "mdbファイル(*.mdb)|*.mdb"
        .ShowOpen
    End With
    
    On Error GoTo Err_Database
    Set dbs = CurrentDb
    ' 既定のワークスペースへの参照を取得します。
    Set wsp = DBEngine.Workspaces(0)
    Set db = wsp.OpenDatabase(CommonDialog1.FileName)
    strConn = CommonDialog1.FileName
    strConn = Left(strConn, Len(strConn) - Len(".mdb"))
    strXML = strConn & ".linkdef"
    strConn = GetFilename(strConn)
    strConn = "ODBC;FILEDSN=" & strConn & ".dsn;"
    DoCmd.SetWarnings False
    
    Set dbODBC = OpenDatabase("", False, False, strConn)
    strTableNames = ""
    For Each tdef In db.TableDefs
        strTableNames = strTableNames & "[" & tdef.Name & "]"
    Next
    
    On Error GoTo Err_XML
    Set xDoc = CreateObject("Microsoft.XMLDOM")
    xDoc.Load strXML
    xDoc.async = False
    Set xNodeList = xDoc.selectNodes("Tables/Table")
    Do
        On Error GoTo Err_XML
        Set xNode = xNodeList.nextNode()
        If xNode Is Nothing Then
            Exit Do
        End If
        strTableName = xNode.selectSingleNode("@name").Text
        strIndexes = ""
        Set xTableNodeList = xNode.selectNodes("MakeIndex/Fields/Field/@name")
        Do
            Set xNode = xTableNodeList.nextNode()
            If xNode Is Nothing Then
                Exit Do
            End If
            strIndexes = strIndexes & ",[" & xNode.Text & "]"
        Loop While (1)
        strIndexes = Right(strIndexes, Len(strIndexes) - 1)
        On Error GoTo Err_Ignore
        If InStr(strTableNames, "[" & strTableName & "]") > 0 Then
            db.Execute "DROP TABLE [" & strTableName & "];", dbFailOnError
        End If
        Set tdfAccess = db.CreateTableDef(strTableName, dbAttachSavePWD)
        tdfAccess.Connect = dbODBC.Connect
        tdfAccess.SourceTableName = "public." & strTableName '
        db.TableDefs.Append tdfAccess
        If Len(strIndexes) > 0 Then
        'run pseudo index queries here. If the table does not exist then this gets skipped.
            strSQL = "CREATE UNIQUE INDEX [" & strTableName & "Idx] ON [" & strTableName & "] ( " & strIndexes & " ) with primary;"
            db.Execute strSQL
        End If
Err_Ignore:
        On Error GoTo 0
    Loop While (1)
    Set xDoc = Nothing
    '
    dbODBC.Close
    db.Close
            
    Exit Sub
Err_Database:
    MsgBox Error$
    Exit Sub
Err_XML:
    MsgBox Error$
End Sub

2005年04月15日

SJC-P受験

去年購入したバウチャーチケットの期限が4/17で切れてしまうので無理やり受験(;´Д`)
20050415DSCF0082.JPGとりあえず
20050415DSCF0083.JPG合格したわけだが

Threadとか基本的なところとか勉強してないのが丸分かりの結果に(;´Д`)
それでも合格したから良いんですがヽ(´ー`)ノSJC-P

18:49 | Comments (2)

2005年04月10日

グループウェア、ダメ!

すごくおもしろかった(´ー`)ノ
jwz:グループウェア、ダメ! Groupware Bad

ああ、すごいよくわかるよパパ(´ー`)。俺がグループウェアに関わっていたときに最も楽しかったのは、VBSからPHPへの移植のためのクラスライブラリ設計していたときとソレを使って移植を成し遂げたときだったから。
または、作ったコードが即運用に供され、細部実装の面倒くささを感じる前に試用者の声がすぐに聞けるという位置に居たとき(つまり、ベータコード書いてたとき)。幸いにしてグループウェア自体に機能追加するシーンにはほとんど立ち会わなかったし、立ち会ったとしてもその目的のための手段の方に主に楽しみを見出し(例えば、実装速度を上げるためのテンプレートライブラリ作ったりし)て、ソレに興じまくっていただけだから。

でも、使う奴が楽しそうなツールを作る喜び…よりも「書いてる自分が楽しい何かを作る」のが好きな点では違う。ソレは今でもだから困ったもんだ(;´Д`)

23:06 | Comments (3)

2005年02月23日

SFU

やっぱダメダメだな(;´Д`)SFU

bash-2.05b$ dd if=/dev/zero of=x count=1024 bs=4194304
1024+0 records in
1024+0 records out
0 bytes transferred in 252 secs (0 bytes/sec)
bash-2.05b$ ls -l x
-rw-r--r-- 1 mine なし 0 2月 23 17:26 x
bash-2.05b$

4GB超えると0byteに戻るSFU哀れ(;´Д`)
と思ってたら…
bash-2.05b$ dir x
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 10EF-E2CD です

C:\public_cert のディレクトリ

2005/02/23 17:26 4,294,967,296 x
1 個のファイル 4,294,967,296 バイト
0 個のディレクトリ 3,590,434,816 バイトの空き領域

lsコマンドつか、libc周辺が腐れポイですな(;´Д`)appendしつつファイル作る分には
出来てる…けど…しかし…というオチ

17:29 | Comments (0)

2005年02月07日

openssl 0.9.7e コンパイル

忘れないようにメモopenssl 0.9.7eヽ(´ー`)ノWin32, VC++
とりあえず activeperlとか入れておく必要あり
set PATH=%PATH%;C:\Program Files\Microsoft Visual Studio\VC98\Bin
set PATH=%PATH%;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
set INCLUDE=C:\Program Files\Microsoft Visual Studio\VC98\Include
set LIB=C:\Program Files\Microsoft Visual Studio\VC98\Lib
ms\32all
正しいかどうかは不明だけど、とりあえずコレで out32dllと out32下にバイナリはできる。
libeay32.dllと ssleay32.dllも生成されるので、他のコードから使いたい場合にはコレで十分と思われる。asn1関連も入ってるし。
02:08 | Comments (0)

2005年01月13日

pssh

psshいれたヽ(´ー`)ノpssh

AUT_3351.JPG字小さすぎるよ 4x6 dot(;´Д`)

標準設定だとあまりにも字が小さすぎるの(4x6)で一回り大き目の文字(6x10)に設定変更してやっと普通に読めるようになりました。
20050113AUT_3354.JPGそれでも小さいんだが
もちろんカラーも可能です。
20050113AUT_3355.JPGしかしフォントは読みやすい

もちろん漢字表示はできないみたいですし、無線LANで接続するとものすごい速度で電池が減りまくりますから実用かどうかはアレですが…

2005年01月02日

perl5.6=>5.8

年末年始のためにWebおいてる箱のverup激しく実施ヽ(´ー`)ノ
で、perlが5.6系から5.8系に入れ替わってて、MTで上手く動作しないところポツポツ。
具体的には [Blog_users_ml] Re: perl のバージョンとmt-rssfeed の話に極めて近いんですが、対処方法投入して作業している状況と、バケたままの状況のバランスから考えてRSSとってきてサイドに表示するのをアッサリ停めたり。
で、解決。後ろ向き過ぎる…(;´Д`)

参考:
Perl 5.8 以降においての Unicode 文字列の扱い方
mt-jcode

しかし、5.6系から5.8系へのverupの話も出ないでもないので、経験しておいて損は無い事例ではありました。

2004年10月29日

ローカライズ(3)

とりあえず注文してたのがきたりヽ(´ー`)ノ
AUT_3202.JPGあれです

色々結構便利便利ヽ(´ー`)ノ

2004年10月20日

ローカライズ(2)

先日の http://www.lancard.com/archives/000201.html の件でお返事返ってきたりして「で、日本語が表示できるように Arialじゃなくて MS UI Gothic選択できるようにしてよ」という返事でまた返事書いたり。
20041020MDBartisan1.pngMDB Artisan

みたいになるので、至極使いづらい(;´Д`)
MS-Accessの MDB解析ではかなり使えるソフトなので何とかしていただけたらなところ。

2004年10月11日

ソフトのローカライズ

あるソフトを試用してみて、これが日本語フォント使ってくれてたらなあ…と残念。
で、そこで停まってもなんなので「漢字表示/印刷できるようにフォント変更できたら$300でも買う。日本でも広めるよ」とか書いて送ってみたが…さて(;´Д`)
とりあえずXLS形式で吐かせてフォント変更すれば何とかならないでもないのだが、あまりに残念すぎ。よく出来てるのになあ。
# ちなみにソフトの名前は伏せときます。クロスリファレンスとか吐いてくれる奴ですが

2004年10月06日

仮想マシン遊び(3)

(;´Д`) フイタ コマル
[root@FC1 linux-2.6.8.1-xen0]# xm list
Name              Id  Mem(MB)  CPU  State  Time(s)  Console
Domain-0           0      507    0  r----   9451.3
vm1               24      159    0  -b---     58.9    9624
vm2               20      191    0  -b---    824.3    9620
vm3               29      191    0  -b---      3.0    9629
[root@FC1 linux-2.6.8.1-xen0]# xm migrate -l 24 192.168.25.105
[root@FC1 linux-2.6.8.1-xen0]# xm list
Name              Id  Mem(MB)  CPU  State  Time(s)  Console
Domain-0           0      507    0  r----   9455.3
vm1               30      159    0  -b---      0.0    9630
vm2               20      191    0  -b---    824.8    9620
vm3               29      191    0  -b---      3.0    9629
[root@FC1 linux-2.6.8.1-xen0]# xm migrate -h
Usage:  migrate [options] DOM HOST

Migrate domain DOM to host HOST.
The transfer daemon xfrd must be running on the
local host and on HOST.


 -h, --help
    Print this help.

 -l, --live
    Use live migration.


[root@FC1 linux-2.6.8.1-xen0]#

仮想マシン遊び(2)

色々弄ってましたら NetworkもOKOKでした♪(´ー`)
内部的には 192.168.25.105を domain0に割り当てて、192.168.25.{103,104,106,107}を割当中。tunとかtap使わずに bridgeでやってくれるところが気分良いです。
ちなみに、vm1~4と外箱との間でFTPしたら 9.4x10^3kB/sec (100BASE-TX時)でましたので、性能も素晴らしいですな。

[root@FC1 root]# xm list
Name              Id  Mem(MB)  CPU  State  Time(s)  Console
Domain-0           0      507    0  r----   7747.8
vm1               24      159    0  -b---     39.5    9624
vm2               20      191    0  -b---    378.3    9620
vm3               21      191    0  -b---     45.5    9621
vm4               25      191    0  -b---     38.7    9625
[root@FC1 root]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:A0:C9:**:**:4D
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:534538 errors:0 dropped:0 overruns:0 frame:0
          TX packets:990745 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:409566481 (390.5 Mb)  TX bytes:664893301 (634.0 Mb)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:225691 errors:0 dropped:0 overruns:0 frame:0
          TX packets:225691 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:12034805 (11.4 Mb)  TX bytes:12034805 (11.4 Mb)

vif20.0   Link encap:Ethernet  HWaddr AA:00:01:07:17:47
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:237583 errors:0 dropped:0 overruns:0 frame:0
          TX packets:279429 errors:0 dropped:3487 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:144755546 (138.0 Mb)  TX bytes:179226827 (170.9 Mb)

vif21.0   Link encap:Ethernet  HWaddr AA:00:01:7C:F8:B1
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:311518 errors:0 dropped:0 overruns:0 frame:0
          TX packets:402051 errors:0 dropped:159 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:192839139 (183.9 Mb)  TX bytes:397673949 (379.2 Mb)

vif24.0   Link encap:Ethernet  HWaddr AA:00:01:76:FE:AD
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:169192 errors:0 dropped:0 overruns:0 frame:0
          TX packets:191439 errors:0 dropped:27 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:117237216 (111.8 Mb)  TX bytes:118882025 (113.3 Mb)

vif25.0   Link encap:Ethernet  HWaddr AA:00:01:30:1F:FB
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:169264 errors:0 dropped:0 overruns:0 frame:0
          TX packets:191508 errors:0 dropped:33 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:117244832 (111.8 Mb)  TX bytes:118888397 (113.3 Mb)

xen-br0   Link encap:Ethernet  HWaddr 00:A0:C9:**:**:4D
          inet addr:192.168.25.105  Bcast:192.168.25.255  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:263901 errors:0 dropped:0 overruns:0 frame:0
          TX packets:263488 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:141981498 (135.4 Mb)  TX bytes:183769417 (175.2 Mb)

[root@FC1 root]# brctl show
bridge name     bridge id               STP enabled     interfaces
xen-br0         8000.00a0c91a8a4d       no              eth0
                                                        vif21.0
                                                        vif24.0
                                                        vif25.0
                                                        vif20.0
[root@FC1 root]#

2004年10月05日

仮想マシン遊び

Linux/xenでごそごそと。installは Installation for Xeno-Unstable (2.0 in making)見ながら作業。

動作中 (´ー`)

[root@FC1 mnt]# xm create -f /etc/xen/xmdefconfig24
Using config file "/etc/xen/xmdefconfig24".
Started domain vm4, console on port 9625
[root@FC1 mnt]# xm list
Name Id Mem(MB) CPU State Time(s) Console
Domain-0 0 507 0 r---- 6739.6
vm1 24 159 0 -b--- 12.1 9624
vm2 20 191 0 -b--- 11.5 9620
vm3 21 191 0 -b--- 9.7 9621
vm4 25 191 0 -b--- 11.2 9625
[root@FC1 mnt]#

1台で5台分。設定でハマりましたが、動作してみるとなんとも軽いVMヽ(´ー`)ノVM
ただ、ネットワークはまだ上手く動作させきれていないのですが…
しかし Webから管理できるIFもついてて素敵です
20041005Image1.pngVM(domain)一覧20041005Image2.pngVM(domain)毎の操作
さらに
20041005Image3.pngWizard付きヽ(´ー`)ノ


[root@FC1 root]# dmesg
Linux version 2.6.8.1-xenU (root@FC1.lancard.com) (gcc バージョン 3.3.2 20031022 (Red Hat Linux 3.3.2-1)) #1 Tue Oct 5 11:41:39 JST 2004
BIOS-provided physical RAM map:
Xen: 0000000000000000 - 000000000c000000 (usable)
192MB LOWMEM available.
On node 0 totalpages: 49152
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 45056 pages, LIFO batch:11
HighMem zone: 0 pages, LIFO batch:1
DMI not present.
Built 1 zonelists
Kernel command line: ip=dhcp root=/dev/hdb7 ro 4
Initializing CPU#0
PID hash table entries: 1024 (order 10: 8192 bytes)
Xen reported: 1533.104 MHz processor.
Using tsc for high-res timesource
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 191960k/196608k available (1510k kernel code, 4372k reserved, 453k data, 92k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 1523.71 BogoMIPS
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 256K (64 bytes/line)
CPU: After all inits, caps: 0283cbf1 c1c3fbff 00000000 00000020
CPU: AMD Athlon(tm) XP 1800+ stepping 02
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
NET: Registered protocol family 16
Initializing Cryptographic API
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Xen virtual console successfully installed as tty
Event-channel device installed.
[XEN] Initialising virtual block device driver
Using anticipatory io scheduler
[XEN] Initialising virtual ethernet driver.
[XEN] Netfront recovered tx=0 rxfree=0
NET: Registered protocol family 2
IP: routing cache hash table of 2048 buckets, 16Kbytes
TCP: Hash tables configured (established 16384 bind 32768)
NET: Registered protocol family 1
NET: Registered protocol family 17
IP-Config: Guessing netmask 255.0.0.0
IP-Config: Complete:
device=eth0, addr=62.0.0.0, mask=255.0.0.0, gw=255.255.255.255,
host=62.0.0.0, domain=, nis-domain=(none),
bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath=
[XEN:vbd_update:drivers/xen/blkfront/blkfront.c:130] >
[XEN:vbd_update:drivers/xen/blkfront/blkfront.c:131] <
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 92k freed

***************************************************************
***************************************************************
** WARNING: Currently emulating unsupported memory accesses **
** in /lib/tls libraries. The emulation is very **
** slow, and may not work correctly with all **
** programs (e.g., some may 'Segmentation fault'). **
** TO ENSURE FULL PERFORMANCE AND CORRECT FUNCTION, **
** YOU MUST EXECUTE THE FOLLOWING AS ROOT: **
** mv /lib/tls /lib/tls.disabled **
***************************************************************
***************************************************************

Continuing...

EXT3 FS on hdb7, internal journal
[root@FC1 root]#

2004年10月04日

phpとfileupload

HTML上でinputタグ中に type="file" name="uploadfilename" 等書いてファイルアップロード可能なpageを作成するわけですが、複数ファイルをuploadするときはこのname=部分を行ごとに変えるのが通例です。またはphpのように name="uploadfilename[]" などすればuploadfilenameという名前の配列に各種情報を投げ込んでくれる実装もあるにはあります。
ところで、phpで上記のように[] をつけないとどうなるか?それは複数のファイルについての情報が全て同じ uploadfilenameという変数に上書きされて失われてしまうわけですね。で、なんとかならんかな?とソース読みながら検討。
久々にphpのソース読んだら、main/rfc1897.c とかとっくの昔(2001年頃)には POSTデータをメモリ上に一旦展開するというコードはやめてるんですね。気づいてなかった(;´Д`)
参考:php-src/main/rfc1867.c?r=1.77
で、
/*
* This product includes software developed by the Apache Group
* for use in the Apache HTTP server project (http://www.apache.org/).
*
*/
とか入ってますね。apacheのlibapreq使ってるからだとか。

***
この file uploadの件、かなり以前に[PHP-jp 2550] Re: File の Uploadサイズの実用上限についてとして挑戦したんですが、放置したまんまでずっと気になってたわけです。上記1.77以前はuploadされるファイルサイズ分(実際はMIME化された長さ分)メモリを確保して一括でパースする設計だったので、搭載メモリ量でupload可能なファイルサイズ上限が限定されていたわけです。ハイ。ということでヽ(´ー`)ノ供養完了
***
ちなみに、同じ name=の件は、CGI版のphpを使用して、POSTされる生のデータをプリプロセスして強制的にname=個所を書き換えてしまう作戦で実装予定。これならphp側にパッチあてる必要も無いのでメンテナンスコストが大幅に下がります(´ー`)

2004年04月18日

MSがVC++を

配ってるらしいですな
Visual C++ Development Center: Microsoft Visual C++ Toolkit 2003
数年前は自説としては「開発環境が容易に手に入るからオープンソースってのは広まる
んや」というのが在ったのですが、cygwinが出てもWindows用にオープンソースなコード
がバンバンって訳には行かなかったなあと懐古したり。自分では結構cygwin使ってWin上
にCistron-RADIUSとかApacheとかUCD-SNMPとか実装してましたけど(´Д`)
まあ、VC++環境とか SFUのccの環境に対しては ./configure一発では実装が難しい
コードが世の中には満ち溢れているんですが、これからまた状況が変わってくるのかな?
トカ期待

# Cistron-RADIUSの実装の時は Cryptがなかったので UFC-crypt
# もってきたんだよなあ。その頃はライセンスが混ざる…とか考えてなかったな(;´Д`)

2004年03月30日

MacでIEでJakarta Commons Fileuploadとか

MacのIEで fileuploadについて Jakarta Tomcatな環境で動作異常~とかで調査
commons-user MLより[FileUpload - Mac IE]
http://www.mail-archive.com/commons-user@jakarta.apache.org/msg05864.html

で、バグとして認識されているみたいで
http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=9262
のように対策patchが既にあるようです。たしかにphpとかでは対策済みですから、
Tomcatな環境でだけ使えない…だとょゎぃです。

2004年03月26日

明るく楽しい負荷テスト

Microsoftの Web Application Stress Tool使って負荷テスト。
20040326loadtest.png負荷がワッシワッシ上がる
10並列の10threadで100同時接続くらいでバキバキ叩きまくっても何とかフツーに
動いている箱はエライですな。
mysqlのパラメータで max_clientsmax_connectionsを300程度に設定して対応~OK
でも、接続異常時に自動通知機能がバンバン働いてバンバンメールを送っていたり。
>もうしわけないです(;´Д`)N様


2004年03月18日

スキルポートフォリオの整理とか

以前からある程度取り掛かっていて自分では「できる」と思っていた内容が実は「できない」
というのを自覚して、案件受け手から慌てることが無いように再度スキルポートフォリオの
整理とか。しばらく実戦で使わない技術ってのはいつのまにか古くなってたりするし、自分
ではスラスラ書けるつもりの言語でも、実は優れたライブラリに助けられてただけ…てのが
あったりするし。
ということで、最新の水準でみて「最低でも」標準的なレベルに持っていく週間(;´Д`)

update:
Javaで証明書弄りつつ、HDLC/LAPB/PLC間のソフトウェア伝文ルータ組みつつ
打ち合わせに出につつ国民生活金融公庫に行きつつ会計ソフトの指導を受けつつ
phpでコード書きつつLinux/ppc用パッケージ作りつつ、原稿書きつつ、
半田付けしながら、Javaの非常勤講師とネットワーク関連の非常勤講師を
+サーバ2台の同期処理設定、FlashMXとJava連携、OOPオープンセミナー準備、

# phpの件申し訳ありません>某所
非常勤講師ネタは4/11と5月からに、伝文ルータはマトメ作業へ、国金は書類提出だけ、
打ち合わせもひと段落、Linux/ppc用パッケージはG3/233で超効率的に対応…

2004年03月09日

テストテスト

VC++で書いてるコードの検証でどうするか思案。通信系なので実機がないとツライ部分も
多いけどA-B間でハンドシェイク時にA側から再送要求、B側からシーケンス外伝文エラー
的なのをお互い投げあいして話が通じてない様子。で、まあLinux上とかに持ってってシミュ
レータ上に乗っけて その部分コードの検証予定。WaitForSingleObjectとか WinAPI固有
の命令は Classのprivateメンバでラップしてコンパイル時変数で差替え… 美味く検証がで
きれば 実機無しでテストフレームまでブン回せるので精神的ヽ(´ー`)ノ。

update:
Javaで証明書弄りつつ、HDLC/LAPB/PLC間のソフトウェア伝文ルータ組みつつ、
打ち合わせに出につつ国民生活金融公庫に行きつつ会計ソフトの指導を受けつつ
phpでコード書きつつ、Linux/ppc用パッケージ作りつつ、原稿書きつつ、
半田付けしながら、Javaの非常勤講師と、ネットワーク関連の非常勤講師を…

2004年01月25日

h8300-elf-gccと最適化

Trevaの接続のため、「あるビットの値を見つつ1bitずつ詰めて8bit分処理」という部分の最適化検討。

c = c << 1;
if (FFUART_MSR & UART_MSR_CTS) {
  c = c | 1;
}

まあこういうコードだったわけですが、常道に従いif文を除去してJUMP命令を無くす方向に

c =  (c << 1)|((FFUART_MSR & UART_MSR_CTS) >> 7);
※ >>7は UART_MSR_CTSが 0x80であるため

なんと、上記では 7回シフトのため、7回ループするコードが吐かれたり…頭痛。-Osつけてるとこんなもんか…

c =  (c << 1)|(FFUART_MSR & UART_MSR_CTS) ;

しかたないので、cの型を shortにして上記コードをLOOP展開して8回実行後に7回shiftするコードに変更。ASMで書いたような良い感じのコード吐いてくれました

        unsigned short c = 0 ;

        FFUART_MCR &= ~UART_MCR_RTS ;
        dummy();
        c = (c << 1) | (FFUART_MSR & UART_MSR_CTS);
        FFUART_MCR |= UART_MCR_RTS ;
        dummy();

UART_MCR_RTSとかは元コード(りなざう用)から流用。

        mov.b   @16777178:8,r2l
        and     #-65,r2l
        mov.b   r2l,@16777178:8
        jsr     @_dummy
        mov.w   @(-2,er6),r2
        extu.l  er2
        mov.l   er2,er3
        shll.l  er3
        mov.b   @16777178:8,r2l
        extu.w  r2
        and.w   #128,r2
        or.w    r3,r2
        mov.w   r2,@(-2,er6)
        mov.b   @16777178:8,r2l
        or      #64,r2l
        mov.b   r2l,@16777178:8
        jsr     @_dummy

2003年12月21日

TortoiseCVSを導入

TortoiseCVSを導入してみたり。
最近VBだのVC++だのWindows環境でプログラム書くことが多くなってきたので、バージョン管理重要~ということで、WinCVS で windows user を CVS の世界に引きずり込むあたり参考にしつつ導入。
20031221TortoiseCVS.png

GUIでラクチンですな。別途Eclipseも使ってたりするのでいずれにしてもSSH経由でのCVS環境って作っておかないといけなかったので、ちょっと安心。これでコードバリバリ書いても大丈夫かな…
アチコチに 古いバージョンのコードを丸々残しておく必要がなくなっただけでも全然違います。

2003年11月11日

LDAP遊び

grep ^From: ~mine/mail/*|grep '<'|grep '>'|sort|uniq > FromList
awk 'BEGIN{FS="<"}{if ($NF ~ "\>$"){print}}' FromList >FromList2
awk 'BEGIN{FS="<"}
 {
  if ($NF ~ "\>$"){
    t=split($NF,q,">");
    t2=split($1,r,":");
    if(!ex[q[1]]){
      ex[q[1]]=q[1];
      print "dn: cn=" q[1] ",dc=LANCARD,dc=JP";
      print "objectclass: person";
      print "objectclass: newPilotPerson";
      print "cn: "  q[1];
      print "sn: " r[t2];
      print "description: " r[t2];
      print "mail: " q[1];
      print "";
    }
  }
}' FromList2 |nkf >FromList.ldif

とか適当に弄りながら適当にFrom:な部分を mailから抽出しつつ .ldifファイルを作成。 さらにこれをldapサーバに食わせたり
ldapadd -c -h  192.168.25.253 -x -D "cn=Manager,dc=LANCARD,dc=JP" -W -f FromList.ldif
で、適当に検索
 ldapsearch -h 192.168.25.253 -b "dc=LANCARD,dc=JP" -x "(objectclass=person)(cn=mine@*)" "cn" "dn" "sn"
登録したデータが Mozillaのアドレス帳からもちゃんと検索できることを確認しつつ終了。

2003年11月02日

OpenLDAPとか

前にやったネタの復習としてOpenLDAP弄り。
とりあえず Mozillaからアドレス帳として使えるところまで構築してからJavaで叩きまくり。飽きたらRADIUSと連携させたりsambaから弄ったり予定。ワライ

2003年09月06日

Partition Manager

Partition Manager 等試してみたり。