目指せ1級!30代サラリーマンボルダリング日記

都内IT企業で働く30代サラリーマンのクライミング記録

各サービスのエンドポイントメモ。
とりあえずXML-RPCに対応してそうなブログの一覧。
サービスhostpath
FC2blog.fc2.com/xmlrpc.php
gooblog.goo.ne.jp/xmlrpc.php
seesaablog.seesaa.jp/rpc
jugenYOURID.jugem.jp/xmlrpc.php
ココログapp.f.cocolog-nifty.com/t/api
ninjaYOURID.blog.shinobi.jp/XMLRPC/


XMLRPC::Liteモジュールを利用してPerlでの実装。
続きを読む
    このエントリーをはてなブックマークに追加


前回の記事(http://blog.livedoor.jp/j_yuze/archives/51369191.html)を受けて、 いろいろコピペで使えるようにしとくシリーズ。

まずはyoutubeAPI。

続きを読む
    このエントリーをはてなブックマークに追加

http://phpcon.php.gr.jp/2009/

今年で10周年みたいです。

会場内で「初参加の人?」と質問があったんですが
6,7割の人が挙手していたように思われました。
ぼくもその中の一人です。

やっぱり印象的なのは、


PHPとは?
・テンプレートエンジン界のオーバーテクノロジー
・世界で初めてテンプレートエンジンでテンプレートエンジンを実装した



の言葉でしょう。
この日一番の笑いが起きていました。
この発表をしたmoriyoshiさんの「PHP を「いじり」倒す 10 の方法」は
PHPの内部構造や、Cのソースコードをいじって新しい関数を追加するなど
( ・∀・)つ〃∩ ヘェーヘェーヘェーヘェーヘェーっていうかんじの内容。


ずっとメイン会場で見てましたので、
FacebookのBrian Shire氏の「APCによるハイパフォーマンスの実現」、
安藤祐介さんの「CakePHPストーリー」 、
Symfony開発者Fabien Potencierさんの「Symfony, a web framework for professional websites」
などなどを見ておりました。

会場内のフレームワーク利用率はCakePHP > Symfony > その他みたいな。
プレゼンもそれぞれのフレームワークの紹介みたいなかんじだったのでちょっとアウェイ感。


というかどっちか使ってみようかなと洗脳されて帰ってきました。
    このエントリーをはてなブックマークに追加

前の会社の同期の結婚式2次会に参加。
なつかしい同期がけっこう来てたけど、意外とみんな結婚してた。
あれ・・・まだ28歳なのに。。

ブーケトス


2軒目、3軒目と続いて久々にけっこう飲みました。
みんなだいたい同じ歳なんだけど、若いなーって思ってしまった。

会社辞めてからも仲いい同期たちとは毎年いろいろ企画で小旅行的なものをしているので、
みんな結婚しても続けていけるといいな。

結婚式2次会の終わり

あ、↑の写真のお皿には新郎のケーキがあったんだけど
おいしくいただきました\(^o^)/
    このエントリーをはてなブックマークに追加

値段表示するときにふと思ったのでメモ。

使うときはこんな感じで使おう。
function number_format(num) {
  return num.toString().replace(/([0-9]+?)(?=(?:[0-9]{3})+$)/g , '$1,')
}

    このエントリーをはてなブックマークに追加

今年も行ってきました。
相変わらずの混雑ぶり。

まずは各国料理の屋台から見て回りましたが、
なんか例年より人が少ない?
めちゃめちゃ混んでるのはたしかなんですけど。

シシケバブとかタコスとかドイツのソーセージとかいろいろ食べたんですけど
やっぱり屋台は日本の味が一番だなって思いました。。

写真がちょーぼけてるー(;・∀・)
麻布十番納涼まつり
    このエントリーをはてなブックマークに追加

参照元: 21 Really Useful & Handy PHP Code Snippets
if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){  
 //If AJAX Request Then  
}else{  
 //something else  
} 
    このエントリーをはてなブックマークに追加

今週夏休みだったので実家に帰ってました。

うちは温泉街なので、寝起きの昼間から温泉いってサウナ入って
この写真の帰り道をぶらぶら散歩してました。

帰省


来週から仕事だ・・・。
    このエントリーをはてなブックマークに追加

ふとjsonpを使おうと思ったんだけど たぶんぼくのドキュメント読解力が足りないせいで無駄に時間かかった。
忘れないようにメモ。

$.ajax({
    type: "GET",
    url: "http://sample.com/",
    data: {
      "param": "hogehoge",
    },
    dataType: "jsonp",
    jsonp: "callBack",
    success: function(data) {
      /* success */
    },
    complete: function(data) {
      /* complete */
    }
});

dataTypeをjsonpにするとjQueryがcallbackパラメータを自動で入れてくれる。

callback=jsonp1234391216435みたいな。

jsonpオプションを付けると↑のcallbackの部分を指定した名前にできる。
サーバ側のAPIによってcallbackのパラメータ名が決められている場合があるのでそういうときに使う。


callback関数を指定したければdataオプションに書く。

data: { "callback" : "hoge" }

callback関数を指定しないとjQuery内部で以下のコードが実行される。
window[ 'jsonp1242391216435' ] = function(tmp){
  data = tmp;
  success();
  complete();
  // ガベージコレクト処理
  window[ jsonp ] = undefined;
  try{ delete window[ jsonp ]; } catch(e){}
  if ( head )
  head.removeChild( script );
}


サーバ側はこんなのでとりあえずデータ返してみた。
返すデータはお好きに。
<?php
$data = array("a" => "hoge", "b" => "foo", "c" => "bar");
$json = json_encode($data);
$callback = htmlspecialchars(strip_tags($_GET["callback"]));
echo $callback . "(" . $json . ")";
?>
    このエントリーをはてなブックマークに追加

あと5日だぞゴルァ!!
ってAmazonからメール来てたので対応してみました。
ぎりぎりにならないとやらない。。
夏休みの宿題といっしょです。

というわけで今まで渡してたparamとシークレットキーを渡すと
アクセスURLを返してくれる関数。

完全に自分用。
引数や返り値はその都度変えるといいよね。

function amazonSignature ($param=array(), $secretKey="") {
  $aws = array("host" => "webservices.amazon.co.jp", "path" => "/onca/xml");
  ksort($param);

  $reqParam = array();
  foreach ($param as $key => $val) {
    $reqParam[] = $key . "=" . rawurlencode($val);
  }

  $paramStr = implode("&", $reqParam);
  $str = implode("\n", array('GET', $aws["host"], $aws["path"], $paramStr));
  $sig = rawurlencode( base64_encode( hash_hmac("sha256", $str, $secretKey, true)));
  $reqParam[] = "Signature=" . $sig;
  $url = "http://" . $aws["host"]. $aws["path"] . "?" . implode("&", $reqParam);

  return $url;
}

ちなみにparamにはこんな感じのデータを。
検索にあわせて変更。
$param = array(
               "Service" => "AWSECommerceService",
               "AWSAccessKeyId" => "YOUR ACCESS KEY",
               "Operation" => "ItemSearch",
               "SearchIndex" => "Books",
               "ResponseGroup" => "Medium,Tracks",
               "BrowseNode" => "465610",
               "Timestamp" => gmdate("Y-m-d\TH:i:s\Z"),
               );
    このエントリーをはてなブックマークに追加

このページのトップヘ