Google Code Jam Japan 2011 の練習問題がむずかしすぎる・・

『Google code jam japan 2011』というものが毎年開催されているらしく・・
「複雑なアルゴリズムの問題を限られた時間の中で解く能力を競う年1回のプログラミングコンテストです。」

との事 。
ぜひ難問を解く自信がある方はいかがでしょうか!?

ちなみに、練習問題が用意されているのですが、、
練習問題からこの難しさか!と思うほど・・
僕はどうやって回答していいのかさえわかりませんでした。。

http://code.google.com/codejam/japan/

 

まだ、僕が見た時点では正解者がいないようですので、是非第1号をみざしてみてはw

 

スピーディなログ調査に使える、「gawk」コマンド

システムの障害時や、急いで情報がほしい場合など、ログを急いで出す必要があった際に利用したコマンド。

『gawk』

例えば特定の文字列が入った行だけはく例。

gawk '/200 OK/'logcheck.log > 200OK.log

上記例だと、「200 OK」という文字列が含まれる行を「200OK.log」というファイルにはくという意味です。

各種コマンドは下記が参考なりました!
http://kazmax.zpp.jp/cmd/g/gawk.1.html

SQLで2つ以上のIDでin検索

MySQLなどで、たまにDBの構造上、2つのIDでin(複数)検索したい時がある。
ちから技でand検索などするのもいや場合があるので、そいいう時は、concatで連結して、in検索!

select
*
from
where
concat(A_ID,'-',B_ID) in(a_id-b_id)

ただ分かりづらくなる可能性もあるので、ご注意を。

twitter APIでxmlの取得失敗時の対処メモ

twitterのAPIを利用する時によく使うxmlでの取得対策用にメモ。

PHPでこんな感じでかいてます。

<?php
try{
	$xml = simplexml_load_file($url);
	if(!$xml){
		throw new Exception("XMLを取得できせん");
	}
}catch(Exception $e){
	echo $e->getMessage();
}
?>

cakephp 指定のViewでheader内にjs、cssを指定するメモ

cakephp1.3を利用していて、指定の画面だけに、特定のCSSやjavascriptを利用したい場合がある

便利なようにcakephpでは、下記方法で指定が可能でした。

 

# app/view/hoge.ctp
echo $html->script('jsfile', array('inline' => false));
echo $html->css('cssfile', null, array('inline' => false));

ただ条件として、app/webroot/layout/default.ctpなどで、
予め、

<head>
<?
echo $scripts_for_layout;
?>
</head>

となっている必要があります。

 

またインラインでjs,CSSを利用したい場合は、普通に下記のように設定すればOK!

Viewはこんな感じ

#app/view/hoge.ctp
<?php
echo $javascript->link('jsfile');
?>

コントローラは↓

#app/controllers/hoges_controller.php

var $helpers = array('Javascript');

PHP 可変変数使いどころ

${"var"} = "123";

PHPの可変変数を使えば、変数名をいじって利用できる、特にループ処理などに有効活用できる。

foreach($device as $key => $val){
$RESULT_ = "result".$key;   //可変変数名
echo $RESULT_;
print_r(${$RESULT_}); 
}

$result1 $result2 $result3 ・・・・
の配列が1つのループで出せます。

一応メモ!

CakePHP 1.2をつかっていたが1.3に移行すると動かなくなった機能メモ

 

  • $form->year $from->dayの引数が変わった
$form->year("Info.DAILY_YMD",2009,2016,null,null,false)."年";

と利用していた場合は、最後の引数が利用できなくなっていたので、下記のように配列で最後の引数で指定できる。

$form->year("Info.DAILY_YMD",2009,2016,"now-1 day",array('empty' => false))."年";

上記同様に$form->dayも同じノリで変更しないと動きませんでした。

 

  • renderElementがelementという名前に変わった
echo $this->renderElement("indextest");

↓ elementに!

echo $this->element("indextest");

他にも色々でてきそうですが、取り急ぎ変わった点をメモ。

vim 改行コード「^M」を取り除く

「^M」の入力がわからなかったのでメモ。

vimで開いたファイルを、下記コマンドで置換するのだが、

:%s/^M//

入力方法を間違えると、うまく置換できないので、

Controlキー+v Controlキー+mで「^M」と入力できます。

CakePHP データベースの切り替えメモ

app/config/database.php に

        var $second_db = array(
                'driver' => 'mysql',
                'persistent' => false,
                'host' => 'localhost',
                'login' => 'usertest',
                'password' => '******',
                'database' => 'testdb2',
        );

のように追記し、対象のモデルで、

$useDbConfig = 'second_db';

とすれば指定していできます。

※デフォルトではdatabase.phpの$defaultが呼ばれるようです。

 

http://blog.syuhari.jp/archives/142

上記サイトを参考にさせていただきました。
ありがとうございます!