Pythonで真偽値

Flaskのsessions.pyを読んでいたら真偽値を入れるところでboolを使っていて(32行目くらい)なるほどと思った。

def _set_permanent(self, value):
    self['_permanent'] = bool(value)

0,1は思った通り

>>> bool(0)
False
>>> bool(1)
True

文字列も直感通り

>>> bool("somthing")
True
>>> bool("")
False

でもこれはダメ

>>> bool("false")
True
>>> bool("true")
True

etagsを再帰的に使うにはeshellから**/*.pyとするだけだった

etagsに再帰的に探索するオプションがないので面倒くさかったんだが、eshellを使えば解決することが分かって快適になった。

例えばFlaskだったらM-x eshellでeshellを立ちあげて、flaskのディレクトリで

etags **/*.py

と打てばよい。

etags_emacs

eshellは常に一つ立ちあげておこうかな。

Traktorでtwitterにnow playingができるRADRが便利

pythonでicecastサーバーを立ててtwitterにポストすればいいかなーと思ってググっていたら、既にアプリになってた

実際使ってみるとMasterに移るタイミングでtweetするので快適すぎる。

日本酒好きのRichie Hawtinがかんでいるらしいので、日本酒を飲みながらTraktorをいじっている僕としては使わなあかんサービスだな。

芸術とはルールのあるゲームであり想像力をふくらませる商売である (芸術起業論)

芸術とはルールのあるゲームであり想像力をふくらませる商売であるとあるように、プログラミングもアートの一種と捉えた上で読めば面白く読める。違う視点から見たスタートアップの作り方みたいな本を読んでいるような感じで新鮮だった。

欧米の美術の歴史や文脈を知らないのは、スポーツのルールを知らずにその競技を見て「つまらない」とのたまうのと同じなんです。

まぁ確かにダブステップとかドラムステップがどう違うかとか文脈知らないとさっぱりだし、エポックメイキングな曲が出た背景とかそれに至る歴史を知らないとつまらんしな。

発掘されていない宝を手に入れるためには、

  1. 自分の興味のある表現分野を探し、その分野の歴史を徹底的に学ぶ
  2. その分野に興味を持ちはじめた理由を探す。
  3. 自分の興味のある表現分野を何度も検証し直す

そうすると見えてくるので、リソース(技術、資金)を揃えて航海。

ProductName 芸術起業論
村上 隆
幻冬舎 / 1680円 ( 2006-06 )


  • 価値観の違う人にも話しかけなければ、未来は変わらない
  • アーティストにとって作品同様に大切なのは独自のマネジメント哲学の構築なのです
  • 入り口を作った人こそが美術の世界で讃えられるものなのです
  • 才能よりも物語のほうが重要
  • ものを伝えることは娯楽だと割りきる

会社の外で稼ごうという啓蒙(3年くらいまえの)

大抵陳腐化するが、陳腐化しない部分を汲み取るのと、速読の題材として。アフィリエイトの話はバックリンクをばんばん作ってとかかなり黒に近い内容が書いてあった。これは持続性がないだろうな。

一見面白くないことを経験することがいい方向につながっていく現象を、私は「かかわったことは全部やりきる」と表現しています

会社の仕事を早くこなすコツ

  • 資料はひな形からつくる
  • すぐに決める
  • 極力会議に出ない

Nodeクックブックを予約した

LoLも気になっているが、Nodeクックブックを先に読むべきだなという結論になった(LoLは電子版が出たら買う)。

Nodeクックブックというタイトルだったので、Nodeの本はもういいやと思っていたが、目次を見たら実用Expressのほうがふさわしいんじゃないかと。

  • 1章 Webサーバを立てる
  • 2章 HTTPオブジェクトをより深く
  • 3章 データのシリアル化
  • 4章 データベース接続
  • 5章 Websocketを使ってAjaxを超える
  • 6章 Expressで開発をスピードアップ
  • 7章 セキュリティ、暗号化、認証
  • 8章 ネットワークサービスの実装
  • 9章 自分のNodeモジュールを作成する
  • 10章 本番環境に展開するために

というわけで買いですな。

ProductName Nodeクックブック
David Mark Clements
オライリージャパン / 3570円 ( 2013-02-23 )


Land of Lispを買うべきか?

ジャケ的には買わなければならない(激ヤバ マスト)なんだろうけど。

ProductName Land of Lisp
M.D. Conrad Barski
オライリージャパン / 3990円 ( 2013-02-23 )


とりあえずほしいものリストに入れておこうっと。

デュシャンは語ったが僕にはさっぱりだった

芸術関係をかじってないと、さっぱりだ。

ProductName デュシャンは語る (ちくま学芸文庫)
マルセル デュシャン
筑摩書房 / 998円 ( 1999-05 )


芸術という言葉はサンスクリットに由来しており、作るという意味

ほう、そうなのか。

存在するという概念は、人間が発明したものです

Stylusのフレームワーク

Stylusのフレームワークといえばnibだろうが、他にもいくつかあったので調べてみた。プラグインっぽい拡張とかもあったんだけど、Stylusの公式からリンクも張ってないしnpmも探しにくいしどうしたらいいのかなぁと。

Framework

nib

お約束。でもtext-shadowがないのはちょっと困るかな。

nibble

nibの上にのっかる感じのフレームワークらしい。ドキュメントが殆ど無いけど、foundationに強く影響を受けているらしいので、グリッドシステムとかレスポンシブ・ウェブデザインが充実しているのかな。僕の場合はGridのためにtwitter-bootstrapを使っているようなもんだから、こっちでいけるようだったら乗り換えてもいいかなと思うので、あとできちんと読んでみる。

fluidity

こちらもグリッドシステム。

Unlike other CSS grids, Fluidity does not use the same table-like concept of rows & columns. Instead of the usual print inspired multi-column style grid where the designer has to think about how wide a column is, what margins exist between them, and the usual "wait... how many columns wide is 315px?" Fluidity focuses on the screen and the varying screensizes in our world by describing things in terms of percentage of screen size or exact pixels which is much easier to visualize, plan around, and ultimately understand.

klipspringer

これもドキュメントがない。ソース見た感じではグリッドシステムとレスポンシブ・ウェブデザインは備えているっぽいがどこを目指しているのかちょっとわからない。

プラグインっぽいやつ

フレームワークほど大きくないモジュール

stylus-lemonade

Compass/SASSでいうところのSpritingにあたる機能を提供する。こういうやつだ。

stylus-images

@2xとかをよろしくやってくれるようだ。

  • Merges duplicated data URIs
  • Loads resolution dependent images when available
  • Moves non-inlined relative url's into the output directory

エディタとか更新時コンパイルするもの

stylusにはwオプションがあって、これを使えば更新時にコンパイルしてくれる。

lyvus

これはstylusのwオプションに加え、ブラウザもリロードしてくれる。利用するためには10行くらいのjsコードを埋め込む、lyvusコマンドで表示されるのでそれをコピペすればいい。

lyvus

ただ、僕がよく使うpyhttpd(python -m SimpleHTTPServerのalias)だとsocket.ioに対応してないからreloadしなくて残念。と思ったが、これのせいではない気もしているので後でちょっと調べる。

styler

こちらはオンラインエディタ。触ってみたところ良い感じなんだけどEmacs使いたいからなぁ。

Haskellでbrewのcurlを使おうとしたが

Haskellでscpを使いたいなぁと思い、色々と調べてみたがヨサゲなのが見つからなかった。

そこで、あーそういえばcurl使えんじゃんと思い出して、職場のlinuxではcabal install curlでokだった。この勢いでMBAにも入れようとしてハマった。

osxに最初から入っているcurlはscpに対応していない

$ /usr/bin/curl -V
curl 7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz

というわけでbrewで入れた(libssh2が必要)。ちなみにこんなのが出るのでln -sした。

$ /usr/local/bin/curl -V
curl 7.28.1 (x86_64-apple-darwin12.2.1) libcurl/7.28.1 OpenSSL/0.9.8r zlib/1.2.5 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 
Features: IPv6 Largefile NTLM NTLM_WB SSL libz

curlのほうはコレでOK。

続いてcabal installでcurlを入れるわけだが、brewのlibとかincludeを指定できないみたいなので、ソースを読んでみる。

curlc.cのincludeが

#include <curl/curl.h>

と決め打ちなので、ちょいと書きなおしてやる

#include "/usr/local/Cellar/curl/7.28.1/include/curl/curl.h"

これでコンパイル通るかなーと

通らない。

/usr/local/Cellar/curl/7.28.1/include/curl/curlrules.h:143:0:
     error: size of array ‘__curl_rule_01__’ is negative

/usr/local/Cellar/curl/7.28.1/include/curl/curlrules.h:153:0:
     error: size of array ‘__curl_rule_02__’ is negative
cabal: Error: some packages failed to install:
curl-1.3.8 failed during the building phase. The exception was:
ExitFailure 1

negativeってなんだよ?とググってみたらヒットした。要するに64bitのlibcurlを32bitのghcで使おうとしてエラーになっているらしい。

が、32bitじゃないと現状Yesodがうまく動かないのでこれ以上はどうしようもない感じ。

5月にHaskell Platform 2013.2.0.0が出たら再チャレンジするかな。またはlibssh2とかsshでなんとかするか。