WordPressが重かった原因

1.WordPress 4.9.6に更新してからというもの、どうも動作が重かった。
2.どうもPHP周りが正常に動いていないようだった。(COUNTERとか、エディタとか)
3.「メディアライブラリが機能していなかった」 HTTPエラーを吐いていました。

と、いうわけでちょっと時間が出来たので調べてみました。
asami.chiba.jpはCentOS7+Nginx+Wordpressで動いています。(自宅サーバー)

1.サーバーのコンソールに入ってエラーログを確認します。
$ sudo vi /var/log/nginx/error.log

2.大量のエラーログを発見します。
2018/05/20 23:15:20 [error] 1889#1889: *5566 FastCGI sent in stderr: “PHP message: PHP Fatal error: Can’t use function return value in write context in ~/wordpress/wp-content/plugins/backwpup/inc/class-destination-ftp.php on line 285” while reading response header from upstream,

3.該当プラグインを調べることなく削除します。

4.解決。(?)


Backwpupなんてもう使ってなかったもんですし。
期間中、繋がらないやら遅いやらでご迷惑をおかけしましたorz(多分ね!COUNTERは増えてましたから!)

情報テクノロジー第7回 超音波センサーの理解

前回、超音波センサーを使ってみたわけですが、
いまいち理解度が要求水準まで来ていないようなので、今一度使ってみました。

どうせだったらと、今までの班をバラして今一度取り組ませたのですが、
やはり連携から始まると難しいみたいです。

また、ソースコードに対する理解もやはり不足している模様。

うーーーーーーん。

でもこの指導方法は続けたいとおもう。
(細かく教えないandわからない所は自分たちで調べるand困り切ってたら助けに入る)

例によってG-suiteの原文です。


超音波センサー 第2回
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
【今日やる事】
課題1
距離がはかれている時に、LEDを光らせてみましょう

課題2
距離が一定数(50㎝とか)以上近付いた場合、LEDを光らせてみましょう

————————————-
【提出物】
課題1,2の動画と、ソースコードの画像を提出しましょう。


提出されたものがコチラ。
だいたいどの班もこんな感じで終わってしまいました。
今回の授業を自己採点するなら、ギリギリ30点ですかね・・・。
生徒たちには申し訳ないことをしました。

教科情報の時代来る?

「大学入試共通テストに「情報」科目 」
https://www3.nhk.or.jp/news/html/20180517/k10011441981000.html

こんなニュースを見つけました。が。

浮かれる事なかれ。ここ数年で情報教育の地位向上を何とか目指しているのだけれども。
こうやって日に当たる事もあるのだけれども。

結局教育者が足りてない。
各都道府県の、教育委員会は未だに「情報って無くなるんでしょ?」 とか言う人もいる位、駄目。
圧倒的にダメ。

それこそ東京くらいです。真面な情報教育が受けられそうなのは。

なんとか、教育の質をなんとかしなくては・・・。

社会と情報 第3回(情報システムの例:GPS・POS)

第3回では、情報システムの例について触れました。

スライドを貼っておきます。(手抜き)

カーナビの例では、TOYOTA社が公開していた「通れた道MAP」を紹介しました。
1時間以内に通れた道、24時間以内に通れた道、などユーザーから得られたビッグデータをとても有効に活用した例だと思います。
熊本地震(2016)の際には、大変感動したものです。

POSシステムの例では、コンビニなどでは年齢や性別キーを最初に入力し、データ化しているという話を交えつつ、
実際にシャーペンや消しゴム、身の回りにあるJANコードで検索させました。
(大抵の商品はJANコードで検索するとHITする)

POSやコード化(バーコード)の仕組み、ディジタルディバイド(情報格差、値段やレビュー)に触れて、第3回目を終えました。

やっぱり、社会と情報はうまく授業が出来ていないせいか、ここで報告するのにも力が入りませんね・・・
みんなごめん・・・orz

社会と情報 第2回(情報システム)

忙しいとついつい更新が後回しに。
本日からテスト期間にはいりましたので、(部活がない分)少し余裕が出来ました。

さて、第2回では情報システムについて取り上げました。

最初にENIACやENIGMAの話題に触れつつ(趣味)導入として、

昨今の情報システムは様々なシステムが連携して動いており、主なシステムとして以下の4つがあると述べています。
(もっとあるのはわかっているけども)

計算システム:構造解析・気象データの解析など「計算」能力を使う
通信システム:電子商取引・地震データの送受信など「通信」能力を使う
データ管理システム:住所録など「データベース」といわれる能力を使う
制御システム:自動運転(電子制御)など「制御」能力を使う

本来であればもっと深く掘り下げるべきなんでしょうが、この単元では「暗号化」が入ってくるのでそちらを重点的にやっています。
今回はシーザー暗号について触れました。

学校名などをK=3で暗号化した状態で提示して、
複合化(平文へ戻す) というような作業をさせています。

思いのほか時間が掛かってしまい、第2回はここで終了となりました。
※続けて第3回も更新してしまいます

人感センサーの使用例

こ、これは・・・!

Arduino+センサーを授業で取り扱っている身としては
是非とも子供達に紹介したい製品を見つけてしまった。
完全に人感センサー。 分解したら何が入ってるんだろう。
Arduino入ってないかなあ・・・?(入ってない)

でも、この手の身近な製品程度なら君たちはもう作れるんだよって
気付かせてやりたいなあ。気付いてくれないかなあ・・・。



社会と情報 第2回 情報システムと暗号化

最近「情報の科学」や「情報テクノロジー」の授業ばかり更新している。
・・・社会と情報も更新しておかねば。

なぜ社情の更新が遅れるかというと、

ズバリ私が自分の授業に満足していないからです。

ハッキリいって、不満です。
酷いにもほどがある。人様に見せられる状態じゃないのです。

でも更新。

第2回では情報システムの歴史や経緯、現代の情報システムの説明や解説をしたうえで、
暗号化について触れました。
流れとしては、解説→板書→解説→暗号化 です。
複合化や暗号化の実習としては定番のシーザー暗号を使用しました。

もうちょっと、まともな資料と、まともな構成で授業をしてやりたい。
そんな思いは確かにあるのに、どうしても日々の雑務に時間を取られてしまう。
もしくは、そんな言い訳に逃げて、しっかり向き合えていないのかもしれない。

※社会と情報に関しては、他の教員(3人体制)と足並みを揃える関係で好き勝手やれていない、というだけの可能性もあります。

なんにせよ、しっかりしなくては。
反省の意味も込めて、社情もしっかり更新したいと思います。

情報テクノロジー第6回 センサーを使ってみよう。

社情や情科も進んではいるんですが更新が追いつかず。
Webベースで授業すると自分でも振り返ったり、まとめるのが楽で良いなあ(本音
コレはおそらく生徒も一緒だと思います。

G-suite、なかなかどうして良いのでは!?


さて、第6回です。
今まではArduinoの使い方、出力の仕方、PWMについて、を学びましたので、
次は入力です。主に超音波センサーの信号を受信してみよう、という物でした。
例によって、課題をそのまま記載します。
サンプルコードは
http://deviceplus.jp/hobby/entry016/ さんの物を参考に一部加工したものです。


超音波センサーを使ってみよう。
【sensor】
#define trigPin 2
#define ehoPin 3

double Duration = 0; //受信した間隔
double Distance = 0; //距離
void setup() {
Serial.begin( 9600 );
pinMode( echoPin, INPUT );
pinMode( trigPin, OUTPUT );
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite( trigPin, HIGH ); //超音波を出力
delayMicroseconds( 10 ); //
digitalWrite( trigPin, LOW );
Duration = pulseIn( echoPin, HIGH ); //センサからの入力
if (Duration > 0) {
Duration = Duration/2; //往復距離を半分にする
Distance = Duration*340*100/1000000; // 音速を340m/sに設定
Serial.print(“Distance:”);
Serial.print(Distance);
Serial.println(” cm”);
}
delay(500);
}

まずは実装!!

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
課題1
距離が測定できている時に、LEDを光らせてみましょう

課題2
距離が一定数(50㎝とか)以上近付いた場合、LEDを光らせてみましょう


ここまででした。
今回はプログラム班と回路班を入れ替え、相互に教え合いながら作業させました。
※普段4~6名の各グループ内で役割分担をしている
※プログラムと回路それぞれ2~3人ずつの配置

流石に最初は難航し、お互いがお互いに思うようにいかずモヤモヤしていたようですが、15分もしたら完全に熱中して真剣に取り組んでおりました。

しかし、流石に時間ロスが大きく、課題1までが限界だったようです。
休み時間も使いましたが、課題2まで終わった班は皆無でした。
※まあ、IF文をきちんと復習していない所為でもある。

彼らが2年時に既習しているのはJavaScript,
今使っているのはC++。

そりゃあスンナリいかないよね。

でもいいんです。
色々ぶつかって、間違えに間違え尽くして、学習していただきたい。

なお、今回一番多く見られたミスは、
「pulseIn」のIが大文字ではなく小文字だったり、Lの小文字だったりしたことです。
私としてはコピペでも良いと言っているのに・・・。
まあでも、コレで次は間違えないね!

最後に例のごとく、提出された動画を載せておきます。
「距離が測れていると分かるように撮影しなさい」
と言いましたが、時間も無い中でなかなか難しかったようです。

うーん、撮影も惜しい!

情報の科学 第3回 (データ量の話)

先に結論からいおう、ファイルサイズ問題は終わらなかった・・・。
授業研究が圧倒的に足りていない。
完全に私の力量不足、指導力不足である。

つい、雑談に逃げてしまう癖をなんとかしたい。
「BLOG書いてる時間で明日の教材研究をする」 だけで格段に良くなるだろうに。
ただまあ、それでも更新は続けたいと思う。
いつかきっと、未来の私、もしくはどこぞの誰かの役に立つことを願う。


さて、今日はファイルサイズについて授業を行った。
私が教えている2年生は、過去何度か触れているとおり1年次で社会と情報を履修しており、情報の科学を履修するに当たって重複した内容は簡単に復習するだけで、そのほとんどを省いている。
今回は授業冒頭に基数変換の確認をし、Excelの関数やその特徴を見直した上で、下記の流れで授業を進行した。

【データ量の話】
1.コンピュータ上において情報の最小単位はビット(bit)である。
2.8bit=1byteで、以降は1024倍ごとにKB,MB,GB,TB…と続いていく。(国際単位系・SI)

【画像のデータ量】
前々回(第1回)で学習したとおり、画像はピクセルの集合体である。
仮に下記のような5px*5pxの「モノクロ」画像があったとしよう。(実際にはホワイトボードにマス目を投射して板書した)

データ量

1.このとき、画像の「マス目」は5*5の25マスになる。
2.各マス目は、「白の時は0,黒の時は1」としてコンピュータ内で処理されている。
3.つまり、「各マス目の情報量は0か1の1bit」となる。

計算式は下記の通り。
5×5×1=25(bit)
25÷8=3.125 (bit→byte)
ファイルサイズ:約3byte


ここまで説明して、下記の流れへ進んだ。

【例題】
200px*100pxのモノクロ画像 の データ量はいくつか?

1. 200(px)*100(px)*1(bit)=20000(bit)
2. 20000÷8= 2500(byte)
3. 2500byteは約2.5KB

※2.4KBとすべきなのかどうかで悩んでしまった。どちらで指導するのが正解なのか・・・。
※便宜上1000で割るか、1024で割るかはケースバイケースで、試験問題なんかだと単位計算についての指示が書かれていることがほとんどである、とは伝えてある。


ここまでで終わってしまった。(時間切れ)

次回は【実際に作ってみよう】 の回。
mspaint(Windows標準搭載のペイントソフト)で100*200のモノクロビットマップを作成させ、ファイルサイズを確認させたい。また、「カラー画像(24bit)の場合はデータ量はどうなるのか」を考えさせた上で、再度作らせ反応を見てみたい。
※この時、各マスの情報量がRGBの8bit*8bit*8bitで24bitとなることを上手く伝えていきたい。

なお、フライング気味ではあるが、私が実際に作ってみた場合は下記のとおりである。

モノクロビットマップ
200px*100px
size:2.79KB (2862byte)

24bit.bmp
200px*100px
size:58.6KB (60054byte)

どんな色を設定しようが、ファイルサイズは変わらない。
興味のある人は是非試してみてほしい。

情報テクノロジー第5回 analogWriteで点滅させよ (PWM)

情報テクノロジー第5回目です。
今回でOUTPUTに関する一通りを終えて、次回からはセンサー類を使用して、INPUT系に馴染ませたいと思います。

例によって今回の課題(原文まま)


analogWrite(PWM)を使って、LEDの明るさを制御しよう。

PWMとは、パルス幅変調ともいう、0か1かのディジタル信号ではなく、0~255までの数値を刻んだ疑似アナログ信号のことである。0はLOW、255がHIGHに相当し、その間に信号の強さとして細かく段階分けする事が出来る。
aruduino uno では、PWMに対応したピンとして、3・5・6・9・10・11の6箇所が用意されている。

練習:下記のサンプルプログラムを読み解いて、回路を作成し、結果を映像で記録・提出せよ。
【LED_PMW】

#define LED_PIN 9
void setup(){
 pinMode(LED_PIN, OUTPUT);
}

void loop() {
 int i;
 for (i=0; i<256; i++){
  analogWrite(LED_PIN, i);
  delay(20);
 }
}

課題1:下記の条件を満たす動作を映像で記録・提出せよ。
練習問題は「LEDはゆっくり点灯し、すぐに消える」 という物であった。
課題1では、
「LEDはゆっくり点灯し、ゆっくり消灯する」を繰り返す挙動を実現せよ。

課題2(上級編):下記の条件を満たす動作を映像で記録・提出せよ。
課題1の挙動を、2つのLEDで実現せよ。

ただし、LED1とLED2は点灯、消灯を互いに逆の状態で行う物とする。
※LED1が点灯していく時間で、LED2は消灯する。


生徒たちは2年生でJavaScriptを使ったプログラミングに関して学んでいるが、
「i++」などの記載については一切の指導をしていない。
自分たちで意味を調べながら作成していた。
ただ、50分という時間では流石に短かったようで、(それでも課題1は出来ていた!)
上級編を時間内で完成させる事は出来ていなかった。

しかし、休み時間に突入しても全ての班(!)が粘り強く挑戦し、
1つの班では実装に成功していた。
※第6回の最初に紹介したいと思う。

例によって今回提出された動画を掲載しておきます。
※今回は個人情報保護のため、音声を削除しています。