pythonで、データベースを使い、データに更新があるか調べる時に出たエラー

また、ほんのちょっとしたミスで長時間を無駄にしたのでメモ。

GAE上でpythonを使ってデータをデータベースに入れ、新しいデータを入れる時に、データに変化があったら自動でメールで知らせる、というプログラムを作っていた。

最初は問題なく動いていたんだけど、途中で急におかしくなり、データに更新がないのにデータ更新がある、というメールが来るようになってしまった。

最初は、ランチャーのバージョンの更新か何かが影響してるかと思ったが、色々試した結果、文字コードのせいだとわかった。

データの更新を調べるときに、新しく入れるデータと、すでに入れているデータを比較するんだけど、お互いに文字コードが違ったので、同じ内容でも更新ありと判断してしまっていた。前に、プログラムをちょっといじった時に、文字コードに関する部分もいじっていたのが原因。

単純なミスだけど、文字コードの違いでエラーが出るという発想自体頭に無かったのでハマった。

台湾の通販サイトから代行業者経由で個人輸入してみた。

探していたある商品が日本には在庫がなくて、英語で海外サイトを探してもなくて、中国語で探したら台湾の通販サイト(台湾の楽天市場)で見つかった。台湾は日本へ配送してくれる通販サイトもあるんだけど、在庫が見つかったサイトでは日本への配送をしていなかった。台湾の楽天市場は、日本へ配送をしているショップとしていないショップがある。そこで今回はじめて代行業者を使ってみた。

具体的な会社の名前は出さないけど、検索するとだいたい2箇所見つかる。今回はその片方を利用。やり取りは、すべてメールで、料金は日本円で銀行振り込み(PAYPALも可だったが手数料が高いので振り込みを選択)、最後まで問題なく取引出来て簡単だった。

代行会社との具体的なやりとりは以下。

見積もりを出してもらう。(通販サイトの商品URLと商品名、個数、配送先住所等)。すべて日本語でOK。

数時間後には、見積もりが台湾ドル(NT$)と日本円で返信されてきた。その見積もりでOKなら金額を振り込むことで、取引開始。振り込み口座は日本国内なので振込手数料は安かった。

振り込んで、振込完了のメールを送ると、また数時間後にはメールで、取引を開始すると返信があった。

その後3日ほど連絡がないので、こちらからメールしたところ、まだ通販サイトから商品が到着しないとのこと。代行業者のレスポンスは早いんだけど、肝心の通販サイトの発送が遅い。台湾ではよくあることらしい。

結局1週間ほどして、ショップから発送完了したと連絡があり、その後代行業者に到着してその日の内に発送してくれて、追跡番号と合わせて連絡があった。

台湾を発送後、次の日には日本到着、さらに次の日には関税も通過して国内発送され、3日めには配達された。関税はなく、商品を受け取るだけでよかった。追跡過程を見ると税関は50分で通過していた。

購入したのは3万円ほどの商品で、代行業者の手数料が3千円弱、送料が大きめのダンボール一個で3,000円くらい。台湾郵便で送られてきて、日本の郵便局の追跡サイトで、配送状況は確認できた。

今回はじめて代行会社を使ってみたけど、簡単で便利だったのでまた機会があれば利用するつもり。代行会社の担当の人は台湾人の方だったけど、日本語のやりとりには問題がなく、とにかくレスポンスが早いのでびっくりした。夜メールしても1時間もせずに返信が来るので、日本とは違ってスピード感があるなと思った。担当の人が、本名をフルネームで載せてるのも日本じゃあまりないような気がする。

あとは、お金の振込みが、メールのやり取りだけで、相手を信用して振り込むことになるので、この辺もあまりない経験なので面白かった。

google app engineでローカルのファイルを削除してしまい、ソース(ファイル)をダウンロードする。

パソコンのハードディスクをSSD化したときに、GAE(google app engine)のソース(pythonで書いたプログラム)をコピーするのを忘れてしまった。交換前のハードディスクは保管しているんだけど、また接続してファイルを探すのは面倒なので、アップロードしたものをダウンロードできないのか?と思い調べてみた。(以前にもかんたんにダッシュボードからボタン一つでダウンロードできたら便利なのにと思ったことがある)

結局、GAEのヘルプに以下があって
https://groups.google.com/forum/?hl=ja&fromgroups#!topic/google-app-engine-japan/1d3ZJGWFjgY

以下で指定のローカルフォルダにダウンロードできた。

appcfg.py download_app -A <your_app_id> -V <your_app_version> <output-dir>

「<your_app_id>」は、google app engine launcherの「name」に当たる部分。
「-V <your_app_version> 」、はデフォルトのバージョン(アプリのバージョンのことだと思う)をダウンロードするなら指定しなくていいらしい。
「<output-dir>」は、ダウンロードしたい自分のパソコン上のローカルフォルダの場所、例えば「/Users/abc/def」とか指定する。

上記のコマンドは、ウインドウズの、アクセサリのコマンドプロンプトを開いて、入れて、エンターを押すと
一つウインドウが開いて、グーグルのアカウントの許可がどうのという表示がでるのでOKしたら、「~complete」のような表示が出て、指定のフォルダを見ると、ずらっとファイルがダウンロードされていた。ヘルプの方には一部のファイルはダウンロードされない、と記載されていたけども、ざっと見た感じは全部ダウンロードできているもよう。

Lenovo H330のHDDをSSD化した時のメモ

4年ほど前に購入したデスクトップパソコン「Lenovo H330 11853EJ」のハードディスクをSSD化した。いつか必要な時のために自分用のメモ。

まずまとめ。

  • SSD化した結果→パソコン爆速化。すべての動作が数倍になった感じ。重くなっていたエバーノートもストレス0で起動、検索できるようになった。すべての重さがなくなった感じ。もっと早くするべきだった。SSDも安くなり250GBで1万円くらいとお手頃。
  • SSD化にかかる時間→トラブルがなければ30分くらい。パソコン本体をドライバーで開けて、コネクタの脱着ができる人なら簡単。

SSDというのは、ハードディスクと置き換えることができる記憶装置で、ハードディスクは物理的にディスクが回転して、そこに読み書きをするんだけど、SSDだと、物理的な動きがなくて、SSD内にあるメモリに電気的に読み書きするのみなので、速度が早くて、電気代も安くて、音も全くしないので静か、欠点だった価格の高さも、最近は安くなってきて、アマゾンで一番売れているサムスンの250GBだと1万を切るところまで下落してきている。今はクラウドサービスが普及しているので、250GBあれば、OS分を入れても困ることはないので、これが一番売れている。私もこれを購入した。

最初何が必要なのか、はっきりわからなかったので、アマゾンで「こちらも一緒の買われています」というのをまとめて注文した。
届いたのが以下3個。

IMG_20151219_210551

下の3つを注文したけど、結果的にコネクタは今回必要なかった。

以下交換作業。

まず、交換手順。

  1. パソコン本体を開ける。
  2. このパソコンにはHDD増設用のコネクタがないので、DVDドライブを一旦取り外して、DVDドライブとつながっていたSATAケーブルと電源コネクタを利用してSSDを一旦つなぐ。
  3. HDDとSSDが両方パソコンにつながっている状態になったので、HDDの中身をまるごとSSDに移す(クローン作製)。
  4. HHD→SSDのコピー作業は、サムスンの専用ソフト(Samsung Data Migration)を使えばクリックのみで簡単にできる。最新版はネットから無料でダウンロードできる。パーティッション容量も自由に増減できる。
    コピー作業は、100Gで、10分ちょっとしかかからない。
  5. 終わったら、コピーされてるのを確認し、電源を切って、SSDを取り外しDVDドライブを元に戻す。そしてHDDを取り外して、そこにSSDを取り付ける。HDDは大切に保管しておく。
  6. あとは、電源を入れるだけで、全く設定等なしに元通りに使えた。便利な世の中になった。

IMG_20151219_220649

パソコン本体の蓋を開けた状態。ネジを外して蓋を取るだけ。一番手前にあるのがDVDドライブで、これもネジを外すだけで取り外せる。

IMG_20151219_223719

DVDドライブのコネクタ(データ用と電源用の2本)を外し、それをSSDに取り付けた状態。HDDもPCケースから取り出している。HDDとSDDの両方がPCにつながっているので、後はソフトを利用すればデータのコピー作業ができる。

IMG_20151220_234049

データ移行が完了したので、SSDを変換ブラケットに固定して、HDDに付いていたコネクタと繋ぐ。あとは、元通りに取り付けてすべて完了。

トラブルや気付きのメモ。

  • 元のHDDの中には、「C」ドライブと「D」ドライブがあったんだけど、両方をコピーしようとすると、どうしてもクローン作業が途中で止まる。最初、ドライブのチェックをしろとメッセージが出たので、C、Dドライブ両方やったけど駄目で、余計なファイルを消したりしても駄目で、89%程度で止まる、厳密に言うと1分に1MBくらい進むんだけど、時計は止まったままで、ソフト自体も反応無しの状態になったりで、結局Dドライブは諦めて、OSと主なプログラムが入っているCドライブのみコピーしたら、あっけなく完了。完了した後に、必要なファイルはDフォルダからコピーした。
  • コピーソフト(クローン作製ソフト)は、「Samsung Data Migration」と、ネットでよく紹介されている「EaseUS Todo Backup 」の両方を使ってみたけど、圧倒的にサムスンの方が使いやすい。使い方が視覚的にわかりやすく、パーティッションごとの容量振り分けも簡単、コピー作業中も、転送速度が表示されて、残り時間もわかる。EaseUS Todo Backupの方は、転送速度がわからず、残り時間は表示されても当てにならないので、エラーで止まっているのかもわからなかった。
  • SSDに、パソコンとUSB接続できるアダプター(サンワサプライ SATA-USB3.0変換ケーブル 0.8m USB-CVIDE3)を取り付けて、HDDからコピーする方法もあって、たぶんその方法が簡単。ただ、このパソコンはUSB2.0で、USB3.0に対応していない。USB2と3だと転送速度が理論値で10倍くらい違うらしいので、今回は直接SATAケーブルに繋いだ。

DENTS(デンツ)のカシミアライナー付きディアスキン手袋を買ってみた

DENTS(デンツ)のカシミアライナー付きディアスキン手袋

イギリスのDENTS(デンツ)のグローブ(手袋)を購入。

DENTSと言えば、ペッカリーの手袋が有名だけど、あのシワが多い感じがあまり好みではなかったので、ディアスキン(鹿革)の方を購入。ちなみにペッカリーがどんな動物かというと「動物 ペッカリー」で検索すると出てくる。ペッカリーのカシミアライナー付きだと日本での定価は64,000円(税抜き)、鹿革のカシミアライナー付きだと41,000円(税抜き)とめちゃくちゃ高い・・・。これは別に日本だけで高くなっているわけではなくて、イギリスの公式サイトにある通販サービスを利用して個人輸入してもそんなに差がない。

公式サイトの価格は、鹿革のカシミアライナー付きが185ポンド(34,040円)、ペッカリーのカシミアライナー付きは299ポンド(55,016円)、1ポンド=184円で計算、同じ型番を比較。イギリスの税金20%分がこれから引かれて、送料15ポンド(2,760円)と関税12.5%、あと日本の消費税8%がかかるから、ざっと計算すると数千円の差。

いろいろ試着をして、羊のあの肌に密着するような柔らかさも魅力だけど、ディアスキンの表面の感じが気に入ったので、結局ディアスキンを購入。基本的にDENTSには、各素材ごとに、ライナーあり、なしと、ありの場合は、カシミアライナーと、それ以外(ラビットファーとかウール)がある。形的には、スナップボタンとベルトがあるタイプと、ボタンのみ、ボタン無しがある。DENTSを代表するモデルは、カシミアライナー付きで、スナップボタンとベルトがあるタイプ。ライナーは最初必要ないかも?とかベルトとボタンとか面倒なんじゃ?と思っていたものの、実際に冬になって使ってみると、買うなら、カシミアライナーあり、ベルトとボタン付きのタイプ一択だと感じた。ライナーがないと保温性が低くてはっきり言って機能的な手袋の意味がない。あと、ベルトとボタンが面倒だと感じることはなかった。靴の場合だと、履くときに、止まって靴紐を結ぶけど、手袋だと、装着して、ベルトを締めて、ボタンを止める行為を移動しながらできる。なので不便さはなかった。逆にベルトで手首部分を締めることで、風が入らないので快適♪

DSC_4753

無印良品の革手袋も持っているんだけど、全く知らない人に較べて貰ったら、違いはそうわからない気がするので、ほとんど自己満足の世界だとは思う。DENTSを装着した時の具合は、良いことは良いけど、そう特別ではなくて、普通に良いという感じ。サイズは、標準体型で、7.5を選んだらピッタリだった。親指だけがほんの少し余るけど、全く問題はないレベル。このサイズだと脱着も用意だった。あと、気をつける点は、DENTSは、安価な手袋も結構出していて、なぜかフィリピン産とかも展開しているもよう。イングランド産には、「Made in ENGLAND」のタグがついているけども、それ以外には「Made in」の文字が無くて単に「England」とだけ書かれていたりする。今回DENTSの手袋を買ってみて、値段以外は特に不満点はなかったので、あとは壊れるまで長く使っていくつもり。

■楽天市場 DENTS手袋

■Amazon DENTS手袋