2014年11月10日月曜日

オナ禁102日目

8月1日から始めたオナニー禁止令が、今日で102日目を迎えた。

本当は100日目のキリ番で書き込みをしようとおもっていたが、すっ飛ばしてしまった。すっ飛ばしてしまうほどに、もはやオナ禁は日常と化してしまった。

生産性は非常に高い。ただ、最近気持ちが落ち込む出来事が立て続いたため、気分はそれと相殺してしまっているが。生産性自体は非常に高いのだ。むしろ意識が高すぎて、時々、意図的にクールダウンを挟まないといけない。この45歳の身体がもたない。

体重は78 kgを切った。これはオナ禁効果か、禁fb効果かは、わからないが。意欲的に働いているので、脳が非常にカロリーを消費しているのだろうとおもう。2ヶ月前の体重は85 kg強であった。ちなみに結婚当初2006年の体重記録が出てきて、何と89.6 kgであった。12 kg重かった自分というのが、今となっては想像できない。

もっとも、2001年にカンボジアへ来た時の僕は70 kgぐらいしかなくて痩せていた。カンボジアが僕を太らせたのである。ならばこの贅肉はカンボジアへお返しせねばなるまい。

意欲的に働けるためにもう一つ気をつけていることは、例によって水野あおいの標語
「眠くなったらすぐ寝よう」
である。皆さん笑うが、これは本当に人生において最も大切な標語であると最近になってようやくわかってきた。

ある研究によると、睡眠時間6時間の後の知的生産性は、酒を2~3杯呑んだ後の知的生産性と同じだったそうだ。
すなわち、6時間しか寝ないで仕事に来るヤツというのは、酒を2~3杯呑んで出勤してくる不埒なヤツとまったく同程度に、仕事に対して不真面目であるということだ。

40過ぎたら人間は健康に気を遣わねばならない。このことは40過ぎないと本当にはわからない。30代の頃の自分や、今30代の皆さんへ声を大にしてお伝えしたいが、どうせ聞きやしないだろう。これは体操やスポーツをやれば良いというだけのことではないからだ。

InDesignスクリプトで配列要素オブジェクトを扱う際のハマり所

以下のInDesign CS3スクリプトのコード素片は、ものすごく間違いである。
どこが間違いか、ちゃんとわかってる方なら一瞬でわかるだろう。
一瞬でわからない方は、1分考えてみて、答えを読んでほしい。

...
var oRect = oPage.rectangles[iRect];
var oRect2 = oPage.rectangles.add();
oRect2.geometricBounds = [oRect.geometricBounds[0], 215, oRect.geometricBounds[2], oRect.geometricBounds[3] + 215 - oRect.geometricBounds[1]];


答えは…

配列要素を代入したこのoRectは、値ではなく、参照である。
従って、.add()した時点で、oRectは、当初とは異なるオブジェクトを指し示している可能性がある。

僕はここで20分ハマった。
今脱出したところだ。

これがJavaScriptの性質なのか、それともInDesign CS3のExtendScriptの性質なのか、ナンチャッテプログラマーの僕にはわかりましぇ~ん。

絵文字の人種差別問題、Unicodeに肌色濃度修飾子導入へ

絵文字の人間は白い人ばかり…高まる批判を受け、Unicodeに、肌色濃度を指定する修飾子が導入される見通し。

各社これを支持しており、さまざまな環境への実装はかなり早く進むと見られる。

各修飾子に対して具体的にどのようなレンダリングを行うかは実装系に委ねられており、今後はその実装の色味や独自性へと話題の焦点は移っていくと思われる。

http://www.unicode.org/reports/tr51/#Diversity

2014年11月7日金曜日

InDesignスクリプトで選択セル群を扱う際の注意

今日は、InDesign CS3で選択表列群のすべてのセルのすべての段落がセルに収まりかつセル先頭段落が1行になるよう長体をかける汎用スクリプトとか、列幅を広げる汎用スクリプトとかを作った。
もちろん純粋に趣味で作るプログラムなど意味はない。明日からの案件で使うのだ。それこそが僕の趣味である。
注意すべき点として、InDesign文書で複数のセルを選択している時、app.selection.length = 1となる。セル個数ではない。
そしてそのセルが属する表列がほしい時、oCell.parentColumnを直接取ると、それのindexプロパティとかconstructorを得ようとするとなぜかオブジェクトエラーとなることが多い。選択範囲由来のセルオブジェクトないし表列オブジェクトはちょっと何かが不完全らしい。セルのindexは選択範囲内で何番目という値が返されてくる。
セルIDは正しく取れたので、以下のように、上から目線でこのセルでしょというやり方(該当部分抜粋)でうまくいったが、もっとやりようないんですかねこれ…。

  // 選択されている各セルについて
  var oCells = oSelection.cells;
  var nCell = oCells.length;
  var iColumnBefore = -1;
  for (var iCell = 0; iCell < nCell; iCell++){
    var oCell = oCells.item(iCell);
    var qCell = oCell.id;
    var oTable = oCell.parent.parent;
    var oCellTables = oTable.cells;
    var nCellTable = oCellTables.length;
    for (var iCellTable = 0; iCellTable < nCellTable; iCellTable++){
      var oCellTable = oCellTables.item(iCellTable);
      var qCellTable = oCellTable.id;
      if (qCellTable == qCell){
        var oColumn = oCellTable.parentColumn;
        var iColumn = oColumn.index;
        if (iColumnBefore != iColumn){
          // 表列のすべてのセルのすべての段落がセルに収まり
          // かつセル先頭段落が1行になるよう長体をかける
          shrinkInCellsColumn(oColumn);
          iColumnBefore = iColumn;
        }
        break;
      }
    }
  }

2014年11月4日火曜日

Hubotでコマンドの引数を省略可とする場合の注意

module.exports = (robot) ->

  # コマンド受け付け
    # 引数1: サブコマンド
    # 引数2: 非負整数
    # 引数3: 非負整数または非負小数
  robot.respond /([a-zA-Z]+) ([a-zA-Z_]+) ([0-9]+) ([0-9\.]+)/i, (msg) ->
    cmd = msg.match[1]
    type = msg.match[2]
    qty = msg.match[3]
    avept = msg.match[4]
    switch cmd.toLowerCase()
      # 作業種別指定・点数指定・平均pt指定の引き合い
      when 'inq'
        # 引き合い(今発注、今入稿)に対する最早予想納品時刻を算出
        typeRedmine = typeHubot2Redmine type
        etd = calcEtd typeRedmine, qty * avept, new Date()
        typeJa = typeHubot2Ja type
        msg.send "#{String.fromCharCode(0x16)}#{typeJa}#{qty}点(平均#{avept}pt)を今発注、今入稿していただくと最早予想納品時刻は#{etd}です。" # 反転表示

のようなコマンドをHubotで実装した。

たとえば
cdr inq cut 100 1.5
とIRCで打つと、この.coffee内のサブルーチンで実装された生産スケジューラが計算を行い、最早予想納品時刻を回答するというしくみだ。なお、cdrはこれまでにも出ている我らがHubotの名前である。またcutは「切り抜き」という当社のひとつの作業種別を指す。

このとき、最後の引数の+を*に変えても、その引数は省略可能とはならないことに注意が必要だとおもった。すなわちmsg.matchに対する*はあまり意味がない。引数を省略可としたければ、もうひとつrobot.respondを書く必要がある。

※なお、上のスクリプト中、typeHubot2RedmineはIRCで打たれた作業種別文字列をRedmine用に正規化するサブルーチン、typeHubot2Jaは同じく日本語への変換ルーチンである。calcEtdは生産スケジューラが最早予想納品時刻を回答するサブルーチンであり、その最終引数に予約入稿日時を指定することができるようになっている。スクリプトは今入稿の場合である。

2014年11月3日月曜日

Moore and Hodgson Algorithmって、これ実装してますとはなかなか公言しづらいよね

少数のお客様に多大な納期遅れを集中させることにより大多数のお客様を納期遅れにしない手法。

各種のジョブ順序決定法の比較と演習
http://www.oit.ac.jp/dim/~honiden/Exercise/Scheduling/Sch_3.pdf
http://www.mi.s.osakafu-u.ac.jp/~hojo/lecture/jugyo7.pdf
http://www.mi.s.osakafu-u.ac.jp/~hojo/lecture/jugyo8-ans.pdf

ちなみに、より多くのお客様に納期遅れを薄く広げるのは、このサンプルによれば単純EDD法。

貴女はどちらを選びますか?

(もちろん、納期遅れを発生させないマネジメントをするべきですが)

Which method should 
I implement in our system?

生産計画法について勉強中…

誰もが必要とすることなのに、意外と、決め手となる理論や解法はなく、みんな苦労してるんだなぁ、というのが率直な感想。
自社ではどうする、も含めてメモってみた。

○APS=Advanced Planning and Scheduling(事実上、生産スケジューラのマーケティング用語)

http://monoist.atmarkit.co.jp/mn/articles/0901/23/news132_2.html
オーダーが出発点(インプット)だからプル生産向き
cf. MRPは材料供給と同期して製造指示をリリースする考え方が根底にあるから、プル型の製造工程コントロールとは折り合いが悪い

○生産座席予約

http://www2.odn.ne.jp/scheduling/SCM/Onepoin6.html#label00004
ラフカット能力計画に基づく将来の生産能力(capaticy)を、各時刻に対して、いくつかの基本モデルベースについて「この基本モデルベースからできる最終製品をご発注の場合には何個できる」という数量換算(時間でなく)の形で社外に開示し、それに対して「予約」という法的にあいまい(日本的)なアポを受け付ける。その予約をもとに最終製品品目を確定させ生産計画をアウトプットする。
cf. MRP IIのATP(Available to Promise)では逆に、最終製品生産計画をもとに、引き合いに対し数量・納期回答する。生産能力を社外に開示しない。

○作業負荷のフォワード展開

http://ci.nii.ac.jp/els/110003423442.pdf?id=ART0003956455&type=pdf&lang=jp&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1414977177&cp=
時刻0(現在)から始まる各時点について順に、最遅開始時刻(工程が1つしかない仕事の場合には、納期から所要時間を引いた時刻=最小slack法だろう)が最も早い作業を優先して割り当てるようスケジュールしていく。(PERT山崩し法=PERT/Manpower)
ある時点において、もし割り当てることができる作業がなければ、1つ後の時刻について同様の操作を繰り返す。
cf. 納期が最も早い作業を優先するD.DATE法

○作業負荷のバックワード展開

フォワード展開の逆のアルゴリズムで良いのだろう:
工程が1つしかない仕事の場合:
すべての仕事の納期のうち最も遅い納期時刻tmaxから遡る各時点について順に、納期が最も遅い仕事を優先して割り当てていく。
ある時点において、もし割り当てることができる作業がなければ、1つ前の時刻について同様の操作を繰り返す。
結果、いずれかの仕事の開始時刻がその入稿時刻か現在より前と算出された場合、その仕事はこのままでは納期に間に合わないことを意味する。

○納期回答法

既存のすべての仕事をバックワード展開で割り当てたのち、問い合わせの仕事をフォワード展開でそこへ追加割り当てし、その算出された終了時刻を回答納期とする。

2014年10月16日木曜日

スレイリスとカンボジア大六のこれまでを振り返る(やや長文です…)

スレイリスが入社したのは2009年11月19日だが、
社長廣田に初めて会ったのは2010年3月5日だ。
スレイリスは僕の面接を経ずに採用された唯一の社員だ。
なぜなら廣田は当時ベトナムに5ヶ月カンヅメになっていたからだ。
欠員補充のため、妻が近所から見つけてきたのがスレイリスだった。
そんな所にも、この世の縁というものを感じずにはいられない。

カンボジア大六は2009年8月に社員8名で操業を開始した。
4名は日本語学科新卒のプノ大生様。
もう4名は日本語のできない近所の若者だったが、それでも大卒だった。
そんな所へ入社したスレイリスは、まだ高校生の歳の女子であった。
男女比は男6人、女2人だった。
自分はずっとこの会社の下っ端でやっていくんだろう…。
そうスレイリスが思っていたであろうことは想像に難くない。

しかしスレイリスは、会社の生産性トップに躍り出た。
品質管理責任者・生産管理責任者の任に就いた。
ある種のトレースの技能は、彼女だけが身に付けていた。
DTPの技能も、誰より早く身に付けた。
持ち前の明るさで職場のムードメーカーになった。
決めの問題をサバサバと決めていく態度で自然に職場のリーダーになった。
僕がお客さんからのお土産を社員に配る時も、スレイリスに託すのが常となった。
新たな制度を導入する時も、彼女の率直な反応を見ながらできたから安心できた。
上記の責任者への任命は、こうしたことの追認にすぎなかった。
スレイリスは、DTP生産管理責任者への任命も間近に控えていた。
増えていく後輩社員たちにも、技能をよろこんで指導した。
これらはすべて、スレイリスの資質と頑張りと人格の賜に他ならない。

スレイリスは、多くの後輩社員に対し、働き方・学び方・教え方の模範となった。
どんなに働き者でも、入った職場の先輩が怠け者なら、怠けてしまうだろう。
どんなに学ぶ意識が高い者でも、入った職場の先輩の意識が低ければ、怠けてしまうだろう。
どんなに教え好きな者でも、入った職場の先輩が教え好きでなければ、怠けてしまうだろう。
しかしこの職場には、スレイリスという模範があった。
だからこそ、後輩社員の働き者や、学ぶ意識が高い者や、教え好きな者が、それを発揮できた。
そうでない者がおのずと弾き出される空気とサイクルが出来上がった。
そうして会社は精鋭集団となった。

しかし会社の制度が悪ければ、どうだったろうか。
彼女ほどの人間であっても、いまだに一介の工員だったであろう。
大卒だとか日本語できるからという理由だけで自分より上にいる能力低い人間の下で。
その点に秘かに誇りも感じている。

原則として日本語社員や大卒社員を上に立てない。
この方針は創業当初から胸に描いていた。
制度設計もそのように行なった。
理由は、メリットがなくデメリットのみ多いことをあちこちで目にしてきたからだ。
しかし、では上に立てるに足る人間が他にいるのか。

いる、ということを最初に証明してくれたのはスレイリスだった。
彼女はぐんぐん伸びていった。
一方で、日本語社員も、大卒社員も、どんどん辞めていった。
会社が彼女のおかげで今あるというのは決して僕の中では誇張ではない。

スレイリスがせっかくここまで引き上げてくれたこの職場だ。
僕の職場と思えば、弱気になることもある。
だが、スレイリスが作った職場と認識するならば、どうだろうか。
そうならば、そう簡単に諦める権利は、僕にはないのではないか。
スレイリスが築いたこの職場をさらに発展させていく。
そうでなければ、スレイリスに対して、失礼ではないか。

2014年10月12日日曜日

社員が亡くなりました

当社カンボジア大六の社員で、DTPチームの最古参社員であるプロム=スレイリスが、今朝交通事故で亡くなったとの報を受けました。

数ヶ月前に結婚式を挙げた新婚女性でした。

ご冥福をお祈り致します。

理不尽です。

カッコつけないことがカッコいいと考えてるプログラマの痛さ

Redmineのプログラムに手を入れるようになって知ったのだが、Rubyというのは関数であれサブルーチンであれ呼び出しに()つけなくていい言語らしい。

で、HubotのためにCoffeeScriptをチョボチョボと書いていますが、この糖衣言語はRubyプログラマに好かれているらしく、そのせいか同様に()つけなくていい。

そりゃ確かに()は打つのめんどいよねえ。わかるよ~。ということで僕も倣ってみた。
これがほんとのカッコつけないコーディングスタイルである。

だけど、メソッドチェーンとか関数入れ子のときは引数の具合によっては結局()つけなきゃいけない。
単純に引数ないときもつけなきゃいけない。
ぐにゅ。
プログラムが複雑になってきたら、これがバグの温床となっている気がする今日このごろである。
↑などと書く理由は、ご明察のとおり、数日前にそこでみずから実際にハマったからである。初心者さんホイホイの穴へ見事にいらっしゃ~いなカンジ!

カッコいかに付けないかを競うプログラマーとかいそうで、いたら痛い。
んなことより、プログラムが確実に動くことや、後で見やすいことを目指せよとおもう。

むかし業務でげしげし書いていたVisual Basicでは、関数には()必須で、サブルーチンには()つけないでいいことになっていた。たしかに、サブルーチン(としてプロシージャを呼び出す)ならばメソッドチェーンとか関数入れ子はありえないわけで、実は最も合理的な言語仕様かもしれない。

CoffeeScriptで引数ないときに()つけないといけないのは、そうしないと関数というオブジェクトを指すことになってしまうからだが、人間としたら、俺が動詞1個発したら、そこは素直に命令文と受け止めてくれよとおもうのが人情ではないだろうか。

「その動詞というオブジェクトですね!」
とか、
「その動詞への参照ですね!」
とか、
「その動詞へのポインタですね!」
なんてシチめんどくさい答え返すヤツは、現場で生き残れないのではないだろうか。

"Freeze!"
と言われて、
「はい、ご注文のfreezeという動詞への参照をご用意しました。お持ち帰りですか? こちらでお召し上がりになりますか?」
などと答えるヤツは、俺だったら撃ってしまいたい。

その動詞による命令よりも、その動詞というオブジェクトを指すほうが、より抽象的な、間接的な伝達内容なのだから、符号化理論的に言って、より表記が複雑であるべきだ。C#はそのようになっている。

逆になっているのは僭越だと個人的に感じる。

などと、JavaScriptでサブルーチンから()を取ってしまってコンパイルエラー出した日曜の昼下がりにつらつら想うのでありました。

クアラルンプール都心で手榴弾爆発、シンガポール人・タイ人・中国人含む14名死傷

「しばらくブキ=ビンタンへは行きたくない」という外国人たちの声を報じるニュースです。

プノンペンですらこれほどの事件は2001年頃を最後に起こっていないとおもいます。

クアラルンプールへはトランジット以外で行ったことがありませんが、非常に安全な街という印象があったので驚きです。

お子ちゃまはアスピリンに注意

歯が痛い痛いと言っていたら、
ゆうべ妻が薬2種類1錠ずつくれたので、
飲んだら痛みがなくなったが、
しばらくして、
頭が冴えすぎて息切れと目眩が来た。
エロ動画見て大脳新皮質休ませることで
治まったけど。

1つは、
アスピリン85%カフェイン15%、
と書いてあって、
僕には強いかな、
とおもったが、
やはり強すぎたようだ。

もう1つは、
薬名で引いたら、
アセトアミノフェンだった。
今朝はこっちだけ飲んだ。
痛みは完全には引かないが、
目眩もあまり起こらない。

お子ちゃまなので、
カフェインに弱いが、
アスピリンにも弱いと、
ゆうべ思い知った。

アスピリン(アセチルサリチル酸)には、
消化器潰瘍を悪化させる副作用がある。
クローン病なので、
その意味でもできれば避けたい。

人生これまで、
ほとんど薬飲んで来なかったので…。
効きがいいのはいいけど、
効きすぎに注意しないと…。

2014年10月11日土曜日

2202年のネオジャパンがカッケー!! 華人絵師様作品





絵師様サイトはこちらです。

日の丸模した東京近郊鉄道図がイカす 韓国デザイン会社作品



元記事はこちらです。

スパとビール醸造所が一つ屋根の下にあるのはチェコだけ! ということはそこには当然…

という体験記事

日本酒で同じことやったらどうなるでしょう(((^^;)

ぐおおぉぉぉ歯が痛え…(家弓家正さんに哀悼の意を表します。)

奥歯が痛いっす。

とりあえず正露丸詰めてます。

去年3月以来ごぶさたの歯医者さんの診察券をすでにポケットに投入済みの僕です。

ぐぇぇぇぇ。

痛ぇぇぇぇぇ。

もう全てのリソースを歯の治療に投入しないと他の何も動かないっす。

原子炉の全エネルギーを三角塔とガンボートに投入したがったレプカの気持ちがよくわかります。

これさえ解決すれば他のすべては解決! みたいな。

これを解決しないと死ぬ! みたいな。

そこで「いや、復旧が先だ」と言い放ったインダストリアの最高委員会に対しクーデターを決行した気持ちがよくわかります。

そしてレプカといえば…。

家弓家正さんに哀悼の意を表します。

親の気持ちは親にならずともわかるとか言うひとがいるが僕は無理だった。この歌を聴いてボロボロ泣けないようならあなたも無理だとおもう

実家でふと聴こえてきた知らない歌
こんなしょーもない歌でボロボロ泣けた、
親というのはそんな理不尽な本能プログラムが発動してしまっている存在である。
ははは



高等生物になればなるほど教育は重要になっていくわけで、
すると1万匹子供産んで残るやつだけ生き残れとかやってたら
効率悪くて仕方ないわけだ。
21世紀になって人類はますます進化の速度を上げているから、
一人一人の子供が必要な教育の量は、
僕らが子供の頃に比しても飛躍的に増していくとおもう。

それはまた、無駄なことを教えている暇などもったいないという考えにもつながる。
何が「無駄」かは親によっても子供の適性によっても異なるだろうけれど。
正解は、その子供が 『子孫』 を残せるかどうかによってのみ判定される。
ジーン的な、もしくはミーム的な。

2014年10月10日金曜日

今日はウイルス何個かな? ローカル企業からデータもらうたび、ちょっと楽しみな自分がいます

今日のポケモンゲット



当社では、IT部長(俺)の許可を得ずに会社のパソに勝手にソフト入ってるのを見つけたら、1回につき社員全員から15$罰金です。
いちいちアンインストールしたりウイルス除去したりするのがめんどくさすぎるのでこういう決まりにしたのがもう4年前ぐらいです。
こんだけ高い額にしとけば以後再発はないだろうとおもいましたが、驚いたことに、2回、実際にこのルールが発動しています。
これは、まぁFirefoxぐらいならいいか、まぁタイピング練習ソフトぐらいならいいか、と片目つぶった分を大量に除いてです。

壁紙ソフトも帯域食うんでやめてもらいたいです。
そもそもウチ仕事全部パソなんで、壁紙見えてる時間はすなわち仕事してない時間ですよね。
おまえは壁紙眺めてたい気マンマンなのかと言いたくなります。
壁紙ソフトに凝るのはだいたい仕事できないひとですね。
コマンドプロンプト覚えていきなり背景色やらポップアップの色やらに凝りたがるひとに通ずるものがありますね。

おまけ:
コマンドプロンプトの背景色でBad Apple!! - ニコニコ動画:GINZA
http://www.nicovideo.jp/watch/sm12774617

善良な観光客はカジノになど入らない。ギャンブル狂いの中国人VIP(中国語オンリー)が主要客となり、多くはマネロン

という記事です。

日本でカジノ解禁された場合にカジノ建設を検討している企業は、皆、既存の日本人パチンコマニアの莫大な市場規模をあてにしているそうです。

日本で約1260万人いると言われるパチンコ愛好者が平均で年23万円負けている

という巨大な市場規模に、あらためて驚きです。
市場規模というより、巨大な搾取規模と呼びたい気分です。

ただそれも、パチンコが日本全国に遍在しており行きやすいのに比べ、カジノは限られた特区にしか作られない方向であることから、ほとんどのひとはわざわざ行くとはおもえず、机上の空論であると言わざるをえないとしています。

結局はゼネコンへの利益誘導にすぎないとバッサリ切り捨てて記事は結んでいます。

善良な観光客がカジノで馬鹿みたいに負けてくれるわけではありません。
カジノにとって来てほしい客というのは、本当は、香港マフィアみたいのなのかもしれません。
よって、カジノにより日本の風紀と倫理と治安は乱れるおそれが高いとおもいます。
日本がマネーロンダリングの舞台にされるというのも、先進国としての方向性に逆行しているとおもいます。

車線が広いと事故が増えることが判明、米国は今年から車線狭めバイクレーンを生み出す方向

という記事

下北沢の時代ですね。

車線広い方が事故減るだろうと長年技術者は何となく考えて来ましたが、全くの迷信であったどころか、みんな飛ばすので逆に事故を招いていたことが発覚したそうです。

この機材ならこの辺の席を取ったら子連れ飛行機は楽だよ、ぐらい言えて初めて男は一人前だ

という記事

エンジンのそばはホワイトノイズで子供がたちどころに眠るそうだ。

エンジンの位置は機材により異なるのは言うまでもない。

トイレのそばになってしまうこともあるのでその場合は逆効果のおそれもある由。

結婚する前の僕は莫大にお金を持っていたので、どうやって入手したかすら覚えていないCDが大量に家にあるが、その中でも極めつけはこのペティ・ブーカ

だとおもいます。

テレビ出てたんですね。

当時本人たちのライブを見たのかとか、そこすら覚えてません。
週に何個もライブやコンサートやイベント見ていましたので…。

まあだいたいこういうのは本人たちから買っているのだとおもいますが…。

このアルバムにはKarma Chameleonのものすごい遅いバージョンとかも入っています。

僕らは物質界の住人なり されば有限速度にてしか動きえず さればこそ止まるべからず (西野妙子に学ぶ)


ということを改めて想起させてくれるかのような古い映像です。

この西野妙子のデビュー曲(実質2曲目)の映像における、わざとかと思うようなキレのないダンスを今見るにつけ、TPDとか沖縄アクターズスクールが市民権を得る前の日本は、バブルと言いながらも、この程度の速度感で動いていたのだなあ、とホッとする感じがいたします。

むしろみんな近頃は無限速度で動くことを目指しすぎて、かえって非現実的な物を追っかけてませんかという感じです。

僕らは所詮物質界の人間であり、その速度は光速を超えることはおろか、質量のくびきに厳重に縛られております。それは物質的にはもちろんそうですし、精神的にもやはり僕らには慣性というものがどうしてもございます。それは善かれ悪しかれそうでございます。

だからこそCan't Stop the Musicで生きて参りたいものです。


2014年10月9日木曜日

RedmineでWebDAV/FTP/SFTP/SCPブラウズを可能にするHubotスクリプト

まずこの改造版Redmineプラグインを用いて、Redmineチケットの登録と更新をHubotへ通知します。

Hubotでこれを
module.exports = (robot) ->
  robot.router.post "/redmine.json", (req, res) ->
    payload = req.body.payload
    action = payload.action
のように受けます。そしてダウンロード試行関数を呼びます。

download = (robot, issueid, room, relPath) ->
  downloadWsfPath = 'D:\\ore ore\\nanorico_download.wsf'
  # 顧客ID文字列
  userName = 'xxx'

  # ローカルダウンロード先
  localInPath = 'D:\\DL here\\'
  try
    spawn = require('child_process').spawn
    child = spawn 'cscript', ['//nologo', downloadWsfPath, issueid, userName, localInPath, relPath]
  catch e
    robot.messageRoom room, "catch=#{e.description}"

のように、WSFファイルを起動します。

nanorico_download.wsfでは、WinSCPのprotocolの値によって、WebDAV/FTP/SFTP/SCPを選択できます。

var protocol = Protocol_Webdav;
//var protocol = Protocol_Ftp;
顧客ID文字列をもとに接続情報を得たのち(省略)、Redmineチケットで指定されたファイルがあればWinSCPでダウンロードし、なければファイルブラウザをRedmineチケット内に表示させます。ファイルブラウザではWiki記法により、WinSCPで得た各ディレクトリ名・ファイル名に、HubotへのGETリクエストリンクを付けています。

try {
  var session = WScript.CreateObject('WinSCP.Session');
 
  var sessionOptions = WScript.CreateObject('WinSCP.SessionOptions');
  sessionOptions.Protocol = protocol;
  sessionOptions.HostName = hostName;
  sessionOptions.UserName = userName;
  sessionOptions.Password = password;
  if (protocol === Protocol_Ftp) {
    sessionOptions.FtpMode = FtpMode_Active;
  }
  try {
    session.Open(sessionOptions);
    // 指定ファイルがサーバにあるなら
    if (session.FileExists(remotePath)) {
      // ダウンロード中である旨を所在に書き込む
      updateFieldCustom(redmineurl, locationFieldId, 'DOWN...');
   
      // 転送オプション
      var transferOptions = WScript.CreateObject('WinSCP.TransferOptions');
      if (protocol === Protocol_Ftp) {
        transferOptions.TransferMode = TransferMode_Binary;
      }
      // ダウンロード
      session.GetFiles(remotePath, localPath, false, transferOptions).Check();
      // ダウンロード完了した旨を所在に書き込む
      updateFieldCustom(redmineurl, locationFieldId, 'DOWN finished');
    }
    // 指定ファイルがサーバにないなら
    else {
      // ファイルが見つからない旨を所在に書き込む
      updateFieldCustom(redmineurl, locationFieldId, 'Not found');
   
      var relDirPath = '';
      // サーバ上の指定パスディレクトリ内容をシステムメッセージに書き込む
      var remoteDirPath = remoteInPath + relDirPath;
      var directoryInfo = session.ListDirectory(remoteDirPath);
      var links = [];
      for (var enumerator = new Enumerator(directoryInfo.Files); !enumerator.atEnd(); enumerator.moveNext()) {
        var fileInfo = enumerator.item();
        var name = fileInfo.Name;
        if (relDirPath !== '' || name !== '..') {
          var link = '\\"' + name;
          if (fileInfo.IsDirectory === true && name !== '..') {
            link += '/';
          }
          link += '\\":http://localhost:8080/';
          if (fileInfo.IsDirectory) {
            link += 'cd';
          } else {
            link += 'file';
          }
          link += '?issueid=' + encodeURI(issueid) + '&path=' + encodeURI(relDirPath);
          if (name !== '..') {
            link += encodeURI(name);
          }
          links.push(link);
        }
      }
      updateFieldCustom(redmineurl, sysmsgFieldId, 'Files in ' + remoteDirPath + '\\r\\n' + links.join('\\r\\n'));
    }
  } finally {
    session.Dispose();
  }
} catch(e) {
  WScript.Echo('catch=' + e.description);
  updateFieldCustom(redmineurl, sysmsgFieldId, e.description);
}

ファイルへのリンクが押されたら、Hubotスクリプトがこのファイル名をチケットに書き込んだあと、チケット表示をリフレッシュします。500 msより短くすると更新前の値が表示されてしまうことが多かったです。

  robot.router.get "/file", (req, res) ->
    # ファイル名をRedmineチケットに書き込み(略)...
    setTimeout () ->
      res.redirect 'back'
    , 500


同様に、ディレクトリへのリンクが押されたら、Redmineチケット内のファイルブラウザの内容を、そのディレクトリの内容へ書き換えます。

なお、最新betaのWinSCPにはバグがあり、GUIで名前がNFDなディレクトリにいた状態が記憶されていると、濁点・半濁点が?になってしまい、次回GUIアクセス時にエラーが出ます。この状態だと、なんと、.NET AssemblyからWinSCPを呼ぶときもうまくいきません。これに気づくのに1時間ハマりました。

エボラ様症状の日本人女性にインド政府、エボラ検査の必要を認めず、アフリカへ行ってないのでエボラでないと断定

というニュースです。

エボラ検査今やってますというニュースを見たのですが、あれは何だったのでしょうか。

アイドルはトイレするか? 1985年当時の一般認識がよくわかる資料映像

アイドルといえば何と言っても「トイレしない」と言われますが…

岡田有希子 Summer Beach (サマー・ビーチ) - YouTube

そこは否定してくださいw

このあたりが当時、
「お約束をちょっとだけ超えちゃった(笑)」
と一般的に認識されるラインだったのでしょうね。

ちなみに、僕このドラマよく覚えてるんですよ。
ラジオとかで散々ユッコ本人が
「キスシーンあるんです!」
と煽ってましたからね。

上のリンクでも言ってますね。
TBSでフジの番宣が入るというのもおおらかなカンジです。

実際の問題のシーンは、二人の顔が光に覆われて、見えなくなっていました。

かなり長い間、あそこでキスしたかしなかったかについて本人は曖昧にしてきて、だいぶ後になってから
「あれは本当はキスしてないんですよ」
みたいに本人がばらしたような記憶があります。

あのエフェクトだったらそりゃしてないだろと普通は思うとおもいますが…。
本人の口から否定を聞きたいというファン心理はあったようにおもいます。

ファンも大変ウブな時代でした。
とくに彼女のファンはね…。
俺含めて。

蛇足ですが、この歌の出だしはオサマ=ビン=ラディンではありません。

2014年10月8日水曜日

Windows上のnode.jsでchild_process.spawn()する際の、とっても低レベルなハマりポイント

次第に、無人の荒野をひた走っているようなカンジになってきましたが…。
単純に、自社システムにとって最も理想的な動作を最もリーズナブルに開発できる道を求めて進んでいるだけなのに…。
なぜに、気がつけば「誰もいない予感!」みたくなってしまうのであろうか。




あたりを参考に。

Windowsというかコマンドプロンプトちゃんとわかってる方ならこんなとこでハマることはもちろんないとおもいますが。

僕はそういうひとではないので、ここで2時間ぐらいハマりました。

child = spawn 'copy', ['D:\\hoge.eps', 'D:\\hogeb.eps']
動作しません。理由:copyは実行形式ではないので。
※copyするのにspawnするひとはいないとおもいますが、簡単な例ってことで

child = spawn 'cmd', ['/c', 'copy D:\\hoge.eps D:\\hogeb.eps']
修正例。動作した。

child = spawn 'cmd', ['/c', 'copy', 'D:\\hoge.eps', 'D:\\hogeb.eps']
動作しない。理由:copyの引数群は、copyの引数であって、cmdの引数ではないので。

wsfPath = 'D:\\Cambodia Dairoku\\141008 WSHスクリプト\\WinSCP.wsf'
filename​ = 'hoge.eps'
remoteDirPath = '/oreore/oredayo/'
remotePath = remoteDirPath + filename
localDirPath = 'D:\\wode difang\\'
localPath = localDirPath + filename
child = spawn wsfPath, [remotePath, localPath]
動作しない。理由:.wsfは実行形式ではないので。

child = spawn 'cscript', ['//nologo', wsfPath, remotePath, localPath]
修正例。動作した。
cmdの場合と異なり、.wsfへの引数群をcscriptへ個々に託せることはcscriptの仕様としてちゃんと文書化されてますので、これで動作します。
パスに空白文字おもいっきし入ってますが、""なくてOKです。

かぐや姫 とんで初体験(Explzhさんつながりで)

内容こちら

ネットの時代となって久しいが、いまだに、見られないコンテンツはある。

法律を破れ、というつもりはない。

ただ願うのは、お金払ってでも見たいとおもうファンがいるならば、それを容易にする法律にしてほしい、ということである。

主役が後年自殺したとかは、製作陣や、当時の本人には、まったく関係のないことである。

魂のこもらない和訳サイトに意義はあるのか? まじめにやれ

http://www.lifehacker.jp/2014/10/141007productivity.html

あえてリンクとしません。
おすすめリンクではないので。

仕事として日々の惰性で和訳しているのが各文のなげやりな直訳調からまるわかりな訳者というのは、ライフハッカーさんにしても、ほかにも、いるし、それでも和訳がないよりあるほうがまし、という需要もあるでしょう。

にしてもこのページはあまりにひどすぎるとおもった。

とはいえ人様のサイトなので、要は、和訳サイトにそこまで求めるのが間違ってるともいえる。

英語ペラペラになる必要はないが、英語サイトをある程度苦なく読めるようになることは、必要だと、あらためておもった。

2014年10月7日火曜日

海外で失敗する日本人のたったひとつのキーワード

それは「ソファー」だとおもっています。

東南アジアへ来た初日にソファーへ座らされたなら、それはかなりの確率で、あなたが単なる「カモ」であることを示しています。

また、ソファーにみずから座ってしまうようなひとが、現場の何を見れるのか?
この点について、多くを語るまでもありません。

東南アジアを訪れる、あるいは東南アジアに在る日本人として、ソファーとは、ほとんど宗教的に避けるべき存在であると、僕はおもっています。

「私は何を残しただろう」と問うならば、その答えが得られるのは、日本史でいえば天武天皇と徳川家康ぐらいである。何が残るかを我々は制御できない。だからこそ我々は子孫から愛される

のだとおもう。

僕らは、残したくないことを隠す。
残したいことを喧伝する。

しかし、僕らの子供は馬鹿じゃないのだ。
かつ、僕らの子供は冷血漢じゃないのだ。

僕らが隠したかったこと。
それをこそ、僕らの子供は愛してくれるだろう。

だから、生きよう。
自分を。

青色ダイオード等で日本人3人にノーベル賞

素晴らしい!

突き詰める姿勢、を教えることの大切さですね。
突き詰める姿勢を堅持するひとをネクラとかオタクとか馬鹿にする風潮がありますが、そういった落ちこぼれどもからの雑音を意に介さないひとを育てるには、教育が何より大切ですね。

未来はオタクが創っていく!
思い知れリア充ども。

同年代から年下と思われることが多いことの是非

オーン(弟)
と同年代のカンボジア人から呼ばれることの多い俺です。

若々しさがよいか?
年輪を重ねることがよいか?

価値観の相違もあるようにおもいます。

いつまでもオーンと呼ばれたい。
僕はどっちかというとそっちです。

エボラ様症状の日本人女性、これまでに日本・シンガポール・マレーシア・ミャンマー・インドを訪問

Japanese tourist with suspected Ebola symptoms kept in JNIMS isolation ward | KanglaOnline

現在、女性から採取した検体がエボラ検査に送られています。
エボラ検査の結果は通常、48時間以内に出る見通しです。

エボラ様症状を発症した女性は現在、インパールのジャワハルラル=ネルー病院に収容されていますが、同病院は隔離体制が不十分なため、エボラと判明したら、隔離体制が整った病院へ送られる見通しです。

ミャンマーとインドではこの事態を受け、エボラ感染への恐怖が国民のあいだに高まっており、インド政府は、インパールを訪れる観光客全員に対しエボラ検査を行う構えです。

ミャンマーでエボラ様症状の日本人女性バックパッカー、これまで5ヶ国を訪問

というニュースです。

エボラと似た症状の各種病気についてはすでにすべて検査結果ノーと出ており、残るはエボラ検査結果待ちのみとなっています。

Hubotスクリプトでやけに長時間の処理をさせてしまうとその間経過報告ができなさげ

WinSCPを、
(1) Hubot→win32ole→WinSCP .NET AssemblyのCOMライブラリ→WinSCP .NET Assembly→WinSCPによって操作する
のでなく、
(2) Hubotのchild_process.spawn→winscp.exe /command "get ~~~" "exit"によって操作する
ことを検討している。

(1)の操作法で今まで開発してきたが、無理があることがわかった:

  • JScript用の方法でWinSCPイベントのリッスンを試みたが、反応なし。WSHでなくnode.js上だからだろう。
  • OLEコレクションをゲットできない。win32oleに未実装なため。
  • WinSCP操作(ダウンロード等)が終わるまでHubotスクリプトが終われない。Hubotイベントを発しても、実験の結果、リスナが発動されるのはスクリプトが終わった後になっているようなので、経過報告ができない。操作開始前にイベントフックしてリスナでsetInterval()してコールバックでプログレス出力させ、操作終了後にイベントフックしてリスナでclearInterval()してみたが、なんも出力されない。たぶん上記のようなわけで、インターバル設定が活きてる時間がゼロ時間みたくなってしまうのだろう。この実験結果から見るかぎりは、リスナは別.coffeeにいさせとけば並行して動いてくれるだろうというのは僕の思い込みだったように思われる。


(2)の方法は、WinSCPでのダウンロードや、Explzhでの解凍など、動作が長時間ならば、child_process.spawnでdetachedオプションを設定してWinSCPにコマンドラインでダウンロードを命じたあとchild.unref()。
これにより、親プロセスが child を待機することを防ぐことができる。
child_process.execFile・execではdetachedオプションがリファレンスに記載ない。

もちろん、(2)のWinSCPをコマンドラインで呼ぶ方法では、WinSCPイベントをリッスンして経過報告することはあいかわらずできない。
だが、刻々大きくなっていくはずの転送先ファイルサイズをHubotのインターバルで別途ポーリングするというF5アタック的な手が使えないわけではない。
お行儀よくやろうとすれば、WSHかC#で作ったプログラムを(2)の方法で呼び、そのプログラムからWinSCP .NET Assemblyをたたくほうがよいだろう。WSHだとCOM経由になって公式でもハックみたいになっちゃってるので、この際C#が正道ですね。

なお、ZIP解凍についても同様にspawnで
Explzh.exe /e "Archive file"
ZIP圧縮についても同様にspawnで7-Zipを働かせればよさげ。
※解凍も7-Zipのコマンドラインで解凍でもよいかもしれないが、いちおうExplzhは長い間使っていてファイル名文字化けなど生じてないという安心感があるので、乗り換えないほうが無難なような気がするので(7-Zipも、ファイル名文字化けは起こらないようよく工夫はされているようだが)。
※圧縮は、元のファイル名文字コードは必ず手元のWindowsなので不安はないし、7-Zipは同じ.zipを作るのでも圧縮率がより高い由。

一方、ファイルリスト取得など動作が短時間、かつ結果がほしいならば、child_process.execFileを用いればよいだろう。



↓今後の開発方針

(1)
Hubotから、
(a) filename・loginid・passwordなどから構築したURL
(b) チケットID
などをコマンドラインオプションとして、C#プログラムを呼ぶ。
具体的には、child_process.spawnでdetachedオプションを設定してC#プログラムを呼び出しchild.unref()。
これにより、親プロセスが child を待機することを防ぐことができる。

(2)
C#プログラムで、WinSCP .NET Assemblyにより、filenameがサーバ上に存在するかを確認。
存在しないなら
HubotにHTTPリクエストでNot foundと伝達してIRCに通知させ、
WinSCP .NET Assemblyでファイル一覧を取得し、
Redmine REST APIで所在フィールドにNot foundと書き込み、システムメッセージフィールドにファイル一覧を表示。
存在するなら
HubotにHTTPリクエストでダウンロード中と伝達してIRCに通知させ、
Redmine REST APIで所在フィールドにダウンロード中と書き込む。
WinSCP .NET Assemblyでダウンロード。
ダウンロード中は、WinSCP .NET Assemblyの進捗イベントのリスナがRedmine REST APIで経過報告用フィールド群に経過報告。
ダウンロード完了したら、HubotにHTTPリクエストでダウンロード完了と伝達してIRCに通知させ、
Redmine REST APIで所在フィールドにダウンロード完了と書き込む。



以上はげしくチラ裏

クレカサイン芸


レジでクレジットカードを出すと、サインを求められる場合が多いですね。

この映像は、サインがクレジットカード上のサインと一致していない場合にどうなるか、という実験です。

それどころか、まるで違う名前を書いてしまったりしています。

それでも、レジ係は、全く問題視しません。

クレジットカードのサインって、何の意味があるんですか、とレジ係に聞いてしまったりしています。

レジ係によれば、恐竜や犬の絵を描いてしまうひともいるそうです。

結局、誰一人として、一致しないサインや、一致しない名義や、ふざけたサインでは支払いはできませんよ、とお客を止めるレジ係には、出会えませんでした、という結果でした。

下の、おなじひとによる、「ハンバーガーが広告写真と違うので、同じ見た目にしてくれと言ってみた」映像にしてもそうですが、なにごとも、やってみる、言ってみる、という姿勢が、人生においては大切だよね、と学ばせてくれる映像でした。



2014年10月6日月曜日

無邪気な18歳millieにおもう

Millie Smallはジャマイカ生まれ。
『My Boy Lollipop』がヒットした1964年当時18歳。
※日本では梅木マリ・中尾ミエがカヴァーしています



カンボジアにいてもおもうんですが、ウチの社員とか見てても、18歳になってもこの無邪気さを保てる民族と、保てない民族があるというのは、それは民族固有のことなのか、それとも世界共通の文明発展段階によるものなのか?

後者であるとしたら、文明とは果たして幸せなことであるのか、それとも必ずしもそうでないのか?

これは、無邪気ということが幸せなことであるのか、それともそうでもないのか、ということと直結しますけれども…。

盆踊りの時刻と入場料がわからねえ

恒例のカンボジア日本人会盆踊りが今月19日にあります。

無償で準備や寄付などされている方々には本当に頭が下がります。

子供がよさこい踊ったりもしますので、僕としても時間あけたり、チケット購入とか、そろそろしないといかんとおもうのですが…。

時刻とか入場料の情報がメールでは来てないようです。

ポスターとかあちこちに貼られてるんだろうとおもいますが、ひきこもりの僕は目にする機会がありません\(^o^)/オワタ

ちなみに僕は、おみこしの誘導係になっています。

会報に書いてあるんだろうけど…。最後に会報来たのいつだったかな…?

独眼竜ならぬ緑眼竜の問題――貴女を眠れなくさせる論理パズル

なかなか面白い頭の体操を英語圏で見つけた[PDF]ので、日本語圏へ紹介しておきます。

Green-eyed dragons 
  You visit a remote desert island inhabited by one hundred very friendly dragons, all of whom have green eyes. They haven't seen a human for many centuries and they are very excited about your visit. They show you around their island and tell you all about their dragon way of life (dragons can talk, of course).  
  They seem to be quite normal, as far as dragons go, but then you find out something rather odd. They have a rule on the island which states that if a dragon ever finds out that he/she has green eyes, then at precisely midnight on the day of this discovery, he/she must relinquish all dragon powers and transform into a long-tailed sparrow. However, there are no mirrors on the island, and they never talk about eye color, so the dragons have been living in blissful ignorance throughout the ages. 
  Upon your departure, all the dragons get together to see you off and in a tearful farewell you thank them for being such hospitable dragons. Then you decide to tell them something that they all already know (for each can see the colors of the eyes of the other dragons). You tell them all that at least one of them has green eyes. Then you leave, not thinking of the consequences (if any).  
  Assuming that the dragons are (of course) infallibly logical, what happens? If something interesting does happen, what exactly is the new information that you gave the dragons? 


日本語へ訳してみました。

緑眼竜の問題 
 あなたは遠い無人島に着きました。そこには、とても友好的な竜が100頭住んでいました。彼らはみな眼が緑色でした。竜たちは、もう何世紀も人間を見ていなかったので、あなたが来たことをとても喜んでくれました。彼らは、島じゅうを案内してくれて、竜の生活の様子をなんでも教えてくれました(もちろん竜は言葉をしゃべれるのです)。 
 竜であることを差し引くかぎり、彼らには何もおかしな点はないように見えました。ところがある日あなたは、奇妙なことに気づきました。島にはひとつの掟があったのです。その掟とは、自分の眼が緑色だということを知ってしまった竜は、それを知った日の真夜中12時ちょうどに、竜の能力をすべて失い、尻尾の長い雀に変わってしまうというものでした。ただ、島には1枚の鏡もなく、また、彼らは眼の色の話は絶対にしませんので、竜たちはみな知らぬが仏で、先祖代々幸せに暮らしつづけてきたのでした。 
 あなたが島を発つ時が来て、竜たちは全員、あなたを見送りに出て来てくれました。涙々の別れの中であなたは、竜たちがしてくれたいろいろなおもてなしへの感謝を伝えました。その時あなたは、あることを口にしました。そのあることとは、彼ら全員がすでに知っている事実です(なぜなら竜たちはそれぞれ、他の竜たちの眼の色が見えますので)。あなたは彼ら全員に「あなたがたのうち少なくとも1頭は眼が緑色ですよ」と告げたのです。そしてそれがどういう結果を招くか(あるいは何も招かないか)について考えることなく、あなたは島を離れました。  
 竜たちがつねに論理的であると前提(もちろん)して、何が起こるでしょうか? もし何かしら興味深いことが起こるとすれば、あなたが竜たちに与えた新情報とは、正確に言って何だったのでしょうか? 



どうですか? 簡単ですか?

以下ネタバレ注意!!!!

過去からのWi-Fi…そのルータの接続先は、1992年のインターネットだった!

みたいなSF作品を思いついてしまった。

インスパイア元はこちら
あるある的内容。
これはこれで、フィリップ=K=ディックの小説の題材になりそうな雰囲気だが。
内容は全然関係ない。
これのタイトルだけ見た時点で、SFを思いついてしまった。

当然、主人公はバブル崩壊を止めようとするのである。

ホイチョイの『バブルへGo!』とホーガン先生の『Thrice Upon a Time』を合わせたような内容である。

しかし1992年当時のインターネットは、主人公である17歳の少女には想像もつかぬほど、アレな空間であった…。

この「アレ」な部分の描き込みしだいで面白くなるとおもう。
もしかしたら。

(2014.10.6 18:18追記)1992年ではバブルはとっくに崩壊しているようです。バブルへGO!! で戻った先は1990年だったようです。しかし1990年だとまだインターネットと呼んでいいものかどうか…。EYE-NETとかNIFTY Serveにつながることにしますか。

時々引っかかってくるLIGが面白すぎて一体何の会社だかさっぱりわからない件

たまにやけに面白い内容あって、見るとLIGなんですよね。

今回はこれ。

http://liginc.co.jp/omoshiro/pr-omoshiro/111234
女遊びに最適!10股かけても絶対に大丈夫な最強人事管理システムが登場 | 株式会社LIG

シンガポールへの場面転換と悲壮な技術陣がものすごくベタですけど身につまされました。
同じような立場として。

こういうコンテンツを作り出せる方に僕は嫉妬します。

もうひとつおすすめ


今までのだと、これも切なくておすすめです。同じような立場として。

http://rarejob-lig.com/
もしも僕の嫁が突然フィリピン人に変わったら

華倫変先生のナームちゃんの話の3D版というか。
妻も3日前に30歳になりましたが、朝起きたらいないんじゃないかといまだに僕は思っています。
(日本で2回いなくなったし。)

HubotからWinSCPでlsが取れない

Redmineのチケット上で指定されたファイルをWebDAVで自動ダウンロードできるようになった。


サーバ上にあるファイルの一覧を出したい


だが、指定ファイルが存在しなかったときが問題だ。

「Not found」
ってメッセージはREST APIでRedmineのチケットに書き込めるようになった。

一歩進んで、
「今あるのはこれらのファイルですよ?」
ってのもチケット上に出したい。

が、一筋縄ではない


WinSCP .NET AssemblyサイトのJScriptサンプル
http://winscp.net/eng/docs/library_session_listdirectory#example
だと、lsの結果をnew Enumerator()でめでたく列挙子化できている。

だがEnumeratorはnode.jsにはない。
http://msdn.microsoft.com/ja-jp/library/ie/6ch9zb09(v=vs.94).aspx

node.jsには列挙子みたいなものがないようだ。
あったとしても、JScriptと同じ方法でCOMコレクションを扱える保証はない。

ArrayとかObjectでやってみたけどダメ。

いろいろ頑張ってみた。
けれどもできない。

というか、無理ぽ


結論としては、node.js用win32oleでCOMコレクション対応が未実装なのが原因だった。

作者さんが
https://github.com/idobatter/node-win32ole
「can not handle some COM VARIANT types, array etc.」
と言っちゃってる。
だから間違いない。

発想の転換


まあ、WebDAVのlsだったら単に普通にHTTPで
http://username:password@example.com/path/
からGETしたものをCheerioでほのぼのスクレイプすればいいような気もしますが。
https://github.com/cheeriojs/cheerio


2014年10月5日日曜日

HubotのHTTP待ち受けはシーケンシャルかつ着実に実行されるという実験結果

robot.router.post()によるHTTP待ち受けを受けた処理がものすごく長時間かかってる最中に、この同じrobot.router.post()が受けるべきHTTPリクエストをもう1個撃ったら如何?

という実験をしてみた。

予想


(1) 取り込み中なので聞いてませんでしたてぃひっ、と思われて取りこぼされてしまう?

(2) あるいは、同じrobot.router.post()によるプロセスが2個同時並行で走るような状態になる?

(3) それとも、忙しい中のリクエストもしっかり受付されて、処理待ちキューみたいのができて、順次処理される?

民主化デモのまっただ中でプロポーズ、受諾、キスというけしからんカップルが発生 旺角

このリア充どもが!


HIVの真の起源が明かされる

という論文です。

統計解析により、1920年より前のカメルーンのチンパンジーハンターから、1920年代にキンシャサで広まった経路が判明したとしています。

HIVの起源については、どこかの政府が作ったとかいろいろ陰謀論もありますが、この新研究に対し、そうした陰謀論者の方々がそれぞれどのように知恵を絞って応答するか、今から楽しみです。

カンボジアは世界でもきわめて稀な、AIDSを克服しつつある国です。

カンボジアの知恵が、アフリカやカリブにも広まれば良いと思います。

担保水増しなど多数不正発覚のククミン銀(アステリスクでおなじみ)、日銀に対し口座名義人などについて虚偽資料、虚偽説明

というニュースです。

ククミン(国民)銀行は韓国最大手銀行だそうです。

東京支店長は不可解な自殺をとげています。

闇の解明を願います。

香港民主化デモ参加の複数女性に黒社会構成員らが性的いらがらせ

というニュース

「いやがらせ」でなく「いらがらせ」だそうです。

「いら」は「いらつく」にも通じます。

よりハラス感が強い、強い拒否反応をおぼえる語感がある気がしませんか?

新語誕生の瞬間に立ち会ったかも。

HubotからWinSCPを用いてファイルをFTP(/SFTP/SCP/WebDAV)アップロードしてチャットに告知する関数

Redmineでチケットが更新されたら、その中のfilenameフィールドに記載されたファイルを、所定のサーバへアップロードするというプログラムを作りました。

2014年10月3日金曜日

8歳の女の子が話してくれた究極の超能力とは

という記事

一冊の絵本を読みおえたような読後感です。

僕もこの超能力を心がけます。

デジタル世代のディズニーを目指したRovio、その最大の失敗とは

Angry Birdsで有名なRovio社は、大規模なレイオフを発表しました。

それに関する記事です。

ディズニーランドとアングリーバーズランドの最大の違い、それはそのネーミングそのもの、すなわちブランド戦略の違いにあると論じています。

ロヴィオランドとすればよかったのかもしれません。

シンデレラバストは正義! シンデレラバストはステータス! 「ちっぱい」でも「貧乳」でもない私たちを主張

というお店です。



オーナーのハヤカワ五味氏は多摩美術大学の1年生、自身シンデレラバストであったことからこのランジェリーブランドを立ち上げたそうです。



卓球の愛ちゃんが流暢な中国語東北部訛りでインタビューに答える 通訳の米国人の中国語はお粗末 インタビュアーの英国人の英語は英国式

采访福原爱:英国人用英音采访,美国人翻译成很烂的中文,日本人用东北话回答,美国人瞎翻译回美音给英国人—在线播放—优酷网,视频高清在线观看
http://v.youku.com/v_show/id_XNDM2ODk2MTk2.html

中国人たちが萌え萌えになっているコメントが多数ついているのが大変微笑ましいです。

真に国際的な光景だとおもいました。
福原愛ちゃんの発音も素晴らしいです。(僕などが言うのはおこがましいですが!)

訛りなんかいいじゃないか!
ヘタクソでもいいじゃないか!
通じれば。

女子ボクシングで圧勝しながら不可解な判定負けで号泣のインド選手に韓国世論支持「今回のアジア大会で韓国は世界中に恥をさらした」

という記事です。


左端は「銀」の朴選手、右端は「銅」のデビ選手

騒然となる表彰式
"Shit the ceremony!"
"Shame on boxing, BOO!"

いまインチョンで行われているアジア大会は毎日のように問題が発生し、その多くは不可解な勝敗決定に関するものとなっています。

スポーツ大会とは国の威信のためのものである以前に、互いの健闘を讃え合う、スポーツマンシップの発揚のためのものであることを、主催関係者の方々にはまず肝に銘じていただきたいとおもいます。

アドミラリティかアドミラルティか……毎日新聞の「気概」

民主化運動で揺れる香港について、日本でも多くの報道がなされており、low information dietを心がける僕は、もちろんそのごく一部にしか目を通していないが、昨日と今日で2回、毎日新聞で、「アドミラリティ」という表記に出会った。

香港の地名だが、「アドミラルティ」という表記で覚えていたので、違和感があった。

たとえばこの記事

調べたら、英字表記はAdmiraltyなので、やはり「アドミラルティ」が正しいのではないかとおもうのだが、なにか根拠があって「リ」と表記しているのであろうか?

ロシア語のカナ表記であれば、たとえ英字表記にiやjがなくとも、原音主義でイ段で表記することはある。エルツィンでなくエリツィンと表記するのはその一例である。

クメール語においても、末子音nhを英語圏の人の多くはnと同じように発音するが、僕は原音主義でニと書くようにしている。たとえばTea Banh防衛相をティア=バニ、Daun Penh区をドーン=ペニ区と書く。

ベトナム語においては末子音nhは、北部方言のわたり音を強調し、インとカナ表記され、単なるnと区別されるが、これも英語圏のひとは単にnと発音するひとが多いようだ。

英語圏の知識におんぶにだっこな知的怠惰を、横のものを縦に直す、と言う。それでは、真にその国をわかったとはいえない。そこを超えなければならない。あるいは英語圏に頼らないようにしなければならない。原音主義を貫くことは、その姿勢のひとつとして、とても大切だとおもう。

「アドミラリティ」表記にも、ひょっとしたらそうした現地記者の気概が現れているのかもしれない。

あるいは単に間違いかもしれないが。

2014年10月2日木曜日

あまりに多くのアプリが、Windowsバージョン名を最初の1文字で判定している。9なんて名前つけたら大混乱になる

というなかのひと情報(?)

妙に納得 してしまった 。

「スプライト」のクメール文字表記がいつのまに「ស្ព្រៃ」になっていた。

「スプライト」のクメール文字表記がいつのまに「ស្ព្រៃ」になっていた。

昔は「ស្ប្រៃត」だったのをよく覚えている。
クメール文字習いはじめだったので、この文字順が衝撃的だったからだ。

なにしろ英字で書けば「Irsbt」である。
(実際はrsの左下から生えている。bsの右下から生えている。)
これで「スプライト」と読むのだからすごい。
読む順序は「43125」である。

今の文字表記は、そういうインパクトはやや薄い。
英字で書けば「Irsp」だ。
(実際はrsの左下から生えている。sの真下にpがある。)

クメール人は「アイト」という発音ができない。
だから最後のtは削ったのだろう。

bpに変えたのはなぜだろう。
クメール文字では、bと書いても実際にはpと読むことが多い。

だが、もしかして「スブライ」と読まれてしまうかもしれないのを避けたのかもしれない。

※ああ~Bloggerはタイトル欄ではクメール文字が正しくレンダリングされないバグがあるのか…。
あるいはCSSいじれば直るかな。

イベントチラシで青海を青梅に誤記 おおぜいが青梅へ行ってしまう事案 これは胃が痛い

掲題のとおりであります。

【青梅?青海?】COLOR ME RADで衝撃的な誤植【大混乱・反応まとめ】 - NAVER まとめ
http://matome.naver.jp/odai/2141145149862770701

組んだ人間出てこい(笑)。

しかしくだんのチラシの画像を見ると、
誤記してるのは文字ばかりの案内の中じゃなくて、地図の中。
しかも、東京テレポート駅から近いですよみたいな地図なんですよねえ。

これ見て無批判に青梅へ行ってしまうひとというのも…。
なんというか…。

他人が与えている情報はすべて百%正確であるはず!
正確であらねばならない!
ということに無条件で慣らされてしまっているのでしょうか。

日本にひきこもっていた頃は僕もそうだったなぁ。

カンボジアにいると、これとは真逆の発想になってしまいますね。
これはこれで、疲れるわけですけど…。

win32ole:Windows上のnode.jsからCOMできる

掲題のとおり。

win32ole
https://www.npmjs.org/package/win32ole

サンプルスクリプトが笑っちゃうほど豊富なのがおかしいです。
なんだよ迷路作成機とか迷路解決機ってw
ありがたいことです。

サーバやろうとすると世の中UnixとかLinuxなひとばかりですが…。
意地でもWindowsで押し通そうとしている俺です。
しかし、世界じゅうにはそんな俺にもちゃんと先行者が見つかります。
インターネットさまさまです。

たとえばWinSCPも外から操ろうとおもうとインタフェースはCOMです。
Redmine上でチケット登録したらHubotスクリプトたたいて必要ファイルをFTPで取ってこさせるなんてこともできます(僕はこれをやろうとしてます)。

あるいは、HubotにRedmine上の情報を整頓させてExcelファイル化させるとか(僕はこれもやろうとしています)。

ambivertであれ 個人的なことをきけ そう俺は自分に言い聞かせる

introvertが社長になると、社員に聞く耳持つとか、細かいところに気がつくとか、いいこともいろいろあるが、反面、やはり感情移入が足りないという問題が起こる。

ソースは俺。

与えられたテーマを遂行すればいいだけなら、社長なんてこんなラクな仕事はないよね。
実際は、それでは社長は務まらない。

社員は求めているのだ。
社員が人間でもあると認めたという社長のささいなメッセージを。
社員に限らないが。

それをintrovertな社長は忘れがちである。
いや、忘れてしまうのではない。
めんどくさいのだ…。

ソースは俺。

が、社長をやってしまってる以上、そうも言っていられない。
仕事をどんなに把握していたって、社員の心はつかめない。
extrovertな社長が
「わかるよ~」
とかテケトーに乱発してたら、そっちに社員を持っていかれるだろう。

だからintrovertな社長に告ぐ。
ambivertたれ。
おまえの美点は捨てなくてよい。
ただ、ちょっとぐらい、extrovertの美点も取り入れてみろ。
そうすればおまえは最強だ。
なあに。
大したことじゃない。
ただひとつだけ。
社員に、個人的なことを聞いてみたらいいのさ。

みたいな記事をおとといぐらいに読んだ。

きょう、社員の誕生会があった。
たまたま僕もいたので招かれた。
そこで上の教訓を活かしてみようとおもった。

「誕生日は何日なの?」

効果は驚くほどあがり、社員は気持ち良いほど酔っ払った。

これからはこれで行こうとおもう。

2014年9月30日火曜日

2014年9月29日月曜日

企業が軍隊に学ぶべきたったひとつのこと 「人材」など存在しない。それを求めるのは経営者の甘え

という長文記事

たいへん楽しく読みました。

育てること!
育てること!
育てること!

そして、叱ることとは愛であること!

うまくまとめられないんでリンク先読んでください。

香港金融管理局、市内銀行に流動資金の緊急提供も

というニュースです。

目下市内銀行の多くの支店が休業、ATMが停止しているが、支払業務に支障は生じていないと強調しています。

正直、明日かあさってに入ってくるであろう当社の売上も香港を通じて来ますので、今月中は送金業務の停止だけは避けてもらいたいところです。でないと給料その他払えません。

今回の警察の催涙弾発射により、香港市民の世論と心情は大きく変わるだろう

との解説記事です。

香港の夜明け


先月は民主化運動反対が香港市民の多数を占めていた。
9月27日の時点では、28日にここまで突如事態が大きくなるとは、正直誰にも予想できなかった。
中国政府は動かないだろう。
だが今回の件で、香港市民の多数の心は反中国へと大きく転回した。(大意)

香港でチベット映画祭に大陸派集団が乱入 チベット独立反対横断幕掲げ騒ぐ

というニュースと映像です。

27日に沙田のホテルで行われた香港チベット映画祭に、開始後まもなく、20名以上の人々が横断幕を掲げ乱入、チベット独立反対のスローガンを叫んで騒ぎました。

Pema Tseden監督の映画『老狗』がクライマックスに差し掛かっていた頃だったということです。

「魔僧(ダライ=ラマ)はなぜ焼身自殺しないのだ?」
などと叫んだということです。

この騒ぎにより、この後に予定されていた『夏日牧場』の上映は取りやめになったということです。

香港で多くの銀行支店が今日休業 警察の民主化運動取締激化で

というニュースです。

ATMも停止しているケースが多くあります。

今日から、市民たちは旺角の路上にも展開しているとのことです。
香港は東京とプノンペンを結ぶ線分のちょうど中点にあたり、直行便がないなか、よく乗り継ぎに利用していますが、そんな時便利に泊まれる安宿が多いのが旺角です。
二男が生まれたとの知らせをプノンペンに里帰り出産していた妻から電話で受けた時も、2つの名前候補のどちらを採用するか、当時勤めていた東京からプノンペンへ向かう途中、僕は迷っていましたが、ちょうど泊まった旺角で、ふと見た駅名の文字が、一方の候補と一致し、何か運命を感じてそちらに決めた経緯があります。

DBS銀行が香港全支店の本日月曜休業を発表

香港市内の民主化運動への警察取締による混乱を受け、DBS銀行は香港市内の支店を本日月曜休業すると発表しました。

民主派は10月1日に金融街を占拠するとしています。

深夜に至っても警察は催涙弾の発砲を繰り返しており、路上の市民数千名とにらみあって一進一退を繰り返す様子がライブ映像に映し出されています。市民らもこのまま夜を明かす考えを示しています。

過去30年間で最悪の死者数となった御嶽山噴火 死因の多くは火山灰吸引と推定

御嶽山の噴火は海外でも関心が高く、登山時に噴火で死なない方法、という記事が出ていました。

何点かありますが、肝は

マスクとヘルメットを持っていけ!

ということです。

また、噴火の事前予測はほぼ無理とも指摘しています。

亡くなられた方々に哀悼の意を表します。

香港混乱状態 数千人が民主化運動 警察と衝突

Hong Kong clashes, arrests kick-start plans to blockade city | Reuters
http://time.com/3439242/hong-kong-democracy-china-ocuppy-central/(映像。音が出ます)

北京政府が香港の選挙の候補者を審査するとする香港新選挙法案に抗議する市民の活動を受け、本日、香港の警察は市民6万人に対し催涙ガスを発射し、かつ地下鉄を封鎖しました。

警察は香港市内数ヶ所で民主化運動の取り締まりを行なったと発表しました。
警察は78名を逮捕したと発表しました。
その過程で警察側に負傷者が出たと警察は発表しました。

これを受け、夜遅くなっても、数千名の市民が香港市内の路上に留まっています。
警察は市民に対し、解散しない場合はさらなる武力を行使すると警告しています。

Police Unleash Tear Gas in Hong Kong Protests - NYTimes.com
http://www.nytimes.com/2014/09/29/world/asia/clashes-in-hong-kong.html?_r=0

市民らが金融街を占拠することを警察は恐れているようだ、と市民の一人は語っています。

市民側にも多数負傷者が出ているもようです。

こちらは現場生放送です。0:46現在(カンボジア時間)、生身の多数の市民たちと無数の警察車輌が対峙する緊迫した様子を上空や歩道橋から映しだしています。市民たちの絶え間ない叫び声と、警察の笛の音がたいへん生々しいです。

2014年9月28日日曜日

XmlLite:軽量なXMLパーサ

くっ!
くるっ!
ドムが!!

ということでXMLいじるにはDOMかSAXというのが僕らオヤジの定番です。

しかし昨今は、軽量なXmlLiteというものがあるらしいです。

それについての記事があったのでちょっと読んでみました。

カンボジア、公共の場所での喫煙が禁止に

フン=セン首相が禁煙したという記事です。

あれっ、このひと以前も禁煙していたような…。
僕の記憶違いでしょうか。

まぁ、禁煙は身体にいいので、何度してもいいものですねw

ちなみにカンボジアでは2月から、公共の場所での喫煙が禁止になっていたそうです。

もともとカンボジアはタバコ吸うひとすくないので、気づきませんでした ^^;;;

ロッテセンターハノイで65階からエレベーター落下

という記事です。

幸い、墜落には至らず停止したため、乗っていた人々の命に別状はありませんでしたが、40分近く閉じ込められたとのことです。

ベトナム語記事ですので、以下、概略翻訳します。

事件概要


25日20時45分、5人が67階から乗りました。
エレベーターは下降を始めました。
65階まで降りたところで、エレベーターが突然自由落下を開始。

幸い、エレベーターは33階で停止したとのことです。

そして、エレベーターのドアが開いたとき、2人が乗り込もうとしました。
しかしそこにエレベーターの床がなかったため、墜落
1人が肩に負傷、もう1人が手に負傷したとのことです。

その後、エレベーターのドアは開かなくなり、上下へ移動もしなくなりました。
中の人々がボタンをいくら押しても反応がなかったということです。
7人はエレベーター内に閉じ込められてしまいました。

中の人々は非常用ボタンで助けを求めました。
音声が通じ、相手はすぐに救出すると答えたということです。
しかし、助けはまったく来ませんでした。

中の人々は113へも電話を試みました。
が、通じなかったということです。

中の人々は、けが人もおり、パニック状態となって、声をかぎりに叫んで助けを求めたということです。
外にいた人々がこれを聞きつけ、なんとか助け出そうとしましたが、うまくいきませんでした。

ロッテセンターの代表であり外国人であるTung女史は、ひとこと「シンローイ」と言って立ち去ったということです。

本当は恐ろしい途上国のエレベーター


発展途上国でのエレベーターとはこういうものです。
僕もカンボジアなどでなるべく、エレベーターには乗りたくないとおもっています。

以前は当社も、エレベーターのあるビルに入居していました。
僕も社員も、エレベーターで通勤していました。

が、やはりときたま、エレベーターが不審な動きをするときがありました。
妙に遅くなって、次の階へ行くまでに20秒ぐらいかかったり…。
階に止まったのにドアが開くまでに変な間が10秒ぐらいあったり…。

そんなときは、言い知れぬ恐怖を味わったものです。

BitTorrentなら手数料1割でコンテンツ販売できる

BitTorrent社のBitTorrent Bundleのpaygate機能というコンテンツ販売サービスでアルバムを売ってみたという記事です。

手数料1割で自作コンテンツを世界じゅうへ販売できるそうです。

iTunesですと3~4割かかりますのでだいぶお得感がありますね。

BitTorrentは中央サーバを持つコストがかからないので安く済むのでしょう。

本当に、こういう意味でも、これからはP2Pの時代ですね。

自作シェアウェアなんかもこのルートで売ってみたいものです。

またコンテンツにかぎらず、それ以外の商品についても、受け渡しの鍵となる情報などを金銭と引き換えに受け渡しすることができるかもしれません。

漫画やネットアクセスを子供に制限する合理的理由がどうしても見つけられない。自分は親失格なのでしょうか。

子供の頃、たしか小学5年生ぐらいのことだったとおもうが、
「漫画とどのようにつきあうか」
というテーマで、学校の国語の時間に作文を書かされたことがある。

僕はひねくれた子供だった。
答えのある問題が嫌いだった。
とくに、答えなんか本当はないくせに、あるふりをする科目、すなわち国語が大嫌いだった。
正確にいえば、国語そのものじゃなく、国語に倫理をこっそり混ぜ込もうとする態度が嫌いだった。

よってその作文のときも、求められていると感じた答えにそって
「漫画は良くないと思います。だから、これからは、なるべく読まないようにしようと思います。」
などという作文は絶対に書きたくないと思った。

それで、あえて
「漫画は悪くないと思います。ちゃんと自分の頭で考えて、良い漫画を読めば良いと思います。」
と書いたら、担任の先生が最優秀賞をくれたのには驚いた。

わけがわからなかったよ…。

後から知ったことだが、その当時、漫画は有害だという風潮がものすごくあったらしい。
先生としても内心、そう単純なものでもないだろう、というお考えがあったのかもしれない。
しかし文部省指導要領にある以上、先生としてはそれに従って授業を進めねばならなかったのだろう。

いま自分の子供が未来少年コナンとか名探偵コナンとかを嬉々として楽しんでいる。
未来少年コナンの全26話の全セリフを彼はほとんど諳んじている。
名探偵コナンについては残念ながら補習校に以前某君が寄付したセットが欠けてしまっており、全巻とはいかない。
しかし巻がある分については時間の問題ではないかという気がする。

ストーリーテリングの妙。
子供の心をつかむには、大人のそれをつかむ以上に、それが何より大切だ。
長期連載となって単行本の巻数を重ねるというのは、それ自体が、おおぜいの子供の心をつかむ激しい競争を勝ち抜いたことを意味している。

この点において、売れた漫画の単行本というのはすでに、多くの児童書を凌駕しているといえるだろう。

子供にとって、夢中になるということは何より大事なことだ。
いや、大人にとっても大事だと僕は思うが、とりわけ理屈抜きに夢中になれることは子供の特権である。
それを子供の教育に活かさない手はないとおもうのだが、どうだろうか。

子供を夢中にさせるコンテンツは、良いコンテンツである。
まず、このことを前提として、以下の話を進めたい。

児童書と有名漫画の大きな違いは、もう一つある。
それは言うまでもなく、漫画は絵や漫画的記号が豊富であり、かつ、有名漫画であればたいてい、その絵や漫画的記号の描き方は、状況描写を極めて正確に含んでいるということだ。
これによって、読み手は、文字からだけでなく、視覚的にも、情報を豊富に取り入れることができる。

児童書擁護派の大人が、逆に、それをこそ、漫画の悪い点なのだと言うのを見たことがある。
絵から安易に情報を読み取ってしまうことに慣れてしまうと、文字を読み取る能力を磨く機会が奪われるというのだ。

果たしてそうであろうか。

大人たちの世界では、今、インフォグラフィックというものが流行している。
非常に高く評価されているといえるとおもう。
いっときの流行では終わらずに、定着する気配を見せている。

これなども、児童書擁護派に言わせれば、悪なのであろうか。

従来も、インフォグラフィックとまで言わず、もっと原始的な、グラフというものがあった。
小学校の算数の時間には、いろいろなグラフの描き方と、その使い分け方を教わったものである。
これなども、児童書擁護派に言わせれば、悪なのであろうか。
算数の授業から撤廃されるべき単元なのであろうか。

言葉を覚えていく途上にある子供にとって、それを視覚的状況とともに、かつ、それが読み手の脳内にビビッドに生起させる聴覚的・嗅覚的・味覚的・触覚的状況とともに、読み取れるということは、言葉の語彙のみならず、それが使用されるべき適切なTPOを学習するうえにおいて、多大な助けになっているというのが僕の持論である。

ソースは僕の息子たちである。

はっきり言って、文字だけの本からは、ほとんど情報が得られないと言っていい。
なぜならば、そこに含まれている単語の意味を知らなければ、子供にとっては、その文を解することは、ほとんどお手上げとなってしまうからである。
自分が英文を読む場合のことを考えたらいい。
知らない単語が1個ぐらいであればなんとかなる。
知らない単語が1文あたり2個も3個もあったら、その文の意味をとることはかなり厳しくなってくる。

子供にとっても同じことだ。

そんなとき、文を読んでいるのではなく、会話しているのだったら、どうだろうか。
その場合には、相手の身振りや表情といった助けがある。
また、会話をしている状況という豊富な情報源がある。
それらを巨大な補助として、僕らは、わからない単語がかなり含まれてしまっていたとしても、かなりの程度まで、相手の言っていることを理解することができてしまったりする。
ソースは俺。

皆さんにもそういう体験はけっこうあるのではなかろうか。

子供にとって、何より大切なのは、経験である。
しかし、子供を一人で世界旅行へ送り出すことはなかなか難しい。
親だって忙しいので、子供と一緒に世界旅行へ行ってやれる親は、なかなかいない。
あるいは、虫の世界を旅したり、宇宙を旅したり、海底二万リーグを旅したりすることは、現代の科学技術水準では、まだかなり難しい。
だから、そうした環境で、そういう世界の人々と会話する体験も、本当に得ることは、困難である。

そこで、本があるのだ。
この点は、児童書派の方も、大いに同意してくださる点だろうとおもう。

子供たちは本によって、大いに疑似体験をすることができる。
本を精神の糧として、子供たちは成長する。
親や友人や先生が直接的に与えてやれない素敵な旅を、子供たちは本を通じて自由自在に楽しむだろう。
本こそは子供たちにとって不可欠の体験なのだ。

そして上で書いたように、その体験の質の豊富さ、あるいはそれ以前に体験の内容そのものの受容しやすさにおいて、漫画は児童書を上回っていることが多いとおもうのである。

漫画でのほうが、児童書でよりも、子供たちはより、そこに書かれている体験をしやすいだろう。
なぜならば、絵や漫画的記号の助けにより、たとえ知らない単語が多少あったとしても、子供はそこで提供されている体験を受容できる可能性が高まるからである。

もちろん、暴力的すぎる漫画や、性的すぎる漫画があるから、漫画は無分別に子供に与えるべきではない、という意見があるだろう。
それには100%同意する。
それと同時に、漫画でない書物のなかにも、そのようなものはいくらでもありますよね、と反論せざるをえない。
暴力的なものがあるとか、性的なものがある、というのは、漫画に限られた特性ではない。
インターネットへのアクセスも同様だと思う。

であるならば、なぜ子供に、漫画を与えてはならないのか。
児童書は漫画よりも、子供に与えるものとして「適切」とされるのか。
それに同意できない者は親失格なのか。

いろいろググってもみた。だが…。

僕には理解できないのである。