Traktor Pro2のnml形式のプレイリストをPythonで処理する

TraktorからExportされる.nmlファイルはXMLなのでElementTreeを使えばいい。

from xml.etree.ElementTree import *
elem = parse("liquid.nml").getroot()

for e in elem.findall(".//ENTRY"):
    if e.get("TITLE") is not None:
        print "    %s / %s" % (e.get("TITLE"),e.get("ARTIST"))

/Users/####/Documents/Native Instruments/Traktor 2.X.Xの履歴ファイルを変換すればプレイリストが出力される。

Traktor LEには履歴を保存する機能はなかったので、それだけでもアップグレードする価値は十分にある。

ProductName Native Instruments TRAKTOR PRO 2

Native Instruments / 22340円 ( )


僕とタイフーンとリキッド

今日は構成をある程度考えてからつないでみたので、自分的にも気持ちよかった。そしてadele愛が深まった。オリジナルよりもdrum'n'bassにリミックスされてこそ味わいが深まりますなadeleは。

何を言ってるのかわからなければHOMETOWN GLORY (HIGH CONTRAST REMIX)を聴きましょう。かなり効きます。それからRolling In The Deep (NuTone Remix) を聴きましょう。堕ちます。堕ちたらオリジナルを聴けばいいと思います。

ちなみに今日のプレイリスト

Back 2 U / Logistics
Breathe (Hospitality - Drum & Bass 2010) / Echo Inada
Rectified / Komatic
Winter Blues / Logistics
Snowman / Brookes Brothers
Feel Good (The Prototypes Remix) / Modestep
Angel / Young Ax
Ocean Deep / B-complex
For Love Or Money / D Kay & Concept
BLVD / Loadstar
Rolling In The Deep (NuTone Remix) / Adele
Tear Your Soul / Muffler
Monarch / New Zealand Shapeshifter
Here I Am (Basher VIP) / EZ Rollers
Prism / Phetsta
On A Good Day (J Majik & Wickaman Remix) / Above & Beyond
Midnight Sun / Young Ax
Crazy World / J. Majik & Wickaman

それからHospitality2012のMufflerが最強に泣けるので買いですね。

ProductName Hospitality Drum + Bass 2012
Hospitality Drum + Bass 2012
Hospital R / 988円 ( 2012-02-07 )


明日はおまちバル

バルってきます。

というわけで、気になるあたりをメモ

日本酒飲めそうなところばかりになってしまったw

アジャイルソウヤクサムライ

アジャイル開発を創薬系にどう取り込んでいくかっていう観点で。

ProductName アジャイルサムライ−達人開発者への道−
Jonathan Rasmusson
オーム社 / 2730円 ( 2011-07-16 )


第V部のアジャイルなプログラミングに関しては昔考えたことがあるので、II−IV部あたりを。III部の計画づくりはうまく取り込むのが難しそうな気がするけどIV部の運営は色々参考になる。

まず、ソフトウェア開発と初期創薬開発の似ている部分異なる部分を書いておくが、特に異なる部分が重要。

異なる点

  • 工学的にコントロールできるわけではなく、発見に頼る部分がある。つまり作ってみて評価してみないとわからない部分が大きい
  • 成功したかしないかの二択。9割完成したとかはない(こういうのは失敗とみなされる)
  • ベロシティがうまく見積もれない。ブレークスルードリブンなので非連続の進捗になりやすい
  • あっちを動かすとこっちがおかしくなるというなかでバランスをとリながらベストを探るという多次元最適化戦略になることが多い

似ている点

  • 何人もの異なるエキスパートの協調作業を強いられる。役割はきちんよ分かれているが、優秀な人材は幾つかのフィールドをまたぐことができる(インフラもフロントエンドもできるプログラマみたいな感じ)
  • 自分のジョブしかできないヒトはスコープが狭いし、メタな視点に立てない。学習意欲のない人の生産性が低いもの一緒

みんなをバスに乗せる

スタートを切る前からだめになってしまうプロジェクトの主な理由は次の二点

  • 答えるべき問いに答えられない
  • 手強い質問をする勇気を持てない

まぁ、創薬プロジェクトでもよくありますね、認識しておかなければいけない問題を敢えて目をつぶって進めてた結果、激ハマリっていうパターンが。

手強い質問を先にすませてしまうためにインセプションデッキというツールが使える。

インセプションデッキは10の手ごわい質問と問題から構成されており、いずれの課題もプロジェクトを開始する前に聞いておかないとまずい質問ばかりだ

エレベーターピッチ

効能

  • 明快になる
  • チームの意識を顧客に向けさせる
  • 核心を捉える

テンプレート

  • [潜在的なニーズを満たしたり抱えている課題を解決したい]したい
  • [対象顧客]向けの、
  • [プロダクト名]というプロダクトは、
  • [プロダクトのカテゴリ]です。
  • これは[重要な利点、対価に見合う説得力のある理由]ができ、
  • [代替手段の最右翼]とは違って、
  • [差別化の決定的な特徴]が備わっている。

やらないことリスト

「やる」、「やらない」、「あとで決める」をきちんと見える化しておくツール。

創薬プロジェクトで「やらない」にタスクを入れるのはなかなか難しいかも。なので、「やる」と「後で決める」を明確に分けられればいいかな。

アジャイルなプロジェクト運営

ジャストインタイム分析の利点

  • 最新かつ最も充実した情報に基づいて分析できる
  • プロジェクトが進むにつれて分析がうまくなっていく
  • 手戻りが大量に発生することを避けられる

最後の手戻りを避けられるのは大きな利点だな。それからリリースボードとストーリーボードは便利そうだ。

アジャイルな計画づくり

これが一番納得出来なかった。ベロシティが見積もれないようなプロジェクトだと与えられた期間を頑張るしかないんじゃないかなぁと思う。

それから名前が付いてるのかどうかわからんけど、探索的なプロジェクトだと締め切り間際になると集中力を発揮して何とかやり切るパワーみたいなのってありますよね。そういうのも重要だと思うんだよね。

というわけで、この部に関してはモヤモヤ感が残っているのでまた後で書くかもしれない。

Pythonで Google Tasks API を使う

Todo管理にはGoogle Tasksを使っている。家でも職場でもタスクを追加できて一元管理できるので便利なんだけど CUIでもできたらもっと便利だろうとAPIを触ってみている。

家では普通にDeveloper's Guideの通りに動くんだが、職場のプロキシが超えられないので調べてみたらoauth2client.toolsのrunがダメらしい。

さらに追っかけてみるとflow.step2_exchange(code)のところの第二引数にproxyを設定したhttpを渡さないからこけていた。

run関数使わなければいいじゃんってことで書きなおした。ついでにFLAGも必要なくなった。

import httplib2
from apiclient.discovery import build
from oauth2client.file import Storage
from oauth2client.client import OAuth2WebServerFlow, FlowExchangeError

FLOW = OAuth2WebServerFlow(
  client_id='####',
  client_secret='####',
  scope='https://www.googleapis.com/auth/tasks',
  user_agent='gtask-client/1.0')

storage = Storage('tasks.dat')
credentials = storage.get()
if credentials is None or credentials.invalid == True:
  authorize_url = FLOW.step1_get_authorize_url('oob')
  print 'Go to the following link in your browser:'
  print
  print '    ' + authorize_url
  print
  code = None
  code = raw_input('Enter verification code: ').strip()
  try:
    http = httplib2.Http(proxy_info = httplib2.ProxyInfo(httplib2.socks.PROXY_TYPE_HTTP, '####', 8080))
    credential = FLOW.step2_exchange(code, http)
  except FlowExchangeError, e:
    sys.exit('Authentication has failed: %s' % e)
  storage.put(credential)
  credential.set_store(storage)  
  credentials = credential

http = httplib2.Http(proxy_info = httplib2.ProxyInfo(httplib2.socks.PROXY_TYPE_HTTP, '####', 8080))
http = credentials.authorize(http)

service = build(serviceName='tasks', version='v1', http=http,
                developerKey='####')

tasklists = service.tasklists().list().execute()

for tasklist in tasklists['items']:
  print tasklist['title']

静岡Developers勉強会 第4回HTML5読書会

三島でやります。

ProductName HTML5&CSS3実践入門 最新Web標準を使いこなす (The Pragmatic Programmers)
ブライアンP.ホーガン
インプレスジャパン / 2940円 ( 2011-07-08 )


今回は、ローカルストレージ、websocket、History APIあたりなので、以下の話題に興味があれば参加すると面白いかもしれません。

次の本

入門Gitを推しておきます。GitHubでフォローしているShizudeverいないんだよね、増えたらいいなっていうのが理由の一つ(他のサービス使っているんだろうか?)。もうひとつはブランチの切り方がイマイチきちんと身についてないので、勉強会で人が集まれば複数人作業ってのを試すことができるかなと。

ProductName 入門Git
濱野 純(Junio C Hamano)
秀和システム / 2310円 ( 2009-09-19 )


Pythonで正負のfloat numberを揃えるフォーマット

Pythonに限らないと思うんだが、%のうしろにスペース入れると正の数の場合にはスペースが挿入される

print "%-2d %-3s % 4.3f" % (a.GetIdx(), a.GetType(), a.GetPartialCharge())

pygamessの結果を整形したかったのです。

1  C3  -0.015
2  Nam -0.305
3  C3   0.006
4  C2   0.287
5  O3  -0.250

忘れるとなかなか思い出さないのでメモ

TodoっていうNode.js製のtodo管理ツール

CLIで良い感じ

$ npm install -g todo

でインストールできる。

node_todo

help:   
help:   todo - Todos in the CLI like what.
help:   
help:   Usage:
help:   
help:          todo Go shopping. - Adds new item.
help:          todo ls.          - Lists not finished items.
help:          todo ls --all     - Lists all items.
help:          todo rm 1         - Removes #1 item.
help:          todo check 1      - Marks #1 item as done.
help:          todo undo 1       - Marks #1 item as not done yet.
help:          todo clear        - Clears the whole list.
help:          todo version      - Lib version.
help:   
help:   Author: Veselin Todorov <hi@vesln.com>
help:   
help:

Node.jsのテスト系のライブラリなんかもそうなんだけど、ターミナルに色付きで表示されると見やすくていいですね。オプションもわかりやすいので、端末にちょっと入れておけばtodo管理ができてイイかも。普段はGmailのタスクを使っているので同期できると嬉しいんだけどねー

と思いながら調べたらGoogle Tasks APIってのがあったけど、これでいいんだろうか?あとで試してみよう。

今年も毘沙門天大祭に行った

去年のだるまに目を入れて。

1327920038

今年も行って来た。

1327920044

富士山が綺麗に見えますな。

1327920046

達磨は赤くて大きいのを買った。

1327920040

今年も一年無事でありますように。

今日の畑(120130)

人参を全部抜き取ったら20本くらいとれた。

その後、ニンニク以外の部分を除草して耕して、牛糞堆肥を入れておいた。

1327917401

影になっているところは日陰になりやすくて霜が降りてた。あと田んぼ土なので固かった。牛糞堆肥をもっと投入すべきか悩む、腐葉土は高いしなぁ。

それから、ジャンボエンチョーで緑肥用の種を物色してたんだけど売ってなかった。