1 May 2017

[MAMP]PHPのバージョンが2つしか表示されない

備忘録。タイトルが答です。
http://stackoverflow.com/questions/42281405/mamp-phpmyadmin-is-not-active#42287871
MAMP shows only two versions of PHP
PHP7系が2つ表示されていたので、/Applications/MAMP/bin/php/ 内のフォルダを整理して(どうも降順で選択されるぽい)、無事php5系が表示されました。
正解に辿りつくのにめちゃくちゃ時間がかかった…

3 Apr 2017

[Cakephp2] cakedc/users プラグインと ACL ビヘイビアを併用するために必要な事

CakePHP2なんて、本当に今更ですが、2017年4月現在、cakedc/users とACLビヘイビアを併用するには、それぞれのチュートリアルに沿って変更をする点の他に、
例えばAppController.php の中の $components の設定に以下の一行を書き加える必要があります。
     'userModel' => 'AppUser',
該当ブロックは以下の様になります。
 public $components = array(
  'Session',
  'Flash',
  'Acl',
  'Auth' => array(
   'loginAction' => array(
    'controller' => 'app_users',
    'action' => 'login',
    'plugin' => false
   ),
   'loginRedirect' => array(
    'controller' => 'posts',
    'action' => 'index'
   ),
   'logoutRedirect' => array(
    'controller' => 'pages',
    'action' => 'display',
    'home'
   ),
   'flash' => array(
    'element' => 'alert',
    'key' => 'auth',
    'params' => array(
     'plugin' => 'BoostCake',
     'class' => 'alert-error'
    )
   ),
   'authorize' => array(
    'Actions' => array(
     'actionPath' => 'controllers',
     'userModel' => 'AppUser',
    ),
   ),
   //'authError' => 'Did you really think you are allowed to see that?',
   'authenticate' => array(
    'Form' => array(
     'passwordHasher' => 'Blowfish',
     'userModel' => 'AppUser',
     'fields' => array(
      'username' => 'username', //Default is 'username' in the userModel
      'password' => 'password'  //Default is 'password' in the userModel
     ),
    ),
   ),
  ),
  'DebugKit.Toolbar'
 );
'userModel' => 'AppUser',
at your settings for Auth Component Section in AppContoroller.php.
whole block would be:
 public $components = array(
  'Session',
  'Flash',
  'Acl',
  'Auth' => array(
   'loginAction' => array(
    'controller' => 'app_users',
    'action' => 'login',
    'plugin' => false
   ),
   'loginRedirect' => array(
    'controller' => 'posts',
    'action' => 'index'
   ),
   'logoutRedirect' => array(
    'controller' => 'pages',
    'action' => 'display',
    'home'
   ),
   'flash' => array(
    'element' => 'alert',
    'key' => 'auth',
    'params' => array(
     'plugin' => 'BoostCake',
     'class' => 'alert-error'
    )
   ),
   'authorize' => array(
    'Actions' => array(
     'actionPath' => 'controllers',
     'userModel' => 'AppUser',
    ),
   ),
   //'authError' => 'Did you really think you are allowed to see that?',
   'authenticate' => array(
    'Form' => array(
     'passwordHasher' => 'Blowfish',
     'userModel' => 'AppUser',
     'fields' => array(
      'username' => 'username', //Default is 'username' in the userModel
      'password' => 'password'  //Default is 'password' in the userModel
     ),
    ),
   ),
  ),
  'DebugKit.Toolbar'
 );

[CakePHP2] Using ACL Behaviar with cakedc/users

As of April, 2017, with cake 2.9.7 and the newest plugins,
You will need 
     'userModel' => 'AppUser',
at your settings for Auth Component Section in AppController.php.
whole block would be:
 public $components = array(
  'Session',
  'Flash',
  'Acl',
  'Auth' => array(
   'loginAction' => array(
    'controller' => 'app_users',
    'action' => 'login',
    'plugin' => false
   ),
   'loginRedirect' => array(
    'controller' => 'posts',
    'action' => 'index'
   ),
   'logoutRedirect' => array(
    'controller' => 'pages',
    'action' => 'display',
    'home'
   ),
   'flash' => array(
    'element' => 'alert',
    'key' => 'auth',
    'params' => array(
     'plugin' => 'BoostCake',
     'class' => 'alert-error'
    )
   ),
   'authorize' => array(
    'Actions' => array(
     'actionPath' => 'controllers',
     'userModel' => 'AppUser',
    ),
   ),
   //'authError' => 'Did you really think you are allowed to see that?',
   'authenticate' => array(
    'Form' => array(
     'passwordHasher' => 'Blowfish',
     'userModel' => 'AppUser',
     'fields' => array(
      'username' => 'username', //Default is 'username' in the userModel
      'password' => 'password'  //Default is 'password' in the userModel
     ),
    ),
   ),
  ),
  'DebugKit.Toolbar'
 );

10 Jul 2015

[CakePHP2]使用を避けるべきModel の名前、それは Folder

あまりにも長い間いろいろ試して判明したのがこれ。

タイトルで終了しますが、CakePHP の bake でコード生成をする際避けるべきデータベーステーブルの名前は、 folders です。

理由はUtility::Folderと名前空間がかぶるから。自動生成つかってなくても、普通にぶつかって一見原因不明のエラーが出ます。

ほかにもモジュール名でかぶりそうなものもありそうですが、ひとまず。


16 Apr 2015

[CakePHP2]モデル内で別のモデルを参照する(追記あり)

別のファイルを参照するのは3通りあるそうです。
参照元:
http://stackoverflow.com/questions/980556/can-i-use-one-model-inside-of-a-different-model-in-cakephp
から説明を抜粋。
App::import() ファイルを見つけてインポートします(それだけしかしません)。クラスを使用するにはインスタンスを作製する必要があります。 ClassRegistry::init() ファイルをロードして、インスタンスを作製します。何かをロードするにはimportよりもベターです。なぜならCakePHPが通常呼び出しの際に内部で行う手続きも実行されるからです。またクラスネームにエイリアスをつけることができます。便利です。 Controller::loadModel() 前述の ClassRegistry::init() を使用してモデルをロードします。$persistModel を使用したキャッシングにも対応します(する予定です?)。コントローラ内部でのみ動作します。
と上記では書いてありますが、Model内でも Controller::loadModelは作動する模様。

Controller::loadModel('AnotherModel');
$data = $this->AnotherModel->read(null, $id);
(追記7/7)やっぱりだめっぽい。以下のやりかたが良いようです。
$anotherModel = ClassRegistry::init('AnotherModel');
data = $anotherModel->read(null, $id);

6 Mar 2015

[Haskell] CSV Library cassava

確定申告の時期、銀行やらカードやらの明細を自分のソフトで読み込めるように変換してますが、Haskellでやるにはどうしたものかと思いいろいろ検索。

Cassavaというライブラリがあるようです。

Bitstringでなしに、各フィールドの型を決めて読みこめるみたいですが、ひとまず触ってみることにします。

14 Feb 2015

Buffalo無線ルータで 無線LANをブリッジ接続で中継する手順について

こんなことに半日費したので記録しておく。
中継機に使おうとしたのは Buffalo WHR-600Dでした
そもそもは元ルータのAterm WH862A から、DHCPの割り振りがチェックできないので、中継器にアクセスできないのがこんなに時間がかかった原因でした。マニュアルに書いてある 192.168.11.1 には、アクセスできないし…。
BUFFALOの無線LANルーター(WHR-G301N等)でブリッジ接続を設定するときの手順
http://wp2.trojanbear.net/1286.html
"今回の設定で一番厄介なのは、BUFFALOの無線LANルーターのディップスイッチをOFFにすると(筆者註:ブリッジモードにする時も)問答無用で無線LANルーターのIPアドレスが192.168.11.100 になってしまう事です。"
この記述が救いでした。 有線で中継器に192.168.11.100にアクセスして無事に設定ができました。

めでたし。