月別アーカイブ: 2014年12月

ふるさと納税で北海道のズワイガニを貰ってみた。

ふるさと納税を利用してみたので、申し込みから、商品が到着するまでにかかった日数等を記録として残しておきます。

利用したのは、北海道紋別町のズワイガニ。
まず紋別町の公式サイトに行く。
申し込みは、郵送、FAX、メールが使えるようだけど、公式サイト上の申し込み専用ページ(手続きのながれ・申し込み方法内の寄附申込入力フォーム)からもう申し込める。これが一番早そうなので、このWEBフォームから申し込んだ。

必要事項を記入するんですが、ここで記入した内容がPDFファイルや書類に印刷されて送られてくるのでちゃんと記入する必要がある。寄付する金額や、名前(ふるさと納税を利用する人の名前)、ほしい記念品もここで選ぶ。1万円以上の寄付で「紋別の海産物」として「ズワイカニ」または「毛ガニ」があるけど、申し込み段階でどちらかをちゃんと選ぶことができる。私はズワイガニを選択。カニは人気らしく境港の松葉ガニやら、他のズワイガニ、毛ガニも品切れや数ヶ月待ち多いなか、この紋別は品切れ等書かれていないので、ここを選んだ。支払いは、クレジットカード決済もできるけど、今回は銀行振込を選択。

記入が終わって、確認して申し込んでも、通販サイトのようにすぐに受信確認メールとかは来ないので、少し不安だったが、意外に早くて、次の日の夜には、振込先の口座番号や、こちらの住所名前等が入力されたPDFファイルが貼付されたメールが送られてきた。

さっそく翌日に指定の口座へ1万円を振込。すぐに入金確認の連絡とかはないのでこれも少し不安になった。公式サイトに非常に申し込みが多いため返信や商品の発送に時間がかかると書いてあったのでのんびり待つことにした。

振込後8日目に、郵送にて封書で、採納証明書という、寄付金の受け取りを証明する書類が届いた。予想より手続きが早い。これを確定申告の時に使うと手数料2000円を除いた分が控除され戻ってくることになる。

寄付の証明書が届いてから、9日目(最初の申し込みからは18日目)には、商品のズワイガニが自宅まで送られてきた。これも予想よりずっと早かった。商品の指定日配達はできないけど、商品は土曜日か日曜日のどちらかに届くように発送するとのこと。商品はクール宅急便で冷凍で送られてきて、北海道紋別のズワイガニが2匹入っていました。楽天で紋別のズワイガニの価格をチェックするとちょうど同じような大きさの2匹セットで7000円ちょっとで売られているので、十分元は取れる感じです。

ちなみに、ふるさと納税の仕組みとかどんな商品があるか等は、ネットでバラバラの情報を見るよりふるさと納税関連本がたくさん本屋に並んでいるのでそちらの方がわかりやすかったです。

今回ふるさと納税を始めて利用しましたが、手続きはネットからできて簡単で手間がかからないし’一度やれば次は10分でできる)、商品もお得だし、これからは毎年利用することになりそうです♪

水泳メモ20 水に浮くことと、前にスイスイ進む方法のメモ

最初の頃は、まともに水に浮くこともできず、前に進もうと、足を必死にバタバタさせても異様に前に進まなかった。

その後、まずビート板を使い練習して徐々にビート板なしで泳ぐようにした。

今考えてみると、水に浮くには、痩せてる人の場合は、足でちょこちょこバランスを取らないと沈む。力を抜けば浮く人もいるけど、ほんとに痩せてる人は、特に息を吐いてる時、じっとしてると水中に沈んで浮かない。なので両足を使って微妙にちょいちょいと動かしてバランスを取りつつ浮かないと無理。慣れてくると、この両足や体のいろんな部分を使って微妙にバランスをとり、水をカイで浮くための行動をしている、ということを無意識にしているから、自然に体が浮くと感じるようになる。例えると、水に浮くのは、自転車に無意識にバランスを取って乗れるのと同じだと感じる。

次に、浮かぶことと前に進むことはほとんど同じで、バランスを取るために体全体を微妙に動かす行動をだんだん大きくしていって、前に進める感じ。効率よく進むには、手と足のリズムが大切のようで、リズムが合った時はぐいっと前へと進むのが自分でもわかる。水泳の本なんかを読むと、タンタッタッ、タンタッタッと足をリズミカルに動かすみたいに書いてある。この最初のタンの時に少し強めに水を蹴ると同時に、対角線上の手をちょうど水の中に入れて前へぐいっと手を伸ばす。するとスーと前へ進みやすい。

あと、バタ足は足をあまり広げず、小刻みにするほうが抵抗が少ないせいか、前へすすみやすいのを感じる。

以上、後で忘れないためのメモ。

GCS(Google Cloud Storage)からPythonでデータを取り出し表示する

前の記事「Google Cloud StorageにPythonでデータのやり取りをする」」でウェブ上ではなくて、プログラム(python)経由でデータをGCS(Google Cloud Storageグーグルクラウドストレージ)へ入れる方法と取り出す方法をメモしたんだけど、取り出して表示する場合についての追加メモ。

GCS(Google Cloud Storage)内のデータを表示する方法は2つあるらしく、固有のBucket名と自分でデータを入れるときに付けたファイル名が繋がったものと、全く推測不可能な文字の羅列からなるURL。固有のBucket名が入る方は、ACLというアクセスをコントロールできる機能があるので、プログラムやGCS(Google Cloud Storage)のコントロールパネルから表示非表示やアクセスを特定の人に限定する等の制御ができるっぽい。もう一つの文字の羅列からなる方は、制御はできず、元のファイルを削除するまで誰でも見れて、ファイルも残るっぽい。どちらも別の専用URLからデータが送られるので、クッキーが無く(この意味もよくわかってないけど)実際に試してみると爆速で表示された。

GCS(Google Cloud Storage)内に入れたデータを表示する時、Bucket名を含む表示は、URLすべてわかっているので簡単。URLは、グーグルのURL + Bucket + 自分で付けたファイル名みたいな感じになる。こちらは、データを入れるときに、オプションでみんなに公開するか、後悔しないか等、いろいろ設定できる。GCSのコントロールパネルからも一般公開にチェックを入れると、公開用のURLが表示されたりする。

もうひとつの文字の羅列からなるURLで表示する場合は、create_gs_keyでキーをゲット(ファイル名は、”/gs”にBucket+データを入れるときに自分で付けたファイル名を繋げたもの)して、そのキーをget_serving_urlに入れると表示用のURLを作成してくれる。

ただ、元のデータの中身を同じファイル名で上書き更新しても、その作成されたURLで表示されるデータは更新以前のままでキャッシュされたものが表示されるっぽい、なので更新するには、別のファイル名にして再度URLを作りなおさないととダメっぽい。公開用のURLを消すには、GCS内のデータを消すか、delete_serving_urlでキーを入れると消える。

create_gs_keyはblobstoreの機能なんだけど、blobstoreが何なのかイマイチ理解していない。GCS(Google Cloud Storage)と似たようなものらしいけど、GCS(Google Cloud Storage)と違い、ウェブ上のコントロールパネルから中のデータを見たりはできないっぽい。そもそもGCS(Google Cloud Storage)を使うのに、どうしてblobstoreの機能を使うのかもよくわかっていない。

PythonのNDB Asynchronous(非同期)での@ndb.toplevelの使い方

Google App EngineでNDB Asynchronousを使うときに@ndb.toplevelというのが出てきた。

class MyRequestHandler(webapp2.RequestHandler):
@ndb.toplevel
def get(self):
acct = Account.get_by_id(users.get_current_user().user_id())
acct.view_counter += 1
acct.put_async() # Ignoring the Future this returns
# …read something else from Datastore…
template.render(…)

マニュアルのサンプルコードがこれで、最初は何のことかチンプンカンプンだった。
一晩寝て次の日になってやっとわかってきて
async()は、複数のことを同時にできるから、例えば、100個の命令を同時に出して、まだ全部の命令が完了していないのに
次の命令、サンプルだとtemplate.render(…)が実行されてしまうと、async()のまだ終わってないのに、次の段階に進んでしまい永遠に
async()の内容が完了しないままになることがあるかもしれない。そこで登場するのが@ndb.toplevelで、これをつけると、async()が完了するまで待ってくれる、ということらしい。

Google Cloud StorageにPythonでデータのやり取りをする

何をしたいかというと、GCS(Google Cloud Storage)にプログラムでデータを放り込んだり取り出したりしたい。

最初は、Blobstoreという物を使おうと思い調べていたけど、グーグルのマニュアルに、プログラムでBlobstoreへ書き込む機能はもうじきなくなるので、GCS(Google Cloud Storage)の方をおすすめする、みたいなことが書いてあったので、GCSの方を使うことにした。

使うのはpythonで、GCS(Google Cloud Storage)とやりとりするためには、Google Cloud Storage Python Client Libraryというのを使う必要があるらしく、まずはこのファイルをダウンロードしてインストール。インストールと言っても、、そのライブラリーのcloudstorageというフォルダがあれば、それをアプリと同じフォルダ(最初階層を間違えてエラーが出た)に置くだけで使えるようになった。

あとは、

import cloudstorage as gcs

でライブラリーを読み込んで、

g_file = gcs.open(filename,’w’,content_type=”,retry_params=write_retry_params)
g_file.write(testfile)
g_file.close()

とするだけでOKだった、予想以上に簡単。
filenameは固有のbucketの後は自分で好きに決めれてサブディレクトリみたいに、表面上は/a/b/c/catと整理しやすくできるみたい。
testfileに書き込む内容を入れる。
‘w’は書き込みモードで読み込むときはrにする。content_typeは自由に決めれることができるので書き込むファイルに合わせる。retry_paramsは良くわからないけど、書き込みに失敗した時に、どういう対応をするのか決めるっぽい。

次に、writeで書き込んで、closeで終わり。

書き込んだファイルを読み込む場合は、固有のbucketの後に、自分で決めたファイル名をつなげたURLにアクセスすると表示できる。
ブラウザで操作できるディベロッパーコンソールから書き込んだファイルの確認や削除、一般公開のON,OFFの設定や公開するときのURLの確認等もできた。