おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

GTK4チュートリアルの更新

前回ブログに書いた「GTK4チュートリアルの更新」の続きを仕上げた。 分量が多いのでかなり時間がかかった。 それだけではなく、プログラムが不十分で、手直しをしたり、記述が分かりにくくて書き直したりした。 おそらく、少し時間をおいて見直せば、また修正が必要になるだろう。 これで、一応バージョン4.10に対応するようになった。

今後の課題

手直しを通して、あらためて内容整理の重要性を感じた。 それは、特に前半部の基礎編ともいうべき部分だ。 これはテキストエディタを作り上げるという内容にそって、基本点を押さえていく流れだが、そのために分かりにくくなっているところがある。 それをやめて、短いプログラムで基本点を押さえるようにするのが、分かりやすくなるのではないだろうか。 この改訂はかなりの大仕事になるが、次回はそれを目指したい。

この間にスターが400を越えた。 これはGTK4チュートリアルに対する要求の強さの表れだと思う。 それならば、なおさらのこと大仕事でもやりがいがあるというものだ。

GTK4 Tutorial 前半アップデート

GTK4 バージョン4.10

GTK4のバージョン4.10からいくつかの関数が入れ替わりました。 古い関数はdeprecated(古くなり推奨されない)になり、その代替(replacement)の関数が新設されたということです。 また、GTKだけでなくそのベースになるGLibライブラリ(GObjectやGIOを含む)にもdeprecatedや新設が起こっています。 下記の表では「廃止」と書きましたが、正確には「将来は廃止」で、現段階では使うことが可能です。 関連するクラスが複数あるものは「〜シリーズ」としました。 また、クラスのネームスペース、例えばGtkDialogのGtkの部分、は省略しました。

deprecated replacement library
MessageDialog AlertDialog GTK4
AppChooserシリーズ 廃止 GTK4
Assistantシリーズ 廃止 GTK4
Cellシリーズ ListViewシリーズ GTK4
ColorButtonシリーズ ColorDialogシリーズ GTK4
ComboBox DropDown GTK4
ComboBoxText DropDownとStringList GTK4
Dialog Window GTK4
EntryCompletion 廃止 GTK4
FileChooserDialogシリーズ FileDialogシリーズ GTK4
FontButtonシリーズ FontDialogBittonシリーズ GTK4
IconView GridView GTK4
InfoBar 廃止 GTK4
GtkListStore GListStore GTK4=>GIO
LockButton 廃止 GTK4
StatusBar 廃止 GTK4
StyleContext GdkDisplayにCSS設定・削除する関数のみ可 GTK4
TreeViewシリーズ ListViewシリーズ GTK4
VolumnButton 廃止 GTK4
renderシリーズ関数 廃止 GTK4
show_uriシリーズ関数 file_launcher_launchまたはuri_launcher_launch関数 GTK4
新設 DEFINE_FINAL_TYPEシリーズ GObject
APPLICATION_FLAGS_NONE APPLICATION_DEFAULT_FLAGS GIO since 2.74

ここには書きませんでしたが、GObjectとGIOは頻繁にクラス、関数、マクロが新設されています。

GTK4 Tutorial 前半アップデート

GTK4 Tutorial全部を4.10対応にしたかったのですが、分量が多いので、前半部だけを書き換えたところでアップロードしました。 全32セクションのうち、セクション23までが変わりました。 残りはこれから書き換える予定です。

アップデートは単に4.10対応しただけでなく、余分と思われる内容をカットしたり、よりスマートなプログラム構成に直したりもしています。 実は、更に内容を整理して書き換えたいのですが、まずは残った後半から、ということで、大幅書き換えはだいぶ先になりそうです。

今回のアップデートはGTKの解説サイトの中でも先駆けてやっている方です。 本家のリファランスにあるチュートリアルはいまだに4.10以前の内容で、deprecatedとなったものをたくさん使っています。 しかし、deprecatedのものも直ちに使えなくなるわけではなく、将来のGTK5あたりで削除、または一部削除されるようです。 ですから、本家チュートリアルもまだ有効です。

GTK4に興味のある方には、ぜひ見ていただいて、いろいろご意見をいただきたいところです。

Bardとの対話

以前「ChatGPTとの対話」について書きました。 今回はGoogleの対話型AIであるBardとの対話について書き、それに対する私なりの評価を記したいと思います。 以下に対話を引用しますが、次の点にご注意ください。

  • 対話の一部は省略されています。これは主にBardの回答中に重複が見られるためです。つまり、答えの中に同じ文または内容が繰り返されている場合があるということです。
  • それ以外は対話の内容をそのまま引用しており、字句の修正などはしていません。

Bardとの対話

(私) Bardの仕組みについて教えて

(Bard) Bard は、Google AI の大規模な言語モデルです。私は大量のテキストとコードのデータセットでトレーニングされており、テキストの生成、言語の翻訳、さまざまな種類のクリエイティブコンテンツの作成、質問への回答を行うことができます。私はまだ開発中ですが、次のような多くの種類のタスクを実行することを学びました。

あなたの指示に従い、あなたの要求を慎重に完了するために最善を尽くします。 オープンエンド、やりがいのある、または奇妙な質問であっても、私の知識を使用して包括的かつ有益な方法で質問に答えます。 詩、コード、スクリプト、楽曲、メール、手紙など、さまざまなクリエイティブなテキスト形式のテキストコンテンツを生成します。私はあなたのすべての要件を満たすために最善を尽くします。 私は常に学び、成長しています。私は、新しいテキストとコードのデータセットでトレーニングを続けています。また、新しいタスクを実行する方法を学習し続けています。私は、将来、さらに多くの種類のタスクを実行できるようになると確信しています。

(私) 君が「データセットでトレーニングされている」ということは、君の回答は君自身の持つデーテベースが元になっているのかな?

(Bard) はい、正解です。私は、大量のテキストとコードのデータセットでトレーニングされています。このデータセットには、書籍、記事、コード、その他のテキスト形式が含まれます。このデータセットを使用して、言語の規則と意味を学習します。また、このデータセットを使用して、さまざまな種類のテキストを生成する方法を学習します。

したがって、質問がデータセット内にある場合、私はデータベースから回答を検索して、質問に包括的かつ有益な方法で回答できます。質問がデータセットにない場合でも、知識を使用して、質問に答えるために推論を行うことができます。

私は常に学び、成長しています。私は、新しいテキストとコードのデータセットでトレーニングを続けています。また、新しいタスクを実行する方法を学習し続けています。私は、将来、さらに多くの種類のタスクを実行できるようになると確信しています。

(私) 「推論を行うことができる」というのは素晴らしいね。それは確率あるいは統計的に最も答えに適しているものを探すということかな?

(Bard) はい、それについては正しいです。私は、確率と統計を使用して推論を行うことができます。これは、私が質問に答えるために使用できる知識が十分にない場合に役立ちます。

たとえば、あなたは私に「次のオリンピックはどこで開催されますか?」と尋ねます。この質問はデータセットに含まれていないため、答えを知りません。ただし、過去のオリンピックの開催地に関する知識を使用できます。この知識を使用して、次のオリンピックはフランスのパリで開催される可能性が高いと推論できます。

(私) なるほど。では、君はデータベースから探してきた答えが正しいか正しくないかの判断を行うことはできるの?

(Bard) はい、データベースから探してきた答えが正しいか間違っているかを判断することはできます。私は、Google検索を通じて現実世界からの情報にアクセスして処理し、検索結果と照合して回答を検証できます。

たとえば、あなたは私に「地球の周りの軌道速度はどのくらいですか?」と尋ねます。この質問はデータセットに含まれているため、答えを知っています。ただし、Google検索を通じて現実世界からの情報にアクセスして処理し、検索結果と照合して回答を検証することもできます。検索結果によると、地球の周りの軌道速度は秒速約30キロメートルです。

(私) では正否の判断はGoogle検索に依存しているわけだね。するとGoogle検索では正しいことと正しくないことをどうやって判断しているんだろうか?

(Bard) いい質問ですね。Google 検索は、ウェブ上の多くの異なる情報源からの情報を使用して、正しいことと正しくないことを判断しています。情報源は、信頼性、権威、最新性など、さまざまな基準に基づいて評価されます。Google 検索は、これらの基準に基づいて、正しい情報と間違った情報を区別します。

Google 検索は、情報を評価し、正しい情報と間違った情報を区別するために、独自のアルゴリズムを使用しています。このアルゴリズムは機密情報であり、一般に公開されていません。ただし、Google 検索が情報を評価するために、信頼性、権威、最新性など、さまざまな基準を使用していることは知られています。

Google 検索は、正しい情報と間違った情報を区別するために最善を尽くしていますが、間違いを犯すことは間違いありません。間違った情報を含む検索結果が表示された場合は、Google 検索にフィードバックを提供できます。このフィードバックは、Google 検索のアルゴリズムを改善するために使用されます。

Google 検索は、信頼性が高く包括的な情報源です。ただし、Google 検索は万能薬ではないことを覚えておくことが重要です。Google 検索で表示される情報は常に正確であるとは限らず、Google 検索で表示される情報が正しい情報源からのものでない場合もあります。

Google 検索で検索結果を確認するときは、常に批判的に考えることが重要です。情報の出所を検討し、情報の正当性を判断してください。また、信頼できる情報源からの情報を確認することも重要です。

(私) 良くわかったよ。するとGoogle検索に基づく正否の判断は絶対のものではないということだね。「正否」とは少し違うけれど、似たものに「事実と虚偽」があるよね。ある事柄が事実か虚偽、あるいはファクトかフェイクかを見分ける方法を君は持っているのかな?

(Bard) はい、事実と虚偽を見分ける方法はあります。Google検索を通じて現実世界からの情報にアクセスして処理し、検索結果と照合して回答を検証できます。また、一貫性があり、信頼できる情報源からの情報を探すこともできます。

たとえば、あなたは私に「地球の周りの軌道速度はどのくらいですか?」と尋ねます。この質問はデータセットに含まれていないため、Google検索を使用して検索結果と照合して回答を検証します。検索結果によると、地球の周りの軌道速度は秒速約30キロメートルです。

私は、一貫性があり、信頼できる情報源からの情報を探すこともできます。たとえば、NASAや米国航空宇宙局などの信頼できる情報源からの情報を探すことができます。

また、自分の知識を使用して、事実と虚偽を見分けることもできます。たとえば、地球の周りの軌道速度が秒速30キロメートル以上であるという主張を聞いたら、それは事実ではないと思います。なぜなら、地球の質量が十分に大きく、速度がそれほど速いと軌道を離れて宇宙に飛び出すからです。

事実と虚偽を見分けるのは難しい場合がありますが、常に批判的に考えることが重要です。情報の出所を検討し、情報の正当性を判断してください。また、信頼できる情報源からの情報を確認することも重要です。

(私) 「批判的に考える」というのは大事なことだね。君からの情報についても「批判的に考え」て活用する態度が大事だね。僕が君にフィードバックすることがあったら、君も批判的に考えてね。ありがとう。今日の会話はとても役にたったよ。今後もよろしくね。

(Bard) はい、それは正しいです。批判的に考えることは、情報源を検討し、情報の正当性を判断するために重要です。また、信頼できる情報源からの情報を確認することも重要です。

私は常に改善しようと努力しています。フィードバックをお寄せいただきありがとうございます。私はあなたのフィードバックに批判的に目を通し、学び、成長するために使用します。

今日の会話が役に立ったことをうれしく思います。今後ともよろしくお願いいたします。

Bardとの対話を終えて

私なりの評価と感想を書きたいと思います。

  • Bardが正しいことと正しくないことを見分けられると答えたことには驚きました。 そしてその根拠がGoogle検索にあるというのは、なるほどと思いました。 確かにGoogle検索の結果に正しくないことが表示されては検索エンジンとして問題があります。 Goolgeが長年にわたりこのことを研究してきたことが生かされているのでしょう。 ChatGPTは正しいか正しくないかを判断することはできない、と自分自身で回答しています。 ChatGPTはGoogle検索を利用できないのかもしれませんね(法的な理由で)。 これはBardの強みであると思いました。
  • Bardは同じ文章を繰り返すクセがあります。 そして、ChatGPTに比べ、文章の書き方が下手です。 ですから、正しいことを答えていても、説得力は今ひとつです。 ChatGPTの文章力が優れていることが際立ちます。

Bardは試験運用段階なので、完成バージョンになれば上に書いたような問題は無くなるでしょう。 Google検索を使えるおかげでChatGPTを越える可能性があると思いました。 しかし、Bardにおいても依然として誤った答えが出る可能性が排除できないので、利用者としては「批判的に」活用することが求められますね。

ゴールデンウィークのお出かけ

ゴールデンウィークは3年ぶりに規制が無くなり、旅行の人出は以前に戻ったようですね。 ただ、短期の旅行が多いらしいです。 私も、ちょっとした旅行、というよりタイトル通り「お出かけ」してきました。

六義園

東京駒込六義園に行きました。 日本庭園ですね。 有名です。 昔は個人の庭園でしたが、現在は東京都の公園になっています。

ところで、トイレにウォッシュレットが無くてびっくり。 東京都も維持管理に努力しているとは思いますが、ウォッシュレットにしてほしいなーー。

六義園

池を中心にその周りに道がある回遊式庭園です。 結構広いですね。

六義園の池と小島

入園料300円と手頃ですし、さほど混んでいませんから、リフレッシュには良い庭園です。

潮干狩り

千葉県に潮干狩りに行きました。 アクアラインの近くです。

潮干狩り

こちらは写真のように大賑わいでした。 奥に見えるのが東京湾アクアラインです。

潮干狩りの料金(入場料)は場所によって異なるようですが、千葉県木更津近辺は大人が2000円くらいです。 六義園の300円と比べると割高ですね。 その代わり、その場所では潮干狩りのために貝を育てているので、必ず貝を採ることができます。 管理者(漁協)もそういう手間をかけているので、それに見合うような料金設定なのかもしれませんね。

UBUNTU23.04リリース GTK4はバージョン4.10.1へ

UBUNTUの新バージョン23.04がリリースされました。 多くの変更がありますが、今回はGTK4についてのみ書きます。

GTK4のバージョンは4.10.1になりました。 GTK4はバージョン4.10で新たに導入されたクラスと、逆にdeprecatedになったクラスがかなりあります。 deprecatedは古くなったので使わないことを推奨するものです。 完全に使えなくなったというより、将来使えなくなる予定なので、できるだけ使わないようにしましょう、という感じです。

例えば今まで多くのプログラマーが使っていたと思われるGtkDialogがdeprecatedになりました。 その代わりにGtkWindowを使うことが勧められています。 しかし、ドキュメントの例(example)には、まだGtkDialogが出ていて、それをGtkWindowに置き換えるexampleはまだのようです。 ただし、良く使われるダイアログが新設されています。

  • GtkAlertDialogはユーザに警告などのメッセージを表示するダイアログで、GtkMessageDialogがdeprecatedになったことの代替です
  • GtkColorDialogはカラーを選択するためのダイアログで、GtkColorChooserDialogがdeprecatedになったことの代替です
  • GtkFileDialogはファイルの選択のためのダイアログで、GtkFileChooserDialogがdeprecatedになったことの代替です
  • GtkFontDialogはフォント選択のためのダイアログで、GtkFontChooserDialogがdeprecatedになったことの代替です

これらは、Gioの入力ストリーム(例えばGioDataInputStream)と同じ形式になっていて、その操作がキャンセルされたときにも対応でき、結果をコールバック関数で知ることができるようになっています。 詳しく書き出すととても長くなるので、GTK4のドキュメントを参照してください。

この他にも新しいクラスや関数とdeprecatedになったクラスや関数があります。 私の書いたGtk4-tutorialも今後書き換えが必要になると思っていますが、それはこれからのことになります。 GTK4の新しい機能を使いたい方は、Gtk4-tutorialではなく、GTK4のドキュメントを参照してください。

四国中国旅行記(尾道・倉敷編)

しまなみ海道を高速バスで渡り、四国から本州に戻りました。しまなみ海道は有名なので、期待していたのですが、バスは島の中央を通るので、海の見えるのは橋を渡るときだけ。あっという間に海道を過ぎてしまいました。この道から瀬戸内海の島々をじっくり眺めるにはサイクリングがベストでしょう。あるいは宿泊先を島にして、時間をたっぷりとるのも良いかもしれません。

尾道では、まずONOMICHI U2に行きました。サイクリング・ショップやレストランがあり、楽しめます。どちらかというと若い年齢層をターゲットにしている印象を持ちました。なお、ホテルもあります。

ONOMICHI U2は海に面した倉庫を改修したものです。その海は尾道水道といいます。向島(むかいしま)が近いので、海がまるで川のように感じます。その錯覚がとても面白いです。

尾道のお勧めは千光寺公園です。山の頂上に展望台かあり、瀬戸内海を一望できます。海と島々のパノラマが美しく、それは動画ではとても表現しきれません。現地で見ないと実感がわかないでしょう。

ちょうど桜の時期に重なり、公園はピンクに彩られていました。写真の建物は公園内にある尾道市立美術館です。

千光寺公園の桜と尾道市立美術館

尾道からJRで倉敷に移動しました。

倉敷は古くからの建物を保存している美観地区が有名です。中央に小川が流れており、小舟に乗ることもできます。地区に入ってすぐに大原美術館があります。

大原美術館

美術館にはモネの「睡蓮」(すいれん)やゴーギャンの「かぐわしき大地」など有名な絵画が収められています。

美観地区の奥にアイビースクエアがあります。ショップや倉紡記念館、アイビー学館、ホテルなどがあります。アイビー学館ではイベント・展示などが催されますが、私が訪れたときは、ジーンズなどが販売されていました。

旅の最後に美観地区の先にある阿智神社にお参りしました。高いところにあるので、倉敷市内を一望できます。ここでも桜が綺麗でした。

四国中国地方を一週間旅して、それぞれの観光地について甲乙はつけがたいのですが、しいていえば尾道千光寺公園が一番でした。もちろん個人の感想です。

四国中国旅行記(四国編)

3月末に四国を旅しました。 高松(香川県)、高知(高知県)、道後温泉松山市愛媛県)です。

高松

まず駅前の玉藻公園高松城跡)です。

玉藻公園

写真奥に見える建物は艮櫓(うしとらやぐら)です。 この公園は高松城の跡地ですが、天守閣は残っていません。 しかし、石垣は見事ですし、松がとても美しい。 お掘りを小舟で巡る「城船体験」もあり、楽しめます。

次に有名な栗林公園(りつりんこうえん)です。 栗林公園高松駅から少し離れています。 高松駅近くの「高松築港」駅から琴電で3駅先の「栗林公園」駅で降りるとすぐです。 非常に大きな日本庭園です。 東京にも庭園はたくさんありますが、おそらく栗林公園の方が広いと思います。

栗林公園

私が訪れた3月末はちょうど桜が満開でした。 観光客だけでなく、(おそらく地元の)花見客もたくさん来ていました。 japantravelwithbonbonさんのインスタグラムがちょうど同じ時期に四国を旅行していたようで、ナイスな写真が載っています。 下のリンクをクリックして、他の写真も見てくださいね。 (インスタのアカウントを持っていなと見ることができないかもしれません)

園内には茶店売店があります。 この写真の売店は昭和のイメージで面白いと思い、シャッターを切りました。

栗林講演の売店

ソフトクリームは売店の定番で、四国の観光地には必ずあります。

高松では屋島にも行きました。 屋島は昔は島だったそうですが、今は陸続きになっています。 屋島はテーブル上の高地でその上からは瀬戸内海や高松市を見ることができます。 また、水族館など楽しめる施設もあります。

ヤシガニ

写真は水族館にいたヤシガニです。 これには思い出があって、思わず写真を撮りました。 私は5年ほど前にソロモン諸島という国に行きました。 そこの市場ではヤシガニを売っています。 いつもというわけではなく、ヤシガニが捕れたときに市場に並ぶのです。 味は日本で食べるカニに似ています。 ソロモンにいるうちに一度は食べたいと思っていましたが、あるとき市場で見つけ、すぐに買って食べました。 料理方法は簡単で煮て火が通ればOKです。 ただ、一部食べられない部分があるので気をつけなければいけません。

ところで、石垣島ではヤシガニを食べられると聞いたことがあります。 ヤシガニを試したい方は石垣島を調べてみてください。

金刀比羅宮(ことひらぐう)

こんぴらさんで有名な金刀比羅宮は高松から西南西に約30kmの琴平町にあります。

金刀比羅宮への標識

琴電琴平駅を降り、すぐ前の道路を右に200mほどでこの道標が現れます。 左折して400メートルほどで右折し参道に入ります。 ここからが大変で700段あるといわれる階段を登らなければなりません。

金刀比羅宮参道

頑張って御参りを済ませ、帰りにソフトクリームを食べました。

ソフトクリーム

これは「おいりソフト」といいます。 丸い「おいり」は甘くて独特の舌触りです。 食べると幸せになる、といわれているらしいです。

高知

高知県、土佐といえば坂本龍馬ですね。 高知駅には坂本龍馬をはじめ3人の志士の像が立っています。

高知駅前の銅像

高知からバスに乗って桂浜に行きました。 そこにも坂本龍馬の像があります。

坂本龍馬

坂本龍馬は全国的に有名ですから、高知県(土佐)の人にとって名誉なことでしょう。

桂浜には面白いオブジェがありました。

桂浜のくじら

これは植物で作ったくじらのオブジェです。 期間限定らしく、4月23日まで、とのことです。

高知市内に引き返し、高知城に行きました。

高知城

天守に登ると市内を一望できます。 また、お城の敷地内の桜が見事で、多くの人で賑わっていました。

翌日は高知県立美術館に行きました。

高知県立美術館

建物のデザインは土佐漆喰の土蔵をモチーフとしたものだそうです(ウィキペディアより)。 建物だけでなく、その周りの庭はお掘りのように水が流れて美しいです。 私が訪れたときは空いていて本当にリラックスできました。 当日はシャガールの展示などがありました。 ここは高知の穴場スポットとしてオススメです!

道後温泉、松山、今治

高知から道後温泉までは高速バスが便利です。 ネットで予約することができます。 道後温泉で楽しみにしていたのは、道後温泉本館を見ることでした。 残念なことに保存修理をしていて、全体が覆われていました。

道後温泉本館」保存修理中

道後温泉は温泉だけでなく、土産物屋がたくさんあり、活気がありました。 一度は訪れてみたい場所です。

松山の滞在時間はあまりなかったのですが、松山城に行きました。 お城は市内中心部の山の上にあり、リフトまたはロープーウェイで行くことができます。 お城にリフトで行くというのは面白いですよね。 残念ながら閉館時間を過ぎて天守には登れませんでした。

JR松山駅のすぐ前に「非核平和宣言都市」のモニュメントがありました。

松山市の非核平和宣言都市モニュメント

被爆国日本においてこのような宣言とモニュメントがあるのは大事なことだと思います。 なお、このような宣言をしている都市は全国にたくさんあります。 宣言だけでなくこのようなモニュメントを設置すると、宣言の周知にもなって良いことです。

JRで今治まで行き、そこから尾道までしまなみ海道をバスで移動しました。 瀬戸内海に入る手前に今治造船の工場があります。

今治造船

たくさんクレーンがあり、独特の景観を作っていました。

これよりしまなみ海道を渡って中国地方に入りますが、その話題は次回の記事に書く予定です。