goo blog サービス終了のお知らせ 

まず持ってから

「もちつもたれつ」「ギブアンドテイク」でもいいんだけどまず”もって”から、つーことで

プログラミング雑誌

2007年08月11日 08時28分21秒 | プログラム
今こそ問われるプログラミング雑誌の価値

確かに確かにプログラミング系の雑誌は減ってきた気がする。本屋で見てみてもプログラミング雑誌・書籍は減ってきたかな?
自分の本棚を見てみると、開発系の雑誌で今年買ったものは

Interface ・・・ 定期購読
トランジスタ技術 ・・・ おまけの基盤につられて
エレキジャック ・・・ 趣味の電子工作
日経Linux ・・・ 付属CDが目的
日経ソフトウエア ・・・ おまけのVisualWorks目当て
Make ・・・ あのオライリーの電子工作本

まだ継続してる雑誌はこんなものか#雑誌じゃないものもあるけど定期的に新刊が出るから「雑誌」ってことで

去年、よく立ち読みしてたCマガジンが休刊になってから、「こりゃやばい」と思って買い始めた「WindowsDeveloperMagazine」も買い始めたと同時に休刊になっちゃうし、困ったものだ

こうしてみると、雑誌の「おまけ」につられて買ってるのが丸わかりで少し恥ずかしいなw、ってのは置いておいて、なぜ、Interface を今まで定期的に買っていて、他の雑誌を買っていない(or立ち読みで済ましていた)かを考えてみた。なんというか、記事を読んでいて、初めてはじめた頃の「ワクワク感」「よくわからんがなんかすげー」が感じられるかどうかで買うかどうかを決めているようだ。初心者向けの記事とか、新情報の報告記事でもいいけど、文章が上手な人に記事を書いてほしい。

で、人がいないのか?との疑問がわくが、元気そうに感じる雑誌は、日本が強いと言われる「組み込み系」の雑誌だし、休刊した雑誌はどちらもPC系の雑誌だし、確かに元気な現役層に向けた雑誌としては仕方ないのかも知れない。

書籍の分野でも日本人著者の本と外国人著者の本では技術書なのに外国人著者の本の方が読みやすい。そんな難しい分野でもないはずだし、最新の分野でもないはずなのに、ね(#翻訳の段階でレベルの低い本はフィルタリングされてるんだろうけど)

愚痴を言うだけだと寂しいので、本棚に並んでいる本の中から日本人著者の本で「ワクワク感」「よくわからんがなんかすげー」を感じた本を紹介:

CPUの創りかた
30日で出来る!OS自作入門

アキハバラもそうだし、日本人にはこの系統しか駄目なんだろうか・・・

Excelでソース解析

2007年08月04日 00時30分47秒 | プログラム
1000行くらいある関数を解析する必要が出た。

「1000行」ってところで推測できると思うけど、if や switch-case、#if なんかが入り組んでいて、かつ、それらの{}の対応範囲が100行くらい離れているものが多い。最初テキストエディタ(お気に入りはSakuraエディタ)の機能を使って解析してたけど行数が多すぎて頭が付いていけない。

そこで、ふと思いついたのが、「ExcelをOutlineツールのような使い方をして解析の手助けをさせれないか?」ってことです。そう思いついて試してみると、これが結構便利に使えることがわかった。

まず、問題の関数をコピペでExcelに持ってくる。Excelなんでtabがあるとうまく表示してくれなくなるので、事前にエディタ側でtabは空白に置き換えておく。
多重に入り組んでいるifなんかの{}対応は、{}の内側を行の非表示機能でつぶしていき、まず、全体の構成を把握しやすくしていく。これだけでも結構効果がある。
次にkeyとなる変数なんかを文字列の置換え機能を使って色をつけていく。置換え機能だけど、文字列の変更はない。あくまでもキーワードに色をつけて追いかけやすくするだけ。色が付いているとマウスのホイールで速くスクロールさせても見落としが少なくなる。

これだけで巨大関数の処理がかなり把握できた。ありがとうExcelさん。

開発環境によってはExcelがインストールされていないPCで開発する場面もあるだろうからOpenOfficeでも同じことができるか試してみないといけない。ちょうどUSBメモリで持ち運べるPortableOpenOffice環境をつくったのだし・・・

コピペと正規表現

2007年07月19日 22時19分35秒 | プログラム
1行1レコードの情報。各行はprintfか何かで整形し出力されているらしく、ある程度人間に読みやすい形でフォーマットされている。ただし、量があまりにも多く、読み手の希望する形の並びではない。また、希望する視点でみたら適度に乱雑な感じで並んでいている。
この中から希望するデータを望ましい並びで取得するために、いろいろ試行錯誤してみた。

1:cat hoge.txt | grep keyword1 | grep keyword2 >tmp1.txt
まず、こんなかんじで軽く絞り込み。でも単純なやり方だし、必要なデータまで消したら意味がないので keyword1, keyword2 での絞り込みは単純なものだけ。

2:tmp1.txt を開いてみて次の絞込み方法を考える。
必要なデータを含んでいない行をすべてでなくてもいいので正規表現で表せないか試してみる。いらない行の一部はある正規表現を含む文字列で表せる事を確認し、その行を表す文字列(正規表現つき)を空白行へ置き換え。

3:1,2をある程度繰り返し、ある程度のデータの絞込みを行う。
4:sort を使って希望するデータ並びに整形する。

本当はこういうことは sed/awk を使ってやるのが正しいんでしょうが、途中経過を確認しながら次の方法をその都度考えないと、希望するデータの取得は私にはできませんでした(涙
それに、cygwin 上の sed/awk は日本語の正規表現に対応しているかどうか自信がなかったし・・・

#本当は4のsortのところはExcelのシートへコピペしてからやろうと思っていたのは秘密だw

ICE

2007年07月18日 22時53分24秒 | プログラム
今日の午後はICEとにらめっこしながらバグ調査
バグは再現するのだが原因がよくわからない・・・
どうもメモリが知らないうちに解放されているらしい

ここまで不具合の原因が分かっていればICEのデバッガをつかって調べられるはずなのですが、どうも感覚的にVC(VisualStadio)のIDEのイメージで操作しようとするので調査が止まってしまう。やっぱり開発環境としては優秀なのね>>VC