なんじゃくにっき2

ほげほげ。プログラミングの話題中心。ほか資格とか。

カンボジア/ベトナム旅行メモ

概要

2月最終週にカンボジア/ベトナムに出かけたときの記録です。 主にシェムリアップに泊まってアンコールワットとその周辺の遺跡観光をしていたのですが、 遺跡の話は別途話すとして、旅行で気をつけることなどを中心に今回の記事では記そうと思います。

旅程

成田 -> ハノイ -> シェムリアップ -> ホーチミン -> 成田

の旅程で行きました。 2020年3月現在、シェムリアップへの直行便はありません。 ベトナムハノイホーチミン、タイのバンコク、香港、プノンペンあたりを経由していくことになると思います。

タイ側、ベトナム側から陸路で行くことも可能です。 但し時間がかかるし、ベトナムから行くときは確かベトナムのビザが必要です(空路ならベトナムのビザ不要)。 なので今回はカンボジアでの滞在時間を増やすために空路で行きました。

ハノイ空港

乗り継ぎで2時間ちょっといただけです。 無料Wifiはユーザー登録必要なものがありましたが、ベトナム語が読めなかったので諦めました。 AIS(タイの通信業者)周遊SIMを持っていたのでそれを使えたので問題なし。 Amazonなどで買えると思います。

AISのSIMはモノによって使える国が違うので注意しましょう。 ベトナムで使えるものは少し高いです。 タイでしか使えないものが一番安い。

シェムリアップ

シェムリアップ空港

カンボジアは入国にvisaが必要です。 空港でその場で申請することも可能ですが、事前にインターネットでevisaを取得しておいたほうが 時間的にも金額的にも楽だと思います。

カンボジアのe-Visa王国

そんなに混んでなくて、入国審査はすぐ抜けられました。

現金を下ろす場合、ATMは到着側ではなくて、出発側にあります。 これは帰りに知りました。

私は宿泊先にトゥクトゥクで迎えに来てくれるようお願いしていたので名前を紙に書いて持っててくれた運転手さんが待っててくれました。

そうでない場合はバスはないのでトゥクトゥクかタクシーの運転手さんを捕まえることになると思います。 トゥクトゥクは到着ゲート出た脇のエアポートタクシーサービスカウンターなら9ドルですが、流しの運転手捕まえれば5ドルを提示されることが多いと思います。 深夜帯は5ドルか6ドルくらい高くなると思います。

現金を持ってなくて、運転手さんに 「I want to withdraw cash」 と言っても通じなくて、クレジットカードを見せると 「ATM?」 と聞いてきて通じました。

でも空港内のATMに連れて行かれるのではなく、市街地に向かう途中のATM前で一旦降ろされました。 なお、宿泊先の前にもATMあったのですが、途中で降ろされたのは謎。

カンボジアの通貨について

支払いはほぼUSドルです。 1ドル以下のお釣りが現地通貨のリエルで返って来ます。

USドルならあらかじめ日本で用立てることも可能ですし、 現地で外貨キャッシングでも良いと思います。 外貨キャッシングの際に5ドル手数料取られたので小さく何回も引き出すのは損だと思います。

ATMはシェムリアップの市街地内なら道沿いにちょくちょくあるし、 3, 4軒あるスーパーマーケットにも3つくらいATMが並んでいます。 但しATM間に仕切りなかったりするし、安全そうな場所を選びましょう。

気をつけないといけないのが、汚れたドル札は支払いに使えないということ。 お釣り受け取るときに汚れたり書き込みのあるお札は拒否したほうが良いと思います。 私はインクこぼした5ドル札をお釣りで返されて、以降使えなくなりました。 そうなったら日本に帰ってきてから交換してもらうか、アメリカ行ったときに使うかになると思います。

パスポートについて

基本は持ち歩かなくて大丈夫です。

必要になるかもしれないケースは、 - 自転車、バイクのレンタル時 - 遺跡チケット買うときに子供の年齢確認 くらいでしょうか。

私は自転車レンタルは宿泊先を通して支払ったので特にパスポート預ける必要はありませんでした。

遺跡のチケット

アンコールワットを始め、遺跡の入場にはチケットが必要です。 チケットは一箇所でしか売っていません。

www.google.co.jp

アンコール・エンタープライズ(アンコール遺跡群チケット販売所)

まずはここに向かうことになると思います。 朝5時から夕方17時半まで空いています。 夕方17時から17時半までは翌日分のチケットも買えます。

1日券 37ドル 3日券 62ドル 7日券 72ドル

クレジットカード使えるし、ATMもあります。

チェックポイント

遺跡エリアに向かう途中に遺跡のチケットをチェックする箇所があります。 自転車で最初通ったとき、係の制服のお兄さん(おじさん?)が執拗に 「明日トゥクトゥクどう?」って言ってきました。 毎日仕事ないのだろうか・・ それとも仕事休んででも観光客相手のドライバーの方が儲かるのだろうか。

市街地と遺跡エリアを回るだけなら高低差は殆どありません。 とても平坦です。 但したまに道に穴が空いてたり砂地を通らないといけないことはあるのでマウンテンバイクのほうが良いかもしれません。

気温

日中はやっぱり暑いですが、2月だと耐えられないほどではありません。 乾季で乾燥しているのもあって喉は乾きます。 スーパーで1.5l 0.5ドルの水を買って毎日持ち歩いていました。 遺跡エリアで飲み物を買おうとするとだいたい缶ジュースが1ドルです。

夜は半袖1枚だと寒いくらいです。 エアコン効いてない部屋でしたが特に必要はなかったです。

トゥクトゥクの相場

空港から市街地は5ドル 市街地からアンコールワット行って周辺を少し回ってくるルートが15-20ドル 市街地からアンコールワット行って周辺を多めに回ってくるルートが20-25ドル くらいみたいです。

早朝、深夜は+5ドル。 アンコールワットの夜明けを見たいばあいなどは多めにかかるとおもいましょう。

1日がかりだと40 - 65ドルくらいかと思います。

1日コースのクバールスピアン、バンテアイスレイ、ベンメリアという郊外の遺跡巡りは65ドルでした(宿泊先からトゥクトゥクで行けるコースで一番高かった)。 宿泊先とおしてその値段だったので直接交渉ならもうちょっと安くなるかもしれません。

ちなみにその3つの遺跡は遺跡チケットで入場できました。 最近までベンメリアは別途料金が必要だったみたいですが、追加で料金はいらなくなってました。 それより遠くの遺跡だとチケットが別の箇所もあると思います。

食事

観光地なので外国人が入りやすそうな店は食事はそんなに安いわけではありません。 日本で食事するのよりちょっと安いかなくらい。 現地の人用の店なら1ドルとか2ドルのメニューはそこそこあります。

治安

思ってたよりは全然治安良さそうでした。 市街地にいる分には安全そう。 そんなにひどいボッタクリに遭うこともなかったですし。

ただし一番賑わってる歓楽街(?)のPub Streetに行くときはスリなど気をつけましょう。 あと極端に人通りの少ない通りに行かないこと。

ホーチミン

タンソンニャット国際空港

ベトナムでは入国の際に入国カードが要りませんでした。 短期間の旅行目的ならビザも不要(※これは条件はもうちょっとあるはずです)。

出国の際の航空券の提示を求められます。 陸路で別の国に抜ける予定の人は注意。

空港からはバスかタクシーで市街地に向かうことになると思います。 バスはいくつかありますが、 黄色い車体の109系統がおすすめです。大体乗客が外国人だけで割高ですがそれでも 市内まで20000ドン(100円くらい)。 青い車体のバスなら5000ドンのもありますが、荷物が多いと別料金取られたりするらしいです。

また、2020年中にMRT(都市鉄道)が開通予定です。

交通

交通量が非常に多いです。 特にバイク。 自転車の人はほとんどいません。 車線守られてなかったり、信号が変わっても突っ切ろうとする人が多いので交差点での移動は常に注意が必要。

MRTが開通したら交通事情は改善するのだろうか・・?

通貨

ベトナムドンを通貨として使います。 たまに米ドルが使えるところもありますが、そう多くないし、使えてもレートが悪いことが多いです。

観光

あまり観光に力を入れている感じではありませんでした。 博物館の類だと、観光客が大勢いるのは戦争証跡博物館 くらいでした。 英語による解説もない場所も結構ありました。

通信

市街地にしかいなかったので郊外はわかりませんが、モバイル通信は当然通じます。 宿泊先のWifiは結構途切れがち。

ポケモンGo

やってる人は結構います。 レイドがあるとバイクでわーっとやってきて倒して去っていく。 開幕じゃなくてもレイドが成立する。

新型コロナウイルス(COVID-19)

日本からの入国なので入国拒否されるんじゃないかと少しびくびくしてましたが、 特に入国のときに熱があるかとかチェックはありませんでした。

ただし、ベトナムでいくつかの施設で入場時に額の温度をチェックされました(すべての施設ではない)。

Rubyでhot reloadしてみる

これはなんだ

Rubyでhot reloadするのを簡潔に書いてみるサンプルです。

hot reloadとは

Rubyをはじめ殆どのプログラミング言語では、通常はプログラムを実行すると(もしくは最初にソース/バイナリが読み込まれたとき以降)、実行中はソースコードの反映は行われません。

それを実行中にソースコードの反映を行うのがhot reloadです。 主に開発環境で使用され、起動に時間のかかるプログラムの開発等に恩恵があります。

実装してみる

ソースは

github.com

1. hot reloadがない状態

# a.rb
class A
  def self.say_hello
    puts 'Hello, World'
  end
end
# main.rb
loop do
  A.say_hello

  sleep 3
end

main.rbを実行すると3秒おきに標準出力に 'Hello, World'と出力される簡単なプログラムです。

2. 変更を反映させるようにする

# main.rb
loop do
  load File.expand_path(File.dirname(__FILE__) + '/a.rb')

  A.say_hello

  sleep 3
end

ループ毎にソースコードをloadするようにしてみました。 これでa.rbのソースコードを実行中に

# a.rb
class A
  def self.say_hello
    puts 'こんにちは、世界!'
  end
end

のように書き換えると途中から出力が変わります。 簡単ですね。

ちなみにloadの代わりにrequireを使うと期待通りには動きません。

https://docs.ruby-lang.org/ja/latest/method/Kernel/m/require.html

Ruby ライブラリ feature をロードします。拡張子補完を行い、同じファイルの複数回ロードはしません。

3. 問題点の解消

さて、前節の内容で上手く行ったように見えますが、実は問題があります。 一度定義したメソッドなどが消えないのです。

前節で行った内容の範囲内ではなぜうまく行くかと言うと、 Rubyオープンクラスで、既にClass, Moduleが定義されていても さらにそのClassにModuleを開いて定義しなおすことができます。 既にあるメソッドと同名のメソッドを書くと上書きが行われます。

メソッドの追加、更新の場合はそれでもうごくのですが、削除はその仕組みではうまくいきません。

なのでこうします

# main.rb
loop do
  if Module.const_defined?('A')
    Object.send(:remove_const, 'A')
  end

  load File.expand_path(File.dirname(__FILE__) + '/a.rb')

  A.say_hello

  sleep 3
end

remove_constを使うと既に定義されている定数、Module, Classを削除できます(厳密にはそうではない、ですがここでは詳しい話は省きます)

これでざっくりとhot reloadする簡単なコードができました。

ElixirでPry

Rubyを書くときに、大きめのプログラム、特にRailsアプリなんかのときには、デバッグにbinding.pryが欠かせないんですが、 Elixirにも同じようなのありました。

IEX.pry

あらかじめ

require IEx

を仕込んでおいて、 止めたい場所で

IEx.pry

でiexでファイル読み込み。

main.exs

require IEx

x = 1
IEx.pry

として main.exs

参考

Debugging - Elixir

とあるポケストップを巡る物語 〜 青面金剛像

ポケモンGoと民俗

ポケモンGoをプレイしていて、うろうろとしていると、いつもは行かない場所に行ってみたり、いつも通り過ぎているけど気にかけなかった場所から新たな気付きが得られることが得られることがあります。

寺、神社、地蔵、石像などなどはよくポケストップに設定されていて、解説文を読むのは面白いです。

今回の話はそんな話の一つです。

とある五反田の石像

五反田にとあるポケストップがあるんですが、名称は「西五反田の阿修羅像」となっています。

f:id:nanjakkun:20190622040835j:plain

Googleマップで見ると、青面金剛(しょうめんこんごう)石像とあります。

f:id:nanjakkun:20190622004508p:plain

さて、この像は阿修羅像なのか、青面金剛像なのか、どちらでも良いのか考察したいと思います。

像を見てみる

f:id:nanjakkun:20190613134614j:plain

像をよく見てみると、腕が六本あって日本は正面で印を結んでいて、残りの4本で戟、弓、矢、法輪を持っています。

傍らには元禄十?年 六月十二日と書かれています。 西暦で言うと1700年頃に作られたものだと分かります。

それより注目したいのが足元です。 これは三猿です。 日光東照宮で有名な見ざる、聞かざる、言わざる、ですね。

足元に三猿を置くのは青面金剛の典型的な様式(の一つ)なのでこの像は青面金剛でしょう。

青面金剛 - Wikipedia

隣の塔

さて、隣に目をやると、塔があります。 これは庚申塔ですね。

ja.wikipedia.org

庚申の本尊は青面金剛で、この像は庚申信仰のうちに作られたものと言うことで確度が高まりました。

時期

庚申信仰の流行りは特に江戸時代の関東地方で見られるので、像に刻まれた年月日も時期的にも合致します。

結論1

この像は青面金剛でほぼ間違いない。

残った疑問

さて、像の正体が青面金剛だと分かったところで、 青面金剛を阿修羅と呼んで良いかの疑問が残ります。

以下、そのことについて考察したいと思います。

青面金剛の由来

wikipediaによると、

インド由来の仏教尊像ではなく、中国の道教思想に由来し、日本の民間信仰である庚申信仰の中で独自に発展した尊像である

とありますが、完全に無から発展したのではなく、何かからの派生ないし参考に作られたものであると伺えます。 明らかに見る人が”仏像だ”と認識できるので、影響を受けているのは間違いないでしょう。

青面金剛の姿様式・持ち物

によると

五大明王の一つ「金剛夜叉明王」(3面)を「正面金剛夜叉明王」として(1面)に直したもの。

とあります。 金剛夜叉明王の派生ということですね。 とすると”夜叉”の一族と考えられることは出来るかもしれません。

日本の仏教における夜叉と阿修羅

日本の仏教において夜叉と阿修羅は八部衆に属していて、それぞれ別者です。 なので青面金剛を夜叉だと考えると、阿修羅とは違うと

八部衆は仏教以前から信仰されていた神々が仏教成立に従って仏教に取り込まれて仏法を守護する役目を与えられたもの(の一部)です。

八部衆 - Wikipedia

結論2

以上のことより冒頭で提起した件の像を「阿修羅像と呼べるかどうか」という疑問への回答は「呼べない」になります。

この像は「青面金剛像」です。

なぜ阿修羅像と思ったのか

ポケストップを申請(というかIngress?)した人がなぜこの像を阿修羅像と思ったのかというと、一般的な日本人は六臂の仏像をみたときに阿修羅像と思ってしまうからじゃないかな、というのが推測です。

六臂であっても阿修羅ではないし、仏教ないし南アジア〜東アジアの文化では腕が3本以上ある神々(or 仏)は沢山います。

阿修羅を巡る話

これまでの話で結論は出たのですが余談を。

インドにおけるアシュラはリグ・ヴェーダの時代(3000年以上前)から登場します。 (さらに言うと起源はインド・イラン共通時代まで遡れる)

ちなみに英語版ならリグ・ヴェーダは無料で読めます。

Rig Veda Index

日本語版なら岩波文庫で出ています。

https://www.amazon.co.jp/%E3%83%AA%E3%82%B0%E3%83%BB%E3%83%B4%E3%82%A7%E3%83%BC%E3%83%80%E8%AE%83%E6%AD%8C-%E5%B2%A9%E6%B3%A2%E6%96%87%E5%BA%AB-%E8%BE%BB-%E7%9B%B4%E5%9B%9B%E9%83%8E/dp/4003206010

リグ・ヴェーダにおいてはヴァルナ(仏教における水天)、シヴァの前身であるルドラ等がアシュラと呼ばれています。

が、時代が下るにつれて、ないしは文献によってアシュラと呼ばれる神々の範囲が変わって難しいです。 仏教でシヴァ由来の大黒天のことを阿修羅と呼ぶのを聞いたことなかったり。

ja.wikipedia.org

Project Euler 81 Path sum: two ways

Project Eulerrubyで解くの81番目。 順番に解くのに飽きてきたので適当にやっていきます。

Problem 81Problem 81 - Project Euler

Path sum: two ways

Find the minimal path sum, in matrix.txt (right click and "Save Link/Target As..."), a 31K text file containing a 80 by 80 matrix, from the top left to the bottom right by only moving right and down.

costが最小になる経路を求めよって問題で、単純に全組み合わせを計算するのは時間がかかりすぎる。 途中経路の値を記憶させておけばOK。 座標(x, y)までのコストは座標(x -1, y)までか座標(x, y -1)までかのコストの小さい方プラスx, y地点のコスト。

x, yを小さい方から積み上げて計算しても良いんですが、せっかくなので再帰で書いてみました。 github.com

とりあえず rubyProject Euler解く、🔟問目まで解いた。 解説書こうと思ったけど面倒なのでやめ。 まだ簡単なのでダイジョブっしょ。

github.com

久しぶりにProject Eulerでもやろうかと思って最初から。 Rubyでやります。

まずは1問目は余裕ですね。

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

github.com

HP Spectre x360 13-ae000 パフォーマンスモデルにUbuntu 18.04をインストールした時のメモ

OSインストール

元々インストールされているwindowsは残し、ubuntu 18.04とデュアルブートする。 まずはisoをダウンロード。

https://www.ubuntu.com/download/desktop/thank-you?country=JP&version=18.04.1&architecture=amd64

USBメモリを用意してFAT32でフォーマット。 UNetbootinでUSBメモリにisoを書き込む。

次にWindowsのドライブ一覧からパーティション確保。

あとは再起動したらUbuntuのLiveCDが起動するので適当に進める。 (LiveCDが起動しないなら起動ディスクのPriorityを変更)

fnキー

初期状態だと、fnキー + F1と押さないと、音量の上下などが反応してしまい、本来のF1などが効かない。 fn同時押ししないといけないのを無効化する。

なかなか設定が見つからないと思ったらBIOSの設定だった。

  • マシン起動時にF10キーを押してBIOSの設定画面を起動
  • System Conflgurationタブ
  • Action Keys ModeをDisabledに

F10でsaveして終了。

この項目は機種によって違うので注意。

解像度

4kディスプレイだと字が小さすぎるので200%表示に。 ただし200%だと崩れる画面があるのでそのときは100%に戻す。

日本語入力

デフォルトでMozcが入っている。 設定 -> 地域と言語 -> 入力ソースに日本語や英語があったら削除。日本語(Mozc)のみでOK.

シェルで

$ ibus-setup

でMozcの設定画面を起動。微妙に昔と設定が違う・・

このセットアップ画面で

設定 -> 入力メソッド -> 入力ソース -> Mozc -> Mocプロパティ -> キー設定の選択

で日本語入力のON・OFFなどを自分好みに変える。

キー割り当て

~/.xkb/keymap/mykbd

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+jp+inet(evdev)+custom(customize)"   };
    xkb_geometry  { include "pc(pc105)" };
};
``

日本語キーボードをベースにsymbols/customファイルのcustomeizeセクションを読むようにしてある



~/.xkb/symbols/custom

xkb_symbols "customize" { replace key {[Control_L]}; key {[Control_L]}; key {[Control_L]}; modifier_map Control {,,,}; key {[BackSpace]}; key {[Return]}; key {[Return]}; }; ``

CAPSとWinボタンをControlに、 pgupとpgdnをReturnに割り当てている。 (Spectre X360はEnterキーの右側にpgupとpgdnがあって押し間違えやすい)

$ xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY で反映

ubuntu 16.04にwineインストール

wine

Unix系OSwindows動かすWineをUbuntuに入れてゲームを遊んでみました。

WineHQ - Run Windows applications on Linux, BSD, Solaris and macOS

sudo apt-get install wine1.8

デフォルトだとwineをapt-getしようとすると1.6が入るのでバージョン指定して1.8入れます。 途中ライセンスに同意するか聞かれるくらいで特に問題なく完了。

これだけで一部のソフトはそのまま動作します。windowsのexeを実行するだけ。 初回起動時にwine自体の環境設定や追加パッケージのインストールを求められたりしますがOK押すだけでとりあえず済みます。

font

とりあえず起動するものがそこそこあるものの、フォントが全く見えなかったり、はみ出ていたりするソフトが多いです。

~/.wine/drive_c/windows/Fonts/

にフォントのttfファイルを入れるとそれが使われる。

IPAモナーフォントをとりあえず入れてみた。 IPAモナーフォント

フォントが反映されないようなら~/.wine/user.regを編集してみたいにするか

[Software\\Wine\\Fonts\\Replacements]
"MS Gothic"="IPA \x30e2\x30ca\x30fc \x30b4\x30b7\x30c3\x30af"
"MS Mincho"="IPA \x30e2\x30ca\x30fc \x660e\x671d"
"MS PGothic"="IPA \x30e2\x30ca\x30fc P\x30b4\x30b7\x30c3\x30af"
"MS PMincho"="IPA \x30e2\x30ca\x30fc P\x660e\x671d"
"MS UI Gothic"="IPA \x30e2\x30ca\x30fc UI\x30b4\x30b7\x30c3\x30af"

regeditのUI上で変更するとうまくいくかもしれない。

(他winetricksでフォントを設定する方法もあって試したが上手く表示されなかった)

directX

デフォルトの状態でdirectX使っているゲームは起動するものの何故か重いし表示が欠けている。

winetricks d3dx9

でスムーズに動くようになった。

ゲーム起動

Tactical Chronicleっていうフリーゲームを起動して遊んでいます。 Windowsなんていらんかったんや・・

黄色い工場

韮山 〜 淡島

修善寺から二駅の大仁に宿泊した翌日、先ずは韮山へ。 伊豆長岡駅からてくてく歩きます。

f:id:nanjakkun:20171104084852j:plain

そしてよく分からないが列車がラブライブ仕様だ。

伊豆の国市/国指定史跡韮山反射炉

反射炉って何かっていうのを道すがら調べる。 燃焼室と炉床が別室で、燃焼室の熱を反射させて伝えるから反射炉

反射炉 - Wikipedia

他にも溶鉱炉の歴史を移動中に予習していると面白い。勉強になった。

f:id:nanjakkun:20171104091320j:plain f:id:nanjakkun:20171104091410j:plain

着いた。 外見がなんか変なのは耐震補強用。 おじさんの像はお代官様らしい。

江川英龍 - Wikipedia

そっから土産物屋に寄ってから歩いて三津(みと)へ向かう。 よくわかってなかったので歩いたが、伊豆長岡から三津シーパラダイス行きのバスに乗るのが良いと思う。 途中のトンネルで軽トラにぶつけられた。痛い。

f:id:nanjakkun:20171104112127j:plain

淡島まですぐ。

f:id:nanjakkun:20171104112827j:plain

淡島。

富士山と並ぶ構図は乙なもの。 火山島と火山。 正確には火山島と呼べるのか知らないけど海底火山の火道が残ったものらしいので大体火山っしょ。 10年くらい前までは海上ロープウェイがあったらしいが今はなく、船で行き来している。

最後は沼津まで行って遅めの昼食を摂って終わり。

f:id:nanjakkun:20171104133312j:plain

深海魚定食。 沼津港市場には深海魚博物館があるのだが・・すごい並んでたので入るのは断念。また今度。

www.numazu-deepsea.com