2021年11月28日日曜日

XAMPP for macOSのインストールと使用感

以前の続きです。メインで使っていた自作PC新しい自作PCに交換したため、以前に構築していたLAN専用Webサーバ(Apache2phpMySQL)が使えなくなってしまいました。そこで、より簡単にこれらの環境を構築するためにXAMPPを利用することにしました。

XAMPPは、Apache Friendsによって開発・メンテナンスされているツールで、Apache2とMariaDB、PHP、Perlを一括して導入・管理することができるスグレモノです。WindowsmacOSLinuxに対応しており、Webサイトの動作確認程度なら必要十分といった感じで申し分ありません。特に、過去にこれらのシステムを別々に導入し、連携させることに苦労させられた人ならこの価値を理解できることと思います。

というわけで、XAMPPの使用感をテストするべくサブマシーンとして使っているiMac(21.5-inch,2017)へのインストール作業をはじめました。XAMPPのトップページにダウンロードのリンクがあるので、そこからmacOS用「xampp-osx-8.x.x-x-vm.dmg(現時点での最新版は8.0.13-0でした)」をダウンロードします。このdmgディスクイメージファイルをダブルクリックでマウントすると、XAMPPのアプリアイコンが現れてアプリケーションフォルダへドラッグ&ドロップするよう促されるので指示に従います。インストール作業はこれで終了です。

アプリケーションフォルダ内のXAMPPアプリケーションをダブルクリックで起動します。macOS(Monterey)の場合は初回の起動時にインターネットからダウンロードしたプログラムだけど開いてよいかと聞かれるので、「開く」を選択します。すると、画面中央にXAMPPの操作画面が表示されるので、「Start」ボタンをクリックします。暫く待つとStatus:が緑色になり、IP Address:にアドレスが表示されます。「Go to Application」ボタンを押すと、デフォルトで設定されているブラウザーが開いて無事にWebサーバが立ち上がったことが確認できました。

次に「Network」タグを開いて「localhost:8080」と「localhost:8443」を「Enable」ボタンを押して有効にします。これで、Webブラウザーから「localhost:8080」「localhost:8443」にアクセスすると、それぞれ「http://localhost:8080/dashboard/」と「https://localhost:8443/dashboard/」でWebサーバのトップページが表示されるようになります。(2つの違いはhttpとhttpsの違いです)

続いて「Volumes」タグを開いて見るとhtmlファイルなどの保存場所は「/opt/lampp」以下になっているようで、「Mount」ボタンを押すとデスクトップに「lampp」としてマウントされます。中を見てみると、「htdocs/dashboard」フォルダ内にあるものがデフォルトで表示されるページのようです。(Webブラウザーがはじめに参照している場所も「〈IP Address〉/dashboard」になっています)これについては、「etc」フォルダ内のいずれかのconfファイルを変更すれば、任意の場所に設定することができそうです。confファイルをいじっていない状態で見られることが確認できたページは以下の通りです。

http://〈IP Address〉/dashboard/jp/ … トップページが部分的に日本語になる。
http://〈IP Address〉/dashboard/phpinfo.php … phpinfoのページが表示される。
※「http://〈IP Address〉」を「http://localhost:8080/」や「https://localhost8443/」にしても表示されます。
http://localhost:8080/phpmyadmin/ … phpの設定画面が表示される。
https://localhost8443/phpmyadmin/ … 同上

設定の仕方などについては、「FAQs」のページにありそうなので英語と格闘しながら使い方を学んでいきたいと思います。使用感としては、万人向けとは言えないものの、同様の環境を自力で構築してきた経験があれば、簡単に移行できるのではないかと感じました。
#今回は、XAMPPの公式サイト以外にFree StyleというWebサイトの「Mac用のXAMPPをインストール。ローカル開発環境の準備と簡単な使い方」も参考にしました。

2021年11月25日木曜日

Bitnamiで作られた蔵書管理システムに挑む

 5年ほど前のこと。勤務していた学校で、学校図書館の蔵書管理システムを、当時から数年前に保護者だった方が無償で作ってくださったものを使っていました。このシステムについては、メンテナンスができる人が他におらず、その保護者だったの方にお願いをする以外にないのこと。システムの作成からかなりの年数が経っており、保護者だった方との連絡もしばらくしていないということでした。

ざっくりと状況を確認してみると、パソコン(スタンドアローン)で蔵書や利用者、貸出・返却の管理をするためのシステムで、ベースになっているものがありそうでした。このシステムに利用者番号をバーコードに書き出す機能があって、それをプリントアウトして切り貼りしてクラスに分けて利用しているとか。これはあまりにも非効率的です。利用者情報をCSVで書き出せる機能もあるというから、それを使ってExcelでクラス分けをして、Wordでバーコード化して差し込み印刷したら良いのではと提案してみました。これは、結局私がやることになりましたが、この程度なら難しいことはありません。(時間はかかるけど)

問題は、利用者番号のバーコード化がどのコードで行われているかを解析しないといけなかったこと。これは、USB接続のバーコードリーダーを使って蔵書管理システムから出てきたバーコードを別のパソコンで読み取って解析しました。すると、利用者番号は「コード39」でバーコード化されていることがわかりました。そこで、CSVで書き出したデータをExcelで開き、利用者番号をアスタリスク「*」で囲むようにした列「="*"&(利用者番号のセル)&"*"」を追加して、Excelの書類として保存しました。これを、Wordの差し込み印刷設定の中にある「バーコード挿入」機能を使ってバーコードに変換します。これはとても便利な機能だし、使い方も簡単です。

これでバーコードのクラス分けが簡単にできるようなりました。喜びも束の間で問題が発生。この蔵書管理システム自体が突然動かなくなってしまったのです。

この蔵書管理システムは、Windows上でWebアプリケーションのような形で動いているらしいことはわかっていましたが、詳しいことは全くわかりませんでした。とにかく、このシステムの正体を探るべくパソコン内を調査開始。すると、「Ruby on Rails」と「MySQL」を使っていることがわかってきました。この組み合わせで簡単に動かすことができるものを調べていくと「Bitnami」のサービスを使っているのだということがわかりました。

ここまでわかったところで、つてを辿ってこのシステムを作成した卒業生の保護者と連絡を取り、いろいろとヒントを貰いました。最終的には、再インストールしか復旧の方法はないかもしれないというところまで話が進みましたが、諦めるのはまだ早いと思いさらに調査を続けました。

挑むこと数日間。問題は、「rubystackMySQL」が動いていないことだったというところまで突き止めることができました。Windowsのサービスのリストを見ると「rubystackMySQL」が「自動」的に起動することになっているのに、起動即終了という状態になってしまっていました。さて、これを動かすにはどうしたら良いか。さらに調べていくとイベントビューアーのWindowsログに以下のようなエラーが残されていました。
#「日付」と「時刻」は伏せました。

エラー     (日付) (時刻)     MySQL   100     なし
        Binlog has bad magic number;  It's not a binary log file that can be used by this version of MySQL
エラー     (日付) (時刻)     MySQL   100     なし
        Can't init tc log
エラー     (日付) (時刻)     MySQL   100     なし
        Aborting
情報      (日付) (時刻)     MySQL   100     なし
        C:\Program Files (x86)\BitNami RubyStack\mysql\bin\mysqld.exe: Shutdown complete
このパターンは、「【MySQL】Binlog has bad magic number のエラーで起動しない」と同じではないかと思い、上記Webサイトを参考にして、以下のファイルを削除しました。
  • C:\Program Files(x86)\BitNami RubyStack\mysql\data\mysql-bin.000547(止まった時の最後のログファイル)
  • C:\Program Files(x86)\BitNami RubyStack\mysql\data\mysql-bin.index(止まった時と同時に更新が止まっていた)
これで再起動すると、蔵書管理システムが正常な時と同じように表示するようになりました。いくつか動作確認をして、学校図書館の司書さんにもいじってもらいましたが全く問題なし。無事に復旧させることができたという話でした。学校図書館に限らずこういうシステムを組むときにはメンテナンス性を考えるのはとても重要なことだと思います。今はGIGAの関係でGoogleが提供するシステムを利用することが推奨されていますが、自由度という面では課題が残ります。今後のスタンダードが何になるかわからないところですが、個人的にはXAMPPのようなものが普及していくことを期待しています。

PukiWikiとか、NetCommonsXOOPS…)とか、いろいろあるけどね。

2021年10月31日日曜日

Chromebookでデジタル・シティズンシップの授業

新型コロナウィルス感染症拡大防止に係る緊急事態宣言が解除されて、学校でも様々な行事が少しずつ行われるようになってきました。そんな中、年度当初から予定されていた学校公開日も、感染拡大防止対策を採りながら児童の家族限定、1人1時間(単位時間は45分)参観で行うことになりました。

3日間で2時間ずつ、1学級につきトータルで6時間の公開を予定しましたが、担任の負担を少しでも減らすために、担任外の教員が積極的に授業を担当することになったため私にも出番がやってまいりました。

依頼されたのは、3年生に情報関係の授業をしてほしいとのこと。そこで、Chromebookを自宅に持ち帰って学習に使う際にどんなことに気をつけたらよいか考えるという学級活動の授業を行うことにしました。タイトル(題)は、「想像力をはたらかせて考えよう」です。

勤務校の3年生は3学級あるのですが、1学級は普段から週1回書写を教えている学級で、残りの2学級は1度も授業をしたことがない学級です。授業の前に各自のChromebookを用意しておいてもらいました。授業のはじめに本時の授業の趣旨を簡単に説明したら、Chromebookを起動して指定したクラスルーム(classroom)に入るところからスタート。リテラシーは様々。キーボードからアルファベットを探すだけで一苦労という状態の子どもたちが多数いる中で、「自分が考えたことを入力して送信する」という課題はかなりハードルが高かったようでした。それでも、「キーボードの打ち方を練習する」という方向に行きたくないのが私のこだわりでもあります。「自分の考えたことをみんなで共有する」ということをモチベーションとして、一生懸命目指す文字のキーを探し、たどたどしくても簡易でも良いから文章を完成させて送信し、自分が書いたことがみんなに共有されていくことを楽しんだり達成感を味わったりする中でスキルは自然に身についていくものと思うからです。

1つ目の質問「Chromebookでどんなことをしたいですか?」をワークシートに記入した後、予め作っておいたフォーム(forms)に入力・送信する場面ではかなり苦労していましたが、2つ目の「どんなことに気をつけなければならないと思いますか」をフォームに入力・送信する頃には、既にスキルが上がっていました。これには、授業をしているこちらが驚くほど。ネット環境やら各種設定やらに問題があって、いろいろ(詳述できない)つまずきがあったのですが、そのうち、「日本語にならない」(日本語変換モードになっていない)「キーがない」(みつからないだけ」とか「”ん”はどうやって出すんですか」とか「小さい”っ”はどうやるんですか」と少しずつ質問のレベルもアップしてきて自分の考えを打ち込む作業が進んでいることがわかりました。

子どもたちのフォームへの回答を大型モニタに映し出して確認しながらまとめていくと、3学級それぞれ少しずつ表現は違いますが、Chromebookをていねいに扱うことや人を傷つけるような使い方をしないこと、決まりごとを守ることなどの内容に集約されました。

最後は、1時間の感想をクラスルームで共有しようと思っていたのですが、残念ながらワークシートに書き込むのが精一杯の時間しか残っておらず、担任の先生方へ「別日にもう1時間ください」とお願いをして終えました。かれこれ25年くらい前に情報モラル(倫理)の授業を行ったとき、デスクトップに表示される様々なアラートなどをよく見もしないで「OK」を押す子が多かったという結果になりましたが、今回の子どもたちは、手を挙げて「どうすればいいですか?」と聞く子たちでした。それでも、アラートなどの内容をよく読まない(読めないということもある)のは同じです。将来的には、パソコンやスマホなどのメッセージやインターフェイスから状況を読み取って、どうすればよいかを自分で判断できるようになると良いと思っています。(「今回はOKを押して良いけれど、自分で読む習慣を身に付けようね」と話しました)

2021年10月30日土曜日

iMacに接続した外付けHDDを共有フォルダとして設定してMacBook ProのTime Machineディスクとしても使う

自分の備忘のために記録しておきます。

macOSで使われているファイルシステム(フォーマット形式)は、主にAPFSとHFS+(Mac OS拡張(ジャーナリング))で、特にAPFSはmacOS 10.13以降で使用されるようになったファイルシステムです。自宅には、常用している外付けHDDが2台あり、この外付けHDDをそれぞれデータ保存用とTime Machine用として使っています。データ保存用として使っている1台は、HFS+(大文字/小文字を区別)でフォーマットされていて、私が使ってきた歴代のMacで作ったファイル等が保存されているのですが、今回はもう1台のTime Machine用として使っている外付けHDDの話です。

Time Machine用として使っている外付けHDDは、ロジテックのHDDケース(LHR-2BRHU3)にSEAGATEの内蔵用2TB HDD(BARRACUDA)を2台入れてRAID 1(ミラーリング)で使っていました。これをiMac (21.5-inch,2017)に接続して共有設定をして、MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)でも使えるようにしていました。導入したのは2018年の3月で、当時も苦労しながら設定をした記憶があります。(しかし、その内容が記録されていなかった…)

導入から3年半が経過し、2TBの容量をほぼ使い切った状態になっていて、容量を増やす必要に迫られました。いつものAmazonで少し安くなっていた同じSEAGATE BARRACUDAの8TBを2台(ロジテックのHDDケース(LHR-2BRHU3)で扱える最大容量)を購入して入れ替え作業&再設定をすることにしました。

Macの電源を落として外付けHDDたちを外し、HDDケースの方を開けて中のHDDを8TBのものに換装し、元通り組み上げてiMacに接続しました。これで、8TB(RAID 1)外付けHDDができました。(これを「8TB HDD」と呼ぶことにします)さて、ここから試行錯誤の始まりでした。

8TB HDDのフォーマットをAPFSにすると、ユーザーの設定(所有者=私、以外に読み書きできないようにしたい)がうまくできません。共有設定でファイル共有の設定をいじってもうまく反映されません。MacBook ProでTime Machineディスクとして設定しても、書き込む権限がないと言われてしまいます。仕方がないのでHFS+にしようと思ったら、ディスクユーティリティでは一度APFSでフォーマットしたものをHFS+などにはできないことが判明。仕方がないので、常用しているLinux MintのPCにつないで別のフォーマットにしてから再びiMacのディスクユーティリティでHFS+でフォーマットしました。すると、ユーザー設定がうまくできたので、共有設定をしてからMacBook ProでTime Machineドライブとして設定をしました。これでうまく行ったと思ったら、同じ8TB HDDをiMacでもTime Machineディスクとして使用しようと設定したところ、強制的にAPFSとして認識されるようになり、MacBook Proからは使えなくなってしまいました。

再びLinux Mintの力を借りてから再度iMacでフォーマットのやり直し。HFS+でフォーマットして共有設定を済ませたら、MacBook ProからだけTime Machineディスクとして使えるようにしました。ここでiMacのTime Machineディスクとして設定してしまうと元の木阿弥なので、8TB HDDを2つのパーティションに分けることにしました。ディスクユーティリティでHFS+のパーティションを2つに分ける設定をしたところ、MacBook ProのTime Machineのバックアップはそのままで2つ目のパーティションが出来上がりました。これをiMacのTime Machineディスクとして設定すると、勝手にAPFS(大文字/小文字を区別)に変更されましたが、MacBook Proが使っている領域に影響はありませんでした。これで、ようやく作業が終了しました。過去には、Time Machineディスクを2台(以上?)のMacで共有することが可能だったけれど、macOSのバージョンアップとともにそれができなくなったものと理解しました。(現在使っているのはMontereyです)Time Machineの設定が安定したためか、他に共有フォルダで運用しているものの挙動が安定するようになりました。

2021年10月19日火曜日

カブトムシの世話(2021秋)〜幼虫も食欲旺盛

夏の時季に成虫のカブトムシをあまり見かけなかったため、今年はかなりの羽化不全を疑っていました。死骸の片付けも大変だし、このままやめてしまっても良いかなとさえ考えていました。そうこうしているうちにプライベートが忙しくなってしまったため、成虫がいなくなってからは長らく放置してしまっていました。ここのところ、流石に寒い日が続くようになってきたのでどちらにしても様子を見ておかないとと思いコンテナを覗いてみました。すると、マットの表面はフンだらけになっており、数匹の幼虫がクヌギの朽木をかじっていました。たくましく生きていたカブトムシたちに感動するとともに、これはイカンと思い急遽世話をすることにしました。

生憎の雨の中、カブトムシの飼育コンテナを軒下まで移動し、フンを取り除きながら幼虫たちの様子を確認していきました。こぶりな2齢虫と既に大きく成長している3齢虫とが出てきました。合わせてその数57頭!昨年は35頭だったので、これは予想外でした。羽化不全の個体の死骸は見当たらなかったので、蛹化の時点で失敗していて土に帰ったのか、幼虫たちの餌になってしまったのか、詳しいことはわからないのですが、とりあえず個体数が増えたことに対応しなければならない状況になりました。(足りないものは急いで買いに行かないと手に入らなくなります)

昨年の秋もやりましたが、腐葉土飼育にするとマットが土化するのが早いため、ほとんどを取り除いて新しくマットを作り直しました。今回使ったのは、腐葉土40Lとくぬぎマット25Lでした。(くぬぎマットへの加水はしっかりと丁寧にやりました)プライベートが忙しくて購入するのを忘れてしまっていましたが、今年の冬から来年春にかけて必要な分が足りなくなりそうなので急いで購入しに行きました。幸いくぬぎマット10Lが2つお店に残っていたので、すぐに購入しました。腐葉土は比較的いつでも手に入るので、慌てずに購入しに行きたいと思います。

取り除いたフンは、勤務校の花壇の肥料に使ってもらうことにします。厚手のゴミ袋2枚に20Lくらいずつに分けて入れましたが、水分が多いためかかなりずっしり重たく感じました。自分の仕事が忙しいのでいつできるか(誰にやってもらうか)わかりませんが、有効に活用したいと思います。

2021年10月18日月曜日

運動会のYouTubeライブ配信をしてみた

コロナ禍により学校でも各種イベントが縮小傾向にあり、検温やマスクの着用をお願いした上で参会者数を限定する様々な工夫が行われています。そんな中、「運動会のライブ配信ができないか」という話になりました。GIGAスクール構想の関係で導入されているChromebookは児童生徒用ですが、勤務地では、教員にもこれまでの校務用とは別に、授業用にWindowsタブレットが整備されました。今回は、これを使ってみてはどうだろうかという話になったのでした。

実際には、セキュリティに係る設定の問題で簡単にはできなかったのですが、詳述するとセキュリティ的に問題があるので省略。まずはWindowsタブレットだけでYouTubeでのライブ配信を目指していろいろと試してみることにしました。多分に漏れず学校というところはお金がないので学校独自でソフトを導入することが難しい状況です。あわせて、セキュリティポリシーの問題で、購入したソフトをインストールするための手続きも必要です。今回は、全く何も新しく導入せずにあるものだけでやることにしました。(そもそもできるかどうかわからないことにお金をかけるのはかなりハードルが高いので…)

Windowsタブレットには、表と裏にカメラが付いています。これを利用してライブ配信をするということです。はじめてだらけで戸惑うことばかりでしたが、次の手順でできることがわかりました。

〈事前準備〉


〈ライブ配信を始める〉

  1. YouTubeのトップページからYouTubeアカウントでログインする
  2. 左側のメニューから「自分の動画」を選択(クリック)する
  3. チャンネルのコンテンツから「ライブ配信」を選択(クリック)する
  4. 中央の「始める」を選択(クリック)する→ライブ配信のモードになる
  5. 「詳細」「カスタマイズ」「公開設定」を順に行いライブ配信を開始する

※「カスタマイズ」でチャット機能をOFFにして、「公開設定」で「限定公開」と「公開予約」(日時)、どちらのカメラを使うかを設定しました。

手順としては、以上でライブ配信を始めることができました。問題は、この配信URLを伝えることです。幸い学校から家庭への連絡手段がありますので、それを使って配信URLを伝えました。また、一度配信を終了すると、再び配信を始めるためにはもう一度同じ手順で始めなければならずURLも変わってしまうため再度連絡をしなければならなくなり、煩わしくなるので注意が必要です。特に、セキュリティの関係でデータの移動が難しいシステムが導入されているような場合は、所々で「紙に書く(メモをとる)」という作業に頼らざるを得ず、準備段階で時間がかかるという問題もありそうです。

今回の利用者数は、Maxで370程度。のべでは2,800近いアクセスが有りました。高評価33に対して低評価は3。はじめてのライブ配信で、学校関係者が試行錯誤して行っているものですからユーチューバーと比べられたら残念と言う他ありません。また、第三者からのアクセスがないとも限らないので、できるだけ個人の顔が特定できないように配信したことも低評価につながったかもしれません。(学校Webサイトもそういうポリシーに従って顔が特定できないようにしているし、事前に特定できないように配信することも伝えていました)また、家庭のネット環境に寄ってはかなり遅延したとも聞きましたが、そのあたりはこちらでは如何ともし難いので…。(当日、運動会のライブ配信をしていたのは市内で勤務校1校のみだったので、配信自体は快適に行うことができました)

2021年9月20日月曜日

iBook G4を廃棄するためにHDDを取り出してみた

事情により、家の中の片付けをしています。(今もこんなことをしている場合ではないのだけれど疲れたので休憩中)家人が「古いノートパソコンが出てきた」というので確認してみると、MacBook Pro(MD313J/A)でした。かなり使い込んだ末に液晶がおかしくなって買い換えることにしたのではなかったかな(うろ覚え)と思うのですが、既により新しいMacBook Proに買い替えて久しいのに何で今頃と思いながら、引き取りの手続きを行いました。
Appleもパソコン回収はリネットジャパンを使うんですね。

引き取ってもらう前にHDDとかRAMとかはどうなっているかなと筐体を開けて確認したところ、HDDもRAMも既に外してありました。壊れてからHDDを抜き取って、SATA→USB変換ケーブルで接続し、新しいMacBook Proにデータを移行したのではないかと思います。片付けの最中だったので、確認してすぐに閉じました。

家人にパソコンの引き取り手続きが完了し、引取日について話したところ「実はもう1台」と言われてさすがの私もどっと疲れが。聞くとiBook G4(M9623J/A)というかなり古いやつ。発売は2004年らしいのですが、おそらく2005年になってから買ったような記憶があります。壊れたのもHDDの不具合だった気がするので、それこそ取っておく理由がありません。

というわけで廃棄することにしたのですが、HDDが壊れているとは言えそのまま回収してもらうのもどうかと思ったのでHDDを取り出すことにしました。ネットで調べると同型の情報がなくM9426J/AのHDDの取り出し方法が見つかりました。しかし、「難易度:かなり難しい」となっています。若干心が折れそうになりながら分解作業を行いました。

型番が違うのでいくつか違う(バッテリーをはめるところのビスが筐体を止めていた)ところはありましたが、概ね手順通りにビスを外していくことでHDDの取り外しに成功しました。(分解には精密ドライバーとトルクスドライバーがあると良いです)

HDDを取り出した後は、バラした逆の手順でビスを締めていき、無事に元の形に戻すことができました。HDDは、2.5inch IDE接続の30GBでした。Linux Mint動かしているPCにIDE→USB変換ケーブルで接続すると、読み込めるものの何だか挙動がおかしい感じ。一応上書きフォーマットをして処分することにします。(フォーマットも何もできない領域があるので、物理的に壊したほうが良いのかも…)