Murata WLAN module
アクセスログを見ていたら、ソニーの無線LAN搭載デジカメDSC-G3のWLANチップについて調べている人がいたので、自分も調べてみた。
例のごとくFCCのページに行って、DSC-G3のFCCIDであるAK8DSCG3で検索するとWLANモジュールの写真が出てきた。
このモジュールって何だっけということで、型番らしきLBWAで検索すると
村田製作所製のMarvel 88W8686を搭載したWLANモジュールだということが判明。
村田のWLANモジュールは、日本国内ではメジャーなようでして、以下の製品にのっているようです。
マーキングの内容
あと、村田製作所のブログでも紹介されてる。
http://www.murata.co.jp/new/blog/wifi/
GAE Python で Task Queue
クラウドしたいということで、Google App Engine で遊びはじめた。
まず、たくさんのデータを登録するために、PythonでTask Queue APIを使ってみた。
例の動作内容
Task Queueに登録すると勝手に、CPUに割り当てて並列実行してくれる。無料版の場合、最大5個まで同時実行してくれる。並列に実行しているのを見ると楽しい。
DataStoreへの登録は1-10件/1秒らしく、200件で24秒かかる。分割を250件にすると30秒を超えてTaskが途中でkillされる。
DataStoreに5000件登録するだけで、無料版のCPU時間の2%を使ってしまう。ということは、無料版だと25万件登録するとCPU時間のQuota/1dayに引っ掛かるっぽい。
登録するだけなら簡単。だけど、DataStoreをどう使うかが悩ましい。
参考;
- Task Queue戦記 - スティルハウスの書庫の書庫
- TaskQueueをローカルでデバッグする方法 - yvsu pron. yas
- Offline Processing on App Engine: a Look Aheadを見たメモ - スティルハウスの書庫の書庫
#!/usr/bin/env python # -*- coding: utf-8 -*- import wsgiref.handlers from google.appengine.ext import webapp from google.appengine.ext import db from google.appengine.api import urlfetch from google.appengine.api import memcache from google.appengine.api.labs import taskqueue from xml.etree.ElementTree import fromstring import datetime Config = { 'User' : 'eggman_', 'split' : 200, } class Topmls(db.Model): created = db.DateTimeProperty(auto_now_add=True) user = db.StringProperty() url = db.StringProperty() title = db.StringProperty() def get_opml(url): outlines = memcache.get(url) if outlines is None: result = urlfetch.fetch(url, '', urlfetch.GET, headers={'User-Agent': 'http://twitter.com/eggman'}) elem = fromstring(result.content) outlines = list(reversed(elem.findall('./////outline'))) memcache.add(url ,outlines, 3600) return outlines class MainHandler(webapp.RequestHandler): def get(self): user = Config['User'] # url = 'http://reader.livedoor.com/user/' + user + '/opml' url = 'http://nolist.jp/opml' outlines = get_opml(url) for i in range(0, len(outlines), Config['split']): taskqueue.add(url='/insert_opml_worker', params={'url': url, 'user' : user, 'start' : i, }) class InsertOpmlWorker(webapp.RequestHandler): def post(self): user = self.request.get('user') url = self.request.get('url') start = int( self.request.get('start') ) outlines = get_opml(url) for o in outlines[start:start+Config['split']]: p = Topmls( title = o.get('title'), url = o.get('htmlUrl'), user = user, ) p.put() def main(): application = webapp.WSGIApplication([('/check', MainHandler), ('/insert_opml_worker', InsertOpmlWorker)], debug=True) wsgiref.handlers.CGIHandler().run(application) if __name__ == '__main__': main()
NFCを使ってみる。
NFCのリーダライタを買ったので遊んでみた。
リーダライタ
リーダライタはSmartcard FocusでACS ACR122を買いました。
もっと安いものもありますが、ドキュメントが付いているので、ACR122にしてみました。ついでに、カード型とコイン型とシール型のNFC tagも買った。
インストール手順
OSはWindows XPです。
python本体をインストールして、さらに必要なパッケージをインストール。
- pycrypt 暗号のパッケージ
- pyserial シリアル通信のパッケージ
- pywin32 win32のパッケージ
- pyscard スマートカードのパッケージ
RFIDIOtは展開するだけで良い。RFIDIOtconfig.pyが設定ファイルです。設定はreadernum = 0に変更した。
使用例
RFIDIOtの使用例
情報取得
isotype.pyでNFC tagの情報を取得できる。
>isotype.py C:\Python26\lib\site-packages\Crypto\Hash\SHA.py:6: DeprecationWarning: the sha module is deprecated; use the hashlib module instead from sha import * isotype v0.1k (using RFIDIOt v0.1x) Reader: PCSC ACS ACR122 0 ID: 04789A811E2580 Tag is ISO 14443 A, part 3 ATR: 3B8F8001804F0CA0000003060300030000000068 3B Initial Header 8 No TA1, TB1, TC1 only TD1 is following F 15 bytes historical data follow 8 No TA2, TB2, TC2 only TD2 is following 0 T = 0 0 No TA3, TB3, TC3, TD3 following 1 T = 1 Detected STORAGECARD Historical: 804F0CA00000030603000300000000 80 Status indicator may be present (COMPACT-TLV object) 4F Application Identifier presence indicator 0C 12 bytes follow RID: A000000306 PC/SC Workgroup PIX: 03000300000000 SS: 03 ISO 14443 A, part 3 Name: 0003 Mifare Ultra light RFU: 00000000 Checksum TCK: 68 (OK)
読み込み
readtag.pyでNFC tagをリードできる。
>readtag.py C:\Python26\lib\site-packages\Crypto\Hash\SHA.py:6: DeprecationWarning: the sha module is deprecated; use the hashlib module instead from sha import * readtag v0.1d (using RFIDIOt v0.1x) Reader: PCSC ACS ACR122 0 ID: 04789A811E2580 Data: Block 00: 04789A6E811E25803A48000000000000 .x.n..%.:H...... Block 01: 811E25803A48000000000000FFFFFFFF ..%.:H.......... Block 02: 3A48000000000000FFFFFFFF00000000 :H.............. Block 03: 00000000FFFFFFFF0000000000000000 ................ Block 04: FFFFFFFF000000000000000000000000 ................ Block 05: 00000000000000000000000000000000 ................ Block 06: 00000000000000000000000000000000 ................ Block 07: 00000000000000000000000000000000 ................ Block 08: 00000000000000000000000000000000 ................ Block 09: 00000000000000000000000000000000 ................ Block 0a: 00000000000000000000000000000000 ................ Block 0b: 00000000000000000000000000000000 ................ Block 0c: 00000000000000000000000000000000 ................ Block 0d: 00000000000000000000000004789A6E .............x.n Block 0e: 000000000000000004789A6E811E2580 .........x.n..%. Block 0f: 0000000004789A6E811E25803A480000 .....x.n..%.:H.. Total blocks: 15
書き込み
うまく動かないので、あとで書く。
Symbian Foundation ベータ版サイトのアカウント
転職しました。
小さな会社から大きな会社に転職しました。
転職といっても、会社が無くなって再雇用からなのか、今までと同じ仕事をやってます。
転職活動をしたり、上司の新会社に誘われたりもしたんですが、結局大きな会社に行くことにしました。
いまのところ、定時出社がmustなのが大変だなぁ。
香港旅行1日目
香港へ3泊4日で旅行に行ってきた。
主な目的は、プリペイドのSIMカードで遊ぶのと、本屋と電気街巡りです。
- 航空科学博物館
- 飛行機は夕方の便なので、空港のそばにある航空科学博物館へ行ってみた。
- かがみはらと比べると展示が地味な印象。
- YS-11の中に初めて入った。
- A滑走路から離陸する飛行機の腹部がよく見える。
- チェックイン
- ラウンジ
- 同行者のおかげで、ファーストクラスラウンジ
- ファーストクラスラウンジは、いろんな食べ物が置いてあって良いですよ。
- 飛行機
- なんかぜんぜん窮屈でないぞ。
- 食事だけエコノミーだったらどうしようと心配していたが杞憂でした。
- シャンパンとワインを頂く。
- 食事はこんな感じでした。
- 香港国際空港
- ホテルへ
- アイランドパシフィックホテルへ、140HKD払ってホテルに行くバスに載る。
- このホテルは順番が一番最後なので、早くホテルに着きたい人は電車の方がいいです。
- 同行者がバスでトランクに入れた荷物をロストされる。
- 30分後に荷物は戻ってきたけど。コワイコワイ。