2017年06月の日記です

目次

01日 家事分担
03日 忘れてた
06日 キャベツ料理
09日 計算機の同人誌
12日 連乗機能
13日 遅い Javascript を iframe に追い出す方法
21日 ゼルダ雑感


家事分担  2017-06-01 10:25:20  家族

▲目次へ ⇒この記事のURL

新聞などで、男女の家事分担に対する考え方が違う、という話題が出ていた。


男性が3割程度家事をやっていると思っているのに対し、女性は男性が1割程度しか手伝ってくれない、と思っているという結果。


僕は家事はやっっているつもりだけど、どうしても妻に任せないといけない部分がある。


ずっと以前に書いたのだけど、男が全部家事をやる、くらいのつもりでいて、やっと半分程度しかできないと思っている。


ましてや、3割やった、と思っていたら実は1割なんていうのは当然だろう。




僕自身は兼業主夫を自任しているので、一応一通りこなす。


以前は、洗濯、炊事、掃除、風呂、トイレ廻り、買い物、ペットの世話、などは僕の担当だった。


子供が保育園だった時の送り迎えも僕の担当だけど、これはもう不要になった。

自営業なのであまりアイロンがけなどはしないのだけど、これも僕の担当。


ゴミ出しに関しては、ただゴミをまとめて捨てるのは僕の担当。

でも、分別ごみに関しては細かすぎてややこしいので、まとめておくと妻がやってくれていた。



洗濯ものを畳んだり、風呂掃除は子供がやってくれるようになった。


子供が遠足でお弁当が必要、なんて時も、以前は僕が作っていた。

今は長男が中学校でお弁当が必要。毎日作るほどのスキルが僕にないので、妻が作ってくれている。


でも、以前やっていたのでこれらのことは「できる」。

やってくれればありがたいのだけど、家事分担の際には、人が忙しければ僕が、という仕事だ。




妻でないといけない仕事の一つが、裁縫。


今朝、学校の制服の校章がとれてしまった、と長男に言われた。

少し前から夏服になっているのだけど、Yシャツに校章がついていないといけない。


アイロン接着できるものだったので、先日僕がつけておいたのだけど、2~3回の洗濯で取れてしまった。

まぁ、アイロン接着ってそんなもんだよね。


今日はたまたま長女も社会科見学があり、妻は弁当作りに忙しかった。

じゃぁ僕がやろう、と裁縫セットを出して挑んでみたのだけど…



結局、小さな布一枚を胸ポケットに縫い付けるのに、10分かかっても終わらず。

妻が弁当を作り終わってしまい、最初からやり直してもらった。

(縫ったところもガタガタで話にならない)



もう一つ妻でないといけない仕事が、PTAの会合への出席。

こういうのは場所の雰囲気にもよるのだろうけど、PTAがほとんど井戸端会議のようになっていて、女でないと話についていけない、そうだ。


#そう妻に言われて任せているので、実体はよくわからない。



あと、これはうちに限った話だけど、妻が園芸好きなので小さな家庭菜園が庭にある。

些細な収穫だけど、庭で取れた野菜を食べられるというのは、なにかうれしいものだ。


この家庭菜園も食卓に上る以上は「家事」なのだけど、僕に園芸知識がないので妻に任せるしかない。




我が家の場合は自営業なので、書類を作って役所に持って行ったり、会計をまとめたりする仕事もある。

これも「家事」の一部だと思っているけど、これも妻がやってくれている。


僕は字が汚いし、金勘定の適性が全くない。

それでも以前はやっていたのだけど、あまりにひどいので妻があきれてやってくれるようになった。


本当にありがたいと思う。

この仕事が大変なのにやってくれているから、僕ができる家事は出来るだけやろうと思っているのだけど。




男の考える家事は、「掃除、炊事、洗濯」に代表されるような、目に見えやすい仕事だと思う。


でも、炊事の前には買い物が必要だし、洗濯すれば畳んでしまう必要もある。

そういう部分をカウントしていない人は多い。一度経験すれば、そうした些細な仕事が想像以上に時間を奪うことがわかるのだけど。


それでも、炊事や洗濯ものを畳むなんて仕事は、House Keeping の一部なので「家事」だと思ってもらいやすい。


実際にはPTAへの出席とか、役所への書面提出とか、House Keeping ではないけど誰かがやらなくてはならない仕事がある。

こうしたものも、家の誰かがやることなのだから、家事だ。




僕は、家事に関してはかなりやっているつもりだけど、それでも5割行くかどうか、じゃないかと思っている。

以前は5割以上やっていたと思っているけど。


今は妻も4割以上やってくれていて、残りの部分は子供たちじゃないかな。


家事の多くは、難しいわけではなくて「時間がかかる」だけだ。

だから、子供でも案外戦力になる。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

家族

別年同日の日記

02年 結婚しました

03年 結婚一周年

13年 結婚記念日

14年 シャープのパソコン発売日

15年 冒険遊び場と変わった地震


申し訳ありませんが、現在意見投稿をできない状態にしています

忘れてた  2017-06-03 11:21:25  家族

▲目次へ ⇒この記事のURL

6月1日は結婚記念日だったのに、すっかり忘れていた。


…忘れていて妻に怒られた、とかではなく、妻も忘れていた。

2日の朝になって、妻が急に「そういえば、16年目もお願いします」とか急に言い出して、一瞬何のことかと思った直後に思い出した。



何の準備もなかったので昨日はそのまま過ぎたが、今日は土曜日なのでうまいもんでも食う予定。


まぁ、6月1日は「籍を入れた日」で、結婚式は29日に挙げている

どちらかと言えば、式の日を大切にしているのだけど。


#籍を入れた日は、月が替わった初日でうっかり忘れやすいため。


▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

家族

別年同日の日記

02年 ベランダ菜園

13年 料理コーナー更新

15年 ロバート・ノイス命日(1990)、ジョン・エッカート命日(1995)

15年 セガ創立日(1960)


申し訳ありませんが、現在意見投稿をできない状態にしています

キャベツ料理  2017-06-06 18:01:13  料理 家族

▲目次へ ⇒この記事のURL

お隣からキャベツを2玉いただいた。


虫食いになってしまい、出荷できないから、見た目悪くても良ければ…という。



実は、我が家でも小さな家庭菜園を作っていて、妻がキャベツを作っている。

お隣の方もそれは知っているのだけど、キャベツって素人が作るの難しいのね。

結球しないし、青虫がたくさんつきすぎて、虫食いだらけで食べられるところがわずかしかない。


お隣は規模は小さいが出荷もしているプロで、虫食いと言っても十分な出来栄え。


喜んでいただくことにした。




ところで、自分の家でもキャベツを作っているにもかかわらず、妻が少し前にキャベツを買ってきてあった。

季節だから、お店で安かったらしいのね。


で、家にあるの忘れて、また「安かったから」と買ってあった。

つまり、丸ごと2玉あった。



そして、実はお隣からキャベツをいただく前日、3玉100円という激安キャベツを見つけ、家にあるのは承知で買ってきた。

この後お隣からもらったことで、7玉になってしまった。


さぁ、これは急いで食わなくては。




じつは、その少し前に、逆側のお隣から玉ねぎをいただいていた。

周辺農家に囲まれていて、新鮮なものをいただけるのはありがたい。


じゃぁ、玉ねぎとキャベツでスープを作ろう。


キャベツは芯の側から8つに切るが、完全には切り落とさない。

大きな鍋に芯を下にして入れ、ニンニク、人参、ソーセージ、玉ねぎと一緒に、煮込み、コンソメで味をつける。


食べる直前に、切り落としていなかった部分にナイフを入れ、取り分ける。

見た目にも豪華な、キャベツ丸ごとスープ




これで1個消費したが、実は青虫を退治するために、外葉をけっこう剥いている。

青虫、2玉で10匹以上いたかな。何匹かは我が家のペットのハムスターのおやつになった。


虫食いの葉もきれいに洗い、ざく切りにする。

コンソメと塩昆布、ごま油をまぜて、一晩冷蔵庫に置く。美味しい浅漬けができた。


浅漬けを作るにはざく切りキャベツが多かったので、みそ汁の具にもなった。

これで、やっと1個と少し、完食。




回鍋肉風に作ってみよう。

玉ねぎと、冷凍豚肉 400g を一緒に炒める。

十分火が通ったら、キャベツざく切りを大量に。


小さなうつわに、味噌を料理酒で溶く。

片栗粉、ごま油、中華調味料、しょうゆを適当にまぜ、キャベツに火が通ったところで一気に合わせる。


…ちょっと味が濃かった。ご飯に載せるとおいしかったので、子供にはウケが良かった。


夕飯だったのだけど、ニラと卵の中華風スープも作った。

じつは、このニラも頂き物。




子供がいない昼にも食べよう。


回鍋肉と同じ感じに炒めるけど、玉ねぎは入れなかった。

妻が歯医者に行く予定があったので、ネギ類は避けようと。


味付けはスイートチリソースで辛めに。ご飯の上に載せてキャベツ丼。

子供がいると、辛い物食べれないのでね。




そういえば、次女がチャンチャン焼き好きだった。


キャベツと適当な野菜を刻み、ざっくり混ぜておく。


フライパンに少し野菜を敷き、その上に鮭の切り身を載せる。

上から野菜でふたをして、料理酒を入れて蒸し焼きに。


途中で上からシュレッドチーズをのせ、さらに料理酒で溶いた味噌をかける。




お好み焼きもやろう。


水溶き小麦粉を作る。結構緩めで大丈夫。

卵を入れておくと、フライパンに貼りつきにくくなる。


千切りキャベツを小麦粉と混ぜ鉄板へ。

上に肉を置いて蒸し焼きにして、片面焼けたらひっくり返す。


味付けはソースと鰹節、青のり。マヨネーズもかける。


…マヨネーズって、80年代から急に載せるのが当たり前になったよね。

昔は載せなかった。




さて、結構食べているのだけど、まだある。

次は何を作ろう。


キャベツとひき肉の重ね蒸しとか。

キャベツのトマトスープとか、キャベツカレーも結構うまい。


悩むのだけど、結構楽しんでいる。


▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

料理

家族

別年同日の日記

02年 晴天の霹靂

02年 Home Brew

04年 そう来るとは思わなかった

04年 77の手習い

04年 怪我

11年 PC購入

13年 次女のぬいぐるみ

14年 フェルディナント・ブラウンの誕生日

16年 テトリス完成(1984)

18年 凄腕プログラマ


申し訳ありませんが、現在意見投稿をできない状態にしています

計算機の同人誌  2017-06-09 17:04:35  歯車

▲目次へ ⇒この記事のURL

計算機の同人誌

息をするように本を読む人、というのはいるのだけど、僕はそのタイプではない。

本を読むこと自体は好きなのだけど、趣味の優先順位としては低めなので本の購入に使う費用は少ない。


と言っても、本棚はそれなりに趣味の本で埋まっているのだけど。

資料が多いな。古いコンピューターの資料とか。


計算する機械が好き、というのは、それほど趣味としてメジャーではないと思う。

機械が好きな人はいても、大抵はバイクや車のエンジン方面に行ってしまったり、計算機が好きでも電気回路方面だったり。



ただ、僕も実際に物を動かすというよりは、「その原理」とかを知るのが好きなのね。

趣味はやっぱりコンピューターで、原理を知りたくて昔のものを調べているうちに、機械にたどり着いてしまった、という感じ。


そういう人、あまり見かけない。


だから、一般書籍としてはそういう本は少ないし、見かけても専門書に近い高価なものか、安い場合は薄っぺらい内容にしているものが多い。


#濃すぎて一般化しないので、薄めていることを悪いとは思わない。

 ただ、僕向けの本ではないというだけだ。




さて、こういう狭い趣味の分野なら同人誌が面白い、ということも気にはなっていた。

ただ、いざ探してみると、趣味分野が狭すぎて自分が気に入るものも少ないのね。


古いゲームは好きだけど、それは個人の想いとして好きなだけで、人の想いを読みたいわけではない。


そんな中で、数年前に見つけて気になっていた人がいた。

その人の趣味分野はカメラだったけど、古めのものの機構とかを紹介する漫画を描いていた。


素朴な絵柄が気に入った、というのもあるけど、Twitter でフォローしていた。

カメラ以外にも自転車とか、いろいろな本を書いているようだけど、まぁ「微妙に趣味が違う」ので買おうとは思わなかった。




が、昨年暮れに、「タイガー計算機などの機械計算機の本を出す」と知った。


あー、興味ある。読みたい。

でも、コミケに行くほどの情熱はない。その人は委託販売もしているので、委託を待つことにした。

そして、先日「委託しました」とツイッターで読む。


よし買おう。…と思ってからも、実際に買うまでに結構時間かかったのだけど、昨日本が届いた。

1冊だけ買うと送料のほうが高いから、シャープの初期の電卓について書いた本も一緒に買った。



内容、素晴らしい。

いや、本当に「機械計算機が好き」な人でないと何が面白いのかさっぱりわからないと思うけど。


僕は、歯車計算機が好きとは言っても持ってないし、当然分解して中を見たこともない。

高校時代に拾って、動きが悪かったのを、分解はしないまでも油さしたりメンテナンスして、動くようにはした。

高校の部活に置いておいたら、いつの間にか顧問の先生のものになっていたのだけど。


そうかー、中身こんな仕組みになっているのかー。

計算の原理に関しては知っていたけど、ただの「原理」にとどまらず、使いやすくする工夫などが解説されている。


それも、機械式計算機の元祖であるオドナー式から始まり、改良されてタイガー計算機に至る過程がよくわかる。




原理の説明が中心なので、使い方などにはあまり踏み込んでない。

割り算が面倒くさい、という記述があるけど、タイガー計算機なら引き放し法を使うことで簡単にできる。


ただ、著者の方はオドナー式を中心に据えて書いていて、オドナー式の機能だと引き放し法は使えない。


開平法についても、「ルート計算だってできる」と最後に書いているけど、方法については原理の示唆どまり。

まぁ、ここら辺は「機械式計算機の面白さを知ってもらう」という範囲を超えるので、扱わないでよいとは思う。




この話、後日談に続きます




2017.6.18追記

作者さんから連絡いただいた。


引き放し法を書いていないのは、単に書き忘れだそうだ。

しかしまぁ、一番古いオドナー式から順次説明することで仕組みがわかりやすくなっているし、オドナー式では引き放し法が使いづらいのは事実なので、無理に入れても話の腰を折ってしまうのかな、とも思う。


最後に書いた通り、機械の原理の説明をする本なので、使い方は別でいいんじゃないかな。

気になる人は、すぐ上のリンクが僕のページの説明ページに飛んでいるので、読んでください。


▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

歯車

関連ページ

連乗機能【日記 17/06/12】

別年同日の日記

02年 最終戦略

05年 spring has come

05年 3ヶ月点検

13年 WEB上でのドット絵の拡大

16年 8086 発表日(1978)

19年 新マシンセットアップ中


申し訳ありませんが、現在意見投稿をできない状態にしています

連乗機能  2017-06-12 11:01:20  歯車

▲目次へ ⇒この記事のURL

先日書いた機械計算機の同人誌で、「連乗機能」というものを知った。


タイガー計算機は好きだけど、恥ずかしながらこの機能を初めて知った。

タイガー計算機以前の「日本計算機」の機械にすでに入っているらしい。


じゃぁ、タイガー計算機にもあるのだろうなぁ、と思って調べたら、YouTube に「連続して掛け算する」ビデオがあった

でも、このビデオは歯車がガシャガシャ回っているのを楽しむような趣旨で、詳しい解説がない。


しかし、以前から謎に思っていた「左下のつまみ」が連乗機能に関係してそうだ、ということはわかった。




連乗以前にタイガー計算機の説明をしよう。


歯車に数字がついていて、「3」のところから「2つ」回すと、「5」になる。

これで足し算になる。わかりやすいね。


桁上がりとか、桁ずらしとか、計算に便利な機能はいろいろついているのだけど、基本的に足し算しかできない。

でも、足し算をするだけなら、ソロバンを使ったほうがはるかに速い。



タイガー計算機は、主に「大きな数の掛け算」や、「割り算」を行うものだ。

足し算しかできないのだけど、ハンドルを回すごとに1回足される。同じ数を5回足せば、5を掛けたのと同じことになる。



タイガー計算機では、「足す数」を設定する場所があって、ハンドルを回すごとに「結果」を表示する歯車が回っていく。

5回ハンドルを回せば「5倍」の結果が得られるのだけど、結果窓の数字が変わるだけで、「足す数」の数字は動かない。当たり前だけど。


じゃぁ、今出た「結果」に、さらに計算を加えたいときはどうするか。


実際、計算していると連続して掛け算をしたいときは多い。

「1日って何秒?」って聞かれたら、24時間×60分×60秒を計算したくなる。


#プログラマの中には、この値を暗記している人も多いだろうけど。



こうした、「連続して乗算を行う」ための機能が連乗機能だ。

具体的にいえば、結果表示窓の数字を、「足す数」の窓にコピーする機能だ。




ちょうど、昨日子供の要望で理科ハウスに遊びに行った。

前回行ったときはタイガー計算機が無くて、しまわれてしまったのかと思ったのだけど、ありがたいことに置いてあった。


さぁ、試してみよう。

使い方はわからないけど、左下のつまみが関係しているはずだ。



…しばらくいじって、次の操作だとわかった。


1) まずは計算を行い、結果表示窓に数値が入った状態にする。


2) 「足す数」をクリアするレバーを操作する。

 計算クランクの下についているレバーを、親指で奥に押し込めばよい。

 この際、レバーを「押したまま」で次の操作に入る。


3) 左下にあるつまみ…2つの短いレバーを、寄せるようにつまむ。

 すると、計算結果などを表示する「窓」部分が、わずかに横にずれる。

 通常はこのレバーにはロックがかかっていて、上に書いた「足す数のクリアレバー」を押していないと動かない。


4) 「足す数のクリアレバー」は離してよい。左下のつまみはつまんだまま。


5) 結果表示窓のクリアレバー…結果窓の右側、先の「足す数のクリアレバー」の手前にあるレバーを手前に引く。

 もちろん結果がクリアされるのだが、この際に「足す数」の表示窓に、結果表示窓の値がコピーされる。


 実際にはコピーではなく「足される」ようだが、操作上、足す数の表示窓は 0 クリアした後のはずなので、コピーとなる。



丁寧に説明しているのでややこしそうに見えるけど、実際にはそれほどややこしくない。

でも、「レバーを押し込みながらつまみを操作」「つまみから手を離さずクリアレバーを操作」という、タイガー計算機としてはイレギュラーな操作にはなっている。


歯車計算機では、歯車が「噛み合っている時」に変な力を加えられると困るので、レバー操作中に別の操作を行うようなことは厳禁なのね。

ただ、「0クリアしてから操作しないと意味がない」「歯車をずらし、普段使わない歯車とかみ合わせた状態で動かさないと意味がない」という操作が続くため、イレギュラーな操作となる。




これ、タイガー計算機の公式ページに行ったら、ちゃんと書いてあったね

なので、単に僕が勉強不足なだけ。


タイガー計算機にもいろいろなバージョンがあって、連乗つまみは「足す数のクリアレバー」を押し込んでいないでも操作できるものもあるようだ。

公式ページのマニュアルは、そちらのバージョンのものみたい。


理科ハウスにあった個体では、押し込みながらしか操作できなかった。

もっとも、理科ハウスの個体は壊れていて、連乗機能をつかっても、1の位は転送できなかった。

つまみ操作が違うのも、バージョンによるものではなく故障の影響、という可能性もあるかもしれない。


#冒頭に挙げた Youtube ビデオでも、押し込みながら操作していたので、バージョン差だと思うのだけど。



ところで、公式ページでも除算のやり方として、同人誌でも挙げられていた「面倒くさい」方法しか書かれていないのね。


引き放し法というやり方もあって、慣れないと意味が分からないのだけど、操作がずっと少なくなる。

どうも、YouTube のビデオなどを見ていても、この方法を解説したものが見当たらないように思う。


オドナー式で引き放し法をやっているビデオがあったのだけど、941÷4 の結果として、37686 という数値を得て終わっている。


…これ、もう一段階解説してほしい。

オドナー式で引き放し法を計算するのであれば、先頭桁から数えて「奇数桁目」は 1 を引いて、「偶数桁目」は、10 の補数にする必要がある。


先頭桁は、3 から 1 を引いて 2

2桁目は、7 を 10 から引いて 3

3桁目は、6 から 1 を引いて 5

4桁目は、8 を 10 から引いて 2…


すると 23525 という数列が得られる。これ、941÷4 の答えである、235.25 の意味だ。


ちなみに、タイガー計算機だと、今書いた「解読操作」も機械が勝手にやってくれる。




理科ハウスでは、僕が計算機で遊んでいたら長男が寄ってきたので、好きに計算させた。

すると長男は「355 ÷ 113」を計算し始めた。


何の計算かわからずに見ていたら、3.1415... と出てきた。円周率の近似分数だそうだ。

よくそんなの覚えているな。



理科ハウスの館長さんも、もらったからタイガー計算機を置いているだけで、あまり使い方を知らないというので一通りの機能を解説しておいた。



近いうちに、子供が興味を持ちそうな説明書を作って持っていくといいかもしれない。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

歯車

別年同日の日記

02年 OSアップデート!!

05年 夏至祭

15年 生卵と生豚と

18年 ゲームの作り方

19年 Google drive バックアップと同期


申し訳ありませんが、現在意見投稿をできない状態にしています

遅い Javascript を iframe に追い出す方法  2017-06-13 12:18:54  コンピュータ

▲目次へ ⇒この記事のURL

お仕事で、すでにあるコンテンツに「広告」を入れることになった。


特に大変そうな話ではないのだけど、これが大変なことになっていたので僕が呼ばれた。

まぁ、それなりのお金をいただけるのでいいのだけど。


難点はいくつかあったのだけど、それは個別に解決した。

ざっくり書くと、設計の悪い「テンプレートシステム」がまともに働いておらず、1つのコンテンツのデータが1カ所にまとまっていない上に、1つのコンテンツ群のテンプレートが似て非なる複数に分散していて、さらにそれらを処理するプログラムがページの数だけある、という惨状だった。


なんでプログラムをデータと同じ数だけ複製して、少しづつ書き換えようと思ったのだろう。

html で全部べた書きしていたほうが、データが分散しないだけまだましだったと思うよ。



これを、まともな処理方法に改めないといけなかったのだけど、実のところ技術的な問題はそれほどなかった。

単純に、しっかりしたシステムを作ってデータを移行するだけだったから。


問題は、そうした手間を導入することに理解を得る必要があったことだな。

今までのシステムで動いているのに、手間をかけて(ということは金も時間もかけて)、なぜ大規模に改修を行う必要があるのか、ということの賛同を得るのが一番の難題。




しかしまぁ、そちらは解決した。技術話ではないので特に書かないけど。

テンプレートとプログラムは統一され、コンテンツデータは適切に集約された。

これで、全ページに広告を適用することができた。


最後に残った難題が、広告システムの動作が遅すぎる、という技術的な問題だった。



広告システムは「いろいろ試してみたい」というクライアントの意向で、3社用意された。


広告の表示場所は、いろいろな都合があって Javascript で生成することになっていた。

Javascript で生成する中に、広告表示のためのタグを埋め込む。


…埋め込めばいいんでしょ? と思ってタグを Javascript から生成したら、動かない。

なんで? とおもって、広告表示用の Javascipt を解析してみる。


document.write が入っていた。なんてこった。現代的なシステムとは思えない。




元々、Javascript は HTML 内に混ぜて書くような方法で考えられていた。

この際、document.write で何か「表示」すると、Javascript が埋め込まれた位置に、「表示」を生成する。


より詳しく言うと、HTML のパース中に Javascript コードを発見すると、その場で HTML のパース(文法解釈)は一時停止し、Javascript コードのパース、実行が始まる。


コードの実行が終わると、HTML のパースが再開する。

その際に、 document.write で書かれた内容があれば、その内容からパースが始まる。


ということは、「後から」Javascript で Javascript コードを埋め込んでも、document.write は動かない。




じゃぁ、最初から HTML に広告タグを埋め込んでおくしかない。

div で囲んで「表示しない」領域を作り、必要な広告をすべて読み込む。


これらの読み込みが終わるまで、HTML のパースは完了しない。

HTML のパースが完了すると、HTML 内容がいじれるようになるので、Javascript で広告を出したい位置にコピーする。


…という戦略で、document.write の問題を解決した。


そしたら、次の問題が出た。

この広告システムがすごく遅くて、数枚の広告を出すために、2秒以上待たされたのだ。

他の広告と合わせ、それまで1秒で表示できていたページが、4秒待たないと表示されないようになった。




すべては document.write のせいなのだ。

javascript で後から生成できれば、とりあえず画面の表示をしてしまい、ユーザーが読み始めてから周囲の広告などを整えればいい。

でも、document.write されているとそれができない。


じゃぁ、最初から広告を HTML 内に配置していると、document.write の結果を待つために HTML パースが停止し、画面表示が遅くなる。


こんな腐ったシステムを提供している広告会社も、それを使おうというクライアントもどうかしているとしか思えないが、それをどうにかするのが僕の仕事だ。




HTML の解釈が阻害されるなら、ユーザーに見せる HTML と、広告を呼び出す HTML を分離してしまえばよい。


具体的には、iframe を使う。


iframe タグを記述する HTML …「外側」と、iframe の中で読み込まれる HTML …「内側」は、別々の HTML だ。

外側にとっては「iframe がある」ということが HTML パースの情報であり、その iframe 内の HTML がどのような内容かは関知しない。


だから、内側で遅い Javascript が動いていても、外側はすぐに HTML パースを終わらせられる。



ただ、こうしたことで問題も出た。

広告を含めた各種情報を配置する Javascript が動き出したときに、まだ広告が読み終わってないのだ。



これは、仮に「広告が後で入るスペース」を埋め込むことにした。

そして、iframe 内の広告がすべて読み終わった、というタイミングを待って、実際の広告に差し替える。


実際にはもう少し問題解決しないと動かなかったのだけど、大体こんな感じ。


これで、ページ表示まで4秒かかっていたのが、1秒に短縮された。

劇的な高速化だ。


…というか、それが本来の速度だったのだけど。




しばらく運用していると、もう一つ問題が出た。

いくつかの広告は、ページに書かれたことを認識して、内容に合わせて表示を切り替えるようになっていた。

しかし、どうも内容が認識できないようで、汎用の広告ばかり出るのだ。


…と、文字で説明してしまうと、情報が整理されているので理由がわかってしまうな。

作業中は混沌としていて自分でも気づかなかったのだけど。



広告が読み込まれると、その時点でサーバーに「読み込み元」のページの URL が referrer として送られる。


サーバーはこの URL をクロールすることでページの内容を知るのだけど、iframe 内のページには広告しか入っていないので、適切な内容を読み出せない。



これはつまり、referrer を偽装して、外側ページの URL を返せばよい。


内側のページにとっては、外側のページは呼び出し元であり、referrer で知ることができる。

なのでこれを使って、内側のページが、外側のページの URL を名乗れるように環境を整えてやる。


これで、「現在のページを問われた際に、その呼び出し元の(実際の記事の) URL を返す」ようになる。解決。


#http のリクエストヘッダで送られるのは referer だけど、Javascript などで参照するときは referrer 。

 後者が正しい綴りだけど、http の RFC 書いた人が綴りミスして、公式にそのままになってしまった。

 上の文章では正しいつづりで揃えている。


#iframe 内だからこれで解決だけど、普通のページでこの referrer 偽装をやってはならない。

 なぜやってはならないか…が理解できないうちは、気軽に手を出さないこと。




同じ問題で悩んでいる人がいるかはわからないが、以下プログラム方法を示唆だけしておこう。

示唆だけ、というのは意地悪ではなく、実際のコードはそれぞれだと思うから。



・document.write が入っているような Javascript をどうしても動かさないといけないなら、別の HTML に押し込めてしまい、iframe 内に呼び出す。

 iframe は CSS などで非表示にしておき (display:none) 、得られた結果はあとで別の個所にコピーすることで表示する。


・iframe 内に表示する html には、URL を呼び出し元に偽装するための Javascript を仕込んで置く。

 history.replaceState(null,null,document.referrer);

 これで、iframe 内に書かれたプログラムは、URL 的には iframe に入れられたことに気付かなくなる。


・iframe の描画完了は、load イベントで知ることができる。

 jquery を使っているなら $("iframe").on("load",function(){~}); という感じ。

 iframe の部分は、もちろん #id などにしてよい。


・iframe 内のアクセスは、$("iframe").contents().find("#foobar") という感じ。

 これで、iframe 内の #foobar にアクセスできる。

 (iframe 内から外側にアクセスする方法はないので、外から操作すること)



これで、描画をとりあえず終わらせてしまい、遅いデータを後からゆっくり料理できるようになった。


あとは、煮るなり焼くなりお好きなように。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

関連ページ

Programming Tips

別年同日の日記

02年 アップデート完了

02年 サーバー完全復活

04年 夏至祭

07年 大人買い

18年 携帯電話コンテンツ


申し訳ありませんが、現在意見投稿をできない状態にしています

ゼルダ雑感  2017-06-21 11:31:42  コンピュータ 家族

▲目次へ ⇒この記事のURL

3日ほど前に、ゼルダの雑感を書いている個人blog を読んだ。


今回のゼルダは「自由度が高い」とされるのだけど、実際遊んでみると、そこかしこで任天堂の見えざるコントロールを感じられ、強制ではなくやんわりと、導かれているのがわかる、という内容。


「おせっかいおばさん」と表現していたけど、非常によくわかる。

このおせっかいが嫌な感じではなく、意図を感じたら信頼して乗っかれる安心感がある。


だから乗っかっていくと、自由だと言われながらもみんなが同じような進め方になる、というのも同意。




と、同意したうえで、我が家の話を書いておこう。

上の記事に倣い、僕のゼルダ遍歴から。



僕はファミコンゼルダ・リンクの冒険はリアルタイムに遊んだ。


スーファミは持ってなかったので遊んでないけど、後に「神々のトライフォース」の GBA 移植版は遊んだ。


GB の「夢を見る島」は、高校の後輩の「やるべき」という強力プッシュで借りて遊んだ。

でも、急いで遊んで返したので、あまり細かいことを覚えていない。


ゲームキューブ版は発売日前に予約し、予約特典でもらえた N64 のゼルダを1か月間遊び倒した。

裏ゼルダとムジュラもついてきたのだけど、GC 版が発売になったのでそちらに移行してしまい、遊んでない。


GC 版「風のタクト」は…N64 が面白かったので期待していたが、少し肩透かしと思った。

その後 Wii 版「トワイライトプリンセス」も買ったが、これは「面白くない」と感じて、途中で放棄した。


Wii版の「スカイウォードソード」は遊ぶ気にもならず、完全スルー。


近年の 3Dゼルダには、N64 の人気を超えようとして「がんばりすぎた」残念感を感じている。

プレイヤーに感動を与えようとしすぎて、押し付け気味に思えるのだ。



だから、今回のゼルダも、「あぁ、また出るんだ」程度でスルーのつもりだった。

…が、Switch 発売直前のインタビューなどで「近年の嫌な部分が払拭されている」ことを知り、遊びたくなった。


でも、Switch 大人気で入手できなかったのね。

入手は4月末。発売から2カ月たっていた。


で、いま2か月近く遊んだ状態。




「とりあえずの目的」である、ガノン征伐は果たした。


でも、このゲームは目的があってないようなもの。

「ミニチャレンジ」と呼ばれる、いわゆる RPG の「使いっぱしり」はゲーム中に大量に発生して、無視して進んでもいいのだけど、ゲームクリア後はこれをひとつづつ解決して楽しんでいる。


ミニチャレンジではないが、各地にある「祠」や、木の妖精「コログ」探しも楽しめる。

ストーリー上の目標はガノン征伐だけど、実際にはこちらの探索のほうがずっと楽しい。



ネタばれになるかもしれないけど、ガノン戦はまだ「近年のゼルダのいやらしさ」を感じた。


強いんじゃなくて、倒し方がわかるまでダメージを与えられない。

でも、こちらも逃げ回っていればダメージを受けない。

硬直した状態で延々と時間を浪費するゲームを「面白い」とはとても言えない。

ゼルダの嫌な部分がほとんどなくなっているとはいえ、完全ではなかったな、という感想。




家族中で遊んでいるが、暗黙の了解がある。

「先を進んでいる人のプレイは見ない」ということだ。


また、後から遊んでいる人にヒントを出すのもなし。

具体的に「はい」「いいえ」で答えられるくらい絞り込んだ、わずかな質問程度は答えるけど。


この結果、それぞれが自分の考えで進めているのだけど、「自由度」が非常に高いことがわかる。

この点において、「任天堂のコントロール」なんて存在していない。

(いや、もちろん道に迷わないような親切なサジェストはあるのだけど)



妻は僕よりも先を行っている。

自由時間の違いで、僕より多少長く遊んでいるためだ。


ただ、プレイスタイルは結構違う。

僕は敵を見るとできるだけ殲滅してから先に進む。

逃げ回っていて、前からも敵が来て挟み撃ち…というのが怖いから、着実に進みたいのだ。


そうやって、目的地に向けてどんどん進んでいった。



妻は、無視できそうな敵なら逃げ回って先に進む。

逃げる途中で道を外れてしまうこともあるし、逃げ回ることで節約した時間で、周囲を無駄に探索したりもする。


この結果、ストーリーの進行具合は同程度でも、妻のほうが多くの「なにか」を発見していた。

その一方で、闘うことで得られる報酬…強い武器などは、僕の方が持っていた。



長男は、中学1年生だがゲーム慣れしていないので、まだストーリーの中盤だ。


後ろから見ているとイライラするくらい、本筋と関係のない部分を楽しんでいる。

ゲーム慣れしていないので、触っているだけで楽しい段階なのだ。


例えば、稲刈りをすると米が手に入る、と知ると、延々と稲刈りだけをやり続ける。

その稲に火をつけると燃え広がり、上昇気流が起こって飛び上がれる、と知ると、面白がってそれを延々続ける。


とにかく「これやったらどうなるのだろう?」と思ったら試してみる。

さまざまな操作を試しているので、僕も妻も気づかなかったような「操作テクニック」を編み出している。


敵と戦うのを極度に恐れ、挟み撃ちにあったりするとワープして逃げかえる。

操作などの「ストーリー外の部分」を楽しみすぎて、ストーリー上、次に向かうべき場所を忘れてしまう。


だから、ストーリーはあまり進んでいない。



小学校4年生の長女は、「素材集め」と「買い物」が楽しい様で、そうしたゲームとして遊んでいる。


家族中で一番大胆な行動に出て、マップを入手していない土地でも闇雲にガンガン進んでみて、そこで見つけた「まだ見ぬもの」を、買えるものであればどんどん購入する。


なので、ストーリー進行や「マップの入手具合」とは関係なく、後半にならないと入手できないはずのものを持っていたりする。



進行度合いの割には、コログの発見率が非常に高い。

元々四葉のクローバー集めが特技で、「見た目のわずかな異常」に気付く能力が非常に高い。

それがゲーム中でも活かされているのだ。


闘うことも恐れないので、長男よりストーリーを進めているが、ボス戦などは怖いようだ。

ボスの前まで行くといったん退却し、長男がボスを超えるのを待って(ヒントを得て)ボス戦に挑む。


一方で、とにかく先に進むことが楽しいので、村などを見つけても人の話をちゃんと聞かない。

ヒントをくれる人を無視したまま先に進み、「あれぇ? これどうするの?」なんて言っている。


普段からも「人の話をちゃんと聞くように」と注意されている子なのだけど、ゲームを遊んでいる時にも同じ注意をするとは思わなかった。




ストーリーも…一応、4つの「小ボス」がいるのだけど、どこから倒してもかまわない。

いや、倒さずにいきなり大ボスに挑むこともできるのだけど、初回プレイでそれをやる人はいないだろう。


たぶん、最初の「小ボス」はみんな一緒だと思うんだ。

ここは「任天堂のコントロール」が利いている。うちでも、4人とも同じだった。


でも、その次のボスはもう、人によって違うのではないかと思う。

一応「これを2つ目に倒すべきなのだろう」というボスはいて、長男と長女は素直にそこに進んでいた。


でも、僕と妻は、気づかずに4番目のボスに進んでしまっていた。

余りの強さに泣きそうになりながら戦って、「2体目でこんなに強いのだと、この後どうなるんだ」と思って拍子抜けした。


「おせっかいおばさん」の話として書けば、いきなりこのボスのいる方向に進んだのも、それなりのサジェストがあったからなんだ。

詳しく書くとネタバレになるから書かないけど、理由を説明したら納得してもらえると思う。



だから、おせっかいおばさんは確かにいるのかもしれないけど、コントロールは絶対ではない。

4体中2体目のボス、という時点でかなり違いが出てくるし、そこに至るまでも遊び方が全く異なる。


買い物はせずに節約している人もいれば、ガンガン買い物をする人もいる。

さまざまな操作の可能性を試す人もいれば、そんなことよりストーリーを進めようとする人もいる。


これは十分に「ゲーム慣れしていない人にとっても、自由性が高い」ということかと思う。




じつは、この「ゲーム慣れしていない人にとっても」という部分で、舌を巻いている。


僕もゲーム業界の端っこにいた人間だから分かるけど、遊ぶ人ごとに遊び方が異なるゲームって、言うのは簡単だけど作るのは非常に難しい。


ましてや、「ゲーム初心者」と、「ゲーム慣れした上級者」が同じ世界で楽しめるなんてすごいことだ。


過去に、何度かそうしたゲームを見たことがある。

逆にいえば、いろいろなゲームを見ていても、初心者と上級者が共に楽しめるゲームなんて、数えるほどしかなかった。


絶対的な条件としてはゲームの目的を無視して、操作するだけで楽しめること。


敵が怖いなら戦わないでよい。ストーリーを進めるのが難しいなら、最初の場所にいればいい。

それでも楽しめる、というのは、本当にシステムがよくできていないといけない。


今回のゼルダは、そうしたゲームの中でもトップクラスであるように思う。




ところで、小学校2年生の次女は…いや、彼女は遊んでいない。

マリオカート8は大好きで遊んでいるので、ゲームができないわけではない。


ただ、「敵が出てくるゲーム」というだけで怖いようだ。

長男や長女が遊んでいるのを眺めているが、強い敵が出てくると緊張感に耐えかねて、別の部屋に逃げてしまう。


自分で遊んでなくても「緊張感に耐えられない」ほどにゲーム世界に入り込める。

遊んでいない子の行動をとっても、ゲームがよくできていることを意味している。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

家族

関連ページ

スプラトゥーン2初感【日記 17/07/24】

別年同日の日記

02年 飲んだくれの日々

03年 なんだか色々入手

13年 「暗号の歴史」と、アメリカの盗聴問題

14年 ファミリーベーシックの発売日(1984)

15年 山歩き

16年 コンピューターが初めてプログラムを実行した日(1948)


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -