- 2007/04/21 Sat
-
2時間くらいで概ね酒は抜けたものの、眠気ゼロ。
4時が過ぎてようやく落ちる。
そして7時に起床。
社用で出かける。 久しぶりに会った先輩とP○SMOの話になり、「定期の継続購入しようとしたら自販機の取り扱いは現在行ってないとかはじかれたんですけど、不具合でもあったんですかねー」とか言ったら、「そんな話、聞いてないんやけどなぁ」
と返された。
うん?
ああ、P○SMOの仕事してる人だった。
世の中は狭いというか、一つの仕事に関わっている人間は予想以上に多いというか。そんなことを思った日。 鯖が食いたくなったので、シキさんと以前行った立ち食い寿司に寄ってみる。
焼き鯖が絶品なのです。
焼き鯖だけで六貫食う。 あまり使用していない互換機に挿してあるPS/2のHHKB Lite2をPC-9821Rv20に挿してみようとUSB変換ケーブルを買ってみた。USB-CVPS1。
まずは互換機用Windows2000のINPUT.IN_
KEYBOARD.IN_
KBDHID.SY_
を引っ張り出してきて解凍。input.inf
keyboard.inf
を適当にリネームしてWINNT\infにコピーして右クリックメニューからインストール。
キーボードを挿すとデバイスマネージャに『HID 準拠デバイス』が3つ出現するので、ドライバの更新で『HID 準拠デバイス』に加えて『HID キーボードデバイス』が選択可能なものを探して『HID キーボードデバイス』に変更。
kbdhid.sysが求められるので指定。
うむ認識。
- 2007/04/20 Fri
-
豚角煮まんだよ全員集合。
新人教育の手伝いで課題の採点を一日中。
なんつーか、ひどいな。
完了判断を自己判断としていたらしいけど、駄目だろそれ。 Perl覚え書き。
backticksは出力が完了してから制御を戻すので、open FILE, '>foo.txt'; print FILE `foo`; close FILE;
とかすると、制御が戻ってきてから一括出力。
随時出力するには、open STDOUT, '>foo.txt'; system 'foo'; close STDOUT;
とかして、標準出力をファイルリダイレクトに置き換えてsystemで実行。
標準出力を再使用したい場合は要退避。無糖ブラックは3本。 別プロジェクトに抜かれることになった後輩と二人して飲みに行く。open _STDOUT, '>&STDOUT'; open STDOUT, '>foo.txt'; system 'foo'; close STDOUT; open STDOUT, '>&_STDOUT'; print 'bar';
壁にずらりと逆さ固定された焼酎が、どれでも一杯300円。店員に声をかけてセルフサービス。
こんな店が会社の近所にあったのか!
片っ端から飲み続けて4時間。
カウンタ裏に森伊蔵が置いてあったので「あれは?」と聞いたら「時期を見て」との返答。
ふむ。
- 2007/04/19 Thu
-
いつもの店員でなければ豚角煮まん以外にしようとレジに向かいいつもの店員だったのでいつもの豚角煮まん。
いってきます。 出社。
なにはなくともまずは無糖ブラックを買おうと自販機の前で財布を開いところ諭吉先生しかおらず。
のー。
仕方ないので机上ストックのスペシャルティーコーヒーを消費する。
そして昼食時に崩して午後は3本。 Devenv覚え書き。Devenv コマンド ライン スイッチ
http://msdn2.microsoft.com/ja-jp/library/xee0c8y7(VS.80).aspxDevenv を使用すると、統合開発環境 (IDE: Integrated Development Environment) のさまざまなオプションを設定したり、コマンド ラインからプロジェクトをビルド、デバッグ、および配置できます。これらのスイッチを使用して、スクリプトや .bat ファイル (夜間用のビルド スクリプトなど) から IDE を実行したり、特定の構成で IDE を起動したりします。
/runexitで引数を渡すためには、VCProjectConfigurationProperties.CommandArguments プロパティ
http://msdn2.microsoft.com/ja-jp/library/microsoft.visualstudio.vcproject.vcprojectconfigurationproperties.commandarguments(VS.80).aspxAttach が false の場合に、Command で指定されたプロセスに渡す引数です。
とかで。
ついでにワンライナー。非常階段と逆光とカレーまんからのぼる湯気。 鮭とばをかじってたら、「会社で鮭とば食べてる人初めて見た」とか言われたのでおすそわけ。perl -MFile::Find -e "find(sub{system qq(devenv $1 /build Debug) if $File::Find::name =~ /(.*\.sln)$/}, '.')"
- 2007/04/18 Wed
-
愛用していた486世代Winキーなし98キーボードの『し』が効かなくなる。
『し』というか『D』というか。こちとらカナタイパーですので。
数日前に右SHIFTが効かなくなってどうしたものかと思いつつ騙し騙し使ってきましたけどこれはムリだ。
しかし、右SHIFTて意外に押してるものですね。失ってみてから気が付いた。人生そんなことばっかりだ。(うるさいよ)
とりあえず窓際に放置していた9801Rキーボードに差し替え。
キーボードマニアの間では定評のある名品ですが、メカニカルよりメンブレンの方が好きな人なので故障したキーボードと同じものを再入手したいところ。
ただ、Winキーなしメンブレンは98キーボードで最も耐久性が低いという話なので、完動品の入手はもはや絶望的なのか。
あー。
つーか、よく考えたらそろそろ使い始めてから10年目とかになってた気が。耐久性十分だろそれ。 豚角煮まんにしようかどうしようかと迷いつつも豚角煮まん。 無糖ブラックは3本。 会社の前で降りしきる雨を眺めながらカレーまんをかじっているところを今度は別の部署の部長に目撃される。 そして三日連続で雨に濡れての帰宅。
折り畳み傘を使うか否かのしきい値が高すぎだあんた。
- 2007/04/17 Tue
-
起きたら1時。え?日付変わる前に落ちてた?
このまま起きていようか迷って寝返りを打って二度寝して3時。
このまま起きていようか迷って寝返りを打って二度寝して5時。
らきすた見てsaku saku見て豚角煮まんを食べて出社っと。 委員会の仕事を適当にこなしながらぷいぷいぷー。
政治的な理由(?)で仕様が降りてこないのでこのままいくとゴールデンウィークは9連休になるみたいですよ?
健康に悪い。(なんでだ) 無糖ブラックは4本。 20時で最終退出って。
平和だな。
平和じゃないところが軒並み外にでているというのもあるけれど。
- 2007/04/16 Mon
-
まだまだ豚角煮まん。
無糖ブラックは3本。
ゴーヤコーヒーてのがあるらしい。
苦さと苦さのコラボレーション? 会社の前で突っ立っているところを他所の部署の部長に声をかけられカレーまんをくわえたまま振り返りふきだされる。
そんな社会人。5年目。
- 2007/04/15 Sun
-
好きなことしてるんだろ?
いくら喰いたい。
ソケット数の制限とか。Maximum Number of Sockets an Application Can Use
http://support.microsoft.com/kb/111855/en-usThe maximum number of sockets that a Windows Sockets application can use is determined at compile time by the manifest constant FD_SETSIZE. To do this, from the Win32 SDK WINSOCK.H file:This value is used in constructing the fd_set structures used in select(). The default value in WINSOCK.H is 64. If an application is designed to be capable of working with more than 64 sockets, define the manifest FD_SETSIZE in every source file before including WINSOCK.H. One way of doing this is to include the definition within the compiler options in the makefile, such as adding -DFD_SETSIZE=128 as an option to the compiler command line for Microsoft C.
64で足りなければFD_SETSIZEを増やせばいいじゃないと言っているけれど、MAXIMUM_WAIT_OBJECTSに関して同様の情報はなし。WinNT.h#define MAXIMUM_WAIT_OBJECTS 64 // Maximum number of wait objects
イベントで処理するためにはスレッドなりなんなりで階層化するしかないのか。
LinuxのFD_SETSIZEは、sys/select.h/* Get definition of needed basic types. */
#include <bits/types.h>#define FD_SETSIZE __FD_SETSIZE
で、bits/types.h#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
から、bits/typesizes.h#define __FD_SETSIZE 1024
と。glibc-2.3.4。
Windowsのデフォルトは小さすぎる。
- 2007/04/14 Sat
-
引用行のイタリックが読みにくすぎるのでborder-leftに。
ボックスをoverflow:autoに。
なんだかんだで朝に。 いくら喰いたい。 落ちているうちに配達員がきてた模様。不覚。 いくら喰いたい。
- 2007/04/13 Fri
-
2時。
寝ると見せかけてウィスキーをぐいー。 そして昨日と同じ電車でやっぱり豚角煮まんは食う。 航空関係の仕事をいくつかやってきたわけですが、ドキュメントが『かんせいとしょ』と呼ばれていたのは『完成図書』でなくて『管制図書』だったのでは。
とか今更のように気付く。 well-knownじゃないよ、ephemeralだよ。The default dynamic port range for TCP/IP has changed in Windows Vista Enterprise
http://support.microsoft.com/kb/929851/en-usTo conform with IANA port-assignment standards, the default dynamic port range for TCP/IP has changed from 1024-5000 to 49152-65535 in Windows Vista Enterprise.
Widnowsでは1024~5000がephemeralで、Vista Enterpriseだけ49152~65535。How to reserve a range of ephemeral ports on a computer that is running Windows Server 2003 or Windows 2000 Server
http://support.microsoft.com/kb/812873/en-us
設定は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
にて変更可能と。When you try to connect from TCP ports greater than 5000 you receive the error 'WSAENOBUFS (10055)'
http://support.microsoft.com/kb/196271/en-us
試しに#include <stdio.h> #include <winsock2.h> void main() { WSADATA tWSAData; WSAStartup(MAKEWORD(2, 2), &tWSAData); sockaddr_in name; name.sin_family = AF_INET; name.sin_port = htons(5001); name.sin_addr.s_addr = INADDR_ANY; int namelen = sizeof(SOCKADDR); SOCKET s = socket(AF_INET, SOCK_STREAM, 0); bind(s, (SOCKADDR*)&name, namelen); listen(s, 1); for(;;) { sockaddr_in name; name.sin_family = AF_INET; name.sin_port = htons(5001); name.sin_addr.s_addr = inet_addr("127.0.0.1"); int namelen = sizeof(SOCKADDR); if(connect(socket(AF_INET, SOCK_STREAM, 0), (SOCKADDR*)&name, namelen) == SOCKET_ERROR) { break; } accept(s, (SOCKADDR*)&name, &namelen); printf("%d\n", ntohs(name.sin_port)); } printf("->%d\n", WSAGetLastError()); }
とかしてポートを食い潰してみると、確かにWSAENOBUFS。
Linuxでは、ip-sysctl.txtDefines the local port range that is used by TCP and UDP to
choose the local port. The first number is the first, the
second the last local port number. Default value depends on
amount of memory available on the system:
> 128Mb 32768-61000
< 128Mb 1024-4999 or even less.
This number defines number of active connections, which this
system can issue simultaneously to systems not supporting
TCP extensions (timestamps). With tcp_tw_recycle enabled
(i.e. by default) range 1024-4999 is enough to issue up to
2000 connections per second to systems supporting timestamps.
128MB以上メモリを積んでいたら32768~61000。man 7 ipip_local_port_range
Contains two integers that define the default local port range allocated to sockets. Allocation starts with the first number and ends with the second number. Note that these should not conflict with the ports used by masquerading (although the case is handled). Also arbitrary choices may cause problems with some firewall packet filters that make assumptions about the local ports in use. First number should be at least >1024, better >4096 to avoid clashes with well known ports and to minimize firewall problems.
設定は、/proc/sys/net/ipv4/ip_local_port_range
にて変更可能と。
同様にポートを食い潰してみるとEADDRNOTAVAIL。
ふむ。 無糖ブラックは3本。
- 2007/04/12 Thu
-
いつもの電車に間に合いそうにないなくても豚角煮まんは食う。
無糖ブラックは4本。
鮭とばをかじりながら書類の仕上げ
あと、たこわさ。
すごい酒が飲みたい。
そしてやっぱりカレーまん。