« 2006年6月8日

2006年6月10日の投稿

2006年6月11日 »

ディスクを整理していたら、11年前に書いた awk スクリプトが出てきた。ギターのコード名を入力すると、そのコードフォームや構成音が表示される。コードブック代わりに使おうと思っていた。

当時、フォークギターからジャズギターへ転向しようと考えており、ローコードだけでなくハイポジションでの、6,5,4弦にルート音を持つ各ギターコードと、テンションの位置を勉強していた。

Jazzでは、例えば、メジャーコードは、1,3,5 度の音だけでなくM7と6と9、ドミナントコードは、1,3,5,b7 に加えて b9, 9, #9, #11, b13, 13 もテンションとして許される。それらを、キャラクタベースのCUIで表示するプログラムだ。通常のロックやフォークのコードではなく、自分のアドリブのインサイド音やテンション感を養成するために作った。例えば、Cの4弦ルートだと、こんなキャラクタを吐く。

      D 型フォーム4弦ベース

       度数                     フォーム                  音名
  10f                      10f                      10f
--9+---+--3+---+---+     --9+---+--*+---+---+     --D+---+--E+---+---+
--6+---+-M7+--R+---+     --6+---+-M7+--*+---+     --A+---+--B+--C+---+
---+---+--5+---+---+     ---+---+--*+---+---+     ---+---+--G+---+---+
--R+---+---+---+---+     --*+---+---+---+---+     --C+---+---+---+---+
(5)+---+---+---+---+     (5)+---+---+---+---+     --G+---+---+---+---+
---+---+---+---+---+     ---+---+---+---+---+     ---+---+---+---+---+

プログラムとして今見ると(末尾添付)、split を使った見やすい初期設定、データ設定関数、仮引数を使ったローカル変数、などいくつか工夫されているなー、と思い出す。awk には関数ローカル変数がないが、仮引数はローカルである。そこで、ローカル名前空間を実現するために仮引数をローカル変数として使う。そして、本当の仮引数とローカル変数はタブで区切る、というコンベンションだ。そして、当時としては、関数名は「かなり長い」部類に入ると思う。ぼくは UNIX が好きな割には、長い名前を付ける方が好きだった。

awk スクリプトとしては、ぼくが書いた一番長いものかもしれない。現在はLL流行であり、Ruby, Perl, Python などがよく使われているけど、ぼくのホームスクリプト言語は、awk/sed/bsh だ。当時、~/bin の下に毎日1つずつ、"Myコマンド"をためて行ったように思う。

ちなみに、JUDE の開発でぼくがコードを書いたときは、ユニットテストを Python (正確には、JPython、今の Jython) で書いた。そのころは、JUnitは存在せず、テストはスクリプトで書くのが「正しい」ことのように思えたから。製品コードは固く、テストコードは軽く、柔らかく、が生産性が高いように思えた。ぼくが最初に書いた雑誌記事は、「Java オブジェクトを操作するスクリプト言語」というDDJJ(DDJの日本語版-翔泳社が出していた)の記事。そこでも、Python, Pnuts(戸松さん作), Tcl/Tk などで Java のオブジェクトを操作する方法を書いている。Ruby では、そのころ前田修吾さんの、Demi があった。今でも、ここに記事がある。

「Java オブジェクトを操作するスクリプト言語」http://www.objectclub.jp/technicaldoc/java/scripting-java

このプログラムは、名前が泣かせる。コードビュー(chordview)。当時、無くなりかけていた codeview というデバッガへのオマージュ。

史料保存の意味で、以下に全コードをペーストしておこう。540行だ。このコードは、古い awk では動かない。nawk と gawk で動作を確認してる。chmod +x してそのまま実行(#! /bin/gawk -f が使える場合)、もしくは、

> gawk -f chordview

である。以下にコード。

» 続きを読む

平鍋

« 2006年6月8日

2006年6月10日の投稿

2006年6月11日 »

» このブログのTOP

» オルタナティブ・ブログTOP



プロフィール

平鍋 健児

平鍋 健児

株式会社チェンジビジョン代表取締役社長、永和システムマネジメント副社長。
オブジェクト指向開発、UMLの勘所、アジャイルな開発手法の未来、マインドマップのソフトウェア開発での利用方法、プロジェクトファシリテーション(見える化)を語ります。現在、マインドマップとUMLの融合エディタ、astah*(アスター、旧JUDE)を開発中。

詳しいプロフィール

Special

- PR -
最近のトラックバック
カレンダー
2013年4月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
hiranabe
Special オルタナトーク

仕事が嫌になった時、どう立ち直ったのですか?

カテゴリー
エンタープライズ・ピックアップ

news094.gif 顧客に“ワォ!”という体験を提供――ザッポスに学ぶ企業文化の確立
単に商品を届けるだけでなく、サービスを通じて“ワォ!”という驚きの体験を届けることを目指している。ザッポスのWebサイトには、顧客からの感謝と賞賛があふれており、きわめて高い顧客満足を実現している。(12/17)

news094.gif ちょっとした対話が成長を助ける――上司と部下が話すとき互いに学び合う
上司や先輩の背中を見て、仕事を学べ――。このように言う人がいるが、実際どのようにして学べばいいのだろうか。よく分からない人に、3つの事例を紹介しよう。(12/11)

news094.gif 悩んだときの、自己啓発書の触れ方
「自己啓発書は説教臭いから嫌い」という人もいるだろう。でも読めば元気になる本もあるので、一方的に否定するのはもったいない。今回は、悩んだときの自己啓発書の読み方を紹介しよう。(12/5)

news094.gif 考えるべきは得意なものは何かではなく、お客さまが高く評価するものは何か
自社製品と競合製品を比べた場合、自社製品が選ばれるのは価格や機能が主ではない。いかに顧客の価値を向上させることができるかが重要なポイントになる。(11/21)

news094.gif なんて素敵にフェイスブック
夏から秋にかけて行った「誠 ビジネスショートショート大賞」。吉岡編集長賞を受賞した作品が、山口陽平(応募時ペンネーム:修治)さんの「なんて素敵にフェイスブック」です。平安時代、塀に文章を書くことで交流していた貴族。「塀(へい)に嘯(うそぶ)く」ところから、それを「フェイスブック」と呼んだとか。(11/16)

news094.gif 部下を叱る2つのポイント
叱るのは難しい。上司だって人間だ、言いづらいことを言うのには勇気がいるもの。役割だと割り切り、叱ってはみたものの、部下がむっとしたら自分も嫌な気分になる。そんな時に気をつけたいポイントが2つある。(11/14)

news094.gif 第6回 幸せの創造こそ、ビジネスの使命
会社は何のために存在するのでしょうか。私の考えはシンプルです。人間のすべての営みは、幸せになるためのものです――。2012年11月発売予定の斉藤徹氏の新著「BE ソーシャル!」から、「はじめに」および、第1章「そして世界は透明になった」を6回に分けてお送りする。(11/8)

オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。


サイトマップ | 利用規約 | プライバシーポリシー | 広告案内 | お問い合わせ