SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|

2004-10-22(Fri) 「ワイヤレストラベルマウス」リローデッド

  昨日、再び壊れたSVX……ぢゃない!! ……いや、ぢゃなくもないな。実際SVXもエアコンに続き故障は2度目なのだが、それはともかくとして、話題はワイヤレスマウスのほうである。ホイールが使えないのがどーにも惜しいので、ジタバタするのである。で、今日は昼休みにでもいろいろ試してみようと、今日はワイヤレスマウス本体と精密ドライバ一式を持っての出勤である(なははは)。

  昼のチャイムが鳴ると同時に、慣れた手つきでマウスをバラす……て、こんなもん慣れたくはないのだが、とにかくバラす。んが、ロータリーエンコーダのパーツは基板からハズさなくてもツメを緩めればバラせると思っていたのだが、よく考えたらハズせなかった。むむぅ。結局、通電したままロータリーエンコーダをグリグリしまくってみたりしたが、一切の反応がない。接触不良とかいうレベルを超えてしまったっぽいな。この時点で完全に「移植」するしかないという考えに切り替える私であった。

  昼休み半ばにしてそのような考えに至ったので、残りの時間なにをするか。私は昼飯を食わないので時間がタップリある。結局、手持ち無沙汰の挙句に職場で使っているELECOMの安いマウスをバラし始めてしまうのであった(これは私物であるので念のため)。見た目には、全くネジがない。んが、私の目は節穴ではないッ!! バラしの法則「ネジはシールの下にあり」を適用し、マウスの腹部に貼ってあるシールの秘孔を突いてネジを外してしまうのであった。ほわたぁッ!!

  使って数年になるマウスであるから、内部までホコリが入り込んでおり、オッソロシク、キッタネェ。

  画像の説明

  「ッ!」

  どこかで見たようなパーツがッ!! ここで会ったが5分前ッ!! ソコの「ELECOM M-N2P2GY」ッ!! 臓器提供者に決定ッ!! である。まさに、まったく同じパーツに見える。ホイールを回す感触はエラく違うのだが、3本足+フレームという形状や、6角形という軸受け穴の形状、コリコリという感触をそれ自体で発生させているという構造まで同じである。こりゃそのまま付け替えるだけで動きそうである。

  というわけで、帰宅して即座にパーツをキレイ取り外し、横に並べて比較してみた。すると、まったく同じパーツというわけではなく微妙に違うことに気づく。生贄パーツのほうが軸の取り付け位置が微妙に低く設定されているようだ。しかし、そんなもんたいした事ではない。若干浮かせた状態で、ハンダで固定するだけだ。

  画像の説明 画像の説明

  ついでに、以前から気になっていた電源スイッチを取り付けてしまおう。このマウス、レシーバのパーツをマウスの腹に収めると電源が切れるような機構があるのだが、私は毎度レシーバを外すのは面倒なため、実質電源を入れっぱなしで使っているのだ。それでも電池は1ヶ月弱は持つのだが、気分的にイマイチなのは否めない。先日、このために千石で買ってきたスライドスイッチを取り付け、電源を切れるようにする。取り付け位置は一見ジャマなようで実際には全然ジャマにならないマウスの背中の頂点とする。ガワをバラしてドリルでスライドスイッチがちょうど入るような穴をあける。

  画像の説明 画像の説明

  でもって、基板の電源スイッチ部にリードを伸ばす。このスイッチ、押すとONになる接点と、OFFになる接点が同居しているので、押すとOFFになる接点にリードをハンダ付けする。

  画像の説明

  で、組み上げれば完成だ。なお、元からあるスイッチも殺したくはなかったので、生かしてある。よって、電源を切るには「レシーバを収めて」て「スライドスイッチをオフ」にしなければならない状態になっている。レシーバをいちいちPCから外すのが面倒なためにスライドスイッチをつけたのだから、レシーバをマウスの腹に収めなくても、レシーバを収めた状態にしておかねばならない。そうすれば、上部のスイッチでオンオフできるのだ。よって、ちょっとダサいが割り箸でスイッチを押さえてしまうことにする。

  画像の説明 画像の説明

  めでたくこれで修理完了である。今度こそ相当の間、元気で働いてくれるであろう。ホイールのコリコリ感も、パーツのグレードが若干高いのか、同型の新品のものよりも剛性感があり、よい感じだ。あとは、レシーバをメビウスのACアダプタのガワに入れ、内蔵できれば完璧だな。大変楽しみだ。

  さて、今日のマウスの話とは全然関係ないし、このブログではあまり時節ネタを扱いたくはないのだが、例の新規参入野球チーム名「東北楽天ゴールデンイーグルス」になぜかピンと来てしまった。なぜか妙に悪役っぽいイメージが脳裏に浮かぶのだ。なぜだ……なぜだ……なぜ……はっ、そうかッ!! 「ゴールデンイーグル」の対偶の単語が「シルバーホーク」だからかッ!! 確かに、惑星ダライアスを何度も救ってきた私に、悪役のイメージを抱かせるのに不思議はない名前である。ここはひとつ孫社長に「ヤフービービーシルバーホークス」を立ち上げてもらって対抗していただきたいトコロだ。実に現在の野球界は「ザ・テーマ・オブ・カオス」であることよ。ぽくぽくちーん。


2009-10-22(Thu) 週刊「メーラを作る」

  突然、再度自製のメーラ「mave」を書き直したくなってきた。

  オイラは、初期バージョンのmaveを、日頃の実務でバリバリと使っている。数万件のメールを溜め込んでも、全く速度が落ちないというスケーラビリティは、なかなか他のメーラで代え難い特徴だ。他にも見たこともないような便利機能もいくつかあり、実際、これを超えるメーラはないと思っている(自分で作ったから当然)。

  しかしながら、致命的なバグはないものの、既にコードがスパゲッティ化してしまっていて、さらなる改良を施す気が起きない。いまどき、EUC専用というのも気分が悪い。

  というわけで、早速、はじめる。とりあえず、RubyのcursesライブラリをUTF-8(ncursesw)対応にすべくパッチを当てる。単に私の試行錯誤の結果なのだが、以前、ここで記事にしたような気がするものの、サッパリ記録が見つからない。あちこちの環境に、パッチが当たっているライブラリが転がっているのは見つかったが、方法が書いてない。さらに、あちこちの環境を探したら、ようやくノウハウが発掘できた。なんだ、こんだけのことか。

zakato.itline.jp:/root # yum install ruby
  更新           : ruby-libs-1.8.6.369-5.fc12.x86_64                                                                                                       1/4 
  更新           : ruby-1.8.6.369-5.fc12.x86_64                                                                                                            2/4 
 
zakato.itline.jp:/root # wget http://mirrors.kernel.org/fedora/development/source/SRPMS/ruby-1.8.6.369-5.fc12.src.rpm
 
 ※ yumdownloader --source ruby でも可
 
zakato.itline.jp:/root # rpm -ivh ruby-1.8.6.369-5.fc12.src.rpm 
 
zakato.itline.jp:/root # rpmbuild -bp rpmbuild/SPECS/ruby.spec 
エラー: ビルド依存性の失敗:
	compat-readline5-devel は ruby-1.8.6.369-5.fc12.src に必要とされています
	tcl-devel は ruby-1.8.6.369-5.fc12.src に必要とされています
	tk-devel は ruby-1.8.6.369-5.fc12.src に必要とされています
 
zakato.itline.jp:/root # yum install compat-readline5-devel tcl-devel tk-devel
 
zakato.itline.jp:/root # rpmbuild -bp rpmbuild/SPECS/ruby.spec 
 
zakato.itline.jp:/root # cd rpmbuild/BUILD/ruby-1.8.6.369/
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369 # find . -name "*curse*"
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369 # cd ./ruby-1.8.6-p369/ext/curses
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # ruby extconf.rb 
can't find header files for ruby.
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # yum install ruby-devel
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # ruby extconf.rb 
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # make
 
  1 #!/usr/bin/ruby
  2 
  3 require "curses"
  4 
  5 Curses.init_screen
  6 begin
  7   s = "こんにちは、世界!"
  8   Curses.setpos(Curses.lines / 2, Curses.cols / 2 - (s.length / 2))
  9   Curses.addstr(s)
 10   Curses.refresh
 11   Curses.getch
 12 ensure
 13   Curses.close_screen
 14 end
 
�~A~S�~B~S�~A��~A��~A��~@~A��~V�~U~L!
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # diff -c curses.c.org curses.c
*** curses.c.org	2007-02-13 08:01:19.000000000 +0900
--- curses.c	2009-10-22 23:11:20.815314129 +0900
***************
*** 15,20 ****
--- 15,21 ----
  
  #include "ruby.h"
  #include "rubyio.h"
+ #include "locale.h"
  
  #if defined(HAVE_NCURSES_H)
  # include 
***************
*** 1441,1446 ****
--- 1442,1449 ----
  void
  Init_curses()
  {
+ 	setlocale(LC_ALL, "");
+ 
      mCurses    = rb_define_module("Curses");
      mKey       = rb_define_module_under(mCurses, "Key");
  
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # diff -c extconf.rb.org extconf.rb
*** extconf.rb.org	2008-06-08 03:59:34.000000000 +0900
--- extconf.rb	2009-10-22 23:12:26.452314410 +0900
***************
*** 1,15 ****
  require 'mkmf'
  
  dir_config('curses')
! dir_config('ncurses')
  dir_config('termcap')
  
  make=false
  have_library("mytinfo", "tgetent") if /bow/ =~ RUBY_PLATFORM
  have_library("tinfo", "tgetent") or have_library("termcap", "tgetent")
! if have_header(*curses=%w"ncurses.h") and have_library("ncurses", "initscr")
    make=true
! elsif have_header(*curses=%w"ncurses/curses.h") and have_library("ncurses", "initscr")
    make=true
  elsif have_header(*curses=%w"curses_colr/curses.h") and have_library("cur_colr", "initscr")
    curses.unshift("varargs.h")
--- 1,15 ----
  require 'mkmf'
  
  dir_config('curses')
! dir_config('ncursesw')
  dir_config('termcap')
  
  make=false
  have_library("mytinfo", "tgetent") if /bow/ =~ RUBY_PLATFORM
  have_library("tinfo", "tgetent") or have_library("termcap", "tgetent")
! if have_header(*curses=%w"ncurses.h") and have_library("ncursesw", "initscr")
    make=true
! elsif have_header(*curses=%w"ncurses/curses.h") and have_library("ncursesw", "initscr")
    make=true
  elsif have_header(*curses=%w"curses_colr/curses.h") and have_library("cur_colr", "initscr")
    curses.unshift("varargs.h")
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # ruby extconf.rb
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # make
 
zakato.itline.jp:/root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses # cd /usr/lib64/ruby/1.8/x86_64-linux
 
zakato.itline.jp:/usr/lib64/ruby/1.8/x86_64-linux # mv curses.so curses.so.org
 
zakato.itline.jp:/usr/lib64/ruby/1.8/x86_64-linux # cp /root/rpmbuild/BUILD/ruby-1.8.6.369/ruby-1.8.6-p369/ext/curses/curses.so .
 
こんにちは、世界!

  一週間ごとにモジュールを足していって、メーラを完成するという企画はどうだろう。ディアゴスティーニみたいに。この創刊号はバインダがついて、特別価格790円……なんてな。

  追記: Fedora16においても本手法が有効であることを確認。


2011-10-22(Sat) uPC2002アンプ、基板完了

  最近、平日、仕事量が多すぎて死にそうなので、休日はしっかりと休む必要がある。

  先日、どこかで聞いたのだが「休む」こととは「体を動かない」ことではないそうだ。「いつもと違うことをちょっとずつする」ことが、最高の効率で「休む」ためのコツらしい。マラソンの後の「整理体操」みたいなイメージか。体のすべての部位に緩い運動を与えることで、リラックスさせるというか。

  私の場合、電子工作と散歩かな……というわけで、明日は散歩する予定なので、今日はガッツリと電子工作に取り組んで「休む」ことにする。

  画像の説明

  まずはケース加工のリベンジ。今回は、電源スイッチ、電源ジャック、ミニプラグの穴も空ける。休日なので電動ドリルも利用する。このダイソーのケース、ホントに丈夫だ。割れないので、安心して加工できる。素晴らしい。

  で、基板へ部品を載せていく。相手がオーディオ信号なので、気休めながら一点グランドとして設計したこともあり、ちょっと太めのスズメッキ線を使って配線。特にオーディオ用コンデンサは使わないが、一部には見た目に栄える缶入りの電解を配してみた。

  気がつくと深夜2時……さすがに「休み」すぎか……今晩は火を入れずにお休みである。


2013-10-22(Tue) 萌ゆ娘 率き連れ征くは 燃ゆ水面

  ……などと、一句詠みつつも、提督稼業の一時中断のお知らせである。開始からちょうど1ヶ月が経つところで、封印するのである。

  画像の説明

  というのも、先月に「艦これ」を始めてからというもの、なにしろオモシロすぎて「艦これ」が生活の一部になってしまい、なにも手につかなくなってしまったからである。さすがに仕事には影響させていないが、朝から「演習」を5戦ともキッチリこなすという「朝練」を含め、休日までベッタリ。何かをやるにも「遠征」「入渠」の待ち時間だったり「出撃」の戦闘中だったり……「艦これ」を楽しむ、というより「艦これ」の隙間で生活するような状況。

  これはイカン。創造的なことを何もしていない……というわけで、難関である2-4, 3-2も突破したことだし、一度、中断することにした。

  しかし、実際すごいゲームだ。実際の艦船やWW2にも興味を持ってしまい、プラモデルを買うやら、関連書籍を買うやら、DVDを借りるやら、すっかりハマってしまった。

  意外だったのは「艦船」がこれほどの魅力を持っていたことだ。個々の艦に、エピソードがあり、キャラが立っている。概念が歴史の武将に似ている。軍用機や戦車にはない個性がある。一時期、国家予算の半分が艦隊維持費だったとか……そら、かかるわな。

  せめて「艦隊」を優良な「コンテンツ」と見て、いまこの時に国民が「楽しむ」ことで少しでも回収することは非常に有意義だと思う。当時の提督がどう思うか、また、良し悪しはともかく「戦争」にエンターティメントの格好のネタという側面があることは事実だし。

  さて、工廠で開発しまくって、資源を使いきろう……でないと、また、明日遊んでしまうかもしれん……っと「46cm三連装砲」出たッ!! ……使ってみたい……いやいや、封印す……っと、いくつ出るんだ「紫電改二」ッ!! ……もー……。

  心を強く持ち、燃料以外の資源をゼロにし、ログインパスワードを変更し、封印完了である。我がかわいい娘たち……いましばらくのお別れだだだッ!!


2016-10-22(Sat) 再び、あそぶ!ゲーム展であそぶ!

  昨日に引き続き、東京に出張があったので「あそぶ!ゲーム展 ステージ2」を観に行ってきた。

  正直、前回に比べると、展示ゲームは「当時に親しみすぎた&割と今もプレイ可能な」ラインナップなので、モチベーションはかなり低かったのだが、行っておかなければ後悔しそうだ、ということで今回も開場の9時30分と同時に入場。

  <かきかけ>

  画像の説明

  画像の説明

  画像の説明

  画像の説明

  画像の説明

  画像の説明

  画像の説明

  画像の説明

  画像の説明

  画像の説明


2024-10-22(Tue) ワーケーション・ツー

  画像の説明