おもこん

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

徒然Ruby(41)エンコーディング

文字列のエンコーディングに頭を悩ませることはほとんどなくなりました。 なぜなら、どのアプリ、システムもUTF-8を使うようになったからです。 Rubyでもエンコーディングの問題が起こることはまず無いでしょう。 ですが、今回はエンコーディングの考え方を…

徒然Ruby(40)スレッドが意外に遅い

Fiberを書いたときから、次はスレッドを書こうと思っていましたが、時間がかかってしまいました。 その理由は、期待したとおりのスレッドの効果がなかったためです。 今回はそのことを書きますが、これはRubyのスレッドの抱えている問題なのか、自分のやり方…

Worry に悩む

英語のテキストにこのような文章がありました。 I'm worrying about that. I'm worried about that. ネットを検索すると、「worryは現在進行形にはしない」という発言もありますが、実際には英語のテキストには存在します。 さて、この2つについて考えてみま…

徒然Ruby(39)Fiber

Fiberは「ノンプリエンプティブな軽量スレッド」とRubyのマニュアルに記載されています。 ノンプリエンプティブ(non preemptive)とは、マルチタスクの切り替えをプログラム自身にまかせること プリエンプティブ(preemptive)とは、マルチタスクの切り替え…

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

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

不定方程式ax+by=1の特殊解の求め方

高校では整数の章で不定方程式ax+by=1を習います。 ただし、文字はすべて整数で、aとbは「互いに素」です。 例えば の解は です。 ただし、この他にも(x,y)=(7,-12)、(11, -19)など、無数に解があり、その一般形は となります。ただし、tは整数です。 この解…

数学の英語----分数と小数

英語で分数のことを「fraction」といいます。 ところで、fractionは元々どういう意味なのでしょうか? 辞書を引くと fractionは「壊れたもの」が原義で、 一部、小部分、断片、端数 a fraction で副詞的に「少し」 分数 などとなっています。 (出典:ジーニ…

徒然Ruby(38)RDoc

今回はRubyプログラムから自動的にドキュメントを作成するRDocについて書きたいと思います。 私はこのことについて、エキスパートではありません。 この記事も、初心者の体験談だと考えてください。 どのようなプログラムに有効か? クラスを定義するプログ…

リンド・パピルスの分数

QuizKnockというユーチューブ・チャンネルをごぞんじですか? クイズ番組をユーチューブにしたチャンネルです。 頻繁に更新されているので、日常的に視聴している人も多いのではないでしょか。 近頃、リンド・パピルスの数学がクイズになっていました。 最後…

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

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

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

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

数学の英語

「数学の英語」とまぎらわしいタイトルにしてしまいましたが、「数式などを英語でどのように表現するか」という意味です。 ネットを探したら、こんなブログを見つけました。 Glatsという会社の運営するKimini英会話のブログです。 別にその会社を勧めるわけ…

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は、その名…

徒然Ruby(37)Ruby/GTK4

【追記 2022/12/9】プログラムのバグ修正と「gtk4」gemのバージョン4.0.4(最初にこの記事を書いたときには4.0.3)について、「徒然なるままにRuby」のGitHubレポジトリに書き加えました。 追加、修正については申し訳ありませんがこちらをご覧になってくだ…

「はじめてのJekyll + GitHub Pages」マイナーアップデート

「はじめてのJekyll + GitHub Pages」をマイナーアップデートしました。 アップデートの内容は 誤りの訂正 site.baseurlについての記述の追加 その他 です。 このサイトのGitHubレポジトリはこちらです。 あらためて全部読み返しました。 結構時間がかかりま…

徒然Ruby(36)Ruby/GTK -- RubyとGUI

今回もRubyとGUIについて書きます。 内容はGTK 3とGTK 4をRubyで使うライブラリRuby/GTKです。 GTKと「Rubyで動くGTK」とは インストール ドキュメント Hello world 電卓 ビルダーの使用 GTKでできること GTKと「Rubyで動くGTK」とは GTKはオープンソースのG…

徒然Ruby(35)Glimmer -- RubyとGUI

今回もRubyとGUIのトピックです。 Glimmerを取り上げます。 Glimmerとは インストール Hello world Glimmerの使い方 ウィンドウとメニュー ボックス コントロール 表 図形の描画 データ結合 glimmer-dsl-libuiに付属の例 まとめ Glimmerとは GlimmerはRubyに…

徒然Ruby(34)Shoes -- RubyとGUI

Rubyはグラフィックについて弱い印象があります。 しかし、グラフィックはデバイスに関することなので、言語そのものには直接の関係はないはずで、あるとすればライブラリです。 今後グラフィック関係のgemが開発されることに期待しましょう。 そのような状…

徒然Ruby(33)Rails7 システムテスト

Rails7におけるシステムテストについて書きます。 テンプレートの作成 アサーション 良く使われるメソッド システムテストの例 テストの実行 ヘッドレスブラウザ まとめ テンプレートの作成 コマンドラインからシステムテストのテンプレートを作成します。 $…

徒然Ruby(32)Rails7 テスト

前回作ったWordbook(リソースフル)のテストを書いてみます。 RailsのテストはminitestをRails用に拡張したものです。 テストの種類 モデルのテスト フィクスチャ モデルのテスト テストの実行 機能テスト HTTPメソッドをシミュレートするメソッド ビューの…

徒然Ruby(31)Rails7 慣例にそったプログラミング

今回はRailsの慣例に沿った形でWordbookを作り直します。 Convention Over Configuration モデル ルーティング レイアウト、ナビゲーションバー、フラッシュ レイアウト ナビゲーションバー フラッシュ indexアクション searchアクション showアクション new…

徒然Rubyのウェブサイト(GitHub pages)を作りました

「徒然なるままにRuby」のウェブサイトを作りました。 おもこんに連載した「徒然なるままにRuby(1)〜(30)」を収録しました 収録にあたり、見直しをして、一部記載を修正しました おもこんに残っている「徒然Ruby」も一部修正しましたが、依然として古…

徒然Ruby(30)Rails7 検索と削除

今回はWordBookの検索と削除についてです。 検索 Search アクション List アクション 削除 Delete アクション Exec_delete アクション まとめ 検索 検索ではクライアントがサーバに正規表現を送り、マッチするデータをHTMLで送ってもらいます。 送信方法がGE…

徒然Ruby(29)Rails7 モデルとデータベース

今回はRailsにおけるデータの作成と保存、そして変更について説明します。 そのベースになるモデルとデータベースの話から始め、appendとchangeの動作について詳しく説明します。 MVC モデルとデータベース コンソール 単語の新規作成 appendとchange共用の…