梅雨から逃げて大雪山

だいぶ時間が経過してしまったが6/15に北海道の最高峰である大雪山へ登らせていただいた. 北海道は本州が梅雨に入ってもあまり影響を受けないので選んだわけだが, 北海道の山の装いは本州と比べると冬が残っていた. 大雪山はロープーウェイで標高を上げることができる. 大雪山のあたりはアイヌ語でカムイミンタラと言われているが, まさに広大な庭のような装いをしている. ロープーウェイからは大自然の庭を見渡す事ができる. これまで何回か登山でロープーウェイに乗ることがあったが景色の良さは一番良いと言っても差し支えないのではなかろうか? 大雪山という山は火山である. 今でもところどころ噴気を上げており大地の力を感じることができる. 登山道は実に火山らしい地質をしており富士山や不忘山のそれと似ていた. 標高は2290mと低いものの北にあるだけあり寒かった. 最初は半袖で行動できていたが, 8合目を越えたあたりからは厳しくなりレインウェアを着用して行動していた. 長野の3000m級の山の同時期の気候に近いのではなかろうか? 本州の山と同じ気持ちで行くとパウチカムイにとりつかれるぞ. 山頂からはトムラウシ山の稜線がよく見え十勝岳まで縦走したくなる. 私は今回日帰りで登った. 次の日の天気が悪くなければ避難小屋かテントで宿泊して山を楽しみたかった. 後ろ髪を引かれる気分であったが自然には勝てないので仕方ない. 次は別の季節にも訪れたいと思う.

6月 27, 2019

Go言語でunionぽいことをする

https://play.golang.org/p/jmwRkRSmYjC package main import ( "fmt" "unsafe" ) type union_t struct { U32 *uint32 U8_a *[4]byte } func newU(u uint32) *union_t { return &union_t{ &u, (*[4]byte)(unsafe.Pointer(&u)), } } func main() { u := newU(0xffffffff) fmt.Printf("%x, %d %d %d %d\n", *u.U32, (*u.U8_a)[0], (*u.U8_a)[1], (*u.U8_a)[2], (*u.U8_a)[3]) (*u.U8_a)[0] = 0x11 (*u.U8_a)[1] = 0x22 (*u.U8_a)[2] = 0x33 (*u.U8_a)[3] = 0x44 fmt.Printf("%x, %d %d %d %d\n", *u.U32, (*u.U8_a)[0], (*u.U8_a)[1], (*u.U8_a)[2], (*u.U8_a)[3]) }

6月 18, 2019

阿弥陀岳, 赤岳に登った

6月になり梅雨の足跡がすぐそこまで近づいてきた. 本格的な梅雨入りの前に山に登りたいと思い, 6/4 に八ヶ岳まで行ってきた. 八ヶ岳は長野にある山の中でも比較的訪れやすいと思う. レンタカーでやまのこ村まで行った. やまのこ村についたのは2時ごろだった. この日はちょうど新月で星がきれいな日だった. 車で3時間ほど睡眠を取り, 朝5時に受付をして諸々の準備を済ませ5時半くらいから登山開始した. 南沢を通り行者小屋まで行った. 7時半くらいに行者小屋に到着し20分ほど休憩をとった. 行者小屋から中岳のコルへ登った. 途中の登山道は残雪があった. アイゼンを付けるほどではなかったが腐った雪やぬかるんだ道はよく滑り苦労した. また, トレースがなかったり, 夏道が雪で埋まった箇所があり悩む部分もいくつか存在した. 10分ほど余分に時間を食うことになったが中岳のコルに無事到着できた. 中途半端な残雪は厳冬期の雪道より圧倒的に歩きにくいと思う. 中岳のコルからは権現岳がよく見えた. 以前来たときはガスってて何も見えなかったので歓迎されたようで嬉しかった. 中岳のコルから阿弥陀岳山頂は20分のコースタイムだが高所恐怖症と岩場の苦手さが相まって余分に10分ほど時間をつかって登った. 阿弥陀岳は浮石が多いのと簡単に岩が剥がれる場所があるので注意が必要である. 阿弥陀岳山頂について記念撮影していてあることに気がついた. 赤岳の方を向いたとき壁のような雲が迫ってたのである. 幸い積乱雲ではなかったが一瞬焦った. 阿弥陀岳から中岳のコルへ戻り中岳を越えて赤岳山頂と文三郎尾根の分岐へたどり着いたとき30分あった遅れを巻き返して予定通りの時間に戻した. 天気が崩れそうであったのでさっさと赤岳山頂に登ることを決めた. 分岐位置に装備をデポって山頂を目指した. 20分で登ったわけだが雲に追いつかれてしまい山頂からの景色は真っ白だった. 記念撮影を終えて装備をおいてきた地点に戻った. 悲しいことに雲が晴れて景色が戻った. 以前に赤岳登ったときもガスってて真っ白だったので悔しい. 絶対また登ろうと思う. 八ヶ岳は好きな山だが文三郎尾根の分岐から阿弥陀岳方面を眺める稜線が特に好きである. 望遠鏡を使わなくてもはっきり傾斜が見える堂々とした佇まいのまっすぐな稜線は気持ちい. そんな稜線を眺めながら少し休憩をしたあと文三郎尾根から行者小屋に戻った. 文三郎尾根を降りた森林限界より下の道は少し雪が残っていた. 泥混じりだったので滑ったら嫌だなと思っていたら見事に滑って臀部を泥まみれにしてしまった. 行者小屋に戻ったあとはやまのこ村へ下山した. いつも八ヶ岳に来るたびに思うのは, 赤岳鉱泉にしろ行者小屋しろ小屋から下の登山道を帰るのが辛い. 疲れた足であそこを歩くのが辛い. 地味に長くて心が辛い. まぁそれでもそれを含めて下山し終えたときの達成感は多きい. なぜか辛いのにまた訪れたくなるのが不思議である.

6月 7, 2019

甲州高尾山に登った

6/2 に甲州高尾山に登った. 東京都の高尾山のように駅からアクセスできる山である. 全行程はおおよそ5時間くらいで勝沼ぶどう郷からそのまま歩いて行けるのでとても登りやすい山といえる. 高低差は660mほど累積標高差は1000m弱で登山をはじめて間もない人には少し大変かもしれない. ルートによっては土砂崩れや倒木により道が見えない場所があるのでGPSで地図を表示させながら行かないと簡単に道に迷える箇所があるので注意が必要である. 甲州高尾山は1100mほどの低山であるが景色はあなどれない. 山頂付近の尾根は麓の市街や南アルプスを見渡せ, 空中散歩をしている気分にさせられる. はじめての稜線歩きをするには良い山であると思う. 下山は大善寺の方のルートを利用した. 嘆かわしいことに大量の太陽光パネルが並んでいる. 土砂崩れとか心配になるがどうなのだろうか. 環境問題について一瞬考えさせられる. 勝沼ぶどう郷はワインの産地である. 私は下山後ぶどうの丘へ行った. ぶどうの丘は温泉施設もあり, 露天風呂が素晴らしいものだった. 勝沼のぶどう畑を見下ろしながら湯船につかれるのである. 登山の疲れを温泉で癒やしたあとぶどうの丘でワインを楽しんだ. 勝沼ぶどう郷は山好きにもワイン好きにもいい街だった.

6月 6, 2019

初心者ほど登る山を自分で決めたほうがいいと思う

山を登るきっかけはいろいろあると思う. たとえば人に誘われたり, 健康のためにのぼったり. 私は人に誘われて登り始めた. はじめのうちは人が計画した登山計画をもとに登山をしていた. 受動的な登山だった. ちゃんと登山計画を自分で立てたのは2年目からだった. 自分で登る山を決めると何が良いか? まず, 興味のある山を自分で見つけられる. どんな山でもいい. 以前登った山から見てきれいだった山. 近場で行きやすい山. 人に聞いてよかったと言ってた山. 少なくとも人に計画を決めてもらうよりしっかり興味が山に向く. 人が立てた計画による登山は, 山に向かう移動から登山だが, 自分で計画する登山は工程を考えるところから登山である. 登る山を決めて, 交通手段をきめて何時に下山を決めてなど そこからすでに楽しい. 地図を見ながら山のことを想像するだけで楽しく, 実際山に行くと想像と照らし合わせながら登るのでより印象深い登山になる. ヤマノススメでひなたがあおいに登る山を決めさせる回がある. あのひなたの行動は初心者であるあおいを山にハマらせるにあたって合理的であると言える.

6月 5, 2019

trivyの利用を開始した

最近話題になってる脆弱性検知ツールのtrivyを利用した. 流れてきには次のような感じである. docker imageのbuild trivyでのscan okだったらregistryにpush trivyはそのままスキャンすると検出してもしなくても exit code として 0 を返す. CircleCI上で検出したときに落とす時は 0 以外を返す必要がある. なので --exit-code 1 を指定する. 好みの問題ではあるが重要度の低い脆弱性は一旦出さないようにしている. --severity HIGH,CRITICAL のように指定すると HIGH , CRITICAL のみを検出できる. OSに入ってるlibraryに脆弱性が存在しているがまだ対応しているバージョンがないというときがある. そういうものを出されても対応ができないので検出しないようにしている. --ignore-unfixed と指定することで対応バージョンが存在しないものを検出結果から除外できる. 実際に利用しているオプションはこうである. $ trivy --exit-code 1 --quiet --severity HIGH,CRITICAL --auto-refresh --ignore-unfixed -c --auto-refresh $DOCKER_IMAGE_REPO:$CIRCLE_BRANCH

5月 29, 2019

燕岳に行った

5月の18, 19日に燕岳へ行ってきた. 過去に5回ほど行こうとしたのだがなかなか天気に恵まれずやっと行くことができた. 行きはアルペン号に乗って行った. アルペン号の座席数は21席ほどでそこまで大きいバスではなかったが足は伸ばしやすくそれなりに寝ることができた. まぁ隣の席に人がいなかったというのも大きい. 竹橋の毎日新聞社から乗車した. 毎日新聞社の建物はコンビニが入っているので, 行動食を入手することもできた. バスは23時に出発し翌日の朝5:30ごろに中房温泉に到着した. 登山届はネットから提出していたのでそのまま到着とともに登山を開始した. 燕岳は最初から急な方の山である. なので結構ゆっくり目に歩いた. 最初は雪もなく夏山を歩いてるような感じであった. 第三ベンチをこえて少ししたあたりから雪が突然増えた. なのでそこからはアイゼンを利用した. 多くの人は合戦小屋まではアイゼンを付けずに登っていたが私は自信がないのでさっさとつけたのである. 合戦小屋より上は完全な雪山であった. まぁ厳冬期のような厳しい寒さはなくむしろ暑かった. 曇ってたとはいえ私は半袖で行動していた. もちろん防寒着はおいてきたわけではなくザックに入れてある. 暖かいとはいえ油断をしてはいけない. 合戦尾根は雪は多いものの気温が高かったため雪の踏み抜きが多かった. なので想像以上に体力を要した. 合戦小屋から燕山荘までは1時間30分程度で到着した. 小屋の前は雪はなかった. テント場はしっかり雪が残っていた. 10時ごろに燕山荘についたのだが, 予定通りだった. 計画ではその後大天井岳をピストンする予定だったが想像より疲れてたので燕岳山頂をピストンしてその後小屋でゆっくりした. 二日目はご来光を見ようと思ったが地平線付近の雲が多く見ることができなかった. しかし景色は悪くなかった. 満月と北アルプスのコラボレーションを見ることができた. また朝日に照らされる燕岳もいいものだった. 燕山荘で朝食をいただき, その後すぐに中房温泉へと下山をした. 下山のときは雪が凍っていた. なので合戦小屋までは踏み抜くことなく快適に歩行できた. 合戦小屋より下は気温が高かったのかそこまで雪は固くなかった. 下山は8時頃だった. 山を安全圏まで降りたときの開放感はやはりいいものである. 山の中が嫌いというわけではなく, 外界には外界の良さがある. 燕岳に次来るときは多分夏だと思う. その時は表銀座縦走をやりたいと思う. 美しい槍ヶ岳を見せられたから仕方のないことだ. 以下は今回の燕岳の写真である.

5月 21, 2019

jwtを利用したサービスでログイン時にfastlyのcacheを有効にする

ログインユーザーにもcacheを効かせたいときがある. その時はjwt tokenの値を利用してcacheを作れば良い. jwt tokenの名前を jwt_token しよう. まずjwt tokenから値を抜き出す. sub vcl_recv { if (req.http.Cookie ~ "jwt_token=.*") { set req.http.X-TOKEN = regsub(re.group.0, "\;.*", ""); } } 次にcacheのkeyとなるhashを生成する. sub vcl_hash { if (req.http.X-TOKEN) { set req.hash += req.http.X-TOKEN; } set req.hash += req.url; } これでjwt tokenを利用してcacheが作られます. ちなみにログインのたびにjwt tokenは変わるのでログインごとにcacheが破棄されるような挙動になる.

5月 16, 2019

Mt.Kita

Mt.Kita writes 北岳 in Kanji. 北岳 is pronounced as kitadake. This mountain means the north mountain. But the place is the Southern Alps. Mt.Kita is located in the northern part of the Southern Alps. Mt.Kita is the second highest mountain in Japan. However, many Japanese people don’t know this. It is because it exists deep in the mountain. Mt.Kita has a height of 3193m, but it can not be seen very much from the city....

5月 15, 2019

fastlyでVary headerをきれいにする

Vary header の内容が冗長性のあるときがある. 例えばこんな感じ Vary: User-Agent, Accept-Encoding, User-Agent とか. こういうのを Vary: User-Agent, Accept-Encoding か Vary: Accept-Encoding, User-Agent したい. かぶってるのを消して追加してしまえば良い. sub vcl_fetch { if (beresp.http.Vary ~ ".*User-Agent.*User-Agent.*") { set beresp.http.Vary = regsuball(beresp.http.Vary, "(,\s*)?User-Agent", ""); set beresp.http.Vary = regsuball(beresp.http.Vary, "^(\s)?(,(\s+)?)+", ""); } if (bresp.http.Vary ~ "^(\s)*$") { set bresp.http.Vary = "User-Agent"; } else { set bresp.http.Vary = bresp.http.Vary + ", User-Agent"; } }

5月 15, 2019