2017-11-01から1ヶ月間の記事一覧

ステップイン、ステップオーバー、そしてステップアウトについて

実は恥ずかしながら、これまでjsをデバッグする際にconsole.logに出力したりalertで表示したりしていました。 本日購入した「Javascript本格入門」ではChromeのデベロッパーツールを使って のデバッグ方法が書いてあったので試してみました。 Stackoverflow…

吉乃川 厳選辛口

某漫画で紹介されていたので探していたところ西友でカップサイズを発見。 熱燗でいただいた。確かに美味しい。 雑味というか嫌な味がしないのがいい。

CakePHP3:カラム追加が反映されない

CakePHP3.5で、カラム追加したにも関わらずそのカラムのデータがINSERT/UPDATEされない現象に出くわしました。 tmp以下をクリアしても解消しない… 対策ですが、Entityの編集が必要でした: protected $_accessible = [ 'id' => false, <中略> '新しいカラ…

CentOS7上のpostfixからgmailを使ってメールを送信

面倒な割には手順が一箇所にまとまってないので、ここに記載します。 rpmのインストール テストと認証に必要なrpmを入れます: sudo yum install -y mailx cyrus-sasl-plain gmailの2段階認証の有効可 Sign in - Google Accounts gmailのアプリパスワードの…

CakePHP3:テーブルとかフォームでログを使いたい(Call to undefined method ::log() )

コントローラ、コンポーネント、ビュー、ヘルパーでは、次の記述でログを書き出せます: $this->log("ほげほげ",LOG_DEBUG); では、テーブルやフォームで同様のことを行うにはどうすればいいでしょうか? 選択肢は2つあります: 一回だけ使いたい場合: \Cak…

CakePHP3:3.5で増えた正規表現のバリデータ

CakePHP3.5から、バリデータが増えて正規表現を使いやすくなりました: protected function _buildValidator(Validator $validator) { return $validator->add('name', 'length', [ 'rule' => ['minLength', 10], 'message' => '10文字以上で入力してくださ…

CakePHP3:条件付きでallowEmptyにしたい場合

パスワードの入力欄と確認欄は「パスワードを変更しない場合は空欄でよい」というケースがあると思います。 これはallowEmptyにコールバック関数を指定することで実現可能です: $validator ->allowEmpty('confirm_password', function ($context) { return …

中国のEV事情にびっくり

ソースは本日の読売新聞から。 中国って、EVの販売台数がすでに日本・米国・ドイツより多いのね: EVだけでなく、普通の乗用車の販売台数も桁違いに多い: 火力発電に頼っているので、同じEVを走らせても日本よりCO2の排出が多い、と: 今後は、ベンツ・BMW…

CakePHP3:認証失敗のエラーメッセージを動的に変更する

Authコンポーネントを設定するときに、認証失敗時のエラーを次のように定義します: $this->loadComponent('Auth', [ 'authorize' => [ 'Controller'], 'authenticate' => [ 'Form' => [ 'fields' => ['username' => 'email', 'password' => 'password' ] ] …

法人税率を下げると、法人税の税収はどうなるのか?

法人税率を下げると、法人税税収は下がるみたいですね: ただ法人税+所得税+消費税のセットでみると、税収の下落はなんとか食い止めることができているみたいです: どちらのグラフも景気がどうであったかの補正を加えるといいかもしれません。 ソース: w…

MacにVirtualBoxを入れて、CentOS7をインストールしSSHでログインする

これまでAWSやさくらVPSに開発環境を作っていたのですが、コストが結構かさみます。 macに移行したのを機会にVirtualBoxを利用することにしました。 こちらのHPを大変参考にさせていただきました、ありがとうございます: MacでVirtualBoxにCentOS7をインス…

git statusするとYour branch is ahead of ‘origin/master’ by x commits

git

なぜ、この現象が発生するのかよく理解できていませんが、対処法だけ: git status # On branch master # Your branch is ahead of 'origin/master' by 3 commits. # (use "git push" to publish your local commits) # nothing to commit, working director…

CakePHP3:コンポーネントでFlashメッセージを設定する

このようにします: class HogeComponent extends Component { public $components = ['Flash']; public function getHoge() { $this->Flash->success(__('Succeeded getting hoge!')); }

マージに躓く:Already up-to-date.の怪

git

とあるプログラムを開発していました。masterブランチで、です。これにbootstrapを導入することになったため、bootstrapというブランチを自分のサーバ作成してそこで作業していました。もちろん、bootstrapはリモートにpushしています。 さて、bootstrapブラ…

Angularが生成するHTML

Tour of heroesのチュートリアルをやっていて次のコードを書いてみました: <li *ngFor="let hero of heroes" (click)="onSelect(hero)" [class.selected]="hero === selectedHero" [routerLink]="['/detail', hero.id]"> これがどういったHTMLとして生成されるか?おそらく、こんな感じだと予想していました: <li onclick="..."><a href="/detail?id=1">ヒーローの名前</a></li> しかし実際に出てきたソースはこんなでした…</li>

コールバックに指定したアロー形式の関数を普通?の関数に書き直してみる

Angularのチュートリアルで、このようなコードがあります: getHero(id: number): Promise<Hero> { return this.getHeroes().then( heroes => heroes.find( hero => hero.id === id )); } findに指定しているコールバック関数は、書き直すとこうなります: (hero) </hero>…

Angular:詰まったときのデバッグ

ng buildでコンパイル時にエラーが出てもエラーの原因が今ひとつわからない場合があります。 そんなときはtscコマンドで怪しそうなファイルをコンパイルしてみましょう。 tscコマンドのほうが役に立つ情報をはいてくれる場合があります。 例えば、次のソース…

Perlのワンライナーでリテラルのシングルクォートが入った正規表現

置換する文字列にシングルクオートとドル記号があったため手こずりました: どういう置換をしたいか? 置換前の文字列: ['align' => $hoge] 置換後の文字列: ['align' => $foo] 僕が書いた正規表現(間違い) perl -pi -e 's/\[\'align\' => \$hoge\]/\[\'…

Type 'Promise<Hero[]>' is not assignable to type 'Hero[]'.

これはHeroServiceにおいて、getHeroes関数の戻り値をHero[]からPromise<Hero[]>に変更した場合に発生しました。戻り値がPromiseになっているので、呼び出し側も相応に変更する必要があります。 変更前 ngOnInit():void { this.heroes = this.heroService.getHeroes(</hero[]>…

CakePHP3: アソシエーションしているテーブルのデータを`extract`や`select`したい場合

こんな需要があるのかどうかわからないのですが、実験していて出来たので共有です 前提条件 データ 得たい結果 動くケース matchingとextractを使う場合 matchingとselectを使う場合 leftJoinWithとselectを使う場合 動かないケース containでextractもしく…

A function whose declared type is neither 'void' nor 'any' must return a value.

表題のエラーは、戻り値を指定している関数において何もreturnしなかった場合に発生します。 例: getHero(id: number): Promise<Hero> { this.getHeroes().then( promised_heroes => promised_heroes.find( hero => hero.id === id)); // returnが抜けている }</hero>

javascriptのunary plusについて

Angularのチュートリアルをやっていて見慣れない記述が気になりました: +params.get('id') この+はunary plusといいまして、値を数値に変換してくれるそうです: developer.mozilla.org JSFiddleでテストした結果は以下の通り: console.log(+"3"); // 3 co…

routerLinkの周りの[]はどういうケースでつけるのか?

Tour of Heroesのチュートリアルでは、次の2箇所でrouterLinkが使われています。 <a routerLink="/dashboard">ダッシュボードへ</a> <a *ngFor="ler hero of heroes" [routerLink]="[ '/detail', hero.id ]" >{{hero.name}}</a> これはどちらでもいいというわけではありません。上記を逆にしてみます: