info

Home
[SourceTree+Windows]差分のあるファイルのファイル名をクリップボードにコピー  @ Git 2016年11月11日
差分のあるファイルのファイル名をクリップボードにコピー

下記ファイルを作成
diffclip.bat
git diff --name-only %1 %2 | clip

SourceTree
ツール -> オプション -> カスタム操作 -> 追加 -> diffclip.bat
メニュー表示名:任意
実行するスクリプト:diffclip.bat
パラメータ:$SHA

使い方
コミットを2つ選択する -> 右クリック -> カスタム操作 -> メニュー表示名選択
[CakePHP 3.x]独自findメソッド2パターン  @ CakePHP 3.x , PHP 2016年11月1日
controller
$this->AdAddress = TableRegistry::get('AdAddress');
$this->AdAddress->find('jeff',['limit' => 30]);
$this->AdAddress = TableRegistry::get('AdAddress');
$this->AdAddress->find('jack');

AdAddressTable.php
<?php
namespace App\Model\Table;

use Cake\ORM\Query;
use Cake\ORM\Table;

class AdAddressTable extends TableEx
{
	public function findJeff(Query $query, array $options)
	{
		return $query->group(['city_id'])->order(['id' => 'ASC'])->all();
	}
	public function findJack(Query $query, array $options)
	{
		return $this->find()->group(['city_id'])->order(['id' => 'ASC'])->limit(3);
	}
}
[PostgreSQL]PostgreSQL#1  @ PostgreSQL 2016年10月23日
PostgreSQL#1
ログイン
psql -U ユーザ名 -d DB名 -W

DB一覧
\l

DB接続
\c DB名 ユーザ名
又は
\c DB名

テーブル一覧
\d

テーブル定義確認
\d テーブル名

ユーザ一覧
\du

ロール作成
CREATE ROLE ロール名 WITH SUPERUSER CREATEDB CREATEROLE REPLICATION BYPASSRLS LOGIN PASSWORD 'パスワード';

ユーザのパスワード設定
ALTER USER ユーザ名 WITH PASSWORD 'パスワード';

moreで表示 <-> 一気に表示
¥pset pager

終了
\q
[GoogleChrome]スマホエミュレート時に黒丸カーソルが表示されなくなる  @ Tips 2016年10月23日
スマホエミュレート時に黒丸カーソルが表示されなくなる。
設定で「ハードウェアアクセラレーションが使用可能な場合は使用する」のチェックを外せば直るという情報もあったが効果無し。
結局下記で直った。Chromeの問題ではなかった。
コントロールパネル -> インテルHDグラフィックスコントロールパネル -> 一般設定 -> 詳細 -> 量子化の範囲 -> 全範囲
[SublimeText]CodeFormatter  @ SublimeText 2016年10月5日
CodeFormatter
https://github.com/akalongman/sublimetext-codeformatter

コードを綺麗にするプラグイン。インストールしてSublimeTextを再起動しないと動かない。
デフォルトのキーは「Ctrl+Alt+f」
phpの時、エラーが発生する。
Preferences -> Package Settings -> CodeFormatter -> Settings – Default
codeformatter_php_options -> php_path にphp.exeのパスを入れる。
xamppの時は下記のようになる。
“php_path”: “C:/xampp/php/php.exe”
[Git]SourceTree+Dropbox  @ Git 2016年10月2日
SourceTree+Dropbox
Dropboxにgit用フォルダ「hoge」を作成
コマンドプロンプト(OSXはターミナル)で
cd hogeのパス
git init --bare --shared=true

SourceTree
リポジトリ->リモートを追加
リモート名入力
URL/パス にhogeのパス
ok押下

リポジトリを開いてpush押下
プッシュ先にhogeを選択し、プッシュするブランチをチェックしプッシュ押下
[PHP]mb_send_mail@XAMPP  @ PHP , XAMPP 2016年9月30日
mb_send_mail@XAMPP
・php.ini
SMTP=smtp.gmail.com
smtp_port=587
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

・sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=***@gmail.com
auth_password=***

・GMailアカウント
アカウント->ログインとセキュリティ->安全性の低いアプリの許可:有効

上記設定では送れなかった

・php.ini
SMTP=localhost
smtp_port=25
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

・sendmail.ini
smtp_server=localhost
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log

auth_username=***@gmail.com
auth_password=***

・GMailアカウント
アカウント->ログインとセキュリティ->安全性の低いアプリの許可:有効

stunnelをインストール&起動

上記の設定で送れた

PHPソースは下記
<?php
header('Content-Type: text/html; charset=UTF-8');

mb_language('ja');
mb_internal_encoding("UTF-8");

if (mb_send_mail('****@gmail.com','テスト送信-タイトル','テスト本文','From: ****@gmail.com')) {
echo '送信成功';
} else {
echo '送信失敗';
}
?>

https://www.stunnel.org/downloads.html
[gulp]gulpfile.jsテンプレ  @ JavaScript , Node.js 2016年9月3日
gulpfile.jsテンプレ
https://github.com/contra/gulp-concat
https://github.com/floridoo/gulp-sourcemaps
https://github.com/floatdrop/gulp-plumber
https://github.com/mikaelbr/gulp-notify
https://github.com/dlmanning/gulp-sass
https://github.com/chilijung/gulp-cssmin
https://github.com/hparra/gulp-rename
https://github.com/terinjokes/gulp-uglify
https://github.com/hustxiaoc/gulp-minify
https://github.com/OverZealous/run-sequence
// プラグイン読み込み
var gulp         = require('gulp');
var concat       = require('gulp-concat');//ファイル結合
var sourcemaps   = require('gulp-sourcemaps');//ソースマップ出力
var plumber      = require('gulp-plumber');//エラーで処理を止めないためのプラグイン
var notify       = require('gulp-notify');//エラー時通知
var sass         = require('gulp-sass');//sass
var cssmin       = require('gulp-cssmin');//css minify
var rename       = require('gulp-rename');//ファイル名変更
var uglify       = require('gulp-uglify');//js minify&難読化
//var minify       = require('gulp-minify');
var runSequence  = require('run-sequence');//処理順序指定用

//js結合
gulp.task('js-concat', function() {
  return gulp.src(['./js.src/_intro.js',
                   './js.src/_variable.js',
                   './js.src/_common.js',
                   './js.src/_model.js',
                   './js.src/_view.article.js',
                   './js.src/_outro.js'])
    .pipe(plumber({
      errorHandler: notify.onError("Error[js-concat]: <%= error.message %>")
    }))
    .pipe(sourcemaps.init())
    .pipe(concat('script.js'))
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest('./js'));
});
/*
gulp.task('js-minify',function(){
  return gulp.src(['./js/script.js'])
    .pipe(minify({
      ext:{
        min:'.min.js'
      },
      compress:
    }))
    .pipe(gulp.dest('./js'));
});
*/
//js-concatの後に実行
gulp.task('js-uglify',['js-concat'], function() {
  return gulp.src(['./js/script.js'])
    .pipe(plumber({
      errorHandler: notify.onError("Error[js-uglify]: <%= error.message %>")
    }))
    .pipe(sourcemaps.init())
    .pipe(uglify({
      mangle       :false//変数名を変えない
    }))
    .pipe(rename({suffix:'.min'}))
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest('./js'));
});
gulp.task('sass', function(){
  return gulp.src('./css.src/*.scss')
    .pipe(plumber({
      errorHandler: notify.onError("Error[sass]: <%= error.message %>")
    }))
    .pipe(sass({outputStyle: 'expanded'}))
    .pipe(gulp.dest('./css'));
});
//sassの後に実行
gulp.task('cssmin',['sass'], function(){
  return gulp.src(['./css/override.css'])
    .pipe(plumber({
      errorHandler: notify.onError("Error[cssmin]: <%= error.message %>")
    }))
    .pipe(cssmin())
    .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('./css'));
});
// ファイルを監視して実行させる
gulp.task('watch',function() {
  return gulp.watch(['js.src/*.js','./css.src/*.scss'],['build']);
});
gulp.task('build', function(callback) {
  runSequence(['js-concat','js-uglify','sass','cssmin'],
              'watch',
              callback);
});
gulp.task('default',['build']);