2015年3月15日日曜日

GAE/Python の Backend Instance を使う

GAE/Python は、9時間/日の Backend Instance 無料枠があります。

この無料枠を使う方法をメモっておきます。

[公式ドキュメント]
https://cloud.google.com/appengine/docs/python/modules/

【重要】
・Backends Python API は、2014/3/13 に停止されています。
・WEB上の古い記事に注意しましょう。

[利用ケース]
この Backend Instance は、Cron で起動して、バッチ処理に使うとよいでしょう。

[必要なファイル]
app.yaml
dispatch.yaml
backend.yaml
cron.yaml

[app.yaml]
デフォルト(Frontend Instance)の設定ファイルです。

例:自動スケーリング(F1)を使用します。
-- ここから --
application: <アプリケーション名>
module: default
version: 1
runtime: python27
api_version: 1
threadsafe: true

instance_class: F1
automatic_scaling:
 max_idle_instances: 1
 min_pending_latency: 15.0s

handlers:
- url: /.*
 script: <スクリプト>
-- ここまで --

[dispatch.yaml]
どの処理を Backend Instance に渡すかを記述します。

例: /backend にリクエストがあった場合、module:backend を利用します。
-- ここから --
application: <アプリケーション名>
dispatch:
- url: "*/backend/*"
 module: backend
-- ここまで --

[backend.yaml]
バックエンドの設定ファイルです。

例:基本スケーリング(B1)を使用します。
-- ここから --
application: <アプリケーション名>
module: backend
version: 1
runtime: python27
api_version: 1
threadsafe: true

instance_class: B1
basic_scaling:
 max_instances: 1
 idle_timeout: 10m

handlers:
- url: /.*
 script: <スクリプト>
-- ここまで --

[Cron.yaml]
Cron で処理を起動するには、cron.yaml を準備します。

例: 毎日 02:00 に、/backend/cron/day の処理を起動します。
-- ここから --
cron:
- description: Cron Day Job of Backend
 url: /backend/cron/day
 schedule: every day 02:00
 timezone: Asia/Tokyo
 target: backend
-- ここまで --

[開発用サーバの起動]
$ google_appengine/dev_appserver.py app.yaml dispatch.yaml backend.yaml

[デプロイ]
$ google_appengine/appcfg.py update app.yaml backend.yaml

[参考]
http://www.topgate.co.jp/blog/20140715

2015年3月7日土曜日

jQuery Mobile で WebStorage を使う方法

Formで送信したデータを横取りして、webstorageに入れてみました。

HTMLは、こんなカンジで。

<form id="form" method="get" action="/search/">
<input type="search" id="search" name="q" value="" />
</form>

Formのidは「form」。
送信したデータの名前は「q」。

続いて、スクリプトです。

$(document).on("submit", "#form", function(){
 if (window.localStorage) {
  var storage = sessionStorage;
  var key = jQuery.now();
  var val = $(this).serialize().split('=')[1];
  //alert(val);
  storage.setItem(key, val);
 }
});

簡単に説明
on("submit", "#form", … Formの送信を検知。
if (window.localStorage) … ブラウザで webstorageが使えるか、確認。
storage = sessionStorage … セッションストレージを使います。
key = jQuery.now() … キーとして、現在時刻をセット
val = $(this).serialize().split('=')[1] ‥ 送信データから値を取り出し
(例えば、「nec」と入力した場合、「q=nec」が送信されますよ。)
storage.setItem(key, val) … webstorage に格納

格納されたことを確認するには(Chromeの場合)
その他ツール → デベロッパーツール → Resources → Session Storage

取り出すには

var storage = sessionStorage;
for (var i=0; i < storage.length; i++) {
 var key = storage.key(i);
 var val = storage.getItem(key);

for で回して、keyとvalを得ます。

アイデア次第で、イロイロなことに使えそう。

2015年2月15日日曜日

【重要】「Yahoo!アフィリエイト」サービス終了のお知らせ

2015/2/10 突然、こんなメールが来た。

-- ここから --

このメールは、Yahoo!アフィリエイトでYahoo!ショッピングアフィリエイトプログラムをご利用いただいているお客様へ送付しております。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【重要】「Yahoo!アフィリエイト」サービス終了のお知らせ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
平素より「Yahoo!アフィリエイト」をご愛顧いただきまして、誠にありがとうございます。
2005年より運営して参りました「Yahoo!アフィリエイト」ですが、2015年3月31日(火)をもちまして、サービスの提供を終了させていただくこととなりました。
ご利用いただいているお客様にはご迷惑をおかけし、深くお詫び申しあげますとともに、長きに渡り、ご支援賜りましたこと、心より御礼申しあげます。

Yahoo!アフィリエイト トップページ
http://affiliate.yahoo.co.jp/

┏■ 今後の予定について
┗┛━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・コミッション料(アフィリエイト報酬)の発生は、2015年3月31日(火)をもちまして終了いたします。
・2015年3月31日(火)までに発生した広告効果についてのコミッション料をYahoo!アフィリエイト利用規約に従いお支払いいたします。コミッション料の最終支払い月は、ご掲載いただいているサービスにより異なります。

Yahoo!ショッピングの場合、2015年3月末日までにYahoo!アフィリエイトリンクをクリックされ、cookie有効期限内(最長30日)に注文完了に至ったものをコミッション料として計上します。
コミッション料支払い月は、出店ストア様の注文完了処理タイミングにより異なります。
最終支払い月は2015年12月の予定です。

・サービス終了後は、お客様が本サービスで設定したリンクはすべて無効となります。
  「現在、この広告リンクは使われておりません」というエラーページに遷移いたします。
  お手数ですが、終了日までにリンクの修正・削除ご対応をお願い申しあげます。

・過去実績・お支払い予定金額は、最終支払い月まで、アフィリエイト・レポートにて引き続きご確認いただけます。

┏■ 代替サービスについて
┗┛━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
バリューコマース株式会社により運営されるアフィリエイトプログラムにつきましては、引き続きご利用いただけます。ぜひ、バリューコマース株式会社のアフィリエイトサービスのご利用をご検討ください。

<ご参考>
バリューコマース株式会社のアフィリエイトプログラムについて(外部リンク)
https://www.valuecommerce.ne.jp/beginners/
  ※バリューコマースアフィリエイトをご利用いただくには、無料登録のうえ、バリューコマース株式会社による審査を受ける必要があります。

┏■ ご注意事項
┗┛━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆「現金」によるお支払いを選択中で、2,000円未満のコミッション料金額のお客様へ最終支払い月(2015年12月)以降に集計し、2,000円に満たないお客様に対しても「コミッション料の現金支給に関わる特約事項」(以下「特約」という)第5項の記載にかかわらず、ご登録口座へお振込みいたします。その際、特約第2項に従い、振込手数料216円(税込)を差し引いて支払うものとします。
 Tポイントでのお支払いを希望されるお客様は、2015年3月31日までにYahoo!アフィリエイトトップページ(http://affiliate.yahoo.co.jp/)の「アフィリエイト・レポート」の「受け取り状況」にて、受け取り方法の変更を設定してください。

 ※振込み手数料と相殺されるため、残高が216円以下のお客様はお支払いできません。
 ※ご登録口座が不明と判断された場合は、Tポイントでお支払いいたします。

◆Yahoo!デベロッパーネットワークにつきまして
  ショッピング情報取得APIをご利用中のお客様は、2015年4月以降も継続してご利用いただけます。継続利用をご希望の場合、自動的にアフィリエイトリンクから通常リンクに変更されますので、特に対応は発生しません。
  バリューコマース社のアフィリエイトプログラムにてYahoo!ショッピングアフィリエイトプログラムを継続利用される場合は、「affiliate_type」を「yid」から「vc」に変更していただく必要がございます。
  お手数をお掛けしますが、ご対応のほどよろしくお願い申しあげます。

◆「お買い物レビュー」アフィリエイトにつきまして
  Yahoo!アフィリエイトサービス終了をもちまして、「お買い物レビュー」アフィリエイトも終了となります。投稿いただいたレビューは2015年4月以降も掲載は継続されます。
 当該レビューを経由して注文が発生した場合のコミッション料獲得条件は、2015年3月末日までにクリックされ、cookie有効期限内(最長30日)に注文完了に至ったものをコミッション料として計上します。

◆アフィリエイトパーツにつきまして
  「パーツギャラリー」より作成いただいたパーツは、種類により対応が異なります。

  (1)以下のパーツは自動的にアフィリエイトリンクから通常リンクに変更されます
    「商品レビューパーツ」
    「商品一覧パーツ」
    「コンテンツマッチパーツ」

  (2)以下のパーツはサービス終了までに差替え対応をお願いいたします
    「URL指定リンク」
    「キーワード検索リンク」

◆サービス終了後のアフィリエイトリンクについて
 サービス終了後は、バリューコマース社のページに遷移します。
 お手数をお掛けいたしますが、お早目にリンク修正・削除のご対応をお願い申しあげます。

本メールに関し、ご確認ならびにご対応を重ねてお願い申しあげます。

今までYahoo!アフィリエイトをご利用くださいまして、誠にありがとうございました。
今後とも弊社サービスをよろしくお願いいたします。

-- ここまで --

ヤフーショッピングの情報取得APIは、「通常リンクに変更されます」って??
これ、アフェリエイト報酬が入らないってことだよね。
で、バリューコマースに切り替えろと..
でも、バリューコマースって、審査が厳しかったような..

と、悩んでてもしかたないので、早速、バリューコマースに申し込み。
2/10に申し込んで、2/12に承認メールが来た。
これで、一安心。

こちらのページを参考に、アフェリエイトIDを変更し、無事に切り替え完了しました。
http://developer.yahoo.co.jp/appendix/shopping/affiliate.html

ID切り替えだけなので、サイトは、そのままです..
わいわいサーチ http://yy-search.appspot.com/

バリューコマースは、楽天やアマゾンも使えるようなので、もう少し調べてみるかな。

2014年12月21日日曜日

MEDIAS N-04C で、USBテザリング

今更ですが、やってみました。
(年末年始、ネット環境の無いトコロに缶詰なので..)

1.スマホにアプリを入れる

まず、MEDIASに、Google Play から「ClockworkMod Tether」をインストールします。
https://play.google.com/store/apps/details?id=com.koushikdutta.tether

2.PCにソフトを入れる

次に、PC(Xubuntu)にクライアントソフトをインストールします。

ここからダウンロード
http://download.clockworkmod.com/tether/tether-linux.tgz

インストールします。(g++が必要)
$ sudo apt-get install g++
$ tar zxvf tether-linux.tgz
$ cd Tether
$ cd node
$ ./configure
$ make
$ sudo make install

3.アプリを起動(MEDIAS側)

その前に、ちょっと一手間。
設定 → アプリケーション → 開発 → USBデバッグ ON(チェックを入れる)

アプリを起動 →灰色のUSBマークが表示されます。
USBマークをタップ →灰色から青色に変わります

4.ソフトを起動(PC側)

$ cd Tether/linux
$ sudo ./run.sh

アプリのUSBマークが緑色に変われば、通信できます。

- 所感など -
・Root奪取が不要なのは良いけど、PC側のソフトインストールが面倒かも。
・Wifiテザリングと違って、スマホが熱くならないです。
・試用期間の2週間を越えると、1日の通信料に制限があるとか。
・WindowsやMacでも使えるようです。

こちらを参考にさせて頂きました。
https://blog.alpha-kai-net.info/?p=266

2014年4月19日土曜日

ServersMan SIM LTE が速度アップ

ワンコインSIM の ServersMan SIM LTE が、4/21 から 250kbps に速度アップするようだ。

そろそろ、OCN モバイル ONE に乗り換えようかな?と思ってたけど、まだ、しばらくは ServersMan で良いかな。

ところで、低速SIMは、動画等を見なければ、それほど支障は無い! と、イロイロなところに書いてあるけど、PC用サイトを見るには、やはり遅いですね。
どうでも良いような装飾や広告が原因かと。

PC用サイトから、本文だけ取り出せると良いのですが、これは中々難しいので、とりあえず、装飾と広告だけでも削除したいとこです。

で、こんなサイトを作成中。
http://ax-proxy.appspot.com/

2013年9月23日月曜日

GAE/Djanigo で、メールとキャッシュを使う

Django には、メール送信や、キャッシュを使う仕組みがありますが、GAE(GoogleAppEngine)で、これを使うには、どうすれば良いのだろう??

GAE のサービスに、メールとキャッシュのAPIはあるので、このAPIを直接使うしかないのか??

と、調べてみると、良いものを見つけました。

django-gae-backends


1.使い方

1-1.プログラムの配置

ダウンロードして、ここに置きました。

mysite/
├mysite/
│ └settings.py
└gae_backends/
 ├__init.py__
 ├mail.py
 └memcache.py

1-2.設定

settings.py に、以下を追加。

-- settings.py --

EMAIL_BACKEND = 'gae_backends.mail.EmailBackend'
SERVER_EMAIL = '<Gmailのメールアドレス>'

ADMINS = (
 ('<管理者の名前>', '<管理者のメールアドレス>'),
)

CACHES = {
 'default': {
  'BACKEND': 'gae_backends.memcache.MemcacheCache',
 }
}

MIDDLEWARE_CLASSES = (
 'django.middleware.cache.UpdateCacheMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.cache.FetchFromCacheMiddleware',
)

LOGGING = {
 デフォルトのままでOK

--

1-3.メール送信

エラーが発生すると、管理者宛にメールが送信されます。

プログラム内で使う場合は、マニュアルを読んで下さい。

1-4.キャッシュ

UpdateCacheMiddleware と FetchFromCacheMiddleware によって、サイト単位のキャッシュが有効になっています。

2013年6月2日日曜日

引越しに合わせて、家電のリプレース

価格コムを参考にしながら、ヤマダ電機で購入。
http://www.yamada-denki.jp/store/contents/shop_193.html

冷蔵庫 NRF607T : 190,000円
パナソニックの一番デカい奴。とても使いやすそう。
http://kakaku.com/item/K0000442444/

エアコン RASM28C(W)工事セット付 : 101,800円
しろくま君のステンレス。長く使えそう。
http://kakaku.com/item/K0000487756/

洗濯機 BW10PV : 75,100円
日立の10kg。一番大きい奴。
http://kakaku.com/item/K0000468226/

炊飯器 RZ-SW1000K : 33,000円
サーモスとのコラボモデル。
http://kakaku.com/item/K0000394831/

掃除機 CVPW300 : 30,000円
今更だけど、紙パック式。
http://kakaku.com/item/K0000397053/

電子レンジ MROLS8  : 24,000円
レンジは、昔に比べて本当に安くなりましたねぇ。ビックリ。
http://kakaku.com/item/K0000369817/

LED照明 HLDCA0611 : 9,550円
やっぱ、照明は「ホタルック」でしょう。
http://kakaku.com/item/K0000414279/

ドアホン VLSVD300KL : 18,280円
ピンポンだけでは、やはり不便なので。
http://kakaku.com/item/K0000330712/

空気清浄機 KC500Y5 : 24,800円
シャープ、プラズマクラスターのヤマダ電機モデル。
最近、花粉症がひどいので、期待してます。

扇風機 TKF3031RP : 4,280円
デザインがかわいくて、良い感じ。

ネットと比べて格段に安いと云うことはないけど、ポイントが付いたり、10年保証が付いたりと、それなりのメリットはあるかな。