Re: Mind Map / Free Mind
河野真治 @ 琉球大学情報工学です。
FreeMind のファイルフォーマットをいじって、自分のいつも使っ
ているテキスト形式に相互変換しようとしてます。2週間ぐらい前
にやって敗れさってました。昨日、一昨日と、飲み屋さんで「先生、
なにやってるの?」とか言われながら変換プログラム書いて、一応、
動きました。
FreeMind の何があほかって文章に改行が入れられないこと。<html>
にして<br>入れるってのをようやっと発見。MS-DOSな文化とか西欧
文化だと改行は入れないのが普通なのか?
Unicodeの変換とかは NKF.pm があるんで楽勝。PerlのUnicodeの機
能は、iconv とかと同じで入出力コードを指定しないといけないの
で、ちょっと使いづらいんだよね。vim とかは、iconv に受け入れ
るコードを順に食わしてチェックなんてことをやっているらしいが...
とはいえ、自分のPCの内部コード(っていうのか?)を全部、Unicode
にして、もはや問題ない。問題は、むしろ、大学にある時代遅れの
Vine Linux なんだよな。
ただ、UTF-16って2byte目に0Aが入るのね。0Aは、Perl の正規表現
の.にデフォルトでマッチしないってのがあるので、ちょっとはま
りました。s option で回避。
で、引っかかったのは<node.../>と<node...></node>の区別。混合
されているとは気づきませんでした。普通、後者で統一だろ? あと、
ID="Freemind_Link_1690494718" という謎のID。最初は、それで落
されているのかと思って、思わず、ソースを確認にいきましたよ。
grep Freemind_Link **/*.java
とかで一発で見つかりましたが(zsh 偉大)、
freemind/modes/LinkRegistryAdapter.java:
returnValue = "Freemind_Link_" +
Integer.toString(ran.nextInt(2000000000));
なんじゃ、そりゃ。結局、付けなくてもいいってことが判明。そん
なものファイルに吐き出すんじゃね〜 好意的に取れば、セキュリ
ティかなんかに使いたかったのかも知れないが、Hash も計算して
んだから、まったく不要なものだよな... もちろん、この後で「乱
数だから衝突しているかどうかをcontainsKey()で調べる」なんて
ことをやっているわけで...
うちの学生みたいなプログラミングするな〜
と思いました。これを含めて、作り方は微妙なソフトだ。でも、ID
なしフォーマットを受け付けるのは許せる。どんなにたこくても、
動くソフトは偉い。
ソース読んじゃったから、本体側に入れてもいいんだよな。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735