Posted at 2015-03-08 22:56:07 under テクノロジ (by key)

機械学習については画像内の物体が認識できるとかそういう機能レベルの知識しかなくて、 ウェブサイトのコードをコピペするレベルでしか触ったことがなかった。 ちょうどシバタさんの ディープラーニングで作る「面白さ」のヒートマップ を読んで面白いなーと思っていたら、 PyData Tokyoのチュートリアルがあったので申し込んでみた。抽選だったけど当たって良かった(笑)。

で、土曜日に行ってきたというわけ。

Continue reading
Tags: python
Posted at 2012-03-31 00:54:53 under テクノロジ (by key)

MongoDBのニュースレターで MongoEngine を知った。

てっきり MongoDB Engine のことかと思ってサイトを覗いてみたら、 サイトの体裁がぜんぜん違うし10gen official evangelistのソフトウェアということだし、どうやら違うプロダクトである模様。 ちょっと気になって調べてみたところわりと素性が良さそう。

schemalessなデータベースを利用していて困るのはデータセット内に何があるかわからなくなることなので、個人的には保存時に何かしらのバリデーションが必要だと思ってます。 スキーマを定義可能なライブラリはいくつかありますが、django-mongodb-engineはdjangoモデルの拡張フィールドセットだけ、 mongokitはスキーマ定義が出来るものの埋め込みドキュメントがサポートされておらず、帯に短し襷に長しといった状況です。

で、mongoengineのドキュメントを読んだ限りではその辺りをクリアしており、なかなか良さそうだな〜という判断。

直近で使う機会がありそうなので、いろいろ試してまた紹介したいと思います。

Tags: mongodb, python
Posted at 2012-03-26 22:09:55 under テクノロジ (by key)

SSL通信を行うサイトを作ったりなんかしています。

django + fastcgiプロセスの組み合わせでリダイレクトする処理を確認していたところ、 アプリケーションがプロトコルスキームを認識出来ずにhttp://〜にリダイレクトされる問題がありました。

最初はアプリケーションが固定値でhttp://〜と出力しているのかと思い、 自分が書いた部分のコードやサードパーティのライブラリを含めて調査しまくった結果、 どうやらfastcgiプロセスがプロトコルをハンドリング出来ていないようでした(pdb埋め込んで追いかけまくった)。

で、ダメ押しでnginx fastcgi sslなどでググりまくって得た回答は nginxのコンフィグを適切に設定しないさい というものでした。

参考: FastCGI application behind NGINX is unable to detect that HTTPS secure connection is used

というわけで、以下のようなコンフィグを書いたところ、きちんと動くようになりました。

server {
    listen 443;

    # 省略
    location / {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:8083;
        fastcgi_pass_header Authorization;
        fastcgi_params HTTPS on;
        fastcgi_intercept_errors off;
    }
}

djangoのビュー関数が処理するrequestオブジェクト(内部オブジェクトを失念してしまったけどwsgi関連?)には アプリケーション実行時の各種環境変数が含まれていますが、この中にHTTPSというキーがありプロトコル判別にはその値を利用しています。 SSLアクセス時には、ウェブサーバ側で強制的に値を突っ込むことで解決することが出来るというわけですね。

というわけで久々のエントリは備忘録でした。

Tags: django, python
Posted at 2012-01-04 01:26:36 under テクノロジ (by key)

Garminデバイスは一部のファイルフォーマットでsemicircleというやつを返してくる(例: Garmin Edge 800)。 最初、何のことだかわからず、この妙な数値はいったいどうやって使えば良いのだろう?と頭をひねったもんですが、 軽くググッてみたところ簡単に度に変換出来るようだったのでメモ。

# semicircle to degrees
latitude * (180.0 / pow(2, 31))
longitude * (180.0 / pow(2, 31))

ということでした。

Tags: gis, python
Posted at 2011-11-25 23:44:23 under テクノロジ (by key)

本日もsudsを利用してpythonでaffiliate windowをいじくるテスト。 昨日の例 に習ってザクッと初期化。

import suds
url = 'http://v3.core.com.productserve.com/ProductServeService.wsdl'

client = suds.client.Client(url)

userauth = client.factory.create('UserAuthentication')
userauth.sApiKey = 'あーぶらかたぶらー'

client.set_options(soapheaders=userauth)

商品リストはgetProductLst()を呼び出す。デュラエースを探したいなら次のようにする。

client.service.getProductList(sQuery='SHIMANO DURA-ACE')

結果。

(reply){
   oProduct[] =
      (Product){
         iId = 128559266
         iCategoryId = 252
         iMerchantId = 3395
         iAdult = 0
         sName = "Shimano Dura-Ace 7900 SPD SL Road Pedals - 2011"
         sAwDeepLink = "http://www.awin1.com/pclick.php?p=128559266&a=101730&m=3395&platform=cs"
         sAwThumbUrl = "http://images.productserve.com/thumb/3395/128559266.jpg"
         fPrice = 164.99
      },
      (Product){
         iId = 128559456
         iCategoryId = 252
         iMerchantId = 3395
         iAdult = 0
         sName = "Shimano Dura-Ace 7900 35mm Carbon Front Road Wheel - 2011 (Clincher)"
         sAwDeepLink = "http://www.awin1.com/pclick.php?p=128559456&a=101730&m=3395&platform=cs"
         sAwThumbUrl = "http://images.productserve.com/thumb/3395/128559456.jpg"
         fPrice = 551.99
      }
(略)

解ってしまうと意外と簡単。サービスに組み込むにはいくつか気を付けないといけないなーと思ったのは以下。

  • そもそも処理が遅い。秒単位で時間がかかる。
  • iMerchantIdのような外部参照があるので別途取得する必要がある。

Tags: python