| ||||||||||||||||||||||||||||||||||||||||||||
code:Haemophilus influenzae |
ここに書かれていることは無保証です。同じことを行って問題が発生しても、龍義は責任をとりません。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Windows 7 の PC で IIS を動かして、PHP も入れるかとインストールして動かしてみる。 しかし、エラーが出てきた。 コンピューターに VCRUNTIME140.dll がないため、プログラムを開始できません。ですと。
Visual C のランタイムなのだろうけど、どうせなら Visual Studio を入れてしまおうと。 かれこれ4時間経っているいるのだけど、全く状況が変わらない。 ちゃんと動いているのか、どこかでスタックしているのか。 スタックしてるっぽいのだけど、一晩待ってみるかな。
昨日の続き。 結局、Visual Studio のインストールは一晩待っても終わらなかった。 様子を見る限り、KB2999226 の適用で止まっているようなので、単体でダウンロードしてインストールしてみることにする。 Microsoft のページから KB2999226 をダウンロード。 ダウンロードした Windows6.1-KB2999226-x86.msu を実行してみた。 2時間待ってみたけど、このインストールも終わる気配がない。 いったん終了させて、C:\Windows\SoftwareDistribution 以下を全部削除。 もう一度、この KB を実行してみた。 この更新プログラムはお使いのコンピューターには適用できません。ですと。 よく見たら、x86 のものだった。 使っているのは Windows7 64bit なので、64bit 版がないか確認したけど、見つからず。 ここでもう一度 Visual Studio のインストールをしてみたら、エラーが出た。 やっぱり、KB2999226 が悪いのかな。 仕方なく、Windows Update Client を入れるため、KB3172605 をダウンロードしてきた。 Windows6.1-KB3172605-x64.msu を実行してみた。 待つこと2時間、やっぱり終わらない。 どうしたものか。 というか、こんなことで1日を潰してしまうとは。
昨日、一昨日の続き。 Windows Update Agent を最新にすると良いとか情報があったので、やってみた。 Microsoft のページから KB949104のダウンロード。 ダウンロードできた WindowsUpdateAgent-7.6-x64.exe を実行する。 珍しく問題なくインストールできたので、Visual Studio のインストールを行う。 やっぱり KB2999226 のところで足踏みをする。 ひょっとしたら進むかもしれないので、期待を込めてしばらく様子をみてみることに。
昨日の続き。 やっぱり、一晩置いても Visual Studio のインストールが終わらない。 Windows Update も同じような状況なので、KB のインストールに問題がある気がしてきた。 Windows Update のスタンドアロンをダウンロードして、インストールしようとしても。 のところで止まってしまうし。 もっと別なところに原因がありそう。 調べてみると、[Windows Update のトラブルシューティングツール] なるものがあるらしいので、Microsoft のページからダウンロードして実行してみた。 何をすれば良いのかよくわからない画面が出てきた。 「次へ」を押してみる。
情報を収集しているとかで。 5分待っても、終わる気配がない。 嫌な予感がしてきたが、気長に待つと10分ぐらいで返ってきた。 自動的に修正できなかったものが1件ある。 詳しく見てみてる。 見たところで、さっぱり。
どうなるかわからないが、PC を再起動して Windows Update をしてみることに。
しかしやっぱり止まってしまう現象は変わらず。
1日から続いている Visual Studio のインストールできない問題。 もうこんなことに時間を費やす気力がなくなったし、Windows 7 自体は Windows 10 のダウングレード版なので、OS を入れなおして Windows 10 にする。 Windows 10.1 へのアップグレードを含む Windows Update も2時間ぐらいで終わり Visual Studio もあっさり入ってしまった。 簡単に言うと Microsoft と言うか Windows 7 は使えないものという結論に。
Visual Studio ごときで無駄な時間をいっぱい使ってしまった。 未だに Windows ってこうなのね、と再認識させられた5日間。
ネットワークのトラフィックを横取りするというか、ミラーリングして取得するとき、100MBase となると数年前まで少し高い製品を買う必要があり、かなり世代が前のダムハブが貴重な存在となっていた。 ギガの時代となって、さらに高い製品が必要となっていたのだけど、最近はそうでもなくなってきたみたい。 ギガビットでミラーリングできる tp-link の TL-SG105E が2500円とかで買えてしまうようで。 こういう製品は急に必要となったりするので、手元に1台あると実験環境のハブに使ったりもできるので便利と思い、買うことにした。 届いたら、また書く予定。
少し前に作った PHP のプログラムが、数値が合わないと問い合わせが来た。 いやいやいや、と半信半疑で思っていたが、実際の数値を入れてやってみて現象が再現。 問題部分だけでやってみる。 [toyota@takodana tmp]$ cat test.php <?php print ceil(300000 * 0.56 / 1000) . "\n"; ?> [toyota@takodana tmp]$ php ./test.php 169 疑って申し訳なかったが、原因は小数点の丸目誤差っぽい。 本当にそうなのか、確認してみた。 [toyota@takodana tmp]$ cat test.php <?php print ceil(300000 * 0.56 / 1000) . "\n"; print (300000 * 0.56) . "\n"; print ceil(300000 * 0.56) . "\n"; ?> [toyota@takodana tmp]$ php ./test.php 169 168000 168001 この気持ち悪い感じは、はっきりとした型を持ってないのもあるんだろうな。
どうしようか考えて、最初こう考えた。
某所に RICOH の複合機 MP C2504 が導入されることになって。
見ているとなんだか PC のような感じで、設定を印刷すると smbserver だの inetd だの nscd といった見慣れた文字が出てきた。
これは Linux あたりで動いているのでしょう。
web での設定画面の応答は、 設置後、設定を眺めていたら ssh で入ることができそうなのを見つけた。 ただ、鍵が無いようで、作らないと駄目みたい。 ボタン1つでできるのだけど、作ろうかどうしようかと考えていたら、telnet もあるではないか。 で、やってみた。 RICOH Maintenance Shell. User access verification. login:admin Password: User access verification ... OK. RICOH MP C2504 JPN Network Control Service Ver. 15.62 Copyright (C) 1994-2017 Ricoh Co.,Ltd. All rights reserved. msh> デフォルトで telnet が起動しているのは、どうなのだろう。
それは置いて、ls などのコマンドは実行できず、複合機の設定をコマンドでするためだけの shell だった。
OS が何で動いているのか知りたいところなのでがっかり。
仕方なく、nmap で OS scan をしてみた。
結果は。
6日の続き。 注文していた tp-link の TL-SG105E が届いた。 付属品には8インチ CD が付いていて。 何だか久しぶりに見た気がするし、今の PC とかはドライブが横向きになったら読めないので、あまり意味がない気がする。 64MB とかの少容量 USB メモリとかじゃ駄目なのかな。 値段が1桁ぐらい違ってくるのかな。 AC アダプタは今まで見た中で一番小さいもの。 これで 9V 0.6A 出すみたいで、良い時代になった。 本体は小さいけどちゃんと金属製だし、特に悪い印象はなく。 問題は説明書で、どうやって管理画面などを出すのだろうと見てみたけど、接続方法のことしか書いてなく。 それも各言語で見開きだけ。 ちょっと不親切な気がする。 仕方なく web ページで確認すると、なんだかソフトウェアを入れないといけないとかで。 それで CD が付いてきたみたい。 しかし、ソフトウェアなんて入れるのは嫌な感じ。 どうしようかと考えていたら、本体裏に IP アドレスが書いてあった。 丁寧にもパスワードまで書いてあるので、PC を繋いで IP アドレスを 192.168.0.129 とか適当に振って、ブラウザでアクセスしてみた。 ソフトウェアなんて入れる必要全くなかった。 入れなくてよかった。 設定できる項目をざっと眺める。 気になるミラーリングの画面は、単純なミラーリングだと思っていたけど、ingress と egress で分けられるみたい。 .1Q の VLAN もできるし、帯域制限もできるし、これで充分色々できる。 この値段でこれだけできたら、申し分ないかな。 ちゃんと速度が出るかとかも試してみたいけど、計測できる環境がないのでまた今度。
Linux で SD カードを読もうと、SD カードリーダーを接続した。 環境は。 [toyota@kamino tmp]$ cat /etc/redhat-release CentOS release 6.8 (Final) messages を確認すると、以下のメッセージが出ていた。 usb 1-6: new high speed USB device number 2 using ehci_hcd usb 1-6: New USB device found, idVendor=05e3, idProduct=0710 usb 1-6: New USB device strings: Mfr=0, Product=3, SerialNumber=4 usb 1-6: Product: USB2.0 Card Reader usb 1-6: SerialNumber: 01530 usb 1-6: configuration #1 chosen from 1 choice Initializing USB Mass Storage driver... scsi2 : SCSI emulation for USB Mass Storage devices usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning usb-storage: device scan complete scsi 2:0:0:0: Direct-Access Generic STORAGE DEVICE 9138 PQ: 0 ANSI: 0 usb 1-6: reset high speed USB device number 2 using ehci_hcd usb 1-6: reset high speed USB device number 2 using ehci_hcd usb 1-6: USB disconnect, device number 2 scsi 2:0:0:1: Device offlined - not ready after error recovery sd 2:0:0:0: Attached scsi generic sg2 type 0 sd 2:0:0:0: [sdb] READ CAPACITY failed sd 2:0:0:0: [sdb] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK sd 2:0:0:0: [sdb] Sense not available. sd 2:0:0:0: [sdb] Write Protect is off sd 2:0:0:0: [sdb] Mode Sense: 00 00 00 00 sd 2:0:0:0: [sdb] Assuming drive cache: write through sd 2:0:0:0: [sdb] READ CAPACITY failed sd 2:0:0:0: [sdb] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK sd 2:0:0:0: [sdb] Sense not available. sd 2:0:0:0: [sdb] Assuming drive cache: write through sd 2:0:0:0: [sdb] Attached SCSI removable disk この後30秒置きに、同じようなメッセージが表示される。 /dev を確認してみた。 [toyota@kamino tmp]$ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 sdb は出来てないので、やはり問題があるみたい。 kernel パラメタを変更すれば出てくるという情報があったので、やってみた。 [root@kamino tmp]# cat /sys/module/usb_storage/parameters/delay_use 1 [root@kamino tmp]# echo 5 > /sys/module/usb_storage/parameters/delay_use [root@kamino tmp]# cat /sys/module/usb_storage/parameters/delay_use 5 これで接続し直しても、状況変わらず。
DB から取得した結果を json で返すものを作っていて。 楽そうだから PHP で作るかと思い、動くかどうかのテストをしてみた。 データベースは PostgreSQL で、こんな内容のテーブルを作った。 demo=# select * from market; type | name | price -------+---------+------- fruit | apple | 128 fish | sardine | 98 fruit | orange | 100 fruit | banana | 150 fish | tuna | 300 (5 rows) これを json で出力する。 エラー処理を全く入れてないが、これでできてしまった。 <?php $link = pg_connect("dbname=demo user=toyota"); $query = "SELECT * FROM market WHERE type='" . $_POST['type'] . "'"; $result = pg_query($query); $price_info = array(); for ($i = 0 ; $i < pg_num_rows($result) ; $i++){ $rows = pg_fetch_array($result, NULL, PGSQL_ASSOC); $price_info[] = array('name' => $rows['name'], 'price' => $rows['price']); } $close_flag = pg_close($link); header('Content-Type: application/json'); echo json_encode($price_info); ?> なんか、もっと大変だと思ったのに、1行で済んでしまうとは。 こんな楽だったら、そりゃ json 使うか。
昨日の続きで。 json のデータを引っ張って来て、table の表を作る必要がある。 昨日作った php ファイルを使ったテストの html を作ってみた。 <html> <head> <script type="text/javascript"> var price = ""; function read_db(type){ postparam = "type=" + type; xhr = new XMLHttpRequest(); xhr.open('POST', 'market.php', false); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.responseType = 'json'; xhr.send(postparam); plist = JSON.parse(xhr.responseText); res = ""; for(i = 0; i < plist.length; i++){ res += plist[i].name + " " + plist[i].price + "\n"; } document.getElementById('result').innerText = res; } </script> </head> <body> <input type="button" value="fruit" onclick="read_db('fruit');"><br><br> <input type="button" value="fish" onclick="read_db('fish');" ><br><br> <div id="result"></div> </body> 長くなるので open の3つ目の引数を false にした。
本当は table にする予定なのだけど、こんな簡単な感じでできるんだなと。
昨日書いた html は、IE 以外で動かない。 Chrome だと、こんなエラーが出る。 select.html:10 Uncaught DOMException: Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be changed for synchronous requests made from a document. XMLHttpRequest の .open での3つ目の引数が false になっていると、responseType が指定できないということで。 調べてみると、https://xhr.spec.whatwg.org#the-responsetype-attribute にある。 3. If entry settings object's global object is a Window object and the synchronous flag is set, throw an InvalidAccessError exception. の部分こと。 そもそも Chrome では、3つ目のの引数を false にした同期通信自体が非推奨になっていて。 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. と出てしまう。 テストプログラムごときで非同期通信する必要もないのだけど、非推奨になっているからには変更しておこうかな。 どちらにしても responseType の問題もあるし。
3年ぐらいまえから愛用しているデジタルカメラの OLYMPUS Tough TG620 だけど、液晶も割れてしまったし電池の持ちも悪くなってきたので、そろそろ新しいのが欲しいなと思っていた。 防水のデジタルカメラで何か良い製品が出ていないか調べてみたが、どうもコレだという製品がない。 変に派手だったり、形がいびつだったり。 新製品が出るタイミングも伸びてきて、やっぱりスマートフォンに浸食されているのだろうなという感じもあって。 コンパクトで何気なく防水、というのをどこか作ってくれないかな。
基本的には私は HHKB Lite2 の英語配列キーボードを使っている。 仕事場所で PC を変えたとき、前の PC を使うことになった人から 106 キーボードを繋いでも 101 キーの配列になって入力されると苦情が。 Windows 10 にもなって、繋いだら認識しれくれても良さそうなもんなんだけど。 設定を変更して元に戻したけど、21世紀も16年も経って未だそんな問題が残っているとは、と思ってしまう。 明日から3日ほどお出かけするので、更新はありません。
Android 4.4 の端末で QR コードを読もうと思ったら、カメラも対応していないし標準でのアプリも入ってなかった。 当たり前のように広告なんかに描かれているので、標準で読み込めるものだと勘違いしていたが、そうではないらしい。 仕方なく読み込みアプリを入れた。 そもそも QR コードはどこが策定したものなのか調べてみると、デンソーが工場の生産現場用に作ったものとのこと。 それが規格化されて JIS になり、ISO になったものなんだと。 なので、海外ではそれほど普及していないらしく。 そんな事情なので、Android 標準で搭載されていなのかな。
少し昨日の続きで。 QR コードの一世代前のバーコードというか JAN コードで使っている商品データはデータベース化されているのか気になった。 少し調べてみると、JAN コードは「一般財団法人 流通システム開発センター」というところが扱っているらしく、任意で登録された DB は見られるらしい。 ということは、法人毎の割り当ては行っているけど、商品の割り当てについては把握してないということなのか。 じゃ、JAN コードを読んで商品が出てくるというアプリもないことになる。 スマートフォンなんかで JAN コードを読むと商品名が出てくるアプリは便利かと言われると、コードがパッケージについているので不必要な気もするし、DB も必要なので出てこないでしょう。 wikipedia のように世界中の人々がコードを登録していくような仕組みがあったとしても、盛り上がらなさそうだし。
PHP でメールを送れないかなと調べていたら、mail というそのままの名前の関数というのがあるようで。 マルチバイト対応版の mb_send_mail 関数もある。 外部のコマンドが必要なのかとか、動作がどうなっているのか調べてみる。 Linux などの場合は sendmail コマンドを呼び出すようなのだけど、Windows 版はそのまま送ってくれるらしい。 テストしてみることに。 しかし、送られる形跡がない。 調べてみると、 さすがに DNS の MX を引いて、SMTP サーバまでは見つけてくれないということで、 SMTP サーバの設定が必要みたい。 php.ini の確認をしてみた。 [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(). ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header = On ; The path to a log file that will log all mail() calls. Log entries include ; the full path of the script, line number, To address and headers. ;mail.log = ; Log mail to syslog (Event Log on Windows). ;mail.log = syslog SMTP 設定の localhost をプロバイダの SMTP サーバを指定したら、あっさり送信できてしまった。 これは便利。
仕事場の Windows 10 PC で、右下に出てくる音量調整のスピーカーアイコンが×になっている。 ヘッドフォンとかマイクの端子はあるけど、オフィス向けの PC だからサウンドデバイスが載ってないのかなと思っていた。 仕方なく USB のサウンドデバイスを買うことにした。 Amazon を見ていたら、USB のサウンドデバイスが167円からあって良い時代になったもんだと思いながら。 結局、2つで送料込み290円のものを買ってみることにした。 ここまでが1週間前の話。 昨日その商品が届いた。 まさかの中国からの発送で、これで元が取れるのか心配になるぐらい。 まずは、パッケージから。 ドライバや説明書は付いていなくて、シンプルそのもの。 開けて眺めてみる。 メインチップの上に封がされていて、どこのチップなのかわからないようになっている。 どこかの工場がメーカー向けに作ったものを、横流ししているものなのだろうか。 作りも雑で、バリが出ていたりする。 しかし、値段のことを考えると、こんなものなのでしょう。 多分、1つ50円ぐらいで作られていると考えると、文句は言えない。 Windows 10 の PC に繋いで、問題なく認識された。 デバイスを見てみると、[USB PnP Sound Device] になっている。 が、オーディオ用のデバイスがその他に2つ出ている。 ひょっとして、と思って PC のヘッドフォン端子にスピーカーを繋いでみたら、音が出た。 ということは、今回買ったこのデバイスは不要ということになる。 一応、今回買ったものからも音が出るのを確認。
音量の調整ができない=サウンドデバイスがない
家では、親からお下がりでもらってきた Brother MyMio DCP-115C というプリンタを8年ぐらい使っていた。 これがとうとうどうやっても綺麗に印刷できなくなって、今年の年賀状は実家のプリンタで印刷したりしていた。 そんな実家でもっと新しいプリンタが余っていたので DCP-115C は廃棄することに。 新品のインクが何本かあって、少しもったいないけど一緒に廃棄。 新しく、というかお下がりの古いものだけど、もらってきたプリンタは EPSON EP-306 で、Windows 10 用のドライバもちゃんとある。 これで、プリンタサーバにするために残していた XP の PC も不要になった。 XP 世代の PC が家に3台も転がっているので、年末にまとめて処分かな。
web ページの検索キーワードを眺めていると、今月の14日からガクッとキーワードが減っている。 どうも、YAHOO の検索が HTTPS に切り替わっているようで。 アクセス数がそれほど少ないページではないので、1割ぐらいキーワードが取得できれば傾向が掴めてくるけど、ここまで減ってくると傾向も掴めなくなる。 Google の HTTPS 化から YAHOO まで HTTPS 化が完了すると、もう検索キーワードの取得は期待しない方が良いのかもしれない。 アクセスでの進入ページから予想するしかなさそう。
アラームが欲しかったので、どうしたものかと見ていたら Windows 10 にもアラーム機能があったので、それをしばらく使っていた。 これで十分かと思っていたが、問題が1つ。 アラームを止めないと延々と鳴っていること。 アラームが鳴って1分とか3分とか経ったら、自動的にアラームが止まると思っていたけど、止まらない。 ちょっと出かけて戻ってきたら、アラームの時間から1時間経っていてもまだ鳴っていた。 設定のようなものがないか調べてみたけど無さそうだし、自動的に止めるようにするには別のソフトを導入しないといけないみたい。 なんだか Windows 標準で付いてくるものって、微妙に使いにくいんだよな。
HTML で次の画面へ POST している部分があって。 これを PHP で受け取っていたのだけど、どうも値を受け取れないときがある。 何でだろうと眺めていたら、半角スペースが入っているものが受け取れていないことがわかった。 ということで、実験。 [toyota@takodana www]$ cat 20161226.html <html> <body> <form method="POST" action="test.php"> <input type="text" name="test 0" value="demo"><br> <input type="text" name="test 1" value="demo"><br> <input type="submit" value="post"><br> </form> </body> </html> [toyota@takodana www]$ cat test.php <html> <body> <pre> <?php print_r($_POST); ?> </pre> </body> </html> このときの結果がこうなった。 Array ( [test_0] => demo [test_1] => demo ) どうも、PHP の仕様で POST パラメタの名前に半角スペースが入っていると、アンダースコアに置き換わってしまうらしい。 調べると、他にもドット「.」もアンダースコアに置き換わるみたいで。 http://www.php.net/manual/en/language.variables.external.php DB から引っ張ってきた値を使っているけど、アンダースコアが入っている値もあるので、仕組みを見直さないと。
Windows Server 2012 を見ていたら、1つ変なことが。 プリンタのリダイレクト2というのが増殖しているのである。 さらに問題なのが、このリダイレクト2のプリンタの削除ができない。 どうしたものかと調べてみる。 わかったことが、リモートデスクトップを使用していると発生するということと、プリンタの共有に関係しているのと。 いくつか解決法があったけど、Server なので別なところに影響を及ぼすかもしれないし、今のところ実害はないので放置することにした。 ちょっとすっきりしないけど。
ようやく少し落ち着いてきて少し時間ができたので、ドメインの切れる期限を紙に書いて一覧にした。 ついでに、いくつか更新しておく。 レジストラを複数使っているから、こんな状況になってしまっていて、なんとかしたいと思いつつうまい方法を考え付かない。 ドメインの期限は紙に書いて張っておくのと、Google カレンダーに入れてある。 紙は更新すると汚くなるし、見ないこともある。 Google カレンダーの場合は見ることは見るのだけど、前日とか1週間前に気が付いたりして遅くなってしまったりする。 残り何日とか表示してくれるソフトがあったら入れてもよいけど、デスクトップに表示されても覆いつくされているので見ないし、1日一回出るのも邪魔だし。 何か良い方法はないものかな。
年末になって、省電力なグラフィックカードが売られていたら買おうかと考え中。 今はオンボードの Intel HD Graphics 4000 を使っているが、まずこれがどのぐらいの性能なのか調べてみることに。 ちょっと前までの Windows では、PC のプロパティを表示させると Windows エクスペリエンスインデックスだとかで、スコアが表示されていた。 しかし、使っている Windows 10 ではこれが表示されない。 いつからか消えてしまったようである。 これを表示させるには、コマンドプロンプトから WinSAT.exe というコマンドを実行しないと駄目らしく。 面倒だけど、やるだけやってみた。 出来上がった xml ファイルによると。
果たしてこれが良い結果なのか悪い結果なのかよくわからない。 DiskScore の方が足を引っ張っているみたいだし、ゲームもやらないし、動画も Youtube ぐらいなので、グラフィックカードはいらない気がしてきた。
今年撮ったデジタルカメラのデータを保存していて、そろそろ外付けの新しい HDD も欲しいなと考えていた。 今は容量がどのぐらいまで出ているのか調べてみると、10TB に達しているみたい。 一時期は1年で倍々に増えていたけど、だいぶ落ち着いてきている感じ。 じゃ、SSD はどこまで増えているかと見ると、2TB までになっている。 このペースだと、2年後ぐらいには追い付いてしまいそう。 それから容量的にも価格的にも SSD が抜いてしまうのでしょう。 来年あたり、8TB の HDD が安くなったら買って、それ以降は SSD かな。
今年も1年ありがとうございました。 |
by Tatsuyoshi since 2003 |