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

「抽象度の高いフローチャート」という考え方

世の中、ネタとして取り上げると時として大変なことになる話題が幾つもあって、フローチャートも微妙にその1つだと思うのだけど、あえて取り上げてみようと思った。思ったのだけど面倒なので「微妙にフローチャート的なもの」の話にしようと思う。その前に、…

テキストファイルをソートする

テキストファイルをソートしたくなった時、どうすればよいのだろうか?最近vimのC/C++用辞書ファイルを昇順にソートした。辞書ファイルにはC/C++のキーワードが450個ぐらい書いてある。キーワードは改行で区切られているので、1行に1単語だ。最初に思いつく…

MIDI端子はまだまだ不滅?:YAMAHA UX-16

RolandのSC-88ProにはMIDIの入力端子としてシリアルの端子しか用意されていない。もう何年も前からPCにシリアルポートもパラレルポートも付いていないことが大半なので、どうやって接続しようか迷うことになる。購入したSC-88Proも当面はシリアルポートの付…

MIDIの音色でピアノといえばヤマハなのです:YAMAHA MU2000

Roland SC-88Proは予算の兼ね合いで購入した2台目のMIDI音源だ。ではもう1台は何か?YAMAHA MU2000だ。実はDTMとは縁のない生活を送ってきたにも関わらずYAMAHAの音源モジュールとは何かしら関係がある人生を歩んでいる*1。最初に買ったPCの音源がYAMAHA YMF…

あゝあこがれのMIDI音源:Roland SC-88Pro

昨年から仕事の都合でMIDIの楽曲を延々と聴く機会が増えた。Windows標準のMicrosoft GS Wavetable SW Synthの音に耐えられず、TiMidity++ DriverやYAMAHA XG WDM SoftSynthesizerを使っていたのだが、ここでふと「ソフトウェアMIDI音源の将来ってあるのだろ…

構造化プログラミングを知らない子供たち

それは私のことですがな*1。サイエンス社から『構造化プログラミング』の日本語訳が出版されたのが1975年で*2、それから30年以上経つ訳だけど、計算機科学とかソフトウェア工学とかそういった類の正規の教育を受けていないプログラマの中で構造化プログラミ…

なぜ関数を作るのか? 手続き型言語における自作関数の役割についてのメモ

最近、「関数を作る理由が分かりません。教えてください」と急に話を振られたらどうしよう、と訳もなく不安に駆られるので、個人的見解をまとめてみることにした。急に話を振られる可能性があるかというと、正直分からないのだけど、急に話を振られた時にア…

alias万歳。doskeyは微妙。

シェルのalias機能が好きだ*1。シェルといっても普段はWindows上でbashやtcshを使っているのだけど、例えばlsにはaliasでオプションを付けている。特に「--show-control-chars」が無いと8bitキャラクタの情報が無視されてしまい、日本語のファイル名が表示さ…

OCamlのソースからWindowsネイティブな実行ファイルを生成する(Native MS版バイナリで)

これは備忘録。Objective Camlで書いたソースコードは、 ocamlで使用する。 ocamlcでバイトコードにコンパイルして使用する。 ocamloptでネイティブなオブジェクトファイルにコンパイルしたり、実行ファイルにしたりする。 などの使い方ができるはずなんだけ…

購入品リスト(後で書く)

ANSI Common Lisp (スタンダードテキスト)作者: ポールグレアム,Paul Graham,久野雅樹,須賀哲夫出版社/メーカー: ピアソンエデュケーション発売日: 2002/08メディア: 単行本購入: 1人 クリック: 102回この商品を含むブログ (68件) を見る

処理系導入コストのみ考慮した場合の入門向け?プログラミング言語ベスト5(PC-UNIX編)

今回もタイトルは微妙に偽ったままにて候。id:eel3:20090511:1242037501 と全く同じノリで、今度はPC-UNIXを主眼に考えてみた。PC-UNIXといってもLinuxの比較的メジャーなディストリビューションかFreeBSDぐらいしか使ったことがないので、色々と偏っている…

購入品リスト(後で書く)

COMMON LISP 第2版作者: Guy L.Steele Jr.,井田昌之,川合進,川辺治之,佐治信之,塩田英二,田中啓介,元吉文男,湯浦克彦,六条範俊出版社/メーカー: 共立出版発売日: 1992/06/10メディア: 単行本購入: 3人 クリック: 70回この商品を含むブログ (16件) を見るLion…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む)

流行に半歩遅れで飛びついてみた。 よく使っている AWK (gawk) 自作ツール実装に使っている。シェルスクリプトやmakeと組み合わせて使うことも多い。 C++ 時々お仕事で使う。最近はツール自作時にbetter Cとして使うこともある。というかSTLって(Cの標準ラ…

処理系導入コストのみ考慮した場合の入門向け?プログラミング言語ベスト5

このタイトルは微妙に偽っていると思う。いわゆる入門向けプログラミング言語のキーワードに「簡単さ」が挙げられることが多いと思っているのだけど、「本当に多いのか」とか「『簡単さ』を挙げることが適切か」とかはこの文章には関係ないのでスルーしてお…

MinGWにおける単一のCソースファイルからのアプリのビルドを省力化する

id:eel3:20090422:1240404222 と微妙に絡んでくる話。日頃からMinGWには大変お世話になっている。というかVisual C++をインストールしてあるのに、MinGWばかり使っているのは微妙かもしれない。 警告レベル最大でコンパイルして警告の有無をチェックするのに…

C++スタイルの1行コメントをCスタイルのコメントに変換する

これは備忘録。新人研修でC言語で課題プログラムを書かせているので、ソースが提出されたら、 ソースをエディタで開く。 MinGWで警告レベル最大でビルドする。警告が出たら該当箇所のソースを見る*1。 動かしてみる。 同時にソースを眺める。 気が向いたら時…

固定長テキストデータを読み込む

どう書く?orgを眺めていて、固定長テキストデータを読み込む方法の問題を見つけた。試しに書いてみたけど、アカウントを持っていないし、何より2008/03頃のお題なので今さら投稿するのも微妙なのでここに晒しておく。特徴はこんな感じ。 使用言語はC言語。 …

クロージャの使い所についてのメモ

自分自身のクロージャの捉え方が正常値の範囲内であるか確認する為、何か書いて晒してみるテスト。具体的には、JScriptで小ツールを実装している時にクロージャを使ってみた話。WSH(Windows Script Host)5.6でJScriptを使っているので、その環境に依存した…

Exuberant CtagsのJavaScript解析能力を向上させたので、それをvimのtaglist.vimに適用してみた

id:eel3:20090326:1238028321 の続編。コードを書く時は基本的にvim派*1なので、関数などのオブジェクトを一覧表示してくれるtaglist.vimを愛用している。taglist.vimは背後でExuberant Ctagsを使っているので、ctagsの解析能力が向上すれば関数一覧に表示さ…

手持ちのExuberant Ctagsが対応している言語を調べるだけの裏技っぽい何か

正攻法なら「--list-languages」を使う。 D:\temp>ctags --list-languages Asm Asp Awk Basic BETA C C++ C# Cobol Eiffel Erlang Fortran HTML Java JavaScript Lisp Lua Make Pascal Perl PHP Python REXX Ruby Scheme Sh SLang SML SQL Tcl Vera Verilog …

gcovのログファイルをマージするツールを拾った && 手直しした

Cで書いたコードの単体テストにgcovを使っている。gcovは*.gcovなログファイルを出力するのだけど、そのログファイルにはどの行を何回実行したか/未実行の行はどこかが表示されていて、非常に便利だ。ただ、手元で使っていて1つだけ不便な点が生じてきた。g…

ツールに振り回されて時間を費やした

vimのtaglist.vimを使っていて、背後で動いているctagsのJavaScript解析機能を向上させようとしたらうまくいかなくて、試行錯誤して時間を消費。 一応、解析能力の向上には成功。 vimでJScriptなツールを書いたり修正したりするが少し楽になった。 gcovが吐…

Exuberant CtagsのJavaScript解析能力を微妙に向上させた

よそ様で既出のネタだけど書く。今更ながら id:m-hiyama:20080627:1214549228 を見て、JavaScriptでプロパティに関数を定義する書き方をすると、ノーマルなctagsではその関数へのタグが生成されないことに気づいた。実際にExuberant Ctags 5.7J1で試してみた…

コマンドプロンプトから色々な処理系でワンライナーしてみた

使えるツールは多いほうが都合が良いかもしれない、ということで。 ActivePerl 5.8.8.817 MSWin32-x86-multi-thread a、-F、-i、-n、-pあたりと組み合わせると便利そう。特に-nと-pを使うとawkのように使えるみたい。だけどperlは使わないのでよく分からない…

Pentium IIIなサブPCをIntel Atom 330で低額で改修してみた

接触編 サブPCにubuntuを入れてネット用に使っていたのだけど、Firefoxで複数のタブを開いて使用していると意外と重いし、最近DVDマルチドライブのトレーが開かないので*1、いい加減そろそろ改修の時期なのかなあと最近考えていた。多分サブPCは古い部類に入…

言語固有の「良い書き方」はどうやって学ぶのが効率的なんだろう?

暫く前*1にJScriptのコードを書いたこともあり、気になっていたのでこの本を購入してみた。JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス作者: Douglas Crockford,水野貴明出版社/メーカー: オライリージャパン発売日: 2008/12/22メ…

SRFI-1のiotaっぽいものをCommon Lispで書き直してみた(その3)

id:eel3:20090307:1236401934 のCommon Lisp版の自作iotaにはSchemeっぽさが残っているというか、Common Lispっぽさが足りていないと思う。Schemeは末尾再帰の最適化が仕様に含まれているけどCommon Lispでは含まれていない、というのは有名な話で、だから末…

SRFI-1のiotaっぽいものをCommon Lispで書き直してみた(その2)

id:eel3:20090125:1232892677 で自作iotaをCommon Lispで書き直したまま放置状態だったのを思い出したので、勉強を兼ねて修正することにした。まずドキュメント文字列を追加することにした。中身はインチキ英語。SRFIは仕様というかドキュメントなので、「SR…

久しぶりに本屋で本を買った

最近は本はネットで買うばかりだったのだけど、久しぶりに本屋に足を運んでみた。まあ専門書の類が充実している本屋って限られてくるからなあ。気になっていたこの本を見つけたので購入。Code Reading―オープンソースから学ぶソフトウェア開発技法作者: トッ…

Windows標準の電卓アプリを意地でも使わない(その3)

id:eel3:20090301:1235909263 や id:eel3:20090302:1235922399 で書いた方法は、さくっと簡単に計算する場合に向いている。でも色々と試行錯誤しながら計算する場合は対話型のツールの方が使いやすいと思う。対話的に計算するツールで昔からあるものといえば…