おもこん

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

NIM(石取りゲーム)

NIMと英語ではいい、日本では「石取りゲーム」「三山崩し」と呼ばれるゲームがあります。 チップ(硬貨を模したプラなどの円盤)を3か所に置きます。チップの数は適当で良いです。 この3つの場所を「山」ということもあります。 2人でゲームをし、交代でチッ…

RubyGemsに登録してあるマイGem紹介

RubyGemsはRubyのライブラリで、誰でも登録し、ダウンロードすることができます。 私は2つのGemを登録してあるので、ここで紹介したいと思います。 興味を持った方はぜひダウンロードして使ってみてください。 前提として、Rubyがインストールされていなけれ…

Ubuntuの新バージョン23.10

Ubuntuの新しいバージョン23.10がリリースされ、約2週間経ちました。 Ubuntu23.10をインストール リリース後すぐに23.04からのアップグレードができるかと思っていたら、どうもそうではなかったようです。 自分のUbuntuの設定では新リリースにアップグレード…

ファイル名に使える文字

ファイル名に使える文字はOSによって違う Linuxでファイルを作るときにはほとんどの文字がファイル名に使えます。 厳密にいえば、OSというよりもOSの採用しているファイルシステムに依存します。 UBUNTU 23.04ではファイルシステムはext4です。 ext4ではスラ…

単項マイナスと構文解析

追記 2023/10/16 Calcのことで訂正があります。 単項マイナスとは 単項マイナスとは、式のなかに使われるマイナスで、その数字の符号を変えるためのものです。 例えば「−2」は2の符号をマイナスに変更する演算です。 「ー」には「引き算」を表す場合もあり…

徒然Ruby(44)Raccパーサ・ジェネレータ

パーサ・ジェネレータとは 少し複雑な文法 四則(加減乗除)計算のBNF Racc で実装 クラス定義、BNFの記述部分 ヘッダー、インナー、フッター コンパイルと実行 演算子の優先順位と結合における左右の優先順位 まとめ パーサ・ジェネレータとは パーサを日本…

徒然Ruby(43)StrScanライブラリで字句解析

電卓プログラムの記事で予告したStrScanライブラリの話です。 StrScanライブラリのドキュメント Rubyのドキュメントに説明があります。 簡単な説明ですが、それで使い方はわかると思います。 字句解析とは 字句解析は、主にプログラミング言語で使われます。…

筑波山でハイキング

筑波山とは? 筑波山を知らない人は少ないとは思いますが、一応簡単に紹介を。 筑波山は茨城県にある山で、標高877mとさほど高くはないが、平らな関東平野の中に突き出ているので、登山としては結構大変です。 あまり気楽に登り始めると、途中できつくなるか…

電卓プログラムにRaccとStrScanライブラリを使用

今回の電卓プログラムは、最近投稿した計算結果が分数になる電卓とは別のプログラムで、小数を用いる普通のタイプの電卓です。 電卓プログラムCalc このプログラムCalcは以前GitHubに置いてあったものですが、最近アップデートしました。 このアップデートは…

計算結果が分数になる電卓

電卓の答えは小数になる 皆さんよくご存知のことですが、電卓で割り算するとその答えは(割り切れなければ)小数になります。 物差しで長さを図るときには、2.3cmのように小数になり、分数にはなりません。 ですから、電卓が小数を使うことは、理にかなって…

拡張テンパズル

YoutubeのQuizKnockを見ていて、面白い問題を人間とコンピュータ(のプログラムを作る人間)が勝負していました。 動画はもちろん面白かったのですが、このパズルを解くプログラムを自分でも作ってみたくなりました。 このパズルは例えば次のようなものです…

数式処理アプリケーションMaxima

Maximaとは Maximaは古く歴史のあるアプリケーションですが、現在でも開発が行われています。 いわゆる「数式処理」をするアプリです。 電卓やPCの計算は数字に対するもので、整式などは扱えません。 例えば、次の式を展開する計算はできません。 このような…

WindowsにImageMagickとRMagickをインストール

Windowsで画像処理を行うため、ImageMagickをインストールします ImageMagickのインストール ImageMagickのウェブサイトをブラウザで開く タイトルバーのダウンロードボタンをクリック(他に広告のダウンロードボタンもあるが、それは違うので要注意) 下の…

WindowsにRubyをインストール

関係者との互換性のため、Windowsでの作業が増えてきました。 しかし、WindowsはLinuxと比べツールが少なく、使い勝手がよくありません。 それを解消するための手段のひとつとして、Rubyをインストールすることにしました。 Rubyのウェブサイトからダウンロ…

WindowsにGimpをインストール

最近どうしてもWindowsを使わなければならない事情が発生しました。 普段使っていないので、アプリの数も少なく、不自由しています。 Windowsを使わなければならない理由は、やりとりする相手との互換性から、Officeでファイルを作成しなければならないこと…

プロジェクター用スライドの画像について

プロジェクター用スライドの画像 プレゼンテーションでスライドを作るときに、画像の画素数(これを解像度と言うこともあるが、正しくはない)をどれくらいにしたら良いのでしょうか? 一般にデジカメで撮った画像は画素数が多いので、それを何枚もスライド…

釧路湿原

少し前のことになりますが(2023年6月)、釧路湿原に行きました。 あいにく天気が悪く、霧が出ていて、壮大な湿原全体を見ることができませんでしたが、それでも自然を感じることができました。 交通 私は飛行機を利用しました。 最寄りの空港は「たんちょう…

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

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

GTK4チュートリアルの更新

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

GTK4 Tutorial 前半アップデート

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

Bardとの対話

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

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

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

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

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

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

しまなみ海道を高速バスで渡り、四国から本州に戻りました。しまなみ海道は有名なので、期待していたのですが、バスは島の中央を通るので、海の見えるのは橋を渡るときだけ。あっという間に海道を過ぎてしまいました。この道から瀬戸内海の島々をじっくり眺…

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

3月末に四国を旅しました。 高松(香川県)、高知(高知県)、道後温泉(松山市、愛媛県)です。 高松 まず駅前の玉藻公園(高松城跡)です。 玉藻公園 写真奥に見える建物は艮櫓(うしとらやぐら)です。 この公園は高松城の跡地ですが、天守閣は残っていま…

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

3月末から4月はじめにかけて四国・中国地方を旅行しました。 その旅行について書こうと思います。 旅行はすべて公共交通機関で移動しました。 今回は主な移動手段である鉄道の記事です。 JR瀬戸大橋線 岡山から四国まではJR瀬戸大橋線で行きます。 今回は岡…

ChatGPTとの会話

今流行りのChatGPTを使ってみました。 その会話をここで紹介しますが、生のままここにコピペするのではなく、手を加えます。 「会話そのものの生データではない」ことは前提としてご了解ください。 なお、OpenAIの規約によると、会話におけるユーザの入力とA…

徒然Ruby(42)gemを作って公開してみた

lbtというgemを作って公開してみた lbtはどんなgemか ファイルの配置 lbt.gemspec Rakefile gemのビルド RubyGems.orgへのアップロード lbtというgemを作って公開してみた 以前からLaTeXで効率的に書籍を作ることを考えていました。 特に大きな文書、例えば1…

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

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

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

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