スライドショーを簡単に

引き続き、jQuery の勉強中。
今日と昨日は、スライドショーを調べてます。
簡単だという、bxslibder と、新しい slider pro を自分のPCで動かしてみました。
正直言うと、これを使うのに、プログラムの知識はいらないかも、と感じてます。それくらい実装は簡単。使う画像とか、配置、どう見せるかが重要。
ということは、デザイナーの領分ということに。

いや、世の中、便利になった。

lightboxを使ってみました

2月になってから jQuery を復習してます。
かなり以前、前の会社のWebシステムに使おうと思ってちょっとだけ勉強したのですが、結局使わなかったので、それっきりになってました。
ネットで検索するといろいろと情報があります。

早速、有名なプラグインの1つ、lightbox を組み込んでみました。
今の会社のベージの改良案。
http://muzina6301.daiwa-hotcom.com/okz/company.php

このページの下の画像に使ってみました。

もうちょっとうまい使い方を考えないと。

仕事のミスについて

今の会社に転して、約2年になります。
その間、社内のシステム更新とそれに伴う作業ミスの対応に忙殺されてきました。

いや、とにかくひどい。

まず、マスターが間違っている。そんなマスターを使っているから、みんな、たぶんこれでいいだろう、と思って仕事している。そんなんだから、どこかでミスが発生しても、最後までいってもそのミスがみつからない。

さらに、仕事が個人に依存している。その人が間違えると、他の人はその間違いに気がつかない。しかも、よく確認しないで思い込みで仕事している。前はこれでよかったんだから、いいだろう、でやってしまう。そういうのが、最後までいってもミスがみつからない。

もうひとつは、任せたんだから全部やってくれ、というやつ。「これやってくれ」と頼まれることが多いが、「これ」とは、直近の作業の他に、その後の関連する作業すべてが含まれる。私は、ずっと「これ」の背景がわからず、いろいろな人に迷惑をかけてしまった。同じように、依頼者が思う事を、受けた人がやってないために発生したミスを何度も見てきている。

たぶん、前の会社なら20年も同じ職場にいたので、回りは私の仕事がどういうものか知っていて、関係する内容だけ依頼してきた。私もそれがどういうことに関わっているか理解して仕事してたので、うまくフォローすることができた。
今は、私が入社2年でまだまだ解らない点が多いにも関わらず、肩書きが管理職なので、部下から難しいことを持ち込まれる。
それを拒否できない、というか、もっと詳しい部下に振れないのは、私の押しが弱いということもあるだろう。この辺をうまくさばけないのは管理職として失格かも。

とにかく、ミスを減らすのこちは、今の職場の一番の課題。
そのために取り組んでいるのは、ミスを事前に気がつくようにするためのトレーニング。ミスしたら、なぜミスすることになったか振り返ってみる。同じようにミスする可能性のある人に、同じ状況を思い浮かべてもらう。更に、ミスしないですむ仕組みを、ミスをした人といっしょに考えて、それに取組む。
まあ、世の中でやられていることと、同じことです。

少しづつ効果は出ていると思いたい。
更に、今の仕事のやりかたは頻繁に例外があり、それがミスに繋がることが多い。この先、これをどうコントロールするかが、難しそうだ。

amazon api のその後

以前は、仕事の1つがプログラム作成だったのですが、3年まえに転職してからは、自宅でやる趣味の1つになってます。今の会社では、この技術を使う機会が無いんだよな。

実は、転職直後から忙しくて、自宅でプログラムなんてやろうとも思わなかったので、久々に書いてます。

この週末(土日)に書いたのは、PHPの簡単なプログラム。

たった3年ですが、仕様をすっかり忘れてて、ネットで引きながらのプログラムで、時間ばかりかかってなかなか進まないのがはがゆい。

思えば、転職する前も、プログラムを書く頻度が落ちていて、スキルレベルがかなり怪しかったが、このブランクですっかり忘れてしまったようだ。

この週末に書いたのは、Amazon API を利用するための仕組み。

次のブログにあったソースを、ほぼパクリました。

Web APIで最安値を取得できちゃう。楽天、Amazon、Yahoo!など、やってみたら楽しすぎる!!!

できたのは、実はAPIを利用するURLを作る処理だけで、受け取ったデータを加工して、見せる処理は、まったくのてつかず。しかも、オプションとかも、まだまだ未調査だし。

これから、いろいろやりたいと思っているのですが、スキルが追いつかない。

とりあえず、今回作成したPHPコードは、こんなのです。

(ばんぷろさんのコード、勝手に修正させてもらいました。)

[こっちを、ブラウザで表示]

\n”;

echo “
\n”;

try {
$request_url = $api_obj1->api_ItemSearchAll( $keyword, 1);
echo “ItemSearch結果“;
} catch (Exception $e ) {
echo “エラー:
\n”;
echo $e->getMessage(), “
\n”;
}

?>

[こっちは、api.php で、読み込みする]

“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 “
\n”;
echo “[URL]:” . $this->BASE_URL . $request_text . “
\n”;
echo “
\n”;
echo “[SIG TEXT]: ” . $signature_URL . “
\n”;
echo “[ACCESS K]: ” . $this->AWS_API_SECRET_KEY . “
\n”;
}

// リクエスト用のURLが完成
$request_text_url = $this->BASE_URL . $request_text . “&Signature=” . $signature_URL;
if ( $debug_mode == 1 ) { // デバック用
echo “
\n”;
echo “[ sig URL ]: ” . $request_text_url . “
\n”;
echo “
\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 . “
\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
}

}
?>

他の機能も利用したいのですが、まだ、手つかず。