スマートフォンデザインでラクするために

スマホデザインの話は後半のほうにしか書いてなくて、前半の1-5章はデザインとそのフローをどう考えるかといった抽象的な内容になっているので、デザインもやらなきゃいけないプログラマーみたいな人達にはとても勉強になるんじゃないかなと。内容もスマホデザインに限らないし。というかサイトをデザインするとは一体どういうことなのかみたいな抽象的な問いから入っててわかりやすかった。

6章のソフトの話は僕にはちょっと深すぎた、イラレはほとんど使わないので。7章はiPhone+Android スマートフォンサイト制作入門を推してたのでそれを読めばいいでしょう。この章で紹介されてたLigature Symbolsは面白そう。

1359718305

ちょいメモ

  • ユーザーが意思を持って重要な決定をするときにつかうのがボタン
  • コンテキストを意識する

デザイン要素をリストアップしておく

StyleDoccoが必要とされる理由を理解した。確かに必要だなと。

モジュール化といえば、Compassとかnibもモジュール化を指向しているだろうから、自分用のcss生成ライブラリを管理するようなやり方はプログラマー的な発想なのかなぁ。

サイトマップをマインドマップで

サイトマップをマインドマップで管理するのは便利そうだと思った。著者はMindNodeを推してたけど、自分でつかうならSimpleMindかなぁ。それからHakyllで静的サイトの管理をするだろうな。

ProductName スマートフォンデザインでラクするために
石嶋 未来
技術評論社 / 2499円 ( 2013-01-29 )


なぜキャッシュ・フローが重要なのか

決算書の暗号を解け! を読んでから決算書関連の本を読むのがちょっと楽しくなってきた。

キャッシュ・フロー計算書の歴史は浅いのに重視するのはなんでかなーと不思議だったんだけど、色々読んでみてなんとなく納得し始めた。

それはインフレじゃないから。

重要なのは営業活動によるキャッシュ・フローの合計値と投資活動によるキャッシュ・フローの合計値の2つ

  • 営業活動によるキャッシュ・フローはプラスであることが必要
  • 投資活動によるキャッシュ・フローはマイナスになるのが普通

損益計算書の利益と営業キャッシュ・フローのプラスマイナスが逆になっている場合は、キャッシュ・フロー計算書のほうが、会社の実態を正しく表示することが圧倒的に多いのです。

Nginxで特定のディレクトリにアクセス制限をかける

webalizerの集計結果なんかはアクセス制限かけておきたいんだけどNginxでどうやるのかねーと、ちょっと試行錯誤した結果、locationを入れ子にすればいいだけだった。

server {
           listen   80;
           server_name www.example.com;
           location / {
                       root   /var/www/html/;
                       index  index.html;
                       location /usage/ {
                            allow 127.0.0.1;
                            deny all;
                       }
           }
}

この本には書いてなかったと思う。

ProductName ハイパフォーマンスHTTPサーバ Nginx入門
Clement Nedelcu
アスキー・メディアワークス / 3150円 ( 2011-04-21 )


獅子の里 純米大吟醸 愛山

ワケあって、泰平居酒屋以来、日本酒を飲んでいない。酒量もかなり減らしてるんだけど。

年末に飲んだ獅子の里は美味かった。大吟醸だけあってキレイ目の味わい。

1359545900

次に飲むのは、白隠正宗 誉富士純米生原酒 富士山の日搾りになるかなぁ。予約しておかないとアカンのやけど、どこで予約するか悩む。

取り扱っているとこがどこも遠い、、、

富士山の日絞りなんだから、富士の酒屋であつかっているところはないものか?

virthualenvwrapperでmkvhenvしたら自動的にworkhonするようにした

mkvhenvっていうmkvirtualenvに対応するコマンドを用意した。mkvirthualenvしたあとにworkhonするのはめんどくさかったので、かなり快適になった。

泰平居酒屋で昼から呑んでた

先々週くらいの話。

@bg7860が新年会をしようと云うので、いつものように三島で飲もうかと思ったんだが、いい機会なので静岡まで足をのばして昼間から酒を飲むことにした。

目的の泰平居酒屋はオープンが15時30分という、昼から呑むにはもってこいの場所ですね。

1358942136

開運をやりながら白子を。

1358942132

造りの盛り合わせも開運で。

1358942133

金目の煮付けは初亀で。

1358942135

海つぼとはばい貝のことらしい。

1358942138

満足の昼酒だった。静岡いいなぁ、なんかいい職場ないかな。東京とか海外でもいいけど。

ChEMBLデータベースのPythonインターフェースを書いた

ちょっと欲しくなったので探してみたらpychemblを見つけた。

しかしメンテされてないようなのでフォークして更新しようかなと思い、ソースを眺めたら面倒くさそうな感じだったので、昨日一日使って新しいのを作ってみた。

declarativeでautoloadしているのでスキーマが変わってもメンテしやすいかなと思う。コーディングのほとんどの時間をテスト書くのに使ったので結構疲れた。それから、メタプログラミングはどうかなと思ったのでdbのuriは環境変数CHEMBL_URIで設定するようにしておいた(デフォルトはchemblのmysqlのインストールそのまま)。

chembl = ChEMBLDB(uri)とかやりたい場合にはFlask-SQLAlchemyのソースが参考になると思う。

ターゲットから活性値とInChiKeyをフェッチする

ターゲット名に含まれるアッセイ系から活性と対応する化合物の構造をとってくる。

from pychembldb import *
for target in chembldb.query(Target).filter_by(pref_name="Tyrosine-protein kinase ABL"):
    for assay in target.assays:
        for activity in assay.activities:
            print activity.published_value, activity.molecule.structure.standard_inchi_key

ジャーナルから活性値とInChiKeyをフェッチする

ジャーナル(doi)に含まれるアッセイ系から活性と対応する化合物の構造をとってくる。

from pychembldb import *
for journal in chembldb.query(Doc).filter_by(doi="10.1016/S0960-894X(01)80693-4"):
    for assay in journal.assays:
        for activity in assay.activities:
            print activity.published_value, activity.molecule.structure.standard_inchi_key

その他

ChEMBLのスキーマみれば大体わかるだろうし、その通りに動くでしょう。このスライドも参考になると思う。

余談ですが、Rubyだとbio-chemblがあるそうです。

今後やる予定のこと

  • とりあえずテーブル名をそのままクラス名にしたせいでlookupとかDictionaryとかついててダサいのでそこら辺の名前は変える(なのでクラス名とかメソッド名はまだ変わります)
  • relationが不完全なので追加していく
  • one-to-oneみたいなのもone-to-manyとしてrelation張っているせいでリストになっている部分は修正する(上だとmolecule.structures[0]とかださい)
  • pypiに登録する(pipでインストール出来ないと面倒くさい)

130128 追記

  • one-to-oneにしたのでmolecules[0]がmolecule
  • Dictionaryを除いたのでTarget,Moleculeになった

Building Node Applications With Mongodb and Backbone

Backbone.jsでクライアントサイド、Express+mongoose(MongoDB)+socket.ioでサーバーサイドで、チャットアプリをつくるという内容。

ProductName Building Node Applications With Mongodb and Backbone
Mike Wilson
Oreilly & Associates Inc / 1666円 ( 2012-12-31 )


誤字が多かった。コードはGithubにあるのでIssueみるとどこが修正されたか分かるので、確かめながら本を読んだほうがイイ。

あと、実際書いてみるとBackbone.jsのモデルとmongoのモデルの名前付けが紛らわしい。実際、本書のタイポはここらの名前付けルール(小文字かキャメルケースか)だったりするので、サーバーとクライアントの言語は変えたほうがいいのかなぁと思った。

あとmongooseみたいにスキーマ定義するのはどうなんだろう。それだったらSQLでいいんじゃないかなと思ったりするが。

こっちの本を参照しながらひと通り読んだのだけど、全文公開されているのでありがたい。

ProductName Developing Backbone.js Applications
Addy Osmani
Oreilly & Associates Inc / 2778円 ( 2013-05-22 )


Kindleに入れて気になった時に見れるようにしておきたいかも。

今日のリスト(131027)

サカナクション聴きすぎてサカナの気分だったので。

Over (featuring Zarif) / Breakage
Remainings II / Adam Beyer & Joel Mull
数え足りない夜の足音 / UA
Faith / Aeph
Love Like This (Ft.Craig David)(Club Mix) / T2
アイデンティティ / サカナクション
Bubbles / Makoto
Touch Sound / Xilent
シーラカンスと僕 / サカナクション
Innocence / Nero
Neurosis (140 Mix) / June Miller
ひまわり / タテタカコ

Adam Beyerのミニマルに数え足りない夜の足音を被せるのは気持よすぎた。

ProductName Illuminate~the very best songs~
UA
ビクターエンタテインメント / 2940円 ( 2007-11-08 )


「数学的推論が世界を変える」がおもしろい

Haskellなんかの型推論とか量子論をかじっているヒトが読むとかなり面白いと思う。述語理論、ゲーム理論、ゲーデルの不完全性定理なんかを説明して最後に確率的クリピキモデルに至るという内容。事例で金融の話が度々登場する。

僕はチューリングの定理(対角論法は知ってたけど)を理解できたのと、金融で不確定性原理が出てくるのが「原子の観測はミクロなのにマクロな市場でも表れるのか!」と驚いたが、結局介入しないと観測できないということから来てるんだろうなぁと解釈した。

  • 相互推論は様相論理の一つとみなすことができる
  • チューリングの定理が成り立つポイントはチューリングマシンを自然数で表すことができることである
  • ソロスの「再帰性」は「何の影響も与えることなく、外側から世界を理解することができない」ことを意味している
  • 確率的クリピキモデル

他にはボトムの意味をもうちょっと深く理解したのが、意外な収穫。

ProductName 関数プログラミング入門 ―Haskellで学ぶ原理と技法―
Richard Bird
オーム社 / 3990円 ( 2012-10-26 )


ゲーデルの不完全性定理を知るには数学ガールが良いとおもう。

ProductName 数学ガール ゲーデルの不完全性定理 (数学ガールシリーズ 3)
結城 浩
ソフトバンククリエイティブ / 1890円 ( 2009-10-27 )