2013/02/27

プリンタヘッドの目詰まり

CANONのインクジェットプリンタの複合機MP640を2年半使っているが、テキスト文書の印刷で黒が縞状にかすれる症状が出ている。ヘッドクリーニング機能で騙し騙し使っていたが強力クリーニングをかけても回復しなくなった。

ノズルチェックパターンではPGBK(顔料ブラック)のパターンの下半分がほとんど印字されていない。試行錯誤して「印字品質」を「きれい」に設定すると正常にプリントできることがわかったので急場は凌いだ。

DSC02351b

ネットで調べてみると、

  • 顔料ブラックは詰まりやすい(特に詰め替えインクを使っていると)
  • CANONのプリンタはヘッドを取り外せるのでお湯で洗える、
  • ヘッドだけ別売りはしていないので(以前は売っていた)修理に出すしかない

ということで、ヘッドをはずしてお湯で洗って乾かしているところ。

2013/02/26

仏壇の吊灯篭をLED化

仏壇の吊灯篭をLED化した。

NEC_0435a

元の電球は12VのE12口金のフィラメント電球が2つ使われていて、これと入れ替え可能なLED電球をdealextremeで見つけた($3.70なので400円程度)。

SENCART E12 1.5W 90lm 3000K 1-LED Warm Light Decoration Lamp - Silver

sku_171946_1

電球を差し替えるだけで済むと思ったら極性が逆で点灯しなかった。コードの途中に手元スイッチがついていたので、これを分解して極性を変更しようとしたがはめ込み式になっている蓋がはずせなかった。

あきらめて途中でコードを切断してDCプラグをつけた。手元スイッチもはずしてしまい、100円ショップ(ダイソー)の「節電タップ(ランプ付スイッチ)」で代用してDCアダプタの待機電流を減らしている。

NEC_0431a

LED電球はかなり明るかったので、12VのDCアダプタを9Vに変更。消費電力は交換前2Wだったのが、交換後は1W未満(手持ちのワットメータでは消費電力が小さいので0W表示のままだった)。

2013/02/25

クラッシャージョウの新刊「水の迷宮」

インターフェース誌4月号の発売なので、本屋をのぞいたらクラッシャージョウの新刊がでていた。8年ぶりの新刊。

水の迷宮 (クラッシャージョウ)
水の迷宮 (クラッシャージョウ) 高千穂 遙 安彦 良和

早川書房 2013-02-22
売り上げランキング : 168


Amazonで詳しく見る
by G-Tools

以前は朝日ソノラマ文庫だったが、今はハヤカワ文庫に変わっている。

同じくソノラマ文庫だった菊池秀行の吸血鬼ハンターDは、今でも年に1冊ぐらいのペースで刊行されている。最新の「黄金魔」は買い忘れていたが、楽天koboの電子書籍で見つけて購入した。

D-黄金魔[上]-【電子ブック版】

D-黄金魔[上]-【電子ブック版】
価格:440円(税込、送料込)

上巻しかなかったが、この数日のうちに「D-黄金魔〔下〕」も登録されたらしい。

同じ本を何度も読み直すことはないので紙の本は邪魔になる。電子書籍のほうが場所をとらなくいい。貸し借りができないけど。

koboは文庫を読むには悪くない端末だが、本の検索はあいからわずダメ。D-黄金魔も[上]が「吸血鬼ハンター36」、[下]が「吸血鬼ハンター25」と意味不明な数字が表示されている。

更にどちらも「朝日新聞出版、12月 2009」となっているので、表示の並び替えの「新しい順」が全く機能しない。本当に最新刊なのか、「内容紹介」をamazonと見比べて判断した。登録データの内容を早くまともにしてほしい。

ちなみにクラッシャージョウは既刊も含めて一冊もkoboの電子書籍には登録されていない。

2013/02/24

半導体アナライザ DCA75

「半導体アナライザ」というおもしろい測定ツールが出ている。NEC_0440b

トランジスタ、ダイオードなどディスクリート半導体につなぐと素子を自動判別して電気的特性を測定してくれる。クリップを適当につなぐと、赤がベース、緑がエミッタ、青がコレクタというようにピンも自動判別。

2SC1815GRをつなぐと画面にはこんな情報が表示される。

NPN Silicon BJT
Red-B Green-E Blue-C
HFE=251
of Ic=5.01mA
VBE=0.787V
of IB=5.00mA
IcLeok=0.000mA

ツェナーダイオードのツェナー電圧のチェックができる。見た目で型番の判別が難しいので助かる。

秋月とストロベリー・リナックスで入手可能。

今日の時点でどちらも13,650円になっている(14,175円で買った次の日に値下げしていた…)。安くはないが、秋月では先週、品切れになっていたのでそれなりに売れているのかもしれない。

2013/02/23

訃報 本多知恵子さん

声優の本多知恵子さんが亡くなったそうです。享年49歳。1980年代のエルガイムのファンネリア・アム、ガンダムZZのエルピー・プル、きまぐれオレンジロードの春日くるみ など、元気な少女役が多かった。ご冥福をお祈りします。

2013/02/17

金魚の通販

しばらく前に金魚をネット通販で買った。飼育に手間がかからず、熱帯魚のエサ用の安い金魚を選んだ。まとめ買いが安く、30匹と50匹で100円しか違わないので50匹セットを購入。

生き物なので配達日時を指定して確実に受け取れるようにする。発泡スチロールに二重のビニール袋に入って50匹とも無事に届いた。

  価格
(時期により変動)
1匹あたり
価格
▼《生餌》小赤 エサ用金魚(10匹) 430円 43円
▼《生餌》小赤 エサ用金魚(30匹) 940円 31円
▼《生餌》小赤 エサ用金魚(50匹) 1,040円 21円
▼《生餌》小赤 エサ用金魚(100匹) 1,810円 18円

 

▼《生餌》小赤

▼《生餌》小赤 エサ用金魚(50匹)
価格:1,040円(税込、送料別)

水槽の底砂も一緒に購入。

最初の2ヶ月ぐらいで15匹位減った。バタバタ死んでしまうと思って余分に購入したのだが、それ以降は一匹も減っていない。半年を過ぎて大きくなってきたので水槽を増やすことを考えないといけなくなってきた。

2013/02/14

大容量モバイルバッテリー

2年前の震災の日に携帯電話のバッテリー切れを経験して以来、モバイルバッテリーをいくつも購入してきた。大容量のものではcheero Power Plusが容量10,000mAh(3.7V)で2,500円と安価。実際に使ってみた感触では、仕様通りの容量がある。

amazonで1,000件近くのレビューがあり評判も悪くなく、人気商品なので品切れが続いていると思ったら後継製品が出ていた。

マルチデバイス対応 cheero Power Plus 2 10400mAh (ブラック) 大容量モバイルバッテリー
マルチデバイス対応 cheero Power Plus 2 10400mAh (ブラック) 大容量モバイルバッテリー
cheero mart
売り上げランキング :


Amazonで詳しく見る
by G-Tools

2ポート出力は変わらず、容量もほぼ同じでLEDライトが付いた。オートパワーオフになったが、使い方によっては前モデルの物理スイッチのほうが良かったかも。相変わらず品切れ。

2013/02/13

数独を解くプログラム

数独にはまっている知人がいる。もう何年もDSの数独問題集をやっているというので、脳トレみたいなものかとやってみたが、人間には単純作業のように思えて苦痛だったので解法プログラム(C/C++言語)を書いてみた。
再起呼び出しによる力技で解いているが、サイズ9x9で1秒以内で解ける(Core2 Quad 2.8GHz)。サイズ25x25で約8秒。

// SUDOKU SOLVER
// 2013/02/11 ToMo Star Blog

#include <stdio.h>
#include <stdlib.h>


// http://ja.wikipedia.org/wiki/%E6%95%B0%E7%8B%AC
#define BAN_SIZE 9
#define SQR_SIZE 3
int ban[BAN_SIZE][BAN_SIZE]=
{
    {5,3,0,0,7,0,0,0,0},
    {6,0,0,1,9,5,0,0,0},
    {0,9,8,0,0,0,0,6,0},
    {8,0,0,0,6,0,0,0,3},
    {4,0,0,8,0,3,0,0,1},
    {7,0,0,0,2,0,0,0,6},
    {0,6,0,0,0,0,2,8,0},
    {0,0,0,4,1,9,0,0,5},
    {0,0,0,0,8,0,0,7,9}
};


void print()
{
    for(int i=0; i<BAN_SIZE; i++){
        for(int j=0; j<BAN_SIZE; j++){
            printf(" %d", ban[i][j]);
            if((j+1)%SQR_SIZE==0)
                printf("|");
        }
        printf("\n");
        if((i+1)%SQR_SIZE==0){
            for(int j=0; j<BAN_SIZE; j++)
                if((j+1)%SQR_SIZE==0)
                    printf("+");
                else
                    printf("---");
            printf("\n");
        }
    }
}

int empty(int* x, int* y)
{
    for(int i=0; i<BAN_SIZE; i++)
        for(int j=0; j<BAN_SIZE; j++)
            if( ban[i][j] == 0 ){
                *x = i;
                *y = j;
                return 1;
            }
    return 0;
}

int find_number(int x, int y, int n)
{
    //horizontal
    for(int i=0; i<BAN_SIZE; i++)
        if( ban[i][y] == n)
            return 1;
    //vertical
    for(int j=0; j<BAN_SIZE; j++)
        if( ban[x][j] == n)
            return 1;
    //square
    int x0 = (x/SQR_SIZE)*SQR_SIZE;
    int y0 = (y/SQR_SIZE)*SQR_SIZE;
    for(int i=0; i<SQR_SIZE; i++)
        for(int j=0; j<SQR_SIZE; j++)
            if(ban[x0+i][y0+j] == n)
                return 1;
    //diagonal
    //if( x==y )
    //  for(int k=0; k<BAN_SIZE; k++)
    //    if( ban[k][k] == n)
    //      return 1;
    //if( BAN_SIZE-x-1==y )
    //  for(int k=0; k<BAN_SIZE; k++)
    //    if( ban[BAN_SIZE-k-1][k] == n)
    //      return 1;

    return 0;// not found
}

int solve()
{
    int x, y;
    if(empty(&x,&y)){
        for(int k=1; k<=BAN_SIZE; k++){
            if( find_number(x,y, k)==0 ){
                // not found
                ban[x][y] = k;//tentative
                if( solve() )
                    return 1;
                ban[x][y] = 0;
            }
        }
        return 0;
    }else
        return 1;
}

int solve_all()
{
    int x, y;
    if(empty(&x,&y)){
        for(int k=1; k<=BAN_SIZE; k++){
            if( find_number(x,y, k)==0 ){
                // not found
                ban[x][y] = k;//tentative
                solve_all();
                ban[x][y] = 0;
            }
        }
        return 0;
    }else{
        print();
        return 1;
    }
}


void main()
{
    /*
    if(solve())
        print();
    else
        printf("No solution!\n");
    */

    solve_all();
}
空いているマスを探して、可能な数字を仮に入れてみる。という処理を再帰的に呼び出す。マスにどの数字も入れられない場合は失敗なので、前に戻って仮に入れた数字を消して次候補の数字を入れてみる。マスが全部埋まれば完成。
対角線にも同じ数字がそろうようにするルールの場合は、「diagonal」のところのコメントをはずせば解けるはず(動作未確認)。
解が2つ以上ある場合は、「solve_all()」関数で全て出力してくれるはず(こちらも動作未確認)。
数独の問題を作成するアルゴリズムを考えている。人間にとってどういう問題がおもしろいと感じられるのだろう。