e-Gadget 開設10周年
2013年10月30日に始めた e-Gaget は、本日で10周年を迎えました。
興味を持って当ブログにお越しになる方々のおかげで、私のモチベーションが10年感維持できた結果です。
心からお礼を申し上げます。
▋10年前の 2013年はどんな年だった?
国内では、アベノミクスが動き出し1ドル100円台になり、失業率が4%以下に下がり始めました。
現在の日本の安全保障の一連の動きの起点になったと思われる特定秘密保護法が成立し、海外ではスノーデンがウィキリークスでNSAが収集した情報を暴露したのもこの年でした。
個人的な話になると、2013年当時に使っていたパソコンは、Panasonic Let's note R7 で Windows XP でした。Windows 8 も登場していましたが XP を使っていました。当時投稿した記事には、Let's note R7 が一部映り込んでいるものがあります。
2013年のカシオの電卓製品はどんなだったのか?
2013年8月の CASIO の電卓総合カタログを見てみます。
・スタンダード関数電卓は fx-995ES シリーズ と 廉価版の fx-290 があった。
・プログラム関数電卓は 2006年発売の fx-5800P があり、今も健在です。
・グラフ関数電卓は fx-CG20 と fx-9860GII、カラーとモノクロ液晶の両方が揃っていた。
▋この10年間の出来事
この10年間の e-Gadget での重要な話題です。
▍Casio Basic の完成度 - 当ブログ開始の理由
完成度の高い fx-5800P 搭載の Casio Basic がなくては、当ブログは始まりませんでした。この Casio Basic は fx-5800P と fx-9860G が発売された2006年にほぼ完成の域に達しています。単なる計算の補助機能であれば、SHARP製電卓にもありましたが、Casio Basic は実用プログラムが作れるレベルの完成度でした。しかし取扱説明書には簡潔過ぎる説明しか記載されていないので、詳細を調べて探索しようという気持ちになり、それを記録するために当ブログを始めました。
さらに 2006年以降に国内外で市場投入されたグラフ関数電卓にも、モデルによらずほぼ互換の Casio Basic が搭載されているのも、当ブログが継続できた大きな理由です。
▍素因数分解プログラム - 個人的プロジェクト
スタンダード関数電卓 に素因数分解機能が fx-995ES に初めて搭載されたことから、素因数分解プログラムを fx-5800P で初めて作ったのも 2013年のことでした。その後、高速化できるアルゴリズムを見つけて採用することで4倍程度の高速化が実現し、さらにアドイン版Casio basic - C.Basic や Pythonモード (Casio Python) が登場したことで、関数電卓内蔵の素因数分解よりも高速動作するプログラムができたのが 2021年でした。そこそこの熱量を投じた個人的プロジェクトが完成したのでした。とても個人的な話題ですが、以下に挙げる事柄がなかったら、このプロジェクトは完成していません。
⇒ Casio 関数電卓の素因数分解
▍fx-5800P のPCリンクが実現 - CcLinker と CcEditor
fx-5800P は関数電卓の使いやすさと Casio Basic 開発環境としてのバランスが非常に良いモデルです。残念ながら 2026年には補修部品の提供が終了される可能性がありますが、それでも 2006年発売開始から20年のも長きにわたって販売を継続するるのは、このモデルの良さを表していると思います。
しかし、このモデルには大きな欠点がありました。作ったプログラムを PCとリンクする方法がCASIOから提供されていないのです。
2018年に takumako様が fx-5800P と PCでプログラムソースを共有できるPCリンクシステム - CcLinker - を公開され、現在でもドングルの有償提供とソフトウェアの無償提供を続けてくださっています。併せて、PC上で Casio Basic プログラムを編集/作成できる - CcEditor - も無償公開されています。
⇒ ついに fx-5800P がPCリンク可能になった
⇒ fx-5800P Casio Basic をPCでコーディング - CcEditor
takumako様は、他の電卓モデルとのPCリンク手段を提供なさっています。
⇒ Takumakoのページ
素因数分解の高速化検討を進めるとき、数百~数万個のリスト要素を記述する必要がありました。そこで、PC上で C# を使ってリスト要素を自動生成し、それを fx-5800P に転送しなくてはなりません。
今あるプログラムを fx-5800P からPCに転送 ⇒ CcEditor でリスト要素を貼り付ける ⇒ CcLinker で fx-5800P に転送しなおす
この一連の作業を行うには、CcEditor と CcLinker なしでは実現しないのです。
当ブログでサンプルプログラムや実用プログラムを数多く作成してきており、fx-5800P のメモリ内に収まり切りません。PCリンク機能なしだと プログラム保存のためだけに fx-5800P を複数台購入する必要があります。実際3台所有していますが、CcLinker に出会ってからは買い増す必要がなくなりました。
▍アドイン版Casio Basic - C.Basic の誕生と進展
10周年記念として C.Basic 誕生秘話を紹介します。
▶ C.Basic 誕生秘話
最初は グラフ関数電卓 fx-9860GII で走らせる Casio Basic プログラムで、画面の中に障害物を置いて、それに1ドット(虫) がぶつかって反射する軌跡を表示するといったものを記事にしました。そして、画面全体を千鳥格子で埋め尽くすためには、どのように障害物をおけば良いのかということに興味を持ち、「障害物を構成する最小のドット数とその配置位置」を問う問題を発表しました。管理人自身も正解を知らない状況での設問でした。この問題の答えとして、障害物の最小ドット数が1ドット、これを置く場所は無限ではないが非常に多くあることが分かりました。2015年8月のことでした。
⇒ 楽屋裏 - 虫の軌跡(Bug Trace)
この問題を解くには、遅すぎる Casio Basic のグラフィックス表示をなんとかしようと、チューンアップツール (Ftune2) を使って高速化しましが、一方で、sentaro様が オリジナルプログラムと同じ動作をする高速なアドインプログラムを作ってくれました。
sentaro様作成のアドインのソースを見ると Casio Basic のコマンドの機能単位で関数を作っていることに気がつき、確認すると「アドインで Casio Basic を作る試み」だと分かり、Casio Basic 互換で高速動作するアドイン版 Casio Baisc への夢が猛烈に膨らみました。管理人は Casio Basic の詳細動作の解析と公表を行っていたので、細かい動作の評価と提案をすると sentaro様は直ちに反映してくれたものです。
2015年10月12日 にアドイン版 Casio Basic Ver 0.10 テスト版が登場!
最初はコンパイラ版を想定していましたが、まずはインターラプタ版でスタート。C.Basic 誕生の詳細は、楽屋裏 - 虫の軌跡(Bug Trace) のコメント欄に生の会話が残っています (超絶長いです)。
▶ C.Basic の進展
その後、アドイン版Casio Basic が C.Basic (ドット1つ) と銘々されました。将来できるかもしれないコンパイラ版は C:Basic (ドット2つ) にしようという話になっています。
C.Basic は モノクロ液晶搭載モデル (FXモデル) fx-9860G / fx-9860GII 専用として開発開始。その後 2017年11月に 高精細カラー液晶モデル (CGモデル) fx-CG10 / fx-CG20 専用 C.Basic の開発が始まりました。今では FXモデル と CGモデル の両方の開発が並行して進み、純正Casio Basic 互換に加えて、コマンドが拡張され、独自コマンドが追加されています。
時間は戻りますが、2015年11月に、C.Basic の計算処理とグラフィックス表示処理の高速性をアピールする目的で、サンプルプログラム - ライフゲーム - を作成。この時は FXモデル専用でした。ライフゲームで次世代状態を計算する部分を 専用コマンド化したところ、約7倍の高速化となりました。これは将来のコンパイラ版の高速性を示唆する結果だと考えています。
2021年6月には、CGモデル用 C.Basic の動作が安定してきたので、当時の C.Basic 最新バージョンで、fx-CG50 と fx-9750GIII でそれぞれ動作するライフゲームをアップデートしました。
⇒ ライフゲーム
現在も C.Basic の開発とサポートは継続中です (少しお休み期間がありました)。
⇒ アドイン Casio Basic - トップページ -
海外の Planet Casio ではプログラミングコンテストの開発環境の1つに C.Basic が選ばれ、すでに国際的に認知されています (CPC #26 - At the limit of pysics! 参照)。
※ 素因数分解の高速化と15桁ま対応 (既にCasio Python で書いたもの) を C.Basic に移植すると、Casio Python の2倍の速度となり、関数電卓内蔵よりも明確に高速になりました。
▍Pythonモード (Casio Python) の登場 - 高速処理系
2022年6月に、いくつかのグラフ電卓に Pythonモードが追加され、OSアップデートにより導入できました。その後2022年10月にグラフィックモジュール casioplot が追加され、ようやくそれなりのプログラムを作りやすくなりました。当ブログでは Pythonモードを Casio Python と呼んでいます。
Casio Basic プログラムを Casio Python に移植してみると Casio Python は純正Casio Basic に比べて圧倒的に処理速度が速いことに気づき、とても興味を持ちました、Python を使ったことが無かったのでですが、同種のオブジェクト指向プログラミング言語である C# に似ているので、割合楽に勉強できました。そこで、プログラミング経験者の Casio Python という位置づけで、勉強したことを紹介しながら作ったプログラムを記事で紹介しています。
リアルタイムの "キー入力検出機能" を提供するモジュールが提供されていない点は、実用プログラムやゲームを作るには致命的です。その後複数のアップデートが行われたものの、2023年10月29日現在では "キー入力検出機能" はまだ提供されていません。
一方、その大きな制限の中でオリジナルのモジュールを作成したり工夫をすることも面白く、いくつかのプログラムを作って公開しています。
⇒ Casio Python - 目次
※ 素因数分解をCasio Python で書いたところ、関数電卓の内蔵機能とほぼ同じ処理速度が得られました。
▋アクセスの推移
2013年10月30日以来10年間で、当ブログに来られる人が延べで 186,000 人を超え、ページビューは 586,000 ページを超えました。毎日のページビューは 100~400の間を行ったり来たりで、平均 250/日 といったところです。
有名ブログに比べると圧倒的に少ないアクセス数です。広告を一切せず、アフィリエイトや案件記事投稿を一切行わず、積極的にアクセスを増やすことを行っていないので、この程度になるのだと思います。当ブログは情報集約タイプなので、古い記事にも一定のアクセスがあるのが特徴だと思います。リピーター率、つまり一旦見つけたら戻ってきてくれるケースが 50~70% 程度あることも特徴かも知れません。
このゆっくりとした伸びは、"e-Gadget の認知度のゆっくりとした上昇" を素直に示しているのではないかと思っています。たまにエゴサーチをすると、当ブログを紹介したり引用してくださっているページを新たに見つけます。感謝しかありません。
⇒ Wikipedia - Casio Basic
▋これからの話題
カシオのスタンダード関数電卓の UI/UX が最近大きく変わりました。これは主に北米やヨーロッパの GAKUHAN (学販) マーケットの影響を反映している可能性があります。ここではその善し悪しについては触れませんが、この変化がグラフ関数電卓の新機種へどのような影響を与えるのか? 今はとても気になっています。
フランスでは24年(スクールイヤー) に併せて、グラフ関数電卓の新機種発売の情報がありますので、来年はプログラム電卓の歴史的に大きな変化に遭遇する可能性があり、目が離せません。
またそれに伴って Casio Basic が残るのか、Casio Python がどのように変化するのかに注目したいと思います。
応援クリックをお願いします。励みになるので...
keywords: プログラム電卓, Casio Basic, C.Basic, Casio Python, fx-5800P, fx-CG50, fx-9750GIII, fx-9860Gシリーズ
リンク集 | ブログ内マップ
- 関連記事
-
- e-Gadget Portal - いつもトップに表示します 2025/01/17
- 謹賀新年 2024 2024/01/01
- e-Gadget 開設10周年 2023/10/29
- 管理人からのメッセージ 2023/10/08
- 管理人が所有している電卓 2023/09/24