ヤンゴン旅行記

仕事でミャンマーヤンゴンへ行きました。わずか2泊3日でしたが面白かったので仕事以外のことを記します。 まさか初めての海外出張先がミャンマーとは、何があるかわからないものです。

成田からヤンゴン国際空港へ片道約7時間。台湾が中間地点ってところでしょうか。ひまです。入国審査では一言も交わしませんでした。驚きしかありません。 空港には日本円からミャンマーの通貨であるチャットに両替できる店と、クレジットカードを入れてチャットを手に入れられるキャッシングのATMがありました。

ホテルとデパートの入り口では額にかざす非接触の機器で体温を測られました。 COVID-19 を警戒してなのでしょうか。 スタッフからは "96, fine." と言われて、何ちゅう体温やねんと思いきや、何秒かしてファーレンハイトであることに気づきました。 アメリカならまだしも、ミャンマーで使われているとは意外でした。

ヤンゴンの道路は車でいっぱいでクラクションが鳴りまくっていました。どのような時に鳴らしているのか最初は全くわかりませんでしたが、どうやら追い越しをするときには長く鳴らし、自分の存在を示したいときには短く何度か鳴らすようです。 そして、歩行者用の信号が全くありません。渡るには多少の勇気が必要です。6車線の真ん中を車線に沿って平然と歩いたり、渋滞中のドライバーに水や食べ物を売り歩く商人もいました。 初日はそんな光景に非常に驚きましたが2日目には慣れました。

ヤンゴンでの移動は Grab というタクシーアプリを使いました。 行きたい場所を指定すると、現在地に近いタクシーがやってきます。 支払いは事前に登録したクレジットカードで払う仕組みです。 料金は乗車前に決まり、渋滞して遅くなっても変わらないのがいいところです。 10回近く使ったところ、おおむね5分以内にやってくるのも素晴らしい。神アプリ。

ミャンマー公用語ビルマ語。英語で書くと Burmese です。1日目に昼食をとった店のメニューはビルマ語で書かれていました。全く読めませんが、漢字のメニューがあったことと Google 翻訳の画像認識機能に助けられました。

2日目の昼食。てきとーに入った店で海鮮炒め麺を注文。これが旨味があってうまい。日本人万人向けと思える味でした。辛くありませんし。 辛いといえば、この写真にはありませんが、付け合わせのサラダがこの旅行の中で一番辛いものでした。伏兵すぎる。

ミャンマーで初のクラフトビールブルワリー Burbrit Brewery に行きました。 東南アジアのビールというと、シンハー、タイガーのような軽いものを思い浮かべていたのですがそうではなく、 ヴァイツェン、レッドエール、ポーターといった欧州の味でした。 店員の好意で醸造設備を少し見ることができました。メニューにはないフレーバーを試しているそうです。

こちらは Burbrit Brewery 近くの風景。首輪をしていない犬が何匹かいます。人懐っこい振る舞いでしたが、触れ合うのはやめておきました。

わずか2泊3日での印象ですが、ミャンマーの料理はタイ、中国、インドが合わさったような印象でした。 米の麺、長粒種の米、インドのようなカレー、わりと脂っこい炒め物、バクテーのような薬膳らしいスープ、海鮮由来の旨味、酸味と辛味のある薬味が特徴に思えました。

シュエダゴン・パゴダにも行ってみました。ヤンゴン市内にある巨大な寺院です。 外国人専用の受け付けで入場料10000チャットを払い、裸足で入場します。 敷地は広大で、どこもかしこも金色。日本の仏教とは全く違うようです。 場内には観光客だけではなく、地元の参拝者も多くいらっしゃるように見えました。 見回っている間にお経が延々とスピーカーから聞こえてきて、何かを再生しているのかと思いきや、生でした。 長いときは3日3晩通して読むそうです。それも修行なんでしょうか。

仏像や鐘などの展示物の横にはQRコード掲示されていて、専用アプリで読むと解説ビデオを見ることができました。 フィンランドで戦車を展示している施設にもこんなのがあったっけなぁ。

こちらの仏教では水曜日を2つに分けた八曜日があり、自分の生まれた八曜日が重要とのこと。 曜日ごとに像があり、自分の八曜日の像に水をかけるのが参拝の作法だそうです。 像のどこにかけるか、何回かけるか、など聞いてみましたが、テキトーでいいとのことです。テキトー。

撮ってもらいました。夜になったら絶景だろうことは想像がついていたのですが、帰りの飛行機の都合上やむなく帰りました。

何も予定が無ければ瞑想したかったなあ。

JaSST'20 Tokyo RejectCon

勢いでブログ枠に参加登録していたイベントに参加しました。

なぜ「わかった」と返信したのか、今でも覚えていません。 「そういうこともあるか…」と勤務先から前向きに会場へ向かおうとした矢先、お気に入りのジャケットが派手に破けました。心も破けそうになりました。

主催の tsuemura さんとは彼がソフトウェアエンジニアになる前からの間柄です。 昔から変わらないなと思うのは物おじしないことで、イベント慣れしているという印象でした。 特に、「節度を守っての行動をお願い致します」とアナウンスした直後に 「今日は節分なので拍手の代わりに豆をまいても結構です」と述べて、節度とは一体何かわからなくなったのが最高でした。

以下、発表ごとの感想です。 私はモバイルと Web はよくわかりませんし、聞き飛ばしてしまった部分もあるので、変な理解をしているかもしれません。

note でのテスト自動化に関する取り組み

iOS アプリのテスト自動化のお話でした。 Web は毎営業日デプロイしているけど iOS アプリはそうでもなくて、リグレッションチェックを効率化したいとのことでした。 「5種投稿、会員登録、ログインくらいができれば」と言っていた覚えがあります。スモークテストなのかなと理解しました。 ツールにはサポートが早いことから magicpod を選んだとのことです。

QA部門にいる発表者と一人の iOS エンジニアが組み、週15分の定例会議を設け、毎日一回リリース版で実行という形で歩み、変更箇所に集中できるようになったことが良かったことだそうです。 はまりを解消するためにエンジニアを巻き込むのが大事とのことでした。 どのようなはまりなのか聞き逃してしまったのですが、iOS アプリ固有のテクニカルな何かだったのでしょうか。 Pull Request をトリガーに実行すると時間がかかるそうで、Android の方が早いそうです。

発表者の増原さんは #ソフトウェアテスト タグがついた note 記事を書くとQA部屋に流れてくる仕組みを作っているそうです。 サービス愛と職業愛があるなあという印象でした。

リベラル・アーツの世界〜Flow理論に学ぶレベルアップの鍵〜

冒頭で「ソフトウェアテスト一切関係ありません」とのたまってヤベェなと思いました。 お話は面白くて、個人のレベルアップに適した状態を "フロー体験とグッドビジネス (チクセントミハイ著)" を参照して語るものでした。 横軸に能力、縦軸に挑戦を設けたメンタルステート図では、不安、退屈、覚醒、コントロール…そして最も右上のフロー状態という領域があり、 フロー状態へ至る際のルートについて語られました。簡単に言えば、能力を上げるのと、挑戦的なことに手をつけるのと、どちらを先にするかということです。 挑戦ルート、能力ルート、という言葉が使われていました。

発表者は、テストコードを書いているときはコントロール領域にいて、以前は心配の領域にいたのではないかという自覚があるそうです。 メンタルステート図が頭にあると、そういった振り返りができそうです。

フロー体験という言葉は初めて聞きました。 「ゾーンというとわかるのではないか?スポーツの世界はゾーンになりやすいように設計されている」
という説明があり、そういえばゾーンであればどこかで聞いた気もしました。 ただ、私のイメージでは、スポーツにおけるゾーンというのは1秒が10秒に感じるような集中している状態であって、 技術者のレベルアップに適した状態とは時間単位がずいぶん違うのではないかという印象を受けました。

さて、これは RejectCon でしたよね。これはどうすれば Accept されるのだろうか…と考えると、

…という案が出てきました。いやはや。

WebアプリケーションE2Eテスト自動化の3つの壁

WebアプリケーションE2Eテスト自動化3つの壁 - Speaker Deck

Web のことはちょっとしかわかりませんが (チョットじゃないぞ)、 何が理想と異なるのか、賢いツールがあるのか、わかりやすいお話でした。

実行速度の問題解決方法としてテストデータをAPIやコマンドで作るというところがよくわかりませんでした。 お話ではView A→B→C があるとき、B, C の前に Aを操作しなければならないとのことでした。 それはわかるのですが、View A に遷移することや、View A での操作をすることを "テストデータを作る" と言うのでしょうか。 また、それらの操作をするための API またはコマンドは備わっていることが普通なのかがわかりませんでした。 「そんなのないよ」という場合も結構あったり?と想像しました。

おそらくこれを含め、お話の最後で「E2EでなくてもいいテストをE2E環境でやっている」と述べられました。 例えば画面表示だけテストしたいときにサーバーサイドとの通信がいらないみたいな場合があって、 でもそうした部分的に動かす仕組みを作るのが難しいのかも、と想像しました。

また、Accept を狙うなら3つのうち1つの壁に絞って特定プロジェクトの改善事例とするか、 沢山の改善事例が3つの壁に当てはまるという話にするか、かなーと思いました。

プロダクト開発におけるアジャイルQA活動

JaSSTRejectConf - Speaker Deck

査読者からの Reject 理由が述べられていて、RejectCon らしい発表だと思いました。 健康を診るという例えは私が前々から意識しているので親近感がありました。 プロダクトまたは組織が今は動いているけど急病になるリスクを検知して手を打つということですね。 具体的なリスクの種別、見つける方法、対処方法を掘り下げると事例発表らしいのではないかと思いました。

なんかだんだん批評家っぽくなってきたぞ。

テスト?自動化?それよりもQA/QCの業務とは(仮)

JaSST'20 Tokyo RejectCon for Session - Speaker Deck

サービスが世に出て何年か経った組織によくある状態はこうなのかも、と想像させられたお話でした。 対ユーザーの活動よりも開発組織内の活動に焦点を当てていたので QA よりも QC のお話だと思いました。

Webサービス企業において Qが頭につく job が個々の開発チームに入るか俯瞰するかという話って どこかで聞いた覚えがあって、掘り当てると何か理解が進むかも。(LIFULL が俯瞰型でメルカリが入り込み型だったような??)

ウォーターフォール(V字)開発でモブ設計してみた

週一回二時間30分交代とのことなので、ソロが中心で、力を入れる時にモブとしているようです。 見間違いでなければ、人数は開発3人、テスト4人と書いてありました。テストの人が多くありませんか?

本編とは関係ありませんが、そろそろVモデルに全く出会わないキャリアを歩んでいる方も珍しくないだろうなと想像しました。 生まれたときからスマホがあって、ガラケーを見たことがない、という感じで。どうなんでしょうね。

さいごに

発表者の皆様、運営、会場提供をしてくださった皆様、ありがとうございました。

RejectCon っぽくないけど面白かった!というのと、査読者コメントや採択率などの RejectCon っぽい話も聞きたかったというのと、両方ありました。

また、職業柄なのか、事例発表が IMRaD (Introduction – Method – Results – and – Discussion) の構成になっているかを無意識に期待するので、 そうでない構成が多かったセッションを聞いて、「別にそうじゃなくていいのよ」と言い聞かせたりしてました。

あと、ソフトウェアシンポジウムのプログラム実行委員長から論文出せって言われて、うっかり「ネタあります」と答えてしまいました。 さすがにブログ枠ありますに対して「わかった」と応えるのとはわけが違うと思うのですが、はてさて…。

ボーイング737におけるソフトウェア外注の結果

Boeing’s 737 Max Software Outsourced to $9-an-Hour Engineers

長い原文を私から見て要約/意訳するとこうなります。

  • ボーイングは航空ソフトウェアの開発費を減らすためにオフショアを企業戦略として大々的に検討。H1B ビザで渡米している優秀な技術者に頼ると時給 $35 になるのを減らしたかった。
  • 時給の安いインドのソフトウェア開発企業に外注することに決めた。中には時給 $9 の人も。
  • ただし、この企業は航空ソフトウェアの開発経験がなかった。
  • ボーイングはこのインド企業に、できるだけ上位の仕様を送り、より下位の仕事を任せるようにした。
  • その結果、航空業界人から見れば自明な仕様の理解に 18 回もやりとりするなど、ボーイングの社員はより多くの監督作業をすることになった。
  • 作られたソフトウェアは、ボーイングが培ってきた設計原則に違反していた。テストもろくにされなかった。
  • 監督作業や彼らの誤りの修正を換算すると、安くしたはずの時給は $80 にもなっていた。
  • ボーイングのベテランエンジニアは、「ボーイングの設計者の能力は時間と共に低下しているように見える」と語った。
  • 結局、新製品の市場投入は 3年も遅れ、予算も数十億ドルオーバーした。
  • ソフトウェアの欠陥によって、2018年10月と2019年3月に2件の墜落事故を起こし、346人が死亡した。
  • 長年ボーイングの技術者を務め、2015年から CEO となった Dennis Muilenburg は「これまで外注していたソフトウェア開発を内製に戻す」と述べた。

私の知識と経験では、高品質なソフトウェアを開発するには、医者が持つような体系的知識とスキルに加え、数学者やアーティストのようなセンスが求められます。 ユーザビリティが重視されるゲームやモバイルアプリ、セーフティが重視される自動車や医療機器など、製品分野によって求められる品質は異なりますが、 ベースとなる知識・スキル・センスは同じです。重要なのは素人にはできないということです。

素人でも、高校までに文系でも概ね身につくであろう命題論理・述語論理をもとに要求仕様を自然言語で書き、簡単なループや条件分岐のあるコードを書くことは 見よう見まねで可能でしょう。しかし、それだけでは、影響範囲を局所化して再利用するための構造設計、高速なアルゴリズムの設計、システムの一部が故障しても継続稼働可能な信頼性、バグを狙い撃つテスト設計、 成果物間のトレーサビリティ確保、円滑なバリューストリームを実現するツールチェーン、ソフトウェアの特徴を考慮したプロジェクトマネジメントと品質保証といった、 高品質ソフトウェアに求められるエンジニアリングは到底実現できないことでしょう。

中には、工学や科学を専攻していなくとも、独学と実務経験をもとにソフトウェアエンジニアリングのスキルを身につける方々がいます。 大学でソフトウェアを学んだ人を追い抜くケースも見ますが、そう多いものではありません。

なので、企業は能力の高い人材を探したり、育つ仕組みを整備することが重要です。 そして、そのような人が自国に限られるのであれば、海外に活路を求めるというのは良策かと思います。 それはオフショアという呼び方かもしれませんし、その企業のグローバル開発拠点かもしれません。

逆に、人件費を下げたいだけがために経済発展途上国の企業に外注すると、自分の首を絞める結果となるのではないかと考えます。 ボーイングの件は、それを示す良例ではないでしょうか。

それは能力不足によることだけではありません。 オフショアに限らず外注の場合、要求仕様に基づくものさえ作れば売り上げることができるので、ユーザーにとって価値のないソフトウェアを作るリスクがあります。

外注か内製かについて、どのような条件であれば、どのようなバランスをとるのがビジネス上最適なのか。 それを工学的、統計的に示すには多くの実験をしなければなりません。

そのような工学的、統計的な判断を時間をかけて行うか、 センスや信念をもとに素早く定性的な判断をするかという概ねの二択があります。 企業にとっては前者を選択する余裕は無いと思います。 ボーイングはソフトウェアエンジニアリングにおけるセンスのない経営者が後者を選択して失敗したのではないかと想像しました。

さて、このブログがソフトウェア開発に携わる誰かの目に留まり、何らかの意思決定に影響するでしょうか。はてさて。

全身麻酔で親知らずを3本抜いた

親知らずを一度に3本抜くというのも、全身麻酔をするというのも、入院するというのも初めての体験だったので記しておきます。 これを書いているのは術後1ヵ月~2ヵ月です。結果から書くと手術はうまくいき、そこまで辛くはなく、やってよかったと思っています。

手術をした経緯は、親知らずの前の歯が痛んで近くの歯医者を受診したことに始まります。 その歯を治療をしたいのですが、後ろの親知らずを抜かないと治療ができないことがわかりました。

以前に1本だけ親知らずを抜いたことがあります。 そのとき、治療器具を奥に入れられると吐きそうになることがわかりました。嘔吐反射が一般人よりも強いらしいです。 当時は我慢を重ねてどうにかなったのですが、ものすごく辛くて同じ苦しみを耐えられるかわからなかったので、楽な方法がないか助けを求めました。 そういった場合、全身麻酔下で手術をするという手があるそうです。 全身麻酔をする際には泊りがけの入院になるとのこと。 そこで「そんな大掛かりなことをするなら残りの親知らずも全部抜いてください」とお願いし、大きな病院を紹介されました。

いきなり入院をするわけではなく、全身麻酔ができるかどうかを検査しました。 血液や心電図までとられたのですが、そういうものらしいです。 麻酔医から麻酔時に行うこと、検査の理由、リスクについて丁寧な説明を受けました。

この検査と説明を受けてから入院をするまでの間は2週間ほどだったでしょうか。 入院、全身麻酔、手術というのは初めてのことなので、予習でもしておこうと YouTube を見ることにしました。 世の中は YouTuber だらけなので "親知らず全部一気に抜いた" といったものがあるだろうと踏んで探したところありました。 あるもんですねえ。

全身麻酔で親知らず3本一気に抜いた結果・・・ - YouTube

私の場合、1日目は主に検査、2日目に入院、最後の3日目は午前中に退院するというスケジュールでした。

1日目:準備

10時ごろに病院へ。病室は個室で、ベッド、トイレ、クローゼット、貴重品入れがあります。 個室といってもホテルのように鍵つきのドアがあるわけではなく、入口にはカーテンがあるだけです。

食事は昼食と夕食の2回。 病院食はおいしくないものと知人からは聞いていましたが、意外とそうでもありませんでした。

この日は検温や血圧測定などの簡単な検査、麻酔医の問診、執刀医の問診、歯のクリーニングがありました。 それら以外は暇です。 術後何日かは満足に食事をとれなくなるだろうからと考え、 ちょうど YouTube で公式配信されていた孤独のグルメをずっとみていました。

2日目:手術

いよいよ手術当日。6時30分に起床。早い…早すぎる…といっても看護師が各病室を周るだけで、二度寝してよいとのことでした。 この日は朝食と昼食はなく、水を飲むこともできません。 水を飲めない代わりに点滴があります。たしか10時ごろに点滴の器具を腕に設置しました。 そして手術着に着替えました。見た目は完全に病人です。 私の番は前の手術が終わり次第だそうで、何時に始まるか決まっていませんでした。 結局10時ごろに準備ができてから手術が始まるまでに3時間くらい経ったでしょうか。とにかく暇でした。

手術のお呼びがかかったときには「待ってました!」という気持ちで手術室に向かいました。 自分で歩いて手術室に入り、自分で手術台に上がりました。 テレビドラマなどで見る患者はことごとく手術室に運ばれていたのでどこか新鮮でした。

手術台に上がると「これから麻酔薬を入れていきます」と告げられ「はぁい、おねがいします」と応えました。 その次の記憶は病室に戻されるときでした。その間のことは何も覚えていません。

病室に戻されるとき、おそらく2人か3人がかりでベッドに私の体を置こうとしていたのだと思います。 看護師らが私の体を動かす瞬間、私はタイミングを合わせて「せぇのッ…」と言ったのを覚えています。 看護師らが「運ばれる患者が "せぇのッ" って言うのは珍しいねえ」と言っていたのも覚えています。

ほか、ベッドに戻って直後のことはよく覚えていません。 手術が終わったこと、何やらマスクのようなものをつけていることだけわかりました。 しばらくすると思考がはっきりして、不快感が出てきました。 抜歯箇所の痛みはそれほど強くないのですが、口に血がたまっていたり、 喉にも血か淡がたまっている感覚がありました。 そして、それらを吐き出したいのですが、体がうまく動きませんでした。 あれこれどうにかしようとしているうちにシーツを真っ赤に汚してしまいました。 さらに、頭痛がして熱も出てきたので抗生物質を投与しました。 これが術後2時間後のことです。

さらに2時間ほど経つと夕食の時間となり、8時間ほど付き合った点滴も終了です。 この日は朝も昼も食べていないのですが食欲は全くありません。 術中に口をずっと開けていたせいなのか、口の端が切れていてかさぶたになっているので口が満足に開きません。 抜歯箇所は糸で縫ってあるそうなのですが、常に少しずつ出血しているので血の味がしています。 抜歯箇所が鋭く痛いわけではないのですが、常に鈍い痛みがあって口を動かしたくありません。 それでも食べないと治らないと考え、一口噛んで飲み込むごとに気力を振り絞り、完食しました。 前日と違って料理は全て細かく刻まれており、米は米でもおかゆでした。 健康であれば5分や10分で食べて終えてしまいそうな料理でしたが、このときは30分以上かかった覚えがあります。 看護師は完食したことに驚いていました。

食後は調子がよくなり、病室から出て休憩室でコーヒーを飲んだり、家族に手術が終わったことを連絡したりしました。

3日目:退院

この日も6時30分に起床し、朝食までの間しばし二度寝。 痛くて目が覚めるかもしれないと懸念していましたが杞憂に終わりました。

朝食は手術当日の夕食と同じく全く箸が進みません。 相変わらず口は開かないし、血の味がします。 料理も同じく細かく刻まれたり柔らかく煮込まれているのですが、噛んで飲み込むには時間がかかります。 バキという漫画とアニメの作品にて主人公が毒におかされたときの場面を思い出しました。 薬膳料理を「ウマくはないぞ」というセリフと共にふるまわれたり、 恋人に「食ってないじゃん!」と泣きながら叫ばれたりする場面を思い出すと、 食欲そのものは無いものの、治したいという気力が出てきて完食することができました。 病は気からというのはこういうことでしょうか。

朝食後、簡単な問診と直近の生活指導を受け、抜糸の予定日を決めたら退院です。 かかった金額は事前の検査も含めて約10万円でした。病室が個室ではなく相部屋であればもう少し安いでしょう。 虫歯になりやすい親知らずを一気に抜くことができ、その前の歯を磨きやすくなるのであれば安い金額だと思います。 抜歯された親知らずを見ると2本は割られていました。あごの骨を削り、歯を細かくしないと取れなかったそうです。 嘔吐反射のある自分には耐えられなかったのではないかと想像します。 退院後のダメージとして大きいものはありませんでしたが、退院して1週間ほどは集中力が続きませんでした。 それを差し引いても行って良かったと思っています。

さて、親知らずの抜歯は順調に進んだのですが、その前の歯は今でも治療しています。 早く親知らずを抜歯して治療を始めていれば、とほほ。

GitLab Meetup Tokyo #12: 2018年振り返り に参加しました

gitlab-jp.connpass.com

GitLab ユーザーなので GitLab のイベントに参加してみました。

上記イベントページの概要欄をみると、GitLab ってどんどん成長しているんですよね。 基本的には Git リポジトリホスティングシステムで Issue トラッキングと CI もできる奴、 昔で言えば Trac Lightning みたいな立ち位置かなー(伝わるのか?これ)、という認識だったのが…… Docker イメージを登録できたり、IDE を備えたり、「もうみんな Kubernetes クラスタあるよね」とばかりに Auto DevOps を出したり、 最近では Serverless なんてものまで出てきました。

本家ブログに We believe Kubernetes is the future. と書いてあるのを知り、 「あぁ…そっちに行ったんやなぁ…」という気持ちです。 GitHub および Circle CI, あとは Atlassian 製品のように役割別に製品を分けている同種のツールとは方向性が違うなぁと思わされました。

また、チームでコラボレーションをする環境というのは、幅広い業種や職種に関わるものなので どういった方々が来ているのか知りたくなったのも参加した理由です。 GitLab は Kubernetes が未来と信じる方向に進化しているそうですが、別にコンテナやサーバレス環境で動作する ソフトウェア以外の開発にも使えるので、Web システム以外の世界の方々も来るんじゃない?と思ったんですよ。

とまぁ、知らない機能も沢山あるし、どんな人が来るのか気になったので参加することにしました。

GitLabとKubernetesではじめるAuto DevOps

イベントが始まる30分前に Google カレンダーの通知がありました。 イベント会場まで1時間かかります。遅刻確定です。 アラームを何分前に鳴らすかはイベントによって変えておきましょう。 このブログもイベントが終わってから1ヵ月後に書いているので二重の意味で遅刻してしまいました。 しょんぼり。すみません。

"GitLabとKubernetesではじめるAuto DevOps" の途中から聴講し、ちょうど Auto DevOps のデモを行うところでした。 デモは Spring を使った簡単な Web アプリを変更する際にパイプラインに含まれる様々なジョブが実行され、 Merge Request の画面にも表示されるというものでした。 実際に使われたプロジェクトが今でも公開されており、パイプラインの詳細な実行結果を見ることができます。

gitlab.com

デモで使われた sprint-app プロジェクトがあるグループ名は イベント当日は demo-auto-devops という名前だったのですが、 今は cl-demo という名前に変わっています。 古い URL を開くと新しい URL にリダイレクトされ、 Group 'demo-auto-devops' was moved to 'cl-demo'. Please update any links and bookmarks that may still have the old path. と表示されます。親切ですね。

Auto DevOps だけでなく Issue やラベルについても触れているのが丁寧だと思いました。 それもそのはず、発表者は日本で GitLab の正規販売代理店に勤めており、コントリビューションも行っている方でした。

LT

ここからは LT (ライトニングトークス) のお時間。 ライトニングといっても、稲妻のような速度で話すわけではありません。しみじみ。

GitLabソースにコントリビュートしてみて勉強になったこと

GitLab Summits 改め GitLab Contribute | GitLab の参加費用は 2499 USD ですが コントリビュートすると無料になるそうで、そのためにコントリビュートしたそうです。 オープンの Issues がたくさんあり、API の変更であれば UI が無いので簡単そうと考え、1つを選んだとのこと。

所要時間は GDK (GitLab Development Kit) のインストールに4時間、 最初のコーディングに1時間、1回あたりの CI パイプラインに3時間、 レビューとそれを受けての変更に10日。

レビューでは「ローカルで Rubocop を使おう」「TDD で書こう」「あそこのコードが参考になる」 といった助言を頂けた、誰かに頼まなくてもコメントをもらえたのがありがたかった、 テストコードが頼りになったとのことです。

自発的に Merge Request に参加する方がいるというのは良いチームですね。

API の変更であることと、Merge Request がクローズするまでに11日間要したことからすると、 該当する Merge Request は多分これですね。複数のレビュアーが助言している様が見られます。 1st contribution というラベルがあるのも面白いです。 もちろん CI パイプラインにある各ジョブの実行履歴も残っています。 開発手法を勉強する材料としても良さそうです。 gitlab.com

(仮) 独自パッチで進化させ過ぎたGitLabのOmnibus package移行

GitLab がバージョン4の頃から使っており、不足していた点を独自パッチで補っていたとのこと。 例えば公式では MySQL を使っていたのをパフォーマンスのために PostgreSQL にしたり、UI を変更したり。 独自パッチの数は 30 以上になっていたそうですが、公式 omnibus package が育つにつれ、 独自パッチをあてる利点や必要性が無くなっていったので omnibus package に移行したとのこと。

私も omnibus package を使ったことがあるのですが、初めて使ったときは既にバージョン8でしたし 独自パッチをあてるという発想はありませんでした。 もちろんソースからビルドするということもなく、Ubuntu にパッケージをインストールして gitlab.rb を書き換えて gitlab-ctl reconfigure を実行する程度のことしかしていなかったので、 別の世界のお話に聞こえました。

確か別の事例で「社内には Ruby on Rails の開発経験を持つエンジニアが多数いたから GitHub Enterprise を使わずとも GitLab (Community Edition!!!) でやっていけると判断した」 という趣旨のものがあったと記憶しているのですが、そういう企業でないとやっていけないのではないでしょうか。 というか、それだけできるなら本家にコントリビュートすれば良かったのでは、というのが感想です。 まぁ、今でこそ上述のようにコントリビュートしやすい土壌が整っているように見えますが、 バージョンが古かった時代は違ったのかもしれませんね。

GitLab-CI/CD+Pagesでポートフォリオを作ってみよう

ソフトウェアエンジニアの中には作品を集めたWebサイトをポートフォリオと呼んで公開する方がいます。 この発表ではそのサイトを GitLab を使って作ってみようというものです。 スライド自体も GitLab にある reStructed Text と Reveal.js を使って作っているようです。 GitLab-CI/CD Pagesでポートフォリオを作ろう

ポートフォリオはこちら。 Portfolio of attakei

Reveal.js はちらっと見たことがあるんですが reStructed Text で書けましたっけ…? と思ったところ、どうやらそれを実現するものを作ったみたいです。すごい。 github.com

そういえばこのブログもこのイベント参加を機に Hugo + GitLab pages に移行しよう、 それが終わったらこのイベント参加エントリーを書こうと考えていたのですが、 見た目を考えたり、検索機能をどう実現するか調べたり、結局ブログサービスに戻したという文章を見たりして ずるずると1ヵ月経ってしまったので、先にこの文章を書くことにしました。とほほ。

スポンサーLT

スポンサーは Grooves 社です。 頻繁に勉強会のスポンサーをしているそうで「また出たな Forkwell」とツイートされるのが恒例になっているそうです。

なるほど。https://twitter.com/search?f=tweets&q=%E3%81%BE%E3%81%9F%E5%87%BA%E3%81%9F%E3%81%AAForkwell

私は Forkwell Jobs を以前から知っていたので「なるほどこの会社か!」と思いました。 Forkwell Jobs はソフトウェアエンジニア向けの求人サイトで、プロダクト、職務、開発環境などが エンジニア目線で書かれていると感じられます。 転職するわけではなくても、いろいろな会社の開発環境をざっと知ることができて面白いですよ。

ところで「また出たな Grooves」ではなく「また出たな Forkwell」なんですね。なんでだろ。

懇親会

ここからは懇親会。12月20日なので忘年会とも言えます。 料理はお寿司とピザ。私は Connpass などで参加するイベントの懇親会で寿司が出た場合もピザが出た場合も経験していますが、 寿司とピザの両方がそろっている場合は実は初めてかもしれません。お酒もあります。 きっとスポンサーの Grooves 社のおかげです。「ありがとう Forkwell」とツイートすべきだったのではないか…と思いながら乾杯しました。

こういったイベントでは友人がいることも多いのですが今回は知り合いは誰もいません。 あんまりお話は得意ではないのですが、せっかくなので初めての方々とお話しました。

話してみると色々な方がいらっしゃいました。 コンテナオーケストレーションは当たり前という環境の方、 LT であったような独自パッチを使っているという方、 インフラ運用に使っているスクリプトを管理するために GitLab を使い始めたという方、 Git をこれから始めるという方、会社のサーバーはほとんど Windows だけど Linux もあるという方、などなど。 業種は聞く限りは必ずしも Kubernetesクラウドネイティブに技術的に縁がありそうな方々ばかりではなさそうに思えました。

社内SNSの投稿でこのイベントを知って参加したという方もいらっしゃいました。 で、それを投稿したのは私だと。えっ???そういうこともあるんですね。

「海外では Enterprise Edition を使うのは普通。日本ではあまり使われていない。」 という情報も得られました。 これを聞いたとき、JIRA と Redmine の海外と日本での違いを思い出しました。 Google トレンドでみると、海外では JIRA の方が検索キーワードとしての人気が圧倒的に高く、 日本では Redmine の方が高いそうです。なんなんでしょうね。

最後に。ラッキーなことに GitLab 帽子を手に入れることができました! 今は冬で実用性がありますし、友達に自慢することもできます。ありがとうございます。

以上、1ヵ月遅れのブログ枠でした。

チェコ、ドイツ、フィンランド旅行記

チェコ(プラハ, ピルゼン)、ドイツ(ドレスデン)、フィンランド(ヘルシンキ) の3か国を旅行してきた。 主な目的はビール。チェコにはピルスナーウルケル(Pilsner Urquell)というピルスナーの祖となるビールがある。 これをお目当てとして、ついでに周辺にも行くという狙いの行程だ。 計画は同行した友人がほぼ全てを行い、私はそれに乗っかった。感謝感謝。

以下、8日間のことを記す。写真も多いのでそれなりにスクロールすることになるだろうから、最初に私が覚えておきたい点をかいつまんで記す。

  • ヘルシンキのサウナ施設ロウリュは最高!!!!!
  • ピルスナーウルケルは飽きない味
  • 昔の石造りの建物が残った街並みはとても新鮮
  • 夏の日の入りは21時以降
  • めしは全部うまい。量に注意。
  • 観光客を相手にしてる人なら英語は大抵通じる
  • プリペイドsimでモバイルインターネットは安心
  • 電車の駅に改札はない。特定の地域を一定時間乗るチケットを買う。
  • 路面電車は珍しいものではなく一般的
  • Google Maps のルート検索は頼りになる
  • トイレの多くは有料
  • 現金はクレカで手に入れられる
  • ヘルシンキのサウナ施設ロウリュは最高!!!!!

さて、ここから本文。繰り返すが、画像つき8日分なので長い。

1日目: 成田からヘルシンキ経由でプラハ

家を出る前の40分で荷造り。 なんとかなるものである。

プラハへの直通便はないのでヘルシンキを経由する。成田からヘルシンキまでは10時間ほど。 エコノミークラスなので快適とは言えない。こんなときはビールでも飲んで寝てしまおうと思い、1杯目は缶のカールスバーグとなった。

結局、断片的な睡眠をとっただけで大して眠れずヘルシンキに到着。 生体認証パスポートを持ってる人だと自動で入国審査ができるとの案内があったので、そんな機能あったかなぁとダメもとでやってみたら通れた。パスポートを機械にかざすと1つめのゲートが開く。顔をカメラに向け、何秒かすると2つめのゲートが開く。顔の照合をしているのだろうか。その後は審査官がいて、いつものようにパスポートを渡す。あれ?結局、人が審査するのね。

ここで simカードをヨーロッパで使えるプリペイド式のものに切り替えた。TwitterもLINEもGoogle検索も、何もかも使える。ひとまず安心。 私が使ったのは AIS プリペイドSIMカード データ通信 15日 4G/3G というもの。この旅行で行ったどの街でも通信できた。タイの通信事業者らしく、使用し始めるとタイ語が入ったSMSが届く。 日本でも使用することができるので、simを入れ替えるのは出発前でもいいだろう。

ヘルシンキで友人と合流して2時間後にプラハへ。再び飛行機で2時間。空港にはクレジットカードでチェコの通貨であるコルナ(CZK)を買える機械がある。 1000コルナだけ買った。この時点のレートは1円≒5コルナだったので、1000コルナは約5000円だ。 現金などいらないのではないか?とも思ったが、公共交通機関、トイレ代を見越して最小単位を購入した。

このとき、クレジットカードで現金を買ったつもりだった。 しかし、帰国後にわかったのだが、実は買ったのではなく借金をした扱いらしい。 つまりキャッシング。利息がつく。カード会社に電話して繰り上げ返済すれば利息が減る。 といっても、今回の旅行で手に入れた現金くらいの額では利息は数百円なので、電話して振込という手間とそれを覚えておく方が高いと判断し、 何もしない、つまりショッピングの支払いと同じく翌月一括払いのタイミングで返済することにした。 「クレカで他国の現金を買えるのではないのか?何で借金扱いなんだろう?」という疑問が残るが…まぁいい。旅行記に戻ろう。

(画像はプラハ中央駅の外にあるキャッシング機。似たようなものが空港にもある。)

プラハ空港からタクシーでホテルへ。19:30だというのに昼間のような明るさ。空は青い。タクシーの運転手いわく、日没は21時以降で、フィンランドだと1時だそうな。30分ほどでホテルに到着し、時刻は20:00。日本の家を出たのが6:30なので、家からホテルまでの所要時間は20時間くらいか。いやはや、遠くへ来たもんだ。日本とチェコの時差は7時間。日本はGMT+9、チェコGMT+2。つまり、例えばチェコで20:00のとき、日本は翌日の3:00ということ。

ホテルの部屋でめぼしいレストランを検索して徒歩で向かう。昔からある石造りの建築物をそのまま使ったような街だ。高層建築物は見当たらない。目に入る店は、飲み屋、レストラン、ホテル、土産物屋、ライブハウス、電気店マクドナルドなどのチェーン飲食店、などなど。

レストランでは早速ピルスナーウルケルで乾杯。うまい。旅の始まりである。時刻は21時。日本の感覚で言えばまだ明るさが残る夕方になりかけといったところだ。 料理は、うさぎの足のロースト、チキンの煮込み、豚の…なんとか、ハンガリアンキューカンバーサラダ。メニューには英語が併記されていて、店員も英語を話せる。問題ない。

肝心の味は……うまい!!心が賞賛するんじゃ。何の香辛料を使っているのかわからないが独特の落ち着く香りがする。チキンとうさぎはやわらかい。豚の料理はさつま揚げのような形をしたピカタなんだけどこれもうまい。優勝。

二日目: チェコ - プラハ観光

旧市街からカレル橋を渡ってプラハ城へ行った後、ウルケルを一番うまく飲ませてくれると評判の店 U Zlehato tygra へ行くという計画を立てた。

その前にホテルで朝食。種類が豊富なバイキングだ。一日目の夕食にひけをとらず、とてもおいしい。チーズの塊が4種類置いてあり、自分で切ってとることができる。ハムとサラミが3種類ずつ。野菜は酢漬け、和え物か何種類か。ケーキが何種類か。トマトと豆のスープ。飲み物はコーヒー、ジュース、紅茶、ミント水。

プラハには地下鉄と路面電車があり、一日券が110コルナであることがわかった。券は地下鉄と路面電車で共通している。券をどこで買えるかわからなかったので、プラハ中央駅ならあるだろうと踏んで歩くことにした。少々迷ったが売り場に着き、1日券を買うことができた。乗るにはまず時刻を印字する必要があり、印字時点から24時間乗ることができる。改札は存在せず、乗車毎に券を見せる必要は無い。ときどき、ホームにいる駅員が券を持っているか確認しに来る。こうして地下鉄に乗り、まずは旧市街近くの駅で降りた。どの駅で乗り降りすればよいかは Google Maps の道案内機能を使えばなんとかなる。

旧市街を散歩。改めて書くが、昔ながらの石造りの建物しかない。

10:30に飲食店で小休憩。ビールを1杯、36コルナ。日本円にして180円ほど。コーラは55コルナ。ビール安い。

カレル橋、英名Carles bridge を渡る。銅像がたくさんある。何の像だかさっぱりわからない。ベルセルクのモズクズ様御一行を思い起こさせるものもあった。 これなんて今にも魔女狩りを始めそうな奴らだ。こわい。

像も多ければ観光客も多い。スリも多いらしいので気をつける。川には鴨の群れがいる。チェコに鴨がいるのか、やつらが鴨なのかわからないが、鴨にしか見えない。やつらはときどき逆さまになり、首を水中につけ、足を水面から出している。魚を捕りにもぐるのならわかるが、何をしているのだろうか。プリプリした体で逆さまになるのは間抜けに見える。

そんな面々を目にして歩いていると、いよいよプラハ城だ。街もそうだったが、城も全面石造りだ。城というより王宮や聖堂などの大きな建物が集まった地帯という方が近いのではないか。もちろん日本の城のような天守閣は無い。荷物検査をして中へ。広く、暑く、人が多い。

無料で見物できる場所と有料の場所に分かれている。無料でもそれなりに楽しめると思う。 今回はBコースのチケットと撮影権を買った。日本語の案内もある。

武具が並んでいる。ベルセルクで見たことある!タクティクスオウガテンプルナイトだ!…くらいしか感想が出てこないのが悲しい。

このステンドグラスに描かれた人々もドラクエのキャラクターのようだ。色使いがとても似ていると感じた。 もちろん、こちらの方が先に生まれたものであるのだが。

城下町といった風景。「ここがグランバニア城です」だとか適当なことを言っても通じそうだ。

さて、街全体が世界遺産ともいえるプラハ。至るところにIngressのポータルがある。Ingress というのは実際の場所を使ったスマホゲーで、青と緑の2チームで陣地を取り合ったり、行った場所(ポータル)の数を記録したりすることができる。私はこの時点でレベル11であり、12に上がるためにはあと1つのゴールドメダルが必要。そして、ゴールドメダルを獲得できそうな条件としてcapture unique portals があったので、道中で集めることにした。あと100個の unique portals を capture すればレベルが上がる。結果、旧市街から城内の散歩だけで100個集まってしまった。ありがとうプラハ

城の散歩にも飽きてきたところで、この日の最後の目的地、ウルケルが評判の店である U Zlehato tygra へ。15:00開店に合わせ14:30に到着。早く着きすぎた…待つしかない…。もう歩き疲れており、昼食も食べていないのでおなかもすいている。まだか…まだか…と思いつつ待つ。気づくと後ろに列ができている。やはり有名店なのか。

15:00になり開店。ほぼ満席だ。早速ウルケルを注文…する必要はないらしい。勝手に出てくる。しかも、飲み切ると次が出てくる。終わりにするときはコースターをグラスにかぶせる。まるでわんこそばだ。店員の1人はひっきりなしにウルケルを注ぎ、グラスを洗っている。この光景だけで酒を飲むことができる。料理は、豚の中華あんかけのようなもの、ニシン?の酢漬けでザワークラウト?を巻いたもの、あと2品は忘れた。ほとんどの客はビールだけ飲み、料理を頼んでいない。1杯飲んだら帰る客もちらほらいた。15時だしその方が普通なのかも。我々は料理についてきた大量のパンとビールによっておなかいっぱいになってしまった。

こんな風に空きグラスを置いておくと…

店員が新しいビールの入ったグラスを持ってきてくれる。わんこそばという表現をしたが注ぎ足されるわけではない。

飲んでいる途中、こんな風に泡が偏るのがウルケルの特徴。ほかにもこのようなビールはあるのかもしれないが、私はこれしか知らない。

この日はホテルに戻ってシャワーをあび、19時に就寝。夕食抜き。

3日目: チェコ - ピルゼン

ピルゼン(Plzen)にあるウルケルの醸造所へ。つまりウルケルの本拠地だ。

プラハ中央駅から Západní expres で2時間。日本で言えば在来線特急: 東京〜伊東といった位置づけの電車だろうか。ドア付きの6人部屋が並んだ内部構造になっている。自由席と指定席の区別はなく、席が予約されているか否かで区別する。道中の車窓からは田舎の風景が見える。広い一軒家、牧場、古い工場、山、草原。すぐに退屈になった。この文章はそういうときに書いている。

11:30、ピルゼン駅に到着。醸造所の場所は駅から歩いて5分かかるかくらいの近くだった。早速ウルケルを1杯…うまい。この味にも慣れてきた。見学予約時刻は13:00なので周辺を散歩。プラハと違って近代的なビルもある。といってもここも昔ながらの石造りの建物の方が多い。市庁舎でさえそうだ。

広場には鳩の群れがいる。首振りのしぐさ、人がパンくずをあげるところなど、日本と同じだ。色がちょっと違って、緑とピンクが見られない。種類が違うのだろうか。

公園のような場所を歩いているとviareality というQRコードが描かれている看板を見つけた。おそらく専用アプリのカメラで読むと何かが浮かびあがるのではないか。

いよいよ醸造所の見学だ。我々を含め25人ほどの集団に1人の引率者がついた。解説は英語。見た目や聞こえてくる言葉からして、皆の国籍は多様なのだろう。東洋人らしき人は10人ほど。この見学では醸造所の歴史と設備を知ることができた。

醸造所は1800年代中ばに誕生。それ以前は酒屋ごとに醸造所があり、同じ町の同じ種類のビールといっても味はそれぞれ異なった。また、同じ店であっても品質にはばらつきがあった。発芽、発酵、材料や在庫の貯蔵など、多くの工程において温度管理が重要となる。昔は、冷やす際に雪をかきあつめて地下の専用部屋に放りこみ、そこに大樽を並べた冷蔵室を作った。現在ではより大量のビールを効率的に作るための設備を備えている。量産、管理、再利用のためのテクノロジーは大きく進歩したが、材料や温度などのレシピは昔から変わっていない。…とのこと。

実際の新旧の設備を見学者用の通路から見ることができた。

現在の工場。これはビンを再利用するための工程かな。

近代の設備。

現在の設備。

最後に、冷蔵室…というか地下洞窟のような場所を進むと、樽から無濾過のビールを振る舞われた。樽製の立ち飲み用テーブルまで用意されている。これがうまい!店で飲む樽生や缶のものとは別物だ。うまいが…ここはとても寒い。マイナス何度なのだろう。味わう余裕があんまりない。引率者は「このビールには豊富なビタミンが含まれています。アルコール度数は4.4パーセント。1日1杯までにしてくださいね。」と、高橋名人のようなことを言っていた。しかしこれは2杯目だ。見学はここまで。冷蔵庫から解放された。

時刻は15:00。醸造所併設の店で昼食をとる。アヒル料理を注文。うまい。1皿で満腹に。ホテルに戻って21時を過ぎても全く腹はすかず、2日連続で夕食を抜くことになった。

4日目: ドイツ - ドレスデン

プラハ中央駅から Euro City に乗ってドレスデン(ドイツ)へ。電車で別の国へ行くのは初めてのこと。パスポートはチェックされなかった。 ドレスデンはドイツの東部、チェコとの国境近くに位置する街だ。 これまでにチェコで見た光景とは全く異なり、ショッピングモールやビルが並んでいる。街だ。

ドイツの通貨はユーロだ。もはやコルナは不要。コルナの時と同じくクレジットカードを入れるとユーロの現金を出してくれる機械を使う。

言わずもがな、ドイツもビールの国だ。早速一杯。これにて、ドイツでドイツビールを飲むという実績を達成した。 メニューを見るとチェコとは明らかに物価が異なる。このとき、1ユーロは約130円。 日本円の感覚でいえば、日本と物価はあまり変わらないという印象だった。

連日のパーティ行軍で疲れているのと、この日はさしたる予定も無かったのもあって単独行動することにした。 散歩をしていると馬が目に入る。ファイアーエムブレムパラディンだな、くらいしか感想が出てこない。

川がある。エルベ川という名だそうだ。 水が流れている様というのはいい。心が洗われる。 河原にはタンポポがたくさん咲いていた。西洋に生えているのだからセイヨウタンポポだろう。 河原に生えている雑草は日本とは異なる。具体的に言うと、この河原には笹、ドクダミヨモギセイタカアワダチソウが存在しない。

河原ではこのような積まれた石が見られた。 ほか、平たい石を手首のスナップを効かせて投げ、水面を跳ねさせる子供、ピクニックをする人々、釣り人、泳ぐ人が見られた。 河原でやることは日本と変わらない。

河原をあてもなく歩いているとビアガーデンが目に留まった。 ざっと100席はあるだろうか。パラソルと共にテーブルと椅子が並んでいる。 平日の18時ごろ、客は全部で20人ほどだった。 ホフブロイヴァイス500mlで6ユーロを注文。うちデポジットが2.5ユーロ。 飲み終えてグラスを返却すると2.5ユーロ戻ってくるということだ。このルールは日本のオクトーバーフェストで習った。

晩ごはん。 おっぱいのような炭水化物が添えられた肉料理だ。

圧巻のビール売り場。この5倍はある。

こうして初めてのドイツを過ごした。

5日目: ドイツ - ドレスデン

この日の予定はエルベ川の船に乗った後、ザクセンのスイスと呼ばれる切り立った崖に登り、プラハに戻るというものだ。

エルベ川の船には水上バスに相当する交通手段と、一定の距離を周る遊覧船の2種類がある。

当初の予定ではザクセンのスイス(上流)まで船で行く予定であった。 しかし、この日は水位が足りないため上流へ行く便が出ていないという。 仕方ないので、遊覧船に乗って船気分を補充してから電車でザクセンのスイスまで行くことにした。

遊覧船を待つ中、すずめのような鳥が目に留まった。 私が座っているすぐ目の前に降り立ち、砂浴びをしている。日本のすずめよりも警戒心が薄いようだ。

ドレスデンから出発し、上流へ向かう遊覧船からの風景は時が過ぎるごとに郊外の様相を表す。 遊覧船の乗船時間は90分。ある程度上流へ行ったらドレスデンへ戻る。 乗客数は座席数に対して8割ほどだっただろうか。まぁまぁにぎわっていた。

上流の川岸ではこのような作物を育てている様が見られた。何の作物なのだろうか。

遊覧船の90分を終え、ドレスデン駅からチェコ方面へ電車で移動。Kurort Rathen (クラウト・ラーテン)という駅へ。 ここがザクセンのスイスに登る玄関となる駅だ。見ての通り、田舎の駅。

駅から登山口に辿り着くためにはエルベ川渡し船に乗る。乗船料は往復で2ユーロだったか?…忘れた。 渡った光景がこの画像だ。まるで御殿場の時の栖のように見えた。御殿場高原ビールもドイツスタイルのビールだからか、リゾート地の見た目まで似せているのだろうか。

ドイツにある時の栖には BASTEI と書かれた看板があった。日本人の私にはバス停に見える。 こんなドイツの田舎に、しかも山にバス停があるのだろうか?という疑問が浮かぶが好奇心のもとに信じて進むことにする。

看板の通りに進むと登山口に辿り着き、その登山口を登ってゆくと再び BASTEI の看板があった。

30分ほど登ると Bastei-Jubelfeier と書かれた岩が見えた。 そして、ここがザクセンのスイスと呼ばれる場所のようだ。着いた。 実は、この岩山に掛かる石橋を前日の車窓から見ていた。これに違いない。ようやく着いたのだ。 ようやくというのは…ここに着くまでにかなり疲れているからだ。登山口から石橋に着くまでにはおよそ40分かかった。 気温は約30度。猛暑の日本からヨーロッパに来たというのに避暑は失敗である。しかも、道中の傾斜はきつい。 道は石や木で整備されており、軽装で登れるとはいえ、きつい。

苦労して登ったザクセンのスイスからエルベ川を見下ろす。美しい。そして恐ろしい光景だ。とても高い。

そして、この日はプラハへ戻る。Kuraut Rathen 駅からプラハ中央駅…ではなく Bad Shandau 駅へ。 Bad Shandau は特急が止まる駅だ。次の特急が来るまで1時間以上あるが、それでも各駅停車でプラハに行くよりは早い。 ここで特急に乗り換えることにした。 特急が止まる駅ならば何かしら楽しめるものはあるだろう…と踏んだのだが、何も無かった。 結局、駅の中にあるカフェで時間をつぶした。時間が過ぎるのが遅い。 カフェではエーデルピルス(ビール)飲んだ。日本でも飲んだことのあるビールだ。 苦味の強いビールのはずなのだが、このときは優しい味に感じた。

そして、プラハ行きの特急に乗った。

プラハに到着するまで心は無であった。

希望は夕食のみ。 ホテルにチェックインして少々休憩した後、ウ・フレクというレストランに入った。

メニューには肉料理が並ぶ。150g, 200g という量の数字が見える中、600g という文字が目に留まった。 pork knuckle と書かれていた。豚足だ。骨まで含んでいるから 600g なのだろう。 「チェコに来て豚足か?」という気持ちと「ただの豚足ではない!チェコの豚足だ!」という気持ちがせめぎ合う。

迷った結果、豚足を注文した。皮はムチムチ、肉はホロホロ。付け合わせの西洋わさび、ペコロス、唐辛子のようなパプリカもいい。 黒いビールは4種類の麦芽を使った店ならではのものだそうな。旅の中でこれが一番おいしかった。

6日目: フィンランド - ヘルシンキ

残りの日はフィンランドで過ごす。プラハ空港からヘルシンキへ。 入国審査が無かった。

ヘルシンキ空港からヘルシンキ中央駅へ電車で向かう。 HSL というモバイルアプリで電車のチケットを買うことができる。 空港に着いてから Google Play でアプリをインストールし、クレジットカード情報を登録すると、すぐ使えるようになった。 このチケットは一定の地域内、一定の時間内に電車に乗る権利を示す。 例えば、ヘルシンキ内の電車に80分間乗るチケットというものがある。この80分間は何回でも乗ることができる。 そして、この国の電車にも改札というものは無いようだ。 駅員にチケットを提示するよう求められたら、このようなアプリの画面を出せばよい。 有効時間内であればカラフルなアニメーションが表示される。期限が過ぎるとその旨と共に新しいチケット買うボタンが表示される。

アプリの他に券売機もある。が、アプリの方が安い。https://www.hsl.fi/en/tickets-and-fares

さて、この旅行で行った3か国ともに改札が無いので、日本の方が珍しいのか?とも思えてきた。 なぜ改札が無いのだろう?と疑問に思ったところ、もしかして犬と自転車が理由ではないかと浮かんできた。 これらの3か国の電車では犬を連れていたり、自転車を持ち込む乗客が日本に比べて多いように見えた。 犬や自転車と一緒に電車に乗るには改札というものは邪魔でしかないのだ。


ヘルシンキ空港には Lentoasema という駅があり、そこからヘルシンキ中央駅 (Helsingin päärautatieasema) へ向かう。 そして、HSL のアプリで選ぶ地域名は Helsinki ではなく Regional だ。 なぜなら、ヘルシンキ空港のある地域はこのアプリの選択肢にある Helsinki ではなく Vantaa だからだ。 そして、Vantaa 地域と Helsinki 地域の両方に乗ることのできるチケットを買う際の地域の選択肢が Regional なのだ。 ということを同行した友人が教えてくれた。事前に調べていたのだろう。 私だったら「ヘルシンキ空港からヘルシンキ駅なんだから地域名も Helsinki だろ!」という風に間違えるだろう。 むしろ初めての人は絶対間違えるんじゃないのか?

ヘルシンキ中央駅から外に出ると太陽が輝いていた。暑い。30度だ。 ちょうどこのとき日本では地域によっては40度もある猛暑だったので、私は北欧に避暑しに来たと思ったのだが、間違いだったようだ。

暑さに加え、連日の飲酒、前日の登山、そしてフライトで体は疲れていた。 なのでこの日は特に観光せず休むことにした。ホテルチェックイン時点で16:00。 部屋に Chromecast 機能のあるテレビがあったので、いつも見ている YouTube チャンネルを見た。

そして夕食。肉が続いたので魚料理を食べることにした。 レストランまでは路面電車で行く。そう、ヘルシンキにも路面電車があった。 路面電車が珍しい日本からすると、プラハドレスデンヘルシンキ、3都市3か国全てに路面電車があるというのは新鮮だ。 Google マップで経路を調べることもできる。路面電車のチケットは電車と共通であり、HSLのアプリで買うことができる。いいね。

"パイクパーチのマンネルヘイム元帥風" を注文。パイクパーチというのは白身の淡水魚らしい。 きのこの香りがするしつこくないホワイトソースは揚げた白身にとても合っていた。 マンネルヘイム元帥風とは何なのかはわからない。日本語のメニューにそう書いてあるのだ。 お店のサイトにも日本語のメニューが載っている。 レストランに日本語のメニューがあるのはこの旅で初めてのことだ。日本人の客が多いのだろうか。

量が多かったので、腹ごなしのためにホテルまで歩いて帰ることにした。 途中、それなりの広さの公園があり、芝生に座って本を読んだり、お酒?を飲んだりする様子が見られた。 この写真は 21:00 ごろに撮影したものだ。明るい。明るさだけは旅の間ずっと慣れなかった。

この日の最後の楽しみはサウナだ。 フィンランドと言えばサウナ。サウナはフィンランド発祥、フィンランド語なのだ。 ホテルの上の階に宿泊客用のサウナがあり、性別ごとに部屋が分かれている。 サウナのある階に着き、うろうろしていると、扉からホカホカになったおばさんが出てきた。 私を見るなり「Sauna~? :)」と話しかけてきた。とても機嫌がよさそうだ。 男性用のサウナの場所を聞くと親切に教えてくれた。サウナは人を優しくするのか。

サウナの扉を開くと誰もいない。私だけだ。 6畳ほどの脱衣所があり、すぐ隣に4畳ほどのシャワー室があり、一番奥に2畳ほどのサウナがある。 はて、サウナのマナーは何なのか…日本の大浴場とは異なり水着で入るのではないか…と思い、シャワーを浴びた後にバスタオルを巻いてサウナに入った。 そのすぐ後、フルチンのおっさんが豪快にシャワーを浴びてサウナに入ってきたので、マナーのことはどうでもよくなった。

7日目: フィンランド - ヘルシンキ

旅の終盤。丸一日観光できるのはこの日が最後だ。 パロラ戦車博物館へ行った後、街のサウナへ行くことにした。

この日も晴れ。暑い。道中は水が必要だ。 フィンランドの物価は日本からすると高く感じる。特に飲み物は高い。500mlの水やジュールは2~2.5ユーロだ。 そして地球の歩き方によるとフィンランドの水道水は飲むことができておいしい。 なので、ホテルで空のペットボトルに水道水を入れて持っていくことにした。 実際、飲んでみるとおいしい部類だった。

まずはヘルシンキ中央駅からハメーンリンナ駅(Hämeenlinna) へ特急列車 Inter City で向かう。 この電車は HSL の管轄ではなく VR の管轄だ。 日本に JR があるように、フィンランドには VR があるのだ。 といっても、V なんとか Railway ではなく、Valtionrautatiet らしい。

ヘルシンキ中央駅から発車して間もなく電車が止まってしまい、フィンランド語のアナウンスが流れた。 英語のアナウンスは流れない。何が起こったのかわからずボーッとしていると、 トラブルがあったので乗り換える必要があることを近くのおばさんが教えてくれた。 サウナは人を優しくするのか。

結局、ハメーンリンナ駅までは1時間半ほどかかった。 そこから戦車博物館まではタクシーで20分ほど。

そういえばフィンランドのタクシーアプリってのもあるんだろうかと思って探したところ、 Valopilkku というものがあることがわかった。 でも利用するには SMS メッセージを受け取る必要があり、海外旅行用のデータ通信 SIM ではできないようだ。がっかり。

それにしても、ヘルシンキに泊まっているのに2時間かかる場所へ観光に行くとは何かおかしいのではないか。 日本で例えるなら、羽田に着いて、品川に泊まって、伊東に日帰りで行こうってところだと思う。 そんな旅行者はいるのだろうか。

戦車博物館には戦車がいっぱいある。30台以上あったのではないか。 博物館とはいっても屋内だけではない。半分以上は屋外にある。戦車は外で乗るものなのだ。 戦車によっては中に入ったり、上に乗ったりすることができる。 中はとても狭い。上に乗ると結構高い。

戦車の横には解説文が書かれている。全長、速度、砲弾、乗員数などのスペック、製造国、使用された年代など。 ハメーンリンナ駅から博物館まで運んでくれたタクシーの運転手は「多くはロシアからの借り物さ」と言っていたが、 確かにソビエト製と書かれたものがほとんどだ。 解説文にはQRコードが書いてある。これをスマホで読むと、その戦車が動いている YouTube の映像を見ることができる。 Keycode というサービスであり、Ebax というフィンランドの会社が運営しているらしい。

こちらは外にある戦車の一つ。教養のない日本人なら「マジ卍」とでも言ってしまうのではないか。私はうっかり心の中で言ってしまった。

戦車の次はサウナ。パロラからヘルシンキまで2時間近くかけて戻る。 Löyly という施設だ。 ロウリュと言えば日本人でも聞き覚えのある方もいるのではないか。 サウナ内にある熱された石に水をかけると、水蒸気がサウナ内にたちこめる。あれのことだ。

Löyly はヘルシンキ南部の海に面した場所にある新しい施設だ。 レストランが併設されており、海辺で食事やお酒を楽しむことができる。 この日は (いつも?) DJ がいて、ゆったり目のハウスが流れていた。

サウナは2時間の予約制。今回は20:00-22:00の枠に入ることにした。 脱衣所で水着に着替える。水着はレンタルすることもできる。このときは6ユーロでレンタルした。 中は幾つかの部屋に分かれている。全ての部屋は性別によらず共通だ。 1つ目の部屋は中央のたき火を囲んでゆっくり座れる場所。無料で水を飲むことができる。 その奥にシャワーのある部屋がある。バケツから冷水をかぶることもできる。

シャワーと冷水の部屋からは2つのサウナにつながっている。1つは明るく、もう1つは暗い。 どちらも最大で15人くらい入れるほどの大きさだ。 どちらの部屋でもサウナストーンに水をかけてロウリュを楽しむことができる。 水をかけると部屋はたちまち熱くなる。これまで日本で体験したどのサウナよりも熱かった。 暗い方のサウナでロウリュをやった後に階段を降りるときは慎重になる必要がある。

水をかける回数について "One or two?" "Three !?" "OKAY!!" といった会話がなされていた。フィンランド語ではなく英語。 外国人観光客も多いであろう施設だから英語なのだろうか。 実際、聞こえてくる言語は様々だった。 エモさあふれるリア充施設というためか比較的若い客が多かった。20~40歳といったところだろうか。

この施設からは海に入ることができる。プールにあるようなステップも設置されている。 冬でも入るらしい。夏の今なら楽勝ッッ!!!!…これにて、フィンランド湾で泳ぐ実績を解除した。 特にきれいな海とは言えないが気持ちいい。仰向けで浮かぶと心が落ち着く。 ステップを降りて海に入った瞬間からもう足がつかないので注意。泳げない人がうっかり入るとあぶないかも。

サウナで熱くなった後に海に入る。サウナで熱くなった後に冷水をかぶる。 水を補給してたき火を眺める。またサウナに入る…。 これはものすごくくせになる。この文を書いている今でも再び行きたい気持ちが高まってくるくらいだ。

サウナをあがり、海を見ながらビールを一杯。22時前は夕日が出ている。 リーチ、一発、フィンランド、サウナ、海水浴、海辺、パラソル、夕日、ビール、ハウスDJのダブル役満だ。 こうして Löyly では2時間ほど過ごした。

まだ夕食はとっていないので、23:00 まで営業している Juuri へ行った。 生のトラウトがものすごくおいしかった。それしか覚えていない。 サウナで優勝したのにまだ優勝できるのかと思った。

帰り道。23時過ぎだっただろうか。エモすぎる。もしデートだったら即落ちだろう。

8日目: 帰国

船で日本に帰ります。

といきたい気分だが帰りは飛行機だ。 離陸時刻は17時台なので少しだけ観光する。 行先はスオメンリンナ要塞。ヘルシンキの港から船ですぐの島だ。 この乗船チケットも HSL のアプリで買うことができる。地下鉄、路面電車、船、全部共通チケットだ。

島に着くとパンフレットが置いてある。日本語のもあった。

要塞というだけあって大砲が置いてある。この岸からも撃ったのだろうか。

要塞とはいっても、島を歩いてみた感想としては兵器も散在しているリゾート地という印象だ。

要塞全体をじっくり観光する時間は無いのでヘルシンキ港に戻ってきた。たくさんの露店があり、にぎわっている。

空港への電車。NULL発、NULL行きだ。

空港で旅行最後の一杯。

こうして初めてのヨーロッパ旅行を終えた。 思い切って行くことにして本当によかった。

NUC6i7KYK

およそ9か月、プライベートではMacbook Airのみを使っていましたが、スペックの良いWindowsマシンが欲しくなり、NUC6i7KYKを買いました。4コアのCPUが乗っていて、メモリとSSDを自分で足すというベアボーン形式のPCです。メモリは32GB、SSDは512GBのものを2つ使ってRaid1にしています。ティッシュ箱よりも小さい筐体ですが、まぁまぁのスペックです。組み立てはとても簡単で、ふたを開けて、メモリとSSDを刺して、ふたを閉めるだけです。*1

最初は NUC7i7BNH にしようかと思っていましたが、意外にもCPUの性能はこちらの方が高そうだと判断して決めました。

f:id:masskaneko:20170709221829j:plain

以前のデスクトップマシンも小型のベアボーンでした。もうデスクトップPCのためにタワー型のケースを使うことは二度と無いという感覚を持っています。 スマートフォンRaspberry Pi 3のスペックを考えるとなおさらそう感じます。

Windows 10 はクラシカルなパッケージ版を買いました。USBメモリに入っているものです。 無線LANWindowsのインストール中につながり、USBサウンドデバイスとして使っているRoland Octa-Capture のドライバもUSB接続したら自動的に入りました。 Raidで少しつまづきましたが(後述)他は楽なものでした。

冷却するためのファンの音は小さいとは言えません。筐体が小さい分、静音ではないのでしょう。

あんまり気にしてませんがベンチマークもとってみました。描画性能は弱いかもと思いましたがDQXは快適に遊べるようです。*2

f:id:masskaneko:20170706235550p:plain

f:id:masskaneko:20170706235542p:plain

Raid

Raid を使うには Windows をインストールする前に BIOS の設定をする必要があります。 また、WindowsRaidドライバーのインストールが必要です。Intel NUCの公式サイトに手順が書いてあります。

www.intel.co.jp

ところが、最初はRaid用ドライバーの入手方法がわかりませんでした。上記サイトには2017年7月5日時点で以下のように書いてあります。

Where do you want to install Windows?(参考訳:Windows のインストール場所を選択してください) 画面に以下が表示されたら。
USB フラッシュデバイスの、インテル®ラピッド・ストレージ・テクノロジー・ドライバー: rst_f6floppy_win7_8.1_10_64_14.8.0.1042.zip です。

ドライバーのダウンロード先へのリンクが貼ってあればよいのですが、ありません。 rst_f6floppy_win7_8.1_10_64_14.8.0.1042.zip というファイル名でIntel公式サイトを検索しても、Googleで検索しても出てきません。

Intel のサポートページからドライバーとソフトウェアのページに行き、製品名の入力フォームに NUC6i7KYK を入力すると、この製品のドライバー一覧が出てきます。 そこで “Raid” で検索すると目的のRaidドライバーが見つかります。2017年7月5日時点のパッケージ名は RST_Win7_8.1_10_15.2.0.1020_f6flpy-x64.zip です。

downloadcenter.intel.com

あとは手順通りです。

*1:Corei7-6770HQ, Intel SSD 600p Series SSDPEKKW512G7X1 512GBx2(Raid1), Crucial CT2K16G4SFD8213 16GBx2

*2:1920x1080, 標準画質で測定