2008-01-01から1年間の記事一覧

プロジェクトマネジメントのトリセツ #5

PM

最後の章。 設計〜開発〜導入・運用フェーズが駆け足で説明される。 プロジェクトマネジメントとしての話というよりは、 特定のプロジェクトの遷移についての話なので、メモが少なめ。 論文のネタになりそうな箇所をピックアップ。

プロジェクトマネジメントのトリセツ #4

PM

昼間に食べた辛いお菓子のせいでお腹の調子が悪い。 前にも同じことがあった気がするのに、、

ジャンケン勝敗判定マシーンを OR と INVERT だけで

ダニエル・ヒリスの「思考する機械コンピュータ」にでてくる、 ジャンケンの勝敗判定マシンを OR と INVERT だけの論理回路で設計してみました。 そもそものきっかけがヒリス本に、 OR回路 と INVERT回路 だけで AND回路 が作れるということと、 逆に AND と…

プロジェクトマネジメントのトリセツ #3

PM

つづき、

プロジェクトマネジメントのトリセツ #2

PM

引き続き「世界一やさしいプロジェクトマネジメントのトリセツ」を読む、 昨日は全体の大まかな流れをさらって、今日からは少し具体的な話になる。

プロジェクトマネジメントのトリセツ #1

PM

10月の情報処理技術者試験のプロジェクトマネージャを受けるための勉強を開始。遅すぎるかも? まあ、午前は免除で、求職中につき一日中勉強でもできるのでどうにかなるでしょう。 とりあえず、プロジェクトマネジメントとは?という詳細を知るために、 「世…

練習問題 P.112 delete-1

どう考えてよいかよく分からんかった。 苦肉の策として、 ・リストの最後まできたら 削除する要素がないということなので、元のリストをそのまま返す ・一致する要素が見つかったら、その要素を除いた新しいリストを作る という実装にしてみました。 9章は…

練習問題 P.101 any-pred, every-pred

any-pred は1つでも真になれば #t 真の要素が見つからないまま、リストの最後になれば#f every-pred は1つでも真になれば #f 真の要素が見つからないまま、リストの最後になれば#t (ただし、最初から空リストなら #f) と思ったが、 それは前のページで説明…

練習問題 P.68 numbers-only

(define (filter (proc lis)) (cond ((null? lis) lis) (pred (car lis)) (cons (car lis) (filter proc (cdr lis))) (else (filter proc (cdr lis))))) (define (for-each-numbers (proc lis)) (for-each proc (filter numbers? lis))) (define (map-number…

練習問題 P.69 numbers-only-for-tree

(numbers-only for-each)や(numbers-only map)で入れ子のリストを処理できるか? → できない 理由: 例えば入れ子のリストの '(1 2 3 (4 5) 6) の 4番目の要素 '(4 5) は数値ではなく、リストであるから walker が満たすべき条件: 入れ子のリストの中も処…

練習問題 P.50

gosh> (fold cons '() '(a b c d e)) (e d c b a) リストの要素が逆になる。 init が proc の2番目の引数になるのがポイントになっている。

練習問題 P.53 deep-copy-list

ネストしたリストも全てコピーするって、copy-list でも出来ていると思うんやけど.. (define (deep-copy-list lis) (if (pair? lis) (cons (deep-copy-list (car lis)) (deep-copy-list (cdr lis))) #?=lis)) ネストされているのも含めて全ての要素が最後の…

練習問題 P.56 length

(define (length lis) (if (pair? lis) (+ 1 (length (cdr lis))) 0)) ついでにネストされている要素の数も (define (deep-length lis) (cond ((null? lis) 0) ((pair? lis) (+ (deep-length (car lis)) (deep-length (cdr lis)))) (else 1)))

練習問題 P.56 filter

(define (filter pred lis) (cond ((null? lis) '()) ((pred (car lis)) (cons (car lis) (filter pred (cdr lis)))) (else (filter pred (cdr lis))))) 感覚がつかめてきた

練習問題 P.59 末尾再帰のreverse

(defile (reverse lis) (define (reverse-rec lis a) (if (null? lis) a (reverse-rec (cdr lis) (cons (car lis) a)))) (reverse-rec (cdr lis) (list (car lis)))) こういうイメージと思えば、そんなに難しくない for (split //, $lis) { $a = $_ . $a; } …

リスト操作の基本手続き

各データに対して、リスト操作の手続きをまとめてみた。 データ 例 pair? null? car cdr 空リスト '() × ○ ERROR ERROR リスト '(1 2 3) ○ × 1 '(2 3) リテラル 1 × × ERROR ERROR car や cdr は空リストやリテラルに適用するとエラーになるので、 事前に pa…

興味が散漫になっている

「プログラミングGauche」を買ったので、早速読む。 わからないところは本当にわからない、 何回か読んでいると分かるようになる。凄い新鮮やな。

モールス信号入力デバイス

Beautiful Codeの「世界につながる手段がボタンだけだったら」を読んでいて思いついた。 例えば N「ー・」とすれば進む(Next) P「・ーー・」とすれば戻る(Previous) とかで、何が進んだり戻ったりするかは考えてないけど。

SpecialCellsを改造した PART2

エクセルでセル同士の差集合が得られるようになったので、 前に作った SpecialCells の拡張版、 ESpecialCells も改造しなおした。結構複雑な条件の指定も可能になって、なかなかイカシます。 2008/06/19 追記: 定数に o (UsedRange外のセル)を追加した。

Union, Intersect そして Except

セルの 和集合を作成する Application.Union と 積集合を作成する Application.Intersect っていうメソッドがあるのに、 差集合を作成するメソッドはありません。 Google で探しても見つからなかったので、 作ってみましたがいまいち用途がわかりません。だ…

hogehoge or die, hogehoge and die

続・初めてのPerlの(P.164)にあった書き方に、何故か凄く感動したのでメモ hogehoge or die; # hogehoge でなければ死亡 hogehoge and die; # hogehoge ならば死亡 あと、やっと bless の意味が分かってきた。 クラスとリファレンスを紐付けるって意味が良く…

気になる

ヘルプファイルをちょっとずつ読んでいて気になったこと。 if (expr, trueFunc, falseFunc); epxr.if(trueFunc, falseFunc); 上のような書き換えができる。 while 文でも同じに書き換えができる。 for 文も出来るが、2行目の書き方はいつ使うのかまったく不…

和音を出す

とりあえず、ここまでやった分で何か作ろうと思って和音をだすコードを書いた。 簡単なコードだけど、微妙なリズムも生まれてちょっと面白い。 ( f = { arg n = 5, freq = 440; Mix.fill( n, { arg index; var freqs = [ freq+index, (freq+index)*5/4, (fre…

Mix it Up

単純に音を重ねる場合は、 + 演算子で UGen を加算する。 { PinkNoise.ar( 0.2 ) + SinOsc.ar( 440, 0, 0.2 ) + Saw.ar( 660, 0.2 ) }.play また新しい UGen が出てきた。Saw はノコギリ波のクラス。 Mix クラスを使っても同じようにできる。 その場合は、足…

Presented in Living Stereo

SuperCollider では、とにかく配列が重要らしい。 とりあえず、配列の使い方は [ xxx, xxx, xxx ] という感じ。 var array = [ "foo", "bar" ]; array.at(0).postln; // 1番目の要素を表示 array[1].postln; // 同じこと array[2].postln; // nil エラーに…

むむ

ヘルプファイルを色々見ていて気づいた、 今読んでいる Getting Started With SC は最初に読むやつじゃないのかも、、 でも、どういう順番で読んだらいいのか良く分からんなー。 まあいいけど、とりあえず続きを読もう。

And What About Functions and Sound?

単純なサイン派を再生するコード { SinOsc.ar( 440, 0, 0.5 ) }.play;これでローカルサーバから音が出る。 明示的にサーバを指定していない時は、グローバル変数 s で指定しているサーバを使う。 s にはデフォルトでローカルサーバが格納されているから、こ…

Functions and Other Functionality

初めての音出し。 { [SinOsc.ar(440, 0, 0.2), SinOsc.ar(442, 0, 0.2)] }.play;おお、サイン派がなった。 Not too inspiring? いや、感動したよ。 この例では、2つのサイン派を合成しているみたい。[ ]は配列だと思われる。 ショートカット Cmd + . 音を止…

Start Your Engines

localhost server の起動と停止 s.boot; s.quit;起動が成功するとステータスが "inactive" -> "booting" -> "running" になる。 s ってのは Server.local の略称っぽい。

First Steps

とりあえず、定番の Hello World から。 "Hello World".postln;でこの行にカーソルがある状態で enter 。 return ではなく enter 。 Hello World Hello World出力が2行でるのは、最後に評価された値が戻り値となるから、 最初の行が 文字列オブジェクト"Hel…