ブログ内検索

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

最高の開発環境を求めて2024

/** Geminiが自動生成した概要 **/
ChromebookとRaspberry Pi 5の組み合わせが最高の開発環境。ChromebookのLinux開発環境(Crostini)の制限をRaspberry Pi 5をサーバーにすることで回避。複数人でRaspberry Pi 5にアクセスし、Micro Editorを使って開発することで、小中学生でも容易にコーディングが可能に。ChromebookのSSH機能強化も貢献。Raspberry Pi 5のストレージはNVMeに換装することで信頼性向上。以前のRaspberry Pi 4B単体での開発環境に比べ、高速でストレスフリー。Chromebookはターミナルとして使用し、開発環境はRaspberry Pi 5に集約することで、ChromebookのPowerwashの影響も回避。

 

さくらインターネットのVPSでUbuntuのアップグレード後にapt updateが使えなくなった時の対処

/** Geminiが自動生成した概要 **/
さくらインターネットのVPSでUbuntu 20.04から22.04にアップグレード後、`sudo apt update`が使えなくなり、pingも通らなくなった問題の解決策です。 原因は`/etc/resolv.conf`内のnameserver設定にあり、`127.0.0.53`を`8.8.8.8` (Google DNS) に変更することで解決しました。 ただし、`/etc/resolv.conf`の直接編集は再起動時に初期化されるため、正しくは`/etc/systemd/resolved.conf`に`DNS=8.8.8.8`を追記し、`sudo systemctl restart systemd-resolved`を実行する必要があります。

 

ESP8266のUART

/** Geminiが自動生成した概要 **/
ESP8266のREPLは、シリアル接続を通じてMicroPythonと対話するためのコマンドラインインターフェースです。UART0がデフォルトで使用され、ボーレートは115200bpsです。REPLでは、コードの実行、変数の確認、関数の呼び出しなどが行えます。Ctrl-Aでプロンプトの先頭、Ctrl-Eで末尾に移動できます。Ctrl-Bで一文字戻り、Ctrl-Fで一文字進めます。Ctrl-DでREPLを終了し、プログラムの実行を再開します。REPLはMicroPythonの開発やデバッグに役立つ強力なツールです。

 

BBC Micro:bitのUART

/** Geminiが自動生成した概要 **/
BBC Micro:bit (microbit) の UART 通信では、microbit から Raspberry Pi へのデータ送信と、その逆の受信が可能。microbit は `uart.any()` 関数を使用して受信データを待ち受け、Raspberry Pi はシリアルポートを介して通信する。データの送受信を確実に行うには、microbit と Raspberry Pi 間の TX/RX ピンの正しい接続と、双方で一致するボーレートの設定が重要。また、microbit では `uart.init(115200)` を使用してシステムを初期化することも推奨される。これらの手順に従うことで、microbit と Raspberry Pi 間の双方向 UART 通信を実現できる。

 

PHPのzvalと変数の作成を見る

/** Geminiが自動生成した概要 **/
PHPの変数はzval構造体とzend_value共用体で表現される。zvalは型情報を持ち、zend_valueは実際の値を保持する。整数、文字列、配列など、型の違いはzend_valueの異なるメンバを使用することで実現される。変数名とzvalの関連付けはシンボルテーブルを介して行われる。`$a = 1`のような代入では、zvalが初期化され、zend_valueの`lval`に1がセットされ、シンボルテーブルに"a"というキーでzvalへのポインタが登録される。これにより、変数名から対応する値にアクセスできるようになる。

 

SOY Shop 2.0.0 β

/** Geminiが自動生成した概要 **/
SOY Shop 2.0.0βでは、管理画面のUIをSOY CMS 3系に刷新。開発元の停滞を受け、非公式ながらバージョンアップを実施。拡張性向上のため、デザイン崩れを防ぐ3系テンプレートを採用した。標準機能のUI変更は完了し、プラグイン対応を進めている。現在はカスタムフィールド系、初期プラグイン、PAY.JP/Coiney決済プラグインが対応済み。今後、予約カレンダーや伝票管理プラグインへの対応を予定。データベース構造は変更なし。ダウンロードはsaitodev.co/soycms/soyshop/ から可能。管理画面のみ使用モードの追加により、ECサイト構築だけでなく、会員管理システムなど多様な用途にも対応できるようになった。

 

pickadate.jsでHTML5のrequired属性を使いたい

/** Geminiが自動生成した概要 **/
pickadate.jsでHTML5のrequired属性を使うには、`editable: true`オプションを設定する必要がある。ただし、これによりページ読み込み時にrequiredチェックが実行され、未入力エラーが表示される問題が発生する。これを回避するには、フォームにIDを付与し、クリックイベントでpickadateを初期化するよう変更する。さらに、カレンダー表示のために`pickr.pickadate('open')`も追加する必要がある。これにより、フォームクリック時に初めて初期化とバリデーションが行われるようになり、初期エラー表示の問題が解決する。

 

SOY CMSでMySQL8系に接続できない時の対処

/** Geminiが自動生成した概要 **/
MySQL8系にアップグレード後、SOY CMSが「データベースの接続に失敗しました」エラーで起動しない場合の対処法。原因はMySQL8.0の認証方式変更にPHPのPDOが対応していないため。Ubuntu環境で、MySQLの設定ファイル(/etc/mysql/mysql.conf.d/mysqld.cnf)の[mysqld]セクションに`default_authentication_plugin=mysql_native_password`を追加し、MySQLを再起動することで解決する。これはPDOの対応までの応急処置。

 

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端末に転送、インストール、実行。 端末の設定で「提供元不明のアプリ」を許可する必要がある。

 

自作アプリを介してのGoogle検索でService Unavailableになった

/** Geminiが自動生成した概要 **/
自作PHPアプリでGoogle検索結果を集計する際、cURLで検索を実行したところ「503 Service Unavailable」エラーが発生した。Googleはスクリプトからの自動検索を制限しており、エラーメッセージは異常トラフィックの検出を示していた。解決策として、`curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);`をcURLに追加し、ブラウザのユーザーエージェントを送信するように変更した。これによりエラーが解消し、検索結果の集計が可能になった。単に適当なユーザーエージェントを設定するだけでは解決せず、実際に使用しているブラウザの情報を送ることが重要だった。

 

社会人・学生向けプログラミング教室でコードレビューをしてみました

/** Geminiが自動生成した概要 **/
プログラミング教室で、文法は理解できてもコードを書けない生徒が多い原因を探るため、コードレビューを実施。100行程度のコードを一行ずつ解説させることで、関数の使い所、フォームの初期化、配列とオブジェクトの使い分けといった、具体的な実装における理解不足が課題だと判明。小さなアプリの処理を言葉で説明したり、写経と全行コメントで楽しく学習する方法を確立できれば、プログラミング学習の挫折者を減らせると考えられる。

 

SOY CMSでインストーラを削除せずにいたらどうなるか?

/** Geminiが自動生成した概要 **/
SOY CMSのインストーラを削除しないと、再インストールが可能になり、サイトデータが消去される危険性がある。攻撃者は用意したデータベース情報で再インストールし、初期管理者権限を奪取できる。管理画面URLが判明していれば、インストーラ経由でサイトを初期化・乗っ取りが可能。他CMSでもインストーラが残っていれば同様の危険があるため、インストール後は必ず削除する必要がある。


Powered by SOY CMS   ↑トップへ