ルギア君の戯言

雑多な記事。

な(でし)こ + Linux

  • この試みは本家とは何の関係もありません。
  • このページの情報は古く、何の意味もありません。
  • ルギア君は日本語でプログラミングできる「おもちゃ言語・Dragon Script」を開発中ですが、なでしことは異なる言語構造を持たせる予定なので、なでしことは互換性がなくなる予定です。
  • 「Dragon Script」の開発を行うため、「なこりなっくす」の開発は「Dragon Script」の開発へ移行します。
  • 詳しくはこの記事の Masaya さんのコメントに対するルギア君の返信をご覧ください。
  • Dragon Script のライセンスは GPL を予定しています。
  • なでしこ は完全ではありませんが、wine を使うことで Linux 上でも動かすことができます。

Dragon Script の議論は↓で行えます。

ルギア君の開発日記は閉鎖予定(正確には移転だが目処は立ってない)です。






Google グループ

Dragon Script Group
このグループにアクセス

このグループに参加する









Google グループ
Dragon Script Groupに参加
メール:

このグループにアクセス

過去の本文

なでしこのスクリプトを Linux 上で動作させる「なこりなっくす」でも開発してみようかなぁと思っているのだが、これはあくまでも挑戦なので挫折する可能性があr(散れ


なでしこのソースコードは Pascal (Delphi)であるので、この Linux 版用に改造するなどということはせず、あらたに C++ を用いて書き直します。
*1

問題点

  1. 文字コード
    • なでしこ内部は Unicode を採用したが、スクリプトはいまだに Shift-JIS が使われている。
    • Linux では内部コードもスクリプトも Unicode (UTF-8) を使用予定なので、移す場合は文字コード変換が必要。
    • UTF-8 を使用すると良いことは多いが、古い Linux では動かない。(EUC-JP 使用)
  2. 改行コード
    • 当然 Windows では CR + LF を使う。
    • Linux ではいまのところ LF の予定。
    • この Linux 版を Mac に移植できたとすると、Mac は改行コードが CR になるのでさらに問題にはなる。
      • ビルドしなおすだけでよいので本体側は回避可能。ただし、文字コード同様、スクリプト側は、変換が必要になる可能性あり。
      • Linux 版ではスクリプトの CR も改行とみなす予定。(というか、一度 UTF-16 に変換するので、CR は抹消される可能性あり)
  3. ディレクトリ関係
    • Konqueror からスクリプトを起動すると作業ディレクトリは ~ (ホームディレクトリ)になる。
      • Konqueror 本体の作業ディレクトリが ~ のため。
      • 作業ディレクトリをカレントディレクトリにすることは不可能ではない。(シミュレーションすることになるが)
    • Windows の場合外部 DLL がスクリプトディレクトリにあっても読み込まれるが、Linux ではライブラリを探すディレクトリにスクリプトのディレクトリは含まれていない
      • 手動で探すことは Linux でも可能。
    • POSIX による影響
      • 特になし。
  4. GUI関係
    • とりあえず、CUI 関係を作ることに特化したいので、今はあまり問題にはならない。
    • GTK vs. QT (vs. wine)
      • 一長一短。QTのほうがわかりやすい & Windows そっくりだが、コード量が多すぎる。
      • 当然 GTK はその逆。
      • wine-0.9.59 ではいまのところ、不具合があるが、wine のバージョンがあがると解決できる可能性あり。
    • くじら、わに、らいおん、ぺんぎん、・・・
      • いちおう実装できないことはないが・・・
      • 著作権。
    • カレンダーオブジェクト
      • wine はいまのところ、もっていない。
      • Gtk(Glib-2.12.12) には入っている。
      • Qt3 には入っていない。
      • Qt4 には入っている。
    • ブラウザオブジェクト
      • Qt3 には入っている。
      • Qt4 にも入っている。(実装方法は異なっている)
      • Gtk は実装が面倒。(firefox の機能を利用する)
      • wine は gecko browser をインストールする必要がある
      • (実はこれは Windows 上でも利用するのが難しい。なので、デフォルトで使えると言うのは非常に驚異的である。)
    • いろいろ見ると Qt のほうが有力かも
  5. その他
    • Windows でビルドした DLL は Linux では使えないので、Linux 用に作りなおすか Wine を使う必要がある
    • ネットワーク関係はどれが該当するライブラリか不明。
      • QT4 がネットワークライブラリをもっている
        • Qt4 のもっているネットワークライブラリは、http、ftp のみで、POP や SMTP は対応していない(というか Qt としては必要がない)
        • プロキシは対応している。
    • 当然一部の機能は使えない可能性大。
      • キー送信 (SCIM とおなじやり方でできるか?)
        • (SCIM はキー送信とはまったく異なる機構であることがわかった)
      • MS Office 連携 (OpenOffice と連携する?)
        • OpenOffice 連携ももともとはいっている。
      • MIDI 関係 (デフォルトドライバを jack *2にする?)
      • ファイルコピーや圧縮などはコマンド実行でよいか? (cp, tar + gzip ・・・)
        • コピーは POSIX 関数があるが・・・
        • 許可属性の変更ができないのはユーティリティとして不便か
          • こっちで独自にあらたに機能を追加すると本家で対応できない。
        • ファイルのパスは / \ ともに使えるようにします。
          • これも本家では / に対応していない可能性あり。
      • MS Agent 関係 (Linux にも読み上げソフトはあるが日本語はどうかな・・・)
        • 下の方を参照。
      • レジストリ関係 (どこに保存するか)
        • ~/.nako/registory/registory_path/ ?
      • ドライブ情報 (df -a (-h) を解析する方向でよいか)
      • データベースは OpenOffice Base でよいか。MySQL や PostgreSQL が使えた方がよいか
        • OpenOffice 連携ができるので、Base はとりあえずいれる。
        • 本家ではいちおう SQLite 2 が対応している。
          • SQLite 2 の使用は Linux では奨励されていない*3
          • 本家のなでしこが出力した SQLite のデータベースファイルは読み込めなかった
        • SQLite 3 をデフォルトにし、オプションで MySQL、PostgreSQL、SQLite 2 をつかえるようにする。
    • shebang が使えたら便利かな。( (意識された可能性はあるが)都合よく#で始まる行はコメントになっている。)
      • shebang を読み取って CUI / GUI 切り替えを行うことができる
    • AquesTalk という規則音声合成プラグインが付いているが、MS Agent との違いが不明。
      • 下の方を参照。
    • テキスト音楽「さくら」*4のライブラリも付いているがそこまで実装する気力はない
      • がんばるんだ!!!(意味不
    • デフォルトを CUI にするか GUI にするか
      • Windows がデフォルトが GUI だが、それは CUI が人気ないため。
    • コンパイルして実行形式にする価値があるか
    • 書き方をおなじまま別物にする手もある。
    • おなじ構成でよいか
    • デラックス版にしかない機能を入れるか (材料はある)
    • まだまだいっぱい

協力者募集

条件は以下の通り。
条件を満たしていれば、誰でも。

  • C++が書ける人
    • できれば、STL が扱える方がよい (主に文字列処理になるので)
  • 英語が読める人 (QT4 の ドキュメントは 未訳。)
    • QT4 マスターしているなら、英語読めなくても良いですけど・・・
  • Linux が使える人
    • ディストリビューションは問いません。Momonga だろうが、(K)Ubuntu だろうが、Mandriva だろうが、RedHat だろうがなんでも。
    • CVS の知識 (下記参照) Cervisia が使えればそれで良いのでそこまでは言いません。


本や辞書を見ながらできる程度で構いません(実際僕もそうです)。


もし希望者がいらっしゃるならコメント欄にその旨をお書きください。
ファイルの交換は Sourceforge の CVS レポジトリを利用して行わなければなりませんので、Sourceforge.jp (net は不可)のアカウントが必要です。


いらっしゃるようでしたら、Sourceforge にプロジェクト申請を行いますので、現時点ではプロジェクトは存在しません。


配布時の注意点

  1. ライセンスは QPL の予定です。
    • GPL との違いは以下の通り。
      1. GPL はソースの改変可能。QPLは不可能。
    • つまり、QPL は以下の場合に再配布が可能です。
      1. 一切の変更なしでの再配布
      2. コンパイルし、ビルドした上での再配布
      3. パッチを作成し、それを添付しての再配布


注: http://www.nslabs.jp/qpl-annotated-ja.rhtml を参考にしました。日本語訳にしろ、僕の解釈にしろ、間違っている可能性がありますので、念のため、英語のものをご確認ください。


もともとのなでしこのソースコードのライセンスは LGPL です。
なでしこ本体のライセンスはクジラ飛行机さんが独自に作成したものです。

音声合成ライブラリ

リーのものもある(ただし日本語は対応していないものが多い。)

*1:Pascal のコンパイラは適当なものが Linux には存在しません。

*2:[d:id:lugia:20080419] 参照。dssi を入れるだけでは鳴らないが・・・

*3:管理用ソフトのメッセージより。

*4:クジラ飛行机氏作。