Facebook Comment Plugin と Rails Turbolinks の共存

Posted 4 days ago by yoosee.
  textfi rails

このブログでは Facebook Comment Plugin を使っているのだけど、割と頻繁にそれが表示されないということが起こっていた。少し調べるとどうも Rails4 の Turbolinks の影響らしい。Turbolinks は Rails でページ間遷移をした時にコンテンツを差分だけ部分更新することで読み込みをかなり早くするというありがたいものなのだが、その性質上、document.ready や on.(“page:load”), (“page:change”) などのイベントが食われてしまう。

fb-comment

対策としては jquery と turbolinks を共存させるための jquery-turbolinks というものがあるので取り敢えずそれを追加する。Gemfile に以下を追加。

gem 'jquery-turbolinks'

app/assets/javascripts/application.js に以下を追加。なお jquery の直後、turbolinks の手前に入れる必要がある。

//= require jquery
//= require jquery.turbolinks
...
//= require turbolinks
...

Google Site Search などはこれで直ったのだが、FB Comment Plugin ないし FB SDK の場合は明にイベントを読んであげないといけないらしい。 Turbolinks Compatibility with FacebookRails / Turbolinks を使いつつもフェイスブックの Page Plugin を設置する | Workabroad.jp を参考に、app/assets/javascripts/social.js.coffee を追加。当然 application.js には対応する //= require social.js を加えておく。

$ ->
  loadFacebookSDK()
  bindFacebookEvents() unless window.fbEventsBound
        console.log 'everytime'

bindFacebookEvents = ->
  $(document)
    .on('page:fetch', saveFacebookRoot)
    .on('page:change', restoreFacebookRoot)
    .on('page:load', ->
      FB?.XFBML.parse()
    )
  @fbEventsBound = true

saveFacebookRoot = ->
  if $('#fb-root').length
    @fbRoot = $('#fb-root').detach()

restoreFacebookRoot = ->
  if @fbRoot?
    if $('#fb-root').length
    @fbRoot = $('#fb-root').detach()

restoreFacebookRoot = ->
  if @fbRoot?
    if $('#fb-root').length
      $('#fb-root').replaceWith @fbRoot
    else
      $('body').append @fbRoot

loadFacebookSDK = ->
  window.fbAsyncInit = initializeFacebookSDK
  $.getScript("//connect.facebook.net/ja_JP/sdk.js#xfbml=1")

initializeFacebookSDK = ->
  FB.init
    version : 'v2.7'
    appId  : '1721451128113160'
    status : true
    cookie : true
    xfbml  : true

FB Comment Plugin で記載するように言われる下記は script 部分を全て消去。当該処理は上記にあるので。

<div id="fb-root"></div>
<script>
...
</script>

なお Facebook SDK and rails 4 Turbolinks - Stack Overflow の方法だとうまくいかなかった。document.ready や page:change, page:load 時に FB.init を呼ぶという動作は実質同じなはずなんだけど…。

 

日本の文房具はいつ見ても面白いものばかり

Posted 19 days ago by yoosee.
  stationary edc

日本に戻った時にほぼ必ず寄る店がある。他の在外邦人にも同じ人がいそうだが、それは東急ハンズであり、特に文房具コーナー。時間が許せば鳩居堂、ITOYA あたりも一回りする。だいたい年に1,2回程度日本へ帰国しているが、その度になにかしら新しい文房具が出ているのを見るとちょっと感動する。

単なるボールペンにしたところで、書き味の滑らかさを追求した JetStream は米国人におみやげに頼まれるほど素晴らしい筆記体験であり、遂には米国のスーパーにも普通に並ぶまでに普及した。私も他メーカーのボールペンの替芯に JetStream を入れて使うなんてこともしている。

個人的には使わないが、ここ数年はこすると消えるフリクションボールペンが新しいジャンルを切り開いて盛り上がっている。筆圧によって線の太さを変えられる水性ボールペン uni-ball Air というのもあって、これはインクが滲んで実用にはちょっと難しいのだけど、ハネトメがペンで表現できる書き味はボールペンと万年筆の間くらいの面白さがある。

ここ何年かはシャープペンシルの進化もすごい。書いていると自動的に芯が回転して常に尖った面で文字を書けるクルトガが出たと思ったら、斜めの圧力も逃がすことでほぼ芯が折れずに書けるデルガードなんてものも出ている。元々日本のシャープペンは海外のそれに比べて芯の質が良いのでそんなに折れないのだが、それをさらにメカニカルに折れなくする機構を組み込んだり、「いつでも尖ったほうで書けるよ!」なんて機能を盛り込むなんて言うのは日本らしい技術の使い方だなあと思う。また併せて買ったペン型消しゴム は前からあるのだろうが地味に便利である。なにより日本の消しゴムはよく消える。

Kokuyo SAXA

今回ウキウキしながら買ったのはベルヌーイカーブで切れ味 3倍、チタンコーティングで100万回使っても切れ味が落ちず使えるハサミである。たかがハサミされどハサミ、確かにこれは前に持っていた普通のハサミと比べたら切る時の力のいらなさ加減が面白いほどだし、チタンコーティングのお陰かガムテープ等粘着質なものを切っても刃がべたつくこともあまりない。しかし100万回て。ついでにキッチン用洗えるチタンハサミも買ってしまったが、キッチンハサミは確かによく錆びるので、錆びずに水洗いできるだけでも大変ありがたい。

他に最近買ったものだと立ててペンスタンドになるペンケース黒いので裏に書いた文字が透けてじゃまにならない下敷き押すと真ん中のゴムが接地して滑らなくなる定規 、資料を打ち込みする時に便利なカール クリップスタンドなど、よくまあいろいろと思いつくものだ。

糊ですら進歩を続けていて、ペン型でピンポイントの糊付けができるアプアピット 液体ペンのりや、手を汚さずに気軽に封をしたり貼り付けをしたりするのに使えるテープのり ドットライナーなどが出てきている。のりもこれくらい気軽に使えると、セロテープを使うより便利なことも多いので、利用シーンを結構変えてくれる。

まあ全てが全て素晴らしいというわけではなく、例えば定規はコンセプトは面白いのだけど、押した際にゴムの伸縮の分だけ定規の場所が動くので「ずれないとはなんだ」とか微妙な点はあるのだが、そうは言っても1つ数百円からせいぜい千円程度でこんな面白いものが手にはいり、行く度になにか新しいものが出ているというのは、ほんとに日本人というのはこうしたこまごましたものになにかしら工夫を続けないで入られない国民性なのだなあと、その情熱を愛してやまないのである。

 

ポケットプライツール TT PockeTTools Chopper

Posted 27 days ago by yoosee.
  keychain edc

さてEDCといえばプライ(Pry)が欠かせない。プライとは写真のように先端が平べったくなっていてテコの原理で釘を抜いたりペイント缶の蓋を開けたりするもので、なぜこれが欠かせないのかと言われるとよく分からない。よく分からないが例によってEDC Forumではポケットサイズのプライツールの写真が山のように見つかる。まあ実際、何かに差し込んでこじ開けるツールというのは実生活でも意外と必要なシーンがあるものである。いやほんと。

TT PoketTTools Chopper

フォーラムなどをさすらっていて評判が良かった TT PockeTTools の Chopper だが、しばらく売り切れになっていたのが先日ふと見たら在庫有りになっていたので慌てて1つ確保した。まあこれ $45 と決して安くはなかったのだが、手元に届いた現物を見て後悔はない。

TT PockeTTools LLC - Pocket and Keychain Tools: Pocket Tools

これは例によって(そう例によってだが)チタン製である。チタンは錆びず、丈夫であり、なにより同じ強度・大きさで作ると他の金属に比べてかなり軽い。鉄の同サイズと比べて半分強の重さで、見た目に反して持った感じはかなり軽い。そうした理由でチタン製品はポケットツールの材料によく使われるのだが、もちろんチタン製という響きが格好良いからという理由は外せない。

このツールは釘抜きやマイナスドライバーを兼ねるプライ、栓抜き、ボルトレンチが付いている。またプライの先端が切り欠き状に多少だが鋭利になっていて、いわゆるボックスオープナーとしてストレス無く使える。指を切ったりするような鋭さではないので持ち歩いて怪我をするような心配はない。

コンパクトなポケットツールサイズだが、真ん中辺りに付いている凹みのカーブがなかなかうまく指にフィットしてホールドしやすい。またツール自体にそこそこの厚みがあるので握って使うのにストレスが無い。ちょっとした差異なのだが、ポケットツールはこういう少しの差が日常の使い勝手を大きく決めるもので、これはその点で大変よく出来ている。

なお普通に売っているミニプライは1つがせいぜい $10 / 1000円前後のものなので、ついちょこちょこ増えてしまう。今の手持ちだと Chopper 以外はこんな感じだ。もっとあるかも。

Pry Tools

写真は左から以下のとおり。プライは明らかに刃物ではないので、その辺が厳しい日本でも持ち歩きは大丈夫だろう。

どれも値段なりによく出来ているが、強いて選べば Leatherman の Brewzer だろうか。これは他に比べても小さくてフラットなデザインなのでキーチェインなどにつけても邪魔にならず、Leatherman 製だけあって作りも良い。その分他より少し高めだが。True Utility のものは他よりかなり大きいが、いろいろな機能を無理やり詰め込んでいる感が面白い。特に回転するドライバー部分とか。

なおこの業界(?)でプライといえば Atwood Knife and Tool の話題は外せないのだが、いかんせん、この Atwood というクラフトマンは数量限定にも程がある生産量であり、手に入れるには毎日ブログをチェックして欲しいアイテムが登場するのを待つしか無く、またそれも一番安いもので $70 くらいからと結構高価である。いつか手に入れてみたいものではあるが。

 

子供用のメラトニン入り睡眠改善薬の効果が抜群だった話

Posted 28 days ago by yoosee.
  jetlag

以前の記事でメラトニンで時差ボケ解消している話を書いたが、今回家族で日本へ一時帰国した際に子供向けの睡眠改善薬 Zarbee’s Naturals Children’s Sleep を買って試してみた。結果はかなり良好である。

メラトニンサプリと子供向けメラトニン入り睡眠改善薬

普通に売っているメラトニンのサプリは子供向けにはお勧めされてないのだが、これは 3歳以上の摂取がOKな子供向けサプリなのでその点は安心。記載を見ると 1錠 1mg 含有とのこと。うちは4歳と6歳の子供に、日本に行ってからの1週間、米国に戻ってからの1週間程度をそれぞれ摂取させたが、効果は抜群であった。

去年日本に一時帰国した際は到着後3,4日間くらいは日中は半分くらいダウン、夜は2,3度目を覚まし、早朝3時過ぎくらいから活動開始してしまうという典型的な時差ボケ(時差13時間)症状だった。帰国してからも似たような状況で完全に回復するまで10日間くらいかかっている。

今回このサプリを摂取したら、到着の次の日でも夕方5時すぎくらいまでは沈没せずに活動できたし、夜間も1度程度目を覚ますがまた眠り、朝5時くらいまでは寝てくれた。2,3日後にはほぼ日本の時計で活動できるようになり、朝こそ5時位には起きてしまうが途中で目をさますこともほぼ無くなった。帰国してからもほぼ同様。

小さい子供が時差ボケになると日中の活動に本当に制限がかかって厄介だし当然ながら本人たちもしんどそうなので、今回このサプリで早々に睡眠が改善したのは本当に助かった。もちろん効きに個人差はあるのだろうが、似たような状況で入手が可能な人は是非試してみていただきたい。なお私は Target で売っていたのを購入した。

 

Chromebook C7 + Ubuntu 16.04 でタッチパッドが効かなくなった問題の解決

Posted about 1 month ago by yoosee.
  chromebook ubuntu

Chromebook C7 の BIOS を入れ替えて Ubuntu で使っていたのだけど 16.04 にあげたら Touchpad が効かなくなった。

cyapa が無くなって cyapatp に変わったのが原因かと思い

# rmmod cyapa
# modprobe cyapatp

としてみるも駄目。dmesg を見てみると

[    3.184150] find_i2c_adapter_num: i2c adapter SMBus I801 adapter not found on system.
...
[    6.535929] find_i2c_adapter_num: i2c adapter SMBus I801 adapter not found on system.
...
[   11.788682] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt

i2c-i801 driver が modprobe されたタイミングでは i2c bus が認識されて無いらしい。手動で

# modprobe i2c-i801 

を打てば認識される。

[   11.788682] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
[   11.844142] 7-0067 supply vcc not found, using dummy regulator
[   11.909888] input: Cypress APA Trackpad (cyapa) as /devices/pci0000:00/0000:00:1f.3/i2c-7/7-0067/input/input13

仕方がないので /etc/rc.local

...
/sbin/modprobe i2c-i801
/sbin/modprobe chromeos_laptop

と入れたところ、取りあえず起動後に認識されるようになった。一応バグレポートもあるっぽい。