投稿

Linux kernelで気がついたことの記録

記事の更新: 2026/09/04 1.概要 この記事は、kernel 5.19に関して調べたことを記事にしていました。今回、記事の見直しをして、今後、発生したLinux kernel関連で気づいたことを記載することに変えました。具体的には、予想していないLinux kernelの変化の備忘録です。 2.詳細 (1) kernel 5.19 kernel-5.19に関して、調べた時に気がついたことを記載します。ubuntu-22.04.2は、5.19.0-38を利用していました。このkernel versionは微妙なバージョンで、何れ、kernel-6.xに変わる気がします。5.19から6.0への移行期に感じた特有の違和感について記述をします。 The Linux Kernel Archivesを調べると 5.19が存在しません。kernel-5.15がversion-5の最新です。 そこで、ネット検索をしてkernel-5.19に関して調べると、参考資料を見つけました。 Linus Torvaldsは7月31日、最新のLinuxカーネル「Linux 5.19」公開を発表した。 ..... なおTorvalds氏は次期版(5.20)について、 「大きな数字に混乱するのではという心配を感じ始めたので、 6.0と呼ぶことになりそうだ」と記している。 しかし、The Linux Kernel Archivesはversion-6に進んでしまっています。 微妙なkernel versionのようです。 さらに昔のことですが、kernel-2.6.40の次は、kernel-3.0.0と発言したことも思い出しました。この時はkernel-2.6はkernel-2.6.39.4などのように4つの数字で表現されていて、これを3つの数字で表現するように直したものだと思います。 リーナス氏のコメントから「バージョンアップの基準が視認性にある」気がします。 (2) kernel 6.8 Ubuntu 22.04はkernel 6.5を利用していました。当時、Ubuntu 24.04はkernel 6.8でした。 その頃にopenSSHで問題が発覚して、Ubuntu 22.04のkernelもkerenl 6.8に変わり、Ubuntu 22.04とUbuntu 24.04のkernel ...

ubuntu/LinuxMintでmouseとtouchpadを切り替えて利用する方法

記事の更新日:2026/07/03  1.概要 この記事は2023年の記事です。NotePCでは必ず設定しているので気にすることがなくなりましたが、UbuntuとLinuxMintでは設定方法が異なり、備忘録として残すことにしました。 ubuntu-20.04のNotePCを利用する場合、キーボード操作をしている時に、touchpadに触れてしまい思わぬ場所に入力することがありました。mouseを接続時に設定でtouchpadを無効化すると良いのですが、面倒な上に、NotePCの電源を落とし、mouseを取外すとtouchpad操作ができなくなります。このことに気づかずに次回利用する時、touchpadが動作せず、mouseを探してしまいます。以前から対策がないかを探していたのですが、対応策の記事を見つけたので紹介します。 2.詳細 (1) ubuntuの場合 私は2台のNotepc上で、ubuntu-20.04.6(20.04.5から自動更新)を利用していますが、この設定を組み込んで問題なく利用しています。ubuntuの場合はコマンドですがとても便利です。 mouse接続時にtouchpadを無効化し、mouse取外し時にtouchpadを有効に戻す gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled-on-external-mouse 上記設定をもとに戻し、常にtouchpadを有効にする gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled 一度、コマンドを実行して設定することでmouseとtouchpadは自動切り替えになります。戻すことは普通ありませんが、戻すコマンドを実行して設定が戻ることの確認もしました。 (2) LinuxMintの場合 標準で設定方法が組み込まれていて楽です。 設定 => マウスとタッチバッド => タッチパッド選択 => 入力中はタッチパッドを無効化On LinuxMintの場合、MacOS並にタッチパッドを利用できます。上記設定場所のスクロール方法を2本指でスクロールを設定します。私は便利に利用しています。 最初、to...

ChatGPTとGeminiを比較!AIブラウザ「Atlas」から考えるAIの限界とプログラミングの未来

記事の更新日: 2026/08/08 1.概要 この記事は2023年3月に最初にchatGPTについて記述しました。今回見直しで2026年7月にGeminiにも同じ質問をして4年半の進歩を知る機会になりました。 「AIはいつか、人間のプログラマの仕事をすべて奪ってしまうのだろうか?」そんな疑問を胸に、まずは話題のChatGPTに「チューリング・テストに合格できるか」というシンプルな質問を投げかけることからスタートしました。さらに後発のGeminiとの比較や、最新のAIブラウザ「ChatGPT Atlas」の動向を追う中で、一つの結論に達しました。 本記事では、実際の検証手順と共に、「AIは優れたアシスタントになり得ても、開発の本質には人間の努力が不可欠である」という理由を、楽器演奏のステップに例えて分かりやすく解説します。 2.詳細 (a) chatGPT MicrosoftまたはGoogleのアカウントを持っている前提です。 Firefoxにて、下記URLにアクセスします。 https://chat.openai.com/ Verify you are human をクリックします。 Welcome to ChatGPT Log in with your OpenAI account to continue では、Log in を選択します。 ここでは、Continue with Googleをクリックします。 Google にログインの画面に変わるので、 ログイン情報を入力します。 ログイン認証が完了すると、 ChatGPT This is a free research preview. の画面が表示され、nextを選択します ChatGPT How we collect data の画面が表示され、nextを選択します ChatGPT We'd love your feedback! の画面が表示され、Doneを選択します ChatGPTのchat入力画面になります。 画面下部の入力フィールドに、質問を入力すると回答を得られます。 「chatGPTはチューリング・テストに合格ですか」を入力して質問します。 「完全に合格できない」と回答します。説明記述は納得できる内容なので、試してみてください。 (b) Gemini 比較のため、今、同じ質問をGemi...

テスト駆動開発を利用したfibonacciのPythonコード作成

記事の更新日:2026/09/30 評価を加筆 1.概要 本記事は2023年の記事です。TDD(テスト駆動開発)の開発手法を利用して私はプログラムを作成するようになりました。そのきっかけはKent Beckの書籍です。Kent BeckはアジャイルのXP手法の提唱者であり、UnitTestの最初の開発者です。プログラム作成方法を変えた原点なので、備忘録に残すべきと考えました。 開発手法としてKent BeckのTDD(Test-Driven Development)を活用しています。参考書籍ではJavaを利用してfibonacci関数をTDDで開発する手法が紹介されています。ここでは、Pythonを利用してJava版と同じことを最初に実施します。 次に再帰呼出しの問題点を指摘して、再帰呼出しを利用しない方式へTDDで改良します。改良した結果、大きなfibonacciの計算ができるようになります。 TDDはテストコードを作成し、そのテストコードがパスするコードを作成するという作業を続けて、目的とするコードを作成する手法です。アジャイル(XP手法)の1つであり、スクラムなどの開発でも幅広く利用されている方法です。テストコードはUnitテスト方式で作成します。UnitテストはKent Beckが最初にjunitを開発し、様々な言語に波及しました。 私の評価は以下の通りです。 (1) プログラム開発は、開発コードとテストコードをセットで作成します (2) TDDはテストコードを先に作り、開発コードをテストがパスするように作ります (3) テストコードが存在することで、開発コードの修正リスクも減少します (4) TDDは様々な開発言語に適用できるので、活用してください 2.再帰呼出による詳細説明 fibonacci数列は、0,1,1,2,3,5,8,13,.....と継続する数列で、先行する2つの数値を足した値が、次の数値になる無限に続く数列です。初期値と次の値は、0と1になっています。 2.1 【Red】環境のセットアップとテスト失敗(ステップ1〜2) (1) testcode(TestFibonacci.py)を作成 import unittest from fibonacci import Fibonacci class TestFibonacci(unittest.T...

3目並べを利用したAlphaGoの学習 tensorflow-1編

1.概要 この記事は2023年の記事です。3目並べをプログラムすることでAlphaGoの学習をすることが目標でした。Tensorflow-1.0を利用した最適解の計算手順は当時とても苦労をしたので備忘録として残すことにしました。 AlphaGoの勉強過程で3目並べを学んでいます。前回までプログラムロジックを作成していましたが、今回から3目並べの全ての組合せデータを利用してAIでプログラミングに勝てるかを試します。DeepLearningとしてtensorflowの1.xと2.xの両方を試してみます。 DeepLearningでは、3目並べのフィールドを3×3のイメージと考え、手書き文字認識の手法を応用します。本記事では、以下の3つのステップを順に実装していきます。 (1) minimax法の解析を利用して学習用入力データを作成 (2) 作成した学習用入力データを利用して、tensorflowでモデル作成 (3) tensorflowのモデルを利用して実際に対戦 追加部分には、Tesnsorflowをnvidia GPUを利用するために工夫した内容を追記しています。 ・CUDA-10.0を利用する方法 ・nVIDIA Container Toolkitを利用する方法 ・miniconda3を利用する方法 2.詳細 (a) 概要 3目並べのフィールドを3☓3のイメージと考えて、手書き文字認識の手法を利用します。最初に利用する環境はtensorflow-1.15です。入力データはminimax法で活用したすべての手順(9!=362880)の組み合わせの中から勝負が決まった時点の3目並べのフィールド情報と結果(勝ち、負け、引き分け)を利用します。 tensorflowで利用できる形式に変換し、学習をしてモデルを作成し、モデルを利用して3目並べの対戦をします。元情報がminimax法で解析した情報なので、tensorflowによる学習結果がminimax法まで到達できると最高の結果です。大まかな手順は以下の通りです。 (b) 詳細 (1) minimax法の解析を利用して学習用入力データを作成 dlmakedata.pyを作成します。この中で利用するtictactoe.pyはmontecarlo版を利用します。 titactoeのコードは本ブログのTictactoe like...

3目並べを利用したAlphaGo学習の整理(基本)

記事の更新日:2026/09/30 評価を加筆、タイトルを短く変更 1.概要 The Wall Streat Journalの記事に、すべてを変えたAIの「第37手」今や至る所で、が掲載されました。10年前にAlphaGo碁がイ・セドルを勝った時です。その瞬間の感覚は忘れることができずAlphaGo碁の仕組みを知りたいと思って勉強を始めたことを思い出しました。 この記事は2023年の記事です。3目並べをプログラムすることでAlphaGoの学習をすることが目標でした。ロジックで3目並べを強くする考え方を順番に実施しています。当時とても苦労をしたので備忘録として残すことにしました。 AlphaGoの勉強過程で3目並べを学んでいます。考え方の基礎を知る上で大切なことであると思いネット上の資料も参考にしています。まず、参考資料を参照して、3目並べのルールを記述したClassを作成し、手入力とランダム入力の対戦ができることを実現しました。これをベースにして、今後、下記手順で作成したプログラムを改造して、3目並べを強くしていきます。 ・ランダム編    ランダムに交互に打つ手順 ・ミニマックス編  3目並べの中心を早く選択する処理を追加 ・アルファベータ編 ある手を打った後、勝利する確率が高い手を選択する処理を追加 ・モンテカルロ編  勝利する確率が等しい場合、乱数で選択する処理を追加 ゲームAIのロジックは一見すると難しく難解に思えますが、「ランダム」から始めて「ミニマックス」「アルファベータ」と一歩ずつ段階を踏んで考えていくと、複雑なロジックも紐解かれ、解決策が少しずつ見えてきます。本記事では、私が実際に苦労しながら一歩ずつステップアップしていった試行錯誤のプロセスを記録しています。 私の評価は以下の通りです。 (1) 3目並べを考えてコーディングするとロジックの学習になります (2) ルールは単純ですが、数学的な意味を理解することができます (3) 今回はロジックをプログラム、今後、tensorflowでデータからロジックを作成します (4) 私の理解不足もあり、作成したプログラムに誤りがあります。オリジナルの証です 2.詳細 ランダム編 (1) 概要 3目並べのルールに関しては、do_game(self, action)を実行することでゲームが進行するようにしま...

将棋AI「やねうら王」と将棋所の導入手順

記事の更新: 2026/09/06 1.概要 この記事は2022年の記事です。当時、Desktop PCやNote PCにubuntu 20.04を導入して動かしていました。本来は、LinuxMintで動作検証を実施することが必要ですが、手が回らずにできていません。将来見直す上でも備忘録として残すことにしました。 将棋ソフトは、ディープラーニング系とロジック系が競っている状態と言われています。ubuntuで楽しめるロジック系の将棋ソフトの「やねうら王」を導入して、動作させることをしました。今回はこの内容を記述します。 私の評価は以下の通りです。 (1) 将棋を十分に楽しめます。相当強く、勝てません。 (2) 「将棋所」はWindows対応で、ubuntuではmono-completeを利用します。 (3) ロジック部は「やねうら王」でubuntu環境でbuildして利用します。 (4) ロジック部の評価関数の違いで強さに差が出ます。関数名がポイントです。 注意事項 ライセンス・著作権およびマナー ライセンスの遵守:  「やねうら王」はGPLライセンス等に基づき公開されています。本ソフトを用いた研究、ソースコードの改変、派生ソフトの配布を行う場合は、原作者(磯崎元洋氏)のライセンス条項を必ず遵守してください。 配信・SNSでの取り扱い: AIの評価値や検討結果の画面をライブ配信やSNSで公開する際は、主催者の配信ガイドラインや、対局者のプライバシーに十分ご配慮ください。 著作権の尊重: 本ソフトそのもの、および付属する評価関数ファイル等の著作権は各開発者に帰属します。許可のない商用利用や不正な再配布は行わないでください。 2.詳細 参考資料に従って、将棋所(Shogidokoro)を利用して、2つの評価関数を導入する方法を記載します。 (1) 導入手順 (a) mono-complete導入 (b) takaoフォント導入 (c) shogirdokoro導入 (d) やねうら王の導入 (e) 評価関数Kristallweizen_kaiV0.4の導入 (f) 評価関数Elmo wcsc29の導入 (g) 定石の導入 (h) 将棋所(Shogidokoro)の起動 (2) 詳細 (a) mono-complete導入 $ sudo apt install mo...