| |||||||||||||||||||||||||||||||||||||||||||||||
code:Haemophilus influenzae |
ここに書かれていることは無保証です。同じことを行って問題が発生しても、龍義は責任をとりません。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
あけましておめでとうございます。
Bitcoin なんかを見ていると、通貨は国が管理する時代じゃなくなるのかなと思ってくる。 新たな金本位制と言うか、 それを考えていくと、民間の Bitcoin だと多少の不安も出てくるので、IMF 辺りが技術者を雇って新たな仮想通貨を作った方が良い気がするし。 10年後、20年後は通貨はどうなって、お金の使い方がどうなるのだろうと、少し考えてしまった。
年賀状がバタバタっとやってきたが、実家のプリンターも調子が悪いらしく。 仕方なくモノクロの絵柄の年賀状を作ろうと GIMP を起動する。 ここで、まさかの GIMP は標準で縦書き文字に対応していないことが判明。 海外製のフリーのものだとこうなってしまうのか、という感じで。 急いで絵柄を横書き用に変更して、なんとかしたが。 新年早々、思わぬ落とし穴だった。
情報の損失を防ぐためにプログラムを終了してくださいと出て。 色々なブラウザを起動したりしているが悪いのかと思ったけど、リソースモニターを見るとコミットチャージがいっぱいになっている。 物理メモリでの「スタンバイ」が多い気がするし。 そもそも explorer がこんなにメモリを使っているのが原因なのだけど、なんとかならないものなのかな。 何だか Windows は相変わらず Windows という感じがして。
C# を書いていて。
C で慣れた身としては、#ifdef が #if になって少し違和感があるのだけど、それはすぐに慣れた。
しかし、#ifndef は C# だとどう書くのだ?という壁に当たった。
#ifn とか駄目そうだし。
調べてみると
世の中うまくいかないもので。 年末、車にカーオーディオを取り付けた。 動画が見られるようにすべきか、FM ラジオがどうだと半年ぐらい悩んで、やっと買ったもの。 しかし、3日ほど前に車を追突された。 そして今日、廃車扱いになると連絡があった。 エアクリーナーを交換したばかりで、これからプラグの交換をしようとプラグも買ってあったし、オイルフィルターも買ったのに。 半年しか所有してなかったので、思い入れはそんなになかったけれど、悩んでようやく付けたオーディオがこんなに早く不要になるとは。 事故は誰も得しないというのを身をもって感じた。
C# で自分の用のプログラムを書いていて。 複数行選択可能で selectionMode を FullRowSelect としている dataGridView があって、削除ボタンを押したら選択した行をその表から削除したかった。 まず、全削除が dataGridView1.Rows.Clear() なので、こんな感じで書いてみた。 dataGridView1.SelectedRows.Clear(); これだと、「コレクションは読み取り専用です」だとかでエラーが起きてしまう。 仕方がないので、駄目だろうなと思いながらも、こんな感じでやってみた。 foreach (DataGridViewRow row in dataGridView1.SelectedRows) { dataGridView1.Rows.RemoveAt(row.Index); } 予想に反して、これでできてしまった。 index がずれてくるので、それを意識しないといけないと思っていたのに。
メインで使っている PC の C ドライブの空き容量が少し少なくなってきたので、何が圧迫しているのか見てみることに。 どうも、以前の Windows のインストールが 25GB 以上あるようである。 これをあっさり削除することにした。 復元することができなくなると言われると、ちょっと迷うけど、実行する。 実行してみたものの、13G ぐらいしか空かなかった。 理由を調べてみたけど、良くわからず。 再起動が必要なのかな。
某所に。 [toyota@kessel tmp]$ cat /etc/redhat-release CentOS release 6.9 (Final) な環境があって。 一昨日、Windows Server 2012 の共有フォルダを cifs マウントするように変更した。 容量の確認をしようと、df を実行するとえらく応答が遅い。 time で測ってみた。 [toyota@kessel tmp]$ time df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 236048136 70640424 153410480 32% / tmpfs 2005832 0 2005832 0% /dev/shm /dev/sdb1 153663616 112823948 33027264 78% /backup //192.168.0.2/share 104854524 13155720 91698804 13% /mnt/share2 //192.168.0.1/share 343374844 305353908 38020936 89% /mnt/share1 real 15m28.845s user 0m0.000s sys 0m0.007s 15分以上かかっている。 2回目からはすぐに応答が返ってくる。 [toyota@kessel tmp]$ time df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 236048136 70640428 153410476 32% / tmpfs 2005832 0 2005832 0% /dev/shm /dev/sdb1 153663616 112823948 33027264 78% /backup //192.168.0.2/share 104854524 13155720 91698804 13% /mnt/share2 //192.168.0.1/share 343374844 305353560 38021284 89% /mnt/share1 real 0m0.057s user 0m0.002s sys 0m0.005s しかし、翌日になると、やっぱり15分かかってしまって。 192.168.0.1 の Windows Server 2012 をマウントしてから始まっているのだけど、この原因は何なのだろうか、と少し調べてみる。 messages には以下のログがいくつか吐き出されていた。 INFO: task ls:8351 blocked for more than 120 seconds. Not tainted 2.6.32-696.10.3.el6.i686 #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. ls D ef1a5d48 0 8351 8311 0x00000084 c18e5550 00000086 00000002 ef1a5d48 c2e85364 00000000 00000001 c1a94de0 c18cb900 0000f40d ed82617e 0000f40d c0b9fb60 c0b9fb60 c18e57f8 c0b9fb60 c0b9b364 c0b9fb60 c18e57f8 c2e85364 000006ac 00000000 00000000 ef1a5dd8 Call Trace: [<c05dfaa5>] ? context_struct_compute_av+0x2d5/0x3c0 [<c053491d>] ? kmem_cache_alloc+0xfd/0x110 [<c087d0a8>] ? __mutex_lock_slowpath+0x78/0x1b0 [<c087ca5d>] ? mutex_lock+0x1d/0x40 [<f94ac352>] ? cifs_reconnect_tcon+0x112/0x2d0 [cifs] [<c05cdbc1>] ? selinux_inode_permission+0xd1/0x130 [<c05cbc74>] ? avc_has_perm+0x64/0x80 [<f94ac5ab>] ? smb_init+0x2b/0x70 [cifs] [<f94b130f>] ? CIFSSMBQPathInfo+0x3f/0x280 [cifs] [<c05cd626>] ? inode_has_perm+0x66/0xc0 [<f94c7953>] ? cifs_get_inode_info+0x333/0x680 [cifs] [<f94be415>] ? build_path_from_dentry+0xc5/0x1f0 [cifs] [<f94be4d4>] ? build_path_from_dentry+0x184/0x1f0 [cifs] [<c05d1130>] ? selinux_inode_getattr+0x60/0x90 [<f94c8144>] ? cifs_revalidate_dentry_attr+0x134/0x200 [cifs] [<f94c8266>] ? cifs_getattr+0x56/0x140 [cifs] [<c0549394>] ? vfs_getattr+0x44/0x70 [<f94c8210>] ? cifs_getattr+0x0/0x140 [cifs] [<c0549412>] ? vfs_fstatat+0x52/0x90 [<c05494a8>] ? vfs_lstat+0x18/0x20 [<c05494bf>] ? sys_lstat64+0xf/0x30 [<c0545db2>] ? __sb_end_write+0x32/0x70 [<c0557a5a>] ? vfs_readdir+0x8a/0xc0 [<c04c31ae>] ? audit_syscall_entry+0x1be/0x1e0 [<c087f490>] ? do_device_not_available+0x0/0x60 [<c087f4d5>] ? do_device_not_available+0x45/0x60 [<c0409bbf>] ? sysenter_do_call+0x12/0x28 hung_task_timeout_secs の値を 0 にすれば、ログは出ないかもしれないが、それは解決ではないし。 ネットワークの問題なのか、共有フォルダの問題なのか、容量確認に時間がかかっているのか。 明日、朝に /mnt/share1 で ls を実行したときの応答時間を見て、判断してみることに。
web を眺めていたら、「当ブログ管理人」という言葉をやたらと使っているページがあって。 「当ブログ管理人の PC では~で、当ブログ管理人でも同じエラーを~」という感じで、笑いを通り越し、もう目障りに思えてきて。 「私」とか「自分」じゃ駄目なの?と。 その「当ブログ」を書いている人で、管理人以外にどんな役割の人がいるのか少し考えてしまった。
某所で動いているプログラムで、データがおかしくなるという話があって。
色々と見ていくと、同時に DB を登録したときにデータに不整合が起きているよう。
PostgreSQL で動いているので、ここは SELECT に FOR UPDATE を付けて対処しようとしたが、ボロボロとエラーが出た。
手動でやってみると。
毎日のように Google で検索をしているのだけど、たまに英語での検索結果が欲しい場合がある。 例えば「honda CB1300」で検索しても、「"honda" "cb1300"」で検索しても、日本語のページがずらっと出てきてしまって、海外での記事を見たいときに表示されなかったり、ずっとスクロールする必要があったり。 設定で表示言語自体変更すれば英語だけの結果に切り替えることもできるが、毎回変更して戻すのも面倒だし。 何か良い方法はないものか調べてみるが、良い方法がなさそうで。 検索した URL に hl=en を付けると、一時的に英語のページになって、全て英語の検索結果にはならないけど、英語のページが上位にやってくるので、これで検索するのが精一杯かもな。
こんな感じで table タグで作った表があって。
表のセルをクリックすると、編集できるようにしたい。 まず確認したのが、td タグでは onclick が有効かどうか。 やってみたら、onclick でイベントを取ってくれるので、 td タグの中を input タグにしてみた。 <td onclick="change_input(this);">6</td> function change_input(caller){ var inputTag = document.createElement("input"); inputTag.value = caller.innerText; inputTag.type = "text"; inputTag.style.width = caller.style.width; inputTag.style.height = caller.style.height; caller.innerText = ""; caller.appendChild(inputTag); } これで、input タグに切り替わる。元に戻らないのと、IE だとセルの大きさが変わって、変な感じになるけど。
input タグになった後、再度クリックすると中身が空になってしまうので対策を入れる。 function change_input(caller){ var inputTag = document.createElement("input"); inputTag.value = caller.innerText; inputTag.type = "text"; inputTag.style.width = caller.style.width; inputTag.style.height = caller.style.height; inputTag.onclick = function(ev){ev.stopPropagation();}; caller.innerText = ""; caller.appendChild(inputTag); }
だいぶ形になってきた。focus が外れたときには、元の表にしたいので、onblur を指定する。 function change_input(caller){ var inputTag = document.createElement("input"); inputTag.value = caller.innerText; inputTag.type = "text"; inputTag.style.width = caller.style.width; inputTag.style.height = caller.style.height; inputTag.onclick = function(ev){ev.stopPropagation();}; inputTag.onblur = function(){this.parentNode.innerText = this.value; this.parentNode.removeChild(this);}; caller.innerText = ""; caller.appendChild(inputTag); }
別のセルとクリックしたとき、うまく戻らなかったり、変な動作となっている。 input になったときに、focus を付けるようにする。 function change_input(caller){ var inputTag = document.createElement("input"); inputTag.value = caller.innerText; inputTag.type = "text"; inputTag.style.width = caller.style.width; inputTag.style.height = caller.style.height; inputTag.onclick = function(ev){ev.stopPropagation();}; inputTag.onblur = function(){this.parentNode.innerText = this.value; this.parentNode.removeChild(this);}; caller.innerText = ""; caller.appendChild(inputTag); inputTag.focus(); }
実際はもっと大きな html に table タグだけど、なんとかなりそうである。 あとは、IE 用にサイズの調整をしないと。 もうちょっと大変だと思ったけど、意外と少ない行で出来たな。
PHP で動いている web ページがあって。 あるページで特定の日のデータを表示しようとしたらエラーが出ると報告があった。 エラーを確認すると。 ERROR: 符号化方式"EUC_JP"で無効なバイトシーケンスです: 0x87 0x40 この DB は元々 EUC で作成されていて、扱いに困っていたものだけど。 EUC で作成されている DB を EUC で受けられないのも変な話である。 クライアントのエンコードを変更してやってみた。 pg_set_client_encoding("utf8"); 結果は。 ERROR: 符号化方式"UTF8"で無効なバイトシーケンスです: 0x87 大して進歩していない。 Shift JIS で受けてみた。 pg_set_client_encoding("sjis"); これでエラーが出なくなった。
寒くなって日も短いので、洗濯物がなかなか乾かない。
去年あたりからサンルームを作ろうかと色々と考えているのだけど、自作するとなると色々と考えることが多くて。
6日の続きで。 余ってしまったカーオーディオを遊ばせておくのももったいないし、売るにも手間なだけなので、部屋の中で使おうかと。 問題は電源とケースで、電源はどこかに余っている PC 電源から取るか、AC アダプターから取るか。 余った AC アダプタを探すと 12V 3A ぐらいしかなくて、容量がちょっと心配なところ。 できれば PC の中に収めたいところだけど、5インチドライブと 1Din の大きさは違うので簡単には無理そうだし。 PC 電源を使うにしても、時刻の保持とかのため常時 12V 出すのももったいないし。 何か簡単で良い解決はないものだろうか。
BS 放送で 4K/8K 放送が始まるらしく。
その影響で帯域を開けるために、NHK などの放送を 1920×1080 から 1440×1080 に減らすとのこと。
先月 C# で作った Windows プログラムが動かないとかなんとか、そんな話が来て。 手元の環境だと動いているし、問題の PC で起動しても動く。 誰かが作った起動メニューから起動させると駄目なようで。 色々やってみてわかったのが、起動メニューでは C:\Program Files を決め打ちで探して、その下にないとエラーを出す。 作ったプログラムは 32bit でも動くように作ったので、C:\Program Files (x86) にインストールされる。 その差のようである。 インストーラーで Environment.SpecialFolder.ProgramFiles で取得したフォルダ以下にインストールしていたが、64bit 環境でも C:\Program Files に決め打ちでプログラムをコピーするようにした。 かなり気持ち悪い解決法だけど、誰かが作った起動メニューの source が無いので仕方ない。
某所で盗難があったかも、という話があって。 大したものではないし、盗られたかどうかも確実ではないらしく。 私が管理させてもらっている PC は問題なかったみたいで。 じゃ、カメラを付けようかという話にもなったけど、そこの人が犯人という感じが前面に出てしまうので、どうしたものかとなった。 少し考えて、机の上にあって不思議ではないものにカメラが付いていれば、何気なく設置できるのではと思って。 ただし、USB ケーブルが PC から伸びている必要があるので、例えばスピーカーのようなものに、小さなカメラが付いていると都合が良いと言うか。 探してみると、TV 会議で使うようなスピーカー付きカメラぐらいしか見つからない。 もう少しさりげなくカメラが付いていると良いのだけど。 あとは怪しげな USB メモリ風カメラとか、そんな製品になってしまうな。 3000円ぐらいで、良いものはないか引き続き探すことに。
外でお弁当を温める方法はないものかと調べていたら、バロクックのレクタンギュラーというお弁当箱を見つけた。 水を注ぐだけで発熱して温かいお弁当が食べられるのだとか。 便利だけど、水を注ぐと言うことは石灰と言うか酸化カルシウムを使っている訳で。 どうやって元に戻すか調べてみると、戻すのではなく使い捨てで、ヒートパックと呼ばれるものが1つ200~300円もする。 コストパフォーマンスが悪すぎだな。
Android が入った TV BOX が3000円なんかで売っていた。
これに Linux は入らないかと少し調べてみる。
LibreELEC や Armbian といったディストリビューションがあるようで、Amlogic 系の SoC に対応しているらしく。
安く売っていた TV BOX を見たら、Amlogic S905W という CPU のようだけど、動くかどうか微妙な感じ。
ここのところえらく寒くなって。 そんな寒いときに限って、エアコンが止まる現象が出る。 故障しているのかと思ったが、念ため調べてみるとエアコンが霜取り運転しているらしく。 寒くても晴れているときには止まる現象が起きなかった理由がわかったのだけど、根本的な対処法がないというか。 ひざ掛けで乗り切るしかないようである。
ブラウザの Opera を使っていると、たまにえらく CPU を使う。 そんなときは Opera 全体を落としていた。 ふと、Opera はタブごとに独立プロセスとなっているので、次に CPU 使用率があがったときは、該当のプロセスのみ落としてみようと思っていた。 で、今日その機会がやってきて、CPU をえらく使っているプロセスを落としてみた。 Opera 全体には影響ないようで、該当と思われるタブだけメモリ不足のエラーが出た表示になる。 メモリ不足と出る理由がちょっとわからないけど、プロセスが独立しているので、できる芸当。 Opera は良いところも悪いところもあるけど。
なんだか家の無線 LAN に繋がらない。 親機の MZK-W300NH2 を確認してみると、LED が付いていない。 AC アダプタを抜いて刺し直しても、起動する様子がない。 壊れてしまったようである。 確認のため、AC アダプタの電圧を測ってみると、12.6V 出ているので電源の問題ではなさそう。 仕方ない、ということで中を開けてみた。 pregnant capacitor など、明らかに壊れているという部品は見つからない。 念のため基板の裏側も見てみたけど、どこか焦げているという場所もなく。 こうなると手が出ない。 コンデンサのどれかのような気もするけど。 せっかくなので、昔を思い出して CPU のシールを剥がしてみた。 CPU は Ralink の RT3052F で、メモリは ESMT の M12L64164A-7T が2つなので 16MB になる。 フラッシュが Macronix の MX29LV320DBTI-70G だから 4MB で NOR のよう。 スペックが低い気もしないことないけど、8年前の製品だとこんなものかな。 ということで、廃棄決定となった。 こうやって、MAC アドレスが1つ葬られていく。
プロセスモニターを使おうと思って、sysinternals のページに行ってみたら。
先日スマートフォンで撮った写真を見ようと思ったら、入っていない。 残っているのは一昨日撮った雪の風景ぐらい。 これはどうなっているのかと考えてみて、思い出した。 週末に Android のギャラリーでいらない写真が見えたから、消したのだった。 多分そのときに、ディレクトリごと消してしまったのではないかと。 これまで撮ったのが全部消えてしまうので痛いな、ということで復元アプリをいくつか入れてみたけど、消してからしばらく経つので復元できなかった。 こまめなバックアップを忘れるとこうなってしまう。 痛い教訓となった。
軽自動車の車検証のコピーを保険屋に渡す必要があるので、コピーした。 コピーした紙の方は「COPY」とか「複写」と入る。 パッと見た感じは、元の紙に入ってない感じがするのだけど。 ちょっと寄って写真を撮ってみた。 なんとなく、見えてくるような、見えてこないような。 同じ写真を切り抜いてみてみた。 該当部分の線は、点線になっているのがわかった。 こんなのでコピーすると違ってくるのか。 市販のプリンターの DPI でもこれができるのかな。 今度時間があったらやってみよう。
Photoshop で何枚か大きめの写真をいじっていて、クリップボードの画像をペイントに貼り付けようとしたら、切り替わらない。 画面が全体的に固まった感じで、でもマウスは動く。 しばらくしたら、エクスプローラーが全部落ちてしまって、復帰した。 他は大丈夫そうなので続けて作業をしていたら、また同じ現象に。 今回はさらにデュアルモニターの片側が消えてしまい、動いている方のモニターにウィンドウが全部移動した。 モニターの設定をいじっても直らないので、仕方なく PC を再起動することに。 今年初めての再起動かな。 再起動したら今のところうまく動いている様子。 氷の世界じゃないけど、寒さが悪さをしたのか、再発するようだったら原因を探らないと。
正月早々、車を替えることになってしまって。
その新しい、と言っても中古だけど、車がやってきた。
ホンダの N-BOX になって、オーディオと言うか純正のナビが付けられている。
型番は VXM-128C というもの。
Google で画像を検索すると Pinterest にある画像が出てくることが多くなった。 Pinterest が何なのか調べ、サービスの内容はわかったのだけど、少しすっきりしないと言うか。 Pinterest に私が撮った写真も入っていたりして、著作権の問題は忘れたとしても、画像検索でオリジナルより優先されて出るのが嫌と言うか。 3歩譲って優先されて出ても良いけど、いざその写真を Pinterest で見ようとすると、登録しろとかなんとか出るのが納得できないと言うか。 ブラウザの開発者ツールを使えば、それも消せるけど、それはそれで違う感じだし。 ちょっと喉に骨が刺さっているような後味。
このページの上にある年月を選ぶ部分、明日にはまた増えてかなり横長になってしまう。 ドロップダウンにしても逆に選択部分が縦長になるし、何か良い方法がないかと、ここのところ考えていた。 表示部分の高さはこれ以上伸ばしたくないし、横幅も限界を超えてる感じだし。 ここだけのために jQuery なんか使う気はないし、最近は画像をだいぶ入れているけど、元々テキストブラウザでも見えるようにする前提なので、できれば javascript も使いたくない。 どうしたものかな、困った。 |
by Tatsuyoshi since 2003 |