不器用なエンジニア見習いのメモ

プログラミングなどのIT関連について学んだことをメモ代わりに書いていきます。 その他興味のあることについても書いていきます。 最近は機械学習に関することをまとめています。 HTML,JavaScript等を使って簡単なゲームを作成して公開しています。

2016年03月



今週の気になったニュースです。


 参考記事
『「スー・チー政権」発足=半世紀ぶり文民政府-ミャンマー』(2016.3.30 時事通信:http://www.jiji.com/jc/c?g=int_30&k=2016033000080)


ミャンマーでは30日付でアウン・サン・スーチー氏が率いる国民民主連盟(NLD)主導の新政権が発足しました。
憲法には特別な大統領条項が存在する為外国人の配偶者を持つスー・チー氏は大統領になることができません。


その為、側近が大統領のポストに就きましたが、事実上の「スー・チー政権」の様です。
4閣僚のポストを兼務することが決定しており、外交を初めとした政治の舵取りの大部分がスー・チー氏が握ることになります。

上記のような状態の為、外部のメディアからスー・チー氏の「独裁」が始まるのではないかと言う警告が少しずつ出てきています。
一方ミャンマーでは約半世紀ぶりの民主政権が発足したということで、これまでのスー・チー氏の活動も相まって好感を持つ人がほとんどです。

その評価は今後の活動によって大きく変わっていくことになるでしょう。
これまでの活動家としてではなく、政治家としての活動がどの様に作用していくか、世界中が注目しています。


国内ではイスラム教徒など少数派となっており、仏教徒との対立が懸念されています。
また、長年政治を支配していた軍部が未だ議席の25%を有していることから、軍部との協調が必要となってきます。

民主化を喜ぶ、大多数の仏教徒の国民、少数派のイスラム教徒の国民、軍部、様々な思惑がある中で、互いが利益を得る道を示していくことが、今後のスー・チー氏に求められます。


国を民主化に導いた偉人の道のりは、休む暇もなく新たな局面を迎えています。



参考
『女子中学生監禁男「女子高生アニメに熱中」記事にアニメファン反発』
東京スポーツ:http://www.tokyo-sports.co.jp/entame/entertainment/524236/


行方不明になった女子中学生が監禁されていた場所を抜け出し、約2年ぶりに家族との再会を果たし、誘拐容疑の男も身柄が確保されました。


自殺未遂の所を身柄確保したらしく、負傷が激しい為に逮捕までにはしばらく時間が掛かるようですが、容疑者の周囲には操作の手が進んでおり、全容の解明が急がれます。

そんな中、日刊スポーツの以下の記事が注目を集めています。


参考
『女子高生アニメに熱中…寺内容疑者の素顔同級生語る』
日刊スポーツ:http://www.nikkansports.com/general/news/1623432.html



私も記事を拝見しましたが、なかなか偏見に満ちた記事だなと感じました。

中学時代に「涼宮ハルヒの憂鬱」にハマっていて、キーホルダを所有していたなんて、今回の事件と何の関係があるのでしょうか?

登場キャラクターが年齢的に違うというのもありますが、(少し観たことがある程度ですが)私が知っている限りこの作品に若い女性を性的に描写した話は無かったはずです。

当該記事の筆者の明らかな調査不足、アニメ好き=犯罪者という風に仕立て上げたいという考えが見え隠れしています。


実際にありましたが……、例えば「ひぐらしのなく頃に」を観てその作品を好きになった人が影響を受け過ぎて鉈を用いて事件をなんてことが明るみになれば分からなくもないですが。(それでも当時のマスコミは因果関係を主張しすぎだったと思います。)


そんな記事に他の方も反発を覚えたらしく、大きな反響が出ています。

今後も似たような事件が起きるたびにアニメがやり玉に挙げられるのでしょう。
純粋にアニメが好きな方には世知辛いです。




個人的に日刊スポーツの記事で一番気になったのは、寺内容疑者が大阪教育大学付属池田中学を卒業しているという記述。
書き方から察するに小学生時代は付属ではないと思うけど、おそらく小学生当時、宅間守の襲撃事件が身近に起きていたはず。
池田市に実家があるというから間違いないだろう。

僕はなぜかそっちの方が無性に気になった。
あの事件からもう大分時間が経つな……。


「NATIONAL GEOGRAHIC」3月号の感想です。



参考書籍:「NATIONAL GEOGRAHIC」2016年3月号
(出版社:(明記されていない為恐らく)日経ナショナルジオグラフィック社、
発行人:中村尚哉
URL:natgeo.nikkeibp.co.jp/)


・クルド人 踏みにじられる未来

同じ志を持つ若者たちを集め、クルド人の戦闘部隊に加わることを選んだ大学生とソーシャルメディアから流れるプロパガンダに染まりISに(イスラム国)に加わることを選んだ若者の2人を対象にして記事が書かれている。


イラクの北部にあるクルディスタン地域にはクルド人の自治地域があり、独自の繁栄を見せて来ていますが、現在ではアラブ人が難民となって押し寄せてきており、また、もともとこの地域に住んでいたクルド人の中にはヨーロッパに移住して者もおり、混迷している状況の様です。

結局のISに加わった若者は警察に捕まった後、懸命の取材も実を結ばず行方不明になりました。
刑務所の人間は、捕えたISの兵士は処刑すると言っていたが、この若者ももしかして……。


写真の中にあるセリフを見ても思うけど、アラブ人とクルド人の相互理解が進んでいない印象が否めない。
いや、クルド人の兵士の人たちは本当にISを相手に良くやってくれていると思う。
そこに何の疑いの余地もない。
祖国の為に命をいとわない姿勢に本当に敬服する。

ただ、ISの兵士の中には、やむを得ず兵士として活動している者がいることも考慮しなくてはいけない。
戦時中の中、そこまでいちいち精査する余裕が無いのは分かるんだけど、家族を守るために、仕方なくISの兵士として生活している人、若さゆえの無知のせいで加わり公開している者もいるはずだ。
闇雲に捕えた者を処刑しては、この戦闘が終息を迎えた時、クルド人に対するアラブ人の感情は穏やかなものでいられるだろうか。


そんなことを考えながら読んでいたけど、今まで圧倒的に被害を受けて今ISに真っ向から立ち向かっているのはこの人たちなんだよなー
何も言えないやーって感じです。


前述の、クルド人部隊に参加した若者、
「変化を起こすための手段は、政治以外にないからね」
政治に全く希望を見いだせない日本ではなかなか聞くことが出来ない言葉だ。
多くの同胞が欧州に行く中、この若者はクルディスタンに残るつもりらしい。
こういう姿勢も珍しい。
見捨てるか、迎合するかのどちらかが圧倒的に楽なのに。

先行きが全く見通せない中挑戦するこの若者の姿をもっと追ってみたいと思った。


201603211
 
「Webを支える技術」のまとめの続きです。

 (参考書籍:「Webを支える技術」/2010年/山本陽平/株式会社技術評論社
/URL:gihyo.jp/book)




URI(Uniform Resource Identifier)「統一リソース識別子」とも言います。
全てが同じルールに従った、あらゆるものを他のものと区別して指し示す為の名前・IDと言うことが出来ます。
URIを使うと、Web上にある全てのリソースを一意に示すことが出来ます。



◎URIの構文


ex)

http://blog.example.jp/entries/1

このURIを構成するパーツは次のようになります。


・URIスキーム:http
・ホスト名:blog.example.jp
・パス:/entries/1

URIスキームとは、そのURIが利用するプロトコルを示すものです。
例の場合、このリソースに、httpでアクセス出来る、ということを意味しています。

ホスト名はDNS(Domain Name System)で名前が解決できるドメイン名かIPアドレスで、インターネット上で必ず一意になります。

ホスト名の後には、階層を表すパスが続きます。パスは、そのホストの中でリソースを一意に示すことが出来ます。



インターネット上で必ず一意になるホスト名の仕組みと、ホスト内で必ず一意になる階層的なパスを組み合わせることにより、とあるリソースを示すURIが世界中のほかのリソースのURIと絶対に重複しないようになっています。



◎複雑なURIの例
http://yohei:pass@blog.example.jp:8000/search=test&debug=true#n10

・URIスキーム :http
・ユーザ情報 :youhei:pass
・ホスト名 :blog.example.jp
・ポート番号 :8000
・パス :/search
・クエリパラメータ :q=test&debug=true
・URIフラグメント :#n10


ユーザ情報は、リソースにアクセスする際に利用するユーザ名とパスワードから成り立ちます。
ユーザ名とパスワードは「:」で区切ります。

ホスト情報は、ホスト名とポート番号から構成されています。また、同じく「:」で区切られています。
ポート番号は、このホストにアクセスするときのプロトコルで用いるTCPのポート番号を示します。
パスの後ろに区切り文字列である「?」が付き、名前=値形式のクエリが続きます。
クエリが複数ある時は、「&」で連結します。クエリパラメータは、検索サービスや検索キーワードを渡す時等、クライアントから動的にURIを生成する時に利用します。

「#」で始まる文字列は「URIフラグメント(URI Fragment)」と言います。
URIフラグメントは、その前までの文字列で表現するURIが指し示すリソース内部の、さらに細かい部分を特定する時に利用します。
例えば、このリソースがHTML文書だった場合は、id属性の値が「n10」である要素を示すことになります。


◎絶対URIと相対URI
URIのパスは、UNIX系と同じような階層構造を持っています。
ルートを「/」と記述して、さらにディレクトリを「/」で区切っていきます。

ルートから記述したパスのことを「絶対パス(Absolute Path)」と言います。

/foo/bar/baz

これに対して、URIスキームやホスト名を省いて、パスだけで表現した方法を相対URIと呼びます。


絶対URI
http://example.jp/foo/bar

相対URI
/foo/bar




★相対パスから絶対パスへの変換(起点は/foo/bar)

相対パス 絶対パス
=====================================================
hoge /foo/bar/hoge
hoge/fuga /foo/bar/hoge/fuga
./hoge /foo/bar/hoge
../hoge /foo/hoge
../hoge/fuga /foo/hoge/fuga
../../hoge /hoge




◎ベースURI
相対URIはそのままではクライアントが解釈できない為、相対URIの起点となるURIがどこなのかを指定するベースURIを見つけておく必要があります。
相対URIを絶対URIに返還する為には、ベースURIが必要です。


★相対URIから絶対URIへの変換(ベースURIはhttp://example.jp/foo/bar/)

相対パス 絶対パス
=====================================================
hoge http://exaple.jp/foo/bar/hoge
hoge/fuga http://exaple.jp/foo/bar/hoge/fuga
./hoge http://exaple.jp/foo/bar/hoge
../hoge http://exaple.jp/foo/hoge
../hoge/fuga http://exaple.jp/foo/hoge/fuga
/hoge/fuga http://exaple.jp/hoge/fuga
../../hoge http://exaple.jp/hoge
?q=hoge http://exaple.jp/foo/bar?q=hoge
#hoge http://exaple.jp/foo/bar#hoge



◎リソースのURIをベースURIとする方法
あるリソースを取得した時に相対URIが登場したら、そのリソースのURIをベースURIとして相対URIを解決することが出来ます。
ただ、ベースURIとなるリソースのURIをクライアント側で保存しなければならないと言う問題があります。
保存しなければ、新たに保存したファイルがもともとどこのURIだったかわからなくなり、相対URIを作ることが出来なくなります。

上記の問題を解決する為に、HTMLやXMLの中で明示的にベースをURIを指定する方法があります。

・HTMLの場合
<head>要素の中に<base>要素を入れます。

・XMLの場合
xml:base属性を利用すれば、どの要素でもベースURIを指定できます。




◎URIで使用できる文字列
URI仕様では、次の文字がURIのパスに使えるとしています。

・アルファベット :A-Za-z
・数字 :0-9
・記号 :-.~:@!$&'()

いわゆるASCII(American Standard Code for Information Interchange)文字を採用しています。
これは、URIには、日本語の文字を直接入れられないという意味です。

日本語などの文字を、URIに入れるときには、%エンコーディングという方式を用います。

%エンコーディング

「あ」という文字は「%E3%81%82」という文字列に置き換えることが出来ます。
これは「あ」がUTF-8では「0xE3 0x81 0x82」の3バイトからなることに起因します。

%エンコーディングでは、UTF-8の文字を構成するバイトそれぞれを「%xx」(xxは16進数)で記述して、URIに使用できない文字を表現します。

*%エンコーディングでは、使用する文字は小文字、大文字の区別はつけません。
*%エンコーディングで用いる為に、「%」はURIに直接記述すことは出来ません。
UTF-8やShift_JISなどASCIIを基本とした文字列エンコーディング方式の場合「%25」と表記します。


★「あ」の%エンコード結果

文字エンコーディング エンコード結果
=====================================================
UTF-8 %E3%81%82
Shift_JIS %82%A0
EUC_JP %A4%A2

◎URIの長さ制限
仕様上はURIの長さに制限はありません。
しかし、実装上は制限が存在します。特にInternet Explorerの場合は2,038バイトまでと言う制限があります。


◎URIの実装で気を付けること
WebサービスやWeb APIを実装する際に気を付けるべきなのは、相対URIの解決と%エンコーディングの扱いの2点です。

WebサービスやWeb APIを実装する際には、絶対URIを使用した方がクライアントにとって親切と言えるでしょう。

また、URIにASCII文字以外を入れる場合は、文字エンコーディングの混乱を避ける為に、%エンコーディングの文字エンコーディングとしてUTF-8を用いるのが望ましいです。


 

201603241
201603242
 

HTMLとJavaScriptで上記のような簡単なゲームを創ろうとした時の話。

ドラ〇エやらポ〇モンみたいに、扉のような箇所を通過したら、画面が遷移する様に作りたいなと思って一つのhtmlファイルに初期化と描画のメソッドを2つ用意したら、全く機能しませんでした。


 画面が遷移する為のメソッドを用意したけど、元々あった処理の中に画面遷移のメソッドをどの様に呼び出すかが分からなくなって、思いつくままに実装してもボタンを押しても全く動かなくなりました。


最早、ソースが原型を留めなくなってしまったので、1描画につき1ファイルという形でコーディングをしてみましたが……。
やっぱり1ファイルに色々詰め込むのは良くないですね。

ファイルを分けると面倒だなと思ったのですが、後で見返すと非常に分かりやすいです。

1つのファイルに1つのクラス、1つの役割を、が基本だなと思いました。(役割によってメソッドが複数必要なはずなので、一概に1ファイルに1メソッドとは言えないのかなと思いました。)


さて、ド〇クエっぽくするには、ドアの地点に立ったら、描画が切り替わる様な処理を考えないと。
あと、htmlファイルのオンロードと同時に2つ目のhtmlファイルのinit()が実行されないようにしないとなー。


ソースをいくらいじっても後で、やり直しが効くように、こういうタイミングでSVNやGitが必要になってくると痛感しました。やはり、座学より、実際にプログラムを組んで作ってみるって大事だ……。
 

↑このページのトップヘ