カテゴリー: javascript
2014年08月14日
select()で選択状態にできるが、chromeなどのWebkitだとうまく機能しないので
setTimeout(function(){ $("#paste").select() }, 0);
とイベントのタイミングをズラすと良い。
» 続きを読む
setTimeout(function(){ $("#paste").select() }, 0);
とイベントのタイミングをズラすと良い。
» 続きを読む
カテゴリー: MySQL
2014年08月13日
【概要】
カラム「position」の値の順に表示させているデータに対し任意のレコードの表示位置を変更する。
【例】
五十音順に表示させるためにpositionの値を使って制御している環境下において
「田中→高野→高橋」の順番になっているのを「高野→高橋→田中」の順に変更する
row_id name position
1 斉藤 1
2 田中 2
3 高野 3
4 高橋 4
5 渡辺 5
↓
row_id name position
1 斉藤 1
2 田中 4
3 高野 2
4 高橋 3
5 渡辺 5
» 続きを読む
カラム「position」の値の順に表示させているデータに対し任意のレコードの表示位置を変更する。
【例】
五十音順に表示させるためにpositionの値を使って制御している環境下において
「田中→高野→高橋」の順番になっているのを「高野→高橋→田中」の順に変更する
row_id name position
1 斉藤 1
2 田中 2
3 高野 3
4 高橋 4
5 渡辺 5
↓
row_id name position
1 斉藤 1
2 田中 4
3 高野 2
4 高橋 3
5 渡辺 5
» 続きを読む
カテゴリー: MySQL
2014年08月13日
WHERE
`created` > CURRENT_TIMESTAMP + INTERVAL - 10 minute;
`created` > CURRENT_TIMESTAMP + INTERVAL - 10 minute;
カテゴリー: Google Chorme
2014年08月12日
Google Chormeを使用時、普通のサイトは問題なく閲覧できるのに
googleの検索、Gmail、google mapなどのgoogleのサービス全般が異常に重い状態になったら
右上にある「設定」を開いて
→「詳細設定を表示」
→「プライバシー」の「閲覧履歴データの消去」
→「閲覧履歴」と「キャッシュされた画像とファイル」にチェックを入れる
→「閲覧履歴データを消去する」
をクリックしてPC内にあるキャッシュ用のデータを削除すると問題が解決した
googleの検索、Gmail、google mapなどのgoogleのサービス全般が異常に重い状態になったら
右上にある「設定」を開いて
→「詳細設定を表示」
→「プライバシー」の「閲覧履歴データの消去」
→「閲覧履歴」と「キャッシュされた画像とファイル」にチェックを入れる
→「閲覧履歴データを消去する」
をクリックしてPC内にあるキャッシュ用のデータを削除すると問題が解決した
カテゴリー: Nucleus
2014年08月11日
nucleus/libs/globalfunctions.phpの1,285行目のaddBreaksとその下のremoveBreakを
function addBreaks($var) {
$var = preg_replace('/(\t+)/musi', '${1}', $var);
return nl2br($var);
}
function removeBreaks($var) {
$var = preg_replace('#<span class="tab">(\t+)</span>#musi', '${1}', $var);
return preg_replace("/<br \/>([\r\n])/", "$1", $var);
}
としてタブがspanタグで囲まれるように&管理画面では元のタブだけが表示されるようにし、
skins/default/default_left.cssに
.contentbody {
padding: 0 1em;
line-height: 25px !important;
background: url(images/line.png) 0 0 repeat;
}
.contentbody .tab {
white-space: pre;
}
を追記してタブがただのホワイトスペースではなくタブとして表現されるように変更
function addBreaks($var) {
$var = preg_replace('/(\t+)/musi', '${1}', $var);
return nl2br($var);
}
function removeBreaks($var) {
$var = preg_replace('#<span class="tab">(\t+)</span>#musi', '${1}', $var);
return preg_replace("/<br \/>([\r\n])/", "$1", $var);
}
としてタブがspanタグで囲まれるように&管理画面では元のタブだけが表示されるようにし、
skins/default/default_left.cssに
.contentbody {
padding: 0 1em;
line-height: 25px !important;
background: url(images/line.png) 0 0 repeat;
}
.contentbody .tab {
white-space: pre;
}
を追記してタブがただのホワイトスペースではなくタブとして表現されるように変更
カテゴリー: Linux
2014年08月08日
#!/bin/sh
WORK_DIR="/*output_directory_path*/"
PWFILE="/*password_file_path*/"
TABLES=()
TABLES=(${TABLES[@]} "*table_a*")
TABLES=(${TABLES[@]} "*table_b*")
for (( I = 0; I < ${#TABLES[@]}; ++I ))
do
DUMP_SQL="$WORK_DIR/${TABLES[$I]}.sql"
mysqldump --defaults-extra-file=$PWFILE -u*account* *db_name* --tables ${TABLES[$I]} > $DUMP_SQL
perl -pi -e 's/\),\(/\),\n\(/g' $DUMP_SQL
done
【概要】
*output_directory_path*
→ダンプファイル出力先ディレクトリ
*password_file_path*
→MySQL5.6からはコマンドライン上でパスワードを入力するとWarningエラーが出るので
パスワードの内容を設定した以下の2行を記述したファイルをオプションで読み込ませる
[mysqldump]
password=*your_password*
*table_xxx*
→ここにダンプしたいテーブル名を記述し、出力したい分だけ列挙する
perl -pi -e 's/\),\(/\),\n\(/g' $DUMP_SQL
→INSERT文の各レコードの区切りに改行を挿入してエディタで開きやすく&扱いやすく置換
WORK_DIR="/*output_directory_path*/"
PWFILE="/*password_file_path*/"
TABLES=()
TABLES=(${TABLES[@]} "*table_a*")
TABLES=(${TABLES[@]} "*table_b*")
for (( I = 0; I < ${#TABLES[@]}; ++I ))
do
DUMP_SQL="$WORK_DIR/${TABLES[$I]}.sql"
mysqldump --defaults-extra-file=$PWFILE -u*account* *db_name* --tables ${TABLES[$I]} > $DUMP_SQL
perl -pi -e 's/\),\(/\),\n\(/g' $DUMP_SQL
done
【概要】
*output_directory_path*
→ダンプファイル出力先ディレクトリ
*password_file_path*
→MySQL5.6からはコマンドライン上でパスワードを入力するとWarningエラーが出るので
パスワードの内容を設定した以下の2行を記述したファイルをオプションで読み込ませる
[mysqldump]
password=*your_password*
*table_xxx*
→ここにダンプしたいテーブル名を記述し、出力したい分だけ列挙する
perl -pi -e 's/\),\(/\),\n\(/g' $DUMP_SQL
→INSERT文の各レコードの区切りに改行を挿入してエディタで開きやすく&扱いやすく置換
カテゴリー: MySQL
2014年08月08日
FLOOR( 最小の値 + (RAND() * (最大の値-最小の値+1)) )
5~10の間の数値をランダムに取得したい場合は
FLOOR( 5 + (RAND() * (10 - 5 + 1)) )
5~10の間の数値をランダムに取得したい場合は
FLOOR( 5 + (RAND() * (10 - 5 + 1)) )
カテゴリー: Linux
2014年08月07日
# 問題のファイルのあるディレクトリで -i をつけて ls を実行。
ls -i
# 問題ファイルの i-node 番号を確認しておく。
find . -inum (問題ファイルのi-node番号) -exec rm -i {} \;
※rm の -i は安全のために削除の確認を促すようにしているだけなので、 なくてもよい
参考
http://www.nminoru.jp/~nminoru/diary/2003/01.html#2003-01-23
ls -i
# 問題ファイルの i-node 番号を確認しておく。
find . -inum (問題ファイルのi-node番号) -exec rm -i {} \;
※rm の -i は安全のために削除の確認を促すようにしているだけなので、 なくてもよい
参考
http://www.nminoru.jp/~nminoru/diary/2003/01.html#2003-01-23
カテゴリー: Linux
2014年08月07日
# まずは対象のファイル/ディレクトリの所有者&グループを設定
chown -R apache:apache /*target_path*/
# 対象ユーザーをapacheグループに所属させる
usermod -g apache *user_name*
chown -R apache:apache /*target_path*/
# 対象ユーザーをapacheグループに所属させる
usermod -g apache *user_name*
カテゴリー: 画像
2014年08月07日
PNGの圧縮
http://tinypng.org/
JPEGの圧縮
http://www.jpegmini.com/
※GIFはPNG化→tinypngした方が軽くなることがある
http://tinypng.org/
JPEGの圧縮
http://www.jpegmini.com/
※GIFはPNG化→tinypngした方が軽くなることがある
カテゴリー: javascript
2014年08月07日
http://javascript-minifier.com/
カテゴリー: javascript
2014年08月07日
jQuery(function(){
$(document)
// 電話番号の入力は数字と-のみ許可
.on(
"keydown",
"[name=phone]",
function (event) {
var k = event.keyCode;
// BS,Tab,Enter,Del,-
if ( k == 8 || k == 9 || k == 13 || k == 46 || k == 45 || k == 109 || k == 189) return;
// Home,End,←↑→↓
if ( k >= 35 && k <= 40 ) return;
// 数字0~9
if ( k >= 48 && k <= 57 ) return;
// テンキー
if ( k >= 96 && k <= 105 ) return;
event.returnValue = false;
}
)
;
});
$(document)
// 電話番号の入力は数字と-のみ許可
.on(
"keydown",
"[name=phone]",
function (event) {
var k = event.keyCode;
// BS,Tab,Enter,Del,-
if ( k == 8 || k == 9 || k == 13 || k == 46 || k == 45 || k == 109 || k == 189) return;
// Home,End,←↑→↓
if ( k >= 35 && k <= 40 ) return;
// 数字0~9
if ( k >= 48 && k <= 57 ) return;
// テンキー
if ( k >= 96 && k <= 105 ) return;
event.returnValue = false;
}
)
;
});
カテゴリー: jQuery
2014年08月07日
※$("input").each()内の処理
$("input")
.each(
function () {
var _this = $(this);
if (_this.attr("type") == 'radio') {
if ($("[name="+_this.attr("name")+"]:checked").size()) {
// 該当のradioは選択済み
}
}
}
)
;
$("input")
.each(
function () {
var _this = $(this);
if (_this.attr("type") == 'radio') {
if ($("[name="+_this.attr("name")+"]:checked").size()) {
// 該当のradioは選択済み
}
}
}
)
;
カテゴリー: Linux
2014年08月07日
find /*target_path*/ -type f -print0 | xargs -0 chmod 0664
find /*target_path*/ -type d -print0 | xargs -0 chmod 0775
find /*target_path*/ -type d -print0 | xargs -0 chmod 0775
カテゴリー: Linux
2014年08月07日
split -l 5000 error_log.BAK split/split_error_log.
・5000行毎にファイルを分割
・ファイル名は split_error_log.aa → .ab のような形で作られる
・相対パスで指定した下位ディレクトリsplit内に分割ファイルを作成することも可能
・5000行毎にファイルを分割
・ファイル名は split_error_log.aa → .ab のような形で作られる
・相対パスで指定した下位ディレクトリsplit内に分割ファイルを作成することも可能
カテゴリー: MySQL
2014年08月07日
mysqlcheck -u*** -p -a *db_name* [*table_name*] で解析(analyze)
mysqlcheck -u*** -p -o *db_name* [*table_name*] で修復(opitimize)
-o でダメな場合に REPAIR TABLE *table_name* を発行すると直る場合も
【実際にあった例】
ファイル丸ごと移設したDBでエラーが発生
→WinSCP上の所有者はmysqlになっているが、F9で権限を確認すると所有者が空欄になっていた
→再度所有者をmysqlに設定し直しrepairを試みたら成功
mysqlcheck -u*** -p -o *db_name* [*table_name*] で修復(opitimize)
-o でダメな場合に REPAIR TABLE *table_name* を発行すると直る場合も
【実際にあった例】
ファイル丸ごと移設したDBでエラーが発生
→WinSCP上の所有者はmysqlになっているが、F9で権限を確認すると所有者が空欄になっていた
→再度所有者をmysqlに設定し直しrepairを試みたら成功
カテゴリー: MySQL
2014年08月07日
SET
@i := 0;
UPDATE
`table`
SET
`order` = (@i := @i + 1)
WHERE
`id` IN (
SELECT
`id`
FROM
(
SELECT
id
FROM
`table`
WHERE
`column` = 1
ORDER BY
`date`
) AS `tmp`
)
ORDER BY
`order`;
@i := 0;
UPDATE
`table`
SET
`order` = (@i := @i + 1)
WHERE
`id` IN (
SELECT
`id`
FROM
(
SELECT
id
FROM
`table`
WHERE
`column` = 1
ORDER BY
`date`
) AS `tmp`
)
ORDER BY
`order`;
カテゴリー: 未分類
2014年08月07日
【PHP】
slim, Silex
【CSS】
bootstrap
【HTML】
canvas fingerprinting
【javascript】
AngularJS
Node.js
vanilla.js
slim, Silex
【CSS】
bootstrap
【HTML】
canvas fingerprinting
【javascript】
AngularJS
Node.js
vanilla.js