いろいろ

学生の頃は、わたし日本で暮らすから英語できなくてもいいもん、数学苦手でも大人になって困ることないもん、と思っていました。人生、英語や数学から逃げようと思えば特に困らず逃げられると思っていました。

大人になってプログラマになって、まず英語に捕まってしまいました。英語のドキュメントや技術書が読めなければ、お話になりません。わたしの英語力は大変残念なものなのですが、そんな残念な力でも使っていかなければやっていけないという。ひのきのぼう で日々戦っていかなければいけないマゾモード。あぁ、こんなことならちゃんと序盤で装備を強化しておけばよかったですョ。

さてさて、英語は捕まってしまったけれど、数学はなんとか逃げ切れたかな?・・・と思っていたのですが、このほどのプロジェクトでついに数学の魔の手にもからめ取られてしまいました。わたしは数式を言語として理解できるタイプの人間じゃありません。よくわかんないな、、、という数式にでくわしても、プログラミング言語に翻訳して、動かせばわかるじゃん・・・で、今まで乗り切ってきちゃいました。うん、あたしにはプログラミング言語がある。

−−と、思っていたのですが、今回はだめでした。だって仕様書が数式だらけ。たすけて、やばい、仕様が読めない、理解できない。


・・・中高生のみんな、学校で英語・数学が「重要」な位置づけにあるのは伊達じゃない。奴らは手強いくせに、冒険の中盤以降でのエンカウント率は思っている以上に高いんだ。

人生という冒険は続く。


* * *


しかし、学生の頃ってどうして「大人になったら役に立たない」って思ってしまうのでしょうか。それはわたしたちの周りの大人がとても数学や英語を役に立てているように見えなかったからですが、おかしいな、大人になってからの実感とそれは食い違います。

子供が接する世界は、仕事の世界じゃないから英語や数学と出会わないということなのかな?じゃあ、英語や数学は「仕事」の世界でしか生きていないのかな?仕事の世界にしかないといえば、子供たち(わたしを含む)は、そういう仕事につかなければいいだけじゃん、と思ってしまう(自分の可能性を無意識に信じているので、それができると疑うことすらしない)

だとすれば、どうすれば必要と実感してもらえるのかしら。

たぶん、英語でしかコミュニケーションできない人があふれれば、英語は必要と思ってもらえるかな?・・・・・・そういえば、わたしが英語って必要だな、できるようになりたいな、って思えてシチュエーション。ひとつは、パソコンの自作をするとマザーボードとかのマニュアルとかBIOSの設定画面とか全部英語で、さっぱりわけがわからんちんだったとき。このときはPC自体よくわかってない人だったので、お助けお友達がいろいろやってくれたので幸いでしたが。もうひとつはネットゲーム(PSO)で、外国の人がパーティに入ってきたとき。ただ、どこに行きたい?と聞くだけができなくって。遺跡って英語ってなんていうの?とかとか、他の友達と右往左往。海外の人と遊びたければやっぱり英語は覚えないとね、というのは痛感しました。

じゃあ数学は?・・・・・・となると、うーんむずかしい。結局はあれも言語で、その言語でかかれたことが理解できるか、と言う単純なお話なのですが、タイムマシンにのって過去のあたしにそれを納得させる方法が、どうも思いつきません。


* * *


という風に数学が苦手なわたしでも、理系的な話は大好きなのです。数学がわからなくても、科学の話はわくわくするし、理解したい。そんなお子さまのわたしには、ブルーバックスがぴったり。

そのなかでもわたしが大好きなのがこの一冊。「質量はどのように生まれるか」

質量はどのように生まれるのか―素粒子物理最大のミステリーに迫る (ブルーバックス)

質量はどのように生まれるのか―素粒子物理最大のミステリーに迫る (ブルーバックス)


結局ブルーバックスの肝は、数式やプログラミング言語など、それを理解する基礎の読力なしで、どれだけその神髄をわかった気にさせるかというところにあります。そういう意味で「質量はどのように生まれるか」は最強です。

質力の起源を追う道筋に量子力学の全てが見渡せるという構成で、謎を追いかける内に手にする論理のピースがパチッパチッとハマっていく、確かにピースの端がそれにしかかみ合わない形をしているという実感に、あぁ、あたしは理解していっているんだという実感を感じさせてくれるすばらしい本です。

(もちろん素人なので、読みやすさの評価しかできていません)

さて、この本を読んで思い解されたのは、わたしの、プログラミングにたいする傲慢です。

わたしは、チュートリアル本が大好きです。喫茶店に本とノートPCを持ち込んで、コーヒーをいただきながらチュートリアルを進めることに幸せを感じます。(これは読書の楽しみです)

ですので、コードを書かずにプログラミングのなにがしかを理解しようというものぐさを、実のところ軽蔑していたりなのです。管理職向けのコードは書かないでなにがしかを理解しようなんて本は、虫ずが走るというか、そういう本があっても良いと理性で思っていても感情で否定してしまうというか。うまくいえませんが「地球人にターンAの量産化なんて、出来るわけねーだろっ!」的な、そんな感じ。

でもでも、プログラミング言語は理解したいと思わないし、プログラミング言語でかかれた部分はみるだけでちょっと頭痛がしてしまって、読む気がしない。でも、コンピューターやプログラムにはあこがれを感じる・・・、という層も絶対いる(・・・というかそういう新人は得てしてやってきて、本人と周りが一緒に苦労の渦に巻き込まれていくのです)。

そんな人向けに、継続やパターンマッチ、メッセージパッシングやポリモーフィズムといった、コードを書けなきゃそんな物覚えてもどうしようもないじゃない、人生でもっとも無駄な知識になるであろうものを植え込みたい。そんな本があってもいいじゃないと思い始めた今日この頃です。


* * *


このエントリーは Nexus 7 で書いています。解像度の高い端末で文章を打つのはとっても楽しいですね。このすてきな感覚はちょっと病みつきなので、Retinaなマシンにubuntuをインストールしたいなぁ、とか思ってしまいます。

さて、長文を打つにはやっぱりキーボードが必要なのですが、 Bluetoothのキーボードはよくわからないのです。キーボードマニアであったハズなのに、なんという情けなさ。猫のキーボードルームに偽りあり、看板を外すべきかしらん。

で、とりあえず定番といわれるポケモンキーボードを買ってみました。

任天堂のキーボードは PSOのキーボード以来。やっぱりミツミ製なのかな?っと期待しながら購入したのですが、しまった、このY字のネジを回すドライバーもってないよぉ・・。ということでまだ分解していません。

世間の評判と裏腹に、初見の感想はちょっと感触が安っぽいかな?、な、ただのメンブレン・ラバードームのキーボード。一言でいえばうち心地が安っぽい。キートップはぐらつくし、打鍵感に官能的なところも作りの良さを感じることもない、期待したものとは違う残念な出来です。でも、決して打ちにくくはないので実用品としては及第点かな。

・・・というのはマニアの視点で、たぶんこのお値段で配列も変態的でなく、そこそこコンパクトでそこそこのお値段で、単3電池2本でうごいちゃう。何よりふつうであるということはやっぱり貴重。なるほど、こうして特徴を並べてみれば悪くはないキーボードです。

――などという、キーボードレビューがしたかったのではなくって、ポケモンです。せっかく買ったのですからゲームも楽しみたいな、とか思って始めたのですが、結構おもしろい。黙々とゲームを進めたのです。もちろんタイピングにはそれなりの自信のあるわたしはですので、それなりにゲームは進められるのですが、ポケモンに詳しくないので、名前がわからないのがネックです。金メダルはなかなかゲットできないよ。。。

これは勉強あるのみかしらん。

バトル&ゲット ポケモンタイピングDS (シロ)

バトル&ゲット ポケモンタイピングDS (シロ)


* * *


このキーボードでちょっと困ったのが、Nexus7 のChrome では物理キーボードでうまく入力できないこと。一文字目が二重入力されてしまいます。IMEに渡される前に一文字だけキャプチャされてしまうような感じ。(というわけで、今 Opera mobile を使ってます/Operaって久しぶり)

Nexus7 のトラブルといえば、突然電源がいれられなくなったことがあって、USBケーブルをつないでも充電中マークがでなくなったころから、てっきりコネクタがいかれて通電しなくなって、かつ、放電しきったというパターンかな・・・と思ったのですが、実は層でなくって、なんだかよくわからないのですが13秒電源長押しでしか電源が入らなくなるトラブルでした。

うーん、なんだか微妙に残念品質だなぁ、と思います。(でもそこがいい)
 

* * *


お仕事でちょっとした調査があって、それを Excel とかにまとめるにはログが膨大すぎるので、Pythonスクリプト組んで HTMLで出力する・・という手抜きをしました。print('<tr><td>%d</td><td>%s</td></tr>' % (i, s)) 的な、本当に汚いコードなのですが、まぁ、報告一回切りだからいいよね、と思ってました。

・・・が、なんかそれをベースにWebアプリ化することになってしまい、url と HTMLをプリントする関数をひも付けするだけの単純な方法ないかなぁ、と Flask にたどり着きました。

Flask は 「マイクロフレームワーク」を自称するだけあって、全体を把握するのもあっという間だし、なにをやるにもいろいろシンプル。たとえば、わたしのやりたいようなことは関数の前にデコレータで

@app.route('/hoge')
def renderHoge()
     return '<h1>hello!</h1>'

的なことをするだけでOKです。

おかげで 件のHTMLドキュメント生成スクリプトがさくっと1時間くらいでWebアプリになってしまって、これはラッキー、と思っていたのですが、その後 次第にそのWebアプリの要求がいろいろたまってくると、マイクロフレームワークなだけあって、いろいろできない・・というかメンドクサいのが、ちょっと誤算。Viewerだけだったはずなのに...orz

むー、Django よく知らないし、と学習コストをケチったのが裏目にでたかー。

でも、このFlaskをベースに、Webフレームワークの定番の仕組みを実装しながら学んでいく・・・なんてチュートリアルを作るのは、よいアイデアじゃないかな?と思い始めたり。継続ベースにしてみるとかとか。