!kiyoka.blog.2008_10 RSSPLAIN

Related pages: !kiyoka.blog.list
2532555444444444440444555555555555550555555555555555555550555555555555055555555550555555555555550555555555555555555555555555555555550555555555505555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555515555555555555555555555555555555555155555555555055555555555555555055555555555505
2

kiyoka日記。NendoSekkaの開発や、最近思うことなど

5

最新10件!kiyoka.blog   過去記事一覧!kiyoka.blog.list

3

kiyoka.blog_header 

2

このブログを書いている人: 西山 清香(kiyoka) - twitter: @kiyokaEXT

5

5

 

5

 

4

kiyoka.2008_10_25[Life][SF] 世界金融危機とSF小説

4

昔から、SF小説では政治や経済は人類には手に余る問題なのでコンピュータに任せてしまおうという思考実験が行われる。

4

うまくいくか、いかないかの結論は作家の好みによって様々に分かれるけど、今回のサブプライムローンから始まった金融危機を見ていると、やっぱり人類の頭脳では扱い切れない問題なんじゃないかと思う。

4

今は無理だけど、将来はコンピュータに任せてしまう(もしくはかなりの部分サポートしてもらう)方がいいのではないかな。

4

久々に、そういう小説を読んでみたくなった。

4

コンピュータが『人類は滅ぶしかない』という結論を出してしまうパターンと、コンピュータと人類がうまく共存している様を絶妙に描写しているパターンの両方読んでみたい。

4

どんな小説があるか探してみようと思う。

4

多分これを現実逃避というんだろうけど、個人にできることはあまり無いと思う。

4

この時期にそういうSFを読むのも一興だろう。

4

他にも、日経平均ETFを買って値上がりを待って楽しむという方法もあるが、長期間低迷したらそれもしんどいので今回はパスしよう。

4

 

0

comment (disabled)

4

4

 

4

 

5

kiyoka.2008_10_17[音楽] 私が初めて買ったCD

5

最近音楽DVDを買いあさっているけど、思えば好みは変わってないなーと気が付いた。

5

高校生の時、初めて買ったCDは多分これ。いまだに聴いている。

5
 B000002GKZ  Nothing Like the Sun: Sting
5

もう20年弱も経っているのか。その後もStingのファンで有り続けている。

5

他にもこんなCDを買ったなぁ。

5
 B000000WH4  Porcelain: Julia Fordham
5
 B000050XNS  Love Deluxe: Sade
5

うわー、どれも今でも聞いているCDだ。

5

音楽の好みってあんまり変わっていかないものなんだね。

5

 

5

そういえば、Jazzが好きになった最初のキッカケもStingだった。

5

またそのうちJazzの話も書きます。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_16[オープンソース] オープンソースソフトウェアの布教活動もライブが基本?

5

ミュージシャンの活動とOSSの布教活動の共通点に気がついた。

5

OSSを黙々と作っても、なかなか使ってもらえない。

5

その前にまず認知されるまでが大変。そこでライブの必要性が出てくる。

5

ミュージシャンがライブで新曲を披露するのと同じ。

5

OSS開発者もLightning Talk等のチャンスを使ってプレゼンする必要があるし、効果は非常に大きい。

5

実際に私も、Lightning Talk等をやった直後に実際にユーザが増えるということが過去に何度もあった。

5

 

5

この本に同様の事が書いてある。OSSでは無いが顧客とISVのギャップを埋めるという部分だ。

5

この本では、小さなISVは雑誌に広告を出すより展示会に出展すべきという話が書いてあるので参考になる。

5
 4798117501  Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
5

 

5

インターネットの時代になって、情報が洪水の様に人々に押し寄せる様になった。

5

要するに、昔よりも人々のアテンションを得ることが難しくなっているということだと思う。

5

ライブはそのアテンションを得る一番有力な手段だと思う。

5

最近、Lightning Talkやってないなーと自戒を込めて。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_15[OldType][tDiary] tDiaryのデータをOldTypeに変換した(4)

5

2007年分の記事もOldTypeに登録完了。これで全てのブログ記事をOldTypeに移行できた。

5

過去の日記 kiyoka日記EXTはいつ閉じてもいい状態になった。

5

実際に過去記事を一件一件、目で確認して手なおししていくと、量の多さに驚く。(今日までで 493エントリもある)

5

毎日コツコツ続けるとすごい量になるんだなあと実感した。

5

Rubyのまつもとさんの『1日1ハックが目標』が達成できたら本当にかなりのことができるんだろうなと思う。時間的にできないけど。

5

それができる環境にある人は、その時間を大切に使ってください。

5

 

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_12[OldType][tDiary] tDiaryのデータをOldTypeに変換した(3)

5

変換したもののうち2006年分の記事をOldTypeに登録完了。残すは2007年分が未登録。

5

!kiyoka.blog.listの表示形式も変更して月刊の過去ログにもたどれる様にした。

5
 2931972710_b6f5f49d19_o
5

やっぱりサムネイルのおかげで全体的にかっこよく見える気がする。

5

デザイン力がない場合はサムネイルに頼るのが楽なのだ。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_11[言語][本] 革新的ソフトウェア企業の作り方

5
 4798117501  Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
5

この本ではソフトウェア会社といっても、請負とかコンサルタント業とかSI業者は除外されるので注意。

5

なので、日本国内ではほぼ該当企業なしかも。

5

とはいうものの、趣味でオープンソースソフトウェアを作っている人にもいろいろ勉強になる所はある。(OSSをやっている本人も決してビジネスには成らないと思っているハズなので)

5

特に、マーケティングの章はOSSの人にも役に立つと思う。

5

勿論オープンソースの話は、オープンソースでソフトウェアビジネスをするのはかなり難しいという意味合いでしか出てこないが、自分で立ちあげたオープンソースプロジェクトの社会での立ち位置を再認識できるとおもう。("会社での"ではないことに注意)

5

ところで、オープンソースの周辺でビジネスをしている人は実際どうやっているんだろ。

5

私はオープンソースをメインにした企業(一般的にはオープンソース企業と呼ばれる)で働いた事ないので分からないが、それぞれの企業で何らかの工夫がもりこまれているんだろうなぁ。

5

一度、オープンソース企業を経営している人に秘密を聞いてみたい。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_09[Life][本][育児] 話題の携帯小説『あたし彼女EXT』を読む

5

赤ちゃんを抱っこしているあいだ、携帯くらいしか持てないので。

5

結構体重が重たくなってきたので、抱っこ紐して本を読むことが難しくなってきた。

5

というわけで、『あたし彼女EXT』を読んだ。

5

そう、nkst_logoを取ったやつ。

5

ストーリーとしては、昔からあるスタイルで驚く点は無いけど、文体が携帯向けになるとまた違った感じを受ける。

5

私の世代では純文学スタイルの文体が普通だったけど携帯世代にはこちらの方がリアルに感じるのかも。

5

 

5

ていうか、

5

 

5

赤ちゃんおもいっつーの。

5

 

5

もう

5

 

5

マヂ

5

 

5

無理

5

 

5

だし

5

 

5

泣いてる

5

 

5

意味わかんないし

5

 

5

まあ、なんとなくわかるけど

5

 

5

あたし父親?

5

 

5

みたいな

5

 

5

COMMENTshiro

ねえ

もうそろそろ

寝ておくれよ

とうさん

疲れたよ

みたいな

5

COMMENTkiyoka

shiroさんコメントありがとうございます。

shiroさんもお疲れですか。

とうさんは大変ですね。

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_07[OldType][tDiary] tDiaryのデータをOldTypeに変換した(2)

5

変換したもののうち2004年から2005年までの分の記事をOldTypeに登録した。

5

!kiyoka.blog.listからたどれるよ。Sumibi.orgの開発記とかが懐かしい。

5

意外と自分が書いた書評が役に立つことがわかった。

5

 

5

COMMENTほげほげお

tDailyといえば、作者様が私のソフトに触れてくれて感動した覚えがあります。

http://sho.tdiary.net/20071204.html

私もフリーソフト作者のはしくれですが、全然違う分野なんですよね。

同じ仕事をしていた時期が懐かしすぎます。

5

COMMENTkiyoka

Craving Explorerですね。

Windowsアプリかぁ。

すみません、うちにMicrosoft製品が一つもないので動かせてないんですが...

それにしても、ロゴかっこいいです。操作性も良さそう。

Windowsがあれば一度使ってみたいです。

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_06[OldType][tDiary] tDiaryのデータをOldTypeに変換した

5

h1 to oldtype_logo

5

kiyoka日記EXTにあるtDiaryの過去データをツールを作って変換した。

5

ツールはshellスクリプトとGaucheで作成。

5

いまは、少しづつ変換後のコンテンツを微調整している所。

5

例えば、tDiaryに登録した画像データまでは変換しないので、そのあたりは手作業になる。

5

過去記事は 324件 もあった。こんなに書いてたんだなあ。

5

変換が終わったら、この膨大な記事から本の書評だけ抜きだしたり色々面白いことができそう。

5

 

5

ちなみに、これがスクリプト。

5

ちょっと長いけど、御勘弁。(このソースコードはCodeReposに上げてます)

5

 

5

[ tdiary2oldtype.sh ]

5
#!/bin/zsh
5
5
cat tdiary_data/**/*.td2 | iconv -f euc-jp -t utf8 > td2.txt
5
cat tdiary_data/**/*.tdc | iconv -f euc-jp -t utf8 > tdc.txt
5
5
gosh ./convertToSexp.scm d < td2.txt > td2.scm
5
gosh ./convertToSexp.scm c < tdc.txt > tdc.scm
5
5
mkdir -p out
5
gosh ./convertToOT.scm ${USER} td2.scm tdc.scm
5

 

5

一旦、tDiaryの形式からS式のファイル(alist)に変換するのがミソ。

5

 

5
  tDiaryのデータ
5
Date: 20070902
5
Title: 
5
Last-Modified: 1188819527
5
Visible: true
5
Format: tDiary
5
5
[プログラミング] Schemeのlambdaがようやく分かってきた
5
 <%=a "なんでもλ|http://practical-scheme.net/docs/lambda-j.html" %>を前に何度も読んだけど、自分のモノになってなかったようです。
5
 最近、named letと継続渡しオンパレードなWiLiKiのパーサをいじることで、ようやく全部同じだという感覚が掴めました。
5
 何なんでしょう。こういう質の高いチュートリアルを読んでも掴めなかった感覚が実際に自分でやってみると掴めるというのは。
5
 なんでも経験ですね。
5
 誰か『なんでも経験』ていう文章書いて下さいませ。
5
5
.
5

 

5
  変換後のS式
5
( "20070902"
5
  (Date: . "20070902")
5
  (Title: . "")
5
  (Last-Modified: . "1188819527")
5
  (Visible: . "true")
5
  (Format: . "tDiary")
5
  
5
  ( "[プログラミング] Schemeのlambdaがようやく分かってきた
5
<%=a 'なんでもλ|http://practical-scheme.net/docs/lambda-j.html' %>を前に何度も読んだけど、自分のモノになってなかったようです。
5
最近、named letと継続渡しオンパレードなWiLiKiのパーサをいじることで、ようやく全部同じだという感覚が掴めました。
5
何なんでしょう。こういう質の高いチュートリアルを読んでも掴めなかった感覚が実際に自分でやってみると掴めるというのは。
5
なんでも経験ですね。
5
誰か『なんでも経験』ていう文章書いて下さいませ。" )
5
  .
5
  .
5
  )
5

 

5

[convertToSexp.scm]

5
#!/usr/local/bin/gosh
5
5
(use srfi-1)
5
(use srfi-13)
5
5
(define (load-td2 port)
5
  (let (
5
        (body  '())
5
        (str-list (port->string-list port)))
5
5
    (define (reset-body!)
5
      (let1 ret (reverse body)
5
            (set! body '())
5
            (if (null? ret)
5
                ""
5
                (string-append "    ( \""
5
                               (string-join ret "\n")
5
                               "\" )"))))
5
    (define (push-body! str)
5
      (push! body str))
5
5
    (filter-map
5
     (lambda (str)
5
       (cond
5
        ((#/^TDIARY+/ str)
5
         #f)
5
        ((#/^[a-zA-Z-]+: / str)
5
         (let1 pair (string-split str #/[ ]+/)
5
               (string-append
5
                (if (#/^Date: / str)
5
                    (format "( \"~a\" " (cadr pair))
5
                    "")
5
                (format "(~a . \"~a\")" (car pair) (cadr pair)))))
5
        ((= 0 (string-length str))
5
         (reset-body!))
5
        ((#/^[.]$/ str)
5
         (string-append (reset-body!)
5
                        " )"))
5
        (else
5
         (let1 str (string-trim
5
                    (regexp-replace-all #/[\"]/ str "'"))
5
               (push-body! str)
5
               #f))))
5
     str-list)))
5
5
5
(define (main argv)
5
  (print "(")
5
  (for-each print
5
            (load-td2
5
             (current-input-port)))
5
  (print ")"))
5

 

5

[convertToOT.scm]

5
#!/usr/local/bin/gosh
5
5
(use srfi-1)
5
(use util.list)
5
(use rfc.uri)
5
5
;;
5
;; "20081231" => "2008_12_31"
5
;;
5
(define (convert-date date)
5
  (let ((y (substring date 0 4))
5
        (m (substring date 4 6))
5
        (d (substring date 6 8)))
5
    (string-append y "_" m "_" d)))
5
5
5
;;
5
;; "<%=a 'link|str' %>          =>  [[link|str]]
5
;; "<%=isbn_image 'id' %>       =>  ##(amazon id)
5
;;
5
(define (convert-command str)
5
  (let* ((str
5
          (regexp-replace-all #/<a[ ]+href='([^']+)'>([^<]+)<\/a>/ str
5
                              (lambda (m)
5
                                (string-append "[["
5
                                               (rxmatch-substring m 1)
5
                                               "|"
5
                                               (rxmatch-substring m 2)
5
                                               "]]"))))
5
         (str
5
          (regexp-replace-all #/<%=[ ]?a[ ]+'([^|]+)[|]([^']+)'[ ]+%>/ str
5
                              (lambda (m)
5
                                (string-append "[["
5
                                               (rxmatch-substring m 2)
5
                                               "|"
5
                                               (rxmatch-substring m 1)
5
                                               "]]"))))
5
         (str
5
          (regexp-replace-all #/<%=[ ]?isbn_image[ ]+'([^']+)'[ ]+%>/ str
5
                              (lambda (m)
5
                                (string-append "##(amazon " (rxmatch-substring m 1) ")")))))
5
    str))
5
5
  
5
(define (output-oldtype-file username date entry-data)
5
5
  (define (display-diary entry port)
5
    (for-each
5
     (lambda (lst)
5
       (when (string? (car lst))
5
         (begin
5
           (display (convert-command (car lst)) port)
5
           (newline port)
5
           (newline port))))
5
     entry))
5
5
  (define (display-comment entry port)
5
    (let1 name (assq-ref entry 'Name:)
5
          (for-each
5
           (lambda (x)
5
             (let1 str (car x)
5
                   (when (string? str)
5
                     (when (not (#/http:\/\// str))
5
                       (begin
5
                         (display  (format "##(comment-data ~a ~a)"
5
                                           (uri-encode-string name)
5
                                           (uri-encode-string str))
5
                                   port)
5
                         (newline port))))))
5
           entry)))
5
5
  (call-with-output-file (format "./out/~a.~a.ot" username (convert-date date))
5
    (lambda (port)
5
      port
5
      (begin
5
        (for-each
5
         (lambda (entry) ;; entry is a diary or a comment.
5
           (cond
5
            ((assq-ref entry 'Title:)
5
             ;; diary
5
             (display-diary entry port))
5
            ;; comment
5
            (else
5
             (display-comment entry port))))
5
         entry-data)
1
        (display "#(comment)" port)
5
        (newline port)))))
5
5
5
5
(define (save-oldtype-data username diary-data comment-data)
5
  (let1 h (make-hash-table 'string=?)
5
        ;; make hash data ( key is string of date , value is alist of diary or comment)
5
        (for-each
5
         (lambda (pair)
5
           (hash-table-push! h (car pair) (cdr pair)))
5
         (append
5
          diary-data
5
          comment-data
5
          ))
5
5
        (hash-table-for-each
5
         h
5
         (lambda (k v)
5
           (output-oldtype-file username k (reverse v))))))
5
5
5
(define (main argv)
5
  (let ((username       (cadr argv))         
5
        (diary-file     (caddr argv))
5
        (comment-file   (cadddr argv)))
5
    (let ((diary-data
5
           (call-with-input-file diary-file read))
5
          (comment-data
5
           (call-with-input-file comment-file read)))
5
      (save-oldtype-data
5
       username
5
       diary-data
5
       comment-data))))
5

 

1
 spam対策のため本記事からコメントを外しました。
5

5

 

5

 

5

kiyoka.2008_10_05[Life][食] チキンチリ

5

チキンチリを例の宅配スーパーで注文して作った。(過去記事:kiyoka.2008_09_21[Life][食] 宅配スーパーが便利すぎる件)

5

今回もうまくできた。

5

でも実際に食べようとすると、赤ちゃんが泣きだして大急ぎで食べる。

5

味わって食べるれるのは当分なさそうだ。

5
    2913671153_7d9ebd9c5a_m
5

もっとゆっくり食べたい。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_03[言語][プログラミング] 並列処理のプログラミングの未来は純粋関数型言語にある?

5

ゲームの世界でも、CPUのクロック数は頭打ちになりメニーコアの方向に行く。

5

処理速度を向上させる為には、沢山のCPUコアをいかに有効に活用するか(並列化)しかない。

5

最後には純粋関数型になるだろうととのこと。

5
 ゲームプログラミング界の巨人、Tim Sweeneyが「未来のゲーム開発テクノロジー」を語るEXT
5
 Sweeney氏は純粋関数型言語のもつ並列処理安全性に着目しており、将来的に
5
 ゲームプログラミングはそういった処理系に移行していくべきだとした。
5
 Sweeney氏はそのひな形として言語“Haskell”を挙げているが、ゲームなどの
5
 新情報を開発のメインストリームたり得る言語はまだ登場しておらず、将来に
5
 期待しているという。
5

HaskellLogo_2

5

私も概ね同意する。スレッドプログラミングの複雑さは最後には人間の限界を超えると思う。(もう超えている?)

5

特に、画像処理やレイトレーシングなどの処理は副作用なしで記述しやすいプログラムの代表格だと思うので近いうちに関数型言語が主流になるんじゃないかと思う。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_10_02[OldType] ブログの記事リストに画像のサムネイルを付けた

5

OldType 0.3.4 リリース。

5

記事中で使われている本の背表紙やYouTubeのサムネイルを出すようにした。

5
 !kiyoka.blog.list のスナップショット
5
 2907251536_d181d42789_m
5

自分が書いた昔の記事を読み直したりする時に画像から探し出せるので便利になった。

5

人間の画像の把握能力はすごいんだな。

5

文章じゃあこうはいかないもんなあ。

5

 

0

comment (disabled)

5