2019年02月18日(月)

あれ?

関数のリファレンスを直していたら、

  • 仮引数の説明
  • 返値の説明
  • サンプルコード
  • 注意点

などがないことに違和感を感じた。 love2d のときは、そういうのが書いてあって、英語ができない人でもわかりやすかったと思う。でも、 Ring の取扱説明書には、そういう配慮がない。そして、引数名を書き換えてしまうとシンタックスハイライトは無効になってしまうんで、下手に直せない。

やれやれ。これでは章立ての見直しだけではなく、加筆修正の工数は大幅に増えてしまう(おそらく、数千箇所の加筆)。現行の取扱説明書を対象にした作業は、今月末か来月末に打ち切ったほうが良さそうだな。

まったく

ドキュメントを書くのは責任が重いのは痛感した。翻訳した人が酷い目に遭うような質の悪いものを書いてはダメだな。

誤字脱字や誤植って、一個直すのに何分かかるんだい? それがまとまると一週間、一ヶ月も抜け出せない。説明が足りない記事を使えるものに仕上げるのに何十分、何日、下手すりゃ数ヶ月かかるんだい?

ドキュメントの質が悪いせいで、ユーザーは再検証や内部解析など本来しなくていいことをしなければならなくなり、不愉快になる。結果として、どんなに素質があっても広まるわけがない。その質の悪いもののせいで、あなたの製品は目新しさで最初は評価されるが、次第に人気が落ちてしまう。

また、ドキュメントを補間する目的で用意した大量のソースコードは、大抵読まれないことが多い。ドキュメントは大量のソースコードの要約として扱われる。ほとんどの人はソースコードを読んで理解しようとしない。説明書を読みながら、あるいは説明書だけで理解を進めようとする人が多いのだろう(Ring の場合、Quorum 言語みたいに、 ウェブ版の REPL を説明書に組み込んで、その場で試せる工夫も必要かもしれない)。ソースコードを読んで欲しいなら、ドキュメントでポインターと解説を示して、ちゃんと読んでいただく配慮をしないと誰も読まない。

ソフトウェアのバグは直せるものが多い。だけど、ドキュメントは修正しやすく、気をつけて書こうとしなければ簡単には直せないものになってしまう。

2019年02月17日(日)

重複箇所を探す その01

faq.txt

  • 「Lisp と Smalltalk よりも Ring を使用する利点?」の「新しいプログラミング言語を設計するとき〜」を「第三のプログラミングは必要か?」の「自然言語」関連部分に整理統合(前半は Ring と Python へ整理統合)。

use は使用する…ではない。辞書に載ってない。

校閲していて、気づいたが、 use は単なる接続詞(〜は、〜で、〜により)に置き換えられるんだよね。 そして、使用するだけではなく「実行する、実用、用意する、実装」するって意味もある。動詞のくせに結構用途は広いんだよな。便利っちゃあ便利なんだけど、曖昧すぎて訳すのに気を使う。

ネイティブできちんとモノカキしたなら use ではなく prepare, execute など動詞をしっかり使い分けるんだろうけど (love2d のときもそうだけど、そうでもないな)。

何年やっても翻訳は難しいね。五年以上経験しても、まだまだだねぇ。

2019年02月16日(土)

章立ての改善案

やはりバランスが悪いので章立てを考え直す。 んー。独りよがりだな。読み手のことを考える構成は大事。

いま考えていることは、

  • 「画期的」「実用性」「アプリケーション開発期間の短縮」の前書き、そして「なぜ第三のプログラミング言語 (YAPL) が必要なのですか?」を「言語設計」へ移動 (後日書き直して統合)。
  • リンクの活用による記事の圧縮 (言及済みに対して適用。なぜか英語版ではしていない...)
  • 「FetchStockData アプリケーション~本書のサンプル」は独立・整理して新章「ショーケース」を作る。
  • 「Ring の評判」「Matz への心よりの感謝」は独立・整理して新章「評判と謝辞」を作る (いっぱいほめられたいし、いっぱい感謝したいだろう...)。
  • Ring vs Hoge 言語の比較本数の削減。はっきりいって読みづらくなるし、比較や貶されるのを嫌う人も多いだろう。いらない敵をつくっている暇はない。残すなら、比較表で語れ。
  • FAQ の削減。これが品質を悪くしている。 Ring 1.6 以降で FAQ は更新されていない。だったら、いらないものは削除すればいい。読みたい人は過去のバージョンの取扱説明書を読むだけでいいのだからね。
  • 目次の整理 (数十回も PageDown 押すのは疲れてしまう。さらに記事の校閲もしづらくて、見通しも悪く、誤字脱字も増えてしまう)
  • 一太郎2019を導入して、文章校正・校閲機能を活用する (要約機能も使う)。

なるべく重複を削り、加筆修正しやすく、さらに変更に強くて読みやすくする方針です。ある程度、完成してきたら英語版にも修正 (誤字脱字の修正も併せて) を適用する予定ですが、確約するものではありません。

いまは章立ての整理と再配置の第一段階です。第二段階は粒度の調整ですね。第三段階で分冊化。今のままですと、ハードコピー(製本)もページ数が多すぎて高額になってしまいます。

原著の問題点

  • 言っちゃあ悪いが、書きすぎて手を付けられないのではないか?
  • 作表で csv-table 使いなよ。タブで作表は非効率だな。
  • 印刷したものを You のおばあちゃんに読ませて理解できるかって自信ある? おばあちゃんにとって、数千ページもある説明書は、ばーるのやうなものだな。プログラミングできたらいいなを潰してしまう。数の暴力は悲しいな。
  • 今のままでは、普及されるためにまともな品質の訳書を仕上げて出版物や技術書系同人イベントに持ち込んでも、ページが多すぎるので買ってはくれないだろうな。普及するためには、独りよがりではモノを書いてはダメだね。
  • OASYS 2002 の英文法チェッカーを通したところ、読みやすさは高難易度の判定。読めたものではないのかもしれない。

ある程度、直し終えたら捨てたほうがいいのかもね。

2019年02月15日(金)

オンライン版の更新

最新版(2019 年02月14日 - Aikoku-station)を公開しました。Ring ノートパッド日本語版のスクリーンショット作成が間に合いませんので、今回は一枚のみです。作成しだいアップロード予定です。

次回更新内容

  • 各種修正作業
  • whatisnew の削除 (最新版のみ掲載)
  • ringapps の Ring の評判を圧縮、または別章として独立 (そうしなくては、重複箇所などの書き直しはできないし、読みづらい)

などの破壊的変更を段階的に行っていきます。

2019年02月14日(金)

Ring - 校正地獄

誤字脱字・誤植は殲滅しました。手元にあるものでは、ほとんど残っていないと思います。しばらく寝かせて再確認の予定です。

ちなみに Ring 1.7 と 1.10 の翻訳を比較すると、修正箇所適用だけで 2404 箇所ありました。んー。少ない。一万箇所くらいあるかと思っていたのですが、これが今の私の索敵限界ですかね 。rz

次は校閲(言い回しや表現、誤訳の修正)ですが、これも数ヶ月。そもそもドキュメントの粒度が荒く、検索しづらく、記述の重複も多い。章立てもダメで読みやすさを考えていない。現状、時間の都合もありますので、直すだけ無駄のような。直したら大改修になってしまいます。

とりあえず、近いうちにオンライン版の更新をして反映します。

2019年02月10日

MikTeX

Windows xp で動く最終バージョンを Windows 10 にインストールすると TCP関連のエラーを吐いてしまいパッケージのインストールすらできない体たらく。しかたないので v2.9.6942 をダウンロードしているところです。バージョン番号からしてロックだぜ(が、飲み過ぎで二日酔いになりそうだネ)。

いや、それより、これ〆切間に合うんかね...。これができないと、こっちのプロジェクトで Sphinx 使って pdf 版の取扱説明書を配布するときに困るんだが。

Ring と愚痴

日本語化キット(テスト版) を公開しました。

公開後に判明した不具合については、後日修正差分を出して Ring 関連の活動から撤退となります。数ヶ月後にアンインストールするのでサポートもできなくなると思います。

一応、入門講座の連載を考え直してはみたものの、おそらく考えているダウンロード件数には達しないと考えています。

しかし、そこまでやらないと評価されないのはおかしい。そうしないといけないと思いこんでいる時点でおかしい。それをしても、きりがない。

これでは何度壊れても挫折してもしかたない。連載の執筆はうちの仕事ではないんだ。いや、対価もらってないので仕事でもない。

しかし...あと何百回、何千回。オープンソース翻訳で失敗すればいいのだろうかねえ。周りには話のわかる奴がいないんで相談すらできず、自分のしたいことを我慢に我慢を続け、努力地獄に陥って、笑われて八つ当たりされてバカにされ続け、リリースしたら、いっつもこの酷い有様だな。

もう、さ。 俺の足を引っ張るのやめてくれっていいたくなるよ。歩けなくなっちまう。

もう、あんたにくれてやる足は無い。だから足を引っ張るな。なんでこんなことがわからない人が多いのだろうな。

2019年02月07日

輪島行き

あともう少しで Ring は終わらせることができそうです。ただ、不幸なことに我慢ならない嫌なことが続いてしまい(今日は resource.dat の誤植)、もう Ring 関連の活動は続ける自信が無くなりました。もう、彼らのために頑張れないなあと痛感しました。その原因は皆さんが Ring に対して感じていることであると同じだと思います。

特に嫌になったのは、誤字脱字の放置に限らず Quotes about Ring の更新ばかり頻繁にするのに、ほかは疎かにし続ける姿勢です。その余裕があれば、サンプルアプリケーションを作り込む、ドキュメントを読みやすくするとか、サンプルコードが足りない関数を使いやすくする、エラッタを減らすなどもっとほかの部分の改訂をしていただきたい。 自信とは他者からの高評価を集めることで生まれるのではなく、平凡でつまらない、くだらないことや行動と結果を積み重ねた自負だと思いますが...。

他人の評価に酔ってはいけないと思います。

あとはサイトの更新と日本語化パックの公開で Ring から撤退させていただきます。あとは皆さんにお任せします。おそらく、嫌気が差す人が多いかもしれませんが。

Ring のキャンセルの影響

  • こっちのプロジェクトに戻ってくることができます。
  • Ring よりも遥かにソフトウェアやドキュメント品質の高いオープンソース関連の翻訳を開始できます。みんなが欲しいのは、こっちなのかもしれません。
  • Ring の動画チュートリアルの字幕翻訳はキャンセルとなります。
  • 当方で予定していた Ring 入門記事(数年間)の連載は全てキャンセルとなります。信じてあげて我慢して連載しようとしていましたが、もう頑張れません。
  • 以降、最新版が公開されても日本語更新版は公開されません。サイトは残りますが、誤訳やバグがあっても修正されません。日本語化キットも同じです。
  • 大量のシバンムシ(誤字脱字、誤植、誤設定)に悩まされなくなります。最近、ずっと悪夢ばかり見ていていましたが、これで悩まされなくなります。

作業終了後に引き継ぎたいかたはライセンスに従いご自由にどうぞ。ただし、Github や WinMerge で変更差分追っていると、そっちじゃないだろって、かなり嫌になると思います。大量の誤字脱字を気にしないズボラさんでないと付き合いきれないと思います。

復帰は?

何度も挫折しては戻ってきているとはいえ、撤退です。当面は考えていません。あえて言うなら、 再び翻訳するに値するものになったときとしましょう。

追記

記事統合作業で、過去に他で書いた記事を、こちらにもってきています。 Ring の日本語訳作業は三月までの予定は変わりません。

2019年01月27日

Ring 1.10 関連作業

翻訳は残り一章。月末に出せるかな。 可能であれば、ローカライズ対応の日本語非公式 のLTS 版作って今年のRing 関連活動は終了の予定。あるいは、日本語でソースコード記述して、きちんと文字列処理ができるライブラリを作ったら終わりかな。

日本語で記述できるからといって拡張機能が使いこなせない壁にぶつかるのは明白だしなあ。日本語で記述できるから簡単なわけではないのよね。

正直、いまは Racket や Julia のほうに興味がある。 Ring は LTS にして年一回の更新でも誰も困らないような。

2019年1月25日

Ring 1.10 公開待ち

本日公開予定の正式版待ち。残り五章ぶん仮訳作業したら osdn に公開予定。ただし、オンライン版サイトの再公開は未定。

普段、使っているのはオフライン版でオンライン版は使ってない、いまの時点ではあまりいらないかな。もし、再開するなら DokuWiki などを使ったほうが良いかと存じます。

いや、本来の予定にないことで、気まぐれも本気になると恐ろしいところではあります。こんなはずじゃないのですが。

2019年01月20日

気まぐれ

Julia でうまく行かなかったときの保険として Ring 1.10-dev (2019-01-16) 向けの翻訳更新作業を、まあ始めています。続けるわけではなく、あくまで気まぐれ。

いまんとこ、 Julia ネイティブでのゲームプログラミングライブラリは整備状況が悪いのが難点かと。 もともと、機械学習や統計に強い言語なので、そういう技術を使ってお金儲けや開発・研究、発明をするのが本来の使い方なんじゃないかなと。

Ring ならバッテリーインクルーデッドなんで、フルパッケージ版のインストールをすればライブラリのバージョンを気にせず使えるのが楽かな。その反面、検索地獄。なにもないところから、生み出す。そういうのが嫌いな人多いよね。

いまんとこ、日本国内では Ring は知名度がないですが、 Julia は濃くて技術のある礼儀正しいコアユーザーが集まっているので、そういうのも魅力かな。

2019年02月06日

Ring/081 次回更新予定

10日頃にイベントがあれば、その帰りにサイト更新などができるよう調整中です。 Ring Notepad の日本語テスト版、ウェブサイトのリソースのページも邦訳完了したら公開予定です。

ただ、リソースのページは、スペルミスやら、リンク抜けなど散見されますし、ああいった長過ぎるリストはやはりダメです。 実際 200kb の html ファイル、760行もあるリンクリスト(検索機能なし)なんて、ユーザーのことんかまったく考えてないわけで。なんで講師や対象読者ごとにページを分けておかないんだ? ミスを出さない工夫をしてないような。例えばページを短くしておけば誤りを見つけやすいのに。

正直なところ文句言っても何も変わらないのはわかっているので、本音を言うのを我慢していました。しかし、こういった読み手を考えない設計、大量のスペルミス、さらに RingLibSDL 長期間誤記放置の件で Ring が嫌いになりそうです。

2019年02月05日

Ring Notepad 日本語版

Plugin Error: attach file not found: rnote_ja01.png

一通りローカライズを終えました。もうしばらくしたらテスト版を公開する予定です。

2019年02月04日

Ring 非公式ウェブサイト仮復帰

長らくお待たせいたしました。本日をもちまして osdn へ非公式日本語サイトを復帰させました。 これで簡単には消せなくなります。

ウェブサイト

んー...3GB の通信容量契約で 100MB 使うのってはキツイんですが、楽しんでいただいたり、喜んでいただければ幸いかと思います...。

今後の貞子リターンズラブの予定

ライブラリ関連の翻訳と言われましても、

  • Allegro, LibUV は訳書がない。
  • SDL は完訳もあるし、ウェブや解説書も割とある。ただし、 Ring の理解できない仕様であるデスクトップでは SDL が使えず Allegro しか使えないのは修正したほうがいい (共有ライブラリはあるんですが、なぜかドキュメントでは使えないとの記述がある)。
  • OpenGL は解説書、ウェブ記事は豊富にある。いずれも Ring 用ではない。説明書の完訳もなし。
  • Qt は解説書やウェブ記事があるけど、公式説明書の完訳はない (膨大過ぎて翻訳するって規模ではない)。

んー。何処まで貢献すればいいんでしょうかね。

今後、需要などを考慮して日本語フォーラムやチュートリアルなどを用意するかもしれません。本来なら、 Ring だけの翻訳で足りるんですが。国内のオープンソース翻訳は慢性的に参加者が足りませんので、あるべきはずのライブラリ関連の訳書がないのは致し方ないところです。

RingSDL

Windows XP で「RingLibSDL の使用方法 - 長方形の描画」を試したところ、正常に動作しました。どうやら、ドキュメントの記述が古いままのようです。が、なぜそのままなのか、再調査、聞いてみないとわからないですね。

まあ、あの人は一度書いたら、まったくといって修正しないんで、内容が古かったり間違っていたりスペルミスが異様に多いのですよね。

また、修正しやすくするための仕組みも作ってない (Github の設定、 SSHキーの生成と登録に限らずフォーラムへの投稿も心理的障壁と思っている人も結構いるんじゃないかと) から指摘する人はほとんどいないのも、まあ。

自分だけわかっていても、文書化して説明できなければ、それはわかっているとは言えない。という人もいるわけで。さて、どうしたものか。

RingLibSDL の調査

あの記述が、どのバージョンまで有効かどうか調べなくては修正のしようがない。

  • Ring 1.1 から対応開始です。
  • libsdl.txt の最終更新日は? 最終更新日は 2016å¹´11月30日。 それ以降は更新されていない。
  • フルパッケージ版で sdl2*.dll が導入されたのはいつ? 1.5 のダウンロードページでは RingSDL は Android 専用との記述があるので、おそらく 1.6 以降で例の記述は無効になったと思われる。

結論として、例の記述は削除して問題ないと判断します。

ただ、使えるのに、使えないと書いたらダメですよ。ドキュメントの品質は重要なんですよ。つまらないことで信用をなくしたり評判を落とさないため、恥をかかない、怒りや失望を買わないためにもね。

2019年02月01日

貞子 ver1.10

ここ数日、激務ってほどでもないんですが、

  • Ring Notepad のローカライズ
  • Form Designer のローカライズ
  • Find In Files のローカライズ
  • RingREPL のローカライズ
  • 非公式日本語版ウェブサイトの改訳
  • 英語版取扱説明書のスペルミスリスト作成(合計70件以上...orz) - expect と except の誤記も治ってなかった気がする。
  • Windows XP で正常にインストールできないバグの対策 (7zip のバグ)。

とかやって寝るのが夜更けが二日続いています。三日目以降もありまして、

  • applications フォルダ
  • Ring Notepad で複数言語の CHM ヘルプファイル対応 (英語版、日本語版)
  • 取扱説明書 : 日本語版 pdf版の作成 (TeXLive)
  • コンソールツールのローカライズ
  • 各種フォルダにある readme.md 翻訳
  • OSDN 側のシェル環境
  • bin/translations/qt_ja.qm のローカライズ (予定)

などが残ってます。非公式サイト公開後に成果を公開していく予定です。

Racket の事前調査

Racket は...翻訳の事前準備として *.rktd ファイルの行数を調べてみたら80万行 (空行を除いても40万行) と大規模です。

lovel2d のときは 15 〜 30 万行の XML ファイルなので、だいたい三倍くらいです。普通に機械翻訳通して辞書引いてキーボード叩いて仮訳作っていたのでは間に合いませんね。このくらいの規模となると個人が一人でこなすには、バージョン固定して翻訳するにも数年必要ですね。

Racket 訳さないで使う代わりに Julia を訳すのも、ありといえばありですが。

2019年02月01日

Ring 1.10 日本語版非公式ウェブサイトの再開準備

予定にないことですが、とりあえずがっかりしているひとがいるんじゃないかと思って作業中です。今度は OSDN へ移行するので、そう簡単にはなくならないでしょう。

再公開は速ければ今月3日の午後、または今月中とします。ただし、公開後の更新については、あまりできないものとします。また、 ver.1.6 〜 1.8 までの説明書については、オンライン公開は作業を負担軽減の観点、サイト容量の問題から再公開はしません (1.0 〜 1.5 および 1.9 の翻訳もしません)。

また、わかりやすさの観点から説明書とダウンロードのリンクではプルダウンメニューの使用はできず、過去のバージョンについてもダウンロードのリンクから外す予定です。

次の翻訳

さっき Jancy の翻訳再開と書いたが、冷静に考え直して取り消した。C/C++ 互換で資料には困らないから、悪かぁないんだが。どうなんだろうな。 Racket で開発して Chicken Scheme へ移植して C へ変換・コンパイルの手もあるが。あるいは picoLISP で生活するのも悪くはない。

ただ、去年から放置したままの OpenEuphoria, Gideros の翻訳の完成や、 love2d の翻訳も徹底的に改訂もしたいという気もある(最近、すこし翻訳が上達してきた実感もある)。が、時間がなあ。

株や FX、統計、機械学習やるんなら Julia を選ぶが、趣味として楽しむなら Racket も捨てがたいな。キャラメル弁当の件も絡んでいるから、簡単には決まらない。

かと、いって。Ring はなあ。やっぱり重い。ローエンド環境での検証はしてないんだろうなあ。どうやっても一行で全角六十万字(ビッグデータを扱うときや、いまのモノカキなら珍しい水準でもないような)のシフトJISテキストを配列変換するのに、ありえないくらい遅いし、起動に 16 秒もかかる Ring Notepad には幻滅している。特異点を越えるか、物量主義者の変人が現れない限り、まだ使えるものになるには時間がかかりそう。もちろん、機会を提供していただいたので、翻訳が上達してきたことには感謝しているが。その影でがっかりている人もたくさんいるんよね。

うん。んー。なんだろう。例えるなら、いまの Ring は野生のメロン(肩パッド、いやエレキバン。だっだーん)だと思って、突進したら成形されたシリコンプレートのガチ胸板OPYマウスパッド(薄い本)だったがっかり感がね。バブル期かよ。

追記

  • Julia の抱えているライブラリ不足は翻訳が進めば解決すると期待できるなら、このまま進めるのもありだ。
  • Racket でも標準で機械学習ライブラリは利用

可能。実行速度の問題はコアの書き換えが完了したときに改善すると思う。

  • Racket のドキュメント規模は 3000 ページ代(完訳まで数年)。 Julia のほうが小さい。
  • 気のせいか C FFI は Racket のほうが構造体に限って言えば、直感的みたい。 Julia のは Euphoria なんかと似ていて、少し慣れないとわかりづらいかもしれない。

どっちの翻訳をすれば、世のため人のためになるんだい? 例えば Julia は新薬開発のシミュレーションに使われている話は聞いたことがないが、もし完訳されたら、数年後日本で新薬がされる未来もあり得るかもしれないね。風呂敷広げてピロシキかい。

  • 新薬開発用のシミュレーションプログラム開発用としての Julia はまだ始まったばかり。

自分の気持に正直になるなら

  • キャラメル弁当の開発には Racket だろう。ライセンスは LGPL なんだが、オープンソースプロジェクトで使うぶんには問題はない。どうしてもライセンス問題を解決したいなら完成後に他の処理系(Julia も対象)へ移植すればいい。
  • もちろん、翻訳しない選択肢もある。必要とされていないものに対する投資をしても、それは実務経験として扱われるものでもないな。
  • ただし、今回は新技法導入につき翻訳しない選択肢が使えないが。並行作業かつ数カ月に分割してすべて完成させるのは? かなり苦しい思いをするし、色々我慢しなくては実現は難しい。が、失うものも壊すものも得るものも多い。

Jancy 翻訳再開

いまのところ、開発言語として最善と本気で思えるものがないので、暫定として C/C++ 系スクリプト言語である Jancy を選ぶことにします。仮訳完了予定は四月下旬とします。

本作業は、あくまで予定であり、予告なく中止する場合があります。ご了承ください。

Jancy 公式サイト

2019年01月31日

Ring のいいところ。

  • 最初からデスクトップ、モバイルアプリケーション用の開発ライブラリが最初から揃っている(機械学習関連を除く)。バージョン違うんでインストールできないなどの依存性で悩まなくていい。
  • 数日で基本部分の習得ができる。
  • 優秀なコアデベロッパー
  • 割と早い時期から日本語ドキュメントがある。
  • 柔軟なシンタックスがあるんで不毛なケンカしなくていい。

Ring の苦手なところ

  • 時折、よくわからない一般的認識の通用しないところがある。あれ、正しいコード書いたのに。
  • 自画自賛の傾向があって、そっちじゃねーよって思うことがヤッパリある。ポジティブ頑固職人気質?
  • 優秀なプログラマーはいるけど、ライターやデザイナー、広報、校閲者、翻訳者がいない。足りないなら、自前ではなく、ちゃんと育てるなり、募集しようよ。 国内外のオープンソース参加するのもありだし。
  • 広報活動には消極的なんで、日本だけではなく英語圏の大手メディアでは見かけない。

人たり練馬大根。うん。

2019年01月29日

Ring のダメなところ

まず、マニュアル。未だに三年前からあるスペルミスを修正していない。 LibreOffice Writer でスペル修正するだけのことなのに。 次に、マニュアル自体、リファレンスとして足りないところが多すぎる。重複も多いんじゃないかな。

Complete Documentation といっても、誰にとって完璧なのかな? 過去に痛い経験したから言うとソースコード読めってのはモノの説明の仕方として一番最低だよね。

この説明書の致命的欠陥のひとつだけど、関数リストだけ掲載でそれ以外なし。

おまけに、RingLibSDL の酷い誤記のせいで Ring でのゲームプログラミングを諦めた人も多いんじゃないか?

公式ウェブサイトのリソースに掲載されている動画を視聴しろったって、アラビア語と英語のリスニングと書き起こしができる人がいるかっていうと、わりとオープンソース翻訳者ではニッチだし、そこまでしたいと思う人が少ない。

そんなことをされても、どう使えと思っている人多いんじゃないかな? ロゼッタコードへのリンク載せてないよね? 最初、拡張機能の開発関連の章を読んだとき「マクロ、関数」のリストだけで、説明や返値、サンプルコードといったものがなく、これでは使う人いないよなあ。

そもそも、カリキュラムもコースもない。型がないやん。

自画自賛は結構だけど Qt どう使うん? SDL2 は? サンプルとロゼッタコード読め? それ何処? え? ょぅべっ見ろ? いや通信制限だし、英語、アラビア語、クリンゴン語わかんない? クグレ粕漬け? C/C++ のコードを Ring で書き直して? えー質問は英語? はぁ? 簡単って嘘じゃん? プンスカ。

ってのが世界のどこかで繰り返されているんだろね。んー。これでは、いくらウチが頑張っても無理だわ。壁は簡単には壊せない。んなんじゃ流行んないわな。

プログラミング言語の実力ってさ、ライブラリの豊富さだけではなく、健全なコミュニティ、充実したドキュメントも魅力なんよ。コミュニティーに 学歴厨やら Ruby 厨みたいな悪質なヤツがいないことも当然だし、コミュニティーが開発協力しやすい、続けやすい環境を用意することも重要だね。

とまあ、最低でも、学習手順の手引きみたいなものが説明書には必要だな。サンプルソースがあってもポインターを示してやらんと読まない人のほうが多いよ。そんなつまらない、もしかしたら違うかも、取るに足りない、くだらないことの積み重ねが、だんだん良くなるためのコツかもしれないね。

まあ、ウェブサイトで初中上級とわけているが、今の人は短気だから、あそこまでスクロールして読む人いないよな。

ウェブサイトもなんとかしないとなあ。あれって読む人のこと考えた設計とは言えない。あれで、面倒くさいとなってダウンロードとインストールへたどり着けない人多いんじゃないかな?

人間、自画自賛が嫌い、あるいは違和感を人って結構いるんですわな。

第二に、 PWCT は未だにマルチバイト文字が扱えない。「へぇおもしれえー→なんだ日本語使えないじゃん」ってなるよね。なんで未だに直さないのかな? さらに言うと、 Ring への対応いつ? え? ない?

第三に、異常系の対策やエラー処理が甘い。ちょっと変な書き方をすると異常終了する。こういうのが潰しきれていないので、下手をするとセキュリティホールになりかねない。あり得ない組み合わせのコードを記述したユニットテストが必要だな。

今日見つけたバグだと ring2exe は故意に libs フォルダを削除してしまうと言語側のエラーを吐いて落ちてしまう。普通、フォルダがないエラーを提示して安全に終了するのがセオリーだけど、ソースコード読んだら、ディレクトリ確認して安全に落とすコードがない。

フォームデザイナもね。外部エディタで読み込んだフォームファイルをフォームデザイナで読み込んだあとに保存するとファイルのロック見てないから落ちるっていうへっぽこ致命的バグがあってガッカリする。

おい、なんでやねん。ありえへんわ。

うん、怖いなあ。 おまけに修正したり原因特定するのに時間浪費するし、それができないだけで言語へ悪い印象持たれるかもしれないな。

だから、こういうのを面倒くさいで放置していると、いつの間にか修正することすら忘れて、見えないところで余所様に迷惑をかけたり、時間を使わせたり、嫌われたり、怒らせるんよ。

もう、こういうのが多くてやんなっちゃう。

働き過ぎは嫌われるが、モノグサも嫌われるが。

だから、趣味として作っている言語から抜け出せず世界取れないんじゃないかな。

うん。

もちろん、資料不足はウチで数年をかけてなんとかできるが(多国語対応)、書いている間は全額自腹だからな。覚悟と失敗しても損失を最小限にする必要だがある。

お金の件を我慢して、何が得られるのか、その後得たものは仕事などにつながるのか? 多くの人が幸せになるのか? いまんとこ、それを回収できる見込みが全くないって見立てだな。 そこまで阿保になれない。

もちろん、それをすれば引き上げ効果(?)が起きて、結果として人間性、技能や機材などの改善につながるのは経験済みではあるが、そのぶん失うものも大きいわけで。

なお、説明書のアップロードが終わったら Ring 関連はしばらく記事として扱わない予定です。ドキュメントの更新も以後未定とします。ウチみたいなうるさいヤツは Ring から消えたほうがいいでしょうからね。

うん。愚痴。

Ring 1.10 の説明書翻訳は終わったのですが、アップロードしようとしたら通信制限で失敗。

かといって Windows 版のフルパッケージをダウンロードしてローカライズを再開しようにも、通信制限でダウンロードに失敗する(GitHub や SourceForge はリジュームダウンロードが使えない)。ネットカフェがない、ソフトバンクエアはエリア外、コンビニのフリースポットは遅すぎて使い物にならない。

やっぱり、通信環境の貧弱な所はいやだね。こんなんだから、いくらいいものを探してきても、何度翻訳しても大成しないわけか。周囲も高齢者ばかりだし、本業として翻訳者をするにしても、この地域では需要もコネもないな。

もちろん、腐っている場合ではないがね。

2019年01月10日

Ring の近況

今月25日に 1.10 を公開予定とは言うものの、んー。望んだものではない。このまま使い続けるには役不足なのは直らないか。

例えば、ファイルの属性、容量やタイムスタンプを取得するための関数が標準では提供されていない。文字列処理関数が弱い(trim 関数がタブを処理してくれない)、配列の検索には正規表現が使えないなど、どこかしら足りないのよね。そういう足りない機能は Qt 使え、ディスカッションフォーラム読め、サンプルソース読めって方針だから、大抵ココでコケる。 Qtはライセンスの関係で使えない現場があるんよ。で、自前でライブラリ作ろうにも Ring のソースコード読めとなって「おれは Ring をハックしたいんじゃない。ましてや C/C++ なんかで消耗したくはない。なにをしているのだ。目の前のソフトを作りたい」になるわな。

Ring で使用されている技術や信念は、誰でも一度は考えるが実現に至ってないんです。それを実現したのはすごいんだけど、それを皆が欲しがるものにできてないのが、今後の課題かな。正直、趣味で作っている言語から抜け出せていないんだな。

そろそろ Ring は初版(2016年1月25日)から今年で三年目なんだけどなあ。今ひとつ足りない。発展はしてほしいけど、そこまで付き合えるかといえば、ちょっと。

それにワープロ専用機のクローンは早めに作らなくては実機の寿命が心配だしな。

もちろん、開発して頂いたことは感謝している。何年かかっても移植に失敗していた自作ソフトが Ring なら移植できている。

ウチにとっては Ring に関わったのは失敗だけど、皆さんにとっては成功に変わってくれたらいいとは思います。

Ring のサポートを打ち切る理由

ファイルの読み込み遅いし、UTF-8 使うのに、使い辛く大袈裟な RingQt 使うか自前でライブラリ組まないと使えないんですよね。正直、ユーザーインターフェイスと同じくプログラミング言語の設計もモードレスであるべきだと思うんですよ。ユーザーに余計な再発明をさせない、文字コードなど環境依存性を意識させない。けど、 Ring はそうではない。なんでもかんでも足りない機能はサードのライブラリ頼み。ようするにツギハギだらけなんですよね。言語の習得は一週間あればできるが、そこから先は綱渡り。どうすりゃいいんだよ。

んー。自由構文で日本語プログラミングができるから Ring を選んだが、この一年からすれば、まったく意味がなかった。ちゃんと整備して日本語で書けるからといって今でもワープロ専用機のヘビーユーザー層(五十代以降)が、ソースコード読んで自分が使っている機種と同じ動作になるように改造できるか? というと、百人いたら数人しかないかな。うん。その時点で失敗。

もちろん、できないひとの味方をしてもなにもできないし生まれない。単にそういう人は問題の解決ではなく、単に構って欲しい地獄の住人かな。そういう人と付き合うのは外道だから謹んだほうが良いんですよね。もちろん、こっちも悪くて勝手な想像や思い込み、やるだけ無駄な思いやり、他人の技能の過剰評価など間違った想定をしても失敗するだけですからね。

Ring に関して意欲をなくしています。単文節変換器の試作完了まで、しばらくはつかいますけど、しばらくしたら他の言語へ移行します。

Ring ではなく Nim か Julia を選んでおけばよかったなと後悔。

2018年05月27日(土)

オフライン版の提供予定

Ring の邦訳説明書のオンライン版は下記のサイトにて提供予定です (2018年06月公開予定)。

ユーザー名に greenwing は使えなかったので適当 Ring のドキュメントから選びました。特に他意はありません。 公開方針はサイト容量 (100MB) の関係で最新版のみとさせていただきます。

Ring ドキュメントのビルド方法

https://github.com/ring-lang/ring/blob/master/docs/README.md の邦訳です。 オンラインのビルド方法になるので、オフラインでの手順では Spiinx のパッケージをダウンロードしてインストールする必要があります。これについては「sphinx オフライン インストール」などで検索を行ってください。

参考:


このフォルダには、プログラミング言語 Ring の取扱説明書が納められています (Sphinx を使用して作成しました)。

(1) Python 2.7 をインストールします。

(2) https://bootstrap.pypa.io/get-pip.py をダウンロードします。

(3) python get-pip.py を実行します。

(4) pip install sphinx==1.3.1 を実行します。

(5) pygments lexer を使用するには、 ring.py を C:\Python27\Lib\site-packages\pygments\lexersへコピーします。

(6) その後に python _mapping.py を実行します。

(7) CHM ファイルを作成するには Microsoft Help Workshop を使用します: https://www.microsoft.com/en-us/download/details.aspx?id=21138

(8) PDF ファイルを作成するには、 Lyx (https://www.lyx.org/Download) および MiKTEX (https://miktex.org/download) を使用します。


追記

目のほうは少し良くなったので、今のうちに (ムスカ談)。 最初から 午後のロードショーの録画やらセルDVD再生される運命なのでムスカには同情するところです。エンドレスバルス。

さて、Windows 環境下でオフライン版のインストールは少し面倒です。 書いてある意味を理解できないならばオンライン版のインストールを行ってください。

  • コマンドプロンプトを開いて 、次のコマンドを実行します。
cd C:¥Program Files¥Sphinx¥eggs¥pygments-2.0.2-py2.7.egg¥pygments¥lexers"

copy "C:¥ring¥docs¥pygments_lexer¥ring.py .

..¥..¥..¥..¥python¥python.exe _mapping.py

以上で Sphinx の設定は完了します。次に、

c:¥ring¥docs
make html

補足 - 下記の警告は無視してかまいません (または conf.py を修正すれば問題ありません)。

WARNING: intersphinx inventory 'https://docs.python.org/' not fechable ~
 → ネット接続をしていないので当然出る。

WARNING: Inline emphasis start-string without end-string.
 → アスタリスクのエスケープをしていないのでエラーになる。いまのところ無視しても構わない。

これで html 版の生成が行われます。 epub 版については下記の修正が必要です。

  • source/languagedesign.txt の 524行目を下記の通りに修正します (大文字のままの拡張子は警告になります)。
    .. image:: visualsrc2.jpg
    
  • Ring の配布アーカイブから /ring/build/html/_static フォルダを c:Â¥ringÂ¥docsÂ¥source へコピーします。

以上の修正を適用してから make epub を実行すれば ./build/epub/に ring.epub 作成されます。生成されたものは html 版を単純に変換したものなので、まともなものに仕上げるには別途修正が必要です。

そのほかの形式については make help を参考にしてください。

※この情報は 2018年05月時点のものです。予告無く変更される場合があります。ご了解ください。

追記 (2019年02月04日)

現行版の MikTeX は Windows XP ではインストールできませんが、幸い旧版のアーカイブが残っていたので、運が良ければ pdf 版を生成できるようです。

入手先は下記のリンクを参照してください。

  • Please give a link to MiKTeX 2.9 for Windows XP - TeX - LaTeX Stack Exchange

https://tex.stackexchange.com/questions/424572/please-give-a-link-to-miktex-2-9-for-windows-xp

このほかに GNU make が必要ですので、別途ご用意ください。

追記(2019年10月3日)

Windows 7以降 (64bit)では Program Files を Program Files (x86) へ読み替えてください。また、管理者権限でコマンドプロンプト(またはConEmu)を開かないと正常に ring.py の導入ができません。

可能であれば、Sphinx, Ring 関連フォルダにパスを通しておくと、後々の作業が楽になります。