yarn で npmrc に書いた save exact が効かない
.npmrc
に 'save-exact': true
を設定してるのに、 yarn
でnpmモジュールをインストールすると、
^
付きでインストールされてしまう。
結論としては ~/.yarnrc
に save-prefix false
を追加すればよい。
少し前までは、 yarn config set save-prefix ''
を実行してyarnの設定を更新する必要があったが、これも不要になった模様。
ちなみに設定を確認するには、 yarn config list
を実行すれば確認できる。
❯ yarn config list yarn config v0.27.5 info yarn config { 'version-tag-prefix': 'v', 'version-git-tag': true, 'version-git-sign': false, 'version-git-message': 'v%s', 'init-version': '1.0.0', 'init-license': 'MIT', 'save-prefix': false, 'ignore-scripts': false, 'ignore-optional': false, registry: 'https://registry.yarnpkg.com', 'strict-ssl': true, 'user-agent': 'yarn/0.27.5 npm/? node/v8.3.0 darwin x64', lastUpdateCheck: 1502693249675 } info npm config { save: true, 'save-exact': true, progress: false} Done in 0.07s.
References
zsh と zplug で足回りを整備する
新しいMBP(Touch Bar)になったので環境を整えてる。 最初は「もうzshじゃなくてbashでいいかな」と思い、syntax-higlightとかzplugの代替になるものとかを探してみた。 でも、あまり決定版が見つからなかったので結局前回と同じzsh + zplugにした。
Install zsh
zshのインストールは面倒臭いからbrewでサクッと行おう。
バージョンがきになる場合はbrew info zsh
で確認するといい。
brew install zsh
$ zsh --version zsh 5.3.1 (x86_64-apple-darwin16.6.0)
Install zplug
zplugも面倒臭いからbrewでインストール。バージョンhomebrewでも最新だったので問題なさそう。
brew install zplug
% zplug --version 2.4.1
.zshrcに追加。
export ZPLUG_HOME=/usr/local/opt/zplug source $ZPLUG_HOME/init.zsh
Change login shell
ついでにログインシェルをzshに変更する。
まず、/etc/shells
に追加。
sudo sh -c 'echo "/usr/local/bin/zsh" >> /etc/shells'
そして、変更。
chsh -s /usr/local/bin/zsh
Done!!
References
1password で「ブラウザを確認できませんでした」という表示が出る
1password をアップデートしてから、「ブラウザを確認できませんでした」という表示が出るようになってしまった。
調べてみると、Code Signatureがなんたらかんたららしい。
https://support.1password.com/code-signature/ http://applech2.com/archives/20170722-how-to-fix-1password-cant-save-or-fill.html
利用しているVivaldiとChrome Canaryでこの症状が発生した。
直し方は次の通り。
まず、Vivaldi。
mkdir ~/Library/Application\ Support/Vivaldi/NativeMessagingHosts cp ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/2bua8c4s2c.com.agilebits.1password.json ~/Library/Application\ Support/Vivaldi/NativeMessagingHosts/.
Chrome Canaryは少しパスが違うけど同様に。
mkdir ~/Library/Application\ Support/Google/Chrome\ Canary/NativeMessagingHosts cp ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/2bua8c4s2c.com.agilebits.1password.json ~/Library/Application\ Support/Google/Chrome\ Canary/NativeMessagingHosts/.
References
Macで cfprefsd というプロセスが凄いCPUリソースを食う件
すごいMacの動きが重くて、悪さしてるのはどのプロセスなのかとActivityMonitorをみたらcfprefsd
というプロセスが80%くらい食っていた。
スペックはこんな感じ。
OS X: 10.11.6 MacBook Pro (Retina, 13-inch、Early 2015)
調べるとBluetoothが原因っぽいらしくて、試しにBluetoothをオフにしてみるとCPU使用率が0.1%くらいまで落ちた。
解決方法をしらべてみるとStackoverflowに記事があった。
It is possible that when we upgrade from Yosemite to El Capitan, our bluetooth settings are backed up and are read by the system.
YosemiteからEl Capitanにアップグレートした時に発症する可能性があり、バックアップしたやつを読み込んでマージする見たいな感じだろうか。
/Library/Preferences/com.apple.Bluetooth.plist
の中身に重複した項目があるようなので、それをリセットすれば直る。
まず、対象のファイルを削除。
sudo rm /Library/Preferences/com.apple.Bluetooth.plist
そして、PRAM、 SMCリセットを行う。Macをシャットダウンし他あとに電源ボタンを押し、すぐに
Cmd + Option + P + R
を押し続ける。詳しくは「Mac の NVRAM をリセットする方法 - Apple サポート
」を参照。
今のところ改善している。
References
arp-scanでLANにつながっているデバイスのIPアドレスを調べる
先日、RaspberryPiを触っていた時に、LANに接続している内のIPアドレスを知る方法はないかと思っていろいろ調べてみた。すると、arp-scan
というコマンドがあった。
$ arp -i en0 -a ? (192.168.11.1) at 0:24:a5:f:8f:ae on en0 ifscope [ethernet] ? (192.168.11.14) at 70:48:f:74:ce:b on en0 ifscope [ethernet] ? (192.168.11.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet] ? (224.0.0.251) at 1:0:5e:0:0:fb on en0 ifscope permanent [ethernet] broadcasthost (255.255.255.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
arp
コマンドでもある程度は出るんだけど、arp-scan
コマンドを使うとよりわかりやすい情報を見ることができる。
Macではbrew install arp-scan
で簡単にインストールできる。
インストールしたらコマンドを実行すると、次のような結果が出力される。
$ sudo arp-scan -l Password: Interface: en0, datalink type: EN10MB (Ethernet) Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/) 192.168.11.1 00:24:a5:0f:8f:ae Buffalo Inc. 192.168.11.7 00:17:88:1c:ac:62 Philips Lighting BV 192.168.11.15 b8:27:eb:07:66:12 Raspberry Pi Foundation 192.168.11.8 00:25:00:4d:f8:90 Apple, Inc 192.168.11.10 84:d6:d0:a1:c3:f9 (Unknown) 192.168.11.9 f0:f6:1c:d0:0c:65 (Unknown)
これを見ると、RaspberryPiのIPアドレスは192.168.11.15
であることがわかる。便利。
Terraformで循環参照のエラーが出た時
これは、リソースを変数で参照して整合性?を保とうとしたときに良くなる。
variable "env" { type = "string" default = "dev" } variable "service" { type = "string" default = "foo" } resource "aws_cloudfront_origin_access_identity" "origin_access" { comment = "access-identity-${var.env}-${var.service}.s3.amazonaws.com" } data "template_file" "s3_policy" { template = "${file("s3-bucket-policy.json")}" vars { bucket_name = "${var.env}-${var.service}" origin_access_identity = "${aws_cloudfront_origin_access_identity.origin_access.id}" } } resource "aws_s3_bucket" "foo" { bucket = "${var.env}-${var.service}" acl = "private" policy = "${data.template_file.s3_policy.rendered}" tags { Name = "${var.env}-${var.service}" Environment = "${var.env}" ServiceName = "${var.service}" } }
となっている場合、循環参照が発生する。
❯ terraform plan Error configuring: 1 error(s) occurred: * Cycle: data.template_file.s3_policy, aws_s3_bucket.foo, aws_cloudfront_origin_access_identity.origin_access
もう、わけわかんないし辛い気持ちになるけど、Terraformには便利な機能がある。
依存グラフの出力である。
terraform graph -draw-cycles | dot -Tpng > graph.png
-draw-cycles
をつけると赤くなるので、分かりやすい。
後は、その依存関係を解決していけば良いだけ。
今回のケースは、aws_cloudfront_origin_access_identity
でバケット名を参照しているが、バケット名は"${var.env}-${var.service}"
で置き換え可能なため、
resource "aws_cloudfront_origin_access_identity" "origin_access" { comment = "access-identity-${var.env}-${var.service}.s3.amazonaws.com" }
とすると直る。
References
Terraformでテンプレートを使ってポリシーを定義する
Terraformにはテンプレート機能がある。よく使われるのは、ポリシーの設定などで、ヒアドキュメントで記述されるようなものを、別ファイルに記述し変数を与えて埋めていく。
ポリシーを定義する
例えば、ユーザやグループにポリシーを設定するために、まずポリシーを定義する。
ここで、 bucket_name
は変数になっている。ポリシーの意味は ${bucket_name}
以下にあるオブジェクトに対しての操作を全て許可するというもの。リソースの最後に /*
をつけないとバケットの操作1になってしまうので注意。
これを、 s3_bucket_policy.tpl.json
というファイルに保存しておこう。拡張子を json
とかにしておいたほうがシンタックスハイライトの恩恵が受けられる(と個人的には思う)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": [ "arn:aws:s3:::${bucket_name}/*", ] } ] }
IAM Policy リソースの定義
次に、リソースを定義しよう。
今までは policy
に <<EOF ... EOF
などを書いてポリシーを埋め込んでいたと思う。
ココも変数にする。
resource "aws_iam_policy" "developer" { name = "developer_policy" path = "/developer" description = "Developer IAM policy" policy = "${data.template_file.foo.rendered}" }
Template データの定義
最後にテンプレートの定義をしていこう。data
でtemplate_file
を定義する。
template
には最初で作成したファイルを指定する。file
メソッドを使うとファイルを引っ張って来ることができ、引数にはパス、ファイル名を与えよう。最初に作成したファイル名はs3_bucket_policy.tpl.json
なので、それを指定する。
テンプレート内にbukcet_name
という変数があったが、それをここで埋める。
vars
のマップを記述すると、そのままテンプレートに渡され、埋められる。
data "template_file" "foo" { template = "${file("s3_bucket_policy.tpl.json")}" vars { bucket_name = "bar" } }
bukcet_name
をTerraformで作成したバケットにしたい場合は、vars
に変数を与えればいい。
resource "aws_s3_bucket" "bar" { bucket = "dev-var-bucket" acl = "private" } data "template_file" "foo" { template = "${file("s3_bucket_policy.tpl.json")}" vars { bucket_name = "${aws_s3_bucket.bar.bucket}" } }
Appendix
AWS_IAM_POLICY_DOCUMENT resource
AWS IAMポリシーの作成はHCLで記述できることを @mia_0032 さんから教えていただきました。 Terraform version 0.7.0 から aws_iam_policy_document
リソースが入っていた(CHANGELOG)。
New Data Source:
aws_iam_policy_document
(#6881)
これのメリットをちょっと考えてみると次のような感じだと思う。
- HCLのシンタックスハイライトを使ってポリシーを書ける
plan
実行時にある程度の構文チェックができる- 書くものが減りすこしスッキリする(テンプレートの方式だと、
json
ファイル、data
ソース、aws_iam_policy
リソースを用意しないといけない)
結構、多くのメリットがありそう。
ぼくがポリシーを書くときは、AWSコンソールで直接ポリシーを作成して、検証しながらJSONを組み立てていく。整ったところで、JSONをコピーし、変数になる部分の記述を変換してテンプレートを仕上げている。
JSONのポリシーをHCLに変換してくれる何かがほしい。 ちょっと調べてみた感じだとありそう(kvz/json2hcl)。
References
Terraform で変数を使う
Terrafromでは変数が利用でき、variable
を定義して、値を注入する。
一番シンプルな例は次の通り。
provider "aws" { region = "ap-northeast-1" } variable "foo" {} resource "aws_s3_bucket" "s3_bucket" { bucket = "${var.foo}" acl = "private" }
variable
で foo
を宣言し、S3バケットのところで ${var.foo}
利用している。
値の注入方法
値の指定方法は次の4通りある。
- 実行時に指定
- コマンド引数による指定
- 環境変数による指定
- 設定ファイルによる指定
実行時に指定
変数を宣言した後に、terraform plan
などを実行すると、コンソールでどんな値を指定するか聞かれるので、そこで指定する。
❯ terraform plan var.foo Enter a value: bar ... + aws_s3_bucket.s3_bucket ... arn: "<computed>" bucket: "bar" force_destroy: "false" ... Plan: 1 to add, 0 to change, 0 to destroy.
コマンド引数による指定
コマンド実行時 -var
オプションを利用して値を指定する。
試しに terraform plan -var 'foo=test-bucket'
を実行してみると、ちゃんと注入されている。
環境変数による指定
TF_VAR_
のプレフィックスを付けて環境変数を設定すると、その値が変数にロードされる。
TF_VAR_foo='env-test' terraform plan
を実行すると同様の結果が得られる。
設定ファイルによる指定
変数の値を指定する設定ファイルを作成し、-var-file
で指定すると同様のことが出来る。
vars.tfvars
foo = "tfvars-file"
terraform plan -var-file=vars.tfvars
を実行すると同様の結果が得られる。
変数戦略/設計
Terrafromは *.tf
ファイルを全て読み込むので、
変数定義をvariables.tf
などに記述しておき、
実行時に-var-file
で値ファイルを指定して環境などを切り替えると良いかもしれない。
terrafrom plan -var-file=dev.tfvars
terrafrom plan -var-file=prod.tfvars
ディレクトリとか、ファイルはこんな感じにすると雰囲気はつかめると思う。
main.tf
provider "aws" { region = "ap-northeast-1" } resource "aws_s3_bucket" "s3_bucket" { bucket = "${var.foo}" acl = "private" }
variables.tf
variable "foo" {}
dev.tfvars
foo="dev-var"
prod.tfvars
foo="prod-var"
その他Tips
default
を記述するとファイルを指定しなくてもそれになる。
また、type
などで型も指定できる。
description
で、変数の説明もかけるので書いたほうがいい。
variable "foo" { type = "string" default = "default-var" description = "Sample Variable" }
References
- Input Variables - Configuration Language | Terraform by HashiCorp
- How to Use Terraform Variables (Locals, Input, Output) - Tutorial
- Terraformでmappingをmoduleに渡す方法 | Developers.IO
- Terraform 0.7でterraform_remote_stateはdeprecated扱い - kikumotoのメモ帳
- Terraformの出力を別のTerraformで利用する - Qiita
- オレオレterraformディレクトリ構成ベストプラクティス - Qiita
- terraform使い方(超基礎編) - Qiita
Terraform でループして複数のリソースを作成する
TerraformでListの変数を使ってループさせたい時がある。 例えば、ユーザアカウントを複数作りたいとき。
以下のようなリソース定義を必要な分だけ書かないといけない。10個あったら10個。メッチャ大変。
resource "aws_iam_user" "developer" { name = "foo" path = "/developer" }
普通に考えて、変数を定義してループさせたくなる。 まず変数を定義する。あとは、コイツを上手く回す方法を考える。
variables "developer" { default = ["aoki0", "aoki1", "aoki2"] }
リソースを複数作成する
リソースにはcount
というパラメータがあり、この値を指定するとn個のリソースを作成してくれる。便利。
resource "aws_iam_user" "developer" { connt = 3 name = "aoki" path = "/developer" }
すると、3つの aws_iam_user
が作成される。
+ aws_iam_user.developer.0 arn: "<computed>" force_destroy: "false" name: "aoki" path: "/developer" unique_id: "<computed>" + aws_iam_user.developer.1 arn: "<computed>" force_destroy: "false" name: "aoki" path: "/developer" unique_id: "<computed>" + aws_iam_user.developer.2 arn: "<computed>" force_destroy: "false" name: "aoki" path: "/developer" unique_id: "<computed>" Plan: 3 to add, 0 to change, 0 to destroy.
しかし、2つの課題がある。
- 生成する数(3
)をハードコーディングしてる
- name
が全部同じ
変数に指定されたリストの長さを取得する
Terraformには length
というリストの長さを取得する関数がある。
こいつを、利用してリスト長分のリソースを作成する。
resource "aws_iam_user" "developer" { count = "${ length( var.developer ) }" name = "aoki" path = "/developer" }
いい感じ。
+ aws_iam_user.developer.0 + aws_iam_user.developer.1 + aws_iam_user.developer.2 Plan: 3 to add, 0 to change, 0 to destroy.
リストの要素を利用する
リストの要素を取得するには element
という関数、
現在のインデックスを取得するには count.index
が使える。
これを、埋め込みたい箇所に "${}"
でくくって記述する。
resource "aws_iam_user" "developer" { count = "${ length( var.developer ) }" name = "${element(var.developer, count.index)}" path = "/developer" }
ちゃんと、値も個数も設定ファイルから取得できた。
+ aws_iam_user.developer.0 name: "aoki0" + aws_iam_user.developer.1 name: "aoki1" + aws_iam_user.developer.2 name: "aoki2" Plan: 3 to add, 0 to change, 0 to destroy.
あとは、name
も上手く取得したい。
MapのListも使える
変数の値を次のようにして、Listで回せばイロイロできそう。
ips = [ { name = "foo", ip = "aaa.bbb.ccc.ddd/32", description = "foo IP" }, { name = "bar", ip = "bbb.bbb.ccc.ddd/32", description = "bar IP" }, { name = "baz", ip = "ccc.bbb.ccc.ddd/32", description = "baz IP" } ]
と、いいたいところなんですが、GitHubにIssueが上がっていて、現在(2016/11/29)使えない😢。
zipmap
対処療法として、二つのListを用意してzipmap
で無理やり結合する。
# tfvars names = ["foo", "bar", "baz"] ips = [ "aaa.bbb.ccc.ddd/32", "bbb.bbb.ccc.ddd/32", "ccc.bbb.ccc.ddd/32" ]
zipmap
は二つのリストをzippingする。
たとえば、前述したnames
とips
をzipすると、
{ foo = "aaa.bbb.ccc.ddd/32", bar = "bbb.bbb.ccc.ddd/32", baz = "ccc.bbb.ccc.ddd/32" }
となる。
はやくIssueが解決されて欲しい。
References
PebbleのWatchFaceを作ってみた
去年、PebbleがFitBitに買収されてたので、在庫が無くなる前にPebble Time Roundを買った。 今までは、Pebble Timeを使っていたんだけど、四角いし厚いしいまいちオシャレじゃないなーと思ってたのでよい機会。
毎年、正月休みに新しい何かを触ってみようと思っていて、去年はSwiftでTODOアプリを作り、TravisCIでビルド(ココが一番時間かかった記憶がある)した。ので、今年の正月休みはPebbleのWatchFaceを作ってみた。
公式のチュートリアルをなぞっただけで、特別なことはやっていないんだけども、デザインを自分で考えるのは楽しい。機能としては、日付け、時間、天気、気温、電池残量を表示するだけ。
CloudPebbleを使って開発したんだけれども、これが結構よくできていて、コーディングからビルド、エミュレータの起動、gitのコミット・プッシュまで出来る。 でも、ブラウザアプリはキーバインドが衝突したり、ブラウザバックしちゃったりするのが嫌いなので、nativefierというツールでデスクトップアプリ化した。 フレームレスウィンドウが好きなのでついでに、クローンしてパッチを当てた。
WatchFace側はC言語、アプリ側?はJavaScriptで書いた。C言語のほうがロウエナジーだってどこかに書いてあったからそうしたけど、計測はしてない。
TravisCIでビルドしてGitHubのリリースに置こうと思ったけど上手く動かず。python2系とnpm3系が必要でインストールとか面倒くいので別の機会に。 ビルドするためのdockerイメージも作ろうしたけども同じ理由でまた今度。
反省点じゃないけれども、やってみたいことが色々出てきた。
- OpenWeatherMapは精度が悪いので、Yahoo天気とか何かにしたい
- 設定画面でAPIトークンや、天気機能のON/OFFを切り替えたい
- 色を変えられるようにしたい
- font-awesomeを使って天気や電池、接続情報をアイコンで表現したい
- 同じようなことをやっているコードのリファクタリング・抽象化
いやー、C言語って難しいね。
References
- Building Pebble Apps with Travis CI
- GitHub - pebble-examples/watchface-tutorial: Sample project from the Getting Started watchface tutorials
- GitHub - pebble-examples/classio-battery-connection
- GitHub - pautomas/fontawesome-pebble: A very simple Font Awesome icons visualizer for Pebble Time
- 【Pebble】バッテリーの情報を取得する(常時/1度だけ) - Pebbleアプリ開発メモ
- 電子工作記録: PebbleのアプリをC言語とPebble.jsで開発する時の違い
TerraformのstateをS3でリモート管理する
Terraformの管理下にあるリソースの情報は tfstate
ファイルに保存されている。たとえば、チームでこのtfstate
を共有したいときにどうすべきかというのが課題になる。
tfstate ファイルをS3バケットに保存する(version >= 0.9.0)
Terraform 0.9.0
から terraform remote
の変わりに Remote Backend になった。
- terraform/CHANGELOG.md at master · hashicorp/terraform · GitHub
❯ tf remote pull Local and remote state in sync
tfstate ファイルをS3バケットに保存する(version < 0.9.0)
S3バケットにこの状態ファイルを保存するのは簡単で、単に以下のコマンドで設定すれば良い。
terraform remote config \ -backend=S3 \ -backend-config="region=ap-northeast-1" \ -backend-config="bucket=<YOUR_STATE_BUCKET_NAEM>" \ -backend-config="key=<STATE_PATH>/<STATE_FILE_NAME>.tfstate"
この設定を行った後にpush
する。
terraform remote push
以下のコマンドを実行すればpush
したファイルが一覧されるはず。
aws s3 ls s3://<YOUR_STATE_BUCKET_NAME> --recursive
ローカルにリモートのステートを持ってくるにはpull
を実行する。
terraform remote pull
また、
terraform remote config -disable
でリモート管理をやめ、ローカルに戻せるらしい。
References
Alfred 3 のテーマ
先日、Alfred 3がリリースされた。パワーパックは2で購入していたので £12 でアップグレードできる。 とはいえ、2で満足できてたし1,600円払ってまでアップグレードするほどの目玉機能入ったの?? 早くなった?ワークフローが強くなった?いやー、2で十分でしょと思っていた。
でも、即アップグレードすることになった。
2で唯一困っていたことは「テーマのフォントが好きなフォントに変更できない」ということ。 不満に思っている人も多いらしく、海外の掲示板でもイロイロ議論されていた。
しかし、今回3ではこのフォント変更が可能になったことに加え、Blurエフェクトをつけることが可能になった。 この機能追加を見た途端、アップグレードするしかないと思い立ち £12 の支払いをPayPalにて完了した。
幾つかテーマを作って公開しようとしたが、公式(?)に投稿するテーマには制限があり「Standard Fonts」を使ったものしか投稿できない仕様になっているようだ(そんな気はしてた)。
To share themes on alfredapp.com, your theme needs to use fonts from the 'Standard Fonts' section in the font popup menu. These fonts will work in Alfred on every standard Mac configuration.
最終的にはGitHubにアップロードした。
作ったテーマは以下の3つ。
やっぱ、細いフォント綺麗だね。Retinaあってこそだけど。
よかったらどうぞ(Hiragino Sans 使ってます)。
沖縄の岩場 読谷ボルダーと瀬底ボルダー
ぼくは、趣味であるスキューバダイビングをするため、年に一度くらいのペースで沖縄に行く。 さらに、もう一つの趣味であるボルダリングもついでにやろうと思い登れる岩場を調査した。調べてみると、あまり多くの情報は無く(あっても古く)トポなどは存在しなかった。 沖縄のボルダーを登る人は少ないかもしれないが、探している人のためにメモを書いておこうと思う。今回は名護に滞在したため、読谷と瀬底ボルダーに行った(前回は具志頭に行った)。
トポについて
以前はコーラルロックというところでトポが販売されていた模様。「ぶり」(具志頭ボルダーのトポ)も「Coral on the beach 沖縄ボルダリング課題集」(沖縄本島のトポ)も販売していないようだ。
前回沖縄に訪れたときは、具志頭ボルダーに行ったときに地元のボルダーの方がトポ(ぶり)を持っていたので観せてくれて大変助かった。トポを持っていない状態ではYoutubeの動画を観ながらラインや岩を探すしかないのが現状。
少しでも参考になるように(自分で忘れないために)、場所だけメモしておく。 また、余裕があったら写真も撮ってきたので何処かにメモ用のトポをアップロードしようと思う。
トポ情報お待ちしております(切実)。
岩質
岩は琉球石灰岩という沖縄特有のもので、登ると凄い痛い。岩肌が鋭利なうえ、課題はバルジやルーフが多くとにかく痛い。テーピングが必須とされる。親指以外の指の腹に細いテーピングを巻きつけるとよい。膝とかをぶつけるとすぐ血が出るので注意。
読谷ボルダー
「ホテル日航アリビラ」の隣(?)のビーチにある「アリビラボルダー」と、近くにある「体験王国むら咲むら」の「むら咲むらビーチ」の隣りにある「熟女岩」からなるボルダーで、今回はアリビラボルダーしか行けなかった。
最初は、それっぽい岩がありすぎて、どの岩が「それ」なのか全く分からず30分くらいマットを背負って浜辺を歩き回った。
それっぽいのが見つかったのがこれ。おそらく右側がアリビラボルダーで、左側もなんだか少し登った形跡がある。
右側の岩は、写真右上のヤシの木(?)と、左下の三角形のように黒く飛び出している岩の形が特徴だと思う。あと、濡れてる。
下地は岩がむき出しだったが、平らだったのでブルーシートとマットを敷いた。 正直課題はどこになにがあるかよくわからなかったので、適当に登ってYoutubeにあった動画から「無名4級」を登った。他にも初段とか熟女岩の方も挑戦したかったが、この後名護まで行かなければならず、時間がなくて撤退。
地図はこんな感じ。
もっと、やりたかった。。。あと、トポがほしい。。
参考動画・サイト
- アリビラボルダーの課題 - YouTube
- 読谷_ヒージャー_初段_20150308 - YouTube
- 沖縄読谷アリビラボルダー2級 - YouTube
- 読谷ボルダー - アリビラボルダーその1 無名(4級) - YouTube
- 沖縄ボルダリング 読谷アリビラ&新原ビーチ - YouTube
- 沖縄ボルダリング 読谷アリビラボルダー - YouTube
- 読谷_ポケパー_初段_20150308 - YouTube
- ポケパー(初段)&イノちゃんクラック(2Q) - YouTube
- 沖縄アリビラ チーイリチーSD2Q V4 - YouTube
- アリビラ・熟女コンプリート。
- 来沖でアリビラ。
- アリビラセッション。
- 披露宴翌日のアリビラ。
- 奴樽蔵(熟女岩,2段)。
- ゴーダーチャンプルー(初段)。
- 熟女のムーブ解決したが。
- 秋晴れじゃない? ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- サンゴ15(1~2級?,読谷)。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- 秋晴れ(初段、アリビラ)。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- あと少し何かが足りない。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- 2013登り納め。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- 若さ爆発。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- どうやってたっけ? ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- 抱擁(1級)。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- アリビラのち熟女。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- カチパー(初段V7)。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- 手ごわいぞアリビラ。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- フーチバーヒージャー(2級)。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- ヒージャー(初段、V8)。 - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- 熟女&アリビラ、再び。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- 救出劇。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- 熟女に完敗。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
- ポケパーできた(アリビラボルダー)。 ( 登山 ) - 沖縄ボルダリング日記(石垣島滞在編)。 - Yahoo!ブログ
瀬底ボルダー
ここもあまり情報は無かったので、Youtubeの動画をもとに岩を探してそれっぽいのを見つけた。この後、ヘリオス酒造の酒造見学があったので、滞在時間が30分しかなく悲しかった。酒造見学に行かずここで登っていたかったがドライバーがぼくしかいなかったので断念(そして、見学に行ってもドライバーなので飲めない)。
瀬底ビーチの駐車場(1,000円)に車を停め5分くらい浜辺を北に歩く。どれも登れそうで、時間があれば課題とか気にせず登ってみたかった。
こういうルーフとかがたくさんあった。
すると、動画に写っているっぽい岩が見つかった。写真右側の手前に写っている、ふたコブの岩がそうだと思う。水の流れたような黒い跡や、左奥に写っているヤシの木の生えた岩が目印。
ところが動画を見てみると、スタートはもっと下からしているようにみえる。どうやら砂で1mほど埋まってしまっている模様。仕方ないので出来るところからスタートして登れるところまで登った。動画も一つしか見つからず、時間もないのですぐ撤退。
地図はこんな感じ。
参考動画
まとめ
今回は、名護周辺のボルダーを回った。まだ、北側や東側のボルダーは行ったことがないので調査して行ってみたい。具志頭も行きたかったが真逆だったため断念。岩場の規模としては具志頭ボルダーが一番大きいようだ。
課題が設定されていない場所(そもそもトポがないからよくわからないが)じゃなくても登って楽しめる岩がたくさんあるのでまた行きたい。あとチョークは一応持っていったけど全く使わなかった。ゴミは残さないように。
最後に、沖縄ボルダリングマップを置いておきます。