おもこん

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

C、Gtk4

C、Gtk4とその周辺の技術について

GObjectチュートリアルをアップデート

GTK4チュートリアルに引き続き、GObjectチュートリアルをアップデートしました。 全体を見直しましたが、大筋は変わっていません。 修正点の概要は次のとおりです。 プログラムの不適当なところがいくつかあったのを修正した。 同じファイルが異なるフォルダ…

GTK4チュートリアルの更新

前回ブログに書いた「GTK4チュートリアルの更新」の続きを仕上げた。 分量が多いのでかなり時間がかかった。 それだけではなく、プログラムが不十分で、手直しをしたり、記述が分かりにくくて書き直したりした。 おそらく、少し時間をおいて見直せば、また修…

GTK4 Tutorial 前半アップデート

GTK4 バージョン4.10 GTK4のバージョン4.10からいくつかの関数が入れ替わりました。 古い関数はdeprecated(古くなり推奨されない)になり、その代替(replacement)の関数が新設されたということです。 また、GTKだけでなくそのベースになるGLibライブラリ…

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

UBUNTUの新バージョン23.04がリリースされました。 多くの変更がありますが、今回はGTK4についてのみ書きます。 GTK4のバージョンは4.10.1になりました。 GTK4はバージョン4.10で新たに導入されたクラスと、逆にdeprecatedになったクラスがかなりあります。 …

Ruby-GNOME レポジトリへのコントリビューション

今まで他のレポジトリにプルリクエストを出すことは、ほとんどしてきませんでした。 というのは、自分が貢献(コントリビューション)できそうな部分がほとんどなかったからです。 ところが、Ruby-GNOMEプロジェクトについては、多少活動できそうなので、は…

GTK -- 少し待ってから次の作業をする方法

少し待たなければいけないケース GTK 4 は、マルチスレッドであるので、他のオブジェクトの作業完了まで待たなければいけないことがあります。 そういうときは、作業完了を知らせるシグナルを捕まえれば良いのです。 たいてい、これで解決できます。 具体的…

CSVファイルを編集する「tcsv」バージョン0.7

Cをしばらく休む予定だったのが、そうもいかず、tcsvの開発をしていました。 今日、バージョン0.7をGitHubにアップロードしました。 今回のバージョンは0.7で依然として開発版ですが、実用的なものになっています。 これでtcsvの開発は一区切りついた形です…

GTK 4 チュートリアルに新セクション

GTK 4チュートリアルに新たにセクション30を追加しました。 前回書いたtcsvで得られたテクニックである次の2点がその内容です。 編集されたセルをリストのアイテムにコピー(バインディング)する方法 動的にリストのアイテムの変化をGtkListViewのセルに反…

CSVファイルを編集するプログラム「tcsv」

GitHubのtcsvレポジトリをアップデートしました。 少々大きいプログラムで全体を見直したので、時間がかかり、その間ブログの更新ができませんでした。 CSVとは CSVとは、コンマと改行で区切られた2次元データ形式のことです。 2次元データとは、エクセルデ…

「GTK 4 チュートリアル」のアップデート(完了)

ようやく「GTK 4 チュートリアル」のマイナー・アップデートが終わりました。 セクション28のGtkExpressionの全面書き直しに時間がかかりました。 「おもこん」の記録を見ると、37日もかかっていました。 アップデートされたチュートリアルはバージョン0.85…

「GTK 4 チュートリアル」のアップデート(続き)

GTK 4 チュートリアルのセクション22,24,25をアップデートしました。 セクション25のTiny Turtle Interpreter も若干のアップデートがあります。 tl (tern left) 左への方向変更の命令が加わった rp (repeat) 回数を指定したループ命令が加わった リサイズ…

「GTK 4 チュートリアル」の一部アップデート(続き)

新年あけましておめでとうございます。 今年もよろしくお願いいたします。 さて、GTK 4 チュートリアルのセクション17から21までをアップデートしました。 時間がかかってしまいましたが、それはエディタのプログラム(tfe6とtfe7)を見直すのに時間がかかっ…

「GTK 4 チュートリアル」を一部アップデート

「GTK 4チュートリアル」のセクション1から16をアップデートしました。 なお、このチュートリアルは英語で書かれています。 このチュートリアルは? このチュートリアルはLinux上でC言語でGTK 4ライブラリを使うためのチュートリアルです。 おかしな英語…

GObject tutorial をアップデート

長らく放置していた「GObject tutorial」の全体を見直し、アップデートしました。 バージョンを0.5から0.6にしました。 レポジトリはこちらです。 また、GitHub Pagesを使ったウェブサイトはこちらです。 GObject tutorial とは GObject tutorialは、その名…

世界から注目されたGtk4-tutorial

私のGithubリポジトリに世界からアクセスがあったことを書きたいと思います。 Githubは、プログラムやドキュメントを無料で保管、公開できるウェブサービスです。 また静的なホームページ(ユーザの投稿が無く、閲覧だけのウェブサイト)をつくることもでき…

kindle本「Gtk+3入門」の販売を停止しました

Kindle本「Gtk+3入門」の販売を停止しました。 すでにGtkのバージョンが4になってから1年以上が経過しました。 Gtk4の発表当時はUBUNTUはじめ各ディストリビューションが未対応でしたが、現在ではすべての主なディストリビューションが対応しています。 した…

ハッシュについて

今日はハッシュについて書こうと思う。ハッシュは、あるオブジェクトから、ある定まった範囲の整数への関数で、違うオブジェクトに対して違う整数が対応することが期待されているものである。実際には一対一対応は難しいので、できるだけ一対一になるような…

プロファイル

今日はプロファイルについて書きたいと思います。プロファイルとは、プログラムの中の個々の関数がどれくらい呼び出されているか、そしてどれくらい時間を消費しているかの統計を調べることを言います。具体的には、Cでコンパイルするときに、-pgオプション…

Symmetric_group レポジトリを更新

対称群の部分群を求めるプログラム(symmetric group)をCで書き直しました。Ruby ではなかなか速度が上がらないので、Cに書き直せば速度が上がると期待したのです。ところが、実際にはさして速度が上がりませんでした。5次対称群の部分群を求めるプログラム…

クイックソートを書いていてハマった話

今日はクイックソートでハマったことを書きたいと思います。クイックソートはデータを小さい順(または大きい順)に並べるアルゴリズムです。ここでは与えられたデータを「集合」と呼びますが、数学で扱う集合とは異なり、同じ要素を複数含んでいても良いこ…

3次元を2次元に変換して表示するプログラムを作成

t2tというアプリケーションをGithubにアップロードしました。 t2tは「Three dimension To Two dimension」を短くしたものです。すなわち、3次元の座標系から2次元の座標系への変換をするアプリケーションです。 例えば地上にある立方体は、空間座標でその各…

UBUNTU21.10でGtkのバージョンが4.4に

最近、UBUNTUの新しいバージョン(21.10)がリリースされました。 このバージョンではGtkのバージョンが4.4に上がっています。 (GtkといえばGtk4が現在の標準なので、単にGtkと書きます)。 この前のUBUNTU21.04ではGtkのバージョンが4.0.3でした。 4.0.3か…

Gtk4のドキュメンテーションが新しくなっている

Gtk4関連のドキュメントは「GNOME開発センター」から「APIリファランス」をクリックしてアクセスできていたのだが、このたびそれがリニューアルされた。 今までの(古い)ドキュメントは、ここに保存されている。 新しいGNOME開発のウェブサイトはここで、ド…

GObject tutorialを大幅書きかえしました。

気になっていたGObject tutorialの修正を終えて、Githubにアップロードしました。 とても気になっていたのは、TPtrというポインタのプロパティをもつオブジェクトの子オブジェクトとして文字列のオブジェクトのTStrを定義したことです。 それはすごくまずい…

Csv editor にアップグレードしました

先日ブログに書いたCsv viewerに編集の機能をつけました。 ビューワというよりもエディタの面が主になってきたので、名前もCsv editorにすることにしました。 ビューワからエディタに変更するために一番手間がかかったのは、GtkColumnViewのウィジェットとリ…

CSV viewer を作ってみました

Csv View -- Csv ファイルを見るためのプログラムを作ってみました。 github にレポジトリを作ってあります。 github/ToshioCP/tcsv 一応テスト済ですが、開発途中です。 今後編集の機能を持たせようと思っているので、その準備のためのボタンがいくつかあり…

Ubuntu 21.04 のgtk4パッケージ

今日、Ubuntu 21.04にgtk4パッケージがあることに気づきました。 さっそくインストールして試しましたが、(当然ながら)ちゃんと動きます。 バージョンは4.0.3で最新ではありませんが。 (最新のgtk4安定版は4.3)。 $ pkg-config --modversion gtk4 4.0.3 …

GNOME 40 とGtk4を体験しました

2021/9/1追加 Fedora 34Betaはすでに完成版のFedora 34になっているという指摘をいただきました。 現時点では、Gnome 40のウェブサイトでも「Beta」は消されています。 記事の中の「Beta」は古い情報であることにご注意ください。 また、GNOME40の新しいバー…

Gtk4 Tutorial バージョン0.8 をリリース

Gtk4 Tutorial (英語のチュートリアル)のバージョン0.8をリリースしました。 https://github.com/ToshioCP/Gtk4-tutorial バージョンが0.8という意味は、チュートリアルの構成はこれで完成ということにして、今後は細部の見直しのみにしようということです…

GObject tutorial を書きました

GObjectのチュートリアル(英語)を書きました。 githubのレポジトリに登録してあります。 GObject tutorial GObjectはあまり知られていません。 Gtkの方がそれよりは多少知られていると思います。 GObjectはGtkを下支えする、オブジェクト・システムです。 …