2011/01/07

日記: 仕事、アーキテクチャ、自由

仕事場で英語キーボードを使うことになりました。
まだ慣れません。。

今日、C# でのリアクティブプログラミングのサンプル見せてもらった。スッキリし過ぎワロタ。

「Scheme でも Common Lisp でも、オレオレ Lisp でも良いよ。ガチで。」と仕事で言われても、選択肢として C# しか思い浮かばない自分\(^o^)/

仕事で node.js だって!

仕事にて、C# で WCF の REST のサンプルを提示したら「それ Scheme とか Gauche でできないの?」とのこと…

職場(と言っても私はバイトですが)はこんな感じです。
定時前になると帰る準備が始まり、定時になると皆さん一斉に帰り始めるという素敵なところです。

まだ職場に慣れず、気がつくと肩に力が入っています。
きっとすぐ慣れる・・・かな?

node.js


リアクティブプログラミング


アーキテクチャ

プログラムレベルでの疎結合性や再利用性などは、これまでも仕事で意識してきたし自分なりに勉強もしてきました。ですが、アーキテクチャレベルでのデザインや抽象化、疎結合性の担保などについては、頭の中に回路がないような感覚です。難しいです。。というかわかりません。

プログラムレベルでは GoF のデザインパターンが有名ですね。

アーキテクチャレベルだと PofEAA とか POSA などが有名なんでしょうか?

自由と0から

  • 何を使っても良い
  • どんなやり方でも良い
いざこう言われると無力です。

自分は今まで
  • 既にある程度形があって
  • 制約もあって
  • アーキテクチャも決まっていて
  • 言語も決まっている
そういう中でいきがってきたんだなー。。


@shunsuk さんのこの一言を思い出しました。
いろいろな意見が出てるけど。いざ「全部好きにしていいよ。権限も責任も全部あなたのものだ。」って言われたら、逃げ出すエンジニアが多いんじゃないかな。 #engineerenv

私も以前、よく既存システムの設計や会社のやり方に不満を持ったりしたものです。
自由に0から作ることに比べれば 、既存のものの一部をカイゼンしたり、抽象度を上げることは比較的簡単なのかもしれません。

設計

私の知る「設計」はプログラムの設計だったのかもしれません。内部設計か、もしかしたらもっと下流のものかも。
今必要なのは外部設計なのかな。
これを読むと、どちらもこれまで部分的に携わってきました。0から、しかも制約が少ないって難しい。。世の中の PG/SE すげぇーわ。。

制約

ついでにコレも思い出しました。
Factorのより高位なプログラミング力を手に入れるために、ローカル変数を放棄しなくてはなりません。


逆ポーランド記法つながりで

"lisp は lisper、 ruby は rubyist、 python は pythonian、 では FORTH を使う人はなんと呼ばれるのでしょうか?" Forth ニュース - moi の頭の中 http://bit.ly/igWMIQ
Python は Pythonista って聞くことが多い気がします。

エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)

2011/01/06

日記

今年は正月にコードを書くこともなく、プログラミング書初めは elisp でした。
その次が JavaScript で、その次は C# 。
まだ Scheme 書いてません。

Scheme つながりで Visual Studio の Color Scheme を変更しました。
エディタの背景が白っぽいと目がチカチカしてくるので、背景が黒いのを適当に選びました。
ディスプレイが明るいのも苦手。

ところで、1年以上ぶりに開発のお仕事に復帰しました。といってもバイトですけども。
久しぶりにスーツを着て車で通勤などしております。

で、仕事のことを書こうと思いましたが、どこまで書いて良いのか加減が全くわからないので割愛。

2011/01/03

文章を書くのがつらい

自分の書く文章は自分で読んでも読みにくい。
読んだり書いたりしてれば、そのうちうまくなるんじゃね?
くらいに思ってたけど一向にうまくならない。
ここに答えがあるかもしれない。

そういえば hyuki さんの増補改訂版Java言語で学ぶデザインパターン入門には私も大変お世話になりました。

追記


増補改訂版Java言語で学ぶデザインパターン入門

2010 - 2011

2010年の振り返りと2011年の抱負。

2010年を振り返る

昨年1月、とあるところで以下のようなことを書いています。
今年の目標 : やりたいことをやる

つまり、やりたくないことはやりません。
ついついやりたくないことをやりがちです。
スティーブ・ジョブスの演説じゃあないですが、やりたいことを楽しいことをやるようにします。

あれをやらなければ、これをやらなければ、あれを勉強しないと、これを読まないと・・・
must, should, must, should . . .
去年はこういったことが多かったと思います。

今年はやりたいことをやります。
やりたいことをやりたいときにやります。
だいたい達成できました。
心残りもさほどありません。

すごくリラックスして過ごすことができました。
素晴らしい1年だったので、とても満足しています。

他のいくつかの目標

  • Lisp のマクロを読み書きできるようになる
  • 月の日数よりも多くブログの記事を書く(年間に365記事くらいは書く)
この二つも達成できました。
達成と言っても、両方とも「~たらいいな」ぐらいの目標でした。

Lisp のマクロについては、自分が満足する程度には読み書きできるようになりました。
「どんなものでも読み書きできる」というわけにはいきませんが、恐ろしいパラダイムの片鱗を味わったぜ・・・。
これについては「写経」がもっとも効果がありました。

ブログの記事数については、できるだけ毎日書きたいけどやはり書けない日もあります。
その時は書ける日に複数書けたらいいなー、ぐらいのノリです。
これは来年も続けようと思います。

KPT

KPT(Keep, Problem, Try:今後も継続したいこと、問題となっていること、挑戦したいこと、の切り口で振り返りをする)
KPT を順に書くと、
  • 9LISP、ブログを書く
  • ものを作ってない
  • 仕事
ブログは「自分のために書く」ということを忘れないようにしたいと思います。

9LISP はこれからも、これまでのように続けていきたいです。
本当は KPF もやりたいんですが、9LISP に比べてなぜか開催の心理的負担が大きいんですよねぇ。。
協力者求む。

それと、ものを作ってこなかったので、今年はものを作るようにしたいです。

「ゴロゴロするのに忙しくて仕事をする暇がありませんでした。」(言いたいだけ)
1年以上仕事もせずブラブラしてきましたが、今年は仕事します。

2011年の抱負

  • ものを作る
  • 本を読む
  • 文章を書く
でも
  • 無理しない
  • 気負わない
なんか漠然としてますけど、こんな感じで。
今年は楽しくなさそうなことも楽しくできるようにできたら良いなーとも思っています。

そうえば

今年は素数みたいですね。
今年もよろしくお願いします。

追記

毎度早速の追記。
気をつけたいこと。

  • お酒を飲みすぎない
最近はめっきり飲まなくなりましたが、いざ飲んだときに飲みすぎないようにします。
飲みすぎると良くないことがたくさん発生しますよね。。

  • ペダンチック(衒学的)にならない
衒学的という言葉を使うこと自体が衒学的じゃないかという気もします。

ここ数年、人に会う機会が多いので気をつけます。

2011/01/01

あけましておめでとうございます。

明けちゃいました。

2010年の振り返りを書く間もなく明けてしまいました。
2011年の抱負もまた後ほど書こうかなーと思っている程度。
クリスマスネタもなかったしカウントダウンネタもないし明けおめネタもないのがアレですが。

今年は座学より実技ということで、何か作りたいなーと漠然とした目標があります。
あともうちょっとネットを控えて読書に時間を使いたいなーとも。

それと、年明け早々社会復帰予定です。
また仕事でプログラムを書くことが楽しみです!

今年もよろしくお願いします!
ということで今から初詣に行ってきます。

では。

2010/12/30

Emacs で GhostScript(PostScript)

そういえばメモってなかったので。

ps-mode を load して、ps-run-x に GhostScript のパスを指定すれば OK 。
ps-mode で C-c C-s すれば GhostScript の REPL が出てくる。

;; ps-mode
;; C-c C-v : ps-run-boundingbox
;; C-c C-u : ps-mode-uncomment-region
;; C-c C-t : ps-mode-epsf-rich
;; C-c C-s : ps-run-start
;; C-c C-r : ps-run-region
;; C-c C-q : ps-run-quit
;; C-c C-p : ps-mode-print-buffer
;; C-c C-o : ps-mode-comment-out-region
;; C-c C-k : ps-run-kill
;; C-c C-j : ps-mode-other-newline
;; C-c C-l : ps-run-clear
;; C-c C-b : ps-run-buffer
(load "ps-mode")
(setq ps-run-x `(,(expand-file-name "~/gs-path")))

逆ポーランド記法の言語といえば Forth ですが、Forth 使いの人の呼び名がかっこいいです。

ページ記述言語 PostScriptチュートリアル&クックブック (ASCII電子出版シリーズ)

2010/12/29

iPhone / iPad で Scheme: iBiwaScheme


これができるまでの流れがかっこいい。。

出来ました http://www.biwascheme.org/i.html メリークリスマス! RT yhara やりましょう RT @wtnabe biwascheme が iPhone 対応しないかな
このリリースは「大人になったからそろそろプレゼントする側にならないとな」という気持ちの提供でお送りしました。


そういえば iScheme も BiwaScheme ベースだとどこかで。。
私は iPhone 持ってませんけど。。


余談

yhara さんが Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~ の著者の方だと先日気づきました。。

追記


追記2

BiwaScheme 公式サイトのデモすげぇ。増えてる。。

あとやっぱこの破壊力。

Scheme手習い

SICP 原書の amazon レビュー 和訳(Paul Graham, Peter Norvig ...

amazon の SICP(計算機プログラムの構造と解釈)原書。
レビュアーがすごいですね!

SICP って「sick pee(しっくぴー)」って読むらしいですよ。ずっと「えすあいしーぴー」って読(呼)んでます。。

Paul Graham は ハッカーと画家 コンピュータ時代の創造者たち とか On Lisp の人ですね。
Peter Norvig は Google の現研究本部長で PAIP(実用 Common Lisp (IT Architects’Archive CLASSIC MODER))とか エージェントアプローチ 人工知能 の人ですね。 Red さんは何者なんでしょうか。

ところで

368 :デフォルトの名無しさん :2010/11/10(水) 19:40:16
ポールグレアムがグラハムかグレアムかで迷ったときは
DQ6の隠しボスの名前を思い出すといいよ。

ポールグレアム
ダークドレアム

な。似てるだろ。

Paul Graham はポール グレアム。Heather Graham はヘザー グラハム。。
なんで?微妙に気になります。

計算機プログラムの構造と解釈

2010/12/28

今年の3冊

本続きで。

3冊選んでみた

貧困大国アメリカは2冊セットで。
  1. 「ジェンダー論」の教え方ガイド―女子大生のための性教育とエンパワーメント (フェミックスブックレット (1))
  2. 数学入門〈上〉 (岩波新書)
  3. ルポ 貧困大国アメリカ (岩波新書)
「ジェンダー論」の教え方ガイド―女子大生のための性教育とエンパワーメント (フェミックスブックレット (1))数学入門〈上〉 (岩波新書)ルポ 貧困大国アメリカ (岩波新書)ルポ 貧困大国アメリカ II (岩波新書)

「ジェンダー論の教え方ガイド」は、今年のはじめの方に読んだけど印象に残ってる。こういう授業は必須じゃないかなぁ・・・。「数学入門」は @shunsuk さんからすすめられて読んだ。中学か高校、せめて十代で読みたかった。。でも読んでよかった。「貧困大国アメリカ」は夢中で読んだ。アメリカ怖いよアメリカ。

技術書3冊

というか Lisp 本3冊。
  1. 実用 Common Lisp (IT Architects’Archive CLASSIC MODER)
  2. On Lisp
  3. LET OVER LAMBDA Edition 1.0
実用 Common Lisp (IT Architects’Archive CLASSIC MODER)On LispLET OVER LAMBDA Edition 1.0

先生!僕にもマクロが読み書きできるようになりました!

伝統的マクロと衛生的マクロ(syntax-rules に限る)をある程度読み書きできるようになった(上記の本に syntax-rules は出てこないけど)。これはやっぱり今でも Lisp でしか体験できない抽象かもしれないので、悟り体験に含まれるのかも。つか悟り体験ってなんなんだろ。

賛否両論あるだろうけどマクロは他の言語にも輸入した方が良いと思う。S 式じゃなければ Lisp マクロほどの強力なマクロを用意するのは難しいのかもしれないにしても。(脱線)

PAIP は読みやすい・わかりやすい・おもしろい・重い・厚い。On Lisp は後半難しかったけど、丁寧で読みやすかった。ただし、ある程度 Lisp を読み書きできないと序盤からきついのかも。コードがきれい。Let Over Lambda が一番ぶっ飛んでた。文章もマクロも。オレオレマクロ TUEEEEE !
The Little Schemer, 4th Edition も好きで、待望の和訳本も出たけど、原書を読んだのは去年なので選ばず。

Scheme手習い

最近読んだ本

若者はなぜ3年で辞めるのか? 年功序列が奪う日本の未来 (光文社新書)3年で辞めた若者はどこへ行ったのか―アウトサイダーの時代 (ちくま新書)思考の整理学 (ちくま文庫)ルポ 貧困大国アメリカ II (岩波新書)変身 (新潮文庫)実用 Common Lisp (IT Architects’Archive CLASSIC MODER)

「若者はなぜ3年で辞めるのか?」「3年で辞めた若者はどこへ行ったのか」は両方とも面白かった。就活前後の学生さん、これから働く人、3年くらい働いた人とか読んだら面白いんじゃないかと。「思考の整理学」は読みやすかったけどあまり印象に残らず、ふーんって感じ。「貧困大国」はⅠもⅡも夢中で読んだ。日本もこうなってくんじゃないかと怖かった。「変身」は、うーん、グレーゴルの姿があまり想像できないまま読み終わった。。「実用 Common Lisp」は昨日ざっくり感想を書いた。
近所の図書館とか大学の図書館とかもっと利用しようと思う。
去年は7冊もらってきた。

そういや今年は Lisp 本を12冊読んだ。月1冊ペース?しばらくいいや。。