北海道キャンプ旅行(3歳の子連れ)

8/22(金)〜8/29(金)に1週間の行程で北海道の旭川富良野で家族でキャンプしてきました。家族構成は自分、妻、娘(3歳)の3人で、キャンプ自体は家族では年数回する程度。北海道は個人的に過去2回キャンプしながらバイクで回った事がありましたが、家族と一緒となると勝手が全く違って難しい…。特に5日間連続でキャンプするのは家族では初めてだったので不安もあったんですが、結果終わってみると概ね楽しめました。

行程的には5日のうち最初の2日は旭川に滞在し旭山動物園に行く、残りの3日は富良野に滞在しのんびり過ごすというわりとお気軽なプランです。下調べする時間があまりとれず、キャンプする事と旭山動物園に行く以外は決まってませんでした…。以下、完全に個人用メモですが備忘録がてら雑感を書いておきます。

良かった点

移動にフェリーを利用した

フェリー移動の場合、東京方面からだと水戸の大洗発でおおよそ20時間弱かかります。移動手段としては非効率に思えるんですが、フェリーの中には大浴場ありレストランありキッズコーナーありで思いのほか家族には好評でした。個人で利用する時は雑魚寝のエコノミーを使うんですが、今回は個室利用です。料金的には高くなりましたが、普段と同じように生活できますしむしろ子どもは船に乗って上機嫌だったりするので、長距離移動にも関わらずストレスが全くなくゆっくりできたのは良かったです。子連れだと最近どこへ行くにも長距離はわりと大変だったので…、子連れでフェリーはアリだと思いました。

f:id:takayukii:20140829173814j:plain

今回利用したフェリー

料金的な面ですが、フェリー往復で¥140,000程度かかりました(車の輸送込み)。そこそこかかってるんですが、これを飛行機+レンタカーの料金で考えると航空券が仮に片道¥15,000だっとして3人の往復で¥90,000程度。それに6日分のレンタカーで¥30,000程度かかると考えると¥120,000程度は少なくともかかります。効率をとるかくつろぎをとるかですが、飛行機の移動でバタバタするならフェリーの中でゆっくり移動するというのが今のうちのスタイルには合ってそうでした。

なお、今回フェリーの船室をデラックスルーム(大人¥26,740)にしてますが、スタンダードルーム(大人¥18,510)もあります。ただ、デラックスルームは2名部屋なのに対しスタンダードルームは4名部屋なのでうちの場合は定員に満たず船室貸切料金(大人料金¥18,510の50%)が別途必要になります(※閑散期は不要)。という事もあり、子どもが2人以上だったらスタンダードのほうが広くて良いですが、うちの場合だと料金そこまで変わらないのならデラックスで良いかなと思いました。

子どもが楽しめるキャンプ場を選んだ

北海道のキャンプ場はいくつか再訪したいところもあったんですが、子どもが楽しめるところで考えてゼロベースで調べました。調べると北海道には遊具施設のついた公園に隣接したキャンプ場がいくつかあり、格安かあるいは無料のところもありました。中には室内遊具施設もあったり。キャンプは天候の影響をもろに受けるので、室内遊具施設があるとリスクヘッジになります。下記のまとめが参考になりました。

北海道 子供が遊べるキャンプ場

今回は旭川市街地から近い「カムイの杜」公園を利用する事に。また、近郊の富良野には「星に手がとどく丘」キャンプ場があり、ここは私営のキャンプ場ですが、敷地内に羊と兎を飼育しており、子供達がふれあえるようになっています。子どもが動物好きならかなり楽しめるところだと思います。

今回は観光も少ししたんですが、なんだかんだでキャンプ場にいてのんびりしてる時間が一番楽しめました。子ども連れで観光って移動が多いとけっこう辛いので、キャンプ場自体で退屈しないのはかなり良かったです。

星に手のとどく丘キャンプ場

f:id:takayukii:20140826081157j:plain

特に「星に手のとどく丘キャンプ場」は動物の他に夕日も星も奇麗だし、併設のジンギスカン屋「ひつじの丘」が美味しくて満足度が高かったです。このキャンプ場ではたき火を推奨していて、石組みしてあるので焚き火台がなくても気軽に焚き火ができるようになっています。星空を見ながら焚き火するのってなんだか月並みなイメージはあるんですが、実際やってみると良かったです。

都市近郊のキャンプ場からはじめた

今回は旭川の「カムイの杜」からキャンプをスタートしました。このキャンプ場は旭川市街地から車で数分のところにあるので、何か足りないものがあっても気軽に買いに行く事ができます。アウトドア用品に関しても旭川には秀岳荘があり買い足す事ができます。いきなり大自然の中に行くのも良いですが、ぼくのように普段からキャンプに行ってない人は最初は都市近郊から始めるのがリスクヘッジできて良いと思います。ちなみにこの「カムイの杜」旭川市街から近いんですが、蛍がいたり、狐がいたりしました。市街地から近いと言ってもさすがは北海道、あなどれないです。特に狐についてはメッシュシェルター内に置いていた食品をレジ袋ごと2回くらい持って行かれました。レジ袋はテントかクーラーボックスに入れる等の対策が必要ですね。

食材を買いすぎないようにした

今回は1度の買い物で食材を買いすぎないように気をつけました。先日今回の北海道の練習として、丹沢でキャンプをしてみたんですが、だいたい「必要だろう」と思って買っても食べきれなくて捨てる事になりそうだったので…。うちの家族構成の場合、1度に¥2,000~¥3,000程度の買い物でちょうど良いようです。これで夕・朝食および飲み物等は余裕でカバーできました。あまり無駄にゴミが出なくて良かったです。これは今後も気をつけようと思いました。

悪かった点

予想外に冷え込んだ

25、26日が曇りがちですごく冷え込みました。前日までは半袖短パンで快適だったんですが、その日は薄手のダウンを着ても少し寒いぐらいでした。朝は10℃を少し下回るくらい。後から知ったんですが、北海道全域で低温注意報というのが出てたらしいです。子ども服は厚手の長袖やジャケットも持ってきてたのでなんとかなりましたが、なかったら厳しかったですね…。アウトドアなので、暑さにも寒さにも対応できるよう重ね着できるようにしておいたほうが良いです。

事前の情報収集が不足していた

温泉と昼食はもう少し事前に調べて行っても良かったかな〜と思いました。キャンプは基本昼を豪華に外食にする事が多いんですが、昼食をはずしてしまうと少し味気なくなります。旭川はもっと良い店があったと思うんですが…。富良野のあたりだとやはり美瑛に雰囲気の良いお店が多いようですね。

今はスマホがあるので現地でも調べようと思えば調べられるんですが、スマホって触ってると子どももスマホ使いたがるし、いろんな情報が気になって迷ったり行くところが増えたりして結局のんびりできなかったり、あまり良い事はないです。事前に調べてある程度選択肢を絞り込めておくと良かったかなと思いました。

子どもの体調が少し悪化した

うちの子どもは敏感肌なほうなんですが、湿度が高いと肌を掻いてしまい荒れてしまったりします。今回も本人は至って元気なんですが雨で湿度が高かったためか肌が荒れ気味になりました。しかし旅行後診察してみると、「とびひ」らしくウイルス性なのでキャンプ自体はどうも関係なかったようです。ただ、心配な病気とかあるんであれば関連する病院はやはり事前に調べておいたほうが良かったなと思いました。今回も早く原因が分かってればもっと安心して遊ばせられたのかなと思います。

諸経費

最後に諸経費を計算しておきます。

フェリー(片道) ¥71,340

等級: デラックス 洋室(2名) ご利用者数: 3 車両台数: 1 ペット: なし

小計: ¥142,680

高速道路
  • 都内→水戸大洗: ¥3,600
  • 沼ノ端西→旭川鷹野: ¥3,570
  • トマム→沼ノ端西: ¥3,360
  • 水戸大洗→都内: ¥3,600

小計: ¥14,130

宿泊費
  • カムイの杜(2泊) ¥0
  • 星に手のとどく丘キャンプ場(3泊)¥7,500

小計: ¥7,500

温泉
  • 杜のSPA神楽: ¥600 x 2
  • 高砂温泉: ¥600 x 2, ¥250 x 1
  • フラヌイ温泉: ¥600 x 2, ¥300 x 1
  • 吹上温泉 白銀荘: ¥600 x 2
  • ハイランドふらの: ¥510 x 2

小計: ¥6,370

食費
  • 往路フェリー(夕・朝食): ¥2,400 x 2
  • 旭川ラーメン 橙ヤ: ¥1,000 x 2
  • ひつじの丘: ¥3,800
  • 富良野チーズ工房 ピッツア工房: ¥1,500
  • 富良野チーズ工房 アイスミルク工房: ¥500
  • カンパーニ六花亭: ¥500
  • ふくだめろん: ¥250
  • ランチ&カフェ 風: ¥2,200
  • ひつじの丘: ¥3,800
  • 北海道ラーメン 雅: ¥2,300
  • 帰路フェリー(夕・朝食): ¥2,400 x 2
  • コンビニ・スーパー代: ¥8,000

小計: ¥34,450

観光施設

小計: ¥5,440

合計: ¥210,570

合計で21万程度となりました。宿泊代がかかってないので、通常の観光旅行よりは節約はできたかな?と思いました。

まとめ

なんとなく課題はやはり事前の情報収集ですね。共働きなせいか毎日時間に追われていて旅行の事を綿密に考えるのはちょっと無理な感じでした。今回は子どもは遊具施設とか動物とか船とか楽しめたみたいだし、キャンプである程度アウトドア欲も満たせ、かつお金の節約にもなってたり、費用対効果は高かったかなと思うんですが、もっと1点豪華な感じが欲しかったです。ちなみに豪華さを期待してよく知らないトマム星野リゾートとか帰りに寄ってみたんですが、平日のお昼はお店がほとんどやってなくて結局ラーメンしか食べられなかったです…。

ふと思ったんですが、ココナラで旅行のおすすめ情報だったりプランニングをお願いしたりするのも良いかもしれません。次回は活用してみようと思います。

Google Apps Script オフィスでの活用例

Google Apps Script (GAS)とは

Google社が提供するGoogle AppsGmail、Calendar、Drive、Spreadsheet等々)で利用できるスクリプト言語です。中身はJavaScriptなんですが、Googleが提供しているAPIがけっこう便利で、ちょっとしたプログラミングで使い慣れたGoogle Appsに自動化処理を組み込む事ができます。イメージ的にはよくエクセルのマクロ(VBA)に喩えられるような気がしますが、エクセルの場合はローカルで動作するのに対し、Google AppsおよびGASはクラウドで動作するのが大きな違いかなと思います。

プログラミング経験がある人であれば、ドットインストールで1、2時間くらいで流してみたら使えるようになると思います。

Google Apps Script入門 (全16回)

GAS

GASを使っていて便利に感じる点

どこでも誰でも書ける

当たり前なんですが、Google Appsクラウドです。GASもクラウド上でコーディングする事ができます。エディタも必要ないですしデプロイみたいな作業も必要ありません。Spreadsheetの場合であればメニューの「ツール」のところから「スクリプトエディタ」を開くだけ。パソコンあればどこからでも誰のパソコンでも書けてしまうのはとても便利ですね。

JavaScriptで書ける

ぼくの場合そんなに使い慣れたプログラミング言語というわけでもなかったんですが、知ってる言語だとハードル下がりますね。加えて冒頭で書きましたが、APIも便利で、たとえばGASから外部のREST APIを叩くなんて事も簡単にできます。下記のような感じ。

var response = UrlFetchApp.fetch(
                          "http://example.com/api/getXX",
                           {
                             'contentType' : 'application/json',
                             'method' : "get",
                           }
                        ); 

var data = JSON.parse(response);

たとえばYahoo!などが提供している天気情報APIと組み合わせて…、など簡単にいろんな事ができてしまいそうです。

スケジュール実行が簡単にできる

これが本当に便利です。通常、スケジュール実行させようとすると、どこかにサーバーを作って、cronを仕掛けてみたいな事を考えてめんどくさくなってしまうんですが、GASだとJavaScript書いて、時間主導型のトリガーとして設定しておくだけ。サーバーを作る必要もcronの設定をする必要もありません。僕の場合、半分くらいこれが便利で使ってるかもしれません。

普段からGoogle Appsを使ってる

まあ前提条件みたいなものですが…。プライベートでも会社でもGoogle Apps使う事が多いです。なので、GASが少し書けるだけで普段の日常生活がちょっとラクになったりするので、普段からプログラミングしない人でも使うモチベーションはけっこう高いです。

オフィスでの活用例

というわけですごく便利だなと思い数ヶ月前からオフィスで使われるようになってきました。馴染みのあるGoogle Appsなのでエンジニアだけじゃなくて、普段プログラミングしないような人も触ってるのが面白いです。まだ少ないですがオフィスでの活用例を紹介します。基本お手軽リマインダー系が多いですね。

活用例1 シート記入を催促

あるプロジェクトでは週次で活動予定と活動実績をSpreadsheetで管理する事になっていて金曜日の夜から月曜の朝までに全員が記入するというルールがありました。ただ金曜日の夜というのもあってみんな忘れちゃう。これを管理者が毎週催促するのも面倒なので、GASを使ってリマインダーメールを送るようにしました。GASは3段階に分かれていて、

  1. 金曜日にその週のシートを作成する。メンバーの一覧と活動予定・活動実績を空欄で作ります。そして、「書いてね」とメールで送信する。全てコードで行います。

  2. 土曜日に空欄の人をチェックし、名指しで書かれてない事をやんわりと伝えるメールを送信する。全てコードで行います。

  3. 日曜日の夜に再度メールを送信する。これもコードで自動実行です。

単純な「書いて」というだけのリマインダーではなく、中身を見て一工夫入れると格段に便利に感じます。この場合は、名指しできた事もあって、けっこう効果がありました。

活用例2 来客予定を定期的に周知

オフィスは小規模なベンチャーなので受付も特にありません。なので、来客はアドミさんが基本対応してくれたりするんですが、気付いた人が対応する場合もけっこうあります。たまにあるのは、あってはいけない事なんですが、応接室が前の会議でコーヒー出しっぱなしになってたり付箋がちらばってたりという事があります。それで、みんなGoogle Calendarを使ってるので、Calendar APIを利用してその日の来客予定を周知するGASを作ってます。

  1. 会議スペースのGoogle Calendarに来客の場合は来客というキーワードを含めてカレンダー登録してもらう

  2. 隔日で直近1週間の予定を確認し来客キーワードがあるものをリストアップ。日時、来客予定の件名、誰のお客さんかを含めメールで周知する。コードで自動実行します。

ちなみにメールだけだとやはりすぐ忘れてしまうので、来客の10分前にオフィス内にある3つのhueライトを点滅させるようにしています。hueはAPIを叩くだけでライトの色を変えたり点灯消灯をコントロールする事が簡単にできるのでとても便利です。これも機会があればまた紹介したいと思います。

これで来客対応が以前よりだいぶスムーズにできるようになりました。ライティングなどの物理的なデバイスと連携できるとより効果が大きいですね。

活用例3 各種リマインダー

上記2つはぼくが作ったんですが、他にもプログラミング書いた事がないアドミさんがお弁当の発注確認をGASで行ったりとか。メールの送信処理なんかはほとんど定型のコードで書けてしまうので、プログラミングした事がない人でも簡単にしかけられます。こういう小技みたいなのを入り口にして徐々に応用的な使い方を覚えて行くというのも面白いかもしれませんね。下記がメール送信のコーディング例です。変数の代入とか関数の呼び出し方さえ分かれば誰でも使えそうです。

function sendMail(mail, subject, body) {

  Logger.log(mail);
  Logger.log(subject);
  Logger.log(body);

  // メール送信先
  var sender = "example@example.com";
  var cc    = "";
  var bcc   = sender;
  var reply = sender;
  var to    = mail;

  // 送信先オプション
  var options = {};
  if ( cc )    options.cc      = cc;
  if ( bcc )   options.bcc     = bcc;
  if ( reply ) options.replyTo = reply;

  // メール送信
  MailApp.sendEmail(to, subject, body, options);

}

もちろん業務利用にも活用できます

オフィスのちょっとした自動化にも便利なGASですが、もちろん業務上の簡易的なツールとして利用するのにもとても便利でたとえばPHP等で開発するのに比べ格段に短期間かつ使いやすいものが作れます。特にSpreadsheetを使う場合が多いですが、要因としてはViewにほとんど手をかける事なく使えるものが作れてしまうという点が大きいです。フィルタをかけたり、ソートが出来たり、集計したり、普段Spreadsheetで当たり前のような操作でもWebアプリで作ろうとするとそれなりに工数がかかります。ですが、Spreadsheetを使っていれば、プログラミングで足りない部分があってもSpreadsheetの機能を使って操作者側で応用する事が簡単にできます。結果として短期間で実装でき、かつ変更対応も自己完結するので手がかからない事が多いように感じてます。ぼく自身もこれまで5本程度ツールを作りましたが簡単なもので1時間、時間がかかったものでも1日程度(他のサーバー開発含め2日程度)でリリースしているように思います。例としては下記のようなものがあります。

  • あるサービスの利用傾向分析ツール各種
  • あるサービスの定型文メール送信ツール(宛先フィルタ&文面自動生成&送信)
  • ある新規事業のプロトタイプシステム(ユーザー管理&SMS送信)

その他にもこれは別の人が作ったものですが、GASで作った社内の経費精算システムなど。クラウドの利便性を当たり前に享受しつつ、使い慣れたSpreadsheetで、ユーザー的にも満足度が高い仕上がりになっています。

また、面白い利用例が出来たら共有させて頂きます。

Go言語を簡単に調べてみた印象

なぜに今Go言語?

Node.jsからGo言語に切り替えたという記事を最近よく見かける気がします。Go言語ってGoogleが作った言語っていうくらいしか前提知識なかったのであまりピンと来てなかったんですが、下記のid:yosuke_furukawaさんの記事で最近ようやく興味を持ち始めました。

記事はNode.js界隈で貢献の大きかったvisionmediaがNodeを捨てて、Goに切り替えて開発を行うと宣言したという内容です。ぼくはNode.jsも最近触り始めた程度なので記事に書かれているようなNode.jsならではの苦労についてはまだあまりピンと来てないところもあるのですが、確かにJavaScriptのエラーハンドリングはコールバック多用しがちでしんどいな…という印象はありますね。また最近面白法人カヤックさんもGo言語を推進するという記事を書かれてます。注目度高いですし1〜2年たったら使える開発者かなり増えてそうな気もします。

Go言語の概要

Go言語、よくGolangって言われたりしますが、言語の概要を搔い摘むのに下記の動画がとても分かりやすかったです。10分くらいの動画です。


Golangとは - YouTube

うん、コンパイルが高速なのと並列処理に優れているというのは分かりました。まずコンパイルがあるの良いですね。元々Javaを書いてた時期のほうが長いのでぼくにとってもこれは嬉しいです。他のGo言語触ってみた系の記事でもコンパイラ高評価な気がします。

言語仕様的には下記のQiitaの記事が全体感把握するのに役立ちそう。言語仕様については褒めてる人多いですかね。あまりディスってる記事は見かけませんでした。特に並列処理が簡単にできるgoroutineとchannelが面白そうかな。

忙しい人のためのA Tour of Go

Go言語は高速

上記の動画でも触れられてますが、調べてるとGo言語かなり速いそうです。id:yusuke_furukawaさんもベンチマークされてますね。性能に関してはコンパイル自体の高速性も含め賛辞ばかりが目につきます。

ただ、個人的に気になるのは接続数のスケール(所謂C10K問題)へどう対応しているのかという点でした。Node.jsでは非同期I/Oで処理するため接続数が増加してもスケールするというところが魅力でしたが、Go言語の場合はそのあたりどうなんでしょうか。

Go言語と非同期処理

もちろんNode使ってる人たちが切り替えてるのでスケールする仕組みになっているんだろうなと思いつつ、ただググってもなぜかあまりヒットしない。「非同期I/O Golang」等とググってみたんですが、あまり分かりやすそうな記事が見つかりませんでした。Node.jsだとこの非同期I/O関連の記事ってかなりヒットするんですが、Go言語は記事自体がまだ少ないかもしれませんね。

そして関係してそうな英語記事を見つけました。下記の記事の「Taking another approach」という章に、Goがイベントループ(goroutine)を利用してリクエストをハンドリングする形で描かれています。

C10K – A NON-BLOCKING WEB SERVER IN GO

go eventloop

これはGoの並列処理に関する書籍の広告用の記事なのかな。なるほど。ノンブロッキングというところではNode.jsと同じコンセプトですよね。英語なんで誤解しているところもありそうですが、Node.jsと同様スケールするというものだという事が記事を斜め読みしつつ理解できました。と言う事で、ちょっと調べてみて分かった気になり、実際にGo言語を勉強してみようというモチベーションが湧いてきました。Go面白そうですね。