2012年7月
2012年7月30日(月曜日)
JavaScript勉強会 五回目の課題
公開: 2012年8月14日23時15分頃
「ツッコミながらスクラムで学ぶ JavaScript勉強会」、第五回目の課題。今回の範囲はLecture1-9~Lecture1-10 (テキストの74ページ~79ページ) となります。今回は配列と連想配列の話になるのですが、どうなることやら。
第五回目の課題
課題 5-1: 前回の振り返りと感想 (基本課題)
7月27日の勉強会の内容を振り返って、簡単に感想を書いてください。当日参加できなかった方は、ほかの人が提出した課題を見て、それについての感想を書いてください。内容は自由としますが、以下のような内容を含めることを推奨します。
- 良くわからなかったこと、疑問に思ったこと
- 議論したいこと
長く書く必要はありませんが、議論したいポイントがあれば、突っ込んだ質問などを書いていただいてもOKです。
課題 5-2: 前回の応用 (チャレンジ課題)
掛け算の「九九」の表を、JavaScriptを使って出力してください。
また、コードを書くときに考えたこと、工夫したことなどを書いてください。
課題 5-3: Lecture1-9~Lecture1-10を読んで (基本課題)
テキストの74ページ~79ページを読んで、以下の点について述べてください。
- 読んだ範囲についての感想
- 分からなかった点、疑問点、質問したい点など
課題 5-4: 今回の範囲の練習 (基本課題)
76ページの練習問題をやってみてください。ただし、option要素のvalue属性の値は、JIS X 0401で規定されている都道府県コードに対応する整数とします。具体的には、以下のようになります。
- 1:北海道
- 2:青森県
- 3:岩手県
- 4:宮城県
- 5:秋田県
- 6:山形県
- 7:福島県
- 8:茨城県
- 9:栃木県
- 10:群馬県
- 11:埼玉県
- 12:千葉県
- 13:東京都
- 14:神奈川県
- 15:新潟県
- 16:富山県
- 17:石川県
- 18:福井県
- 19:山梨県
- 20:長野県
- 21:岐阜県
- 22:静岡県
- 23:愛知県
- 24:三重県
- 25:滋賀県
- 26:京都府
- 27:大阪府
- 28:兵庫県
- 29:奈良県
- 30:和歌山県
- 31:鳥取県
- 32:島根県
- 33:岡山県
- 34:広島県
- 35:山口県
- 36:徳島県
- 37:香川県
- 38:愛媛県
- 39:高知県
- 40:福岡県
- 41:佐賀県
- 42:長崎県
- 43:熊本県
- 44:大分県
- 45:宮崎県
- 46:鹿児島県
- 47:沖縄県
また、コードを書くときに考えたこと、工夫したことなどを書いてください。
Lecture1-9~Lecture1-10はどうなの? (チャレンジ課題)
テキストの74ページ~79ページを読んで、説明が不適切な点、説明が不足していると感じる点などを指摘してください。
また、可能であれば適切で分かりやすい説明を試みてください。
- 「JavaScript勉強会 五回目の課題」にコメントを書く
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
2012年7月29日(日曜日)
カルチョビット 6年目 三冠制覇
公開: 2012年8月12日12時20分頃
「ポケットサッカーリーグ カルチョビット (www.amazon.co.jp)」。
6年目。昨年はN1リーグで2位でしたが、今年の目標はもちろん優勝。さらに、今年はアジアチャレンジトロフィーの出場権を得ています。ここで優勝すればワールドカルチョクラシックに出場できます。
このゲームの大きな目標は、N1リーグ、ジャパンカップ、そしてワールドカルチョクラシックの三冠制覇。今年はその三冠制覇の可能性があるわけです。
シーズンの滑り出しは快調で、N1リーグは優勝確実の流れに。
問題はアジアチャレンジトロフィーです。アジアチャレンジトロフィーは、参加8チーム。それを4チームずつ2つのグループに分けてのリーク予選を行い、それぞれの優勝者同士が決勝戦を行います。
うちの予選リーグの対戦相手はスジョンガ(韓国)、バクラワ(トルコ?)、ミルザガセミ(イラン?)の3チームですが、どれも強敵。特に二戦目のバクラワは選手の能力値がやたら高く、フォワードのワルドナーは SSSASSS という鬼のような強さ。海外チームはたいていの選手がフィジカルSだったりもします。アジアチャレンジトロフィー初参加で勝つのは無理かな……と思っていたのですが、ふたを開けてみると……。
- スジョンガ戦: 2-0 で勝利 (ゴールシーン: 後半30分 得点:ちひろ、アシスト:にしやま / ちひろ、追加点となるヘッド (calciobit.nintendo.co.jp))
- バクラワ戦: 4-1 で勝利 (ゴールシーン: 前半21分 得点:やまざき、アシスト:よしの / よしののスルーパスに反応した、やまざきの先制パンチ (calciobit.nintendo.co.jp))
- ミルザガセミ戦: 7-1 で勝利 (ゴールシーン: 後半6分 得点:しょう / しょうのゴールで5点目 (calciobit.nintendo.co.jp))
まさかの圧勝。うちのチームはなぜか格上に強い傾向があるとは思っていたのですが、それにしても驚きの結果です。サポーターも驚いていましたが。
そして迎えた決勝戦、対するは中国の上海倶楽部。この結果がなんと、4-0で圧勝!
- 後半36分 得点:こじま、アシスト:しょうこじま、さらに差を広げるミドル (calciobit.nintendo.co.jp)
アジアチャレンジトロフィー優勝、ワールドカルチョクラシック進出です。この勢いで頂点を目指したいところです。
ワールドカルチョクラシックは8チームによるトーナメント戦です。準々決勝、および準決勝はホームとアウェーで1戦ずつして雌雄を決し、決勝戦は一発勝負となります。
結果は……。
- ACパンチェッタ戦 (アウェー) 2-1 (ゴールシーン: 後半27分 得点:よしの、アシスト:あゆみ / あゆみのスルーパスを、よしのがきっちり決めて決勝点 (calciobit.nintendo.co.jp))
- ACパンチェッタ戦 (ホーム) 2-0 (ゴールシーン: 前半27分 得点:あゆみ、アシスト:にしやま / にしやまからの正確なパスに、あゆみが滑りこんで先制 (calciobit.nintendo.co.jp))
- タラモサラタ戦 (アウェー) 3-1 (ゴールシーン: 後半18分 得点:りゅう、アシスト:やまざき / りゅう、追加点となるループ (calciobit.nintendo.co.jp))
- タラモサラタ戦 (ホーム) 1-1 (ゴールシーン: 前半17分 得点:あゆみ、アシスト:よしの / あゆみ、先制のミドル (calciobit.nintendo.co.jp))
連勝街道! 最後のタラモサラタ戦は引き分けていますが、前の対戦が 3-1 で勝っているので、合計 4-2 で勝利です。
そして迎えたワールドカルチョクラシック決勝。相手はアイスバイン(ドイツ)、能力値Sだらけの化け物ですが、こちらには勢いがある! そして……1-0で辛くも勝利!!
- アイスバイン戦 前半28分 得点:よしの / よしの、先制のループ (calciobit.nintendo.co.jp)
ワールドカルチョクラシック優勝です!
恒例のジャパンカップも特に苦もなく優勝、N1リーグも優勝。監督就任6年目にして、悲願の三冠制覇を達成することができました。
一応エンディングがあります。選手のリストや、今まで出したスペシャルメニューが出たりしますが、出したことのないスペシャルメニューは「?」になっていて、それが結構あったり。
エンディング後、キャピタル東京の監督にならないかとオファーがありましたが、即断。このチームをもう少し育てて、ネットワークランキング戦で活躍させたいと思います。
2012年7月28日(土曜日)
Newスーパーマリオブラザーズ2
公開: 2012年8月9日23時20分頃
発売日なので購入。
- Newスーパーマリオブラザーズ2 (www.amazon.co.jp)
ダウンロード版も出ていて、店頭で「ダウンロードカード」なるものが販売されています。しかし、これがなんとパッケージ版より明らかに高い! ダウンロード版にはソフトを差し替えなくてもプレイできるというメリットがありますが、それだけで高いやつを買うというのはちょっとないです。
というわけで、通常のパッケージ版を購入。
……なんというか、まあ、いつものマリオですね。ゴールドブロックとかゴールドマリオといった新要素はあるのですが、巨大マリオや複数人同時プレイを始めて見たときのような衝撃はありませんでした。つまらなくはないのですが、マンネリ感も否めないかも。
2012年7月27日(金曜日)
JavaScript勉強会 四回目
公開: 2012年8月7日23時0分頃
「ツッコミながらスクラムで学ぶ JavaScript勉強会」第四回が開催されました。なぜか社外からの参加者が増えて3人に。来るものは拒まず、面白ければOKという精神なので問題ありませんが、これは下手すると社内の参加者より社外の参加者の方が多くなるかも。
今回の範囲は、「よくわかるJavaScriptの教科書 (www.amazon.co.jp)」のLecture1-7~1-8の部分。いつものように、第四回目の課題を見ながらの進行です。
課題 4-1: 前回の振り返りと感想
前回を振り返っていろいろと。予約語についての議論が興味深かった、という感想が複数ありました。
あと、変態的なコードも含め、そのような実装にした意図を聞きたい、という意見が。これは非常に大切となところで、このあたりを深めると他の言語にも応用が利いたりするはずですよ。
課題 4-2: 前回の応用
現在の曜日と時刻を判定してメッセージを出し分けるプログラムを書く、というお題。
ifを入れ子にするかしないかで分かれるわけですが、以下のようなswitch文を使うといパターンが。
switch ( true ) {
case ( day === Days.MON || day === Days.TUE ) :
text = '木曜日までに課題を提出してください';
break;
case ( day === Days.WED ) :
text = '課題の提出は明日までです。未提出ならお早めに';
break;
……
}
最初意味がよく分からなかったのですが、switchに指定されたtrueと条件式の値とが比較されて動作するのですね。これはちょっとトリッキーな感じがしますが、使っている人は使っているらしいです。
課題 4-3: Lecture1-7~Lecture1-8を読んで
テキストを読んでもforとwhileをどう使い分けて良いのかよく分からなかった、という感想が複数の方から。
「whileとforの違いには悩まされることが多いです」「何ら違いはありません」などと書かれているのですが、どういうときにどちらを使うのかの説明が少し足りないのかもしれません。
課題 4-4: ドロップダウンリストを作る問題
テキストの練習問題そのまま。
単にselect要素とoption要素で10件のドロップダウンを作れば良いだけなので、そもそもJavaScriptで実装する必要性が全く感じられない課題です。10件が200件だとしても、べつにすぐにできますし。
それでも結構いろいろなやり方で実装した人がいましたが。
課題 4-5: 今回の範囲の練習
無限ループを使ってダイアログを出し続ける問題。
ifとwhileを使う人が多かったのですが、あえてforを使ってみたり、jQuery.deferredを使ってみたり。
課題 4-6: Lecture1-7~Lecture1-8はどうなの?
やはり、「whileとforの違いには悩まされることが多いです」「実際にはなんら違いはありません」という点を指摘した人が多かったようです。基本的には、繰り返し回数が事前にわかる場合はforを、繰り返し回数が不定の場合ややってみないと分からない場合はwhileを、という感じなのだろうと思います。
「JavaScript(というより大半のプログラム言語)には「○回繰り返す」ということを直接的に表現する構文がありません」と断言している部分に関しては、RubyのInteger#times (doc.ruby-lang.org)が話題になりました。これも厳密に言えばブロックつきメソッド呼び出しなのですが、そもそも著者が何を「直接的に表現」と言っているのかが分からないので何とも……。
あとは、select要素直下にscript要素を書くのはどうかという話。著者はマークアップにこだわりがあると思っていただけに、ここはちょっと残念でした。
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
2012年7月26日(木曜日)
ゆるゆり9
公開: 2011年8月5日12時10分頃
8巻に引き続き9巻も発売。
- ゆるゆり9 (www.amazon.co.jp)
限定版 (www.amazon.co.jp)もあるのですが、なぜか限定版は明日発売なので、早く読みたい人は通常版を買うしかないという……というところまで8巻と同じ。
内容も面白いのですが、この巻最大の衝撃はなんと言ってもアンケートはがき。アンケートの項目は作中キャラの口調で作られているのですが、今回のキャラは台詞が「……」しかない生徒会長。表の宛先は西垣先生による代弁でちゃんとしたものになっていますが、裏の質問項目は全て「……」としか書かれていないという。
定型の質問項目もあるので、今までのアンケートはがきを持っていれば何を訊いているのかは分かるのですが、定型でない質問はどうしようもないので、生徒会長への愛が問われるアンケートはがきとなっております。
2012年7月24日(火曜日)
カルチョビット 5年目 N1リーグ
公開: 2012年8月4日17時20分頃
「ポケットサッカーリーグ カルチョビット (www.amazon.co.jp)」。
5年目、ついに最高峰のN1リーグ。このリーグには12チームも所属していますが、各チームとは2戦ずつなので、全部で22試合。N2リーグよりも試合数は少ないです。最高峰なので優勝しても昇格はありませんが、上位2チームは翌年のアジアチャレンジトロフィーの出場権を獲得できます。
最高峰のリーグはさすがに厳しく、連敗で最下位からのスタートとなりました。最下位は自動降格、11位は入れ替え戦なので、なんとか10位には入りたいところです。
前半はビリ争いが続き、サポーターが「ホームで勝たずにどこで勝つ?」という垂れ幕を出す始末でしたが、中盤からは盛り返し、最終的にはなんと2位にまで浮上しました。優勝こそ逃したものの、来年のアジアチャレンジトロフィー出場権をゲット。選手の世代交代を少しずつ進めているのですが、それが功を奏しつつある感じでしょうか。
ちなみにジャパンカップは優勝どころか2回戦であっさり負けてしまい、早々に終了。おかげでN1リーグ終盤の調整がしやすかったとも言えますが。
2012年7月23日(月曜日)
JavaScript勉強会 四回目の課題
公開: 2012年8月4日10時30分頃
「ツッコミながらスクラムで学ぶ JavaScript勉強会」、第四回目の課題。
第四回目の課題
課題 4-1: 前回の振り返りと感想 (基本課題)
7月20日の勉強会の内容を振り返って、簡単に感想を書いてください。当日参加できなかった方は、ほかの人が提出した課題を見て、それについての感想を書いてください。 内容は自由としますが、以下のような内容を含めることを推奨します。
- 良くわからなかったこと、疑問に思ったこと
- 議論したいこと
長く書く必要はありませんが、議論したいポイントがあれば、突っ込んだ質問などを書いていただいてもOKです。
課題 4-2: 前回の応用 (チャレンジ課題)
ページにアクセスしたとき、以下のような動作をするプログラムを書いてください。
- 現在の日時を何らかの形で表示する (表示の形式や方法は問いません)
- 現在が月曜日か火曜日であれば、「木曜日までに課題を提出してください」と表示する
- 現在が水曜日であれば、「課題の提出は明日までです。未提出ならお早めに」と表示する
- 現在が木曜日で、かつ時刻が10:00より前であれば、「課題の提出は本日の10:00までです」と表示する
- 現在が木曜日で、かつ時刻が10:00以降であれば、「明日の9:00から勉強会です」と表示する
- 現在が金曜日で、かつ時刻が9:00より前であれば、「まもなく勉強会です」と表示する
※ヒント: Dateオブジェクトには getDate() と getDay() という似たような名前のメソッドがあって紛らわしいですね。
課題 4-3: Lecture1-7~Lecture1-8を読んで (基本課題)
テキストの66~73ページを読んで、以下の点について述べてください。
- 読んだ範囲についての感想
- 分からなかった点、疑問点、質問したい点など
課題 4-4: ドロップダウンリストを作る問題 (基本課題/おまけ)
p70に練習問題がありますので、自由な心で実装してみてください。
この課題はおまけですので、やらなくても構いません。
課題 4-5: 今回の範囲の練習 (基本課題)
以下のような動作をするプログラムを書いてみてください。
- ユーザーに「データを削除します。よろしいですか?」と質問し、OK/キャンセルのボタンを表示する
- 1.でユーザーが「OK」を押した場合、「データを削除しました」と表示する
- 1.でユーザーが「キャンセル」を押した場合、「データが破損し、ご利用いただけない状態になりました。ご利用規約に明記してありますとおり、賠償は行いませんのでご了承ください。ご了承いただけたら "OK" を押してください。」と表示し、OK/キャンセルのボタンを表示する
- 3.でユーザーが「キャンセル」を押した場合、もう一度 3. の処理をおこなう (ユーザーが「キャンセル」を押し続ける限り、何度でもこの処理を繰り返す)
- 3.もしくは4.でユーザーが「OK」を押した場合」、「ありがとうございました」と表示する
※JavaScriptを使ってください。
※何度でも繰り返す、という処理のヒントはテキストの66~70ページにあります。
次回はforとwhileが出てくるのですが、どうなることやら。
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
ゆるゆり8
公開: 2011年8月4日10時10分頃
8巻発売。
- ゆるゆり8 (www.amazon.co.jp)
限定版 (www.amazon.co.jp)もあるのですが、なぜか限定版は明日発売なので、早く読みたい人は通常版を買うしかないという。
生徒会組も着ぐるみパジャマパーティーとか。あかりのお面をつけた京子がコマに入らないとか。
一番笑ったのは、王様ゲームで京子が瀕死になりながら熊の物真似をするところ。もっとも、ちなつがあかねと出会うシーンのほうが印象には残りましたが……。
2012年7月21日(土曜日)
カルチョビット 4年目 N2リーグ優勝/ジャパンカップ優勝
公開: 2012年8月2日23時15分頃
「ポケットサッカーリーグ カルチョビット (www.amazon.co.jp)」。
4年目、N2リーグ。N2リーグは8チームですが、各チームと4戦ずつするので、リーグの公式試合は28試合もあります。スタメンの選手たちはほとんど休めません。このリーグで優勝すればN1に自動昇格、2位ならばN1リーグ11位のチームとの入れ替え戦になります。
我がチームは昇格したばかりなので、ここでは厳しい戦いを強いられる……と思いきや、なんと初戦から勝ちっぱなしで、ずっと1位をキープ。思った以上に力がついていたようです。
むしろ気になるのは選手たちのポテンシャルです。選手には個々に「POTENTIAL」という値があり、この値が高い方が成長しやすいということで、ポテンシャルが高い選手を育てていました。が、3年目の終わり頃から選手たちのポテンシャルが低下を始め、回復の兆しが見えず、下がり続けているのでした。逆に、元々ポテンシャルが低く、控えに甘んじいた選手のポテンシャルがいつの間にか上がっていたり……。
どうも選手たちには成長のピークがあるようです。最初はポテンシャルが低い状態で、緩やかに増加し、やがて最大になるとその状態がしばらく続き、その後は下がっていきます。ポテンシャルが下がりきると成長しないどころか能力が下がるようになるらしいので、つまりは選手生命には限りがあるということになりそうです。
リーグの方は割とあっさりと優勝が決まり、最終的には18勝7敗3分、得失点差+30という成績でした。7敗の大半はシーズン終盤の消化試合で、ジャパンカップに向けた調整のためにスタメンを休ませたりした結果です。
そのジャパンカップですが、3年目までは初戦でN1リーグのチームと組まされ、全く勝負にならずに敗退していました。今年は、1回戦の相手が同格で、問題なく勝利。
2戦目の相手は、N1リーグで7位の「富山ミラージオ」。格上の相手ですが、これがなんと4-1の大差で勝利!
- 富山ミラージオ戦 後半42分 得点:センリ、アシスト:しょう / しょうのシュート!リバウンドを、センリがきっちり決めて4点目 (calciobit.nintendo.co.jp)
3戦目は準々決勝。相手はN1リーグ2位の「京都ブロス」です。格上も格上、クラブの規模は最高の「名門クラブ」です。ちなみにこのチーム、あからさまに任天堂を意識していて、ユニフォームもマリオ、ルイージ、ファイアーマリオをイメージしたもので、ホームスタジアムのデザインもマリオのレンガをモチーフにしています。
そして、チーム規模に恥じない強さ! 日本代表で能力Sが複数ある「しらとり」「あさみ」「よつもと」選手が強く、特にゴールキーパーのよつもと選手はファインセーブを連発。「しらとり」「あさみ」もあっさり得点してきますが……こちらの選手も頑張って、4-3で辛くも勝利!
- 京都ブロス戦 後半24分 得点:りゅう、アシスト:よしの / よしのからの正確なパスに、りゅうが滑りこんで決勝点 (calciobit.nintendo.co.jp)
準決勝。相手はN1リーグで1位の「武蔵野ホーネッツ」。N1リーグで1位ということは、国内最強と言っても良いわけですが、なんとここでも3-1で勝利! サポーターの「涙で見えない」「来て良かった」「夢のようだ」という言葉に、監督の目からも汗が……。これぞまさにジャイアント・キリング。
- 武蔵野ホーネッツ戦 後半24分 得点:みずの、アシスト:たにぐち / たにぐちのスルーパスに反応した、みずののゴールで3点目 (calciobit.nintendo.co.jp)
そして迎えた決勝。相手の「つくば・ダ・ガマ」はN1リーグ3位です。先の二戦の相手よりも弱く見えるかもしれませんが、当然、相手の方が格上です。ここまで来ること自体が奇跡でしたが、まだ奇跡は終わらなかった……。
- つくば・ダ・ガマ戦 後半26分 得点:やまざき / やまざき、フリーキックを直接決めて追加点 (calciobit.nintendo.co.jp)
試合はなんと3-3の引き分け。勝負はPK戦にもつれ込み、ここで3-2! 我がチームの勝利、つまりジャパンカップ優勝です!
この活躍が評価されたのか、選手たちの年俸は軒並みアップ。しかしこちらの予算も増えている上に、ジャパンカップの賞金2500万円もあるので余裕ですよ。
2012年7月20日(金曜日)
JavaScript勉強会 三回目
公開: 2012年8月2日0時25分頃
「ツッコミながらスクラムで学ぶ JavaScript勉強会」第三回が開催されました。今回の範囲は、「よくわかるJavaScriptの教科書 (www.amazon.co.jp)」のLecture1-3~1-6の部分。
事前に第三回目の課題を出していたので、各人の課題を見ながら進行。
課題 3-1: 前回の振り返りと感想
前回を振り返っていろいろと。他人の書いた変態的なプログラムが参考になったとか、ツッコミが参考になったとかいろいろ。
課題 3-2: 前回の応用
前回の応用的なスクリプトを書く課題。
どのタイミングでキャンセルしてもキャンセル時のメッセージは同じなのですが、それを一箇所に書くようにした人、ばらばらに書いた人など。
課題 3-3: 目覚まし時計の問題
これはテキストの練習問題そのままなのですが、まず、仕様をどう読み解くかで分かれました。これは目覚ましだと言っているのですが、テキストの解答例ではF5を連打し続けなければアラートが出ないという実装になっています。これでは目覚ましとしては機能しません。寝ている人がF5を連打することはできないはずだからです。
というわけで、これはあり得ないだろうと考えた人は頑張ってオリジナルの実装をしてきました。中にはアドレスバーに時刻情報を入れるという変態実装も……。
課題 3-4: Lecture1-3~Lecture1-6を読んで
今回の範囲の感想や疑問ですが、最も多かったのは「===」について。「==」を説明せずに「===」だけを使うというポリシーのようですが、たいていの人は「==」のほうを見かけたことがあり、説明がないことに疑問を感じたようです。しかしそもそも「型」を説明していないので、その状態で説明するのは難しいと思いますが。
課題 3-5: Lecture1-3~Lecture1-6はどうなの?
今回はツッコミが多めですが、一部を紹介。
予約語の話
48ページに予約語のリストが出ていますが、不完全です。テキストに書かれていませんが、以下の語も予約語です。
- debugger
- class
- enum
- extends
- super
- const
- export
- import
ECMA-262の "7.6.1 Reserved Words" にリストがあるので、そのまま引用するだけで良いはずなのですが。
この話に関連して、"window" や "alert" は予約語ではないのか、という疑問が出ました。これらは言語仕様として予約されているわけではありませんが、ブラウザが使っているので、プログラマーが使おうとすると名前がバッティングしてしまいます。alertなどは使えないのではなく、あっさり上書きできてしまうので注意が必要です。windowやdocumentは上書きできませんが (IE8以前ではdocumentが上書きできたというのは有名な話ですが、IE9からできなくなりました)。
変数名の命名
51ページに変数の命名の話が出ています。ハイフンとアンダースコアを使い分けるとどちらなのか迷うと書かれているのですが、そもそもJavaScriptでは変数名にハイフンを使えませんので、迷う余地はありません。JavaScriptに限らず、たいていの言語ではハイフンは減算記号とみなされます。
おそらく、HTMLのクラス名の話と混同されたのではないでしょうか。
文字列連結
「文字列」という言葉は説明されていないのですが、「文字列連結」は登場。
「文字列連結とは……パラメータの中で連結するテクニック」とありますが、べつにパラメータ(引数)の中でなくても連結できます。
演算の優先順位
「前後をかっこで囲っているのは、それが演算であることを明確に示すため」とありますが、括弧の機能は算数で習うそれと同じで、演算の優先順位を示すものです。
テキストで示されている例は以下のようなものですが、
document.write('1年は' + (365*24) + '時間です')
実はこの場合は括弧がなくても問題なく動作します。もともと加算より乗算のほうが優先度が高いため、この括弧はなくても優先順位は変わりません。括弧の有無で結果が変わるのは以下のような例です。
document.write('6月~7月の日数は' + 30 + 31 + '日です');
この場合は文字列と30という数値との連結が先に行われ、結果として '6月~7月の日数は3031日です' という文字列になってしまいます。以下のように括弧をつけると、
document.write('6月~7月の日数は' + (30 + 31) + '日です');
優先順位が変わり、30+31という数値同士の加算が先に行われた後で文字列と連結されるため、意図通りに動作するようになります。
ようやくプログラムらしくなってきたところですが、目覚ましの練習問題などはいろいろな意味で厳しかったですね。
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
任天堂、パッケージソフトを同額でダウンロード販売
公開: 2012年7月29日16時15分頃
任天堂がパッケージソフトのダウンロード販売を始めるそうで。
- ニンテンドー3DSカードソフト ダウンロード版について (www.nintendo.co.jp)
バーチャルコンソールや、ダウンロード専用のソフトの販売などはありましたが、パッケージソフトとして販売されるものを同時にダウンロード販売する、という試みは今回が初のはずです。
※実はこの話はだいぶ前からあって、株主向けの説明はなされていましたし、クラブニンテンドーで予約登録したときも「パッケージ版・ダウンロード版」という表示があったので、既に知っていたわけですが。
「Newスーパーマリオブラザーズ 2 (www.amazon.co.jp)」と「東北大学加齢医学研究所 川島隆太教授監修 ものすごく脳を鍛える5分間の鬼トレーニング (www.amazon.co.jp)」がその対象なのですが、気になるのは値段。それがなんと……パッケージ版と同じ!?
普通に考えると、メディアのコストがかからない分、安くできて良いはずです。実際、PCのソフトなどでは、ダウンロード購入のほうが安い場合が多いでしょう (少なくともATOKはダウンロード版のほうが安いです)。しかも、ゲームソフトは新作でも値下げされて売られていることがほとんどなので、むしろパッケージよりも高いということになりそうです。
ダウンロード版には、「カードを差し替えなくても遊べる」というメリットがあります。すれ違い通信の機能を持つソフトをたくさん持っていると、すれ違い結果を確認するためだけにカードを差し替えたりすることになり、その面倒が避けられるのはありがたいことです。しかし、以下のようなデメリットもあります。
- SDカードの容量を圧迫する
- 他のハードに移せない (友達に貸せない)
- 中古屋に売れない
ニンテンドーeショップで定価で購入する以外にも、店頭で「ダウンロードカード」を買う、という方法もあるようです。もし店頭で「ダウンロードカード」がパッケージと同じか、それよりも安い値段で売られるのなら、ダウンロード版を検討する余地もありそうですが……。
Webユニバーサルアワード 評価基準策定中
公開: 2012年7月29日15時50分頃
日本ウェブ協会 (W2C) (www.w2c.jp)では、アックゼロヨンアワードの後継にあたる、新たなアワードを計画しています。ひとまず「Webユニバーサルアワード」と名付けられていますが、「アクセシビリティとクリエイティブの両立」という基本的なコンセプトはそのままに、ユーザビリティ、IAなどの視点も盛り込みつつ、ある程度客観的に判断可能な評価基準をつくりたい、と考えているような気配です。
昨日からはIAシンキング (www.amazon.co.jp)の著者である坂本さんも参入し、本格的な議論が始まりました。そこで出た考え方の方向性を、坂本さんがさっそく図にしてくださいました。
- Evaluation method of UX “The User Experience Honeycomb” (www.bookslope.jp)
JIS X 8341-3:2010の等級Aは最低限の前提であると考えて、その上に様々な判断基準を積み上げていく形ですね。
ひとまず少人数でスタートしているので、「自分に声がかかっていないのはおかしいぞ!」と思われている方もいらっしゃるかもしれません。門戸は開き気味にする方針なので、随時ご連絡いただければと思います。
2012年7月18日(水曜日)
賭博堕天録カイジ 和也編 9
公開: 2012年7月28日23時40分頃
出ていたので購入。
- 賭博堕天録カイジ 和也編 9 (www.amazon.co.jp)
まだ友情確認ゲームですが、ここで波乱の展開。自分の弱さを言い訳にするとか、そういう心理の機微は本来なら盛り上がる展開のはずなのですが……。
残念なことに、友情確認ゲームが長引きすぎたため、「いいから早く終わってくれ」としか考えられない状態になってしまっております。
2012年7月17日(火曜日)
Tポイント、医薬品の情報まで取得
公開: 2012年7月28日23時10分頃
こんな記事が……「Tポイント、医薬品の購入履歴を取得 販促活動に利用 (www.asahi.com)」。
ドラッグストアでTポイントカードを提示すると、購入した医薬品の名前がCCCに送られるというお話。CCCは会員規約に書いてあるからOKと主張しているようですが、興味深いのはこの話。
また、Tポイントに加盟する首都圏などのドラッグストア「ウエルシア」4店舗で、朝日新聞記者がCCCに送信する情報の説明を求めたところ、3店舗で薬剤師や店員が「Tポイントの計算に必要な購入金額だけを送っている。医薬品の商品名は送っていない」と事実と違う説明をした。
4店舗中3店舗で、店員や薬剤師が事実と異なる認識をしていたという。店側でさえこういう状況なので、顧客がきちんと理解して情報の送信に同意しているとは考えにくいですね。いいかげん、「規約に書けばOK」という考え方は捨てないとまずいでしょう。
薬剤師が事実と異なる説明をしたのは、商品名を送ることが法に触れると知っていて、そんな違法なことが行われているはずがない、と考えたからなのかもしれません。記事にもありますが、
〈厚労省の医療機関などでの個人情報保護検討会で構成員を務める鈴木正朝・新潟大大学院教授(情報法)の話〉 薬剤師や医薬品販売業者が正当な理由なく業務上知り得た人の秘密を漏らすことを禁じる刑法134条に抵触し、秘密を漏らした罪に当たり得る。口頭、書面だけでなく、情報システムを通じた医薬品名のデータ送信も罪となる。客だけでなく、店員すら商品名がCCCに渡っている事実を理解せず、事実と異なる説明をするケースがある以上、Tカード提示を客の同意とみることはできない。
と、刑法に抵触する可能性がある話です。ちなみに刑法134条は以下のような条文です。
第百三十四条 医師、薬剤師、医薬品販売業者、助産師、弁護士、弁護人、公証人又はこれらの職にあった者が、正当な理由がないのに、その業務上取り扱ったことについて知り得た人の秘密を漏らしたときは、六月以下の懲役又は十万円以下の罰金に処する。
以上、刑法134条 より
店内で完結するポイントシステムとは異なり、Tポイントでは他社に情報を送ってしまわけで、それが「正当な理由がないのに……人の秘密を漏らした」ということになる可能性はあるでしょう。
関連する話題: プライバシー
2012年7月16日(月曜日)
JavaScript勉強会 三回目の課題
公開: 2012年7月28日22時5分頃
「ツッコミながらスクラムで学ぶ JavaScript勉強会」、第三回目の課題が発表となりました。
第三回目の課題
課題 3-1: 前回の振り返りと感想 (基本課題)
7月13日の勉強会の内容を振り返って、簡単に感想を書いてください。当日参加できなかった方は、ほかの人が提出した課題を見て、それについての感想を書いてください。内容は自由としますが、以下のような内容を含めることを推奨します。
- 良くわからなかったこと、疑問に思ったこと
- 議論したいこと
長く書く必要はありませんが、議論したいポイントがあれば、突っ込んだ質問などを書いていただいてもOKです。
課題 3-2: 前回の応用 (基本課題)
以下のような動作をするプログラムを書いてください。
- ユーザーに「データを削除します。よろしいですか?」と質問し、OK/キャンセルのボタンを表示する
- 1.でユーザーが「OK」を押した場合、さらに「データを削除すると復元できません。本当に削除してもよろしいですか?」と質問し、OK/キャンセルのボタンを表示する
- 2.でユーザーが「OK」を押した場合、「データを削除しました」と表示する
- 1.もしくは2.でユーザーが「キャンセル」を押した場合、「データの削除をキャンセルしました」と表示する
※JavaScriptを使ってください。
課題 3-3: 目覚まし時計の問題 (基本課題)
テキスト65ページの下部にある練習問題をやってみましょう。70ページに解答例が掲載されていますが、解答例は見ないでトライしてみてください。よく分からない場合、テキストの46~65ページを読んでみてください。
なお、解答例と同じコードにする必要はありません。
課題 3-4: Lecture1-3~Lecture1-6を読んで (基本課題)
テキストの46~65ページを読んで、以下の点について述べてください。
- 読んだ範囲についての感想
- 分からなかった点、疑問点、質問したい点など
課題 3-5: Lecture1-3~Lecture1-6はどうなの? (チャレンジ課題)
テキストの46~65ページを読んで、説明が不適切な点、説明が不足していると感じる点などを指摘してください。
また、可能であれば適切で分かりやすい説明を試みてください。
次回の範囲ではいよいよ変数やら演算子やらが出てくるので、プログラムらしくなってくるはずです。
なお、前回の復習として応用問題を出すようにしました。コードを書く課題は、全く違うアブローチのコードを書いてくる人がいて面白いです。今回も期待しています。
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
2012年7月15日(日曜日)
カルチョビット 2年目~3年目 ステップリーグ
公開: 2012年7月28日11時10分頃
「ポケットサッカーリーグ カルチョビット (www.amazon.co.jp)」。
2年目のステップリーグはボロボロ。いきなり連敗でスタートし、最下位争いに。リーグ最下位のチームはフレッシュリーグに降格になるので、それだけは避けたいところです。サポーターも「優勝」ではなく「残留」という垂れ幕で応援する中、後半で少し盛り返してなんとか4位で終了。青息吐息でした……。
シーズンオフには、西野朗監督の「さいたまFC」と親善試合を繰り返して選手を強化。
翌年、3年目は昨年とは打って変わって連勝スタート。サポーターの垂れ幕も「残留」ではなく「N2につれてって」に変化。最終的には15勝2敗3分、得失点差+45で優勝しました。
そして迎えた、N2リーグ最下位チームとの入れ替え戦。一発勝負で、負ければ昇格は見送りという大事な試合です。ところがこの試合、開始早々に我がチームのエースにレッドカード、一発退場! エース不在の上に、10人でのサッカーを強いられることになりました。これは負けたかと思いましたが、選手たちはあきらめませんでした。
- 十勝バロン戦 前半41分 得点:ゴン、アシスト:りゅう (ゴン、先制のヘッド) (calciobit.nintendo.co.jp)
この先制で流れが変わったのか、結局3-1で入れ替え戦に勝利。N2への昇格が決定!
大一番での強さ、エースに頼り切らない、チーム全体としての底力を見せてくれました。
ちなみに、ゴン選手はこの時の活躍が認められたのか、年俸が200万円アップすることになりました。チームの予算がなんと倍になったので、全く問題ありませんが。
2012年7月14日(土曜日)
日刊カルチョビットwebが面白い
公開: 2012年7月22日12時50分頃
「ポケットサッカーリーグ カルチョビット (www.amazon.co.jp)」ですが、ゲーム連動Webサイトが公開されています……「日刊カルチョビットweb (calciobit.nintendo.co.jp)」。
カルチョビットの製品版には、インターネットを通じてランキング戦に参加する機能があります。参加すると、このサイト内にチームのページが作られます。つまり自動的に自チームのサイトを持てるわけで、これだけでも結構楽しいです。もちろん、うちのチームにもあります。
- 日刊カルチョビットweb:クラブチームページ:西東京アーキテクツ (calciobit.nintendo.co.jp)
やはり、育てたチームは人に見てもらいたいものです。このページがあれば、自動的にチーム情報を共有できるわけで、楽しみが広がります。
さらに面白いのは、ゴールシーンの動画をアップロードして公開する機能があることです。
- 城南タキオン戦 後半49分 得点:マコト、アシスト:にしやま (マコト、追撃のヘッド) (calciobit.nintendo.co.jp)
- クラシコ西条戦 後半39分 得点:あゆみ (あゆみのロングシュートで5点目) (calciobit.nintendo.co.jp)
- 北野ブリザード戦 後半5分 得点:あゆみ (あゆみ、フリーキックを直接決めて同点) (calciobit.nintendo.co.jp)
やはりこれも人に見てもらいたいもので、それを見せられるというだけで満足感がありますね。ちなみに、ゴールシーンの動画はサイトに貼ったり、ダウンロードして保存したりすることもできます。
2012年7月13日(金曜日)
JavaScript勉強会 二回目
公開: 2012年7月23日2時40分頃
「ツッコミながらスクラムで学ぶ JavaScript勉強会」第二回が開催されました。今回の範囲は、テキスト「よくわかるJavaScriptの教科書 (www.amazon.co.jp)」のLecture1-1~1-2の部分で、alertダイアログを出すプログラムが出てきます。
事前に第二回目の課題を出していたので、各人の課題を見ながら進める感じなのですが、前回は時間が足りなかったので、今回はあらかじめ一通り見て面白そうなもの、質問が多いものをピックアップする形を取りました。
課題 2-1: 前回の振り返りと感想
卵の話が印象的だったという話や、XHTMLの話などがちらほらと。
課題 2-2: JavaScript 最初の一歩 (基本課題)
confirmダイアログを出して問題を表示し、正解/不正解を判定してalertするというプログラム。各人が書いてきたコードの中で、個性的なものをレビュー。
教科書通りだと3行で書けるのですが、これを1行で書く者もいれば、逆に50行で書く猛者も。汎用性やメンテナンス性を考えて、後でいろいろなものを変更できるような設計にする、という無駄な頑張りをみせていただき、勉強になりました。
課題 2-3: Lecture1-1~Lecture1-2を読んで (基本課題)
今回の範囲を読んだ感想ですが、多かったのは「bool値」より「真偽値」のほうが分かりやすいという意見。著者は「真偽値」のほうが分かりにくいと考えたようですが、そうでもないと思った人が多かったようです。
※全体的に、著者が「難しい」と思った用語を避けようとし、それが逆に分かりにくくなっているというパターンが多いように思います。用語が分かりにくいというのは、その用語が指している概念が分からないという話であって、単語そのものが難しいわけではないはずです。単語を別のものに差し替えたからと言って、分かりやすくなるとは思えません。また、一般的に使われている用語を知らないと、他のプログラマーとコミュニケーションしたり、ドキュメントを読んだりするときに困ることになります。
if(confirm("……")) というコードが分かりにくい、という意見も複数見られました。条件式を渡す例にしたほうが分かりやすそうですが、条件式はもっと後に出てくるので、ここでは説明していないのですね。
課題 2-4: プログラムとは (基本課題・おまけ課題)
前回の終了後に作成した、プログラムとは何かを説明する資料について。
おおむね好評だったようですが、作者の感想は「初心者にもわかりやすい説明が数時間で書ければ誰も苦労はしません」だそうです。
課題 2-5: Lecture1-1~Lecture1-2はどうなの? (チャレンジ課題)
意見が集中したのは文字列リテラルの話。「パラメータの両端には必ずクォーテーションの記号をつける」という説明がなされていますが、正しくありません。パラメータ (引数) が数値や変数であればクォートは必要ないからです。実際にここで説明されているのは、パラメータ (引数) の書き方ではなく文字列リテラルの書き方なのですが、本書では「リテラル」が説明されていないばかりか、なんと「文字列」が説明されていないのですね (後で「文字列連結」という言葉は出てくるのですが、「文字列」という言葉は単独では出てこない)。
あとは、「HTMLではタグの属性にダブルクォーテーションを使う(XHTMLの書式の場合)」という記述。言うまでもありませんが、XML構文でも属性値を単引用符で括ることはできます。だからこそXMLでは ' という実体参照があらかじめ用意されているわけで。HTMLでは二重引用符を使うことが多いですが、これは慣用的なものです。
それから「bool値」まわり。「型」の概念を説明せずにスルーしようという意図で書かれているのだと思いますが、結局「特別な値」という説明で、逆に苦しくなっているように思います。細かいところでは「trueおよびfalseは、英語でそれぞれ「真実/嘘」といった意味があります」という説明に対し、「trueとfalseは形容詞」というツッコミも。これは私も言われてみるまで気づきませんでした。
今回はツッコミがかなり多く、上で紹介した以外にも細かい話がいろいろとありました。文、ブロックといった概念を説明するべきではないかという話も出ましたが、今回は説明資料は作られず。ECMA-262の仕様では実は関数定義は文ではないなど、いろいろと奥が深かったりするようです。
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
2012年7月12日(木曜日)
カルチョビット製品版購入
公開: 2012年7月22日12時0分頃
「ポケットサッカーリーグ カルチョビット (www.amazon.co.jp)」、発売! 購入!
体験版のデータを引き継いで、2年目、ステップリーグからスタート。
ステップリーグは6チームで構成されていて、ホームとアウェーで2戦ずつ、つまり全部で20戦することになります。優勝すると、N2リーグ最下位のチームと入れ替え戦を行い、勝利すれば昇格です。
入れ替え戦に勝てるだろうか、と思ったのもつかの間。そもそもリーグ内の他チームに全く勝てません。連敗に次ぐ連敗で、今年の目標はあっという間に「優勝」から「残留」に変わりました。
※まあ、「ポケットサッカーリーグ カルチョビット Direct (www.nintendo.co.jp)」の映像内では皆さん5~6年目でN2リーグに昇格しているようなので、そんなストレートには行かないと思っていたのですが。
今年はなんとか残留し、選手を強化して、来シーズンは優勝を目指したいところです。
2012年7月9日(月曜日)
JavaScript勉強会 二回目の課題
公開: 2012年7月22日18時45分頃
「ツッコミながらスクラムで学ぶ JavaScript勉強会」、第二回目の課題が発表となりました。
第二回目の課題
課題 2-1: 前回の振り返りと感想 (基本課題)
7月6日の勉強会の内容を振り返って、簡単に感想を書いてください。当日参加できなかった方は、ほかの人が提出した課題を見て、それについての感想を書いてください。内容は自由としますが、以下のような内容を含めることを推奨します。
- 勉強会で身についたこと
- 印象に残ったこと
長く書く必要はありませんが、議論したいポイントがあれば、突っ込んだ質問などを書いていただいてもOKです。
課題 2-2: JavaScript 最初の一歩 (基本課題)
テキスト45ページの下部にある練習問題をやってみましょう。49ページに解答例が掲載されていますが、解答例は見ないでトライしてみてください。よく分からない場合、テキストの35~45ページを読んでみてください。
なお、解答例とまったく同じコードにする必要はありません。
※JavaScriptは使ってください。
課題 2-3: Lecture1-1~Lecture1-2を読んで (基本課題)
テキストの35~45ページを読んで、以下の点について述べてください。
- 読んだ範囲についての感想
- 分からなかった点、疑問点、質問したい点など
課題 2-4:「プログラムとは」(基本課題・おまけ課題)
第一回目で「プログラムとは何か、が説明されていない」「構造化プログラミングの説明があるべき」という話が出ましたが、説明資料が作られました。
※この資料は今のところ社外には公開していません。
この資料に一通り目を通してください。感想、質問したい点、気になった点などがあれば、課題2-4として提出してください。
これは基本課題ですが、提出しなくても構いません (読むのは必須ですが、感想が特になければ無理に提出する必要はありません)。
課題 2-5: Lecture1-1~Lecture1-2はどうなの? (チャレンジ課題)
テキストの35~45ページを読んで、説明が不適切な点、説明が不足していると感じる点などを指摘してください。
また、可能であれば適切で分かりやすい説明を試みてください。
前回は読んだ感想だけでしたが、今回はプログラムを書く演習問題かあります。さて、どんなコードがでてくるのでしょうか。
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
2012年7月8日(日曜日)
カルチョビット体験版 シーズン1年目: フレッシュリーグ優勝
公開: 2012年7月22日2時10分頃
「ポケットサッカーリーグ カルチョビット (www.amazon.co.jp)」の体験版をちくちくとプレイ。先週末に「ポケットサッカーリーグ カルチョビット Direct (www.nintendo.co.jp)」の映像を見て面白そうだと思い、今週の頭に体験版をダウンロードしていたのでした。
カルチョビットは監督となってサッカーチームを育てて行くゲームです。選手を特訓して育成して行くのですが、試合の時は基本的には見ているだけです。選手の操作はできず、大まかな戦術の指示と、選手の交代しかできません。……が、逆にそれが良くて、本当に観戦しているような気分になります。観ているだけなのに、ゴールが決まるとガッツポーズしてしまったり、「行け! 行け!」「ああ、そこは決めなきゃ」と言ってしまったりと、エキサイトしてしまいます。
さて、我がチームの1年目ですが、プレシーズン最初の親善試合で、チーム内で最も年俸が高いフォワードの選手が負傷。全治4週間と判明し、1ヶ月もエース不在という波乱のスタートとなりました。とはいえ、公式戦までは間があったので問題なく復帰しましたが……。
カルチョビットの世界では、サッカーリーグが4部制になっています。
- N1リーグ (Nリーグ ディビジョン1)
- N2リーグ (Nリーグ ディビジョン2)
- ステップリーグ
- フレッシュリーグ
リーグ内で上位なら昇格、下位なら降格があります。当然、最初は最下部のフレッシュリーグです。フレッシュリーグは6チームで構成されていて、各チームはホームとアウェーで1戦ずつ行います。自身以外の5チームと2戦ずつ対戦しますので、全部で10戦することになります。そして優勝すればステップリーグへの昇格が決まります。
その最初の公式戦、マルカトーレ青葉とアウェーで対戦し、これが1-4で大敗。これはやばいと思いつつ、練習試合と特訓を続行。
次の試合は赤石ミラクルとホームで対戦。今度は5-1で大勝。特訓の成果が出た……というより、相手が弱かったという感じでした。最初に戦ったマルカトーレ青葉は、フレッシュリーグ内でもかなり強い部類のチームだったようです。
この大勝で調子に乗ったのか、公式戦で8連勝の快挙。8勝の内訳は以下の通り。
- 赤石ミラクル (ホーム) 5-1
- 白浜イレブン (ホーム) 3-1
- 緑丘SC (アウェー) 3-2
- 新町ルドルフ (ホーム) 2-0
- マルカトーレ青葉 (ホーム) 5-1
- 赤石ミラクル (アウェー) 5-2
- 白浜イレブン (アウェー) 2-1
- 緑丘SC (ホーム) 6-0
残すは最終戦ですが、その前にジャパンカップの1回戦がありました。全リーグの全チームによるトーナメント戦ですが、強いチーム同士が初戦でつぶし合うことがないような組み合わせであり、つまり弱小チームは超強豪チームと当たることになります。うちの相手は、N1リーグで4位のキャピタル東京。うちのチームなどは「能力値Cは超強い、Bは神」と思っているのに、相手はほとんどの選手がジャンプ力S、他の能力も軒並みC~Sという大変な強さで、力の差は歴然です。当然負けたのですが、なんと0-13というとんでもない負けっぷり。サッカーの得点とは思えない数字ですね。
これがショックだったのか、リーグ最終戦は新町ルドルフに2-3で敗北……。選手たちは肩を落としたのですが、直後に、なぜか喜びだして、何だろうと思ったらリーグ優勝が決まったのでした。2位のマルカトーレ青葉も8勝2敗でしたが、得失点差が7ポイント上回ったのでした。
こうして我がチームは、かろうじてフレッシュリーグ優勝、ステップリーグへの昇格を決めたのでありました。クラブの規模が「無名クラブ」から「郷土クラブ」に格上げとなり、予算も8000万から1億2000万へと1.5倍に。
シーズンオフも選手の特訓と練習試合を繰り返して、いざ2年目、ステップリーグへ!
と、体験版はここでおしまい。ステップリーグ昇格か、もしくは2年目終了まで遊ぶと体験版は終了となり、その最後の状態のデータを製品版に引き継げるようになります。
しかしよくよく考えると、1年目で優勝しなければ、2年目も体験版で遊べたはずなのですね。せっかく優勝したのにちょっと損した気分です。まあ、私は既に製品版を買うつもりになっていますので、問題ありませんが。
2012年7月6日(金曜日)
JavaScript勉強会 一回目
公開: 2012年7月21日22時0分頃
「ツッコミながらスクラムで学ぶ JavaScript勉強会」第一回が開催されました。今回の範囲は、テキスト「よくわかるJavaScriptの教科書 (www.amazon.co.jp)」のLecture1の部分。まだプログラミングを始める前の、基礎知識と準備の部分です。
内容の一部を紹介。
課題1-1 自己紹介
初回なので、まずは各人の自己紹介から。参加の動機は、JavaScriptをほとんど知らないので触れたいという人、ある程度書けるが高度な内容も扱えるようにしたいという人、初心者が学ぶところを見たい人、などに分かれました。
JavaScriptに詳しくない人たちがみんなで学ぶ方針だったのですが、ふたを開けてみるとこんな参加者が……。
- 社内でプログラミングに一番強いと言われるシニアプログラマ、著書(共著)もあり
- 社内でいちばんJSに強いと言われるMicrosoft MVPアワード受賞者
- 社外から参加のスーパーゲスト、セキュリティ分野でかなり有名な著書あり、プログラミング関係のカンファレンスでのスピーカー経験も豊富
いろいろな意味で期待できそうな感じではあります。
課題1-2 感想
この範囲を読んでの感想や疑問点を書いてもらったのですが、ほとんどの人が「卵焼きの比喩が分かりにくい」という感想を持ったようです。
カラーできれい、英語の辞書を引くことを推奨している (名前にこだわっている) のは素晴らしい、といった意見もありました。
使用するツールに関しては、なぜFirefoxが推奨されているのか分からなかった、おすすめのエディタはないのか、といった意見も出ました。
課題1-3 ツッコミ
課題1-2と重なりますが、卵焼きの比喩についての意見がたくさん出ました。特に、卵に「割る」「焼く」のようなメソッドがあることには違和感があるようで、ミキサーや卵焼きマシンのようなものを持ち出す方が自然なのではないか、といった議論が出ました。
31ページ、HTML中のscript要素の位置について「どこに記述しても動作はし……」とありますが、どこに書いても同じというわけではないという指摘が何人かから出ました。最近はdocument.writeを使わない実装が多く、どこに書いても良いケースが増えてきているのは事実でしょう。けれども、本書の説明では普通にdocument.writeを使う例が出ていて、script要素を置く位置によってはうまく動作しない場合があります。
あとはXHTMLの文法の話。なぜかContent-Script-TypeがXHTMLの話として出てきていますが、これはHTML4の仕様にあるものです。それからCDATA区間について。なぜ使うのか、なぜコメントアウトっぽくするのか、そもそもCDATA区間を使うことは推奨されるのか、といった話が出ました。
また、「プログラミングとは何か」というポイントや、構造化プログラミングについての説明がないという指摘がありました。しかし、こういう指摘をすると「じゃあ分かりやすく説明する資料を作って」と言われる諸刃の剣。その後、実際に資料を作っていただきました。
とまあ、こんな話題がいろいろ出て、あっという間の1時間でした。個人的には結構楽しめたので、まあ良かったかなと。
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
2012年7月3日(火曜日)
JavaScript勉強会の課題決定
公開: 2012年7月16日16時25分頃
先週、JavaScriptの本を選定したわけですが、実際に勉強会の概要を決めて、参加者に課題を出しました。
案内をほぼそのまま掲載するとこんな感じ。
「ツッコミながらスクラムで学ぶ JavaScript勉強会」開催概要
基本的なルール
- 毎週金曜日の朝9時に開催します。第一回目は7月6日です。
- テキストとして、「よくわかるJavaScriptの教科書 (www.amazon.co.jp)」(たにぐち まこと著) を使用します。
- 毎回、課題を出します。課題は、翌週水曜日の23:59までに提出してください (提出方法は後述の「課題」の項を参照)。木曜日の間に内容をチェックし、金曜朝の勉強会でレビューします。
- とりあえずやってみて、やりながらやり方を調整していきます。この基本ルールも随時修正される可能性があります。
※ スクラムとは? : マンガ「ドラゴン桜」に登場する「スクラム勉強法」にちなんだ名前です。 ドラゴン桜では主人公の桜木が高校生に社会を教えることになるのですが、桜木は高校を出ておらず、社会の知識が全くありません。そのため、自分がまだ習っていないことを、生徒たちと一緒になって学ぶという手法をとります。これが「スクラム勉強法」です。 今回の勉強会では、私にJavaScriptの知識があまりないため、教えるというよりも、一緒に勉強していくというスタンスになります。スクラムを組んで一緒に進んでいくイメージです。
課題
毎回、課題を出します。基本的にはテキストに沿った内容で、次回の予習となります。
課題は2種類出す予定です。
- 基本課題: 基本的な課題です。テキストに沿った内容になりますので、やってみて分からなかったらテキストを読みましょう。分かりにくかった点、疑問に思った点などは、次回の勉強会で発表してみてください。この課題は必須です。やってこなくても罰則はありませんが、勉強会は課題をやってきたことを前提に進めてしまいますので、課題をやっていないと楽しめない可能性があります。
- チャレンジ課題: 基本課題では満足できない人向けの課題です。テキストに沿った内容になりますが、テキストの内容にツッコミを入れたり、テキストのサンプルの不適切な部分を修正するようなことを意図した課題になります。この課題は必須ではありません。基本課題がすぐに終わってしまった方、もしくは基本課題がばかばかしくてやる気にならない方はチャレンジしてみてください。
提出の期限は、翌週水曜日の23:59とします。木曜日にチェックして、金曜日の勉強会でレビューできるようにするためです。提出期限を過ぎた場合、課題が提出されなかったものとみなす場合があります。木曜日のいつ見始めるのかは不定なので、運が良ければ提出されたものと同様にレビューされる可能性もあります。
第一回目の課題
第一回目は7月6日ですが、第一回から課題のレビューを行う予定です。つまり、第一回に向けた課題が既に存在するということです。
参加者は水曜までに課題を提出してください。課題1-1と課題1-2は基本課題で、提出必須です。課題1-3はチャレンジ課題となります。
課題 1-1: 自己紹介 (基本課題)
勉強会に参加するにあたって、自己紹介をしてください。
以下のような内容を含めてください。
- 今のJavaScriptに関するスキルを、自分自身はどう評価しているか
- この勉強会で何を達成したいか、どういう状態になりたいのか
- JavaScriptに関するエピソード (もしあれば)
課題 1-2: テキストを読んで……? (基本課題)
テキストのPART1 (34ページまで) の内容を読んで、以下の点について述べてください。
- 読んだ範囲についての感想 (分かりやすい/難しい/面白い/つまらないetc.)
- 分からなかった点や、疑問点、質問したい点など
書式は問いません。箇条書きでも散文でも構いません。みなさん自由な心で記述してください。
課題 1-3: テキストを読んで……! (チャレンジ課題)
テキストを読んで、以下の点について述べてください。
- 本書の内容について、好きなようにツッコミを入れてください。
- PART1 (34ページまで) の範囲で、誤っている点や記述が適切でない点があれば、指摘してください。
書式は問いません。自由な心で記述してください。
水曜までに提出、木曜にチェック、金曜の朝に集まってわいわいやる、という想定。参加者みんなで作っていくというスタンスなので、どんな感じの勉強会になるのかはふたを開けてみないと分かりませんが。
関連する話題: Web / JavaScript / 本 / ツッコミながらスクラムで学ぶ JavaScript勉強会
機械によるアクセシビリティチェックから垣間見えること
公開: 2012年7月16日15時25分頃
アライド・ブレインズからこんなプレスリリースが出ていますね……「国のホームページ約6割がJIS規格最低基準に満たず - 21の府省等で1万ページ以上の改善が必要 - (www.a-brain.com)」。
達成等級Aを満たせていないサイトが多いという話なのですが、よく見るとこんな事が書いてあります。
本調査は、弊社が開発した「全ページJIS検証プログラムAion(アイオン)」を用い、49サイトの公開されている全ページを対象に、JIS規格対応を調査しました。
Aionは、総務省が開発し広く一般に無償提供しているJIS規格対応検証ツールmiChecker(エムアイチェッカー)のチェック項目と基準で、公開されている全ページを一括で検証するものです。
要するに、機械でチェックしただけなのですね。機械チェックには以下のような限界があります。
- 機械でのチェックでは判断できない部分がある。たとえば、alt属性の有無はチェックできても、alt属性の値が適切かどうかは判断できません。
- コンテンツの重要性が判断できない。アクセスできなければならない重要な部分と、補助的な部分とを区別できません。
よくあるタイプのチェックツールは、最低限のチェックだけして、判断できない部分は「判断できないので人間が見て判断してください」という旨の注意を促すような形になっていることが多いです。サイトの全ページ丸ごと機械にかけて終わり、というような使い方はできないようになっています。
というわけで、機械チェックだけで完結している調査は、全く意味がないとまでは言いませんが、話半分くらいに聞いておいた方が良いと思います。
本調査では、49の府省等サイトについて、平均56.5%のページでJIS規格の達成等級Aの対応に問題があることが確認されました。
また、21の府省等サイトで、達成等級Aに「問題あり」のページが1万ページ以上あることが確認されました。「問題あり」のページ数は、最も少なかったサイトで1ページ、最も多かったサイトで134,219ページでした。
達成等級Aに該当する25の達成基準の中で、特に「問題あり」のページの割合が高かったのは、以下2つの達成基準でした。(図1参照)
「問題あり」という表現なのは、機械チェックだけでは「等級Aを満たしていない」とまでは言い切れないという自覚があるからでしょう。それは良いと思うのですが、「サイト」と「ページ」が入り乱れていて意味が分かりにくいですね。おそらくこういうことだと思います。
- 対象とした全てのサイトに、「問題あり」のページが最低1ページはあった。
- チェックした総ページ数は不明だが、そのうち56.5%が「問題あり」
- 49サイトのうち21サイトは、「問題あり」を1万ページ以上抱えている。中には134,219もの「問題あり」ページを抱えているサイトもあった
全体のページ数が分からないので何とも言えませんが、それでも1万というのはなかなかの数でしょうし、134,219ページとなると凄い数のように思えます。しかし、さらに読み進むと以下のようなことが書いてあります。
達成等級Aに該当する25の達成基準の中で、特に「問題あり」のページの割合が高かったのは、以下2つの達成基準でした。(図1参照)
• 「7.3.1.1ページの言語に関する達成基準」29.2% ◦具体的な問題の例:音声読み上げソフトが正しく読み上げたり、ブラウザが正しく表示するために必要となる、ページ内で主に使用している言語の指定がない
• 「7.1.1.1非テキストコンテンツに関する達成基準」29.0% ◦ 具体的な問題の例:音声読み上げソフトの利用者に画像の内容を伝えるための「代替テキスト」がない等。
「7.3.1.1 ページの言語に関する達成基準」というのは、具体的にはHTML文書にlang属性がつけられていないケースです。ちなみにPDFの場合は「PDF 文書の文書カタログ内の /Lang エントリを使用してデフォルト言語を設定する (waic.jp)」という方法があり、これを怠っている場合にはNGとなります。
※そもそも、PDFはチェック対象でない可能性もあり、その場合はPDFだらけのサイトに有利な評価になっている可能性があります。
lang属性がついていないコンテンツが29.2%ある、というのは奇妙な話のように思えます。全ページに全くついていないのならまだ分かりますが、おそらくそうではなく、ついていないページが一部にあるという状態なのでしょう。しかも、それが3割近い数……となると、これ、サイトの一部に古いコンテンツがそのまま残っているのではないかと思います。
大規模なサイトリニューアルを行う際、良く問題になるのが古いニュースリリースなどのアーカイブです。コンテンツがそもそもアクセシブルでないことが多い上に、一度正式に発表したものですから、後から内容を変えることが難しいという問題があります。
そういったものを残すのか、それともばっさり切り捨ててしまうのか、という判断を迫られることは多いです。残す判断をする場合、新しいデザインに合わせて作り直すのか、合わせずにそのまま残すのかを判断することになります。残した場合、サイトの一部に古いHTMLが大量に残ることになり、lang属性がついていないコンテンツが万単位で存在することもあり得るわけです。
このようなケースのポイントは、古いコンテンツはそれほど重要ではないという点です。消してしまっても良いようなものにコストはかけられませんし、そんなお金があれば、新しいコンテンツに使った方が良いわけです。とはいえ、見たい人もいるかもしれないし、古いまま残してもそんなに害はないだろう、という判断をすればそのまま残す事になります。
※逆に、そのまま維持しても特にメリットがないので消す、という判断をすることもあります。
そんな判断で残したものを機械的なアクセシビリティチェックにかけると、どうなるかは分かると思います。
ここで注目しておきたいポイントは、コンテンツを消してしまった方が、機械的なアクセシビリティチェックでは有利になるということです。機械チェックは「本来は必要なはずのコンテンツがない」という判断はしませんから、単純にコンテンツが少なければ少ないほど有利になります。
とはいえ、それが悪いという話ではありません。機械チェックというのは元々そういうものなので、それを踏まえて結果を評価するべきだということです。要するに、機械チェックだけで完結している調査は、話半分くらいに聞いておけば良いということです。
IPアドレスでのアクセス、サイトに細工と報道される
公開: 2012年7月16日13時0分頃
こんなニュースが……「児童ポルノ販売容疑で逮捕 サイト遮断、細工しすり抜け (www.asahi.com)」。
大手プロバイダーは昨年4月から、特定のサイトへはURLを入力しても接続できないブロッキングという仕組みを導入したが、林容疑者らは児童ポルノDVDを販売する約80サイトを開設し、ネット上の住所を示すIPアドレスを介して接続されるよう、サイトに細工を施していたという。
名前解決のところでブロックされるので、ドメイン名を使わずにIPアドレスでアクセスするようにした、という話。「DNSポイゾニングによるブロッキングに意味はある?」という話でも書きましたが、こうやって回避できることは最初から分かっていたわけで。
しかし、これを「細工」と言ってしまうのも凄いですね。むしろ、名前でアクセスできるサイトの方がDNSやらバーチャルホストやらで細工しているのであって、IPアドレスでのアクセスの方が細工なしという感じがしますが。
2012年7月1日(日曜日)
ムダヅモ無き改革 8
公開: 2012年7月14日21時20分頃
出ていたので。
- ムダヅモ無き改革 8 (www.amazon.co.jp)
事業仕分け(?)の続き。
テスラコイルとか出てきましたけど……何だかイマイチ盛り上がらない感が。どちらかというと、竹下ノボルが轟盲牌を使ったところが印象に残りました。
咲 -saki- 10
公開: 2012年7月14日19時15分頃
出ていたので。
- 咲 -saki- 10 (www.amazon.co.jp)
仮面の巫女、薄墨がついにその能力を発揮……と思ったらなんかあっさり封じられてしまったり。これじゃ露出度だけじゃないですか。
宮守女史のエピソードが結構しっかり描かれていて、そのあたりは面白かったですね。
- 前(古い): 2012年6月のえび日記
- 次(新しい): 2012年8月のえび日記