FuelphpでSessionが消える

Fuelphp 1.8案件で開発してて

Session::set('test', $some_data);

して

$test = Session::get('test');

すると、空になってる現象に出会いました
原因に気づくのに3時間くらいかかってしまった..
(すごい複雑なシステムだったけど..)

原因は

fuel/core/classes/session/driver.php function _set_cookie L.474あたり

if (strlen($payload) > 4000)
{
throw new \FuelException('The session data stored by the application in the cookie exceeds 4Kb. Select a different session storage driver.');
}

データサイズが4K超えると例外を投げてて、しかも画面に出てこず、logに残るだけという..
ログファイル先に見ればよかった..

そんなにでかい変数じゃなかった気がしたんですが

ということで、セッションにcookieを使わず、fileかdbかを使うと解決でした

Session 設定 - クラス - FuelPHP ドキュメント

byobuのエスケープシーケンスを使う

Windows10 + mintty で ssh でサーバーにつないで、Ubuntu + byobuで作業したときに
ファンクションキー(F1-F4)が効かなくて試行錯誤..しましたがいろいろ試してもだめでした
SHIFT+F1、SHIFT+F2とSHIFT使うと効くんですが

しばらく1つのタブで作業してましたが、escape sequence の存在を忘れてました!
おさらい

F9でエスケープシーケンスを変えられます

コマンドは

エスケープ + c => 新しいタブを作成
エスケープ + n => 次のタブへ
エスケープ + p => 前のタブへ
エスケープ + d => デタッチ

を使ってます

エスケープシーケンスがCtrl + aだと
Ctrlキー押しっぱなし、a、c
で新しいタブが開きます

ES6でのimportの波括弧がいるかいらないか

React + Redux での import の波括弧(中括弧)は

// samplea.js
const SampleA = () => {
  // ...
}
export default SampleA

のように default を付けたときは

import SampleA from 'samplea.js'

と波括弧がいらなくて

//sampleb.js
const SampleB = () => {
  // ...
}
export SampleB

とdefaultを付けてないときは

import { SampleB }  from 'sampleb.js'

と波括弧がいるようです

参照)
import - JavaScript | MDN

Railsでcoffeescriptをjavascriptに変換する

Rails 5.1でAction Cableのサンプルを書いてて CoffeeScript の設定を JavaScriptに変えてみました

js2coffee 2.0 — convert JavaScript to CoffeeScript
のサイトで、右側に CoffeeScript 貼り付けると変換してくれました

sample.coffeeをsample.jsと変えて保存してあげて終わり
問題なく動作しました

coffee-rails gemが要らないので、Gemfileから消して

$ bundle install

してきれいにしておきました