kiyoka日記。OldType、Sumibi.org、日々の出来事など。
昔から、SF小説では政治や経済は人類には手に余る問題なのでコンピュータに任せてしまおうという思考実験が行われる。
うまくいくか、いかないかの結論は作家の好みによって様々に分かれるけど、今回のサブプライムローンから始まった金融危機を見ていると、やっぱり人類の頭脳では扱い切れない問題なんじゃないかと思う。
今は無理だけど、将来はコンピュータに任せてしまう(もしくはかなりの部分サポートしてもらう)方がいいのではないかな。
コンピュータが『人類は滅ぶしかない』という結論を出してしまうパターンと、コンピュータと人類がうまく共存している様を絶妙に描写しているパターンの両方読んでみたい。
多分これを現実逃避というんだろうけど、個人にできることはあまり無いと思う。
他にも、日経平均ETFを買って値上がりを待って楽しむという方法もあるが、長期間低迷したらそれもしんどいので今回はパスしよう。
今やっと赤ちゃんが寝た。毎日5時間位しか寝れないのは正直キツイ。
そのせいで、昼間はあまり深い思考ができてない気がする。
最近音楽DVDを買いあさっているけど、思えば好みは変わってないなーと気が付いた。
高校生の時、初めて買ったCDは多分これ。いまだに聴いている。
Nothing Like the Sun: Sting
もう20年弱も経っているのか。その後もStingのファンで有り続けている。
Porcelain: Julia Fordham
Love Deluxe: Sade
音楽の好みってあんまり変わっていかないものなんだね。
そういえば、Jazzが好きになった最初のキッカケもStingだった。
ミュージシャンの活動とOSSの布教活動の共通点に気がついた。
OSSを黙々と作っても、なかなか使ってもらえない。
その前にまず認知されるまでが大変。そこでライブの必要性が出てくる。
OSS開発者もLightning Talk等のチャンスを使ってプレゼンする必要があるし、効果は非常に大きい。
実際に私も、Lightning Talk等をやった直後に実際にユーザが増えるということが過去に何度もあった。
この本に同様の事が書いてある。OSSでは無いが顧客とISVのギャップを埋めるという部分だ。
この本では、小さなISVは雑誌に広告を出すより展示会に出展すべきという話が書いてあるので参考になる。
Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
インターネットの時代になって、情報が洪水の様に人々に押し寄せる様になった。
要するに、昔よりも人々のアテンションを得ることが難しくなっているということだと思う。
ライブはそのアテンションを得る一番有力な手段だと思う。
最近、Lightning Talkやってないなーと自戒を込めて。
実際に過去記事を一件一件、目で確認して手なおししていくと、量の多さに驚く。(今日までで 493エントリもある)
毎日コツコツ続けるとすごい量になるんだなあと実感した。
Rubyのまつもとさんの『1日1ハックが目標』が達成できたら本当にかなりのことができるんだろうなと思う。時間的にできないけど。
それができる環境にある人は、その時間を大切に使ってください。
変換したもののうち2006年分の記事をOldTypeに登録完了。残すは2007年分が未登録。
やっぱりサムネイルのおかげで全体的にかっこよく見える気がする。
デザイン力がない場合はサムネイルに頼るのが楽なのだ。
Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
この本ではソフトウェア会社といっても、請負とかコンサルタント業とかSI業者は除外されるので注意。
とはいうものの、趣味でオープンソースソフトウェアを作っている人にもいろいろ勉強になる所はある。(OSSをやっている本人も決してビジネスには成らないと思っているハズなので)
特に、マーケティングの章はOSSの人にも役に立つと思う。
勿論オープンソースの話は、オープンソースでソフトウェアビジネスをするのはかなり難しいという意味合いでしか出てこないが、自分で立ちあげたオープンソースプロジェクトの社会での立ち位置を再認識できるとおもう。("会社での"ではないことに注意)
ところで、オープンソースの周辺でビジネスをしている人は実際どうやっているんだろ。
私はオープンソースをメインにした企業(一般的にはオープンソース企業と呼ばれる)で働いた事ないので分からないが、それぞれの企業で何らかの工夫がもりこまれているんだろうなぁ。
一度、オープンソース企業を経営している人に秘密を聞いてみたい。
赤ちゃんを抱っこしているあいだ、携帯くらいしか持てないので。
結構体重が重たくなってきたので、抱っこ紐して本を読むことが難しくなってきた。
そう、
を取ったやつ。
ストーリーとしては、昔からあるスタイルで驚く点は無いけど、文体が携帯向けになるとまた違った感じを受ける。
私の世代では純文学スタイルの文体が普通だったけど携帯世代にはこちらの方がリアルに感じるのかも。
変換したもののうち2004年から2005年までの分の記事をOldTypeに登録した。
to
ツールはshellスクリプトとGaucheで作成。
いまは、少しづつ変換後のコンテンツを微調整している所。
例えば、tDiaryに登録した画像データまでは変換しないので、そのあたりは手作業になる。
過去記事は 324件 もあった。こんなに書いてたんだなあ。
変換が終わったら、この膨大な記事から本の書評だけ抜きだしたり色々面白いことができそう。
cat tdiary_data/**/*.td2 | iconv -f euc-jp -t utf8 > td2.txt
cat tdiary_data/**/*.tdc | iconv -f euc-jp -t utf8 > tdc.txt
gosh ./convertToSexp.scm d < td2.txt > td2.scm
gosh ./convertToSexp.scm c < tdc.txt > tdc.scm
gosh ./convertToOT.scm ${USER} td2.scm tdc.scm
一旦、tDiaryの形式からS式のファイル(alist)に変換するのがミソ。
Last-Modified: 1188819527
[プログラミング] Schemeのlambdaがようやく分かってきた
<%=a "なんでもλ|http://practical-scheme.net/docs/lambda-j.html" %>を前に何度も読んだけど、自分のモノになってなかったようです。
最近、named letと継続渡しオンパレードなWiLiKiのパーサをいじることで、ようやく全部同じだという感覚が掴めました。
何なんでしょう。こういう質の高いチュートリアルを読んでも掴めなかった感覚が実際に自分でやってみると掴めるというのは。
(Last-Modified: . "1188819527")
( "[プログラミング] Schemeのlambdaがようやく分かってきた
<%=a 'なんでもλ|http://practical-scheme.net/docs/lambda-j.html' %>を前に何度も読んだけど、自分のモノになってなかったようです。
最近、named letと継続渡しオンパレードなWiLiKiのパーサをいじることで、ようやく全部同じだという感覚が掴めました。
何なんでしょう。こういう質の高いチュートリアルを読んでも掴めなかった感覚が実際に自分でやってみると掴めるというのは。
誰か『なんでも経験』ていう文章書いて下さいませ。" )
(str-list (port->string-list port)))
(let1 pair (string-split str #/[ ]+/)
(format "( \"~a\" " (cadr pair))
(format "(~a . \"~a\")" (car pair) (cadr pair)))))
((= 0 (string-length str))
(string-append (reset-body!)
(regexp-replace-all #/[\"]/ str "'"))
;; "20081231" => "2008_12_31"
(define (convert-date date)
(let ((y (substring date 0 4))
(d (substring date 6 8)))
(string-append y "_" m "_" d)))
;; "<%=a 'link|str' %> => [[link|str]]
;; "<%=isbn_image 'id' %> => ##(amazon id)
(define (convert-command str)
(regexp-replace-all #/<a[ ]+href='([^']+)'>([^<]+)<\/a>/ str
(regexp-replace-all #/<%=[ ]?a[ ]+'([^|]+)[|]([^']+)'[ ]+%>/ str
(regexp-replace-all #/<%=[ ]?isbn_image[ ]+'([^']+)'[ ]+%>/ str
(string-append "##(amazon " (rxmatch-substring m 1) ")")))))
(define (output-oldtype-file username date entry-data)
(define (display-diary entry port)
(when (string? (car lst))
(display (convert-command (car lst)) port)
(define (display-comment entry port)
(let1 name (assq-ref entry 'Name:)
(when (not (#/http:\/\// str))
(display (format "##(comment-data ~a ~a)"
(call-with-output-file (format "./out/~a.~a.ot" username (convert-date date))
(lambda (entry) ;; entry is a diary or a comment.
((assq-ref entry 'Title:)
(display-diary entry port))
(display-comment entry port))))
(display "##(comment)" port)
(define (save-oldtype-data username diary-data comment-data)
(let1 h (make-hash-table 'string=?)
;; make hash data ( key is string of date , value is alist of diary or comment)
(hash-table-push! h (car pair) (cdr pair)))
(output-oldtype-file username k (reverse v))))))
(let ((username (cadr argv))
(diary-file (caddr argv))
(comment-file (cadddr argv)))
(call-with-input-file diary-file read))
(call-with-input-file comment-file read)))
でも実際に食べようとすると、赤ちゃんが泣きだして大急ぎで食べる。
ゲームの世界でも、CPUのクロック数は頭打ちになりメニーコアの方向に行く。
処理速度を向上させる為には、沢山のCPUコアをいかに有効に活用するか(並列化)しかない。
Sweeney氏は純粋関数型言語のもつ並列処理安全性に着目しており、将来的に
ゲームプログラミングはそういった処理系に移行していくべきだとした。
Sweeney氏はそのひな形として言語“Haskell”を挙げているが、ゲームなどの
新情報を開発のメインストリームたり得る言語はまだ登場しておらず、将来に
私も概ね同意する。スレッドプログラミングの複雑さは最後には人間の限界を超えると思う。(もう超えている?)
特に、画像処理やレイトレーシングなどの処理は副作用なしで記述しやすいプログラムの代表格だと思うので近いうちに関数型言語が主流になるんじゃないかと思う。
記事中で使われている本の背表紙やYouTubeのサムネイルを出すようにした。
自分が書いた昔の記事を読み直したりする時に画像から探し出せるので便利になった。