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を使ってみた。

例の動作内容

  • OPMLを取得する
  • OPMLXMLをperseしてmemcacheに入れる。
  • 200件ごとに分割してTask Queueに登録する。

Task Queueに登録すると勝手に、CPUに割り当てて並列実行してくれる。無料版の場合、最大5個まで同時実行してくれる。並列に実行しているのを見ると楽しい。

DataStoreへの登録は1-10件/1秒らしく、200件で24秒かかる。分割を250件にすると30秒を超えてTaskが途中でkillされる。

DataStoreに5000件登録するだけで、無料版のCPU時間の2%を使ってしまう。ということは、無料版だと25万件登録するとCPU時間のQuota/1dayに引っ掛かるっぽい。

登録するだけなら簡単。だけど、DataStoreをどう使うかが悩ましい。

参考;

#!/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 FocusACS ACR122を買いました。
もっと安いものもありますが、ドキュメントが付いているので、ACR122にしてみました。ついでに、カード型とコイン型とシール型のNFC tagも買った。

NFC読み書きソフト

LLで読み書きするソフトを探してみたら、Pythonで動くRFIDIOtが対応していた。

インストール手順

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 ベータ版サイトのアカウント

Symbian Foundationのblogの「Symbian Foundation」によると、Symbian Foundation ベータ版サイトのアカウントが貰えるそうです。ただし2009/5/4の14:00-16:00の2時間限定だと。


ベータ版サイトでは、現状Nokiaから寄贈されたソースコードやドキュメントにアクセスできるそうです。

とりあえず応募しとこう。

2時間限定だと、GW中の日本ではほとんど人が集まらないよな。既存の開発者はSymbian Foundation参加企業の中にいるはず。そうじゃない層を狙っているんだから、これくらいの微妙なターゲッティングが必要なのかしら。

ルネサスとNECエレ事業統合での勝ち組と負け組

eetimesの記事Opinion: Winners, losers in Renesas-NEC deal | EE Timesより
特に根拠は書かれていないので、予想だと受け取るべきでしょう。
でも、ありえそうな感じの予想です。


勝ち組

負け組

転職しました。

小さな会社から大きな会社に転職しました。
転職といっても、会社が無くなって再雇用からなのか、今までと同じ仕事をやってます。
転職活動をしたり、上司の新会社に誘われたりもしたんですが、結局大きな会社に行くことにしました。

いまのところ、定時出社がmustなのが大変だなぁ。

香港旅行1日目

香港へ3泊4日で旅行に行ってきた。
主な目的は、プリペイドSIMカードで遊ぶのと、本屋と電気街巡りです。

  • 航空科学博物館
    • 飛行機は夕方の便なので、空港のそばにある航空科学博物館へ行ってみた。
    • かがみはらと比べると展示が地味な印象。
    • YS-11の中に初めて入った。
    • A滑走路から離陸する飛行機の腹部がよく見える。
  • チェックイン
    • 生まれて初めてのビジネスクラスアップグレードを獲得した。
    • 勝因:同行者がマイラーJALから直接チケットを購入、HISが、がんばってエコノミーを売ってくれた。
  • ラウンジ
    • 同行者のおかげで、ファーストクラスラウンジ
    • ファーストクラスラウンジは、いろんな食べ物が置いてあって良いですよ。
  • 飛行機
    • なんかぜんぜん窮屈でないぞ。
    • 食事だけエコノミーだったらどうしようと心配していたが杞憂でした。
    • シャンパンとワインを頂く。
    • 食事はこんな感じでした。
  • 香港国際空港
    • PCCWの無料Wi-Fiiphoneで使う。
    • 一度ブラウザでボタンを押せば無料で使える。
    • ATMで400HKDをセゾンカードでキャッシング。ATMがレート良いですよ。
  • ホテルへ
    • アイランドパシフィックホテルへ、140HKD払ってホテルに行くバスに載る。
    • このホテルは順番が一番最後なので、早くホテルに着きたい人は電車の方がいいです。
    • 同行者がバスでトランクに入れた荷物をロストされる。
    • 30分後に荷物は戻ってきたけど。コワイコワイ。