伊藤清徳の垂直落下式ムーンサルトプレス

PerlとかPHPとかMySQLとか...がんばっても8割だ。

Category: 未分類 (page 1 of 5)

WANDSについてただただ書くどうでもいい日記

親愛なるフジタさんが主催のアドベントカレンダー2019「ドアカン」12/14の記事です。自分の好きなことを語れという指示。難解なアドベントカレンダーだ。

僕にはいろいろな好きがあるものの、今回はWANDSについて書こう。WANDS好きが淡々と語るだけの、90年代J-POP好きに送るWANDSのすべてだ。というか、実際は、アドベントカレンダー主宰のフジタさんだけが読めばいいと思っている。

なお、この記事に書かれていることは、筆者の主観であることをお断りしておく。

第5期発動!

WANDSの第5期が発動というニュースが2019年11月突如発表された。何というおっさんホイホイ。
なんでも3代目ボーカルとなる若いボーカリストを迎えての再出発。その他のメンバーはギター柴崎浩(1期2期・近年ではTM.Revolutionのサポートギターとして名を馳せている)、キーボード木村真也(2期3期)という布陣。WANDSの血脈をしっかりととらえたメンバーでの再始動といえる。

そもそもWANDSとは

WANDSは、1990年代のJ-POPのヒットチャートシーンを支えたBe-ingグループ発のロックユニット。

中山美穂と一緒に世に放った「世界中の誰よりきっと」

三井生命のCM曲として初のミリオンヒットを飛ばした「もっと強く抱きしめたなら」

アニメスラムダンクのEDテーマとして大ヒットとなった「世界が終わるまでは」

あたりが代表曲。上記動画をご覧になれば分かる通り「ロック」というよりは、「80年代アメリカの商業ロックの影響をうけたデジタルポップ」というほうが、イメージとしてはしっくりくる。

1991年にデビューし、

  • Vo. 上杉昇
  • Key. 大島こうすけ
  • Gt. 柴崎浩

の3人でシングル3枚を発売。ミリオンヒットとなった「もっと強く抱きしめたなら」を最後に、大島こうすけは脱退。ここまでが第1期。(しかし、大島はWANDSに楽曲提供として第2期以降もWANDSに関わっていく)
その後、大島はYAMAHA音楽院という専門学校の友人であった木村真也を後任として紹介し

  • Vo. 上杉昇
  • Key. 木村真也
  • Gt. 柴崎浩

の3人で、第2期WANDSとして活動した。なお、柴崎浩も同専門学校の卒業生である。WANDSとして知られる最も有名な時期がこの時期で、曲の作家陣もヒットメーカーと言えるクリエーターに支えられた時期でもある。「世界が終るまでは」の作曲はJ-POPのヒットメーカー重鎮の織田哲郎、多くの編曲にはB’zの育ての親である明石昌夫、ZARD大黒摩季など90年代のBe-ingのサウンドそのものを支えた葉山たけしなどがその代表だ。

また、第2期までの楽曲のほとんどがボーカリスト上杉昇の作詞で、この時期上杉は、DEEN・ZYYG・manishといった、Be-ingの他のアーティストへも詞を提供している。

しかし、1996年上杉昇と柴崎浩が脱退、木村一人となり、1997年新たなボーカリストとギタリストを迎えて第3期WANDSが活動をはじめる。

  • Vo. 和久二郎
  • Key. 木村信也
  • Gt. 杉元一生

の3人だ。ボーカリストの和久は元ジャニーズjrだ。第3期WANDSは従来のデジタルポップ路線をより強く押し出し、作家陣には、デビューしたばかりの小松未歩、後にGARNET CROWになるAZUKI七などが参加した。第2期までは既存Be-ingのヒットメーカーによって人気を支えられていたのに対し、新人作家を迎えてユニット活動をしたという点が、第3期の活動において特筆すべき点だ。この新人作家陣の名前を聞くとピンと来る人はいるかもしれない。名探偵コナンの主題歌を歴代支えている作家陣でもある。第3期WANDSは2000年代以降のBe-ingの実験的ユニットでもあったのだ。

しかし、日本のマーケットにおいては、ボーカリストの交代は、あまり受け入れられず、2000年WANDSは解体をする。

なお「WANDS」とはBe-ing主宰である長戸大幸が、理想を意味するタロットカード「wand」から着想を得て命名。第3期までのメンバー名を見ると分かる通りボーカリストとギターが「W and S」の関係であるというダブルミーニングとなっている。(上杉昇は現在に至るまで「WesugiSho」と綴っているが、正直なところ後追い感は否めない)

WANDSのイメージ

ここまでで再始動前までのWANDSの歴史をかんたんに書いたわけだが、世間一般的なWANDSのイメージは大きく3つに分けられる

  • ボーカリスト上杉昇が歌手として活動するためのユニット
  • 上杉昇が書いた詞によって世界観が作られるポップユニット
  • Be-ingがプロデュースする、ハードロックがベースとなったデジタルポップユニット

といったところだ。

圧倒的多数の人が「ボーカリスト上杉昇が歌手として活動するためのユニット」と捉えていると思う。また、上杉昇の書く詞が好きだという人もかなりの数がいる。つまり、WANDSのイメージはかなりの人が初代ボーカリスト上杉昇にイメージを重ねる

しかしながら、前述の通り、メンバーの変遷をたどると、大島・木村・柴崎という専門学校時代の人間関係によって作られているユニットとも捉えられ、彼ら3名はスタジオミュージシャンや作曲家としての基本的スキルがある、この3人にBe-ingがJ-POPのデジタルポップのあり方を投影したユニットとも考えることができる(とすれば、第3期は立派なWANDSなのである)

WANDSと上杉昇の関係は、このあと、メンバーを個々に書いていくところで明らかにしていくとして、アーティストのあり方を外野がとやかくいうのは、なんだかアレなわけだが、それにしても、WANDSの歴史は、日本のJ-POPシーンにおいてや、やや特異な存在といえるのではなかろうか。

各メンバーの個性を見ていこう

ここからは歴代メンバーを一人ずつ見ていこう。

上杉昇(WesugiSho)


上述の通り、多くの人がWANDSの象徴と捉える、初代ボーカリスト。日本の代表的ヘビメタルバンドLOUDNESSに憧れ、Be-ingの門を叩いたことが、キャリアのスタートと言われる。パワフルな声はもとより、繊細な歌詞も人気を誇る。上杉は、WANDS時代を「アイドル時代」と自称するように、J-POP丸出しのWANDSのあり方と、ロッカーである自分との葛藤の末に、1996年WANDSを脱退する。しかし、彼自身WANDS時代のことを否定するようなコメントは「アイドル時代」という言葉以外にはなく、近年のインタビューでは「今の自分がやろうとしていることは、WANDSに近づいているのかもしれない」という主旨のコメントを残している。生粋の音楽家なのかもしれない。

いくつものヒット曲を作った織田哲郎も上杉の才能には特別な思いをもっており、

2012年のAnimelo Summer Live 2012 -INFINITY∞-では、初の共演を果たしている。上杉昇というボーカリストについて語ると、WANDS=上杉昇というよりは、駆け出しのWANDSというプロジェクトが一人でもやっていけるボーカリストである上杉昇を欲しがったという感じがする。

WANDS脱退後は、一人のシンガーとして活動する傍ら、X JAPANのPATAとコラボCDを出すなど、さまざまなロックの取り組みを行っている。

WANDS脱退後「猫騙」というバンドを組み、ツアーを行うことになった際のインタビューでは「WANDSに入ってよかったこととしては、警察に職質受けた際にWANDSやってましたっていうと、すぐに解放される」と語っている。警察の立場になれば、こんな風貌の人が、未明の時間にひと気のない場所にいたら、そりゃ職質くらいはするだろう。

柴崎浩


年齢50歳にしてこのかっこよさである。うらやましい・・・。あ。いや。そうではなくて…
1、2、4、5期のギタリスト。ヤマハ音楽院卒業。学生時代にスタジオワーク(主にレコーディングにおける演奏業務のこと)の基礎を覚え、プロを目指したとのこと。
ハードロックよりも、アメリカはLAのセッションミュージシャンに影響を受けており、本人はマイケル・ランドウの影響を強く受けているといっている。


このソロワークから聞いて分かる通り、音楽性はかなり玄人な志向である。同じBe-ingのギタリストとして、長く活躍するので有名なのはB’zの松本孝弘だが、愚直なまでにロックをストレートに表現する松本のとは、かなり対照的なギタリストといえるだろう。
大ヒットとなった「もっと強く抱きしめたなら」や「世界が終わるまでは」は、ギターを除いた編曲は、かなり隙間の空いた編曲となっている。しかしそれでもヒットにつながったのは、間違いなく柴崎の細かいニュアンスを出すプレイイングが耳に心地よいものであるからだと思っている。

上杉昇がいなくなってしまったWANDSに興味がなくなってしまった彼は、WANDSを脱退し、上杉昇とともにal.ni.coというバンドを組むが、上杉のオルタナティブ・ロック的志向と、柴崎のAOR的志向は徐々にズレてしまい、al.ni.coも解散。
柴崎浩の名前がもっとも世に広がったのが、その後の、TM Revolutionのサポートギターとしてだろう(それくらい上杉昇の個性は際立っていた)。TM Revolutionの西川貴教がabingdon boys schoolというバンドを組んだ際に、柴崎は再び表舞台に。

その後、2019年WANDSに戻る。

大島こうすけ


あえて言おう。なんだこの髪型は!!(と、当時も思った) 左に写っているのが大島こうすけだ。
1、4期のキーボーディストである。柴崎と同じくYAMAHA音楽院出身。日本を代表するヘビメタバンドであるLOUDNESSのサポートキーボーディストとして、キャリアを積んだ後に、WANDSを結成。「もっと強く抱きしめたなら」をリリース後、脱退。これからお金儲けができるというタイミングで!!とは思ったり思わなかったり
WANDS脱退後は、アイドルに楽曲提供を行ったり、自身のユニットを活動させたりなど、多岐に渡る音楽に携わる。中でも、ジャニーズアイドルである嵐に提供した「Dear Snow」は50万枚を越えるヒット曲となった。現在ではB’zの稲葉浩志のソロプロジェクトのサポートキーボーディストなどに携わる。キャリアを考えると、WANDSの歴史の中で最も多才なメンバーであったといえる。
現在の見た目は

こんなかんじ。ファンキーな嘉門達夫…いやなんでもないです。
2014年イナズマロックフェスにて、柴崎浩と、後任のキーボーディストである木村真也とばったり会い、YAMAHA音楽院の頃以来という3ショットを公開した。

うん。やっぱり大島だけがぶっ飛んでいる。

木村真也


ちょうどいい写真がなかった。。。WANDSが現在まで続いた立役者である、2代目キーボーディストだ。上杉柴崎が抜けたWANDSをWANDSとして、存続させたのが木村だ。
この写真の通り、90年代前半のシンガーソングライターブームを、そのまま引きずってWANDSをやっていたような気もしなくはないが(大江千里とかその辺のかんじ) 柴崎、大島と同様YAMAHA音楽院卒業。学年では柴崎と同い年だが、WANDSへの加入は大島の紹介で加入している。
メガネは伊達メガネ。

主張はせずに縁の下の力持ち的な立ち位置で、プレイイングをするタイプだが、90年代J-POPには必須なスキルだったと思う。(ちなみに全然関係ないが、この文章を書いている私もかつてはキーボードをやっていたが、完全に木村と同じタイプである。ので木村は尊敬している)
木村が作曲した「MILLION MILES AWAY」は初代ボーカリストの上杉と、2代目ボーカリストの和久二郎がそれぞれレコーディング音源として、残しており、WANDSの音楽性の貫き通す部分と、変わっていく部分をそれぞれ体現した音源となったことは、特筆すべきことであろう。

こちらにボーカルバージョン違いがアップされている。ボーカルの違いもそうだが、ギターソロで表現していることの違い、ピアノソロの有無での木村自身のスタンスの違いなどがかなり明確になっている。

和久二郎


2代目ボーカリスト。本名は松元治郎。WANDSに加入するにあたり「W and S」のダルミーニングを維持する目的で芸名を「和久二郎」にしたと言われている。


元ジャニーズJr.で、光GENJIのバックダンサーを努める「平家派」のリーダーでもあった。


1997年WANDSのボーカリストとしてデビュー。ファンとしてはかなり驚いた。ドラゴンボールGTの主題歌として20万枚のヒットでデビュー。それなりに世間には知られたはずだが、WANDSのボーカルが変わったことに気づいていない人たちもいるなど、声の質は上杉昇に近い。しかし一部では「モノマネ」と揶揄されるなど、圧倒的な存在感である上杉との違いには苛まれただろうと思われる。

遊戯王の主題歌となった「明日もし君が壊れても」は、広い音域とパワーで、初代上杉とは違った存在感を見せた、第3期WANDSの集大成的作品だと言える。
事実、上杉はLOUDNESSやカート・コバーンなど思い切りロックを突き進むものに影響を強くうけているが、和久はサミー・ヘイガー(exヴァン・ヘイレン)や稲葉浩志など聞き手にわかりやすい形で音楽を伝えるタイプのボーカリストに影響を受けており、ボーカリストとしてのスキルセットは、この二人は全く逆の方向を向いているといえ、Be-ingが求めるWANDS像は、実際のところは和久が表現することのほうが、上杉のやりたいことより近い。
WANDS解体後は、バーのマスターなどもしていたが、現在は、シンガーソングライターとして活動。

杉元一生

2代目ギタリスト。本名は安保一生。和久と同様にWANDS加入にあたり芸名を変更した。愛称「すぎーにょ」(※すぎーにょの愛称はWANDS解散直後からの愛称)

WANDSのイケメン枠はギタリストなのか。。。すぎーにょもイケメンである。

第3期のメンバーのデータを探すのが大変なので、もう一度同じYouTube動画を使うのをお許しいただきたい。
使っているギターは、世界的ギターアンセムであるスティーブ・ヴァイモデル、ソロを弾かせれば、ギターキッズたちが涙目になって覚えるテクをひたすらに弾くというスタイルだ。初代ギタリストの柴崎がスタジオワークの技術に裏付けされた玄人志向だが、杉元はギターキッズがひたすらにがんばったことが結果につながったという根性論志向(言い方が悪くてすまない)だ。ボーカリストと同様に、初代と2代目はプレイイングは方法論が全く違う。CDの中で演奏されている音を完全コピーしようと思うと、柴崎のプレイイングは表現に悩むが、杉元のプレイイングはテクに悩むという違いがある。
なお、杉元は、世界的少女ギタリストYoutuberであるLi-sa-X

の父であるという噂があるが、真相は不明である。杉元は自身の公式TwitterにおいてLi-sa-Xのニュースを、しばしばリツイートする。なかなかな親バカである。この噂が本当であれば、Li-sa-Xのギターテクは杉元のものに似ており、杉元が教え込んだものと思われる。あ。顔も似ている!

上原大史

2019年復活したWANDSのボーカリスト。第4期5期のWANDSのボーカリストになる。

このライブを見る限り、前任の二人よりはパワーで劣るものの、ロック以外にも表現力に幅があり、2019年現在の上杉の歌い方にもやや似る
第3期のWANDSがそうであったように、かつてのWANDSの姿にどうやって立ち向かっていくのかが見ものである。
柴崎は「上杉のいないWANDSに興味がない」とWANDSを飛び出したはずだが、柴崎はもどってきた。それを凌駕するものが上原にあるのだとファンとしては信じたい。
3代目ボーカリストもWで、しっかり「W and S」となった。さすが、長戸大幸(Be-ingグループ主宰で、Be-ingグループ各アーティストの総合プロデューサー)である。

第5期WANDSとは


第3期までしっかり追いかけていた僕にとっては、いきなり「第5期」というニュースは「どういうこっちゃ」となりました。
ニュースによると

  • Vo. 上原大史
  • Key. 大島こうすけ
  • Gt. 柴崎浩

を第4期として楽曲制作のみをおこなった期間とし、

  • Vo. 上原大史
  • Key. 木村真也
  • Gt. 柴崎浩

ステージアクトを行うメンバーとなり「第5期」と称する ということだ。うん。なんかしっくりこないぞ。
上原大史が一体どういった経歴で、どんなボーカリストなのかは全く不明ですが、

このステージを見る限り、幅のある表現力で新曲『真っ赤なRip』は、従来のデジタルポップ路線ではなく、少しブルースやJazzの要素をいれた楽曲となっている。WANDSとしては新しい試みだ。柴崎のソロも、過去のWANDS時代のものにくらべるとAOR(アダルトオリエンテッドロック)の要素を感じるプレイで、柴崎の本分が出た感じがする。良くも悪くも木村は昔のまんまだ!

しかし「真っ赤なRip」とは、またずいぶんおっさんなタイトルにしたもんだと思ったら、作詞は新ボーカル上原とのこと。ごめんなさい。。。
ボーカリストが作詞ということで、これもまた楽しみな一面である。

聞いておけ

この後に、第5期WANDSに演じてほしい過去の曲を書くが、その前に、過去のWANDS作品において、これは聞いておけというYoutube動画を書いておく。


『果てしない夢を』この曲はWANDS単体の作品ではないが、国宝級と言える曲だ。
ZYYG、REV、ZARD、WANDSというBe-ingを代表するアーティストが集った作品だ。だが、国宝級なのはそこではない。ギターソロのあとのリフレインにて、あの読売ジャイアンツ終身名誉監督である長嶋茂雄が歌っているのだ。それ以上は僕からは話すことができないが(いい意味でも悪い意味でも)、後世に残すべき作品である。


『世界中の誰よりきっと -ALBUM VERSION-』中山美穂feat.WANDSのWANDS単体版だ。上杉が本気でミポリンを倒しにかかりに来ている感がありありな1曲だ。上杉のボーカルはもとより、柴崎のギターの演奏も明らかに中山美穂バージョンよりよい構成にしているし、デビュー直後の木村も気合がはいっている。


『Don’t try so hard』 アルバム『PIECE OF MY SOUL』収録の柴崎作曲の楽曲。第2期終盤の事務所意向と、上杉の意向のすれ違いが全面的に出ている作品。デジタルポップ路線であるはずのWANDSにおいて、マイナー調でアコースティックな楽曲であり、ファンも好き派と嫌い派が分かれる。


『今日、ナニカノハズミデ生きている』 のちにGarnetCrowのメンバーとなるAzuki七作詞、当時rumania montevideoを結成していた三好誠作曲という、2000年以降中心的作家と作風を変えていったBe-ingの実験的シングルと言える。残念ながら第3期WANDSにおいて最後のシングルとなってしまった楽曲だが、第2期までを引きずることなく、第3期WANDSの集大成といえる構成であると思う。

第5期にやってほしい曲

僕個人が、第5期WANDSにやってほしい曲を書いておく。


『MILLION MILES AWAY』すでに上述の作品だが、上杉・和久のいずれの声でも音源が残されているので上原でも残してほしい。もし、第5期において音源が残るのであれば、大島こうすけが編曲をしてみてほしい。そうなれば、1期から5期をすべてつなぐ作品となる


『Don’t cry』 アルバム『Little Bit…』に収録 FEEL SO BADの川島だりあ作曲の楽曲。たとえば2019年現在の上杉が歌唱しても重みのない世界観であろう作品。若い上原が歌うから成り立つ作品だと思う。それをおっさんになってしまった柴崎と木村がどうもり立てるのかも気になる。

まとめ

ここまでWANDSの過去を振り返りながら、第5期をちょっと紹介した。
こうやって書いていると、圧倒的な存在である上杉昇とWANDSという関係がずっとそこにはあったことが見えてくる。第3期ではやりきれなかった、柴崎があきらめた上杉のいないWANDSの確立をしてほしいと思う。第3期当時にはなかった、YouTubeなどのメディアがある今ならできる気がしている。

WANDSファンがWANDS愛を語りました。現場からは以上です。

焼失してしまった沖縄首里城へ祈りをささげにいってきた。

まず最初に、沖縄に関わる全ての人々に衝撃と落胆、大きな喪失感をあたえた、首里城火災に際して、時間はかかるのかもしれませんが、沖縄の人々の叡智で、再建計画が進み、そして、その計画が実ることを心から祈っております。

つぎに、沖縄に来はじめて20年近く経ち、ここ数年はほぼ毎月来ている僕とは言えど、首里城焼失に関して、単なる雑記ブログであるこのブログに記事を書いて良いものか悩んではいたのですが、たとえば30年後の2049年に首里城が、再び沖縄の人々の象徴となり、全日本全世界の人々の共有文化財になったとき、一つの記録として意味のあるものなるのかもしれないという思いでこの記事を書きます。様々な意見や思いがあるとは思うのですが、僕個人の日記ということでご容赦いただけると幸いです。

2019年10月31日未明それは起きた

2019年10月31日。朝起きて、スマホでYahoo!ニュースを見て、それを知る。「首里城焼失」。この文字の並びの意味を理解するのに2分3分くらいはかかった。ありうることなのか?僕が、2001年8月にはじめて沖縄に来たときから、そこに当たり前にあるものがなくなるということがあるのか、理解ができなかった。そんなことがあるのか?理解したあとも、そう思った。地元沖縄の沖縄タイムスや琉球新報を見ると、ショックで登校できない小学生がいるという記事を見て、事の大きさを理解した。実感した。と、火災から数日経って、この記事を書いている今、振り返ると、そう思う。

偶然にも、火災から3日後の2019年11月3日に沖縄那覇にいく予定であったため、到着は夜ではあるものの、まっさきに首里城へ向かうことを決めた。

そこにあるのは風景だった

11月3日18:30 那覇空港に着。
僕たちが那覇で利用するアパートは、那覇空港から車で25分程度、首里城へは車で7分程度のところにある。すぐに行ける距離であるため、まっさきに向かったわけだ。
11月3日は文化の日。土日が絡めば、3連休以上になる。今年2019年も3連休。「これまでの首里城」では、ライトアップが行われるため、19:00くらいではまだ人がいるのだが、僕が首里城公園の龍潭についた19:00には人はだれもなかった。

覚悟はしていた。が、恐ろしく残酷な風景がそこにはあった。あるはずのものがない。
夜の首里城は、漆の効果により、とても美しく映えていた。再建計画が進む中、瓦の色などは、戦前の焼失の前とはちがっていたことが古い資料から判明しているそうだが、それを差し置いてもきれいであった。正直なところ、首里城が健在の頃は、昼の姿より夜の姿のが好きであった
しかし、それがないのだ。


撮影場所が違うけれども、これが2010年夏の首里城の夜がこの雰囲気だ。全く別物になっているのがこれだけでもわかる。

10月31日の未明。あれだけのものが焼失してしまうほどの火災があったのだ。小さい小学生にとって、物々しい雰囲気が街を包み、登校ができなくなるのも納得できたのは、やはりこの場に立ってからだ。

この日は仕事がまだ残っていたので、首里城を後にし、仕事に向かう。

明るくなって見えたものは廃墟だった

明くる日の11月4日。再度首里城公園を訪れる。

昨晩真っ暗であったそこには明らかに焼け焦げた建物がある。ご注意いただきたいのは、この焼け焦げた建物は北殿という建物で、観光案内などで見る立派な建物正殿ではない。このアングルから見えるはずの正殿は、見ることができない。マスコミ報道で既報の通り、正殿は完全に焼け落ちた。見る影もないというのが、ようやく理解できた感じがする。

龍潭から首里城正殿方面にあがっていく。心配して見に来る沖縄県民、もともと旅程にはいっていたので見に来る観光客、そして、マスコミ。以前訪れたときとは明らかに違う龍潭から首里城公園正殿方面への道。首里城公園の休園をお知らせする張り紙があちこちにある。何人かのうちなーんちゅに声をかけた。不思議と悲壮感はない。うちなーの気質なのかもしれないが、もう一度再建するし、できると信じている人が多いように感じた


守礼門のほうまで、放水ホースが引かれたままだった。報道によると、火災翌日になっても煙はあがったままだっただということで、火災自体が大きなものであったことを感じさせる。


いつもだったら琉装記念写真を撮ることができる守礼門も、休園なので、スタッフも不在。客足もまばらである。

首里城公園メインエリアは歓会門まで


首里城公園メインエリアの一般立ち入りは歓会門までとなり、それ以外の大部分は規制線がはられていた。たくさんのひとが、どうすることもできないままに、言葉なく正殿方向を見ていた。


黒いTシャツのお兄さん。あなたのすぐ左手にある建物。園比屋武御嶽石門(そのひゃんうたきいしもん)が、首里城公園においては建造物として唯一の世界遺産なのですよ。と思いつつも、シンボルである正殿を失った首里城公園は、報道のヘリが放つ喧騒だけが鳴り響いていた。


ちょうどこの日午後に県関係者、国会議員などが火災現場視察をするということで、県警の偉い人だと思われる人々が、正殿方面にたくさん上がっていっていた。

首里のすべてが失われたわけではない


首里城公園のすぐとなりには、こんなきれいな石畳道がある。この付近には首里が聖地である所以のひとつとなる湧き水があったり、古くからの家屋があったり。紅型のお店もある。観光に行くに値する町並みだ。とくに、石畳茶屋「真珠(まだま)」は、僕が沖縄にいきはじめたころからあるお店。那覇市街を一望しながらゆったりとお茶を飲むのは最高の時間だ。


首里城公園の人工池龍潭の横には、不思議な鳥「バリケン」たちが、みんなを待っている。

前述の通り、首里城公園唯一の建造物としての世界遺産「園比屋武御嶽石門」は健在だし、首里城の遺構そのものが世界遺産であるため首里城の価値も失われていない。とにかく間違えてはいけないのは首里の価値は失われていない。いまだから行こうとかそんなきれい事を言う気はさらさらないが、行く意味はまだまだある。観光で沖縄にはじめて行く人々にとっては、行ってほしい場所のひとつであることには変わりがないことを確認した。


警察官たちもマスコミ対応や、入場規制への対応で人が増員されていた。

うちなーんちゅの人たち

何人かのうちなーんちゅに話を聞いた。みんな揃っていうのは「自分が生きているうちにもう一度首里城の復元は見られるのか」。
首里城の復元においては障壁がかなり高いことがわかってきている。

  • 首里城に使われた琉球瓦は、首里城の前回の復元の際には、すでに1社のみしか持たない技術で、その匠もすでに他界していらっしゃり、技術自体がすでに失われている。
  • 前回の修復時は、台湾の木材を利用して、修復が行われているが、現在台湾は木材を輸出することができなくなっており、木材が大量に足らないのではないか?
  • 前回の修復時は、工具なども琉球王朝時代に利用された工具を使う試みが行われ、日本中から集められた匠たちは、個々人の研究において使い方を探り建築された。その技術自体の復元のハードルが高い

など。さすがのうちなー。こういった情報は細かくご存じの方が多い。過去にはなかった技術で復元を早められることを祈るばかりだ。
また、さまざまな意見の中には、復元にあたり漆は塗らなくてもいいのではないか? 復元後はライトアップは要らないのではないか?という意見もあった。こういった意見もかんたんには否定できない。うちなーのシンボルとしてのあり方としては、観光資源よりそちらを優先したいという意見も間違っていないだろう。

どういった形にせよ、失われて初めて感じることなのかもしれないが、とにかく上述の通り、沖縄県民の叡智をもって、復元計画が進むのを待つばかりである。

支援は広がる

沖縄県がクラウドファンディングにて支援を受け付けている。11月4日の滞在時、沖縄県内のラジオを聞いていると、支援が2億をこえ、もうすぐ3億だというニュースを聞いた。
知り合いの沖縄古典芸能をやっていらっしゃる仲嶺良盛さんはチャリティーコンサートを開いた。
沖縄を離れた場所においては、懇意にしている愛知県岡崎市の「いちゃりばちょーでー」では、店主手作りのグッズを通じて支援を募っている。
とにかく大小さまざまな支援がひろがっている。
僕は琉球エアーコミューターを通じて、手持ちのJALマイレージを全額寄付手続きを行った。

おそらく、この首里城ショックは、一種の「旬」みたいなもので、少しの時間をすぎれば、やや下火になってしまうことは致し方ない。2019年は様々な自然災害が日本各地を襲い人命に関わる災害もたくさん起きた中で、同じレベルで首里城の焼失を捉えられるかというと、やはりそれにも無理があるのは否めない。

たとえば、もし「ちょっと毎日に疲れたな」とおもったのだったら、ちょっと沖縄へ行ってみる。というのでも僕は十分な支援になると思っている。(LCCで安くいけるよ!)熱い支援でなくてもよいので、世界遺産である首里城公園の復元に少しだけでも、多くの人の関心が寄せられればと僕は思う。

30年後(になるかわからないけれども)の復元時に、この記事が、なにかの役に立っていることを願って。
現場からは以上です。

ベトナムホーチミン ブイビエン通り に泊まってきた

どうもきよっちこと伊藤でございます。

2019年9月に1週間弱ほど、ベトナムホーチミンに行ってきました。1年ぶり2回目の訪問。仕事での訪問ではありますが、楽しめることもたくさんあったので、報告がてら書いてみようとおもいます。

旅程順に書かずに、立ち寄った場所ごとにまとめて書きますので、参考になさっていただけると幸いです。

この記事では、ベンタイン市場などの有名な観光地のお話は省きます。

空路について

中部国際空港発着 タンソンニャット国際空港行き ベトナム航空の直行便にて行きました。
行きは日本時間10:00ごろ出発 現地時間14:30ごろ着
帰りは現地時間00:05出発 日本時間07:30ごろ着(つまり深夜便)
です。往復で燃油サーチャージなどを含んで、おおよそ往復で5万強程度(エコノミークラス)です。2019年9月現在は中部セントレアとホーチミンを結ぶ便は、エアバス321機で運行されています。

A321は、3列×3列のいわゆる「ナローボディ機」でして、けっこう狭いのが難点ではあります。ベトナムの国民性なのか、やたらとエアコンを寒くするのが普通らしく、席にはブランケットとクッションが昼便であろうとも置かれています。女性など寒さに弱い方はあらかじめ厚めの服装にて搭乗なされることをおすすめします。

今回はエアトリにてチケットをとりました。webチェックインは出発24時間前から行うことができます。逆に言えばそれまで席の指定はできません。ナローボディ機であれば広さがほしいので、非常口席か、最後尾席が良いかと思いますので、そこを確実にとるには24時間前のwebチェックインが必要です。
※非常口席は英語での最低限コミュニケーションを必要とするので、英語に自信がない方はNGです

機内食は比較的おいしいほうにはいる機内食だとおもいます。味のバランスもよいですし、フルーツなども美味しいですね。ただし帰りの便は、午前3:30ごろから食事となります。眠りたい人はあらかじめアテンダントに食事はいらないとつたえておくとよいです。

タンソンニャット国際空港について

タンソンニャット国際空港は、軍民共用空港となっており、イミグレーションなどは軍が管轄する空港です。入国審査も軍人が行いますが、審査基準は一定ではなく、入る際には人によって求められるものが違います。あらかじめ手元に用意しておいたほうがよいものとして

  • Eチケット
  • 帰り便の予約番号と時間わかるもの(予約控え)
  • ネット環境

は用意した上で、入国審査を受けるのが良いです。人によっていずれかを求められます。印刷もEチケットも両方持っていないとどちらを求められるかわからないため入国に難儀することがあります。

ベトナムを出国して帰る際も、手荷物検査などは軍の管轄です。バゲッジドロップにて荷物を預けると、空港のモニタにいま自分の荷物がどうなっているのかが表示されていますので、アラートが出ていないかを確認した上で、制限区域に進む必要があります。成田の第三ターミナルと同じような仕組みですね。ですので、この点においては懸念があるわけなので、空港にはちょっと早めにいって荷物を預けておくのが良いです。
手荷物検査は、靴をぬいで、金属探知機をくぐらなければなりません。脱ぎづらい靴はおすすめしません。

また帰りの検査は、軍の掌握で進められているので、かなり厳格です。僕はAppleMacBookPro2016の15インチをもっているのですが、発火危険性がある機種ということで、別室についれていかれ、いつどのような形でどこから買ったのかを細かく聞かれたうえに、PCのシリアルナンバーをテロ疑いありリストに記載されたうえで、厳密な身体検査を受けました。外国でこのような扱いを受けることは、とても不安になることです。あらかじめ、自分が持っているPCが国外でどのような扱いを受けているのかを知った上で、ベトナムには向かったようが良いです。
ベトナムに限らずですが、アジア各国の入出国審査には袖の下を求められることも多々あります。ルールブックは向こうにあります。最悪MacBookを渡して帰る覚悟が要ります。(ので、データは外に出すべし)

タンソンニャット国際空港は、ホーチミン市中心部まで、タクシーでおよそ30分程度。値段にしておよそ130,000ドン、日本円で600円くらいあれば、中心部にいくことができます。タクシーはよほどベトナムに慣れていない限り、絶対にVINASUN(ヴィナサン)か MAI LINH(マイリン)以外は乗ってはいけません。これ以外のタクシー会社は、基本的にぼったくりです。ベトナムは非常に治安のよい国ですが、ひったくりとぼったくりはめちゃくちゃに多いです。

ホーチミン市街地について


ホーチミンシティは、とても広い市で、人口は850万人弱で、東京都全体とおよそ同じくらいの広さがある市です。ワンルームマンションの家賃が東京23区内と変わらない富裕層居住地域から、スラム街まである、ひとつの小さな国を凝縮したような、多様な姿を見せる街です。日本人には考えることができないほどのバイクの数が走っており、日本人には理解ができない交通ルールで無数のバイクが道を埋め尽くしており、それだけで、圧倒されてしまいます。はっきり言うと日本人は最初は道を横断することができません
セブンイレブンやファミリーマートといった馴染みのある店がたくさんあり、物価は安いですし、宿泊する上で、必需品に困ることはありません。しかしペットボトルのお茶の最安価格が20,000ドンという慣れない単位には、非常に悩まされます。2万ドンはおよそ100円弱程度。つまり200で割った数字が、日本円近似値になります。まじでデノミしてくれとおもいます。

日本人韓国人とすれ違うことが多く、また欧米人もよく見かけます。国際都市ですね。コミュニケーションは、日本人が立ち寄るような場所では、英語でほとんどいけますが、アジア英語なの聞き取れないことも多々あります。スターバックスコーヒーもあれば、イオンモールもあるし、丸亀製麺もあります。から本当に困りません。

しかし、本当に街が汚いです。あまり清掃をするという倫理観がない国のようで、自分の家や店の前にゴミを放り投げるということに対しては、なんとも思わないようです。ホーチミンはとても暖かい地方で、夏はいかないほうがいいくらい暑いわけですが、とはいえ、裸足にサンダルのような格好は、とても足がよごれて不潔感はありますので、おすすめしません

治安は外国としてはトップレベルに治安がよく。よほどスラムのようなところに行かない限りは、夜女性が歩いていても問題がないレベルです。しかし、前述のとおり、ひったくりとぼったくりはたくさんありますので、例えばお札がいっぱいはいった財布をうかつに出すなどはNGです。

今回の宿泊場所ブイビエン通り


ホーチミンシティナンバーワンの繁華街です。毎晩 隅田川花火大会とディズニーランドのパレードが同時にやってきたような 人出と大騒ぎとなります。この中にあるホテルを使いました。
大騒ぎはどれくらいの大騒ぎかと言うと、この通りのクラブやディスコの類はすべて、アリーナコンサート級の音量が出せるスピーカーを、道に向けて音出しし、食事ができる屋台は道に勝手にステージ組をしてカラオケ大会を行い、そこに来る客が大声で歌えや飲めやです。各店のスピーカーはすべてしっかりウーファーが効いています。ホテルの部屋が通りに面した側の部屋だとほぼ確実に眠れないでしょう。
ネットで、この通りのことを調べると、大変に治安が悪いということを書いてありますが、ある一側面では正しいですが、必ずしも治安が悪いということはないです。この通りに5日いたわけですが、争い事や強盗のような「凶悪」なタイプの犯罪には出会っていませんし、ベトナムに詳しい友人も、そういったことは聞いたことがないと言っていました。しかし、ひったくり騒ぎや寸借詐欺のようなことは目撃しています。こそドロ的なものですね。あとは、笑気ガス遊び(日本でいえばシンナーで遊ぶみたいな感じですかね?)やマリファナ遊びをしている人は見かけます。日本人の感覚で言えば、ここは確かに治安が悪いですが、世界の感覚でいうと治安は悪くない(いいとは言っていない)という感じですね。
なお、友人からの注意で、この通りには、マッサージ屋が多々あります。かわいい女の子が客引きをしてきます。ほいほいついていくと途中でスペシャルマッサージ100ドルとか言ってきて、これはもしかしてムフフなやつかと思って払うと、力が強くなるだけのスペシャルだそうです。基本的にはベトナムでお金を要求してくるものは、すべてぼったくりだとおもって間違いないです。

3つ星ホテル


今回のホテルは3つ星ホテルにとまりました。海外の3つ星ホテルは、一般的には「スタンダード」と言われるクラス。つまりは「普通」ということなんですが、ベトナムにおける普通とはどんなものでしょうか?
まず、エントランスホールは、とても小さく、日本でいえば安いビジネスホテルと同様。ロビーはなく、ソファが1個ある程度です。
スタッフはスーツなどは着ておらずハーフパンツとTシャツです。スタッフとのコミュニケーションは英語で大丈夫ですが、「ベトナム訛り英語」で、僕たちの「日本語訛り英語」とイマイチ相性がわるいのか、聞きづらかったり伝わらなかったりします。昨年ホーチミンの4つ星ホテルに泊まりましたが、そんなことはありませんでした。端的にいうとスタッフの教育教養レベルが違うということですね。スタッフはみなやさしく親身です。しかし、ちょいちょいタクシーやツアーには興味がないのか?いいのがあるぞって勧めてきます。この類のはなしは、ぼったくりなので、のってはいけません
お部屋は、まさにスタンダードといえる設えでした。日本のビジネスホテルよりは広く、ちゃんとデスクもありますし、wifiも安定して使うことができます。トイレはTOTO製!シャワーの水圧も問題なしです。お湯もちゃんと出ました。しかし、どうも排水にトラップがないみたいで、悪臭がしました。ベッドの質は良くも悪くもありません。香港やシンガポールの3つ星は、設えがちょっといいけどせまいということが多いですが、ベトナムの3つ星ホテルは全体的には質素というのが感想です。
ベトナムのホテルを調べていると「窓あり・窓なし」とわざわざ書いてある事が多いです。明るさが欲しい人は窓ありとしましょう。
ホテルの屋上には、カフェがあり、そこで朝食を食べます。9月は雨期ですが、午前中はさわやかな天気で、眺めの良いカフェで食事を摂れるというのは、贅沢な時間の使い方だなと感じます。4つ星ホテルの場合は屋上はプールになっていたりしますが、ホテル屋上でなんだかの施設がついていることは、ベトナムでは多いようです。これもベトナムのひとつの愉しみとして、ホテルを予約する際に調べておくと良いでしょう。
宿泊代は、朝食がついて、1室1泊3600円くらいと格安。ベトナムの3つ星は良いとは言い切れませんが、体験の一つとしてはおもしろいものといえます。

ブイビエン通りでの食事

上述のような、大騒ぎ若者ストリートなので、ろくなものを食べられないのではないか?と感じてしまいますが、そんなことはありません。
アメリカンスタイルのピザ屋もありますし、有名な食堂もあります。バスキンロビンスやスターバックスコーヒーすらあります。
ブイビエン通りの中ではないですが、両端を出たすぐあたりには、高級料理店もあります(とは言っても、1人ディナーで3000円行かないくらいでは入れます)し、屋台もたくさん出ております。屋台はベトナム名物のバインミーがおすすめです。
要するにブイビエン通りは、なんか遊びたければここに来いというストリートなんです。ただし、場所代が乗っているのか、ホーチミンの物価と対比するとやや高いものが多いです。フォーが日本円で500円くらいしました。(他の場所では100円そこそこで食べられるところも多い)

番外編 金庫のカギをなくした

僕の旅行において最も高価な持ち物はMacBookProです。30万近くしますし、これがないと職業が成立しないので、ある意味命よりも大事なものです。常に保険もかけています。そんなものなので、海外での旅行では、MBPを金庫にいれることが多いです。今回泊まったホテルでも金庫に入れていたのですが、いまどき珍しい、番号式ではない金庫です。うぉ。。。となりましたが、そこにいれて、街に出ました。15分後、、、カギを無くした事に気づきます。。。やっちまった。。。
ホテルのフロントに言うと「まじか!はじめての経験だが、大丈夫。プロフェッショナルの誰かを呼ぶから、朝10時まで待ってろ」と言われました。「プロフェッショナルの誰か」ってなんだよ。。。ベトナム人の大丈夫は安心できない。カギをなくしたのが深夜。不安なまま夜が明け、10時くらいにやってきたのが、ボロボロのハーフパンツとTシャツで現れたにこやかな男性。なぜか荷物を何ももっていない。。。え!?とおもっていると、ポケットから針金2本(片方はテンションかけるためのものなので、平打麺みたいな針金)を出して20秒ほどで解錠!!!すげぇ!!!と、感動するもの、この男性いったい何のプロフェッショナルなんだ?この男性がすごいのか、この金庫のセキュリティが大丈夫なのか???とか、いろいろ頭が混乱しましたが、とにかく良かったです。海外でのイレギュラーは不安しか生みません。
ちなみに、日本に帰ったあと調べたところ、ホーチミンには、とてつもない量のバイクがあり、それに付随して、バイクのカギ紛失の件数もかなりあり、カギのプロフェッショナルはたくさんいるそうです。なので、カギをあけてくれた男性は本当にカギのプロなんでしょう。ということは、金庫のセキュリティが大丈夫ではない。。。

番外編 ホーチミンシティでのノマドワーク

僕はITのおしごとをしているので、インターネット回線がないと、まぁまぁ死に瀕します。ホーチミンでのネットは、レンタルwifiを借りてもっていったり、amazonでViettelという電話会社の4G回線格安SIMが買えるので それを持っていったりすればOKです。いずれの場合も回線速度は、下り10Mbpsから25Mbpsくらいは街なかでは出てくれますし、ちょっと中心部から離れても5Mbpsくらいは出てくれます。あまり日本国内と遜色ないですね。やはり日本国内と同様で、上りは速度が遅いです。
しかし、ホーチミンのお店のほとんどはフリーwifiを飛ばしてくれています。つまり、長居ができるカフェを見つければ、そこでお仕事はできます。
僕が愛用するのは、日本人町にあるCoffeeRepublic-the house小規模のベトナムコーヒーチェーンですが、コーヒー以外にも果物をつかったジュース(ぼくはライム・ジュースがお気に入り)やバインミーもあって、1日いられます。店員さんはみなさんわかりやすい英語をはなしてくださり、欧米人もノマドにつかっているカフェです。
ホーチミンにもスターバックスコーヒーはあります。スタバで仕事をしている人も多いのですが、スタバは1購入につき、1時間1端末しかwifiをつなぐことができず(POSと連結されて管理されています!!)、あまり安定はしていません。ので、ノマドワークにはおすすめできないですかねー。
なお、ホーチミンのノマドワークに使えるカフェは、価格は、日本のカフェと大差ありません。コーヒー1杯400円程度です。ので、安くお店にいられるかというと、そうとは言い切れません。

ホーチミンにはコワーキングスペースも多々あるので、調べていくとよいです。今回僕たちは、レオパレス21がやっているコワーキングに行ってまいりました。こちらもコミュニケーションは英語である必要があります。上述のカフェより、しっかりした英語でのコミュニケーションになるので、ベトナム人英語に耳が慣れた上で行くのがよさそうです。
ちなみにですが、ベトナムのコンビニには印刷をする機械は備えられていません。PCから紙での出力をする場合は、ホテルのロビーに頼むか、コワーキングでの印刷になります。なるべく紙に出す仕事を持っていかないようにするのが吉です。

番外編 「旅行者症候群」

ホーチミンで青唐辛子を食べたあとから、ずっとお腹の調子が悪く、帰国してからも1週間程度下痢がつづきました。最初は、強烈なカプサイシンで消化機能がおかしくなってしまったのだろうとおもっていましたが、さすがに1週間となると、何かが変だということで、病院に行きました。
近所のクリニックに行き、事情を話すを「あーはいはい。なるほど」という先生の反応。先生の診断はすぐに降りて「旅行者症候群」という病気でした。症候群なので「風邪」みたいな大枠な診断ですが、僕の症状の場合は次のとおりです。
現地の常在菌が体内に入った結果、自分常在菌より勝ってしまい、腸内で現地の常在菌が増殖。身体はこれまでになかったものなので、排出しようとして下痢を起こす。一回排出できたとしても、現地常在菌のほうが勝っている状態なので、体内でまた増殖し、身体は下痢として排出しようとする。というのを繰り返している症状です。
腸内菌を一旦殺してしまうという薬の処方をうけて、すぐになおりました。
現地の常在菌が悪性の菌というわけではなくて、僕の体内菌との相性の問題ということなんだそうで、海外にいくときは、ビオフェルミンなどで、体内の菌を強化・調整を予め行った上で、行くとよいそうです

体験は何にも勝る

日本人のパスポートの所有率は、全人口の25%程度しかないそうです。イメージよりよりかなり少ないです。先進国の中では下位です。都道府県別に見ると10%を切る県もあります。
日本は国内だけで完結ができるとても良い国です。日本のことしか知らなくて困ることは、必要の上では、ほとんどないと言えます。バインミーなんて日本でも食べられますし、なんだったら日本人がつくるバインミーのがおいしかったりします。しかし、そんな日本が海外からどう見られているのかは出てみないとわかりませんし、ベトナム実習生受入れ社会問題もその性質も外から見てみないとわからないでしょう。つまりは、もう一側面から見れば、世界で起きているほとんどのことを「対岸の火事」と捉えてしまえる国でもあります。
ブイビエン通では日本人は、まったくといっていいほど見ませんでした。中国人も韓国人も欧米人もたくさんいるのにです。おそらく、日本人の治安に対するレベル感が、他国の意識より高すぎるのでしょう。これは良いことなのかもしれません。他方で、ネットで調べた情報だけをもとに、判断し「行かないほうがいい」という判断をしているのでしたら、それは本当に良いことなのかは疑問符です。身近なひとの体験から判断しているのでしたら良いのですが。もし、この記事を読んでくださっている方は、ブイビエン通りで泊まれとはいいません。遊びに行ってみてください。
今回は、5日間になまってしまった体験頭脳を活性化できる良い旅だったと思います。

が、しばらく東南アジアはいいかなー。。。。次は、台湾へGo!

現場からは以上です。

北九州市気に入った! 宿泊と移動が一石二鳥 名門大洋フェリー 新門司港→大阪南港

先日、福岡→大阪の連続出張がありまして、僕が住む愛知県からはどういくのがいいのか?ということを考えていたら船を使うのがいいのでは?という結論に達して、実行してきたレポートです。

日程

8/7 福岡市博多駅付近にて某ボランタリーチェーンより依頼の7時間ぶっ通しセミナー
8/9 大阪南港地域のクライアントにてITコンサルティング

という日程でした。
8/6の夜には福岡に入っておく必要がある、8/8は空きではあるが、名古屋に帰るのはナンセンス。ということで、8/6の夜中部国際空港を発で、8/8のうちに大阪に移動、8/9夜帰宅。というイメージで調べていたところ、福岡と大阪を結ぶ海の定期航路があることがわかったので使ってみようということになったわけです。

8/6 ANA 449便 名古屋(中部)-福岡 20:10-21:35(この便はタイ国際航空などのコードシェアです)
8/6-8/8 福岡市内宿泊
8/7 セミナー登壇
8/8 北九州市小倉に移動し、19:50よりから船便
8/9 08:30 大阪南港到着

ANA449便のコードシェアや運用機材、福岡市内の宿泊などについては、特徴的なものをあえて選んで移動していますが、これについてはまたそのうち。

北九州市

8/8のホテルチェックアウトから、船便出航時刻の19:50までは時間がありましたので、博多駅から小倉駅に移動し、1日小倉の駅周辺でPCを開ける場所にて仕事をする予定でおりました。あまり調べずに福岡に向かい、前日に調べたところ、北九州市と呼ばれる地域はとても広いことを知り、小倉と門司は近いものの、門司港と新門司港は山で隔てられてなかなかに距離があり、小倉と近いのは門司港のほうで、僕が船に乗るのは新門司港の方だということがわかり、ちょっと焦りました。。。。
幸いなことに小倉駅から無料送迎バスがでています。よかったー(でもバスで40分!?)

小倉駅からすぐのところに1日利用で1000円のコワーキングスペース秘密基地さんがあったので、そちらを使うことに。

こんなかんじの雰囲気。夜はダイニングバー経営になるみたいですが、最近はシェアオフィス寄りなコワーキングが多いのですが、こちらは原義なコワーキングを感じました。

昼食は、どうも鉄鍋餃子で有名店があるということで、いくことに

総本店でした。実はわたくし、どうも最近では「唐揚の人」みたくなっていますが、某ミシュラン・ガイドにのった餃子専門店の主人に「博士」と呼ばれるほど餃子好きでして・・・行ってまいりました。評価は別のタイミングで。


北九州市民が博多になくて小倉にあるものとして胸を張るという、小倉城の横には、名古屋になり水辺のおされなコメダがありました(が、僕はコーヒーが苦手なのでめったに行きませんが)。商店街にはさまざまな種類のお店があり、活気もそこそこ。北九州気に入りました。

いよいよ出航

18:30になり、新門司港へいくバスが小倉駅から出ますので、バスにのって新門司港へGoです!。40分のバス。19:50に船が出ますので、このバスが、航路の一部分と言えます。バスの道すがら門司港も通りまして、門司港もレトロで良い雰囲気ですね。

今回乗る船はフェリーで名門大洋フェリーという会社が1日2往復運行しています。「名門」ってなかなか自己主張が強い名前だなと思ったら、昔は名古屋と門司港を結ぶ定期航路を運営していた会社で、そこから「名門」とついたようです。なんかすみません。
ちなみに。新門司港からは「阪九フェリー」という会社の船も出ているようですが、こちらは大阪が泉大津に着くので、大阪市からはちょっと遠くなります。

今回利用する便は、新門司港19:50発 大阪南港フェリーターミナル08:30着という 移動と宿泊が一石二鳥で終えることができるベストな便です。いわゆる雑魚寝から個室まであります。今回はカプセルホテル的なクラスがあるので、そちらを利用しました。

食事は付いていませんが、片道6200円で移動と宿泊が一気に行えるのはとても便利です。

船内

19:50定刻通り出航!

(標準時刻ではない実際の)時差では愛知県と20分くらいの差があり、19:50はちょうど日暮れの時間です。左手には北九州市の山々、右手には北九州空港を見ての出航です。清々しいですね。


昨年いったクルーズ船の旅よりは小さいですね。当たり前ですけど(しまった!続編の記事書いてない!!) 一つ良いのは浴場があって、大人の男が7人位入っても大丈夫くらいの湯船のある浴場です。小さい船なのでエンジン音はどうかなーと思いましたが、全然気にならないですね。揺れもあまり気になりません。晴天ということもあるでしょうけれども。



食事は夜1500円朝700円のバイキング方式。バイキング方式なのであまり期待していませんでしたが、思ったよりは美味しいものがそろっており、定期航路だからなのか企画も考えられていて、今回はビンチョウマグロと甘海老が食べ放題でした。悪くないですね。


生ビールは、1杯500円で売っています。売店でもお酒などは売っています。

この船には、ラウンジ的なものはなく、小さいテレビを見るスペースと展望スペースがあるくらいです。クルーズ船とちがって、車を運ぶため駐車スペースが多いからでしょう。

船内にはwifiがあります。1日30分3回まで使うことができます。0時で次の日の扱いとなるため、この船では合計3時間までつかうことができます。この航路は瀬戸内海を通りますので、人口がある地域を通っていることになりますから、比較的安定して電波をつかみます。しかし、客室は船という性質上 壁がかなり堅牢に作られており、客室には船内wifiが届きにくいです。 僕が普段持ち歩いているauのデータ専用SIMとほぼ同じ強さを示していたので、船内wifiの大元は、au系の回線であろうかとおもいます。

大阪南港はユニバに近いこともあり、九州方面からユニバに遊びに行く家族連れ、夏休みの時期ということもあり、大学や高校の部活の合宿の行き帰りの団体、トラック運ちゃんが多いようでした。ビジネスマンはすこしだけいましたが、航空や新幹線に比べると比率は少ないです。

クルーズ船とちがい、夜に遊ぶ要素はありませんし、8:30には下船をすることを考えると6:30には起きてないといけませんから、寝るのを早くする人が多いです。カプセルの部屋にテレビもありませんしね。



朝になると、少ないビジネスマンたちが今日の仕事の準備をしています。7:00ごろには、明石海峡大橋をくぐり、阪神工業地帯を眺めながら、大阪へのアプローチとなります。

7:50くらいにはパイロットが近づいてきて大阪南港への最終アプローチ。時間通り8:30に南港へ下船開始となります。

なお、船では「パイロット」は操縦士ではなく水先人のことです。航空では「アビエイター」が元々の操縦士ですが、現在は「パイロット」で通じます。ただし、空海両方の事業に関わる人との間ではpilotとaviatorは使いわけることが多い。ビジネス用語としては両方知っておいたほうがいいですね。

大阪南港フェリーターミナル

大阪南港フェリーターミナルは、大阪市内ではあるものの少々不便なところにあります。公共交通機関では、大阪市高速電気軌道南港ポートタウン線(ニュートラム)駅がありますが、梅田周辺までは、乗り換えが2回発生し、およそ50分程度かかります。ユニバーサル・スタジオジャパンまではバスが出ており30分程度かかります。

今回良かったのが、南港フェリーターミナルと出張先のクライアントの本社が歩いて10分程度のところにあるためアクセスが良かったためつかいましたが、たとえば梅田周辺で10:00からのアポとなると、ちょっと時間的には危険な感じもします。アポ時間と行かなくてはならない場所によっては、出張で使うのはリスクが伴います。そういったいみでも、今回はレポートを書いておこうと思ったわけです。

現場からは以上です!

「超読」の世界を見てきた。

どうもこんにちは 伊藤です きよっちです。

おひさしぶりです。いい加減書けよ。とクライアント各位には叱られそうですが。。。

さて、昨日2019-07-12に「超高速読書法(略称:超読)」という、一般的には「速読」と言われるものの体験会があったので、いってきました。参加費は5000円と決して安くはないのですが、これはなかなかカルチャーショックだったので書きます。

http://cho-doku.com/
↑こちらが公式?(トップページタイトルが「top」だよ!書き換えよ!!)
http://cho-doku.com/seminars/
↑こちらが体験会の案内ページ。

僕の速読の前提知識

速読というのは、何十年も前からビジネスや勉強のスキルとして、存在しているのは当然知っていましたが、何なのかは全く知りませんでした。
この体験会に参加するにあたり、いくつかのYouTubeやサイトの情報をチェックしてはおきました。

  • 一瞬で文字を判断できるように、本を読む上で、その本から得たい答えの問いを持っておく
  • 飛ばし読み斜め読みをする

が「一般的には多そう」でした。
なるほど。これならば「都合のいい情報だけをピックアップする」という人間の脳構造の特性である「確証バイアス」に近い考えなのでできなくはない?感じはしました。

が、結論から言うと、超読は

これらとは一線を画す「ちゃんとした読書」でした!!

超読は技術理論

体験会では、その名前の通り、超読の玄関口となる技術を体験体感する会となっていました(ネタバレになるので書きません)。前述の「一般的な速読」はどちらかというと「要約するための考え方」というほうが正しくて「読む」ということとは別の概念なのかな?とおもいます。 それに対して超読は、早く読むための身体コントロール技術でした。つまりは、まさに「読む」という行動そのままです。

体験会の案内ページに「感情移入しながら小説を読める」とありますが、まさにこれだなと。要約の方法では、行間を読む事はできませんから。僕は仕事柄、平均すると月間で10冊超えるくらいの技術本とビジネス本を読みますが、これらも行間が読めないと、ほとんど役にたたないと思っていますので(そもそも日本語の構造がそうなってる)、何も小説に限った話ではない、本を読むためのベース技術だろうなとおもいました。

しかし身体コントロール技術なので習得の難易度はそこそこ高そうでもありました。(毎週受講で3ヶ月必要。その後の追加補講はいくらでも通っていいらしい)

怪しくないのか?

ぶっちゃけると、怪しいです(笑) いや、体験会で体験すること、聞くことはまったく怪しくなく、むしろ、納得できるものがとても多いのです。 しかし、超読を習得・修得している、みなさんが「変わっている」のです。これはポジティブな意味で、普段の生活で速読の技術は「必要条件」かといわれると、そんなことはなく、単純なニーズと言う意味では速読は不要と言えます。それをわざわざできるようになって、自分のライフスタイルに厚みをつけようと考えている人たちなわけですから、変わっているとしか言いようがありません。でも、明確なのはふんわりとした精神論や自己啓発より、はるかに意味があることをやっている(し、そういったことは、身体技術としての超読を身に着けて、本を読む中で見い出せばいいのでは?)のは、すごくわかりました。なので、やるかやらないかは別として体験会にだけでもいってみる価値はあると言えます。

ぼくだけの感想

今回の体験会では、僕の友人が実演をしてくれました。彼女の目の動きや身体の使い方を目の当たりにしたのですが、その感想は、「梅原大吾と同じ目をしている」でした。

梅原大吾は、日本のeスポーツの第一人者で、対戦格闘ゲームで世界に知られるプレーヤーです。対戦格闘ゲームは、決まった座標範囲内で、周辺視野を広くとり、1/60秒で情報取得し判断するというゲーム性で成り立っています。心拍数コントロールや筋肉の使い方制御など、ビデオゲームといえど、ほとんどやることはスポーツと変わりないです。

これを3ヶ月で身につけられるとなると、超読は何か分野において世界に行ける可能性のある技術だなと思いました。

ところであんた習うの?

かなりやりたいとおもっています。

が、決して安くはない本セミナー受講料(高いといっても安いんですが)、そして東京でしかいまのところやってない。
というのがあるので、準備をしなければ。。。。まずは東京でコンサルティングの仕事を1つばかり増やしたいなと。

で、作る仕事はとりあえず2020年4月くらいまではストップします宣言!します。

P.S

開発者の先生がマイルオタクだったので、ぼくはそこにも惹かれています。

現場からは以上です。

楽天の注文フォームに無茶させるver.2.1 スマホ対応

どうもどうもおひさしぶりです。伊藤です。
全然ブログ書かねぇじゃねぇかとクライアント各位に叱られそうですが、全くそのとおりでございます。

昨年、楽天の注文フォームにむちゃさせるver2という記事を書きました。が、この記事少しだけ不具合がありました。ので、それを修正するお話。

スマホ対応

不具合の具体的な内容は、スマートフォン対応です。スマホの場合は少しだけパラメータが追加になります。

あ、その前にPCの場合の対応は、以前の記事を見てくださいね。

ちょっとだけ難しい話をきかきますが、スマホ時は、以前の方法だと、カゴにはいったと処理完了のステータスが楽天側からリターンがあるにもかかわらず、カゴにいくと中身がなくなってしまうという不具合があります。どうも楽天のスマホのカートシステムは、URIから制御を取得しているらしく、あらかじめ専用セッションにカートの追加命令が保存されていないと、URIの処理が優先されて、カートが空になるという仕様になっているようです。

AJAX送信時にパラメータ追加

結論から言えば、

$.ajax({
  url: 'http://direct.step.rakuten.co.jp/rms/mall/cartAdd/',
  type: 'get',
  dataType: 'jsonp',
  data: {
      'shopid': ショップID(整数値),
      'units': 個数(整数値),
      'itemid': 商品番号(整数値),
      'device': 'sp',//デバイスモードをスマホに
      'userid': 'itempage',//これがないとカゴにはいらないときがある???
      'dbasket_choice_select[]': 'オプション文字列',
      'dbasket_choice_select[]': 'オプション文字列2'
  }
})
.then(function(data){
  if( data.resultCode == '0'){
    alert('OK');
  }
  else{
    alert( 'error!: ' + data.resultMessage );
  }
});

というパラメータになります。つまり device=sp と userid=itempage が追加になっているということです。
レスポンシブでページを作っている場合は、これをPCスマホ時で切り替える必要があります。

なんでもいいけど、カート追加がGETで行われる楽天さん。まじでイケてないんでHTTP勉強しなおしてください!!

SPとPC切り替え

User-Agentなどで判定すればOKです。といってもわからない方もいらっしゃるとおもうので、ページは重たくなりますが、判定ライブラリを使った場合の例示も書いておきます。

HTMLに自作JSファイルをの前に

<script src="https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.4.3/mobile-detect.js"></script>

を呼び出します。ライブラリの詳細はこちらをごらんください。

JSファイルは以下のようにします。


///パラメータ
var params = {
      'shopid': ショップID(整数値),
      'units': 個数(整数値),
      'itemid': 商品番号(整数値),
      'dbasket_choice_select[]': 'オプション文字列',
      'dbasket_choice_select[]': 'オプション文字列2'
  };

///モバイル判定
var md = new MobileDetect(window.navigator.userAgent);
if( md.mobile() != null ){
  params['params'] = 'sp';
  params['userid'] = 'itempage';
}

///ajax実行
$.ajax({
  url: 'http://direct.step.rakuten.co.jp/rms/mall/cartAdd/',
  type: 'get',
  dataType: 'jsonp',
  data: params
})
.then(function(data){
  if( data.resultCode == '0'){
    alert('OK');
  }
  else{
    alert( 'error!: ' + data.resultMessage );
  }
});

以前の記事で書いていないことがありました。カゴへ移動

処理完了時にカートへ移動したいということがあると思いますので、そちらをいれたバージョンも書いておきます。


///パラメータ
var params = {
      'shopid': ショップID(整数値),
      'units': 個数(整数値),
      'itemid': 商品番号(整数値),
      'dbasket_choice_select[]': 'オプション文字列',
      'dbasket_choice_select[]': 'オプション文字列2'
  };

///モバイル判定
var md = new MobileDetect(window.navigator.userAgent);
if( md.mobile() != null ){
  params['params'] = 'sp';
  params['userid'] = 'itempage';
}

///ajax実行
$.ajax({
  url: 'http://direct.step.rakuten.co.jp/rms/mall/cartAdd/',
  type: 'get',
  dataType: 'jsonp',
  data: params
})
.then(function(data){
  if( data.resultCode == '0'){
     location.href = 'https://ts.basket.step.rakuten.co.jp/rms/mall/bs/cartall/?shop_bid=ここにショップID';
  }
  else{
    alert( 'error!: ' + data.resultMessage );
  }
});

location.hrefを使ってショップIDを指定したカートURLにページ移動させることでカートへ遷移します。

動作参考をば

そういえばこれまえ参考動作を作っていませんでしたね。動作させてみましょう。



辛いものをカゴにいれる

↑ここをクリックするととっても辛い商品がカゴにはいるよ!!!

で何をしているかというと

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.4.3/mobile-detect.js"></script>
<script>
$(document).ready(function(){
    var md = new MobileDetect(window.navigator.userAgent);
    
    $('.btn-send-rakuten').on(
        'click',
        function(eve){
            setProduct(0);
        }
    );
    
    var productList = [
        { 'shop_bid': '205607', 'item_id': '10002002', 'option': 'とってもからいよ!' },
        { 'shop_bid': '205607', 'item_id': '10002166', 'option': 'こっちもすごいよ' },
    ];
    
    function setProduct( current ){
        var targetProduct = productList[ current ];
        var params = {
            'shopid': targetProduct['shop_bid'],
            'units': 1,
            'itemid': targetProduct['item_id'],
            'dbasket_choice_select[]': targetProduct['option']
        };
        if( md.mobile() != null ){
          params['params'] = 'sp';
          params['userid'] = 'itempage';
        }

        $.ajax({
          url: 'http://direct.step.rakuten.co.jp/rms/mall/cartAdd/',
          type: 'get',
          dataType: 'jsonp',
          data: params
        })
        .then(function(data){
             current ++;
             if( current >= productList.length ){
               location.href = 'https://ts.basket.step.rakuten.co.jp/rms/mall/bs/cartall/?shop_bid='+productList[0]['shop_bid'];
             }
             else {
                setProduct( current );
             }
        });
    }

});
</script>
</pre>
<a href="javascript:void(0);" class="button is-danger is-fullwidth btn-send-rakuten">辛いものをカゴにいれる</a>

こんなコードです。

  1. カートに入れたい商品を配列で準備
  2. カートに入れたい商品をループ(ここで関数自体を回帰呼び出し)してAjaxコール
  3. 全商品はいったらカートにジャンプ

です。JSの書き方としては、あえて古い書き方でわかりやすくしているので、JSプログラマ諸氏はご勘弁を。

1フォームで楽天で複数商品をカートに入れる方法は他にもありますが、動的にPC/SP共通でカートに入れられるというのは、サイトの表現上役に立つことが多いかと思います。

現場からは以上です。

超簡単なテンプレートエンジン(条件分岐なし)ならCodeigniterからパクれ

どうもどうも。今年はそこそこブログを書いています。体調が戻ってきました。よかったよかった。決して万全ではないのですが、1年近く体調がわるかったので、まぁそのいろいろアレです。

ところで、PHPerのみなさん。
たとえば、管理画面でメールテンプレートを管理するような場合、
そのテンプレートをどう処理するか、結構悩みますよね。

同じようなかんじで、WordPressなんかで、囲みタグ型のショートコードでループをさせたいときとかもかなり悩みます。

よくある例だと、

  1. 管理画面からテンプレート編集
  2. POSTされたデータをDBに保存しつつ、テンプレートエンジン用に、ファイルにも保存
  3. 出力時に保存されたファイルをテンプレートエンジンで処理して出力

というような手順でしょうか。
まぁ悪くはないですが、セキュリティに気をつけなければいけないとか、結構手間取りますし、ファイル出力だと手軽さがなくなります。

今回はWordPressのショートコードでどうしようかなーと思ったときの対処をメモ代わりに。

やりたいこと

前提条件です。

  • WordPressの囲みタグ型ショートコードをテンプレートとして扱いたい
  • テンプレートエンジンとして動かしたいが、PHPを書くのや、Smartyのようにファイル処理を前提としない
  • 条件分岐はとりあえずいらないがループはある

という前提条件で、具体的には

[get_product_categories category="カテゴリ名"]
<ul>
    {categories}
    <li>
        <a href="{category_url}">
           {category_name}
        </a>
    </li>
{/categories} 
</ul>
[/get_product_categories]

こんなショートコードを書いてもらってテンプレート処理をしたいわけです。
囲みタグ型のショートコードについてはみなさまが書いているので、そちらをご参考に

まぁ普通にやれば

このような条件を満たそうと思うと、難しいコードでもないので、自分で簡単なテンプレートエンジンを書いてもいいとは思うのですが、いまいち気乗りがしません。自分で書くとすれば、正規表現を書いて、ゴニョゴニョとするところではありますよね。

そこで!Codeigniterの簡易パーサークラスをぱくってきます

Codeigniterには条件分岐はないですがループに対応して、ファイル処理なしで実行できる簡易テンプレートンジンがついています。これが使えないかと思ってソースを見たところ、Codeigniter本体にはほとんど依存していないことがわかり、少しの書き換えで対応ができることがわかりました。

四の五の言わずにコードを晒せ

はい。

<?php
class CI_Parser {

    /**
     * Left delimiter character for pseudo vars
     *
     * @var string
     */
    public $l_delim = '{';

    /**
     * Right delimiter character for pseudo vars
     *
     * @var string
     */
    public $r_delim = '}';


    // --------------------------------------------------------------------

    /**
     * Class constructor
     *
     * @return void
     */
    public function __construct(){
    }

    // --------------------------------------------------------------------

    /**
     * Parse a template
     *
     * @param  string
     * @param  array
     * @param  bool
     * @return string
     */
    public function parse( $template, $data, $return = FALSE ){

        return $this->_parse($template, $data, $return);
    }

    // --------------------------------------------------------------------

    /**
     * Parse a template
     *
     * Parses pseudo-variables contained in the specified template,
     * replacing them with the data in the second param
     *
     * @param  string
     * @param  array
     * @param  bool
     * @return string
     */
    protected function _parse( $template, $data )
    {
        if ($template === '')
        {
            return FALSE;
        }

        $replace = array();
        foreach ($data as $key => $val)
        {
            $replace = array_merge(
                $replace,
                is_array($val)
                    ? $this->_parse_pair($key, $val, $template)
                    : $this->_parse_single($key, (string) $val, $template)
            );
        }

        unset($data);
        $template = strtr($template, $replace);

        return $template;
    }

    // --------------------------------------------------------------------

    /**
     * Set the left/right variable delimiters
     *
     * @param  string
     * @param  string
     * @return void
     */
    public function set_delimiters($l = '{', $r = '}')
    {
        $this->l_delim = $l;
        $this->r_delim = $r;
    }

    // --------------------------------------------------------------------

    /**
     * Parse a single key/value
     *
     * @param  string
     * @param  string
     * @param  string
     * @return string
     */
    protected function _parse_single($key, $val, $string)
    {
        return array($this->l_delim.$key.$this->r_delim => (string) $val);
    }

    // --------------------------------------------------------------------

    /**
     * Parse a tag pair
     *
     * Parses tag pairs: {some_tag} string... {/some_tag}
     *
     * @param  string
     * @param  array
     * @param  string
     * @return string
     */
    protected function _parse_pair($variable, $data, $string)
    {
        $replace = array();
        preg_match_all(
            '#'.preg_quote($this->l_delim.$variable.$this->r_delim).'(.+?)'.preg_quote($this->l_delim.'/'.$variable.$this->r_delim).'#s',
            $string,
            $matches,
            PREG_SET_ORDER
        );

        foreach ($matches as $match)
        {
            $str = '';
            foreach ($data as $row)
            {
                $temp = array();
                foreach ($row as $key => $val)
                {
                    if (is_array($val))
                    {
                        $pair = $this->_parse_pair($key, $val, $match[1]);
                        if ( ! empty($pair))
                        {
                            $temp = array_merge($temp, $pair);
                        }

                        continue;
                    }

                    $temp[$this->l_delim.$key.$this->r_delim] = $val;
                }

                $str .= strtr($match[1], $temp);
            }

            $replace[$match[0]] = $str;
        }

        return $replace;
    }

}

Codeigniterのコントローラーオブジェクトに依存しているところなどを削って純粋にclassとして動くようになっています。

じゃWPで動かしてみよう

functions.phpあたりで、上記ファイルをrequireして

add_shortcode( 'get_product_categories', 'get_product_categories');

functionget_product_categories( $atts, $content = null ){

    //このへんで適当に引数処理してね    
        
    $parser = new CI_Parser();
    $args = array( ここに適当に条件かいてね );
    $the_query = new WP_Query($args);
    if (!$the_query->have_posts()) {
        return '';
    }
    
    $data = array();
    $data['categories'] = array();//ショートコードのループタグと名前を合わせる
    while ( $the_query->have_posts() ) {
      $the_query->the_post();
      $set = array(
        'category_name' => get_the_title(),
        'category_url' => get_the_permalink(),
      );
      $data['categories'][] = $set;
    }
    wp_reset_postdata();
    
    
    $content = $parser->parse( $content, $data );//最後にパースする。
    return $content;
}

とでもしておけば、簡単ね。

多分改造でifくらいはいける

上記の通りCodeigniterのパーサーはシンプルにできてます。
たぶん改造すればifくらいは余裕でかけると思います。
が、他方、毎回実行時にパーサーが走るわけなので、決して軽くはありません。
使い所見極めていきましょう。

なお、Codeigniter3.xはMITライセンスなのでOKですが、2.xまでのコードを使う場合は独自ライセンスなので、扱いに気をつけてください。

現場からは以上です。

楽天PayオーダーAPIをPHPからコールしてみた

どうもこんにちは伊藤です。きよっちです。半年ぶりの更新となりました。真面目に書けよ!と思われるかもしれませんが、まったくそのとおりですね。ちょっといろいろ思うところがございまして、沈んでましたが、それはまたおいおい。

はい。ところで。楽天さんの動きが激しいですね。楽天Payへの移行などなど。やらなくてはいけないことがたくさん。ちょうど今年2018年はヤマト運輸さんの配送料金大改革などなどもありましたし、Instagram上で通販が可能になったりしましたし、環境は大きく揺れ動いています。日本のECがはじまって以来、最も大きな変革期に来ているのかもしれません。ECを主戦場にしている業者さんは、自社の立ち位置、目指す場所、戦い方(戦わないという選択肢も含めて)などを明確にできる機会かもしれません。

ちょっと話がズレてしまいましたが、さて、楽天は改革を迎えているわけで、個人情報の扱い厳格化、決済方法の統一化などがあり、なるべく多くの受注操作をRMS上で行わなければならないようになってきています。

そんなこともあり、最近では、自社開発DBとの連携のために、RMS Web Service APIを利用しなければならないということもかなり増えてきました。今日はそのお話です。

RMSのAPI

まず、もってですね、楽天のRMSのAPIというのは、みなさんご存知でしょうか。2012年ごろからスタートしているRMS用のAPIです。それより以前は、公開情報(つまり商品情報ですね)を取得して、楽天外のwebサイトで活用できるようになっていたわけですが、RMS APIができてからは、RMSを楽天のシステム外で利用できるようになっています。(もちろん自社運営の楽天サイトの情報しかとることはできません) 経緯はこのあたりにくわしいです。

このRMSのAPIというやつがですね、わたしたちwebをメインにしているエンジニア・プログラマには、あまり馴染みのない「SOAP」という規格のAPIを採用しています。こいつがなかなか厄介で、webで多く使われているPHPでは、コードが冗長になりがちなのです。

そのコードについてはこちらのサイトにてサンプルが書かれていますので、参考になります。わたしも最初は参考にしました。

楽天PayOrderのAPI

上記のように、まぁぶっちゃけて言うと大変に分かりづらいSOAPを仕様したRMS APIなんですが、一回実装してしまえば、そうそう変更するものでもないので良しとしていました。

ここからが本題です。

ところがですね、楽天Pay移行により注文情報取得APIを変えなければならなくなりました。2018年以降、楽天各店は決済方法統一のため楽天Payに強制移行となりますので、既存APIを利用していた事業者さんは、いずれ、のりかえが必要ということです。 楽天Payへの移行については、こちらの記事がよくまとめられています

しかし、文句ばかりも言っていられませんので、楽天へ出店しているクライアントさんのために、API改造に着手しました。いつもそうなんですが、楽天さんのエンジニア向けドキュメントは、ぜんぜんまとまってなくて、どこにいけばわかるのかがわからない。たどり着いたとしても、実は全体像はそこだけではわからない…など前途多難なのです。

とりあえずドキュメントにたどり着いたので、従前のOrderAPIを書き換えてみる。

…あれ…なんか変だ…動かない…というよりは、楽天から返ってくる書式が変だ…
…ん???
…あれ??????
(ここまで1時間)

ようやく気付いたのですが、楽天PayOrderAPIだけが、基底となっている技術そのものを変えてきやがったのです!!!もう「やがった」といいますが許してください!

よく読めと言われれば、それまでですが、楽天PayOrderAPIだけは「JSONベースのSOAP」なのです。APIさわったことのあるエンジニアならわかるとおもいますが「お前何いってんだよ!」ってなりました。「SOAP」はもともとXML通信インターフェイスだろうよ!!!リクエストもレスポンスもJSONでやるのに、技術そのものはSOAPなのです。この矛盾に気づくのに時間がかかりました。(ここから想像するに、おそらく楽天PayのAPIの基底フレームワークはIBMのCICSだと思われます。もう少し標準的な仕様にしてくれませんかね???)

とっととコードを出せ

はい。。。ごめんなさい。。。取り乱しました。

class RMS {
    
    public static $serviceSecret;
    public static $licenseKey;
    
    // ----------------------------------------------------
    /**
     * オーダー取得
     */
    public static function searchOrder(){
        
        ////認証キーを作成
        // oAuthのが1289倍楽なんですけど!!!
        $authkey = "ESA " . base64_encode( self::$serviceSecret . ':' . self::$licenseKey );
        
        ////検索日付
        // そんなもん必須にせずに良きに計らえや!!!!
        // しかもいちいちGMTに変換しなきゃあかんのかい!!!それも良きに計らえよ!!!!
        // 第二引数で日本時間指定できるようにしておいた
        $beginDate = gmdate( 'Y-m-d\TH:i:s+0900', strtotime('2018-07-05 00:00:00'));
        $endDate = gmdate( 'Y-m-d\TH:i:s+0900', strtotime('2018-07-29 00:00:00'));
        
        //// なぜか楽天ペイAPIだけ しかも形の上ではSOAPなのに JSONでリクエスト…
        // 統一してくれんかな!!!ライブラリ書くのめんどくさいんだけど!!!!
        $requestJson = json_encode([
            'dateType' => 1,//期間検索種別
            'startDatetime' => $beginDate,//検索対象期間先頭日時(普通startじゃなくてbeginじゃねぇか??)
            'endDatetime' => $endDate,//検索対象エンド点
            'orderProgressList'=> [ 100, 200, 300, 400 ],//取得したいオーダーステータス
        ]);
        
        
        //// リクエストヘッダ作成
        // うーん なんかこの認証いまいちだなー・・・
        $header = [
            'Authorization: '.$authkey,
            'Content-Type: application/json; charset=utf-8',
        ];
        
        
        //// SOAPリクエスト
        // この辺はREST APIでのPOSTと一緒。ただし、レスポンスコードで結果コードをとるので
        // レスポンスヘッダについては厳重目にとっておくべき。
        $url = 'https://api.rms.rakuten.co.jp/es/2.0/order/searchOrder/';
        $curl = curl_init($url);
        curl_setopt( $curl, CURLOPT_POST, true );
        curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
        curl_setopt( $curl, CURLOPT_HTTPHEADER, $header );
        curl_setopt( $curl, CURLOPT_POSTFIELDS, $requestJson );
        curl_setopt( $curl, CURLOPT_HEADER, true);//これを指定するとレスポンスにヘッダがついてくる
        
        // curlセッションを実行 ヘッダが付いているので分解
        $response = curl_exec( $curl );
        
        // ステータスコード取得
        $statusCode = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
        
        // ヘッダサイズを取得して、その分を切り取ってしまう方策
        // もう少しいい方法があるかもしれない??
        $headerSize = curl_getinfo( $curl, CURLINFO_HEADER_SIZE );
        $requestHeader = substr( $response, 0, $headerSize);
        $requestBody = substr( $response, $headerSize );//ここに結果JSONがかえる
        
        
        //// jsonをオブジェクトにー
        $return = json_decode( $requestBody );
        
        curl_close( $curl );
               return $return;
        
    }
    
    // ----------------------------------------------------
    
}

ざっくりとclassにしました。モダンなコードではないですし、何かが漏れていますが気にしないでください。
引数でパラメータを指定できるようにするなどの改造は必要だとおもいますし、いくつかのエンドポイントを実装するにあたってはPOST部分を独立メソッドにすべきでしょう。そこは、皆さんのセンス。

このクラスをロードしておいて

<?php
RMS::$licenseKey = 'ライセンスキー';
RMS::$serviceSecret = 'シークレットキー';
$res = RMS::searchOrder();

とかでだいたい勝てます。

以上、現場からでした。
「室井さん。どうして現場に血が流れるんだ!」(←古い)

クルーズ旅行に出てみた!出発まで編


2018年一発目のネタづくりとして、というのはアレですけども、生まれて初めて船での長旅に出てみようと思いました。7泊8日の船の旅、名古屋を出て、那覇、台湾の基隆、宮古島を経て東京へいく旅です。

いまはその旅の最後の夜。船の中でこの記事を書いています。

その感想を書いてみましょう。

なんで乗ろうと思ったのか

クルーズの旅に出ようと思ったのは、テレビ朝日で放送されている『陸海空 地球征服するなんて』という番組で、大西洋を渡るクルーズ船にのって、さまざまな人に会ってみようという企画を見たのがきっかけです。

船旅というのは、時間もかかり不便で、金持ちの道楽か何かだろう。ぶっちゃけるとそんなイメージを持っていました。が、しかし、テレビをみて、こんなにたくさんのひとに会えるのは楽しいかもしれない。そして、これだけ不便な生活を一回やってみよう。そんな風に思ったわけです。

なんとなーく調べてみると、クルーズ旅行は、いくつかのクラスがあり、外国船籍のカジュアルクラスの船ならば、2人1室での旅なら1泊10,000円程度、1人でも1泊18,000円程度で、食事つきの旅に出ることができるということを知りました。これは現実的だ。というわけで申し込んだわけです。

しかし不安は大きい

あるとき旅行代理店から電話がかかり「旅行代が安くなった」と連絡をうけました。そう言われても数千円だと思いますよね。ふつう。「45,000円のお値引きでございます」。えっ??どういうこと??何の割引???特に説明はありませんでしたが、先に振り込んでおいた旅行代金から45,000円が返ってきました。さすがにこの価格となると、安全は大丈夫なのかと不安が出てきます。

2018年に入り、いよいよ出発が近づくと、いろいろ不安も出てきました。さすが、ともいうべきなのか、海外のクルーズ専門会社、しかもカジュアルクラス。乗船券が届かない(笑)代理店に聞いても、発行してくれないんですよ(泣)みたいな反応で、おいおいと思いました。が、しかし、船に乗った後に、クルーズ旅行の慣れているひとによると、よくある話だそうです。ははは

しかし、乗船券が届いてみると、まさかの普通紙にレーザープリンタで印刷された乗船券が届くという、なんとも「カジュアル」な展開。それどころか、荷物を預けるためのタグですら普通紙。びっくりびっくりびっくり。

webのお仕事をしている身からすれば、船内でのインターネット接続については気になるところ。代理店に聞いたところ「あくまでも目安なんですが従量制で250MBあたり10USDです」との返答。ちょっと待ってくださいよ!!従量制なのはいいですけど、価格が目安ってどいうことですか!!?? なんでも、乗る船によって異なるとか…は。。。は。。。

言い知れぬ不安だけが大きくなって来ましたw そもそも、クルーズ旅行は「わざわざ行く」と決心しないかぎりは、現代の長い人生の中でも、一生行かないタイプの旅行です。ほかの旅行とは、準備がちがいますから、仕方ないですね。。。

しかし、こういった不安は、ほとんどが余計な不安に終わるわけですが、後日この不安は、実は別の悪いことへの予感だったのです。後日おはなししましょう。

さぁ出発だ。

2018年1月20日。いよいよ出発の日を迎える。あらかじめ届いた案内には、「名古屋港ガーデンふ頭に来てください。12時くらいから乗れます」とだけ。。。あいかわらず不案内ですな。というかんじで、水族館いくか、花火を見に行くかでもない限りいかない、名古屋港ガーデンふ頭へ。

近づいていくと、oh!見たことのない大きな船が!これに乗るのかとおもうと、ワクワクしてきました。そこまで考えていた不安は飛びました。というか「でっかい山があるから登ってやれ!話はそれからだ!」と言う感じかもしれませんが。

乗船に関して、審査というのは、あまり厳しくはなかったです。金属探知機を通りますが、航空機ほど厳密ではないです。その代わりなのかわかりませんが、パスポートのチェックは何重にもなっていました。港湾局、船会社、船に同上セキュリティの3回のチェックでした。

びっくりしたのが、パスポートは船のスタッフによって人質にとられます。航空機とは本当にいろいろちがうんですね。

船にのってみると



カジュアルクラスの船とはいえ、さすが洋上のホテルというつくりです。船は12フロア構造。わたしが泊まるのが、フロア6「ロンドンフロア」と名付けられたフロアです。部屋にはいるとシングルベッドが2つ。十分な広さの居住空間が保たれており、なかなかに快適そうです。

11フロアにはプールとジャグジーとバー、軽食エリアがあります。なんと開放的!!

ちなみに、わたしは最初迷いましたし、他の多くのお客さんも迷っていたのですが、食事は3食付で、出発日は夜だけという案内なのですが、実は、ブッフェは営業時間内であれば、いつでも好きなだけ食べられます。中途半端な時間に食事を取ることができずに船に乗った場合は、どうぞ最初ぶブッフェへいってみてください。

ゆったりするぞー!と言う感じがひしひしと湧いてきたところで、「ぶぉーーーーー」と汽笛が鳴り、出航となりました。

プライスレスな体験のはじまりを体感しました。マスターカード。
そんなわけで続きをどこかで書きましょうー。

出発まで編のまとめ

  • カジュアルクラス外国船籍のクルーズなら、1人でも1泊18,000円で食事付き。そして、謎の大幅割引がつく
  • わりとざっくりとした案内だが、そういうものだと思うべき
  • 価格の割にはしっかりした居住空間
  • 出発からして、プライスレスな体験
  • 船のセキュリティは航空機と違う。高飛びに使えるかも。

自分がいる業界以外でセミナー登壇した話

2017年

毎年セミナーやらなんやらの登壇は、2から3回をこなしています。例年なら、おおよそ、自信が生業としている、webだったりとか、通信販売の世界でのセミナー登壇となることが多いわけですが、2017年は、関わりがない業界からの、セミナー依頼がいくつもありました。
そのお話を。

ちなみにその業界というのが

  • メガネ業界の勉強会
  • 某市の商工会議所
  • 某旅行会社

などですね。

自分の業界の歴史をひもとくことからやらないといけない

自分の業界向けのセミナーであれば、ひとつひとつの事柄について
「そういうものだ」という共通認識があるし、
「そういうものだ」という共通認識によって教育をされてきているので、
その共通認識のもとに、話を組み立てていけばよいですが、
業界外のセミナーとなると、ほぼすべての事柄について、
なぜそうなのか?という、そもそもの「Why」から紐解いていく必要がある。
そして、聞く側も、それを求めている。

たとえば

  • 「web」ってなによ
  • インターネットとwebの違い
  • googleの役割
  •  ホームページって?ブログって?

みたいな話だ。
webを生業としている人にとっては、ほとんど空気みたいに認識している「感覚」だが、
これを明文化しなければならないことが多い。

それってどういうこと? それって何?という質問攻めにあい、冷や汗の連続となる。
最初はとても戸惑った。

「頭の中の索引」

自分が働く業界外のセミナーでは、こんなふうに「そもそもの質問」攻めにあうので、
こういった場所で登壇するには、自分の知識量が問われる。
これは「物知り」ということではなくて、

  • あーそういえば、あのセミナーでこういうこと言っていたな
  • そういえば、どっかで、この情報見たな

という「自分の頭の中の索引」が重要。

「引き出し」とも言えるが、
ぶっちゃけると、細かく調べることは後でもできちゃう。
必要でなければ覚えることもないでしょう。

他業界でのセミナー登壇というのは、
知識を固定化する上でもとても重要な経験だと断言できる。

この記事をご覧になっている みなさんは上記の質問に明確に回答できますか?
おそらく多くの方は、それとなく回答する結果になるのではと思う。

当たり前は当たり前じゃない

よく言われることですが、自分の常識は他人にとって非常識。
自分の業界では当たり前でも、他業界で当たり前でないことは大量にある。
これは「マーケットギャップ」「市場差」と捉えるとおもしろい。
他業界の方のお困りごとに対して、
「普通に考えたらこうだ」という回答をするだけで、
ゲスい言い方になるが、なかなかにヒーロー扱いをうける。

前述のメガネ業界のセミナーでは、
webを使った集客の基本の、さらに基本の部分の内容だった。
内容としては、
「しっかりターゲッティングして、顧客行動を見ましょうね」
という話をざっくりとした内容。

その中で質問されたことに対する回答として感謝されたことは
「補聴器とサングラスは商材としてかけ離れている。サイトを分けることも検討すべき」
と指摘したこと。

補聴器とサングラスは、webを作る業界にいれば、
入り口も目的も顧客行動も違うのはすぐにでもわかることだが、
彼らにとっては、この2つは
「眼鏡屋に来る客が買うもの」
としてまとめられてしまっていた。
「そういうものだ」という常識にとらわれていた。
だが、指摘をした上で
「想定する顧客の姿は違うものですよね?」
と説明したら
「すげぇ!!!」ってなったわけだ。

マーケットギャップを利用すればヒーローになることはできる。
どうせ、登壇するなら、そのほうが気持ちよくできる。

結果的にいくつか仕事も産んでいる。

そんなセミナーどっから話がくるの?

こんな話を先日友人にしていたら、そんな話どっからくるのさ?といわれた。
別にセミナー登壇の仕事は労力に見合っていない報酬になることも多く
正直やりたくない仕事のひとつだ。
したがって「ほしい」などとはひとこともいっていない。

ただ、ひとついえるのは、いずれも元々のクライアントさんからの紹介だ。
クライアントさんに対して、普段から新しい技術や知識や成果をあたえることが結果的に
他業界での登壇の誘いとなった。
多くのビジネスが、取引先に足しいて、これらの価値提供をすることに終始するといえる。
「商いとは他己中心だ」と、よく言われることだが、まさにそれで、
他己が結果的に自己になるっていうやつかもしれない。

というわけで言えるのは

自分の知識が強烈なインパクトを与える
自分が働く業界ではない別の業界で登壇するのは
いろいろおいしいよってはなし。

ボン・ヴォヤージュ!

Older posts