光クロス10Gに変更に伴う自宅サーバーの設定。

結論から言うと、出来る。(改善点はたくさんある)
“出来ない”とするサイトも多いようだが、間違いなく出来る。

ドコモnetの光クロスにするとMAP-EのIPv6環境になるので、ISPが指定してきたポートでしかIPv4を使うことが出来ない。
※MAP-Eは1つのIPv4を複数の家庭で共有し、通信をポート毎に切り分けて配信している。

123.456.789.1:1~10000 →A宅
123.456.789.1:2~20000 →B宅
123.456.789.1:3~30000 →C宅…

このとき、ポート番号は契約者側から選ぶことは出来ないし、実際に割り当てられるポート番号も断続的。
2000~2100,3600~3650等

我が家の取得しているIPが下記の通りだったとして。
v6:2400:4051:0:0:123:456:789:1
v4:123.456.789.1

本来であればhoge.asami.chiba.jpに対するレコードを
AAAA 2400:4051:0:0:123:456:789:1
A 123.456.789.1
と設定しておけば良いのだが、これだとipv4の通信はポートが指定できないので通らない。

解決策その1
IPv6とIPv4をサブドメインで切り分け、IPv4接続の場合はMAP-Eで割り当てられたポート番号で通信をする。
IPv6.asami.chiba.jp = 2400:4051:0:0:123:456:789:1
IPv4.asami.chiba.jp:8080 = 123.456.789.1:8080

これで証明書周りは解決出来るが、面倒臭い。

解決策その2
cloudflareのproxyを使う。
cloudflareにAAAAレコードで登録しておけば、
ユーザーはCDN側と通信してくれるため、IPv4でも通信が出来る。
※自宅サーバー <=IPv6=> cloudflare <=IPv6 or IPv4=> client

ただし、無料プランだとクライアント側の最大アップロード容量が100MBに制限されてしまう。
私の環境ではファイルサーバーなども使うので採用出来なかった。Webサーバーなどであればこの方法が一番良いと思う。

解決策その3
VPSでIPv4&IPv6の両方を持つプロキシサーバーを立て、(IPv4環境から使うときは)経由させる。
ConoHaVPSでubuntu辺りを立て、squidを使って通信する。
※自宅サーバー <=IPv6=> PROXY <=IPv4=> client

自宅サーバーは基本的に限られたユーザーでしか利用していないため、今回はこの方法を採択した。
proxy経由でも60Mbps~80Mbpsは出してくれるので問題ない。

解決策その4
オレオレCDNを自前で用意…というよりはキャッシュサーバーを用意して、そっちと通信する。
イメージとしてはその2+3。ドメインのA&AAAAはcacheを示し、リダイレクトで自宅サーバーとやりとりさせる。
※自宅サーバー <=IPv6=> cache <=IPv6 or IPv4=> client

本来であればこの方法が一番利便性が高いので、実際問題とても悩んだ…のだが。
折角10Gで通信してるのに回線を落としたくないなあ、と。※サーバーは5Gbpsで動いている
実際に使うかはさておいてIPv6の環境では5Gbpsという数値を維持したいので採択しなかった。


ということで現状は1+3の両方で運用している。
IPv4でしか通信出来ない環境下ではプロキシをONにし、プロキシが使えない場合は泣く泣くポート番号を打って通信。

IPv4からの攻撃(他国からのランダムなアタック)が激減したと思えば、まあ許せるのかなあ。

コロナにかかった話。

死ぬほど大変だった。おのれコロナめ。
後遺症で今もちょっと大変。おのれコロナめ。
一応記録を載せておきます。今後かかる人は参考までに。

絶対に用意した方が良い物
パルスオキシメーター
スチーム型の加湿器
ポカリスエット2箱

出来ればあると良い物
湿度計

まとめ
パルスオキシメーターが無いと、そもそも入院すべきかどうかの判断が出来ません。生きる指標になります。
また、部屋の湿度が50%を切ると私は咳が激しくなりました。加湿超大事。
後は日々のエネルギーをポカリで補給するしかなかった。
固形物を食べる事も出来なくは無いのですが、メチャクチャ時間がかかります。

続きは詳細なログ。リアルタイムでログを続けていたので残しておきます。
※コロナにやられて口調が崩れていますがご容赦を。
続きを読む

情報の科学・人力ソート

プリントを並べ替えながらふと考えました。
「人力ソート」生徒たちにやらせてないなあ、と。

プリントの並べ替えはさておき、ランダムなトランプの並べ替えを人力ソートで扱ったら面白いのでは?

1.ランダムなトランプをソートしよう
2.作業量をもとに、どのソートが一番早いか仮説を立てよう
3.実際にやってみよう(タイムを計る)
4.結果を考察してみよう

なんかで、割と簡単で楽しくできるのでは・・・?

※コンピュータ上で行う場合と人間が行う場合の違いに着目できると最高なのでは?


ググってみたら、既に似たような記事がありました…
そりゃあ、あるよね。ええでもこれ、やっぱり楽しそう。どこかでやれないかなあ。

参考URL:https://techlog.voyagegroup.com/entry/2015/08/17/182516
本当に実用的なたったひとつのソートアルゴリズム

Arduino LCDメモ

1602A I2C アダプターの利用
https://iot.keicode.com/arduino/arduino-lcd-i2c.php

ArduinoでI2Cを使って格安LCDの1602に文字を表示させよう!
https://iot.keicode.com/arduino/arduino-lcd-i2c.php

授業検討会(?)を開催してみる。

ご無沙汰しております。生きております。
全く更新が。はかどっておりませんが。生きております。
時間のあるときまったり更新すればいいやと半ば投げています。

さておき。

正規の集まりではないのですが、講師や若手の先生方に声をかけて、
授業の検討会(?)を行うことになりました。


【内容】
3月21日(祝日)に集まれそうな人で
ゆるーく情報の授業検討会(?)をやろうと思っています。
※どこまで声をかけるかは未定です。
※ある講師の先生に、「情報の授業は何をすればよいかわからない」と聞かれたのが発端です

【検討(?)事項】
1.この範囲はこんな指導をした(したい)
2.この範囲の狙いは何か
3.場合によってはasami(仮)が模擬授業を行い、突っ込みや検討
4.もちろん他の先生に授業をして頂くのも大歓迎

また、以下の2点をお伝えした上でご参加頂こうと思います。
(ア)正規の研修会ではないので、交通費などが出せません。
(イ)参加不参加が何らかに影響することもありません。

場所:千葉県立○○○高等学校 PC教室
日時:3月21日(木) 0900~1200(予定)


とまあ、こんな感じで。

実はまだ2人くらいしか参加者を募っていないのですが、まあ緩ーく適当にまずはやってみようかと。
ご報告できる事があれば、またいずれご報告したいと思います。

「じゃんけんアルゴリズム」で考える

情報の科学では、プログラミングの範囲でまとめに入ろうとしています。
授業を終え次第、一気に更新をかけていきたいなあと思いつつ、ふと浮かんだ悩みを記録しておきます。
まとまっていないまま吐き出すので、読みにくいのは、ご愛敬。


じゃんけんアルゴリズムを題材に、プログラミングについて一歩踏み込んでみたいと思います。(予定)
//じゃんけんアルゴリズムはこちらを参照 https://staku.designbits.jp/check-janken/

要は、プログラムで「じゃんけんゲーム」を作るときの判定部分を、IF文あたりを使って書くわけですが、
特に何も考えずに書く場合は大抵以下のようになるかと思います。

//適当コーディングです。読み替えてください。むしろ読み飛ばしてください。

   if (自分 = グー) {
      if (相手 = グー) {
         引き分け;
      } else if (相手 = チョキ) {
         勝ち;
      } else {
         引き分け;
      }
   } else if (自分 チョキ) {
      if (相手 = グー) {
         引き分け;
      } else if (相手 = チョキ) {
         負け;
      } else {
         勝ち;
      }
   } else {
      if (相手 = グー) {
         勝ち;
      } else if (相手 = チョキ) {
         引き分け;
      } else {
         負け;
      }
   }
}

で、入れ子部分のアルゴリズムを工夫するとこうなる。

kekka = (jibun-aite+3)%3;

if(kekka==0){
   alert(“あいこ”);
}else if (kekka==1){
   alert(“負け”);
}else{
   alert(“勝ち”);
}


もうちょっとわかりやすくしましょう。
私も「このコード天才かよ!」と楽しんだ記憶があります。
それがこれ。

n=1-n;

これは、「0なら1を、1なら0を返す」というNOTを書いた物です。
それまでは、

if(n=1){
   return 0;
}else{
   return 1;
}

とかまあ、こんな感じで書いているわけです。


さてここからが本題
これらのプログラムは、はたして「良いコード」でしょうか?
様々なケースで考えさせたいと思っています。

効率的、短い、カッコイイ、そんなコード「n=1-n;」はリーダブルコードなの?
じゃんけんゲームを作るとして、「良いコード」って何だろう?

今回はプログラミングを指導するのであれば、その「考え方」にフォーカスを当てるべきだろうという考えの垂れ流しです。
まとまり次第、結果を報告したいと思います。

神奈川県の実践事例報告会に参加しています

神奈川県情報部会実践事例報告会に参加しています。(NOW)

しかし、神奈川県の情報教育への取り組みは本当にうらやましいです。(東京もすごいですけども)
千葉県も負けないように盛り上げなくては。

ちなみに、神奈川県の情報部会のWebサイトのURLが
http://www.johobukai.net/ です。 johobukai.net です。

oh…

本日の内容がまとまり次第、レポートしておきたいと思います。
http://www.johobukai.net/18jireihoukokukaisidai.html

memo:投稿したいネタ

micro:bit
情報テクノロジーから見えた未来
情報Ⅰについて
情報Ⅱについて
情報デザインの今後

中学校学習指導要領解説 技術・家庭編
教科書

小学校のプログラミングについては、自分の中ではもう一段落も二段落もついている。
ただ、どうしても文科省の意図している内容と現場での解釈には若干の相違があって。
「学習指導要領を読むこと」って本当に大切なんだなと。

#memo !

プロでありたい

悔しくて眠れず二度目の更新。

前回の記事の通り、情報教育の質問に対して答えられなかったという事が悔しくて悔しくて。

なんでこんなに悔しいのか考えました。

ここで言うのもなんですが、私は「プロ」になりたいようです。
と言っても、生徒たちから見て、聞けば何でも答えてくれる、プロフェッショナルになりたいと言う事ですが。

要は、何を聞かれても、すぐに答えられる人でありたいと。それが情報に少しでも関わるなら、どんな内容でも、です。

私の目指す「理想の教員」が、きっとそんな姿なんですね。

少し近づけているのかな、と思いきやまたすぐ離れてしまう理想像。

あー悔しい。

次は絶対に間違えない。

情報活用能力について

ちゃうねん。
本日、「情報教育の最新事情研修」で「情報活用能力って何ですか?」って聞かれて答えられなかったんです。
ええ恥ずかしい。

言い訳したい!

従来の情報活用能力って以下の3観点に8要素が付いたもの。
・情報活用の実践力
・情報の科学的な理解
・情報社会に参画する態度

本当にすみませんでした・・・。

でも、でもね!
これってそもそも「本当の意味での情報活用能力とは」とか言われるレベルの物で・・・
いや間違っちゃいないと思ってますけど!情報ABCの頃の話じゃない・・・?
そもそもこれ、次の指導要領で消されますよね!

現行の指導要領には乗ってる訳ですが。

「情報教育の最新事情研修」で、 旧体制聞かれてるだなんて思わないよ!
いやいいわけだけど!マジで! え? 育成すべき資質・能力の三つの柱の話? え? でも違くね?
~以下混乱~

あああああああああ悔しい。
夏休みで鈍っていた頭が覚醒した気分でした・・・