Yammer の非同期に追加・更新されるエレメントに対してユーザースクリプトを適用するには

やりたいこと

Chrome Extensions の Content Scripts で、画面の改変を行いたい場合、静的なエレメントを対象にするのであれば run_atdocument_enddocument_idle を指定すればよさそうです。

Content Scripts - chrome

In the case of "document_end", the files are injected immediately after the DOM is complete, but before subresources like images and frames have loaded.

In the case of "document_idle", the browser chooses a time to inject scripts between "document_end" and immediately after the window.onload event fires. The exact moment of injection depends on how complex the document is and how long it is taking to load, and is optimized for page load speed.

Yammer は全ての遷移が非同期に行われる

Yammer は閲覧するグループの変更や inbox への移動等も全て非同期に行われています。さらに History API で URL も変更されていっています。

このような画面においては、最初の読み込み後の改変はうまく行っても、それ以降が追随できません。

ただ、Yammer に関しては初回の読み込みすらも非同期なので run_at の指定だけではうまくいきません。

試したこと

  1. popstate イベントを補足する
  2. hashchange イベントを補足する
  3. chrome.webNavigation イベントを補足する (chrome.webRequest イベントも考えてみた)
  4. MutationObserver を利用する

popstate イベント

Yammer が History API を使っているようだったので popstate で画面の変更を検知して、改変をかけ直す作戦を取ってみましたが、 Yammer が pushState をするタイミング的に画面の状態が次の画面に変わっていないので意味がありませんでした 😅

developer.mozilla.org

hashchange イベント

冷静に考えたら今回のケースだと popstate とタイミング同じなんですけど、試してやっぱりダメでした。。

developer.mozilla.org

chrome.webNavigation イベント

Chrome Extensions の方の API ならうまいことサポートしてくれないかなと考え試してみました。

onDOMContentLoadedonCompleted あたりが、画面の更新毎に拾えると更新後の DOM に対して改変できていいなと期待したのですが、初回読み込み時に非同期に追加されるエレメント追加は全て拾ってくれたのですが、閲覧グループ変更等のイベント時には onReferenceFragmentUpdated しか発生せずで、DOM 読み込み以降のイベントは拾えませんでした 😲

chrome.webNavigation - Google Chrome

chrome.webRequest という API も用意されており、こちらは非同期リクエストのレスポンスを受け取ったところまで補足できるのですが、いずれにしろ更新後の画面の DOM が構築された後は無理そうだったので今回は試さず。

chrome.webRequest - Google Chrome

ちなみに webNavigation は Content Scripts では実行できない

という制約があるので Event Page (または Background Page)で webNavigation の補足を実行して、Content Scripts にメッセージを飛ばす必要があります。

// background.js
chrome.webNavigation.onCompleted.addListener(function(data) {
  // Event Page から Content Scripts にメッセージを飛ばすには tabId を指定する必要があるので、アクティブなタブを取得してから
  chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
    chrome.tabs.sendMessage(tabs[0].id, {webNavigationEventType: 'onCompleted'}, function(response) {
      
    });
  });
});

// content_scripts.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  if(request.webNavigationEventType == 'onCompleted') {
    // ここで DOM を改変できたらよかったな。
  }
});

MutationObserver

元々、スクロール自動読み込みに対応するにはこれを使うかなぁと思っていたのですが、結果として画面の更新に対しても MutationObserver を使うのが良さそうでした。

以下の例は(乱暴ですが) body 配下全部監視して、追加されたノードに querySelector をかけて改変したい Yammer のアクションボタンがあればログに出すというものです。

// NOTE body 配下の .yj-actions のエレメント(yammer のアクションボタン)の追加を監視するようにした
var selector = '.yj-message-list-item--action-list.yj-actions';

var observer = new MutationObserver(function (mutations) {
  mutations.forEach(function (mutation) {
    for (var i = 0; i < mutation.addedNodes.length; i++) {
      var addedNode = mutation.addedNodes[i];

      if (typeof addedNode.querySelector === "function") {
        if (addedNode.querySelector(selector)) {
          console.log('MutationObserver : addedNode matches');
        }
      }
    }
  });
});

observer.observe(document.body, {
  childList: true, subtree: true
});

これをやってみて気付きましたが、Yammer って、閲覧グループを移動して、画面からエレメントが消えてもキャッシュしてるんですね。直前で閲覧していたグループに再度移動しても、ノードが一切追加されませんでした。(どれぐらいキャッシュしてるのか分からないですが、改変したエレメントのライフサイクルは注意しないといけないっぽい)

参考

いろいろやってみて

Chrome Extensions には、まだまだ使って事ない API あるなぁっていうのを実感。(後、公式ドキュメントが充実していて助かる)

後、 MutationObserver 便利。

ただイベント拾ってログ吐いてるだけですが、試したコードは以下においています。Chrome Extensions 形式になっているので、実際に試すことができます。

github.com

子供ができたら勉強時間が減るけど、子供をネタに何か作る気になった話し

この記事は Sansan Advent Calendar 2015 の 6 日目です。

最近子供が生まれました

10 月に初めての子供が生まれて、睡眠不足の日々を送っております 😲
まだ「見るだけで疲れが吹き飛ぶ!」みたいまでいきませんが、ふんがふんが言いながら昇竜拳的なポーズを取りつつ寝てるのを見るとほんわかした気持ちになっていいですね。

子育てプログラマ・ITエンジニア・Webデザイナー Advent Calendar 2015 は新米子育てプログラマとして楽しみに見ております。

いつもは四国でリモートワーク、でも今は東京勤務

いつもは徳島県でリモートワークをしてるのですが、今は東京の本社に通勤しています。というのも、妻の実家が埼玉なので、里帰り出産の前後期間だけ勤務地変更をさせてもらって埼玉から青山の本社に通っております。(ちょっと、片道 90 分がじわじわと身体にダメージを与えてきておりますが。。)
ライフイベントに合わせて勤務地の融通を効かせてくれる会社には本当に感謝です。

募集情報 Ruby, Ruby on Railsエンジニア f:id:dany1468:20151205184221p:plain

実は本社以外の Ruby エンジニアが私しか居ないので、 地方在住のリモート仲間を絶賛募集 しております。今は徳島と京都にしか「ラボ」と呼ばれる施設は無いのですが、在宅ワーカーも各地に点在していますので徳島・京都以外の方も是非お問い合わせください! (Skype 面談等もやっております)

余談ですが、弊社は「全員採用」のスローガンで採用活動をやっています(応募者全員採用という意味ではなく、全員で採用活動しようぜ的な採用目的感あふれる感じです)。

よくあるかもしれませんが、社員全員が一緒に働きたい人を紹介する権利を持っていますし、人事もそれを歓迎してくれています。「いきなり応募するのもなぁ」という方は事前に社員とコンタクトを取っていただけたりすると、その社員からの紹介ができたりしますし、事前に感じが分かってよいかなと思います。

(今回のカレンダーに登録しているメンバーはどこかの勉強会等に出没しているんじゃないかなぁと。)

子供ができると勉強時間が減る

と、生まれる前にいろんな人に言われましたが、実際現在(一時的とはいえ)通勤時間が長い事も含め、日々の勤務時間(ちょっと残業)以外に Mac に向かう時間すら取れなくなってしまいました。。少しの家事の分担や、子供を寝かせる時に抱いていたり、さらに夜泣きで寝るのが遅くなると昼間すらもしんどくなる時も。

リモートワークに戻ったとしても、通勤が無くなっても今度は実家に頼っていた部分が無くなるので大変さは変わらない(というかもっと大変になる)のだろうと想像しています。

子供の写真や動画を両親たちに共有しよう

これは誰でも考えることだと思いますが、両親の IT リテラシーの度合いによってどういう手段が取れるかは変わってきますよね。

ちょうど生まれる前ぐらいに、元同僚が まごちゃんねる という製品のクラウドファンディングの募集を始めて、「これだーーーー!!」と思って即ポチったまでは良かったのですが、「出荷だいぶ先だーーー」という事実がすぐに分かり、それまでは自分でなんとかするしか無いという事態に陥りました。。

うちの家族といえば

妻のお父さんを除いて、決して得意ではないというか、私の両親にいたっては当然のようにガラケーです。
祖母が二人いますが、一人は iPad mini でメールを見たりできるのですが、もう一人はガラケーでのメールのやり取りも得意ではありません。

つまり、世の中にたくさんある「家族 SNS」も「家族写真共有サービス」も Apple TV と iCloud でいい感じに共有もできないという状態です。
(さらに基本近くに住んでいる訳ではないので教育もできません)

万策尽きた!

そういう意味でも「テレビに接続するだけでいい」という「まごちゃんねる」のコンセプトはとってもありがたいものだったんですよね。

似たような製品としては、パッと以下の2つが見つかりましたが、インターネット越しに共有するというのが簡単にできなさそうなのですよね。

じゃあ、よくある「フォトフレーム」とかならメール等で送れるので、その点はいいのですが、写真の枚数が膨大になるのでフォトフレームの機能だとそれをいい感じに閲覧したり、ましてや動画の再生は難しそうだなぁというので除外しました。

(というか、昔一回フォトフレームを祖母宅に置いてみたけど、うまく運用が回らなかった。。)

じゃあ自分で作ろう!

これまでも写真と動画は Flickr にためていたので(旧 Pro アカウントなので今のところ無制限保存できるはず)、子供の写真も Flickr にため続ける予定でした。
そして、欲しい要件は以下としました。

  • 両親でも簡単な方法で写真と動画の一覧を閲覧できる
  • 更新の通知を自動で送れる

これだけであれば、Flickr に子供用のアルバムを作って、その更新情報にアルバムを開くリンクを貼っておけば、少なくとも PC (or 祖母は iPad mini )で簡単に開く事ができるはずです。

で作りました

dany1468 / ring_a_bell

Heroku Button を設置しているので、ボタン押して設定を済ませれば誰でもお使いいただけます。(設定多いですが。。)

機能

機能の概要は以下のようなものです

  • 写真・動画の一覧
    • Flickr に1つアルバムを作りそこにひたすら追加するという前提とする
    • アルバムのソートは「アップロード日:降順」で毎日ソートし直す
      • ソート順はデフォルトだと追加昇順になるため最後に追加されてしまう
      • ただ、これは更新通知の都合でそうしてるのもあり「撮影日:降順」にしてもいいかなと思ってる
  • 更新通知
    • 両親が見れるのはメールしか無いので、メールで送る
    • 自分が利用しているのは GMail なので、GMail で更新通知は送信する
    • 通知は一日一回を前提とし、「アップロード日」で前日のものがあれば更新を通知を行う
    • 更新通知は「更新があったかどうか」だけであり、現状その枚数等は通知しない
    • スクリプトは Heroku に配置し通知のスケジューリングは Heroku Scheduler を使って行います
  • 設定できるもの
    • メールの件名
    • メール本文に載せるメッセージ

どうだったか?

  • 基本は好評 🎉
  • ただ、Flickr の利用がちょっと難しかったらしい
    • 「画像が保存できないんだけど」(特に iPad とかからだと難しいらしい)
    • 「動画ってどうやって再生するの?」(一回詳細表示してから再生ボタン押す必要があるんですよね)

問題点も一回電話して説明すればその後は機嫌よく見れくれていて、たまに通知メールにも返事をくれるようになりました。

一人の祖母の問題

ここまでで、両親たちと iPad mini を使う祖母は上手くいきだしたのですが、もう一人の祖母はガラケーしかないので見ることができません。

普通にプリントした写真を送る

ちょうど以下の記事を覚えていました。

ばあちゃんにひ孫の写真をAPIで印刷&郵送する(AWS Lambda x Amazon S3 x Lob.com)

これを真似しようかと思ったのですが、日本だと API でプリントを受け付けてくれるサービスがありませんでした。。(Lob.com は日本にも送ってくれるらしいのですが、わざわざ国外から発送かぁとなり。)

仕方ない、送るのだけは手動でやろう!

という割り切りをして、それ以外はスクリプトでやることにしました。

  • プリント済みの写真は Flickr の tag で管理し、新しく送る時はその tag が付いていないものをスクリプトで一括ダウンロードするようにする
  • 何も考えずに全部プリントして送ってしまいたい(選別とかしてると時間無いので面倒くさくなりそう)

後者を実現するためには、安くプリントできる事が重要ですが、最近はすごいんですね。。5 円とかでプリントできてしまうんだ。

いくつか格安のプリント業者があったのですが、今回は しまうまプリント を利用することにしました。(API 実装してくれないかなぁ。)

ここまで 300 枚近く送りましたが、まだ 1500 円ぐらいなんですよねぇ、すごい。

送付先を直接祖母の家に指定すれば、アップロードするだけでこちらの作業は終わりなので楽です。

おかげで祖母も毎日写真を眺めてくれているようです!!

作ってみて

最初はとにかく用途にあうようなサービスを探す事にやっきになっていたのですが、途中から「あれ?これぐらいなら作った方が速いし、いろいろ自分の自由にできるんじゃないかな?」と思うようになり、子供を授乳クッションで膝の上に置きながらコーディングしたりしつつ、すごく楽しみながら作れました。小さなツールでしたが、学びもあって楽しかった。

時間も無かったので、いろんな gem に頼りつつ、テストコードも無い、重複も多いコードですが、少なくとも家族や自分を幸せにできたかなと思って嬉しいです。

Ruby makes me happy 、これを実感した時間だったなぁと思います。

今後も

時間はあまり取れないかもしれませんが、子供のおかげでいろいろと作りたいものが頭の中に出てきました。

今後も楽しんで何か作っていければなと思います!

参考

四国の山奥で Ruby のイベントを一年ぶりに開いてみた IN 神山

一年前・・・

f:id:dany1468:20150928210139p:plain

四国の山奥で Ruby のイベントを開いてみた IN 神山 - dunno logs

「ついにこれを実行に移すときが来た」ということで、去るシルバーウィーク前半のど真ん中という迷惑極まりない時期に神山.rb 第二回を開催してきました。

kamiyamarb.doorkeeper.jp

大事なことは最初に

謝辞

Ruby コミュニティの皆さん

今回のイベントは地元「Tokushima.rb」の皆さん、愛媛の「ゆるふわ.rb」の荻野さん、兵庫は「西脇.rb」の伊藤さんまでセッションに名を連ねていただき、近隣の Ruby コミュニティの皆さんとお話できた事が何よりうれしいことでした。

トークをしてくださった方はもちろんですが、遠くから来てくださった皆さんも含めありがとうございました!

リモート参加者の皆さん

加えて、リモートワーク系のセッションをやるにあたり、リモート参加枠も追加したことで、多用な職種な方に参加いただけた事も1つ繋がりを作れてよかったなと思いました。

当日は接続環境悪い中、最初から最後までお付き合いいただいて本当にありがとうございました!

トークしてくださった皆さん

また、Welcome セッションを飾ってくれた神山町近藤奈央さんの発表は、たぶん当日のベストセッションでもう開催数日前のお願いでしたが、快く引き受けてくださって本当にありがたかったです。

飛び入りでセッションしてくださったクボタのオオタさんも異業種でかつ国違う、人種違うのリモートの悩みを知れて良かったです!

そして、いろんな縁とタイミングが重なり東京から来てくれた Perl エンジニア @toku_bass さんもありがとうございました。Perl の事は避けて通ってきたので、すごく興味深く聞けました!

なにより、同僚の東京からかけつけてくれた Ruby エンジニアと、神山のアプリエンジニアは当日の運営のお手伝いに加えて、がっつりトークもしてくれて本当に助かりました。

kajisha さん

二年連続で東京勢として参加してくれた永和システムマネジメントの kajisha には本当に本当に感謝です。2年連続で一番むずかしいトークをしていたと思います。

最後に

当日遠く神山まで足を運んでくださった皆さんに本当に感謝です><

正直なところ

今回は当日までも、当日も大変で、「もう最終回><」と固く誓ったりしていました。
けれど、こうやってブログを書きつつ振り返ると、確かにテックなイベントとしては成立させられていないのだと思いますが、現場もリモートも酷い運営を温かく支えてくださって、現地のほとんどの人が懇親会に来てくれて業種問わずいろんな繋がりができているのを見ると、「やって良かったな」と改めて思うことができました。

次回をやるかはまだ分かりません。
徳島市に住んでいたって神山は正直来るのがめんどうな場所です。でも、今回もいろんな人に協力してもらって、助けてもらって開催できたので、もし次も県外からわざわざ神山に来てくれる Ruby エンジニアが居たら、その人を餌に開催できればいいかなと思ったりします。

今回のイベント当日を時系列で振り返る

どたばたを振り返る、、、ですね。

以下で登場する「伊藤さん」はリモート参加の西脇.rb 伊藤さんです。

AM 1:00 頃

リモートワークセッションを一緒にやる同僚との打ち合わせや Ruby の LT 用の資料を書き上げ、一旦オフィスを後にする。(結局この LT 資料は当日時間が無くて話せなかった)

AM 4:00 頃

もう一本話したかった農業系の LT 用の資料を書き上げ眠りにつく。(結局この LT 資料は当日時間が無くて話せなかった)

AM 7:30 頃

起床と二度寝を繰り返しつつ、なんとか 8:30 頃までにはシャワーと支度をすます

8:30 頃

当日到着する kajisha を徳島駅まで迎えにいく(片道 40km ぐらい)

9:30 頃

kajisha を拾い即リターン(また 40km ぐらい)

この時並行して、同僚の方で西脇.rb の伊藤さんとリモートセッションの接続テスト

10:30 頃

オフィスでオープニングとかクロージングのスライドを書き始める

11:30 頃

同僚たちが昼飯に行くのを見届けてラストスパートと機材の準備

12:00

会場である神山バレーコンプレックスに到着。スタッフと会場セッティングを始める。

(時間を間違えた方たちがぽろぽろ会場に来始める)

12:20 頃

同僚たちも合流し、リモート接続やリモート参加者に向けたスライドの見せ方の最終テストを始める

・・・・・・・・・

「あれ、なんかネット重くない?すげぇ声とか画像遅れるんだけど」

・・・・・・・・・

私「うーん、有線ケーブルでやった方がいいかなぁ。ありますか?」

スタッフ「短いのはあるんですが、長い有線ケーブル無いのでを本部から取ってきますね」

私「お願いします ><」

・・・・・・・・・

スタッフからの電話「長い有線ケーブルが貸出中で無いみたいです><」

私「WOW」

・・・・・・・・・

スタッフ「1G の回線使ってる Wi-fi の方が速いですよ」

私「な、なんだってーーーーー(それなら有線無くてもいけるか。というかそっちの回線を期待してたんだった。)」

・・・・・・・・・

私「あれ、なんかネット繋がらなくない?スタッフーーーーー!」

スタッフ「あれ、なんかおかしいな。。」

・・・・・・・・・

スタッフ「1G の方の回線使ってる Wi-fi が調子悪いみたいです。。前からちょいちょい調子悪いんですが今日はつながらないみたい。」

私「な、なんだってーーーーー!」

この時点でもう一個ある 100M の回線の方ではどうにもならん感じがあった。

・・・・・・・・・

私「よ、よし。とりあえず有線に賭けよう。プロジェクタやらもろもろを移動だ!」(場所としては微妙だけど、玄関口付近のルーターがあるところまで移動)

f:id:dany1468:20150921131450j:plain

・・・・・・・・・

私「Mac のLANコネクタが認識しないだとーーーーーふぁーーーーーー!」

この後、ルーター再起動してもらったり、ルーターからケーブル直接繋いだりとかしてるが、いっこうに改善しない。

ざわざわ・・・・ざわざわ・・・・

・・・・・・・・・

兵庫から接続試験してくれている伊藤さんにもこちらの焦りが伝わる

私「そろそろ決断のし時ですかね」

同僚「移動しますか・・・・」

私「移動します!弊社へ移動!」

リモート側へは移動のためオフラインになることを伝え、現地側は車の乗り合わせをお願いしつつ移動開始

この時点で既に開始時間の 13:30 ・・・・

13:45

先に到着してくれていた同僚が部屋のセッティングとプロジェクトの設置をしてくれていた!

ゲスト Wi-fi の設定を参加者に共有しつつ、そこから再度リモート接続のテストを始める。

私「目標は 14 時開始><」

・・・・・・・・・・

私「あ、あれ、なんかネット繋がらなくない??」

同僚「つながらないですね」

なぜか急にネットが繋がらなくなる、本社と同レベルのルーターなので、20 人ぐらい楽勝なはずだ。しかも今は Skype してるのも一人だけ。

誰か「デザリングしてる人もいるし混戦してるとか?とりあえずみんな一旦接続切ってみるとか?」

私「すみません、みなさん切ってください><」

みんなのネット環境を犠牲にすることで、とりあえずネット接続は元に戻った

・・・・・・・・・・

私「だめだ、なんか遅い><これは Skype でスライド共有しながらは無理だ。。。」

完全にまずい雰囲気が伝わる。チャット側でも「これはリモートにごめんなさいか」という気まずい雰囲気が。。

伊藤さん「カメラで画面移すだけで良いので、まずははじめましょう!」

この鶴の一声で、まずはリモートへの共有クオリティは落としてでも開始することができた。

f:id:dany1468:20150928232535j:plain

14:00

開始!Welcome セッションがいい感じに終わる。

「LT 順はもう Doorkeeper 通りでいきましょう>< ka_ さんお願いします!」

次々に LT を進めていく。

「あ、あれ?時間がすごく押してる?!」

確かに 30 分遅れでスタートだが、自己紹介タイムの 15 分を省いたので 15 分遅れぐらいで進むはず。そして、一人 10 分は確保していて、当初は 10 分話す人なんか居ないから、どんどん時間は余る予定だった。

「ど、どうしてだ。。。」

リモートも居るということで、気持ちゆっくり話してくれる人が多かった事も1つだが、それ以外にも「みんな以外によく喋るな!!!! 5 分も無理とか言ってたじゃーーーん!話し違うじゃーーーーん!」

16:00

当初はリモートワーク関連セッションが開始する時間、だが、まだ 1/4 は残っている。

私「LT 時間 30 分延長します!その代わりに、リモートワークセッションのディスカッションタイムをなくします!」

現地参加者にネットを切ってもらったので Remotty に入れる人も限られていたこともあり、ディスカッション自体無理だろうというのもあったので、このタイミングでプログラム変更。。この時点で自分の LT 時間も無くなって暗黙でスキップ。

16:35

私「LT お疲れ様でした、休憩でーーーーーす!!!」

一時の休息。とりあえず途中から参加してくれている人に挨拶周り等しつつ、リモートワークセッションの準備。

私「ちょっと、掘りごたつでミーティングしてないで、次のセッション始めますよーーーーー!」

16:45

リモートワークセッション開始。

最初は同僚と私のセッション、いい感じだ、いい感じに闇が深い、いい感じに暗い感じだ。

伊藤さん「あれ?カメラオフになってますよ!」

私「え?なんで急に?」

急に Skype がオフラインになる、でも会話は引き続きできている。しかし Skype はオフライン状態になるとカメラをオンにできなくなる。

私「ぬおおおーーーーーーーーー!」

またネットが悪いのか、とりあえずデザリングに変えてみよう。。。だめだ、直らない。。

伊藤さん「Skype 落ちてるっぽい!」

私「な、なんだってーーーーーーーー!(今日 n 度目)」

そんな奇跡はいらない。でも起きていたんだ。本当の話さ。

伊藤さん「appear.in でいきましょう!」

私「そうします!(涙)」

appear.in は経験上人数増えると極端に重くなったり、急に別のルームに飛ばされたりするのが不安だったが、当日は驚く程安定して使えた。

そこからは荻野さんの安定したトークと、伊藤さんの Hangout を華麗に使ったプレゼンで何の問題も無く進行しました。

18:00

終わった。終わったよ。

私「皆さん、お疲れ様でしたーーーーーー!」

(写真撮影、もうこの辺りの記憶は無い。)

さぁ、懇親会だーーーーーーー!

と、懇親会に移動する前に同僚が車の鍵をハンモックに落としたのを忘れて探しまわるというミラクルもありつつ。

19:00

私「な、なんだってーーーーーーー!懇親会に登録してない人が座ってるぅーーーー(吐血)」

お店の人に謝りながら料理を増やしてもらったのでした。。まあ、増える分にはいいや!

二階席に 19 人はさすがに狭い!でも逆にごった煮な感じで良かったのでは! f:id:dany1468:20150928235125j:plain

余談

懇親会会場に行く前に、途中で現場放棄した神山バレーサテライトコンプレックスにて、

スタッフ「あー、そんな事があったんですかぁ。これはもうここの Wi-fi が使えなかったのも dan さんが使ったからですねw」

私「なーーーーにーーーーー、でも、なんかもうそんな気がするぅぅぅぅ」

と、そんなこんなで当日は驚異的な引きであらゆる不運を巻き込んでいったのでした。。。

所感

真のリモートワーカー達の圧倒的落ち着き

ゆるふわ.rb の荻野さんは HeartRails 社、リモート参加の西脇.rb 伊藤さんは SonicGarden 社でリモートワークを行っている方です。

お二人の発表内容はもちろんなのですが、当日も伊藤さんはリモート越しからも冷静に現状分析や指示をくださっていました。
荻野さんは現地のバタバタに動じることない様子で、プレゼンもとてもどっしりと聴かせてくれました。

お二人には、9 月頭ぐらいからミーティングを持たせてもらい、リモートワークセッションはお二人の協力無しにはとても成立しませんでした。 リモート参加枠という取り組みも、おそらく自分ひとりでは絶対にやっていなかっただろうなぁと。

伊藤さんには、リモートからのセッションという事で、内容についてのみならず、方法もだいぶ考えていただいて、その結果当日行ってくださった Hangouts を使った配信という手法は本当に素晴らしかったなと感動しました。全く思いつかなかった。

荻野さんには懇親会でもいろいろとお話させていただきました。業種やチーム構成等のコンテキストの違いはあれど、私が考えていた課題感を異る視点で話してくださり、たくさんの気付きが有りました。(あまり外に出せない話しもあるのでここには書けませんが。。)

リモートワーク辛い話

当日の資料はだいぶ勢いで書いた内容もあったりでそのまま出せないのですが、「1つの事例」の紹介としては良かったのではないかと思いました。

また、こういう過渡期で起こる辛さって、過ぎ去ってしまうと美談的に語られてしまったりして、「結局どれぐらい辛かったのか分からない」という感じになりがちだったりするので、そういう意味でもこのタイミングで一度 dump できたのは良かったのかなぁと思ったりしました。

伝えたかったこと

元々は「どういうコンテキストの会社においても、リモートワークを希望する人がリモートワークをできるようになって欲しい。」という願いが背景にありました。(半分受託開発をやってる会社もリモートワークができるんだから、IT 系の会社ならできる会社は多いはず)

そのために、

  • 弊社のような中小企業という規模(人数が多くなってくると始めにくくくなる)
  • リモートワーカーが圧倒的にマイノリティである(トップダウンでリモートワーク始めない限りは、大抵こういう状況になる)
  • その中でのチーム開発(個人である程度完結できる仕事よりもお互いの苦痛が大きい)
  • プラス、リモートワーカーである私は普通のどこにでもいるレベルのエンジニアです。

というコンテキストを持つ弊社の事例を喋る事が、今後そういうチャレンジをしていく人に「お前にもこういう辛さが待っているぞ、だから考えておけよ」というインプットになるかなと。

ただ、スライドを作る議論をする中で「リモートワークの問題は会社の文化の問題が根っこにあることが多いんじゃないかな?」という話になり、結果として「評価制度の課題」や「勤務時間の課題」や、細かいところでは「ミーティング頻発 or 長時間化問題」など、どんな会社でも起こりえそうな部分に帰着しました。なので一周回って「で?」という感じになった感はあります。
参加者のツイートで、「そうそう、そういうこと!」と後から気付かされました。

今回、私自身も本当にたくさんの気づきがあって、社内におけるリモートワークをどう改善していけばいいのかのヒントが得られました。

「強いチームはオフィスを捨てる」が(政治的な理由で)実践できないチームにおけるリモートワークの改善方法みたいな感じでレポートできるといいなぁと思います。

今度こそ最後に

今回は LT の人数も多くて私のブログでは紹介できなかったので、レポートではなく個人の感想という形にしました。

(誰かお礼をいい忘れた人はいないかなぁと不安になりつつも)改めて、参加してくださった皆様、ありがとうございました!

f:id:dany1468:20151004000430j:plain

(写真は近藤奈央さん撮影です、スマホで取るのと全然違う。)
(真ん中の正座してる人が持ってるのは遺影じゃないです、リモート参加の皆様です!)

西脇.rb&神戸.rb と Tokushima.rb を週末はしごしてきた

地方エンジニアのインプット機会の不足がどうこう言われたりしていますが、気合と少しのお金があれば増やす事もできます。(いや、できればお金はもっと抑えたい。。)

愛媛の勉強会には何度かお邪魔していましたが、今回初めて四国を飛び出して行ってきました。

西脇.rb&神戸.rb Rubyistのための英語勉強会 ~英語の読み書きスキルを高めて開発に活かそう~

nishiwaki-koberb.doorkeeper.jp

最近、英語に関しては公私ともに課題感を感じていたので「これは!」と思い参加しました。大事なことなので最初に書きますが、 めちゃめちゃ良かったです!

内容

メモもちょこちょこ取っていたのですが、最初から議事録取る人の指名があり、当日中には全ての資料系も公開されるという運営すごすぎ事案があったので、僕のメモ要らないなという事でリンクだけ貼らせていただきます。

github.com

当日のタイムテーブルも割りと決まっていたり、アイスブレイクあったりですごいなぁーと感心しきりでありました。自分でやる時も参考にしたい。いや、ゆるいのも大好きなんですけどね。

感想

プログラマの英語勉強方法

ほとんど議事録と被りますので、特に頭に残った部分だけ。

「まずは Listening!そして Speaking ! あとカタカナはダメ!」 ということらしい。

これは全部関連があって、聞くのが大事、でも発声できない音は聞けないから声に出すのも大事、そしてそれはカタカナで発音を覚えないための事でもある。 カタカナはホントにダメってのが面白くて、日本語の 50 音は「ん」以外は母音で終わるのだけど、英語の発音記号は子音で終わることが多い。つまり、そもそもカタカナで表すのは不可能ということ。(これ全然分かってなかった。)
加えて、有声子音と無声子音(喉が震えるか震えないか)が分かると、複数形の発音が「ス」か「ズ」かは考えなくても分かるようになると。(喉が震えるならズの方が言いやすい)

英英辞書の使い方 も面白くて、「知ってる単語を調べることに使う」のが大事らしい。和英で調べると意味が出てくるだけだけど、英英辞書だと、その単語のもつニュアンスが分かるのでイメージでも覚えられる。後、例文が平易なものが多いので、単語がパッと分からない時に、知っている単語で説明するための練習にもなるとか。

ここで、Rubyfor でダラダラ書くのが初心者、map 等でスッキリ書くのがわかってる人みたいな感じで英語でも、伝わるけど長ったらしい文章を書く人と、スッキリ書ける人の差が出るらしい。でも、ダラダラした文章でもまずは伝わる事が大事だから、そういう文章も書けるようになるのが大事なんだなと。

それから 自動翻訳はまだお前らには早過ぎる問題 ですね。。やりがちですが。 たまに海外のWeb サービスから自動翻訳っぽいメールが来たりするけど、自分たちも自動翻訳使うと同じようになってる可能性が高いと。最低そこの見分けがつくようになってから使うぐらいがちょうどいい的な心の痛む話しでした。

で、最近はスペルチェッカーツールが優秀だから、まずは分かる範囲で自分で作文してみて、チェックさせることにチャレンジしてみてはというのも、なるほどなーと思った。

命名やコミットログを書くプロセス

後半の実践編は、実際のアプリケーションの issue を解決する事をお題に、その中で発生する命名を問題にして回答する形でした。

英語での命名ももちろん面白かったのですが、ちょっとした名前付けも本当に各チーム、各メンバーがいろんな意見を持っていて、そのメソッドが持つべき意味みたいのもしっかり考えてる人が多くて感心しました。 コードレビューは一般的になりましたが、なかなかそこまで行くための思考プロセスって可視化されないし、お仕事の中でもそこまでやらないので、勉強になったし楽しかった。

もろもろ

県外勢の辛みで、懇親会はゆっくりできなかったのですが、いろいろお話させてもらって「来てよかった!」と心から思える勉強会でした。運営の皆さんの努力はもちろんなのですが、参加者の方もフレンドリーな雰囲気ですごく違和感なく入っていけました。

「子供できたら動けない」という話しばかり聞いたので、自分も再来月からはどうなるのかなぁと思いつつ、またタイミング見つけて参加したいなと思います!

第十三回 Tokushima.rb

第十三回Tokushima.rb | Facebook

案の定前日の疲れが抜けず朝寝坊しての参戦となりました><

たくさん発表があった!

いつもはもくもく会風なのですが、今回は結構みなさんの LT 風の発表が聞けました!もくもくしてる最中に「ちょっとこんなネタが、、」でその人のパソコンに集まれるのはいいなーと思いました。

一本目は私が前日のイベントで聞いた英語勉強法のネタをまとめたものを軽く発表。みんなそんな得意じゃないと言いつつ、実際 Weblio の語彙数テストも普通だったのですが、「洋書とか読み進めるよー」と英語をあんまり怖がっていないのが印象的でした。そういうマインドすごい大事ですね!

二本目は @ka_ さんの ElixirとPhoenixの紹介 でした!ちょっと Elixir 速すぎじゃないかという驚き。しかももう実戦投入してるとこあるのかよと。

三本目は @sunny4381 さんから、とくしまOSS普及協議会と一緒にやっている Ruby講座の次回版資料をひと足お先に見せてもらいました。 初心者向け(?)なんだと思いますが、capybara と Selenium 使って、しかも vagrant で立ち上げたサーバーに対して End2End テストを書くという、密度の高い資料でした。さすがに 30 分の講義じゃ無理じゃないか!

四本目は再び @ka_ さんから rubicure_fuzzy_match を通した、fuzzy_match のご紹介!全然知らなかったライブラリだったのですが、使えそうな予感が。そして、ka_ さんは「カジュアルに gem を作る」ことに開眼したらしい。gem を作る動機になる課題を発見できるぐらいコードを書いてるということにただただ感服でございます。

github.com

将来に向けた取り組みのお話

tokushima.rb ファウンダーの野原さんから、次の徳島で行われる OSC を皮切りに、県外の学生やエンジニアも来てくれるようなジャンルを縛らないテックイベントを定期的に開催したいという構想が語られました。まだこれからな部分も多いようですが、わくわくしますね。(里帰り出産の関係で立ち上げ時期に徳島に居られないのが残念ですが)

次回の tokushima.rb (9/27) でも詳細のお話あるそうなので、興味が有る方は参加されてはいかがでしょうか!

神山.rb 第二回を開催します!

最後は宣伝で。

kamiyamarb.doorkeeper.jp

来る 9/21(月) のシルバーウィークまっただ中に一年ぶりの神山.rb を開催します。

今回は前回の予告(?)通り、負の成分多めのリモートワーク話しも挟もうと思い、リモートワークでも有名な HeartRails さんから数名の方が参加してくれる予定です。
(西脇.rb&神戸.rb の方も来てくれないかなぁなどと妄想しておりますが、まあいかんせん徳島遠い。。遠すぎるよ。。)

もしも遠方から来られる方は、私の自宅に泊まっていただくこともできますので(借りてる家は結構大きいので)、お気軽って訳にもいかないと思いますが、参加登録時にメッセージを書いていただければなと思います。懇親会は美味しいオーガニックワインのお店を予約しておりますので、是非そこまで居ていただければなぁと思います。(無料ではありませんが)

motokurashi.com

神山町わたしたちの「まち・ひと・しごと」を考える集いに参加してきた

神山町役場 | わたしたちの「まち・ひと・しごと」を考える集い

7/25 に私が住んでいる徳島県神山町で開催されたフォーラムに参加してきたので、感想がてらメモを。

セッション1: 「地域の未来を変える高校の可能性」

進行役の西村さんの導入部分

今日は島根海士町の豊田庄吾さんのお話を聞く

海士町は10年前から I ターンが増加、人口推移は減少がストップ その中でも隠岐島前高校は生徒数が 2009 年から増加傾向。2学級に増えた。

海士町も十分貧しい。その貧しさが光になればという時間。

「まち・ひと・しごと総合戦略」の説明

ここで、神山町が今取り組んでいる「まち・ひと・しごと総合戦略」の話し。

2020 年度までの目標・基本的方向・具体的な施策を本年度中に検討・策定する。
これまでのよくあるパターンだったコンサルタントに丸投げしたり、大学の偉い先生に任せたり、行政主導でやるのではなく、地域の人たちで未来を作ろう的な企画のようだ。
一次締め切り 10 月。(もう出してるところもあるとか。)

総合計画とは異なり、網羅性は求められていない。
この辺の話しなのかな

www.kantei.go.jp

「人口減少」と「仕事づくり」の2つに関して、どういう目標を地域として持ちますか?という投げかけらしい。
神山では「子育て」「働き盛」の2つの世代で 30 名程の working group を作って進めているようだ。

地域の未来

学校が無いと、子育て世代が住めなくなる。
一方国は、学校の統廃合の基準を厳しくした。。。。文科省レベルでは地方に人がいられない状況にしていっている。

神山でも今まさにそのテーマだろう。

学校のあり方は地域の未来にどうつながるのか?

経営視点で見れば、縮小は仕方ないと思う。でも、だからこそ、(無くなるも含めた)選択権を地方に委ねたのだろうか?と思ったり。

ここから豊田さんにバトンタッチ

「地域の未来を変える高校の可能性」

神山のすごい話しをたくさん聞いていて、来るのが怖かったらしい。。 一瞬だけど神山で「この風景は次の世代に残したい」と思ってくれたらしい。

成功はしてないし、今でももがいている。すごく必死。今でも海士町は挑戦事例。

魅力化構想 から 新魅力化構想

高校だけでなく、地域も含めた永久の魅力化のため

問題意識と地域の課題

経歴: Recruit -> ウィルシード(企業向けの人材育成)

問題意識: 自立した人材、社会で必要とされる人材育成の不足
-> 学歴偏重の勘違い人材が多くなってきた
-> 中高のうちから教育していければ

新しい問題意識: 自立した地域とは?この地域は存続するのか?
-> 財政難
-> 後継者不足

教育の課題

隠岐島前高校が統廃合の危機
島根は1学年21名切るのが3年続くと廃校。そして 28 名まで減った。

海士町からは本土の高校に通うのは無理。つまり学生がいなくなる。船だと3時間半かかるので下宿必須。仕送り代も当然辛い。
学費もしんどくなるので、子供が高校出るところで、親世代も一緒に本土に移住ケースが出てくる。

子供・その親世代がいなくなり、文化の継承も辛い。

当時の学校の状況: 図書館入れない。物理の先生いないので学べない。

教育委員会は?
-> つぶす基準は作るけど、活性化策は作らない。(経済的にも統廃合を推進したい)
-> 県管轄なのに自治体から口を出したので嫌な目で見られた

元々は「存続プロジェクト」という名前だったが、それは「存続しない」場所と言っているようなもので、そんな所にいかせたくないですよね。
-> 魅力がある学校にいかせたいよね。それは地域も同じでそういう地域に移住したいはず。
-> よって「魅力化プロジェクト」という名前にした。

当時の不良学生が今の親世代。彼らは自分達の学校にいかせたくないと思っている。
-> 寮が 4/56 で800万赤字

地方での高校説明会もしたが、(たぶん怪しく見られて)説明会会場に集まる人もゼロだった。。

やったこと

魅力化の会を作った(エラい人も入れて)

数値目標を作った - 島前地域からの入学率増加 - 地域外からの入学数増加

下部組織でワーキンググループを作りビジョン策定。

進学塾を作り、学校と組ませて学力を上げる。
-> でもこれだけだと後発感は否めない。
-> 新たにまちづくりコースを高校に作った。今で言う地方創世リーダーを育成する。

どんな人が必要か?
-> 地域で新たな生業・継業を作り出せる人
-> 仕事が無いから帰れないではなく、仕事を作りに帰ってくる

島には何もないけど、、、
-> 人口減少・高齢化・財政難の最前線、課題だらけ。ここで学べば未来を拓く力になる。 -> 「機会・想い・仲間」がある

そういう想いに共感してくれる親から子供を預けてくれる人が出てきた。

隠岐国学習センターという塾を作った

人が人を呼ぶ循環が生まれてきている
足りない学習部分は skype とか使ってる

夢ゼミ: 塾の中でやっている
-> 自分と違う考えの人間を受け入れて話しができる力
-> 例えば農業の人に来てもらって、みんなでどうやったら変えられるかを考える。
-> 「リアルな体験」を重視したゼミ形式の授業。
-> Skype でいろんな人とつなげる。 -> 天才畜産少年が現れた。慶応SFCで研究中。

「自分がやりたい x 地域軸での縁」を考える。

建物も「継承」したいので、新校舎も築100年の古民家をリノベーション。

僻地の若者に生じやすい傾向

  • 価値観の同質化
  • 関係性の固定化
  • 刺激や競争の(忘れた。。)

全国からある意味の脱藩生を募集。

今では新入生の5割が島外から入学(ついには海外からも)

これまでは、統一価値基準で(経済・教育)において東京に追いつけ追い越せだった
-> もう外に出す教育はいらないのでは?(結果過疎を招いたよね?)

東京は素晴らしい、じゃあ田舎はダメなんだろうか?

産業だけでなく、教育もブランド化できるのではないだろうか?

学校が人気になったが島民は余裕で受かるので、教育移住が始まった。

「S ターン」をしたいという子の出現。一度島外から島に高校に入学し縁を作った後に県外で学び、また島に帰って仕事をする。

<<休憩挟んで後半>>


これからの学校に必要なこと

高校の役割の再定義
-> 学力を身に付ける事?? -> これは手段でしかない。
-> 目的は地域の担い手を作る

出口を押さえる
-> 島で言えば、島の最高教育機関が高校(つまり出口)
-> 小中でふるさと教育をしたのに、高校で急に点数の世界に追い落とされてしまう。。
-> よって、高校で地域に戻る選択肢をきっちり提示したい

グローカル教育
-> 高度成長と侍読可能という2つの切り口
-> 持続可能は田舎にこそある
-> 片方ではなく、両方の目線を持てるようにする。(ローカルの方だけ持てという事ではない)

  • 地域エンゲージメント
  • グローカルセンス
  • 志(利己と利他の両方の中で使命感や覚悟を伴うもの)
  • 学習力(自分だけでなく、チームや組織で学び続ける。素直・謙虚)
  • 社会力
    (他にもあったけどメモれず。。)

現実を直視する
-> 都会でも起業は難しいのに、田舎でどうするの?
-> コーホート図で現実を見るのは辛いけど、、

郷土愛を育てる
-> 将来地域と関わりたいと思ってくれる人材を育成する
-> 戻ってくるだけが選択しではない。あくまで郷土に関わってくれるだけでいい。
-> 祭りの時に帰ってくるだけでもいいのだと思う

-> 自然体験、地域の人・歴史との関わり
-> 順番的には、「まず好きになってもらう」「次に厳しい現実を診てもらう」がいいかもしれない
-> 外の人間が地域のいいところを言ってあげればいいよ(または関わる)

画一化された統廃合の基準からSSS, SMSへ
-> super small school, super magnet school(小さくても魅力のある学校、IT や地域の人に協力を得ながら)

まちづくりとの接続

コーディネーターの必要性
-> 両者の言語を理解できる人が必要。現場と熱い人が一緒になるとぶつかってしまう
-> 対立構造を作らない三方良しとかんがえられる人。コミュニケーション、巻き込む力。(一人ではなく、チームでその要件が満たされればいい)

「志を果たして帰る」から「志を果たしに還る」ひとづくりへ

僕は会社に関係を作ってもらったんだなぁ。
川の音を聞いて寝れる。確かに最初はいいなと思った気がする。

「僻地に魅力が無い」は大人の見方、都合だろう。その目を子供に押し付けるべきではないよね。

パネル「神山の地方創生にむけて」

教育資源

豊田さん: 「僕が住んでたらいろいろやりたい」ぐらい神山にはいろいろ揃ってるように見える

人、挑戦出来る環境、まちづくりを学べる学校を作れば、ほっといても外から来るのではないか?
メンバーも揃ってる。

ハードルの高さ

大南さん:
まちづくりをテーマにした学校を作るのはすぐにできるだろう。
-> 人材もいるし、実際、神山塾もあった。

-> しかし今神山に住んでいる人は、そのテーマの学校でいいと思っているか?
 -> 大学に行かせたいと思ってる人もいるのでは?

-> じゃあ、どういう方向に学校を向けていきますか?
 -> 何のための学校?まちづくり?大学に行かせたい?

西村さん:今の子供は私達の知らない仕事に付いているだろう

-> 入試はどうかわっていくだろう。学力だろうか。求められる人材像は?
 -> 大都市と田舎で働く人材層が近づいていくのでは?
 -> 入試も変わっていくのではないだろうか?

-> 海士町の地域想像コースをやってみて、どういう人材が現れるかはわからないのでは?
 -> 海士町すらも、最初は「勉強を教えてくれ」「いい大学にいかせてくれ」だった。

私立化する気はなかった?

豊田さん: 公教育をよくする事にこだわりたかった。
 -> 私立はお金を払えばいくらでもいい先生よんでやれる
 -> お金がなくても同じように素晴らしい教育を

公立校を変えるには?

仕組みを壊して作り変えるのか?

豊田さん: 壊すよりも結果を出す事に執念は燃やしていた。
-> 公教育の方が地域の人の協力を得やすい。地域の未来を考えるには必要。

名古屋のエリート教育学校の話し(経済界が威信をかけて)
-> 外交官は作れても、地域の担い手は作れない

宮崎の中高一貫校(宮崎が威信をかけて)
-> エリート校を山奥に作っただけで、その村の人は 240 人中 6 人しかいない。。
-> その地域の未来の担い手は少ない

今は県立をやめようかと思ってる
-> 県立は管理職の権限を県がもっていてうざい
-> なので、市町村立か国立にできないか?
-> 島根大学と共同でやろうとしてる

その他には、海士町は町長のパワーで国からの資金も入っていてサステナブルではないのでは? という質問も出ていました。これに関しては実際課題だということらしい。

最後は町長の話で締め。

所感とか

ちょうど神山では、中学校の統廃合が決まって、ついに中学校が1つになることが決まった矢先だったので、(もちろんそれを狙っての人選でもあったののだろうけど)タイムリーで考えやすいお題だったと思う。

一学年何人を割ったら廃校になるとか、全然しらない事だったし、神山では昔から中学校ぐらいからは下宿したり寮に入ったりが普通だったと聞いて、自分が住んでいた場所は恵まれていたのだなぁとしみじみ。(高校も自転車で行けるレベルだった)

既に自分が住んでいる場所から一番近い小学校は廃校になっているので、自分の子供が小学校に入る時には、車かスクールバス(があれば)を使うしかない。確かに子供の教育とかを考えれば、「じゃあ、子供が小学校に入るタイミングで、町に移住しよう」となるのはごくごく自然な発想な気がする。

結構そういう意味では、神山は過疎のステージがだいぶ進みきっている感じがしなくも無い。

で、じゃあ、どうしますかってお題ではあったので、興味深いテーマだった。

求められる人材と、そのための教育に力を入れること

パネルの神山に関する話の中で「まちづくりのための教育機関」としての学校を作ればみたいな話が出ていた。教育ではなく、仕事に目を向けても地方というか田舎で仕事をするためには、ある程度ユニークな事であったりニッチな事であったりが有利なのだと思う。(どれぐらいの範囲でユニークなのかはさておき。)

じゃあ、教育も「そこでしか学べない」とか「未来の日本の最前線で学べる」とかは、「決してマジョリティではないけど、確かに存在する層」に向けてはいいメッセージだし、海士町のように地域外から生徒が集まる可能性だってあると思う。

すごく個人的には、人の流動性がある地域でもいいとは思う。一生定住が人口増の絶対解では無いと思うし、教育を受けさせたい間だけ、家族ごと移住してくれるだけでもいいのではと思ったりもする。逆に言えば、代わりに、神山で生まれているが都会の大学に出て行く人はまあ止められないし、停める理由も無いよなぁと。

海士町はそこで「高校という出口をおさえる」みたいな取り組みまで見通していて、「地域の担い手」が残ること、戻ってくれることまで含んでいるというのは面白いなぁと思う。

そして、いろいろとロジカルな内容も出てくる中で最後が「郷土愛」「ふるさと教育」に行き着いていくというのも、また1つ興味深い内容だった。

ふるさと教育って何?

町長も「ふるさと教育が大事」と言っていたが、、一体それは何なのだと。

島根県:ふるさと教育とは(トップ / 子育て・教育 / 教育・学習 / 生涯学習・社会教育 / ふるさと教育推進事業)

  • 地域
    • 地域住民のふるさとへの理解促進
    • 地域を支える次世代の育成
  • 学校
    • ふるさとへの愛着や誇りの醸成
    • 地域に貢献しようとする意欲の喚起

島根県からの引用は上記。実際どんな事をやっているのかは、徳島の上勝がけっこうレポートをあげてくれている。

e-school.e-tokushima.or.jp

低学年のうちは、見学や、野菜やカカシを作ったりという感じだが、高学年になるにつれて、実際にふるさとをどうしていくかというのを考えていく事もやっていくらしい。なるほどー、って、たぶん自分もやっているんだろうけど全く記憶に無いです。。

実際私が小さかった頃は、学力全ての時代でしたし、私も進学校に進んで大学に行くしか無いと思っていたので、ふるさと教育なんかなんにも残らなかったのかもしれません。
今回の話にもあったように、今後必要になる人材が変わっていったり、地域の担い手の重要性が高まるに連れて、教育も変わっていき、こういうふるさと教育のあり方、やり方も変わっていくのかなぁと。まあ、この辺は定量化ができなから難しいですよねぇ、、実際私も東京に出て初めて「徳島良かったんだなぁ」と気づいたりしたし、やっぱり人それぞれに志向性は違うし。

それでも、例えば自分が住んでいた地域への愛着があるかって言ったら違うんだよなぁと思ったりで、ますます「効果的なふるさと教育」へのイメージが沸かなかったであった。

自分と神山町とのポジションに関して

この集いは地元の人もたくさん来ていて、ポイントポイントでディスカッションの時間があったりもしたのですが、正直あまりこのテーマで話せる事はありませんでした。。(なんか、世間話しかしなかった。)

神山で教育を受けた事があるわけでもなく、まだ自分の子供を教育に送り出すのは先というのもあり、このテーマへの危機感がまだ足りていないのだろうなと思います。

加えて言えば、まだ「町としての神山」と捉えられてはいないのだなと。まだどこか、東京のアパートに住んでいる時と同じような感覚が残っているのだろうなと思いつつ、少しずつ変わっていければと思ったりしました。

第十二回Tokushima.rb(一周年記念)に参加してきた

第十二回Tokushima.rb(一周年記念) | Facebook

5, 6 月と予定が合わずいけていなかったので4 月以来の参加でした。

Rails5 をぼちぼち見始める

とっかかりとして、Action Cable と Turbolinks 3 あたりから見ていく事にしました。(別 gem になっていて見やすかったのもありますがが)

github.com

github.com

その場に居た人と少し話した内容としては、こういう JavaScript が絡む部分はどうするのが正解なのかなぁという所でした。 AngularJS や React.js の話題は尽きませんし、ES6 の話も出てきたものの Sprockets との絡みは依然としてあって、でも Rails としては Turbolinks の更新をしてきた訳で、スタンダードはどこに落ち着くんだろうなぁと。(なんか提示されるの待ちでいまいちですね。。tokushima.rb の方は Node.js で JavaScript / CSS はビルドして載せるような方法も取ったことあるみたいです。SCSS のSourcemap 周りで困ったことがあったとか。)

elixir ことはじめ

ka さんのススメで elixir 入門を少しやってみました。といってもインストールと Getting Start を進められるところまでみたいな感じでした。

Introduction - Elixir

確かに Ruby ぽい感じでかけて、例えば String のメソッドあたりを眺めても、意識されてるのがすごくよく分かる感じです。

Elixir v1.0.5 Documentation

まだ少ししか見れてない中で個人的に「お」となったのは、sizelength メソッドが実装内容で使い分けられてる部分と and/or&&/|| operator の違いとかでした。operator は結構多くて、まだ全然見切れてない。。

後は、パターンマッチの使い方が最初は「??」状態でした 。以下の記事でなんとか理解。

qiita.com

所感

触ってみようかなと思ったのは ka さんが紹介してくれた以下の記事が発端でした。

qiita.com

個人ならともかくお仕事でやってると、技術選定してる時間とか、上司を説得する時間とか無いので、何でも Rails でとなってしまうのですが、ちゃんと使い分けられる部分は使い分けないとなーというところでしょうか。(そのためにも、日頃からいろいろ試さないとなぁ。)

その中でも、elixir は取っ付き易くて良さそうに思いました。(なんて軽い感想なんだ。。)

a_matsuda さん登場

Ruby/Rails コミッタの松田明さんが午後から参戦してくださいました。

なんかどこまでオフレコなのか全然分からない深い内容も入ってたので、全部は書けないのですが、

  • Asakura.rb のなりたちの話
    • 去年の rebuildfm でお話されてたような Seattle.rb の話とか
  • 1.8.5 あたりからの Ruby のリリースに関する話
    • Matz の 2.0 へのこだわりとか(2 以降はゆるくなったとか)
    • リリースマネージャーの変遷とか
    • コミュニティパワーでできることとか
    • Ruby 3 の話とか、VM の話とか
    • ko1 さんの仕事の話とか
  • 世界各地の RubyConf の話とRubyKaigi の話
    • US/EU/JP の RubyConf の成り立ちとか現在の話とか
    • MountainWest RubyConf 2015: MountainWest RubyConf 2015 から始まったRegional RubyConf の話とか
    • Ruby on Ales 2015 の立ち上げの話とか、朝 9 時から飲み始めるカンファレンスの話とかw
    • 最近の RubyConf とか RailsConf は技術ネタ少なすぎでは、、とか。(でも RubyKaigi はいっぱいだよ、とか!)
    • RubyKaigi, regional ruby 会議, asakusa.rb の話とか
    • 最近はカンファレンス運営はめんどうな事も多いとか。。

と、松田さんからしか聞けないような超濃い話をしてくれたかと思えば、そこからは、最近の各地のカンファレンスでトークされた内容をスライドを高速にめくりながら再演してくれたり!これはすごいありがたかったし、スライド眺めるだけでは分からなかった事がたくさん分かった!

特に、template engine の話と、Cookpad の話はめちゃ勉強になりました!

松田さんには久しぶりにお会いしたのですが、ホントとても素敵な人だなぁと改めて感動したのでした。

貴重な場を作ってくださった Tokushima.rb の皆様、本当にありがとうございました!!

掘りごたつワークのススメ

いつもはログハウスみたいな部屋にこもってバランスボールに座って仕事してるのだけど、工事で部屋を追われた関係で掘りごたつで仕事してたら思いの外良かったのでオススメしてみる。

とはいえ、スタンディング以上に DIY が大変そう。。。

机の感じ

f:id:dany1468:20150723003511j:plain

古いコタツなので、ディスプレイ(22インチぐらい?)とキーボード置くとほぼ机の半分以上が埋まる。正直東京時代のデスクより横幅は狭い。。

でも、ティッシュとか、本とかは適当に周りに放置できるので机自体はすっきりするかもしれない。

引きの画

f:id:dany1468:20150723003547j:plain

割りと風が通る部屋なので自宅から風鈴とか持ってきて置いてみた。

オフィスのこの棟には自分しか居ないので、Apple Music の適当な playlist を一日中イヤホン無しで流してるのだが、たまに鳴る風鈴は悪くない。

メリット

いつでも仰向けで寝れる

実際寝る事はあまり無いと言っておくが、背伸びついでに座椅子の背もたれを倒すとそのまま寝転がれるのはかなりリラックスできる。これは、通常の机とチェアでは不可能なので結構なメリットだと思う。

足の裏が床に着く

足が長くないのと、普段使っている机の高さが変えられないので、いつも床に足の裏がつかない。自分の体質かもしれないが、長時間座っていると太ももの裏が痛くなったり、足がだるくなったりする。

掘りごたつは昔の人用なのか足が簡単に床につくので気持ち疲れが少ない気がする。コタツの中にクッションを置くと足置きにもなって伸ばす事もできる。

ホワイトボードが使いやすい

f:id:dany1468:20150723003558j:plain

脳内メモリが少ないせいかプログラミングしてるとすぐに落書きしたくなるのでホワイトボードはよく使うのだけど、掘りごたつだと座ってる場所が要は通常の床なので、ホワイトボードを広い床に置いてそのまま書くことができる。

いつもの机とチェアだと、どうしても机を片してホワイトボードを置くか、小さいホワイトボードを用意したりするか、はたまた違う部屋で地べたに座ってやるかになるのでめんどいのだが、その点が劇的に改善される。

デメリット

座椅子

まあ、会社支給のチェアやバランスボールに比べるとやはり腰への負担はある。けれど先ほどの足の裏を接地できるのと相殺されているのか、そこまでデメリットと感じなかった。

正直普通のコタツで仕事したりすると、1 時間ももたないので、足の裏が接地できるのは全然違うと思う。

終わりに

プログラマのような長時間座っているような職種は、やはり椅子やそれに変わるスタンディングやバランスボールが必要だなと思っていたけど、意外にも古い家にある掘りごたつがフィットしたという発見。

まあ、とりあえず長時間働かないのが一番なので、それをオススメします。(自分はできてないけど。。)

スタンディングは

まだ一日中できないですけどこちらも悪く無いです。足の接地面をどうするかがまだ課題ですけど、身体が自由に動くので楽。

私はこいつを使ってますが、まあまあ安定するのでオススメです。

www.amazon.co.jp