2010年9月24日金曜日

エクスプレスカード

新幹線のチケットの話をしていて気付いたのが携帯の登録をしないと、です。iアプリで時刻表を見ようとして「あれ、無いな」と思ったのですが、同じようにエクスプレス予約の登録も消えていました。2ヶ月ほど前のこと携帯をポケットに入れたまま洗濯してしまい、気付いたときには電源も入らない状態でした。幸い保険に入っていたので安く(多分)新品と交換できたのですが、edyのチャージも消えて、まあしょうがないかと諦めました。ドコモショップに持っていけば復旧サービスがあるらしいのですが、どれ位助かるかは保証無しで有料、交換品到着1週間後には壊れた携帯を送り返さなければいけないとかで、面倒なので止めました。それ以来新幹線にも乗らないので気付きませんでした、が始まりです。
さてエクスプレス予約の登録をしようとしたらIDの入力画面が出て、覚えていません。パスワードは毎回入力していたので覚えてました。どうしようと思ったら同じような人が沢山居るのか、IDを忘れた方は、と言う欄があり、カードを見ながらいくつかの質問に答えるとIDに番号が欄に入りました。それからパスワードを入力して次に進めますがそのままでは毎回IDを入れる必要があります。さてどうしようと思ったらIDの保存欄を発見。携帯にIDを登録するとお気に入りの頭に*が付いて無事完成。
ようやくエクスプレス予約の登録が完成です。
時刻表のiアプリはまだ。
どんどん表示が変わるので付いていくのが大変。

2010年9月23日木曜日

地雷

自民党をぶっ壊す、と叫んだ人は郵政民営化という地雷を仕掛けて消えました。
何年か経って、今頃効いてます。
地雷にするつもりは無くともよってたかって改善すれば大抵は改悪になります。

「どれほど悪い結果に終わったことでも、それがはじめられたそもそもの動機は善意によるものであった。」
と言う格言が2000年以上前からあります。
ですから、善意から始まってもフレキシブルな軌道修正が必要です。。
けれども秀才は記憶が良くて最初の動機は、とか言います。

2010年9月14日火曜日

グーグル嫌い

ソニー嫌い、MS(ゲーツ)嫌い、ハリウッド嫌い、
憎まれっ子世に憚る、の例え通りですが、グーグル嫌いはまだそんなでも無いのは何が理由かなと思います。ネットブック用にグーグルがOSを無償提供しています。使ったことが無いので意見は控えます。
グーグルの収益の8割は広告収入でOSの無償提供が広告収入にどうつながるのか、分かりません。
芸術作品の取引を考えると、制作者には某の収入ももたらさないのが普通でした。生きている間に作品の収入で潤った一流の芸術家はあまりいないようです。不遇の方が話としては面白いので、売れっ子の話は表に出てこないのかも知れません。

SHM-CD

SHM-CDとnormalの聞き比べ用の商品を買って、
引き出しにほったらかしになっているのを思い出しました。
聞き比べをして違う感じはするけどどちらが良いかはソース次第かなと思いました。
SHMがやかましい(元気)感じです。
刻印を見ると異なるスタンパーを使って成形していました。
ピットロゴをみると、カッティングをやり直しているのが分かります。
それでそのまま放って置いたのを思い出しました。
カッティングをやり直して居るので、疑問に思いデータの比較をしました。
CDからの取り込みと比較をする為の2つのソフトをネットから取り込み利用しました。
取り込みにはCD2WAVE32、比較には「音くらべ」です。
44.1、16bitで取り込みデータ比較の結果は完全一意でした。
比較ソフト確認のためにダンプソフトをこれもネットで探してgoat109を見つけました。
ほんの一部ですが一応ファイルの中を覗いてデータが同じか確認しました。
どうせなら同じ原盤を使っての比較サンプルなら良かったのに、と思います。
売り上げが上がればと言う不純な動機で作っているのですぐに止めるでしょう。
ネットを徘徊すると大抵の物は入手できる様です。
正しく動くかは運次第ですけど、便利になりました。
今頃気付くのは時代に取り残されている証拠です。

熱血教師

2年前の作文が有ったので。。

昨晩月9の新番組が始まりました。
高校が舞台になっていて懐かしい熱血教師が主役です。
その中で、生徒に君たちは何になりたいと詰問します。
けど、誰も答えません。進学が目標になっていて、良い大学、良い会社はなりたいものじゃない、と言ってにらめっこを始めます。たいした話にはなりそうもないなで寝ました。
で一晩経ってもう一度考えてみると、あのころ何かになりたいという気持ちが有ったかな、です。
物理学者にあこがれていた時期があり、それから誰もがあこがれるミュージシャン。学者も音楽家も才能が有りませんから、その後です、作家、料理人が漠然となりたいものに浮上しました。銀座の真ん中で裸になる勇気はないし、睡眠時間を削って働くのも自信が無いしで、結局サラリーマンになっちゃいました。

2010年9月3日金曜日

すいすい

クラシック以外ならMP3のHiBRがお勧めとの記事を読んだので、圧縮フォーマットに何を使おうか逡巡しました。がdefaultのAAC iTunes+plusで取り込むことにしました。クラシックは有りませんけど。お気に入りはせいぜい50アルバム位ですから、やり直してもいいかと。iTunesの起動停止もスムーズだし、CDの取り込みもストレス無しで進みます。ジャッケット画像の当たりが半分位なのには一寸がっかりですが、古いアルバムばかりなので、と諦めました。取り込んだファイルを転送するのが時間がかかるようで、多少ストレス気味。待っているだけで作業が無いからでしょう。

2010年9月1日水曜日

楽労、続2

ようやく無線LANでprinterが動くようになったので、次に進みました。
ノート換えるきっかけになったiTunesでCDの取り込みをして、同期に進むと、iPadは一台のiTunes限定なので前のiTunesで取り込んだコンテンツは・・と煩いことを言います。正規に取り込んだコンテンツ(ゲームですけど)は新しいiTunesにアップしてその他は消えました。
もともと間違えて入った物だからやり直せば良いかと。
なので、AACでのCDを取り込み作業をいつやろうかと。

まだまだ、使う準備は残っていて、楽しみです。(だいぶ嫌になってきたけど)
CADの、eclipseのと準備していたら、eclipseがHeliosになっていました。
やっとgalileoの快適さに馴れたのに、また楽労しそうです。

2010年8月31日火曜日

楽労、続

パソコンショップのメルマガをみてthinkpadの格安品を見つけてショップに。決して気に入ったカッコじゃ無いし、celelonのdualcore(1.8M)と250GのHDDは一寸不満ですが。進み気味の老眼を考えてキートップは黒地に白字、液晶は大きめ、BDはレコーダーを買う予定なので無しでも可。iTunesがまともに動けばいいやと購入を決めました。
持ち帰って開梱、初回設定の儀式をして無線LANに繋いで、さていろいろ設定をと思い先ずはprinterの設定です。取説ファイルからインストCDを出して光ドライブにセットしてさあinst開始。ところが最後の無線LANの設定でに間違えて失敗。パソコンだけの設定で良かったのですが、printerも設定のswをonして次へ行ったらパソコンとprinterをUSBで接続しなさいとの指示がでました。
変だなと思いつつUSBケーブルを持ってきてどこに挿すんだろうとprinterを移動したら、「printer error電源を入れ直せ」の指示がでて何度入れ直してもダメで、さてどうやって修理に出そうと悩んで一晩。
翌日電源を入れたら不思議まともに動きます。こわごわ再度instを実施、今度は間違えずにパソコンのみのswで接続の設定完。ようやく印刷できるようになりましたが、しばらくは恐々、印刷実行になりそうです。
余計な時間を費やしたのでCDの取り込みはまだ。
きちんと表示は読みなさいの例えでした。「羮に懲りてなますを吹く」のは数日で忘れちゃいますが。

楽労

変な苦労を楽しんでます。
現物をみたら欲しくなってiPadを買ってしまいました。
役に立たない、なかなかの優れものです。
iPadの起動にiTunesが必要と言うことでDLして起動したらiTunesStroeに連れて行かれてパスワードいれろとの指示です。AplleStoreでiPadを注文したときに設定したパスワードを受け付けてくれません。何度か登録を変更してもだめです。ようやく気付いたのが「アルファベット大文字が1つは必要です」の記載。ダメならダメで登録時に言ってよね、チェです。パスワードに大文字なんて使ったこと無いから。また設定を変更して、iTunesStoreから登録されましたのメール。
何とかiPadに名前が付いて動くようになりました。ところがiTunesを起動したノートは無茶遅くなって何も出来なくなりました。
翌日まで放置したけど遅さは変わらずで電源ボタンの長押しで強制終了しました。
メモリーウオークマンをATRAC128kで使っている関係で、ノートの圧縮オーディオは全部ATRACのはずなんですが、iTunesを動かしたときにいくつかのアルバムが取り込まれました。知らないうちにMPで取り込んでいたのかな、と?
お気に入りのCDがまだ沢山あるのですがiTunesを起動してまたと思うと乗り気がしません。
そこでノートを新調することにしました。
<続く>

2010年6月16日水曜日

ナンバープレース改訂版

その後、改訂や追加で遊んでいましたがほぼ終わりなので、公開します。eclipseを使っています。galileoになって使いやすくなりました。これが無料とはありがたいことです。入出力はJSPに任せて解析部分をjavaで作りました。test用にmain()を書いてあるのでeclipseで直接runできます。
*インデントが無くなって見づらくなりました。
/*
* ナンバープレースの解を探すプログラム
* HMIはJSPを使う
* 動作試験用にmain()で問題を解く

net で難問を探して解法を検討
2択の総当たりで解を探す。16528回 306:2択やり直しで解
*/

package numb;

import java.text.DecimalFormat;

public class NumAa {

int[][] numb;//問題
int[][] numr = new int[9][9];//解析用
int[][] numc = new int[9][9];//変化の比較用
int[][] numsave = new int[9][9];//numrの待避用
int[][][] result = new int[9][9][9];//セル毎の予測値
int[][][] resultsave = new int[9][9][9];//resultの待避用

int[] mark;//判定用のマーク

int count=0;//loopカウンター
int b,c;//blank compare
int e,e1,e2;//error check
int p,q,r,s;
int i,j,k;

int[][][] jph = new int[500][9][9];
int h;//jph:page number
int f;//insert number
int ss;
boolean sf;

public int[][] NumAc(int[][] numb){

//問題を解析用と比較用にコピー
for (i=0; i<9; i++)
for (j=0; j<9; j++)
numc[i][j] = numr[i][j] = numb[i][j];
//分岐履歴をクリアー
for (i=0; i<81; i++)
for (j=0; j<9; j++)
for (k=0; k<9; k++)
jph[i][j][k] = 0;
f=h=0;

//問題を表示
qdsp();

anal:
do{
// System.out.println("\nloop:"+ count);//回数表示
rescl();//resultをクリアー
numan();//解析
// resdsp();//結果表示

for (p=0; p<9; p++){
for (q=0; q<9; q++){
for (s=r=0; r<9; ++r)
if (result[p][q][r] != 0) s++;
//候補が1つ
if (s==1){
//System.out.println("\ns1loop:"+ count);//回数表示
numr[p][q] = result[p][q][0];
//System.out.println(">>decide["+ p +"]["+ q +"]"+numr[p][q]);
rescl();//resultをクリアー
numan();//解析
//e = numchk(1);//矛盾検査(表示無し)結果をeに
//変化をチェック、ブランクを計数&解析結果を比較用にコピー
compr();
continue anal;//do while loopを最初から

}//s1 block
}//q loop
}//p loop

for (p=0; p<9; p++){
for (q=0; q<9; q++){
for (s=r=0; r<9; ++r)
if (result[p][q][r] != 0) s++;
//候補が2つ
if (s==2){
System.out.println("\ns2loop:"+ count);//回数表示

ss = (h>>>f) % 2;//hの数値のfbit目をssへ
if(ss == 0) sf = true;
else sf=false;

if(sf) numr[p][q] = result[p][q][0];
else numr[p][q] = result[p][q][1];

jph[h][p][q] = ++f;
System.out.println(">>decide["+ p +"]["+ q +"]"+numr[p][q]+" f="+ f);
rescl();//resultをクリアー
numan();//解析
//e = numchk(0);//矛盾検査(表示付き)結果をeに
//resdsp();//結果表示
//変化をチェック、ブランクを計数&解析結果を比較用にコピー
compr();
continue anal;//do while loopを最初から

}//s=2 block
}//q loop
}//p loop
// jphdsp();
compr();//変化をチェック
System.out.println("\nc,b="+c+","+b);
if (c==81 && b!=0){//変化は無いけれどブランクが残っている
System.out.print("\n//再度"+h);
for (i=0; i<9; i++)
for (j=0; j<9; j++)
numc[i][j] = numr[i][j] = numb[i][j];
//問題を表示
qdsp();
if (h<500) h++;
f=0;
}
}while ((count++ < 30000) && (b != 0) && (h < 500));//制限回数以下、まだ終わっていない
//continueでanalへ飛ぶがwhileの条件は有効!

resdsp();//結果表示
numchk(0);//結果検査&表示
// jphdsp();//履歴表示

System.out.print("\ncount="+count+" blank="+b+" page="+h);
return numr;
}

//
//履歴表示
void jphdsp(){
int i,j,k;
// double n;
// String fn;

DecimalFormat df = new DecimalFormat("00");
System.out.print("\n履歴を表示\n");
for (i=0; i<9; i++){
for (j=0; j<=h; j++){
for(k=0; k<9; k++){
// fn = String.valueOf(jph[j][i][k]);
// n = Double.parseDouble(fn);
System.out.print(df.format(Double.parseDouble(String.valueOf(jph[j][i][k]))) +",");
}
System.out.print("|");
}
System.out.print("\n");
}
}

//矛盾検査
int numchk(int f){
int[] markc = new int[10];
int i,j,k;
int[][] e = new int[6][9];

for (i=0; i<6; i++){//判定結果をクリアー
for (j=0; j<9; j++){
e[i][j] = 0;
}
}
//行判定
for (j=0; j<9; j++){//行選択
for (i=0; i<10; i++)//判定用のmarkc[0..9]に0-9を入れる
markc[i] = i;
for (i=0; i<9; i++){
if (numr[j][i] == 0){//ブランクをカウント
e[0][j]++;
}
else {//ブランクで無ければ
if (markc[numr[j][i]] == 0)//0が書いてあれば
e[3][j]++; //だぶり
markc[numr[j][i]] = 0;
}
}
}
//列判定
for (j=0; j<9; j++){//列選択
for (i=0; i<10; i++)//判定用のmarkc[0..9]に0-9を入れる
markc[i] = i;
for (i=0; i<9; i++){
if (numr[i][j] == 0){
e[1][j]++;
}
else {
if (markc[numr[i][j]] == 0)//0が書いてあれば
e[4][j]++; //だぶり
markc[numr[i][j]] = 0;
}
}
}
//ブロック判定
for (j=0; j<9; j++){//ブロック選択
for (i=0; i<10; i++)//判定用のmarkc[0..9]に0-9を入れる
markc[i] = i;
for (i=0; i<9; i++){

//j i 0 1 2 3 4 5 6 7 8
//0: 00 01 02 10 11 12 20 21 22
//1: 03 04 05 13 14 15 23 24 25
//2: 06 07 08 16 17 18 26 27 28
//3: 30 31 32 40 41 42 50 51 52
//4: 33 34 35 43 44 45 53 54 55
//5: 36 37 38 46 47 48 56 57 58
//6: 60 61 62 70 71 72 80 81 82
//7: 63 64 65 73 74 75 83 84 85
//8: 66 67 68 76 77 78 86 87 88

//j/3*3 0,0,0,3,3,3,6,6,6
//j%3*3 0,3,6,0,3,6,0,3,6

//i/3 0,0,0,1,1,1,2,2,2
//i%3 0,1,2,0,1,2,0,1,2

if (numr[j/3*3+i/3][j%3*3+i%3] == 0) {
e[2][j]++;

}
else {
if (markc[numr[j/3*3+i/3][j%3*3+i%3]] == 0)//0が書いてあれば
e[5][j]++; //だぶり
markc[numr[j/3*3+i/3][j%3*3+i%3]] = 0;
}
}
}
if(f == 0){
System.out.print("\n矛盾検査:");
for (i=0; i<6; i++){
k=0;
System.out.print(" ");
for (j=0; j<9; j++){
System.out.print(e[i][j]);
k=k+e[i][j];
}
System.out.print(":"+k);
}
System.out.print("\n");
}
k=0;
for (i=3; i<6; i++){
for (j=0; j<9; j++){
k=k+e[i][j];
}
}
return k;
}

//問題表示
void qdsp(){
int i,j;
System.out.println("\n問題を表示");
for (i=0; i<9; i++){
for (j=0; j<9; j++)
System.out.print(numr[i][j]+",");
System.out.print("\n");
}
}
//結果表示
void resdsp(){
int i,j,k,l;
// System.out.println("\n結果表示");
for (i=0; i<9; i++){
for (j=0; j<9; j++)
System.out.print(numr[i][j]+",");
System.out.print("..");
for (j=0; j<9; j++){
System.out.print("/");
l=0;
for (k=0; k<9; k++){
if (result[i][j][k] != 0){
System.out.print(result[i][j][k]+".");
l++;
}
}
System.out.print("("+l+")");
}
System.out.print("\n");
}
System.out.print("\n");
}
//結果の配列をクリアー
void rescl(){
int i,j,k;
// System.out.println("結果の配列をクリアー");
for (i=0; i<9; i++)
for (j=0; j<9; j++)
for (k=0; k<9; k++)
result[i][j][k]=0;
}
//結果の配列を待避
void ressav(){
int i,j,k;
for (i=0; i<9; i++)
for (j=0; j<9; j++)
for (k=0; k<9; k++)
resultsave[i][j][k]=result[i][j][k];
}
//待避した結果の配列を戻す
void resvcal(){
int i,j,k;
for (i=0; i<9; i++)
for (j=0; j<9; j++)
for (k=0; k<9; k++)
result[i][j][k]=resultsave[i][j][k];
}
//解析用の配列を待避
void numsav(){
int i,j;
for (i=0; i<9; i++)
for (j=0; j<9; j++)
numsave[i][j]=numr[i][j];
}
//待避した解析用の配列を戻す
void numvcal(){
int i,j;
for (i=0; i<9; i++)
for (j=0; j<9; j++)
numr[i][j]=numsave[i][j];
}
//変化をチェック、ブランクを計数&解析結果を比較用にコピー
void compr(){
int i,j;
// System.out.println("変化をチェック、解析結果を比較用にコピー");
b=c=0;//b=0でブランクが無し、c=81で変化無し
for (i=0; i<9; i++)
for (j=0; j<9; j++){
if (numc[i][j] == numr[i][j])
c++;
if (numr[i][j] == 0)
b++;
}

for (i=0; i<9; i++)
for (j=0; j<9; j++)
numc[i][j] = numr[i][j];
}

//numrを解析して候補をresultに書く
void numan(){

int[] mark = new int[10];//判定用のマーク
int m,n,o;
int i;

for (m=0; m<9; m++)//行を指示
for (n=0; n<9; n++)//列を指示
if (numr[m][n] == 0){//評価数値が0なら判定作業
for (i=0; i<10; i++)//判定用のmark[0..9]に0-9を入れる
mark[i] = i;
//行判定
for (i=0; i<9; i++)//markの該当位置に0を入力
mark[numr[m][i]]=0;
//列判定
for (i=0; i<9; i++)//markの該当箇所に0を入力
mark[numr[i][n]]=0;
//ブロック判定
for (i=0; i<9; i++)//数値が有ればmarkの該当箇所に0を入力
mark[numr[m/3*3+i/3][n/3*3+i%3]]=0;
//推定される数値の数が1なら確定
for (o=i=0; i<10; i++)//マークの空白=0以外を数える
if (mark[i] != 0)
result[m][n][o++]=mark[i];
}//判定
//n-loop
//m-loop
}

//動作試験用
public static void main(String[] args){
int[][] numb = {
{0,2,0,0,0,0,0,7,0},
{1,0,0,0,4,0,0,0,2},
{0,0,3,0,8,0,4,0,0},
{0,0,0,4,0,6,0,0,0},
{0,9,4,0,0,0,2,3,0},
{0,0,0,3,0,8,0,0,0},
{0,0,5,0,6,0,8,0,0},
{2,0,0,0,3,0,0,0,4},
{0,7,0,0,0,0,0,5,0}};


NumAa num = new NumAa();
num.NumAc(numb);

}

}

2010年4月13日火曜日

教師適齢期

教育は息の長い仕事です。しかも一人一人の旬が短い。小学校の時にどのような教師と巡り会うか、中学は、高校は、教師との巡り会いはとても大切ですが、孟母三遷のような訳にはいきません。博打になっても仕方がないかと諦めが多いのではと思います。子供の年齢・性格で適した教師像は変わります。人格形成に大切な小学校の教師には30から50に年齢制限を設けるべきでしょう。親より若い教師に子供を教育させるのは間違いです。祖父母の年齢の教師ではこれまた体力が着いて行けない。30前は大学で教鞭を執ること。大学生の年齢になれば教師に曲げられる恐れも少なくなっています。

教育制度改革の揺れ戻しが話題ですが、ゆとり教育で育てられた教師が教鞭を執って育てる子供は、どう育つか。90年代のゆとり教育を経験した小学生が育ち教育現場の最前線に立ちます。今更あのゆとり教育は、と言っても育ってしまった大人は子供には還れません。

定年まで勤めてさようならの公務員に教育の根幹を任せるのは間違いだけど、政治家がもっと長期的な目を養わないと。手当金をばらまく政治家に投票している人達にも責任は有るかもです。

2010年4月9日金曜日

合掌

友人が永眠しました。
出会ってから33年が経ちます。時々道が交差することもありましたがほとんどは付かず離れずでした。
工場に配属の同期です。同じレコード関連ですが、彼は原材料、私は検査機、が仕事でした。
入社当時、仕事以外は何でも一緒、放課後の遊びも晩飯も、洗濯機を持っていた彼のところに洗濯物を持って厄介になりました。
終業ベルを待ってタイムレコーダーをガチャン、で会社を飛び出してスケボーに。
朝私を起こすのも彼の役目でした。

VHDを始めて半年たったら今度はCDをやると突然の進路変更です。
原盤を製作する為の準備で彼がいろいろな装置をでっち上げました。
私は規格書を読んで測定機を作るのが担当でした。
本社には巨頭が沢山いましたが、
皆さんはLDの仕事が忙しくCDに関しては勝手にやらせてもらった感じです。
82年の発売後、手書きのスタンパー刻印の代わりのプリンターを作ることになり、メカの設計を彼が行い
御殿場の工場にも納入しました。同じ装置に携わった少ない一こまです。
その後米国で製造することになりそのための準備でてんやわんやの忙しさに。
彼は7人の赴任者の一員で現地にアパートを借りました。
私は出張で長逗留、一緒にナイアガラ、ディズニーワールド、ラスベガス等々。
生まれたばかりの赤ん坊を連れて奥さんが空港に到着したのを出迎えました。
多分その後息子さんに会ったのは先日の病院でになります。
85年テッドターナーの買収騒ぎがあり、資金調達の為に米国の工場は日本の会社に買われました。
居残ったのは2人、その他は日本に帰って、今度は欧州の工場の立ち上げに関わりました。
彼が日本で借りていた住宅を私が引き継いで借りました。
米国帰任で持ってきた大きなテーブル、椅子付きを餞別代わりに買い取りました。
89年インラインのCD製造装置を作りました、彼も担当するはずだったのですが、
帰任した彼はマスタリングのインライン装置の方に携わります。
翌年90年、最初の発病で入院しました。
93年の子会社設立から同じ穴の狢になりました。
遊び仲間復活です。地球1周の出張も一緒の時がありました。
サンフランシスコに出張したときレンタカーでヨセミテ経由でロスまでドライブしました。
後部座席で楽をして、そのときの拾った松ぼっくりが残っています。
それ以来何度もの危機を乗り越えて今に至りますから今度も大丈夫と思っていたのですが。