増補改訂版Java言語で学ぶデザインパターン入門
オブジェクト指向のデザインパターンをやさしい表現で本格的に説明。内容が入門となっているが,デザインパターンをしっかり勉強できる。堅苦しくなく,とても親しみやすい表現が使われている。
Javaの勉強にも適している。特にインターフェイスを勉強するのにもとっても適している。
増補改訂版Java言語で学ぶデザインパターン入門
オブジェクト指向のデザインパターンをやさしい表現で本格的に説明。内容が入門となっているが,デザインパターンをしっかり勉強できる。堅苦しくなく,とても親しみやすい表現が使われている。
Javaの勉強にも適している。特にインターフェイスを勉強するのにもとっても適している。
京都コンピュータ学院の資料請求Webページの
https://support.kcg.ac.jp/kcg/apply.cgi
郵便番号から住所へ変換を以前作りました。
これについて。
この手のプログラムは,ほとんど別ウインドウが出てきて,確認のクリックを行う。
また,完全に一致するものしか,表示しないものが多い。JavaScriptが使えないとだめな場合が多い。
外部サービスはセキュリティ的に心配。
なので,独自ですることに。
ただ,作るからには,性能的に劣るものを作るのは,意味がないので色々工夫をする。
仕様:
・郵便番号が不完全や少しの間違いでも,ある程度の住所を表示する。
・JavaScriptは使わない。
・別ウインドウは使わない。
・1ページでやるけど,入力済みの他データが途中で消えたりしない
・番地入力わすれをしないように工夫する。
自動で出てくると,住所を全部いれた気分になりやすく,
番地をいれない人が多い。その対策もしておく。
方法:
変換データは以下から自由に入手できる。
http://www.post.japanpost.jp/zipcode/download.html
このデータをプログラムで加工して,
高速処理できるように最適化してから使います。
(必要な部分だけ取り出したCSVを生成するだけですが。)
さらに単純に一致する郵便番号を探すだけではなく,
微妙に間違えたり,一部しか郵便番号を入れていない場合でも,
近い郵便番号を探して出力しています。
たとえば,601-8407を入力すれば
601-8407の7桁 で検索し,あれば,それをなければ以下を処理
最後の2桁を00に書き換えるもしくは,601-84 の様に最後の2桁が
ない場合は,00を付け加えて,再度検索。
601-8400の5桁+00 で,後ろの2桁を00に書き換えて検索。
601-84 とか 601-8499 の様に下2桁を間違えても,ある程度対応し,
近い住所を表示する。
これでも見つからない場合は,
後ろの4桁を0000にして,同様に検索。
601-0000の3桁+0000
最初の3桁しか入力しないとか,後ろの4桁が間違っている場合に対応。
これでも見つからない場合は,発見できないと表示します。
秘伝C言語問答 ポインタ編
C言語を勉強していて,おそらく一番理解しにくいのがポインタ。
機械語やマクロアセンブラを使ったことがない人は,ほとんどこれで分からなくなるか,間違った使い方をしている。
使い方を間違えると,「不正な処理で異常終了」とか,「アクセス違反で異常終了」とかシステムにダメージを与えるプログラムとなってしまいます。とても危険です。
なんとなくしか理解していない人はこれを読むと理解が進みます!
KCGのサマーコースの某授業を担当することになったので,準備を始めました。
サマーコースは短い期間に連続で授業があるので,短い期間に連続だからこそ出来る方法とか,受講者のモチベーションをいかに下げないかを現在考えています・・・。
ETロボコンの本選の結果について
今回,2回ともリタイアしてしまいました。
とても,残念です。
コースやルールは予選と本選は同じです。
でも,本選の全体の完走率は約50%ぐらい。
これは,全員予選を突破している人たちの完走率なので,本来ならば,完走率は100%になっているはず。
どうしてでしょうか?
光の環境の問題?
いえいえ。
今回は,光の状態は比較的安定していたので,あまり問題にはならなかった。(光が原因で失敗しているチームもいることはいましたが・・。)
また,予選から本選の間に若干時間があったので,予選のときよりもプログラムを改良しているはず。
なのに,完走率が低いのは?
考えられる理由は:
1.予選では,「挑戦的な走り」をしていなかったのが本選では「挑戦的な走り」に変更して見事に失敗した。
2.たまたまキャリブレーションを失敗した。
3.本選環境に適応できなかった。
のどれかでしょう。
で,私たちのチームはというと,1のパターンに思いっきりはまっています。
単純に走行し速く走るのもよいですが,やはりやるならば難所の突破を目指そうとか,色々挑戦しようとしたために,組み合わせていったときに,不具合やバグなどが出てきてしまったみたいです。
ETロボコンの本選に参加しました。
台風がきているというのに全50チーム参加していました。
このETロボコンの様子は動画でインターネット配信されるそうです。
詳しい状況はそちらでチェックしてください。
気になる私たちのチームですが,2回ともトラブルでリタイア(;;
残念ながら,うまくいきませんでした。
詳しい説明(いいわけ?)はまた帰ってから書こうと思います。
さて,当日,驚くべきことがおきました。
2位と3位が完全に同タイムとなってしまい,審査員の方々があわただしく(半ば混乱)してしまい,急遽サドンデス方式の再レースをすることとなりました。
そんなことってあるんですねぇ・・・。
また,明日もあるので,今日は寝ますって,日にち変わっている。。。現在午前2時30分です。起きれるかな・・・。
明日は本選です。
詳細なスケジュールはこちら:http://www.etrobo.jp/game.html
私たちのチームはこんな感じのレゴがレースを走ります。
学生と相談してラベルや旗をもう少し調整する予定です。
まもなく新幹線で東京へ出発します。
台風の影響が少し心配です。
もちろん,明日の本選の方が心配です。
上手くいけるでしょうか。
本選のコース環境と開発・練習コース環境は,明るさが結構違います。ライントレースロボットでは,この明るさの加減や,場所による明るさのムラにとても弱いので,ソフトウエアでいかにカバーできるか,または,いかに上手くキャリブレーション(光センサーの黒白灰色の値の閾値設定作業)が出来るかに,かかっています。
つまり,練習コースで上手く出来ても,本番コースでは全然だめな場合も珍しくないです。
仮にプログラムが完璧でも,キャリブレーションを失敗すると,正常に走れません。
レゴは,全体的にロボットとしての基本性能が低いので,ソフトウエアの方で一生懸命カバーしてやらないと,いけません。
それゆえに,ソフトウエアの技術力が問われる競技となっています。
また,光の状態は時間が経過すると微妙に変化するので,光の状態が良い時と悪いときがあります。勝つには運も必要です。
本選まで まともに作業が出来るのは今日が最後
明日の夕方から出発しなければならない。
なぜなら土曜日朝からあるからである。
つまり,最後の調整作業を終わらせなければならない。