サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
画力アップ
tm.root-n.com
create fulltext index インデックス名 using NGRAM on テーブル名 (カラム名); 例) create fulltext index idx_fulltext using NGRAM on tablename (body); ALTER TABLE tablename ADD FULLTEXT idx_fulltext_title USING NGRAM (title), ADD FULLTEXT idx_fulltext_body USING NGRAM (body); のように、1つのクエリで複数のインデックスを作成しなければならない。 ALTER TABLE tablename ADD FULLTEXT idx_fulltext_title USING NGRAM (title); ALTER TABLE tablename ADD FULLTEXT
<script type="text/javascript" src="/path/to/jquery.js"></script> <script type="text/javascript"> $(function(){ $("input[id^='chkbox_']").click(function(){ var flag = $(this).prop('checked'); $("input[id^='chkbox_']").prop('checked', false); if (flag) $(this).prop('checked', true); }); }); </script> <input type="checkbox" name="chkbox[]" value="1" id="chkbox_1"> 1<br> <input type="checkbox" name="
2行目と3行目を表示する (パイプ経由) % cat hoge.txt | awk 'NR==2,NR==3 { print }' 2行目と3行目を表示する (ファイルから読み込む) % awk 'NR==2,NR==3 { print }' < hoge.txt 条件分岐 (if else) % grep 'needle' hoge.txt \ | awk '{if($2==OK) ok++; else ng++}; END {print ok; print ng}' 第2フィールドの「OK」をカウントし、同時に「OK以外」もカウントする。 演算子 && || % some_command | awk '{if($1==A && $2==B) print}' % some_command | awk '{if($1==A || $2==B) print}' 第2フィールドが「1以上」の行
find ユーティリティは、指定ディレクトリツリーを再帰的に下って、ツリー上の各ファイルについてオプションで指定された処理を実行します。 ファイルのみ検索 % find /path/to/hoge -type f ファイルのみ検索(再帰スキャンしない(指定ディレクトリのみ検索)) % find /path/to/hoge -maxdepth 1 -type f ファイルのみ検索(カレントディレクトリ配下を検索) % find . -type f ファイル名が「hoge.txt」のファイルを検索 % find . -type f -name 'hoge.txt' ファイル名が「hoge.txt」でないファイルを検索 % find . -type f ! -name 'hoge.txt' ディレクトリのみ検索 % find /path/to/hoge -type d シンボリックリンクのみ検索
h = {"a" => "Red", "b" => "Red", "c" => "Blue", "d" => "Green"} p h.sort_by{|key,val| key} ⇒ [["a", "Red"], ["b", "Red"], ["c", "Blue"], ["d", "Green"]]
サービスを提供する上で、テスト環境というのは重要な環境である。 リリース後いざ運用を開始してみると、バグ修正・機能追加・仕様変更はかなりの頻度で発生する。 ここでは表でエンドユーザにサービスを提供している環境を「本番環境」、バグ修正・機能追加を行い、裏で試験する環境を「テスト環境」と呼ぶことにする。 当然「本番環境」では安易に修正を行って障害を発生させることは許されない。 ルールとして、バグ修正・機能追加を行う場合は必ず「テスト環境」で動作確認を実施し、正しく動作する場合のみ「本番環境」に修正版ソースを適用することで障害発生の確率を大幅に下げることができる。 これはどの現場でも日常的に行われていることだろう。 そこで起こりやすい障害の1つに「テスト環境」に適用すべきソースを「本番環境」にあててしまうケース。 アプリケーションを構成するほとんどのソースがテスト環境と本番環境で同じだが、一部の
Batch(バッチ)などで SQLの結果を使いたい場合、カラム名やセパレータが邪魔になる。 通常の出力はこうなる % mysql cschema -e 'select * from CHAR_SETS where CHAR_SET_NAME like "%jis%";' +---------------+----------------------+--------------------+--------+ | CHAR_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION | MAXLEN | +---------------+----------------------+--------------------+--------+ | ujis | ujis_japanese_ci | EUC-JP Japanese | 3 | | sjis |
英文形式の日付を Unix タイムスタンプに変換する int strtotime ( string $time [, int $now ] ) time パースする文字列。PHP 5.0.0 より前のバージョンではマイクロ秒を含めることはできませんでした。 PHP 5.0.0 以降ではマイクロ秒を含めることが可能ですが、その値は無視されます。 now 返される値を計算するために使用されるタイムスタンプ。 戻り値 成功時はタイムスタンプ、そうでなければ FALSE を返します。 PHP 5.1.0 以前ではこの関数は失敗時に -1 を返します。 // 昨日 echo '昨日: '.date('Y-m-d', strtotime('yesterday')).PHP_EOL; // 明日 echo '明日: '.date('Y-m-d', strtotime('tomorrow')).PHP_E
switch の case 文の比較は型を考慮しません。 比較演算子 == と同様の挙動です。 下記サンプルコードをご覧ください。 <?php function hoge($v) { switch ($v) { case '1': // 文字列の1 $ret = 'string: 1'; break; case 1: // 数値の1 $ret = 'integer: 1'; break; } return $ret; } $v = 1; var_dump(hoge($v)); $v = '1'; var_dump(hoge($v)); 結果 string(9) "string: 1" string(9) "string: 1"
php はSESSIONを使うとデフォルトで No Cache、つまり「キャッシュ禁止」を指示する HTTPヘッダを3種類吐きます。 (PHP 5.2.0 で検証) Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache これは、php.ini の session.cache_limiter の設定がデフォルトで nocache になっていることに起因します。 less /path/to/php.ini : session.cache_limiter = nocache :
<script type="text/javascript"> var $j = jQuery.noConflict(); $j(function(){ // ここにjQueryの処理内容を記述します。 }); </script> 個人的には 対策3 がおすすめ。 追記: 2010-02-15 以下の書き方もあるようです。 <script type="text/javascript"> jQuery(function($){ // ここにjQueryの処理内容を記述します。 // この中では$はjQueryとして扱われます。 }); </script>
この修飾子を設定すると、パターン中のドットメタ文字は 改行を含む全ての文字にマッチします。 これを設定しない場合は、改行にはマッチしません。 この修飾子は、Perl の /s 修飾子と同じです。[^a] のような否定の文字クラスは、この修飾子の設定によらず、常に改行文字にマッチします。 (PHPマニュアルより引用) <?php $str = 'abc axz ayz'; // パターン修飾子「なし」 preg_match_all('/^a.*z$/', $str, $cap); var_dump($cap); array(1) { [0]=> array(0) { } } // パターン修飾子「m」 preg_match_all('/^a.*z$/m', $str, $cap); var_dump($cap); array(1) { [0]=> array(1) { [0]=> strin
php では、下記のように static を使って返り値を記憶しておくことができます。 <?php function hoge() { static $ret = null; if ($ret !== null) return $ret; /** * * 大きなリソースを消費する何か複雑な処理が書かれるとする。 * * : * : * * ただし、この関数が呼ばれたタイミングや状態によって、返り値が変化する場合は * この手法(メモ化)は使えない。 * 同一プロセス内で何度呼ばれても返り値が同一の場合のみ有効。 * * 例えば、この関数内で下記のように、実行する時刻によって * 何か変化がある場合はNG * * $mode = 1; * if (date('g') > 10) { * $mode = 2; * } */ $ret = $result; // $result: 処理した結果を
以下のような「hoge.txt」があるとして、いろいろなソートを試してみます。 % less hoge.txt 1 789 fff 120000 1,6 2 789 ccc 16 2,5 3 456 ddd 1100000 3,4 4 456 aaa 1400 4,3 5 123 eee 13000 5,2 6 123 bbb 150 6,1 % sort -r < hoge.txt 6 123 bbb 150 6,1 5 123 eee 13000 5,2 4 456 aaa 1400 4,3 3 456 ddd 1100000 3,4 2 789 ccc 16 2,5 1 789 fff 120000 1,6
比較する時に、各入力行の先頭から N 個のフィールドを無視します。最初のフィールドを 1 として数えます
mysql-connector-odbc-3.51.12 http://dev.mysql.com/downloads/connector/odbc/3.51.html スタート > コントロールパネル > 管理ツール > データソース(ODBC) 【追加】MySQL ODBC 3.51 Driver [Login]タブ Data Source Name: mydb (わかり易い名前を付ける) Server: DBのURL (Port Forwarding している場合は「localhost」) User: DBのユーザ名 Password: DBのパスワード Database: プルダウンから選択 [Connect Options]タブ Port: 3306 (Port Forwarding している場合は「13306」とか自分で設定したポート番号) Initial Statement:
Ruby は array もオブジェクトとして扱われます。 bool値で判定 ary = [] str = "Hello world." p ary.instance_of?(Array) #=> true p str.instance.of?(String) #=> true p ary.instance_of?(String) #=> false p str.instance_of?(Array) #=> false あるオブジェクトがあるクラスのインスタンスかどうか判断 戻り値(文字列)で判定 ary = [] str = "Hello world." p ary.class #=> Array p str.class #=> String オブジェクトが何というクラスのオブジェクトなのか
秀丸で開いているphpスクリプトの構文エラー(syntax error)をリアルタイムで検出します。 普段、秀丸でphpスクリプトをコーディングしている人は設定しておくといいかもしれません。
SQL の LIKE 検索では、0文字以上の任意の文字列を % (パーセント)で表現する。 ちなみに任意の1文字は _ (アンダースコア)。 そのため、% を含む文字列の LIKE 検索は工夫する必要がある。 例えば、%0D%0A を含む文字列があるかどうか検索したい場合 select * from tablename where body like '%#%0D#%0A%' escape '#' のように、# をエスケープ文字として宣言して、本来 % と認識させたい箇所の前に # を入れる。 エスケープ文字は # に限らず指定可能。ただし、検索対象カラム中にエスケープ文字が存在しないことが条件となる。 ※ちなみに、エスケープ文字を明示的に宣言しないときは \ (バックスラッシュ) がエスケープ文字になる。 なお、' (シングルクォート)を含む文字列は select * from tabl
<script type="text/javascript"> String.prototype.trim = function() { return this.replace(/^[\s ]+|[\s ]+$/g, ''); } </script> <script type="text/javascript" src="/path/to/js/jquery.js"></script> <script type="text/javascript"> $(function(){ /** * continue */ $('#continue').click(function(){ $('#fruit li').each(function (idx) { var text = $(this).text().trim(); // trim() = IE対策 if (text === 'バナナ')
/etc/ssh/sshd_config のセキュリティー面の設定について列挙します。 root でのログインを許可するか // ⇒ 許可しない // PermitRootLogin no ⇒ パスワード認証不可で、かつ、rootでのログインもできないが、root権限を利用したコマンドのみ受け付ける(例えば、rsyncを使ってetc配下を丸ごと同期を取るということも可能) PermitRootLogin forced-commands-only パスワード入力でのログインを許可するか ⇒ 許可しない PasswordAuthentication no PasswordAuthentication no にする場合は UsePAM も no に設定 UsePAM no プロトコル1の RSA公開鍵認証を許可するか ⇒ 許可しない RSAAuthentication no プロトコル2の RS
以下、root になっている前提の説明です user の追加 (下記では、ユーザー名を newuser としています) % groupadd newuser -g 10001 % useradd -u 10001 -g newuser -G wheel -s /bin/bash -d /home/newuser newuser % passwd newuser sudo を使えるようにする (wheel グループに権限を与える) % visudo ## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL 下記のように、コメントを外す ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL audit_log_u
このサイトはweb系エンジニアが普段接している技術のちょっとしたテクニック(Tips)の紹介と自分自身の備忘録(メモ)を目的に開設しています。 最近の変更
Windows の時刻同期間隔(ntpサーバーとの同期間隔)はデフォルトで1週間「604800秒」です。 1週間も間隔が空いていると、同期直前では正確な時刻に比べて数十秒のずれが生じてしまいます。 これでは、サーバー用途でない場合であっても少し問題があります。 このエントリでは同期間隔を任意の値に設定する方法をご紹介します。 なお、OS は「Windows 7」「Vista」「XP」の場合です。 レジストリを編集しますので、試される場合は自己責任でお願いします。 1. レジストリエディタを起動 スタートメニュー > ファイル名を指定して実行 > regedit 2. 以下のパスまで降りていきます HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient 3. 右ペインの Spec
パターン名称概要説明(?=pattern)肯定先読みpattern に一致する文字列が始まる位置にある検索文字列と一致x(?=abc) は、abc が後に続く場合のみ `x' に一致(?!pattern)否定先読みpattern に一致しない文字列が始まる位置にある検索文字列と一致x(?!abc) は、abc が後に続かない場合のみ `x' に一致(?<=pattern)肯定後読みpattern に一致する文字列で終わる位置にある検索文字列と一致(?<=abc)x は、abc の後に続く場合のみ `x' に一致(?
VPC :: Internet Explorer Application Compatibility VPC Image を利用して、さまざまなIEのバージョンで仮想環境を構築する
SELECT relname, reltuples as rows, (relpages * 8192) as bytes FROM pg_class WHERE relname = 'テーブル名' テーブル「pg_class」にDBの各種情報が格納されている。 テーブルのサイズ(物理容量)を計測する場合は、relpages に注目する。 relpages は ページ単位(BLCKSZ)の表現サイズ。bytes に変換する時は 8192(8K) をかける。 [補足] relname : テーブル名 reltuples : レコード数
% wget -q -O - http://example.com/ -q : quiet_mode (通信ステータスのログを表示しない) -O : output_document (出力ファイル名の指定) ※ - を指定すると、標準出力に出力される
% zsh % var=12345; echo ${var:1:3} zsh: unrecognized modifier `1' おこられる。記法が違うらしい。 試行錯誤しているうちに、下記にたどり着いた。 % var=12345; echo $var[1,3] 123 切り出しに成功したが、「2文字目から3文字」の意味を込めて書いたはずなのに「1文字目から3文字」の結果になった。 % var=12345; echo $var[0,3] 123 これでも、「1文字目から3文字」の結果になった。 「2文字目から3文字」は当然こう↓ % var=12345; echo $var[2,3] 23 だと思ったら、「2文字目から3文字目まで」だった。 要求を満たすには % var=12345; echo $var[2,4] 234 が正解。 zsh の場合は、 $var[開始文字位置,終了文字位置
次のページ
このページを最初にブックマークしてみませんか?
『TOP [Tipsというかメモ]』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く