Category Archives: 開発

tree.hh

0
Filed under 開発

気まぐれ日記より.

tree.hh: an STL-like C++ tree class

これは便利そうです.STL互換な所が最高.

最近はツールを書く機会がめっきりと減ってしまい,書くコードと言えば小さなシェーダとかスクリプトばかりですが,いつか試してみたいと思います.

(…と言いつつ棚上げされている物が沢山ある気がする…)

エディタ

2
Filed under 開発

コードを書く人間たるもの,必ず一度は話題にした事があるでしょう.

ちなみに自分はVim派です.

うちの会社で周りを見た感じでは,Vimは少数派みたい.

closure

0
Filed under 開発

“closure(クロージャ)”という概念を最近知りました.

なるほど,スコープの実行環境(スタックフレーム?)に関数内からアクセスできるような仕組みの事なのですね.

勉強の為に読んだウェブサイトの多くには,C/C++にはクロージャが無いと書かれていました.

状態を保持できる関数という意味では,関数オブジェクトやクラスと同じなのではないかと思いますが,大きな違いはそれが無名であるという事,動的に適応できるという点なのだと思います.

なかなか興味深い仕組みだとは思いますが,まだきちんと理解していないせいか,実践的な場面が思い浮かびません.

Pythonなんかだと出来そうですから,日常使うような処理の中で見つかると良いんですが.

XMLファイル – 2

0
Filed under 開発

早速やってみたのですが,ハマりました.

どうも腑に落ちないので,ちょっと書いてみようと思います.

次のようなXMLファイルがあるとします.

<elem1>
  <elem2>
  </elem2>
</elem1>

このファイルを二つコピーして,test1.xml,test2.xmlとします.中身は全く同じ物です.

これを以下のようにしてparseすると,test1.xmlは平気なんですが,test2.xmlの処理中にエラーが出てしまいます.

files = ['test1.xml', 'test2.xml']
psr = xml.parsers.expat.ParserCreate()
for f in files:
    file = open(f, 'r')
    psr.ParseFile(file)
    file.close()

ところが,以下だと平気なんです.

files = ['test1.xml', 'test2.xml']
for f in files:
    psr = xml.parsers.expat.ParserCreate()
    file = open(f, 'r')
    psr.ParseFile(file)
    file.close()

どうも納得行かないので,PerlのXML::Parserで同じXMLファイルをforeach内で読ませてみた所,エラーは出ませんでした.

parserオブジェクトを毎回作るなんてやりたくないんですけど,使い方が間違っているのでしょうか?それとも単にモジュールのバグなんでしょうか?

XMLファイル

0
Filed under 開発

仕事でXMLファイルを扱わなければならなくなりました.

自分はこういう方面の知識があまり無いのですが,実はパイプランの随所でXMLファイルが使用されており,それぞれのデパートメントの糊付け役を担っている事が多いのです.

そのうちやらないといけないだろうと思っていたし,良い機会ですから,アプリケーションからのXMLファイルの扱い方を少し勉強してみようと思います.

とりあえずはスクリプトから触れれば十分そうですので,Pythonの標準ライブラリにあるxml.parsers.expat,xml.sax辺りから始めてみます.