5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

投稿者: muneando

  • iPod nanoを修理にアップルストアに行ったけど。

    ツレのiPod nanoが電源が入らなくなったので、アップルストアの渋谷に行ってきました。しかし、修理せずに何もしないで帰ってきた。

    ストアの店員の人曰く「iPodは永遠に動くものではない。自分だって10年で3台買えている。修理してもいいけど、買った方が安い。PCに音楽が残っていれば大丈夫。壊れたiPodは10%引きのクーポンとして新しいiPodが手に入る。」だとさ。

    「iPodって壊れやすいのか?」と尋ねれば、「すべてのiPodはいつか壊れる。」と禅問答になってしまってしまいました。こう自信満々で回答されると、何も言えません・・・。

    Google+: Reshared 1 times
    Google+: View post on Google+

  • CakePHP2のテストで、$defaultのDBを見に行ってしまう件、解決した話し

    CakePHP2のテストで、$defaultのDBを見に行ってしまう。と書きましたが、解決しました。

    /App/Model/AppModel.php で__construct()を定義したとき、正しく引数を受け取って親クラスに渡してあげないといけなかったようです。

    public function __construct($id = false, $table = null, $ds = null) {
        parent:__construct($id, $table, $ds);
        // 何かの処理
       }

    のように引数を明示的に書いてあげます。

    テストケースのsetup()にあるモデルを設定しているClassRegistry::init()が中で$useDbConfigをtestでモデルオブジェクトをインスタンスにしているところがあって、そのときのパラメータがクラスに引き渡されていないのが原因でした。

    著:山田祥寛
    ¥1,870 (2025/06/26 14:04時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/06/26 14:04時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/06/26 14:04時点 | Amazon調べ)
  • 子ども歌舞伎教室の話し

    ツレがチビと姉ちゃんを連れて子ども歌舞伎教室に行ってきた。中学生のお姉ちゃんは、歌舞伎を舞台にしたコミックを読んでいるせいか興味津々。

    演目は歌舞伎十八番の毛抜。毛抜きが踊り出すという、とんでもない内容。自分も歌舞伎座で観たが、本当にすっとんきょうな演目でした。

    子どもたち、これで歌舞伎が面白いと思ったでしょうか?

    Google+: View post on Google+

  • CakePHP2のテストで、$defaultのDBを見に行ってしまう話し

    CakePHP2でテストするときに、/app/Config/database.phpの$testではなくて$defaultで指定したDBを見に行ってしまいます。こちらの対処方法のメモ。

    テーブルにtext型の項目があると、memoryではなくてMyISAMでテストのテーブルを自動的に作りに行きます。この辺りが関係しているかもしれません。こちらはbakeすると、Fixtureの$fieldsの中にtableParametersに設定されています。

    テストの途中でexit()して上げると、$testのほうのDBにテストのためのテーブルをFixtureからcreate tableしてくれていることを確認できます。しかし、テストケースでは、$defaultのほうのDBを見に行きます。

    CakePHP2のCookbookに書いているように、Fixtureに

    public $useDbConfig = 'test';

    と書いてもダメでした。

    public $import = array('table' => 'articles', 'connection' => 'test');

    のようにしてもダメ。

    結局は、

    class ArticleTestCase extends CakeTestCase {
        public $fixtures = array('app.Article');
        public function setUp() {
            parent::setUp();
            $this->Article = ClassRegistry::init('Article');
            $this->Article->useDbConfig = 'test';
        }

    のように無理矢理モデルの$userDbConfigにtestをして対応しました。

    もっと良い方法があるのでしょうね。これだと、joinされたFixtureのテーブルデータだと見つからないのてテストできないとか問題が残ります。

    マニュアルに書いていないことは何とか対応しなければいけないのは大変です。

    著:山田祥寛
    ¥1,870 (2025/06/26 14:04時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/06/26 14:04時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/06/26 14:04時点 | Amazon調べ)

    続きはこちらから

  • スマートフォンに迷惑メールが大量に来るようになった話し

    スマートフォンのほうに迷惑メールが大量に来るようになりました。auの迷惑メールフィルタを設定しても効果無し。いちいち迷惑メールでブルブルで電話が震えるのがイヤなので、バイブレーションの設定をを止めてしまいました。これで携帯電話にメールを送ってもダメですよ。

    携帯電話のメールアドレスは、auにしてから10年近く変えていません。今までほとんど迷惑メールは来ませんでした。おそらく迷惑メールが来るようになった原因は、青い看板のコンビニのアプリに、携帯電話のメールアドレスを登録してからと予想しています。このアプリに限って携帯電話のメールアドレスを登録してしまいました。ここから漏れたかな?

    PCのほうは、最低でも10分に1件の迷惑メールが届きます。こちらはGmailがほぼ完璧にフィルタをかけてくれています。数年前まではThunderbirdをメールソフトとして使っていましたが、あまり頭が良くないので手作業で迷惑メールを振りわける必要がありました。これが面倒でGmailに移りました。

    Google+: View post on Google+

    著:多田文明
    ¥1,188 (2025/06/29 09:39時点 | Amazon調べ)
  • クルマ納車

    クルマが納車された。そのままカー用品店に行って、予約しておいたカーナビを取り付けてもらった。

    混んでいないが作業完了まで、とても時間がかかりました。作業で4時間。バックモニタとリヤスピーカーを一緒に付けたせい?

    ということで、このクルマはツレ専用車で子どもの送り迎えに使うので、あまり乗る機会はないのでした。

    Google+: View post on Google+

  • 無事にサービスイン。

    今まで他社で開発していたサイトを引き継いで、リニューアルしてサービスイン。

    今回はデータベースだけを残して、プログラム類はすべて書き直し。だって、PHPを使っていても、クラスって何かしら、SQLインジェクションなんて関係ないぜ、PHPってHTMLに埋め込むのよね・・・、と言った作り方。反対に大昔のPHPの解説本に載っているサンプルみたいで読みやすいこと。一気にCakePHPで書き換えた。

    切り替えは1時間で済んだ。これも予行演習をやったおかげ。マニュアルは大切。

    Google+: View post on Google+

  • 娘のiPod代理購入。

    中2になる娘が、小遣いが貯まったので音楽プレイヤーが欲しいと言い出した。本人はソニーかiPodにするかで悩んでいた。

    新しいクルマはiPod対応ということと、これ以上ソニー製品に我が家を占拠されてもな、ということでiPodを薦める。今度はTouchにするかnanoにするかで悩み出した。

    Touchは高いし、どうせバッテリーが持たないので、2,3年で買い換えになるから安いshuffleかnanoにしたらと言ったら、画面が欲しいということでnanoになった。

    今度はnanoの8GBか16GBにするかで悩み出す。そんなに金額に差がないので16GBに決定。本人は色は選択が少な過ぎると言いながらオレンジにした。

    ということで、いつものヨドバシに注文して、翌日届いた。後は、本人が何かゴニョゴニョやって、自分で音楽を聴けるようにしていました。

    Google+: View post on Google+

  • CakePHP2で管理者用ページだけの認証を行う話し

    ユーザー認証と管理者認証を別のモデルで分けたいときのメモ。

    管理者用の認証をAppController.phpで定義してしまう。isAdmin()はadmin_***のアクションを呼んだかどうかの判定。

    app/Controller/AppController.php

    class AppController extends Controller {
      public $components = array('Auth');
    
      public function beforeFilter() {
        if ($this->isAdmin()) {
          $this->Auth->authenticate = array(
          'Form' => array(
            'userModel' => 'User', //ユーザー情報のモデル
            ),
          );
    
          $this->Auth->loginAction = '/admin/users/login'; //ログインを行なうaction
          $this->Auth->loginRedirect = '/admin/'; //ログイン後のページ
          $this->Auth->logoutRedirect = '/admin/'; //ログアウト後のページ
          $this->Auth->authError = 'ログインしてください。';
    
        } else {
          $this->Auth->allow('*');
        }
      }
    }

    大分はっしょっているけど。こんな感じ。

    あとは、ユーザー認証したいコントローラーでAuthコンポーネントを定義しておく。

    著:山田祥寛
    ¥1,870 (2025/06/26 14:04時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/06/26 14:04時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/06/26 14:04時点 | Amazon調べ)
  • XAMPP Apacheが起動できないときのメモの話し

    XAMPPでイントールしたApacheが起動できないときのメモを残しておきます。

    原因はポートの80番が他で使われてしまっていること。80番を使うアプリケーションとしては、SkypeとかTermViewerとかありますが、今回は違いました。

    netstat -aon で80番を使っているプロセスを調べると、アプリケーションではなくてPID4のNT Kernel & systemが使っていました。

    これは止めてはいけませんので、調べていくと、WinRMというサービスが80番を使っているので停止。他のところでは、違うサービスを停止と書いてあります。ユーザーによっては違うみたい。

    取りあえず、現在は無事にApacheが起動できるようになりました。使用OSはWindows7です。

    著:山田祥寛
    ¥1,870 (2025/06/26 14:04時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/06/26 14:04時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/06/26 14:04時点 | Amazon調べ)