Info

Archive for

会社の仕事でもプライベートでもIEを使ってます、最近FireFoxとかいろんなブラウザが出てるけど、やっぱりスタンダードがいいと思って、慣れたし(Microsoftにはあんまり好感を持ってないが…)。

無料スペースで個人ホームページ開設して半年、今日始めてFireFoxで見てみたが、これ何?テーブルが全部崩れてるじゃ!トップページのFlash時計もあんなにでっかくなってるし、ショックだな。たぶんFireFoxだけがそうなってるでしょう?と思ってOperaをインストールして見てみたがFireFoxと同じ、マジで!Netscapeで試してみよう、やっぱり同じだった、これは何なの? 3:1 でIEが負けてる。

w3c標準のHTML、CSSを使ってないから?FireFoxとOperaなどの次のバージョンでは対応してくれるかな?

ページ数が少なかったら修正したいと思ってた、今のページ数で全部修正するのは結構の工数だ。

とりあえずはほっときます!(本当に暇なときになったら、考えよう。工数は増えるいっぽうだが)

Advertisements

“Javaの勉強方法に関して教えてくれよ” と友達から言われましたが、”そういわれてもな~” の感じなんだけど、勉強方法とかは人それぞれ。少なくとも2種類に分けられると思います。

第一種類:

 教科書に書いてある理論的なものを見て自分でじっくり考えて、なぜそうなるのかを理解してから、手を動かしてソースコードを書くタイプ、要するに理解が先。

第二種類:

 教科書とか資料などは見たくない、とりあえず手を動かしてソースコードを書いて実行して見る、サンプルソースのあっちこっちを弄って動かして見ながらエラーが出た場合はそれに関しての原因を調べるために資料とかをみて理解するタイプ、要するに手を動かすのが先。

自分の場合は、場合によって違いますが、時間に余裕がある場合は第一種類を取ります、ちゃんと理解できてればサンプルソースとか見なくても、書けるようになると思います、サンプルよりそれ以上のセンスのいいソースコード。理解するのが基本中の基本。

時間に余裕がない、例えば、来週までにあれを終わらないといけない場合は、第二種類を取ります、第一種類に比べると効率がよいというか、サンプルをいじまくって自分の目的を達成するので時間をそんなに掛けなくて済むと思います。

おまけに、中国語では「照芦葫画瓢」という言葉があります。「芦葫」を見て「瓢」を画く意味で、第二種類はこれに当てはまると思います。

それぞれメリットとデメリットがありますが、自分にあう方法を取ってればいいと思います。

2つのデータリストを比較して完全一致するかどうか、一致してなかった場合はそのデータを出力するような処理方法はいろいろあると思いますが、アルゴリズムによって処理速度の差が生じます。

頭に浮かびやすい方法は片方(左)から一つのデータ取得、もう一方(右)のデータをループして左から取得したデータと比較し処理を行う、一致されたデータを何らかの方法でリストから削除する。全件検索して一致されなかった場合はそのデータを出力して次のデータを取り出して比較処理を行う。

下にあるJavaコードも2つのデータリスト(ArrayList)から完全一致チェックを行い、不一致項目を出力するプログラムです。この処理は上の処理とは違って片方を中心にして処理するではなく、添え字を操作して処理を行います。


/* * Copyright (C) footmark All rights reserved. * * Matchinger.java */ import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * マッチングクラス * * @author dongrikin@gmail.com */ public class Matchinger { public static void main(String[] args) { ArrayList left = new ArrayList(); left.add("A"); left.add("1"); left.add("B"); left.add("2"); ArrayList right = new ArrayList(); right.add("1"); right.add("3"); right.add("A"); right.add("2"); if(checkUnmatch(left, right)){ System.err.println("アンマッチ"); }else{ System.err.println("マッチ成功"); } } /** * チェック処理処理 * @param lL 左側リスト * @param lR 右側リスト * @return unmatch アンマッチフラグ */ public static boolean checkUnmatch(List lL, List lR){ //ソート Collections.sort(lL); Collections.sort(lR); //アンマッチフラグ初期化 boolean unmatch = false; int lsize = lL.size(); int rsize = lR.size(); //項目値初期化 String cnL = null; String cnR = null; int comp = 0, idxR = 0, idxL = 0; while(true){ //両側共に未完 if ( idxL < lsize && idxR < rsize ){ cnL = (String)lL.get(idxL); cnR = (String)lR.get(idxR); comp = cnL.compareTo(cnR); //両側共に完了 }else if ( idxL >= lsize && idxR >= rsize ){ break; //左側完了 }else if (idxL >= lsize){ cnR = (String)lR.get(idxR); comp=1; //右完了 }else if( idxR >= rsize ){ cnL = (String)lL.get(idxL); comp=-1; } //比較結果によって添え字操作 if (comp==0){ idxL++;idxR++; }else if (comp>0){ idxR++; unmatch=true; System.err.println("R-"+cnR); }else if (comp<0){ idxL++; unmatch=true; System.err.println("L-"+cnL); } } return unmatch; } }

人民元対日本円のレートが知りたくて、Googleで”為替”で検索したところYahoo!ファイナンスが一番目にヒット。

Yahoo!ファイナンス-外国為替レート表
http://quote.yahoo.co.jp/m3?u

見てみると香港ドル、台湾ドル、韓国ウォンなどはありますが、人民元がない。なぜ人民元がないの?
Google検索に戻ってほかにヒットしたものを見ると 為替計算機 中国情報局 などがあった。

次に別のキーワードで検索、今度は”為替 人民元”で。今度もYahooファイナンスが一番目ヒットした、しかも”Yahoo!ファイナンス – 外国為替換算”のタイトルで、クリックしてみると http://quote.yahoo.co.jp/m5?a=100&s=JPY&t=CNY コードが”JPYCNY=X”、日本円がJPYで人民元がCNY、取引レートも0.7で合ってるみたい、しかし下のプルダウンには日本円対アメリカドル、やっぱり人民元の項目がなかった。URLのm5?a=100&s=JPY&t=CNYしか見てないらしい。

いたずらで a=100000000… 非常に大きい数字でアクセスしてみたら、人民元に数字が変わらなくなった。エラーとかメッセージが出ると思ったが….