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を通らないように)してやらないといけないわけです。で、おそらくその部分を実装すれば何とかなると思われます。
#がしかし(;´Д`)今はそんなのやってる暇無いので放置
VirtualBox 1.5.2 でclonevdi(´ー`)というか仮想DISKのコピー
結構ハマります。
VBoxManage clonevdi コピー元.vdi コピー先.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>
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++のような後置の場合の値の 挙動が…って話だったのに(;´Д`)泥沼化
mine@MS-1013 ~ $ perl -e '$a=1;print ($a++) + ($a++) + ($a++) ;' 1謎過ぎる(;´Д`)
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
ただ、相変わらず価格体系が分かりにくい…うちの既存ライセンスどうなるんだろうね(;´Д`)
非商用に 自治体、大学での使用 が含まれるのか気になるところです(ぉ
# 独立行政「法人」とか 公立大学「法人」だと難しいかな?
某所にて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時二重化…ですな。こっちだと逆に検索時の負荷分散も可能だし。ということで、まだまだこの話は続くのです(´ー`)
忘れないようにメモ(´ー`) ODBCの設定画面関連
コマンドプロンプト から
odbccp32.cpl
これは cplファイルがあるからわかるけど
control admintools
とかどうやって暴いてるんだろうね。 userpasswords2 とかに至っては どうやって探したんだか…って感じですが。
Administratorで odbccp32.cpl 開くのは:
>runas /user:administrator "cmd /c odbccp32.cpl"
でいいのかな。Windowsは難しいね(;´Д`)
php2jspヽ(´ー`)ノそれは誰だって考え付きそうなキーワード
googleさんにお伺いをたててみよう、彼は迷える者を導いてくれる(゚Д゚)
http://phpjsp.sourceforge.net/
予想通り(´ー`)
Tables Table name="tablename" MakeIndex Fields Field name="fieldname" /Fields /MakeIndex /Table ・・・で作っておく等
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
去年購入したバウチャーチケットの期限が4/17で切れてしまうので無理やり受験(;´Д`)
とりあえず
合格したわけだが
Threadとか基本的なところとか勉強してないのが丸分かりの結果に(;´Д`)
それでも合格したから良いんですがヽ(´ー`)ノSJC-P
すごくおもしろかった(´ー`)ノ
jwz:グループウェア、ダメ! Groupware Bad
ああ、すごいよくわかるよパパ(´ー`)。俺がグループウェアに関わっていたときに最も楽しかったのは、VBSからPHPへの移植のためのクラスライブラリ設計していたときとソレを使って移植を成し遂げたときだったから。
または、作ったコードが即運用に供され、細部実装の面倒くささを感じる前に試用者の声がすぐに聞けるという位置に居たとき(つまり、ベータコード書いてたとき)。幸いにしてグループウェア自体に機能追加するシーンにはほとんど立ち会わなかったし、立ち会ったとしてもその目的のための手段の方に主に楽しみを見出し(例えば、実装速度を上げるためのテンプレートライブラリ作ったりし)て、ソレに興じまくっていただけだから。
でも、使う奴が楽しそうなツールを作る喜び…よりも「書いてる自分が楽しい何かを作る」のが好きな点では違う。ソレは今でもだから困ったもんだ(;´Д`)
やっぱダメダメだな(;´Д`)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しつつファイル作る分には
出来てる…けど…しかし…というオチ
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下にバイナリはできる。
psshいれたヽ(´ー`)ノpssh
標準設定だとあまりにも字が小さすぎるの(4x6)で一回り大き目の文字(6x10)に設定変更してやっと普通に読めるようになりました。
それでも小さいんだが
もちろんカラーも可能です。
しかしフォントは読みやすい
もちろん漢字表示はできないみたいですし、無線LANで接続するとものすごい速度で電池が減りまくりますから実用かどうかはアレですが…
年末年始のために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の話も出ないでもないので、経験しておいて損は無い事例ではありました。
先日の http://www.lancard.com/archives/000201.html の件でお返事返ってきたりして「で、日本語が表示できるように Arialじゃなくて MS UI Gothic選択できるようにしてよ」という返事でまた返事書いたり。
MDB Artisan
みたいになるので、至極使いづらい(;´Д`)
MS-Accessの MDB解析ではかなり使えるソフトなので何とかしていただけたらなところ。
あるソフトを試用してみて、これが日本語フォント使ってくれてたらなあ…と残念。
で、そこで停まってもなんなので「漢字表示/印刷できるようにフォント変更できたら$300でも買う。日本でも広めるよ」とか書いて送ってみたが…さて(;´Д`)
とりあえずXLS形式で吐かせてフォント変更すれば何とかならないでもないのだが、あまりに残念すぎ。よく出来てるのになあ。
# ちなみにソフトの名前は伏せときます。クロスリファレンスとか吐いてくれる奴ですが
[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]#
[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]#
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もついてて素敵です
VM(domain)一覧VM(domain)毎の操作
さらに
Wizard付きヽ(´ー`)ノ
[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]#
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側にパッチあてる必要も無いのでメンテナンスコストが大幅に下がります(´ー`)
配ってるらしいですな
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
# もってきたんだよなあ。その頃はライセンスが混ざる…とか考えてなかったな(;´Д`)
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な環境でだけ使えない…だとょゎぃです。
Microsoftの Web Application Stress Tool使って負荷テスト。
負荷がワッシワッシ上がる
10並列の10threadで100同時接続くらいでバキバキ叩きまくっても何とかフツーに
動いている箱はエライですな。
mysqlのパラメータで max_clientsmax_connectionsを300程度に設定して対応~OK
でも、接続異常時に自動通知機能がバンバン働いてバンバンメールを送っていたり。
>もうしわけないです(;´Д`)N様
以前からある程度取り掛かっていて自分では「できる」と思っていた内容が実は「できない」
というのを自覚して、案件受け手から慌てることが無いように再度スキルポートフォリオの
整理とか。しばらく実戦で使わない技術ってのはいつのまにか古くなってたりするし、自分
ではスラスラ書けるつもりの言語でも、実は優れたライブラリに助けられてただけ…てのが
あったりするし。
ということで、最新の水準でみて「最低でも」標準的なレベルに持っていく週間(;´Д`)
update:
Javaで証明書弄りつつ、HDLC/LAPB/PLC間のソフトウェア伝文ルータ組みつつ、
打ち合わせに出につつ、国民生活金融公庫に行きつつ、会計ソフトの指導を受けつつ、
phpでコード書きつつ、Linux/ppc用パッケージ作りつつ、原稿書きつつ、
半田付けしながら、Javaの非常勤講師と、ネットワーク関連の非常勤講師を…
+サーバ2台の同期処理設定、FlashMXとJava連携、OOPオープンセミナー準備、
# phpの件申し訳ありません>某所
非常勤講師ネタは4/11と5月からに、伝文ルータはマトメ作業へ、国金は書類提出だけ、
打ち合わせもひと段落、Linux/ppc用パッケージはG3/233で超効率的に対応…
VC++で書いてるコードの検証でどうするか思案。通信系なので実機がないとツライ部分も
多いけどA-B間でハンドシェイク時にA側から再送要求、B側からシーケンス外伝文エラー
的なのをお互い投げあいして話が通じてない様子。で、まあLinux上とかに持ってってシミュ
レータ上に乗っけて その部分コードの検証予定。WaitForSingleObjectとか WinAPI固有
の命令は Classのprivateメンバでラップしてコンパイル時変数で差替え… 美味く検証がで
きれば 実機無しでテストフレームまでブン回せるので精神的ヽ(´ー`)ノ。
update:
Javaで証明書弄りつつ、HDLC/LAPB/PLC間のソフトウェア伝文ルータ組みつつ、
打ち合わせに出につつ、国民生活金融公庫に行きつつ、会計ソフトの指導を受けつつ、
phpでコード書きつつ、Linux/ppc用パッケージ作りつつ、原稿書きつつ、
半田付けしながら、Javaの非常勤講師と、ネットワーク関連の非常勤講師を…
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
TortoiseCVSを導入してみたり。
最近VBだのVC++だのWindows環境でプログラム書くことが多くなってきたので、バージョン管理重要~ということで、WinCVS で windows user を CVS の世界に引きずり込むあたり参考にしつつ導入。
GUIでラクチンですな。別途Eclipseも使ってたりするのでいずれにしてもSSH経由でのCVS環境って作っておかないといけなかったので、ちょっと安心。これでコードバリバリ書いても大丈夫かな…
アチコチに 古いバージョンのコードを丸々残しておく必要がなくなっただけでも全然違います。
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
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のアドレス帳からもちゃんと検索できることを確認しつつ終了。
前にやったネタの復習としてOpenLDAP弄り。
とりあえず Mozillaからアドレス帳として使えるところまで構築してからJavaで叩きまくり。飽きたらRADIUSと連携させたりsambaから弄ったり予定。ワライ
Partition Manager 等試してみたり。