haneuma.log

生きるのをがんばりたい

自宅に食洗機を導入した

はじめに

前からずっと欲しがっていた食洗機を買った。

食器洗い乾燥機 NP-TCM4 商品概要 | 食器洗い乾燥機/食器洗い機 | Panasonic

家事がとにかく嫌いなので、なるべく機械化していく試みとして導入した。

よかった点

食器を入れておけば洗浄されるのは、思ったより体験がよかった。 洗うぞ!と決意するより、詰めるぞ!と決意するほうがコストが低いので、気軽に食器を洗えるようになった。

手が荒れないのも嬉しい。 自炊をして毎日食器を洗うような生活をしていた頃は、ずっと手が荒れていた。 ゴム手袋をすれば手荒れは防げるけど、蒸れるのであまり気が進まなかった。 そういう問題が解決したのはめでたい。

わるかった点

食洗機はうるさいと聞いていた。確かに洗濯機みたいな音がする。 いつ食洗機を回すかは自分で制御可能なので、うるさくても良い時間に回すと良さそう。

食器をきれいに詰めるのが案外難しくて、少し面倒を感じる。慣れれば多少解決しそう。

設置

設置場所の都合上、電源コードを延長する必要があった。 食洗機は接地が必要な機器なので、秋葉原の電気街まで3ピンプラグのアース線が入った延長コードを探しに行った。 自分では見つけられなかったのでお店の人に聞いたら、普通に出してくれた。自作するはめにならなくてよかった。かまぼこ型のモールも出してくれた。

分岐水栓は説明書どおりに接続できた。ただ、六角レンチが合わずに蛇口の頭が外せないトラブルが発生したので、3日ほど設置作業を延期するはめになった。

工具が揃っていれば、設置作業はそれほど難しくなかった。

終わりに

食洗機はいいぞ

CliftonStrengths テストを受けた

追記 2020-08-25: 資質の説明の日本語版があったので、引用先をそちらに変更しました。また、残りの順位についての記事のリンクを追加しました。

はじめに

CliftonStrengths テストを受けた。

www.gallupstrengthscenter.com

CliftonStrengths テストは、質問に対する[そう思う・どちらかと言えばそう思う・どちらでもない・どちらかと言えばそう思わない・そう思わない]といった回答から受験者の強み=資質を分析するツールである。資質(theme)は4分類・34種ある*1

テストの結果から上位5つの資質を見れるライセンス($19.9)と、全ての順位の資質が見れるライセンス($49.99)、上位5つを見てから全ての順位の資質を見るためのライセンス($39.9)、の3つがある。

自分の思考や行動の傾向を探るのが好きで自分のことはなんとなくわかっているつもりでいたので、上位資質5つだけ見てみることにした。やすいし。

結果

  1. 内省 - Intellection (戦略的思考力)*2

    「内省」の資質が高い人は、知的な活動に多くの時間を費やします。内省的で、知的な議論が好きです。

  2. 着想 - Ideation (戦略的思考力)*3

    「着想」の資質が高い人は、新しいアイデアを考えるのが大好きです。見た目には共通点のない現象に、関連性を見出すことができます。

  3. 学習欲 - Learner (戦略的思考力)*4

    「学習欲」の資質が高い人は、学習意欲が旺盛で、常に向上を望んでいます。結果よりも学習すること自体に意義を見出します。

  4. 指令性 - Command (影響力)*5

    「指令性」の資質が高い人は、存在感があります。状況の主導権を握り、決断を下します。

  5. 個別化 - Individualization (人間関係構築力)*6

    「個別化」の資質が高い人は、一人ひとりが持つユニークな個性に興味をひかれます。異なるタイプの人たちの集団をまとめ、生産性の高いチームを作ることに長けています。

ライセンスに含まれる電子書籍や自身の資質に関するレポートに詳しいことが書いてあるので、各自参照してください。

感想

戦略的思考力が強いのは予想してたけど、指令性と個別化は意外だった。

言われてみれば自分に主導権が無い状態を強く嫌うので、指令性の資質に納得できる。「自分の意見を主張するのに迷いがなく、意見の対立に怯えない」というのも当てはまる。社会性がない、協調性がない、と言われるの、これのせいでは…?

個別化は自分を特性のある個として見てほしいとも言える。わかる。でかい主語で雑にくくられると「は?」ってなる。

内省と着想、学習欲は妥当っぽい。 頭使ってゲームするのが好きで、プレイについてあれこれ考えたり、人と議論したり、そういう過程自体を楽しいと思っている。 負けたらちょっと悔しいけど、勝ち負けに頓着しないところがある。なので、自分より十枚くらい上手なプレイヤーと遊ぶのが一番楽しい。仕事も同様かもしれない。

開発/研究チームのリーダー(チームメンバー全員僕より優秀)みたいな人になると強そう。ただ決定的な欠陥として、結果に頓着しないところがある。自身の資質に関するレポートにも、アウトプットせよ、と書いてあった。

まとめ

意識していなかった資質が見れてよかった。残りも見たくなった。今度ライセンス購入します。

追記 2020-08-25: 残りはこちら。 haneuma0628.hatenablog.jp

仕事のがんばり具合を記録して可視化する(記録する編)

はじめに

これは Yahoo! JAPAN 18 新卒 Advent Calendar 2018 の21日目の記事です。

みなさん仕事がんばってますか?自分は新卒らしくがんばっています。がんばっているので、がんばり具合を記録して可視化します。

やりたいことはだいたいこういうことです。 pokutuna.hatenablog.com

ざっくり書くと:

  • 開いているウィンドウのログを記録する
  • グラフにする

ということをやります。どんなウィンドウを開いていたかを時系列に並べてグラフにすれば「10時から1時間くらい Emacs 開いてるからコード書いてるんだな、がんばってるっぽいぞ!」というのがわかります。これががんばり具合です。

セキュリティ的に、社外秘を含む情報を扱う端末のログの外部送信は問題があるので、このような取り組みを社内の環境で行えるような仕組みを自分で作ります。今回は記録するところについて書きます。

できたもの

社用 PC が Mac なので Cocoa でアプリケーションを作ります。Swift は書いたことがないのでインターネットを駆使してがんばります。がんばると、このような JSON が獲得できます。

[
  {
    "kCGWindowAlpha" : 1,
    "kCGWindowLayer" : 0,
    "kCGWindowMemoryUsage" : 1128,
    "kCGWindowSharingState" : 0,
    "kCGWindowOwnerPID" : 39418,
    "kCGWindowNumber" : 154478,
    "kCGWindowOwnerName" : "Xcode",
    "kCGWindowStoreType" : 1,
    "kCGWindowBounds" : {
      "X" : 135,
      "Height" : 877,
      "Y" : 23,
      "Width" : 1305
    },
    "kCGWindowName" : "AppDelegate.swift"
  },
  {
    "kCGWindowAlpha" : 1,
    "kCGWindowLayer" : 0,
    "kCGWindowMemoryUsage" : 1128,
    "kCGWindowSharingState" : 1,
    "kCGWindowOwnerPID" : 2160,
    "kCGWindowNumber" : 151228,
    "kCGWindowOwnerName" : "Google Chrome",
    "kCGWindowStoreType" : 1,
    "kCGWindowBounds" : {
      "X" : 170,
      "Height" : 62,
      "Y" : 92,
      "Width" : 366
    },
    "kCGWindowName" : ""
  }, ...

開いているウィンドウの名前と、どのアプリケーションから起動されているかがわかりますね。おおむね重なり順も合っているはずですが、雑に作ったので怪しいかもしれない。 JSON が得られたので、Elasticsearch + Kibana で可視化できそうな感じがしますね。

しくみ

常駐の Cocoa App で5秒ごとにウィンドウログ取得して、JSON 形式で保存させています。XCode の気持ちになって、しかるべき場所にこのようなコードが書いてあると思ってください。

func applicationDidFinishLaunching(_ aNotification: Notification) {
    Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(self.saveLog), userInfo: nil, repeats: true)
}

@objc func saveLog() -> Void {
    let filename = self.getDocumentsDirectory().appendingPathComponent("\(NSDate().timeIntervalSince1970).json")

    let windowList = self.getWindowList()
    let data: Data = try! JSONSerialization.data(withJSONObject: windowList!, options: [])

    do {
        let windowInfoList = try JSONDecoder().decode([MyWindowInfo].self, from: data)

        let encoder = JSONEncoder()
        encoder.outputFormatting = .prettyPrinted
        let encoded = try! encoder.encode(windowInfoList)

        do {
            try String(data: encoded, encoding: .utf8)!.write(to: filename, atomically: true, encoding: String.Encoding.utf8)
        } catch {
            print(error)
        }
    } catch {
        print(error)
    }
}

getWindowListMyWindowInfo あたりが大事なので、詳しく説明します。

ウィンドウリストを取得する

CGWindowListCopyWindowInfo() でさっくりウィンドウリストが取得できます。CFArray で結果が返ってくるので、外側は NSArray にキャストします。中身は NSDictioanry とします。.optionAll ですべてのウィンドウを取ってくると常駐アプリケーションや Desktop プロセスなどのがんばり具合に寄与しないものが取れてしまうので、適当にフィルタします。高さが23以下のウィンドウは常駐アプリケーションで、layer が 0 より小さいのは Desktop プロセスとかその辺です。用途によっては自作のフィルタではなく、CGWindowListCopyWindowInfo() のオプションでいい感じに必要なウィンドウだけ取得することもできます。

func getWindowList() -> [NSDictionary]? {
        guard let windowList: NSArray = CGWindowListCopyWindowInfo(.optionAll, kCGNullWindowID) else {
            return nil
        }

        let swiftWindowList = windowList as! [NSDictionary]

        let filteredWindowList = swiftWindowList.filter { (windowIndo: NSDictionary) -> Bool in
            var flag: Bool = true

            // Bounds filter
            let bounds = windowIndo[kCGWindowBounds] as! NSDictionary
            let height = bounds["Height"] as! Int
            if height <= 23 {
                flag = false
            }

            // Layer filter
            let layer = windowIndo[kCGWindowLayer] as! Int
            if layer < 0 {
                flag = false
            }

            return flag
        }

        return filteredWindowList
    }

JSON に変換する

getWindowList() で得られるのは NSDictionary の NSArray なので、JSON 文字列に変換していきます。 JSONSerialization -> JSONDecode -> JSONEncode という手順でやります。 Serialization で潰したデータを一旦 Decode して、人間に優しい表記で Encode する感じです。

平たく書くとこうなっています。例外の気持ちになって、しかるべきコードに読み替えてください。

let windowList = self.getWindowList()  // -> [NSDictionary]

// windowList を1行に潰す
let data: Data = JSONSerialization.data(withJSONObject: windowList, options: [])

// ねじ込む
let windowInfoList = JSONDecoder().decode([MyWindowInfo].self, from: data)

// 人間に優しい表記にする
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let encoded = encoder.encode(windowInfoList)
let dst = String(data: encoded, encoding: .utf8)!

Decode するときは Codable を使います。潰したデータを任意の構造体にねじ込めます。便利ですね。

struct MyWindowInfo: Codable {
    var kCGWindowAlpha: Double
    var kCGWindowBounds: MyWindowBounds
    var kCGWindowIsOnscreen: Bool?
    var kCGWindowLayer: Int
    var kCGWindowMemoryUsage: Int
    var kCGWindowName: String?
    var kCGWindowNumber: Int
    var kCGWindowOwnerName: String
    var kCGWindowOwnerPID: Int
    var kCGWindowSharingState: Int
    var kCGWindowStoreType: Int

    struct MyWindowBounds: Codable {
        var Height: Int
        var Width: Int
        var X: Int
        var Y: Int
    }
}

ログについて

ログは溜めて使ってこそ価値がありますね。弊社もそのようにやっています。そういうわけで、運用にあたって調べておきたいことを調べておきます。

容量・転送

常駐アプリケーションで5秒毎にテキストデータを生成しているので、ログが気になります。見てみると1ファイルあたり 44KB でした。 1時間で 60 * 60 / 5 * 44 = 31680KB になります。32MB くらいですね。今月の必要労働時間は147時間15分らしいので、1ヶ月で (147 * 60 * 60 + 15 * 60) / 5 * 44 = 4664880KB になります。4.7GB くらいですね。 保存期間を1年間とすると 56GB くらいになります。現実的な容量ですね。

また、ログの保存と可視化のために、適当なサーバに定期的に転送する必要があります。 1時間ごとに転送するとして 32MB くらいなので、現代のインターネットなら問題なさそうです。 社内のネットワークを計測したところ、7.80MB/sec でした。5,6秒あれば転送できそうです。

メモリ使用量

だいたい 12MB くらい食べています。社用 PC のメモリは 16GBなので、常駐させても問題なさそうです。

セキュリティ

ウィンドウ名に社外秘情報が含まれる可能性があるので、生ログは社内にしまっておく必要があります。

まとめ

いつ、どのくらい、どんなウィンドウ(アプリケーション)を開いていたかのログを使って、仕事のがんばり具合を記録・可視化する取り組みについて書きました。 この記事では Cocoa でロガーを作るところと、ログの保管について少しだけ検証しました。可視化するところは作業中なので、また別の記事に書きます。

Swift は初めて書いたので、記事内のソースコードについてコメントがあればぜひお願いします。また、このプログラムは社内の GHE に置いているので、興味のある方は入社して一緒にがんばり具合を記録しましょう。

以上、Yahoo! JAPAN 18 新卒 Advent Calendar 2018 の21日目の記事でした。

参考

第51回 情報科学若手の会に参加しました

はじめに

wakate.org

今年も情報科学若手の会に行ったので書きます。こちらは参加者の気持ちで、幹事の気持ちは反省会後にまた書きます。

過去の参加記録はこちらです。

今年で参加も4回目になるので、感慨深いかもしれない。今年は気づいたら終わってた気がしました。楽しい時間は終わるのが早いというので、そういうことですね。気が抜けているだけかもしれないので、気合を入れたい。

発表の感想

招待講演と若手特別講演

招待講演はコンテナーデータセンターを個人で作ったお話を、宇田さん。

「データセンターを個人で作った」という文字列が強力なので何を聞いても面白く、とても楽しい時間だった。「コンテナー即売会」「いかにもコンテナーを置くためのようないい物件」「土地が買えてしまったので後戻りできなくなった」がお気に入りワードベスト3です。 普段キーボードを叩いて暮らしているので現実空間に存在するものを作る話は夢があるし、遠い存在だと思っていたデータセンターに親近感がわいて良かった。ラック3台くらいなら単相電源で良いのか〜なるほど〜と思った。質問者が皆「自分もデータセンター欲しくなりました、」という枕詞をつけて質問を始めており、やはりこれは情報科学の人間の夢なんだと思う。僕もほしいので、とりあえず家で雑になっているラズパイをどうにかするところから始めたい。

若手特別講演はプログラムの難読化手法について、黒米さん。

難読化というとソースコードをややこしくするだけだと思っていたけれど、ロジックの難読化や論理式の複雑化など、色々なアプローチがあって興味深いと思った。 一番面白かったのは、プログラムの高速化の手法を難読化の方法として用いるところ。他のセッションでちょうど高速化はコードが複雑になって辛いという話をしていたので、ふつうのソフトウェア開発で欠点になるところを活用してしまうのは皮肉っぽい。活用する側が攻撃側なので欠点といえば欠点なのだけど。SATソルバの話なども出てきて、プログラミング言語の色々を使って攻防が繰り広げられているのだあ、と思った。あとはやっぱり機械学習が使われてきており、今後もっと使われていくという見解を得た。後輩がそのようなことをやっていて、構文木をデータとして入れて云々という内容だった気がするので、今度会ったら詳しく聞こうと思った。 聞いてて面白いけど詳しく理解できなかったことはとても残念だったので、精進したい。

一般/ショート

情報科学のことならなんでもOKという趣向で発表を募っているので、毎年様々な分野の深い話を聞けて良い。 トピックスはだいたいこう。

プログラミング言語、セキュリティ、インフラの話が多かった気がする。同じ人を壇上で3回くらい見かけるのを2回くらいやった気がするので、そういう関係かもしれない。

印象に残った感想を述べていきます。

  • 非同期処理の手法がとっちらかりすぎててすごい

  • Lispは神言語

  • やはり一度コンパイラを作りたい
  • サイバー攻撃の可視化には学生時代の研究室の関係上一家言あるので(以下略)
  • ポートを家の扉に例えるのはかわいかった
  • 極力人間の仕事を減らすために環境構築を自動化したいが、年1回のためにどこまでやるかは考えるところがある
  • 「(時間を食われすぎるため)CTFは明らかに社会人には難しい」
  • 企業がこれほどまでにCTFに力を入れているのは、ハッカーの技術を吸収できるとか、未知の脆弱性を見つけられることもあるとか、メリットが大変大きいため
  • OSSは人
  • 発表中にOSSのオーナーにTwitterでメンションを投げて無事返信があり、めでたかった
  • 会計データで会社のマッチング
  • IaaSの多様性がしんどい
  • Rustは要するに安全なC++
  • REmacs
  • アカデミアでのニューラルネットはブームの終わりを迎えているところ
  • 計算機科学の知見が脳科学に示唆を与えている!可能性を感じて嬉しくなる
  • ディープラーニングは脳になれるか?→No(激うまギャグ)
  • ディープラーニングで中間表現を扱えるようになってきている
  • GANすごい
  • 「discriminatorがグレる」

交流イベントの感想

今年はナノブロックを説明書を見ないで組み立ててもらうゲームをしました。説明書を見て指示を出す人、ブロックを組み立てる人に分かれてやります。また、箱の中身は何だろな?クイズをやりました。ガラケーとかアヒルのおもちゃとか入れました。

みんな集中してて茶々を入れても構ってもらえず寂しかったです。 僕もやりたかった。

ナイトセッション・懇親会

会場の都合上、みなさんとお話できる時間は短かったですが、話したかった人と話せて良かったです。

おわりに

来年は発表したい。

推しきのこ #wakate2018

ヤフー株式会社に新卒入社していました

試用期間が終わったのでネタばらし。

haneuma0628.hatenablog.jp

ポートフォリオサイトにはちゃっかり書いてあるし、所属の記載が必要な場所には適宜書いているので今さらですが、4月に入社していました。10月から本配属されて元気に働いています。やることはインターネット広告の後ろの方で動いてる何かのアレです。

社会に出た感想

就活をしていた頃にぼんやりしていた「ソフトウェアエンジニア」が少しだけはっきりしてきました。良かったですね。 会社で色々なチームを見て、WebとSIerだけではないんだなあと思いました。 既に働いている友人知人がほとんどなので多少この仕事について分かっているつもりでしたが、人々が日々何を作っているかなんて全然知らなかったんだな、と思いました。

『人間の気持ちを察していい感じに動くシステムの、後ろの方のデータとかアーキテクチャとか基盤とかそういうやつ』というフワフワしたやりたい仕事像でしたが、会社には無数のシステム・サービスがあるので、具体的に面白そうなものなどを見つけることができて良かったです。新人のゆめとりそうとバズワードとフワフワの塊を、こういうのが向いてるんじゃない?と教えてくれる会社の人はすごいなあと思いました。引き続きよろしくお願いします。

これから

クビにならないようにがんばります。

カリフォルニア旅行記 3日目

アメリカにも少し慣れてきました。こんにちは。カリフォルニア旅行記と言いながらサンフランシスコしか散策していないので、今日はバークレーに行ってみます。

KIKKOMAN

アジア料理を食べると決意したので、飲茶をした。サンフランシスコらしさを保ちつつの重たくないアジア料理、という訳です。

海老餃子、焼売、Chinese Broccoli を食べた。蒸し物を食べるための醤油に感動した。KIKKOMAN、ありがとう。食べ物はカートで運ばれてくるので、英語のメニューと格闘せずに良くて便利だった。

お茶のポットが大きすぎて焦ったけど、隣のテーブルのガイにも同じ大きさのポットが運ばれてきてホッとした。振る舞いを真似るのにチラチラ見てしまって、落ち着かない食事にして申し訳なかったかもしれない。

f:id:haneuma0628:20180320154518j:image

Sain’t Patrick Day

航空券を予約した後にガイドブックを見て知ったのだけど、旅行3日目の3/17はちょうど Sain’t Patrick Day のパレードが開催される。この日は緑色のものを身につけて、ワイワイするとのことだった。楽しそうなのでパレードを眺めに行った。

f:id:haneuma0628:20180320175501j:image

それとなく緑色の人々が、楽器の演奏やダンスをしたり、お菓子やグッズを投げていた。緑色のビーズがジャラジャラしたやつと、キーホールダーと、チョコレートバーを貰った。浮かれているので、緑色のビーズがジャラジャラしたやつはこの日ずっと首にかけていた。

パレードは様々な団体が行なっていて、ナントカスクールとか、ナントカクラブとか、ポリスメンとかがいた。変なのもいた。

f:id:haneuma0628:20180320175536j:image

大学と学生街

大学生なので大学を見てみたくて、大学に行ってきた。カリフォルニアと言うとスタンフォード大学の印象が強かったけれど、シリコンバレーは遠いので、もう少し近いカリフォルニア大学 バークレー校に行った。

f:id:haneuma0628:20180320175553j:image

筑波大みたいだな、と思った。木々が生い茂り、散歩には良かった。学内のいたるところにリスがいた。追いかけると逃げられた。

UCバークレーは敷地内や少し離れたところに博物館や科学館、植物園などがあって、見学することができる。地図が読めなさすぎて目的の博物館が発見できず、科学館や植物園に行くバスは1週間ほど一時休止しており、何一つ見れないまま、ただ散歩だけすることになった。

学内には実験中のロボットや、ラジコン車のプログラミングをしている学生がいた。仲間を見つけたような気持ちで少し嬉しかった。学内の掲示板には、Web開発講座の案内が貼ってあった。ギークのemojiがかわいい。

f:id:haneuma0628:20180320175842j:image

正面入口から伸びるメインストリートを散策しようと思ったが、慌てて引き返してきた。明らかに街並みが怪しく、奇声をあげる人、ドラッグを売る人、などを観測した。おい、ガイドブック、ファンキーな店が多いけど思い切って入ってみよう、とは何だ、冗談だろ、と思った。

聞くと学生運動なども盛んで、リベラルやヒッピーの街なので、まあ、危ないよね、と納得した。確かに大学の周りは治安悪いな、と、自分の大学を思い出した。比べ物にならない程度ではあるけど。掲示板にもヤバそうなポスターが貼ってある。英語読めないので、雰囲気しか分からないけれど。

怖くないところもあって、バークレーに着いてすぐ行った Shattuck Ave のカフェは落ち着いていて良かった。ただ、ラテが丼で提供されて、これがアメリカか…となった。余談だけど、店員さんがモードな感じでカッコよかった。

f:id:haneuma0628:20180320175932j:image

f:id:haneuma0628:20180320175549j:image

うどん

危ない街から逃げ帰り、疲弊し、胃が弱り、あまり食欲もないのでうどんを食べた。何かに負けた気がしたが、健康第一を心がけた。海外旅行にインスタント日本食を持って行く人の気持ちが分かった。わかめうどんは優しい味がした。

次回

胃が復活し、現代美術を鑑賞して、アートなガールにキュンとなり、食事らしい食事に感動を覚えて、猫にモテます。

カリフォルニア旅行記 2日目

まだ生きてます。こんにちは。1日目は移動日だったので、実質今日からいい感じに観光していきます。

朝食と買い物

いわゆる時差ボケ的なもので全く寝れず、7時くらいから活動を開始した。ホテルにいても暇なので散歩をしたかったけれど、まだ暗くて危ないので夜明けを待った。原始的だ。

アメリカの朝食=パンケーキみたいな気持ちがあったので、パンケーキを食べに出かけた。

f:id:haneuma0628:20180319015517j:image

塩気とバター感があって、食事っぽい。薄いけど食べ応えがあって美味しかった。バターをグリッと塗ってメープルシロップをバサーとかけて食べるとうまい。そして重い。オレンジは癒し。

異国のスーパーが見たかったので、Trader Joe’s に行った。ドライフルーツとナッツがたくさん売っていて、ワインは投げ売りか?みたいな値段だった。あと、マッシュルームも安い。定番らしいショッピングバッグと、ドライマンゴーと野菜ジュースと水を買った。ドライマンゴーはでかくて分厚くて、野菜ジュースは野菜の味がした。

ケーブルカーと土砂降り

朝から活動できたのでケーブルカーに乗った。海が見たかったので、Powell Station から北に向かう電車に乗車した。椅子が外側を向いてて窓がない席に乗った。アトラクションだった。楽しすぎて写真も動画も撮り忘れた。高いところは苦手だけどジェットコースターは好きなんですよね。

終点の Fisherman's Wharf 付近で降りたら土砂降りに遭遇した。クラムチャウダーを食べてアシカを見る予定だったけど、雨雲から逃げていたらいつの間にか San Francisco Maritime National Historical Park まで来ていた。

空が青くて、遠くに Golden Gate Bridge が見えてめちゃくちゃ綺麗だった。あんまり綺麗なので、しばらくぼーっとしていた。

f:id:haneuma0628:20180319022430j:image

f:id:haneuma0628:20180319022922j:image

山登り

散歩しつつ、ランドマークを巡ることにした。目標を Lombard  Streat と Grace Cathedral に定めて、南下していく。

よく考えれば分かることだけど、坂を登って来たので、帰りも坂を登る。30°はありそうな急勾配を登った。息は上がるけど汗はかかなかったので、ジャパニーズヤマノボリよりは辛くなかった。

苦労して歩いた甲斐あって、Lombard  Streat からは最高の眺めを楽しめた。今回の旅行のベストショットだと思う。

f:id:haneuma0628:20180319062907j:image

再び坂を登り、Grace Cathedral を見学した。中は静かで、英語を聞きすぎて疲れた頭が休まった。キリスト教の作法が分からないけれど、旅の安全を祈っておいた。ステンドグラスが綺麗。

f:id:haneuma0628:20180319082800j:image

おしゃれストリート散策

歩き疲れたので少し休んでから、Hayes Valley を散策した。Hayes Vally は代官山をアレした感じのところ、と教えてもらった。代官山は行ったことないけど、代官山っぽいなと思った。

洋服を見たり、ガジェットのお店を見たりした。洋服はお臍を出していくスタイルに驚き、ガジェットは家をハックする系が目に付いた。

ハンバーガーに負ける

アメリカといえばハンバーガーだなと思って、昼前に1つ、昼過ぎに1つハンバーガーを食べた。あとフライドポテト。

昼前に食べたハンバーガーは肉屋さんがやってるお店のやつで、ターキーが挟まっていた。さすが、肉がうまい。ハンバーガーって美味しいんだな、と感動した。昼過ぎに食べたハンバーガーは Super Duper Burger のやつで、ジャンキーで美味しかった。フライドポテトも食べた。

思えば朝のパンケーキを食べたところから若干胃腸に不安があった。慣れない油ものに疲れて、ホテルに着いた頃にはお腹を壊してぐったりしていた。日本から持ってきた太田胃散を飲んで、しばらく寝たら少し良くなった。明日は絶対アジア料理を食べる、と決意した。

次回

点心のお店で醤油に感動し、Sain’t Patrick Day のパレードを眺め、丼に入ったラテに驚き、リスを追いかけ、学生街から逃げ帰り、絶対に食べないと決めていたジャパニーズフードを食べて落ち着きます。