ブログ内検索

プログラミング教材開発
大阪府高槻市原地区で肥料教室を開いています
検索キーワード:「CPU」
 

Ubuntu23.04でaptのリポジトリを復元する

/** Geminiが自動生成した概要 **/
Ubuntu 23.04でaptのリポジトリ設定を誤って削除したため、apt updateができなくなった問題とその解決策を記述しています。 まず、ソフトウェアとアップデートのGUIツールを使ってリポジトリ設定をデフォルトに戻そうとしましたが、apt-key形式の廃止によりエラーが発生しました。 解決策として、従来の`/etc/apt/trusted.gpg`に格納されていたキーを`/etc/apt/trusted.gpg.d/`ディレクトリ以下に移動し、`/etc/apt/trusted.gpg`を削除することで、エラーを解消しました。

 

ChromecastでSteam Linkを試してみた

/** Geminiが自動生成した概要 **/
著者は、Chromecast with Google TVでSteam Linkを使ってゲームができるか検証しました。しかし、ゲーム動作がカクカクしてしまい、原因を調査。ネットワーク速度を向上させるためにイーサネットアダプターを導入しましたが改善されず、Chromecastのスペック不足が原因と推測しました。そこでRaspberry Pi 4Bで試したところ、スムーズに動作。Chromecastのメモリ容量が影響している可能性を指摘し、他のスペックのマシンでの検証を希望しています。 追記として、Chromecastの後継機であるGoogle TV Streamerでも同様の検証を行った記事へのリンクが掲載されています。

 

MCreator 2022.2を使ってみた

/** Geminiが自動生成した概要 **/
Minecraft: Pi Edition: Rebornにアイテムを追加するため、MCreator2022.2を使用し、ブドウを追加する方法を解説した記事です。 まず、MCreatorをダウンロードしてインストールします。次に、新規Modを作成し、アイテムの画像を作成します。画像作成は、MCreator内のペイントツールを使用します。完成した画像は任意の場所に保存します。 この記事では、CPUがARM64のマシンにはMCreatorをダウンロードできないことも補足されています。

 

メインの開発機をRaspberry Pi 4Bにしてみる

/** Geminiが自動生成した概要 **/
## プログラミング教育におけるARM+Debian+Pythonの可能性(要約) 記事は、高性能化・低価格化したRaspberry Piに代表されるARMデバイスが、プログラミング教育に最適であると主張しています。 その理由は以下の3点です。 1. **安価で入手しやすい:** Raspberry Piは数千円で入手でき、故障時のリスクも低い。 2. **DebianベースのOS:** 安定性・信頼性が高く、豊富なソフトウェアが利用可能。 3. **Pythonの標準搭載:** 初心者に優しく、実用的なプログラミング言語として人気が高い。 これらの要素により、ARMデバイスは教育現場におけるプログラミング学習のハードルを下げ、生徒の学習意欲向上に貢献できると結論付けています。

 

AppImage形式のMinecraft: Pi Edition: Rebornでスキンを変更してみた

/** Geminiが自動生成した概要 **/
この記事は、AppImage形式になったMinecraft: Pi Edition: Rebornでスキンを変更する方法を解説しています。 まず、AppImageファイルを実行する準備として、`chmod`コマンドで実行権限を与え、`fuse`パッケージをインストールします。 スキンの変更は、`~/.minecraft-pi/overrides/images/mob/`ディレクトリに`char.png`という名前でスキンファイルを配置します。 ただし、このままだとスキンが崩れてしまうため、`minecraft_skin_fixer.py`というスクリプトを使って修正します。 最後に、AppImageファイルを`/usr/local/bin`に移動して`mcpi`というコマンド名で実行できるように設定しています。

 

プログラミング教育用のノートパソコンを探せ

/** Geminiが自動生成した概要 **/
Minecraft: Pi Editionを教材にプログラミング教育をしたいが、Raspberry Piは持ち運びに不便なため、代わりのノートパソコンを探している。Ubuntuが動作する中古PCでは性能不足が懸念される。そこで注目しているのが、QualcommのSnapdragonを搭載したSamsungの格安ノートPC「Galaxy Book Go」だ。ARMアーキテクチャを採用し、Ubuntuも動作する可能性があり、Raspberry Piの自由度とChromebookの価格帯の中間をいくマシンとして期待できる。

 

Minecraft: Pi Edition: Reborn on Ubuntu

/** Geminiが自動生成した概要 **/
記事では、子供向け科学雑誌に掲載された「Minecraft: Pi Edition: Reborn」(マイクラリボーン)を、Raspberry Piだけでなく、普段使いのUbuntuパソコンでも動作させた体験談を紹介しています。 記事では、マイクラリボーンがUbuntu 20.04以降で動作すること、amd64、arm64、armhfのdebファイルが配布されていることから、Intel Core i5搭載のUbuntuパソコンにインストールして動作確認を行ったことが記載されています。 その結果、Raspberry Pi版と同様に動作し、ローカルネットワーク経由で一緒に遊ぶこともできたと報告しています。 そして、この経験から、教育用パソコンにおけるARM、Debian、Pythonの重要性について、次回以降の記事で考察していくことを示唆しています。

 

SOY CMSのカスタムフィールドアドバンスドの見直しで表示速度の改善

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドとサムネイルプラグインの表示速度改善に関する記事の要約です。 記事では、多数の記事を表示する際に発生する表示速度の低下について、その原因と解決策が解説されています。 主な原因は、記事ごとにカスタムフィールドの値を取得する際に、データベースへのアクセスが繰り返されるためでした。 解決策として、記事に紐づくカスタムフィールドの値を全記事分一度に取得し、必要な値のみに絞り込むことで、データベースアクセスを削減しました。 この改善により、特に記事数が50件や100件といった大量に表示する場合に、表示速度の向上が期待できます。

 

改めてSPIについてを知る4

/** Geminiが自動生成した概要 **/
本稿では、SPI通信におけるSSとSCLKの役割を解説しています。SSはスレーブ選択信号で、LOWにすることで特定のスレーブとの通信を有効化します。SCLKはクロック信号であり、この規則的なHIGH/LOW変化を基準に同期してMOSI/MISOでのデータ送受信が行われます。 具体的には、SS1をLOWにし、SCLK信号に合わせてデータ送受信を行う例を図解で示しています。 今回のSPI通信解説により、以前の記事で扱ったESP8266,Raspberry Piを用いたソケット通信やUARTと合わせて、IoTにおけるセンサーデータ取得から遠隔地への送信までの仕組みの理解が深まります。

 

改めてSPIについてを知る3

/** Geminiが自動生成した概要 **/
SPI通信について、マスタースレーブ構成、データ送受信の流れ、シフトレジスタによるデータの受け渡しなど、具体的な例を挙げながら解説しています。\ 特に、8ビットデータ転送を図解で示し、LSB、MSB、MOSI、MISOといった用語を用いながら、マスターとスレーブ間におけるデータの移動を詳細に説明しています。\ 最後に、Raspberry PiとAD変換器を用いたSPI通信のコード例を紹介し、次回の記事ではシフトレジスタの仕組みやSSの役割について解説することを予告しています。

 

改めてSPIについてを知る1

/** Geminiが自動生成した概要 **/
SPIは、マスター機器が複数のスレーブ機器と通信する規格です。マスターはSCLK, MISO, MOSI, SSの4つの信号線でスレーブと接続します。SSはスレーブ選択線で、マスターはHIGH/LOWを切り替えることで、どのスレーブと通信するかを選びます。複数のスレーブを接続する場合、マスター側にスレーブ数分のSS(GPIOピン)が必要です。SSは通信開始と終了の合図にもなります。

 

Pythonでビット演算子のビット否定に触れる

/** Geminiが自動生成した概要 **/
Pythonではビット否定演算子~を使うと、整数のビット反転ではなく、**負数の表現**として用いられます。 記事中の例では、13 (~0b1101) のビット否定は、-14 (-0b1110) となります。これはPythonが整数を**符号付き2進数**で表現しているためです。符号付き2進数では、最上位ビットが符号を表し、残りのビットが数値を表します。 ビット反転を行うには、ビット演算とマスクを組み合わせる必要があります。単にビット反転を行うだけであれば、`~` 演算子ではなく、各ビットを反転する関数を定義する方が分かりやすいかもしれません。

 

Pythonでビット演算子の排他的論理和に触れる

/** Geminiが自動生成した概要 **/
Pythonのビット演算子の一つである排他的論理和(XOR)について解説しています。XORは、^ 演算子で表され、2つのオペランドのビットが異なる場合に1を返す演算です。 記事では、真理値表を用いてXORの動作を具体的に説明し、13と10のXOR演算を例に、ビット演算の結果が7(0b111)になることを示しています。さらに、ビットごとのXOR演算を手計算で説明し、2進数表現での理解を深めています。 最後に、CPUの説明などで用いられるXORの記号を紹介しています。

 

Pythonでビット演算子の論理積に触れる

/** Geminiが自動生成した概要 **/
今回の記事では、Pythonのビット演算子の一つである論理積(&&)について解説しています。論理積は2つの値の両方が1の場合にのみ1を返す演算です。 記事では、変数 `cmdout` と16進数 `0x80` の論理積を計算するコードを例に挙げています。`cmdout` は、前の処理で192(2進数で `0b11000000`)に設定されています。`0x80` は10進数で128、2進数で `0b10000000` です。 これらの論理積をとると、`0b10000000` となり、これは10進数で128です。 記事では、この計算がSPI通信でのデータ送受信に関連していることを示唆していますが、具体的な意味についてはまだ明らかにされていません。 最後に、論理積を表す電子回路の記号も紹介されています。

 

Pythonでビット演算子の論理和に触れる

/** Geminiが自動生成した概要 **/
Pythonのビット演算子、特に論理和(OR)について解説しています。 記事では、UARTとSPIの通信方式の比較を題材に、SPI通信のコードで使われているビット演算を理解しようと試みています。 まず、`|=`という演算子がビットごとの論理和を計算し、結果を変数に代入するものであることを説明します。 具体例として、`cmdout |= 0x18`というコードを解説しています。初期値0の変数`cmdout`と16進数`0x18`(2進数では`00011000`)の論理和を計算することで、`cmdout`の値が`00011000`となり、10進数では24になることを示しています。 最後に、論理和を表す回路図の記号も紹介しています。

 

プログラミング教育で注目すべきはARM + Debian + Pythonであるはずだ

/** Geminiが自動生成した概要 **/
プログラミング教育の格差解消には、安価で高性能なARMアーキテクチャ搭載PCが有効である。Raspberry PiはDebian系OSとPythonを標準サポートし、電子工作から本格的な開発まで対応可能なため、ChromebookやMicro:bitよりも優れている。ARM対応ソフトの充実が課題だが、低価格でDebianやPythonに触れられる環境は、OSSやサーバー学習へのハードルを下げ、将来的なIT人材育成に貢献する。

 

Raspberry Pi 4 Model Bを購入した

/** Geminiが自動生成した概要 **/
子供に初めて与えるPCとしてChromebookを検討していた筆者は、Micro:bitのシリアル通信の課題からRaspberry Pi 4 Model B(8GB)を購入。GPIOピンによる電子工作の可能性、安価でLinux学習に適した点を評価している。Raspberry Piはクレジットカード大の基盤に主要部品を搭載し、microSDカードにOSをインストールして使用する。高スペックゆえの発熱対策として冷却ファン付きケースも購入。Raspberry Piを子供用PCとするには、親のLinux(Debian系)知識やハードウェア管理の理解が必要と結論づけている。

 

ChromebookのLinuxアプリで日本語入力をできるようにする

/** Geminiが自動生成した概要 **/
ChromebookのLinuxアプリで日本語入力をするために、MozcとFcitxをインストール・設定する方法を解説。locale設定後、MozcとFcitxをインストールし、設定ファイルを編集してFcitxを自動起動するように設定。fcitx-configtoolでMozcを追加し、geditで日本語入力を確認。geditでは挙動が怪しかったが、他のアプリでは正常に動作。Javaアプリでも日本語入力可能になった。cros-imを使う方法もあるが、geditでは漢字変換できない問題がある。

 

Chromebookはプログラミングの教育の端末として向いているか?を調査する

/** Geminiが自動生成した概要 **/
ChromebookのLinuxアプリで日本語入力ができない問題を解決する方法を解説した記事の要約です。 ChromebookのLinux環境では標準で日本語入力ができません。この記事では、fcitx-mozcをインストールすることで日本語入力できるようにする方法を、スクリーンショット付きで丁寧に説明しています。 まず、Linuxターミナルを開き、必要なパッケージをインストールします。次に、設定ファイルを作成・編集し、fcitxを起動するように設定します。最後に、Chromebookを再起動し、入力メソッドの設定で日本語(Mozc)を選択すれば、日本語入力が可能になります。記事では、詳細なコマンドや設定内容、トラブルシューティングについても触れています。

 

UbuntuでさくらのVPS for Windows Serverを使用する

/** Geminiが自動生成した概要 **/
Ubuntu環境で、Remminaを使ってさくらのVPS for Windows Serverに接続する方法を解説。Remminaをインストール後、起動し、新規プロファイルを作成。VPSの接続情報を入力する際、色数をGFX RFX (32 bpp)に変更することが重要。標準の色数のままだと接続エラーとなる。設定保存後、接続ボタンをクリックすることで、Windows Serverのデスクトップ環境にアクセスできる。

 

Go言語でKVSのRedisを使ってみる

/** Geminiが自動生成した概要 **/
Go言語で複数サーバ間のセッション共有を実現するため、KVSのRedisを導入した。UbuntuにRedisをインストール後、Go言語でRedigoパッケージを用いてRedisに接続。`conn.Do("コマンド", "キー", "バリュー")`でRedisを操作し、SETで値を格納、GETで取得、DELで削除できることを確認した。ただし、削除済みキーを取得するとGo側ではエラーが発生する点に注意が必要。Redisを用いることで複数サーバ間のデータ共有が可能となる。

 

Go言語でQtを扱ってみる on Ubuntu

/** Geminiが自動生成した概要 **/
Ubuntu 18.04にGo言語とQtをインストールし、GoでQtアプリケーションを開発する手順を記録した記事です。Go 1.11、Qt 5.11.1をインストールし、QtのサンプルWebブラウザの実行を確認後、GoのQtバインディングパッケージ`github.com/therecipe/qt`をインストールしました。`qtsetup`コマンドでパッケージの準備中に問題が発生しましたが、`generate`終了時点で中断し、サンプルプログラムを実行したところ、正常に動作することを確認しました。

 

UbuntuでAndroid Debug Bridgeを使ってみる

/** Geminiが自動生成した概要 **/
Ubuntu 18.04でAndroid Debug Bridge (ADB) を使用してAndroidアプリをデプロイする方法を紹介しています。ADBをインストール後、Go Mobileのサンプルコードをエミュレータと実機(ZTE Blade V580, Android 5.1)にデプロイしました。エミュレータではバージョン不一致でアプリは起動しませんでしたが、実機では開発者モードを有効化し、USBデバッグをONにすることで、`gomobile install`コマンドでアプリのデプロイと起動に成功しました。

 

UbuntuにAndroidのエミュレータを入れる

/** Geminiが自動生成した概要 **/
Ubuntu 18.04にAndroidエミュレータを導入する方法。必要なライブラリをインストール後、Android Studioをダウンロード、インストールし、パスを通す。次に、KVM関連のライブラリをインストールし、ユーザーにKVMの使用権限を与える。Android Studioを再起動し、AVDマネージャーから好みのエミュレータを作成、実行することで、開発機上でAndroidアプリの動作確認が可能になる。

 

Go言語のGo MobileでAndroidアプリを開発してみる

/** Geminiが自動生成した概要 **/
Ubuntu 18.04 でGo言語を用いてAndroidアプリ開発を行う手順を解説。Go Mobileを利用し、サンプルコードをAndroid端末で実行するまでを扱う。 開発環境としてJava8、Android NDK r16b、Go 1.10.3を導入。 zshを使用しているため、`.zshrc` にパスを設定。 Go Mobileのインストールと初期化後、サンプルコード`golang.org/x/mobile/example/basic`を取得し、`go run`で動作確認。 `gomobile build`コマンドでapkファイルを生成し、Dropbox経由でAndroid端末に転送、インストール、実行。 端末の設定で「提供元不明のアプリ」を許可する必要がある。

 

Ubuntuで突然キーボードの操作が反応しなくなった時の対処のメモ

/** Geminiが自動生成した概要 **/
Ideapad 720SにUbuntuをインストール後、Wi-Fiが使用できない問題が発生。解決策として、追加ドライバのインストールが必要。具体的には、「ソフトウェアとアップデート」→「追加ドライバ」タブから、Broadcomワイヤレスアダプタ用のドライバを選択し適用する。再起動後、Wi-Fiが利用可能になる。 しかし、サスペンドからの復帰時にWi-Fiが切断される問題が残る。 これに対する解決策として、/etc/pm/config.d/configファイルを作成し、特定のコマンドを記述することで、サスペンドからの復帰後もWi-Fiが有効な状態を維持できるようになる。

 

Go言語で並行処理(ゴルーチン)

/** Geminiが自動生成した概要 **/
Go言語の並行処理(ゴルーチン)は、`go`キーワードで関数を起動することで実現される。 `go print("hello")`のように記述すると、`print("hello")`は別のコア/スレッドで実行され、`print("world")`と並行して処理される。 例では、helloとworldが交互に表示される。これは、同時アクセス処理やファイルアップロードなど、結果の順序が重要でない処理に有効である。ゴルーチンにより、複数の処理を効率的に並行実行できる。

 

SOY CMSのブログブロックの使用を制限して、ブログページの高速化

/** Geminiが自動生成した概要 **/
Googleは常時SSL化をランキング要因の一つとしています。つまり、サイトがHTTPSを使用しているかどうかは、検索結果の順位に影響を与えます。しかし、その影響は軽微であり、他のSEO対策と比べると優先度は低いと言えるでしょう。 常時SSL化の主なメリットはセキュリティの向上です。ユーザーの情報を暗号化することで、盗聴や改ざんのリスクを軽減できます。これはユーザーの信頼感向上に繋がり、間接的にSEO効果に繋がる可能性があります。 また、常時SSL化によってサイトの表示速度が向上する可能性も指摘されています。Googleはサイトの表示速度もランキング要因としているため、結果的にSEOに良い影響を与える可能性があります。 しかし、常時SSL化自体が劇的なSEO効果をもたらすわけではないので、他の重要なSEO対策を疎かにしてまで優先するべきではありません。コンテンツの質やユーザーエクスペリエンスの向上など、他のSEO対策と並行して行うことが重要です。

 

続・Ideapad 720SにUbuntuを入れてWi-Fiを使用する

/** Geminiが自動生成した概要 **/
modprobeコマンドはLinuxカーネルモジュールを管理する。カーネルモジュールは、デバイスドライバやファイルシステムなど、カーネルの機能を拡張するコンポーネント。modprobeを用いて、これらのモジュールを動的にロードまたはアンロードできる。これは、システムリソースを効率的に使用し、必要に応じて機能を追加/削除する柔軟性を提供する。 ArchWikiのカーネルモジュールページでは、モジュールの種類、ロード方法、設定ファイル、トラブルシューティングなど、詳細な情報が提供されている。

 

Ideapad 720SにUbuntuを入れてWi-Fiを使用する

/** Geminiが自動生成した概要 **/
Lenovo Ideapad 720SにUbuntu 18.04β版をインストールしたが、内蔵Wi-Fiアダプタは使用できなかった。Wi-Fiアダプタ自体はRealtek製で物理的には動作しているものの、対応するドライバが見つからない。ArchWikiやRealtek、Githubのリポジトリを調査した結果、rtl8821ceドライバが必要だとわかったが、Ubuntuに導入できる形では提供されていない。そのため、現時点ではUSB接続のPocketWifiを利用してインターネットに接続している。

 

Ryzen搭載のノートパソコンにUbuntuのインストールで苦戦した

/** Geminiが自動生成した概要 **/
Ryzen 5 2500U APU搭載のノートPCにUbuntuをインストールすると、フリーズが発生し失敗した。翌朝、研究すると、Ryzen APUにはLinuxカーネル4.15のAMD GPUドライバーが必要であることが判明。Ubuntu 18.04のβ版イメージを作成し、UEFIから起動させるとインストールが成功した。現在は問題なく動作するが、正式版がリリースされる4月末までは仕事を保留する。

 

ロードアベレージ

/** Geminiが自動生成した概要 **/
サーバ監視の重要指標であるロードアベレージは、CPUリソースへの需要を示す。実行中のスレッドと実行待ちスレッドの合計から計算され、uptimeコマンドで1分、5分、15分間の平均値を確認できる。ロードアベレージがCPU数を超えると、CPUが不足しスレッドが待機している状態を示す。逆に下回ればCPUに余裕がある。例として、2コア2スレッドCPU(論理CPU4)でロードアベレージ0.47は余裕がある状態と言える。

 

CPUの監視2

/** Geminiが自動生成した概要 **/
MuninのCPU監視項目を解説。systemはカーネルモード、userはユーザモードのCPU使用時間。niceは低優先度プロセスの数、idleは未使用時間。iowaitはI/O待ち、irqとsoftirqは割り込み処理時間。stealは仮想環境でタスク実行が遅延された時間。guestはゲストOS(Webアプリ)のCPU使用時間。各項目を理解した上で、次にファイルシステムの監視に移る。

 

CPUの監視

/** Geminiが自動生成した概要 **/
MuninのCPU監視グラフ解説の導入部分。CPUは計算処理を行う部分で、ユーザモードとカーネルモード(OSの基礎処理)を使い分ける。カーネルモードではシステムコールを介してOSに処理を依頼する。CPUは割り込み機構により処理を中断できる。CPUは同時処理に見せかけて、実際は処理を切り替えながら実行している。詳細は次回に続く。

 

メモリーの監視

/** Geminiが自動生成した概要 **/
Muninでメモリ監視を開始し、システムパフォーマンス書籍を参考にグラフの各項目を調査。freeコマンドの結果、サーバはオーバースペック。appsはメモリ使用量、page_tablesはプロセスアドレスのマッピング、slab_cacheはカーネルキャッシュ。キャッシュは処理結果を保存し高速化を図る仕組み。バッファは一時データ用メモリ領域。unusedは未使用メモリ、vmalloc_usedは割愛。committedは全プロセスの仮想メモリ総容量、mappedは物理メモリ総容量。activeは最近アクセスされたメモリページ、inactiveはそうでないメモリページの容量。グラフからもサーバのオーバースペックさが明確。

 

Goのgoroutineで平行処理を試してみる

/** Geminiが自動生成した概要 **/
Goのgoroutineを用いた並行処理の練習として、偶数奇数判定プログラムを例に解説。通常は上から順に実行されるコードを、計算(sender)と表示(receiver)に分け、channelで繋ぐことで並行処理を実現。senderは計算結果をchannel(ch,ch2)に送り、receiverはselect文でch,ch2から値を受け取り表示する。例ではgoroutineの利点は活かされていないが、マルチコア風な処理を記述できた。

おすすめの検索キーワード
おすすめの記事

Powered by SOY CMS   ↑トップへ