仕事のミスについて
会社での仕事のミスについて
別のブログに投稿。
http://muzina6301.daiwa-hotcom.com/wordpress/
これを書いた後、そのミスのせいで、その人の人格を否定してはいけない、と次の記事を読んで、改めて思いました。
自分が責められているという感覚、あるいは物事には"責任をとるべき誰か"がいるという考え方について。 - フジイユウジ::ドットネット
amazon api
以前は、仕事の1つがプログラム作成だったのですが、3年まえに転職してからは、自宅でやる趣味の1つになってます。今の会社では、この技術を使う機会が無いんだよな。
実は、転職直後から忙しくて、自宅でプログラムなんてやろうとも思わなかったので、久々に書いてます。
この週末(土日)に書いたのは、PHPの簡単なプログラム。
たった3年ですが、仕様をすっかり忘れてて、ネットで引きながらのプログラムで、時間ばかりかかってなかなか進まないのがはがゆい。
思えば、転職する前も、プログラムを書く頻度が落ちていて、スキルレベルがかなり怪しかったが、このブランクですっかり忘れてしまったようだ。
この週末に書いたのは、Amazon API を利用するための仕組み。
次のブログにあったソースを、ほぼパクリました。
Web APIで最安値を取得できちゃう。楽天、Amazon、Yahoo!など、やってみたら楽しすぎる!!!
できたのは、実はAPIを利用するURLを作る処理だけで、受け取ったデータを加工して、見せる処理は、まったくのてつかず。しかも、オプションとかも、まだまだ未調査だし。
これから、いろいろやりたいと思っているのですが、スキルが追いつかない。
とりあえず、今回作成したPHPコードは、こんなのです。
(ばんぷろさんのコード、勝手に修正させてもらいました。)
[こっちを、ブラウザで表示]
<?php
/*
このファイルは、api.php を使う為の記述
*/
require("api.php");
$api_obj1 = new amazon_PA();
$keyword = "アナと雪の女王";
echo "キーワード : " . $keyword . "<br>\n";
echo "<br>\n";
try {
$request_url = $api_obj1->api_ItemSearchAll( $keyword, 1);
echo "<a href=\"" . $request_url . "\" target=\"_blank\">ItemSearch結果</a>";
} catch (Exception $e ) {
echo "エラー:<br>\n";
echo $e->getMessage(), "<br>\n";
}
?>
<?php
/*
このファイルは、Amazon Product Advertising API を
利用するためのクラスが定義されている。
*/
// パラメータの配列の名称
var $REQUEST_WORD = array(
"AWSAccessKeyId",
"AssociateTag",
"Keywords",
"Operation",
"OfferStatus",
"ResponseGroup",
"SearchIndex",
"SellerId",
"Service",
"Sort",
"Timestamp",
"Version"
);
// リクエストの為のパラメータ用配列
var $params = array(
"Service"=>"AWSECommerceService",
"AWSAccessKeyId"=>"(ここにアクセスキーを)", // アクセスキー
"AssociateTag"=>"(ここは、アソシエイトタグ)", // アソシエイトタグ
"Keywords"=>"",
"Operation"=>"",
"OfferStatus"=>"",
"ResponseGroup"=>"",
"SearchIndex"=>"",
"SellerId"=>"",
"Sort"=>"",
"Timestamp"=>"",
"Version"=>"2013-08-01"
);
// access URL
// var $BASE_URL = "http://webservices.amazon.com/onca/xml?";
var $BASE_URL = "http://webservices.amazon.co.jp/onca/xml?";
// シークレットキー for signature
var $AWS_API_SECRET_KEY = "(シークレットキー)";
// access HOST NAME for signature
//var $BASE_HOST = "webservices.amazon.com\n/onca/xml";
var $BASE_HOST = "webservices.amazon.co.jp\n/onca/xml";
// ItemSerch のメソッド
//
// api_ItemSearch()
//
function api_ItemSearch($SearchIndex, $Keywords, $debug_mode ){
// 引数をチェックする
if ( $SearchIndex == "" ) {
throw new Exception('引数 SesrchIndex が空です。');
}
if ( $Keywords == "" ) {
throw new Exception('引数 Keywords が空です。');
}
// ItemSerch リクエストのパラメータ作成
$this->params["Keywords"] = $Keywords;
$this->params["Operation"] = "ItemSearch";
$this->params["ResponseGroup"] = "ItemAttributes,Offers";
$this->params["SearchIndex"] = $SearchIndex;
$this->params["Timestamp"] = gmdate("Y-m-d\TH:i:s\Z");
// リクエストURLを作成
// URL 用文字列
$request_text = $this->url_param_marge( $debug_mode );
$signature_URL = $this->url_signature_text( $request_text );
if ( $debug_mode == 1 ) { // デバック用
echo "<br>\n";
echo "[URL]:" . $this->BASE_URL . $request_text . "<br>\n";
echo "<br>\n";
echo "[SIG TEXT]: " . $signature_URL . "<br>\n";
echo "[ACCESS K]: " . $this->AWS_API_SECRET_KEY . "<br>\n";
}
// リクエスト用のURLが完成
$request_text_url = $this->BASE_URL . $request_text . "&Signature=" . $signature_URL;
if ( $debug_mode == 1 ) { // デバック用
echo "<br>\n";
echo "[ sig URL ]: " . $request_text_url . "<br>\n";
echo "<br>\n";
}
// リクエスト用のURLを返す
return( $request_text_url );
// api_ItemSearch ここまで
}
//
// api_ItemSearchAll()
//
function api_ItemSearchAll( $Keywords, $debug ){
try {
$request_text_url = $this->api_ItemSearch( "All", $Keywords, $debug );
} catch (Exception $e ) {
throw new Exception( $e->getMessage() );
}
return( $request_text_url );
}
// Sub functions
//
// url_param_marge()
//
function url_param_marge( $debug_mode) {
$request_text = "";
$count = 0;
foreach ( $this->REQUEST_WORD as $rest ) {
if( $this->params[$rest] != "" ) {
$url_text = rawurlencode($this->params[$rest]);
if ( $debug_mode == 1 ) {
echo $rest . " = " . $this->params[$rest] . " [URL ENCODE] " . $url_text . "<br>\n";
}
if ( $count == 0 ) {
$request_text = $rest . "=" . $url_text;
} else {
$request_text = $request_text . "&" . $rest . "=" . $url_text;
}
$count = $count + 1;
}
}
return( $request_text );
// url_param_marge() end
}
//
// url_signature_text()
//
function url_signature_text( $request_text ) {
$request_text_sig = "GET\n" . $this->BASE_HOST . "\n" . $request_text ;
// signature 用のテキストを作成
$signature = base64_encode(hash_hmac('sha256', $request_text_sig, $this->AWS_API_SECRET_KEY, true));
$signature_URL = rawurlencode( $signature );
return( $signature_URL );
// url_signature_text() end
}
}
?>
他の機能も利用したいのですが、まだ、手つかず。
うまくいったら、ここにも書きます。
ブラウザゲーム「剣と魔法のログレス」
「妖怪ウォッチ」が人気らしい
今日、下の子(小4)とゲームの話をしてたら、どうも「妖怪ウォッチ」がマイブームらしく、しきりに新しいゲームを買ってほしいとねだる。「妖怪ウォッチ」は簡単なストーリーは読んでいたが、1度も見てなかった。そんなにおもしろいの、と疑問だった。
どうも今の小学生にはとっては、ポケモンを越える人気らしい。
http://www.tokyo-np.co.jp/article/entertainment/news/CK2014071302000158.html
これを企画した「レベルファイブ」の「イナズマイレブン」と「ダンボール戦記」とも、下の子は大好きで、いろいろと買わされたが、今回もゲームを買うことになったしまった。
これね。
しばらくは、子供のマイブームにつきあってあげるつもり。
しかし、こういう子供の流行には、自分は感度が高いと思っていたのだが、今回は完全に出遅れてしまった。老化が進んでいる証拠?とにかく、いろいろなことに興味を持っていかないと、と思った1日でした。
Linux で使えるブラウザゲーム
最近、新たに手を出したブラウザゲームが、自宅の Ubuntu (Linux)で、動作しなかったので、書き残しておきます。Ubuntuで使っているWebブラウザは、Chrome のLinux版(version 31.0.1650.63 for Ubuntu 13.04)。最近、フラッシュのサポートがChromeだけになったので、WebブラウザはChromeを使ってます。
最近、次の2つのゲームが、Linuxで遊べまないことが解りました。
その1つは、「ブレイブリーデフォルト プレイングブレージュ」。
フラッシュだと思うのですが、ゲームシステムのロードで失敗して遊べませんでした。
このゲームでは、必ずフラッシュのバージョンのワーニングが出るので、今のところどうしてもダメみたいです。
もう1つは、「大航海時代V」。
コーエイが15年ぶりに、ということで昔遊んだ1人として、やってみようか、と思ったのですが、ダメでした。
今のところ、自宅のUbuntuで遊べるブラウザゲーム(私がユーザー登録したゲーム)は、次のとおりです。
・艦隊コレクション
・戦国EXA
・Lord of Walkure
・スターギャラクシー
・創星紀アステルゲート
・黄金航路
・ドラゴンクルセイド2
というか、一度にこんなにできないので、1ケ月以上アクセスしてないゲームがほとんど。ちなみに先週は、艦コレとスターギャラクシーしかやってない。