2019年4月25日木曜日

最悪のパスワード2018

少し前ですが、2018年の最悪のパスワードランキングが発表されました。
以下、Top10です。

 1位:123456
 2位:password
 3位:123456789
 4位:12345678
 5位:12345
 6位:111111
 7位:1234567
 8位:sunshine
 9位:qwerty
 10位:iloveyou

なんと1位と2位については、6年連続だそうです。

現場を知っている身からすると、きちんとしたシステム屋に依頼すれば、ありえないパスワードですが、初期設定が上記のようになっている機器は非常に多いです。
そのため、素人が作ったシステム(一番多いのは家で使っているルータとか)は、初期設定でそのまま使っている場合が殆どだと思うので、上記に当てはまる可能性が高いです。あとは、まだパスワード管理といった概念が薄かった時代の古いシステムだとあり得そうですね。

今後、教育が進めば、こういったパスワードの危険性も知ってもらえるのでしょうか。

■今日の名言
彼を知り己を知れば、百戦して危うからず
by 孫氏の兵法


2019年4月20日土曜日

プログラミング言語:C

プログラミング言語の話では、絶対に避けて通れないC言語についてです。

1972年誕生で、すご~く古い言語ですが、その後のC++、C#、JAVAなど主要言語の基となった言語です。C言語の由来は「B言語」の次だからのようです。
ちなみに「A言語」はありません。

汎用性が高く、色々な機器に使えるため「プログラミング = C言語」みたいな時期もありました。そのため、C言語を使ったシステムが現在も多く残っており、今でもよく使われるプログラミング言語のTop10に入るほど、伝説的なプログラミング言語です。

ただし、C言語の勉強をすると必ずぶつかるのが「ポインタ」です。ただ、私の理解力では、皆さんに分かり易いように説明するのは無理です。また、誰かの言葉を借りてもよいのですが、それが本当に正しく説明しているのか、判断できないくらい私の理解が浅いため、それもやめておきます。
約3年C言語で開発しましたが何となく覚えて使っていただけなので「ポインタ」をさらっと理解できる人は凄いな~と思っていました。
(特に「ポインタのポインタ」とか今でも意味わかりません。)

じゃぁ、何故、そんな難しい概念があったかというと理由があります。
簡潔に言うとパソコンやサーバのメモリ容量が非常に小さかったからです。

今でこそパソコンで数Gbyte(大規模サーバであれば数Tbyte)のメモリを積んでいますが、1980年代ではまだ16Kbyte、80年代後半になってようやく1Mbyteになるなど、まさに桁違いに容量が小さかったです。1990年代でも8Mbyte~64Mbyteなどそれでもまだまだ不十分でした。

そのため、プログラムで使用するメモリ領域をどうやって上手く活用するかに対応したのが「ポインタ」であり、技術者の腕の見せ所でした。

ただ、考え方が難しすぎるのとハードウェアの進歩でメモリ領域に余裕ができたことで、ポインタの概念をもったプログラミング言語は、その後、減っていきました。

◆今日の名言
人生とは、自転車に乗っているようなもの。バランスを保つためには、走り続けなければならない。
byアインシュタイン

2019年4月18日木曜日

プログラミング言語:JAVA

おそらく、世界で一番使用されているプログラミング言語JAVA(ジャバ)をご紹介します。

1995年誕生なので、これまた古いですね。
JAVAはオブジェクト指向プログラミング言語です。

画期的なのが、プラットフォームを選ばないプログラミング言語であり、そのおかげで世界で一番使われるプログラミング言語になりました。
プラットフォームを選ばないというのを簡単に言えば、Windows、macOS、Linux、UNIX、ガラケー時代の携帯電話独自OS等どんなOS上でも動くということです。

それまでは、使うプログラミング言語により使うOSが決まったり、逆にOSによりプログラミング言語が決まりました。それが、どんなOS上でも動くので、様々な場所で使われるようになったのが、普及した一番の理由です。

他にも細かい理由は、以下のとおり色々ありますが、一番はマルチプラットフォームでしょうね。
・C言語に似ていた。1990年代~2000年代前半は、C言語が主流だったのでC言語の技術者がたくさんいました。それに似たJAVAは移行しやすかったという背景があります。
・統合用のオープンソース・ライブラリーが豊富
・速くてマルチスレッド
・マルチコアにも対応している


◆今日の名言
神は絶対にサイコロを振らない。
byアインシュタイン

2019年4月16日火曜日

プログラミング言語:Python

流行りの言語Python(パイソン)について、紹介します。

Python自体は1991年からと以外に古い言語です。
しかし、話題の人工知能(AI)やWeb開発、教育など広い分野で使われており、現代において主流のプログラミング言語になっています。と言っても、Pythonを使用て開発をしたことがないので私の認識としてはこの程度でした。

ただ、折角の話題の言語なので、使ってみよう!と思い、実際にPCにインストールして使ってみました。

私の感想
「げっ、これヤバイ。何この手軽さと構文ルール。シンプルで素敵!?」

何が凄いって、以下の2点です。

  •  少ないコードでプログラミングできる
  •  コードを読みやすくする仕組みがある


特にシステムエンジニアの方なら分かると思いますが、他人が書いたプログラムを解析する(読む)のってかなり苦痛ですよね。それを緩和させる「インデント(「オフサイドルール」)」が非常に特徴的です。

どんな言語でも、開発時にプログラムを見やすくするために、インデントをつけてプログラミングするのが普通です。ただ、プログラミング言語としては、インデントは不要であり、例えば間違った箇所にインデントがあったり、インデントが1つもなくてもプログラムは動作します。そのため、他の人が、そのプログラムを見た際に誤った解釈をしたり、バグの原因になったります。

Pythonはインデントをプログラミングのルールとして取り入れているのが画期的です。

for文やif文などに続くコマンドにインデントを入れないと「IndentationError:」として構文エラーになります。インデントをプログラミングのルールとして取り込む(間違うとエラーにする)ことで、開発者全員が共通認識としてコードを見れるのは凄いなと思いました。

一時期、JAVAが独走で天下を取るかなと思ってましたが、Pythonが猛追してきたのに納得できました。
ただ、今まで流行らなかったのはインタプリタで実行速度が遅いからですかね。
それが、機械の高速化により速度はあまり気にならなくなり始めて、よりプログラムが見やすく開発しやすい方が優先され始めたのかなと思います。


◆今日の名言
常識とは、18歳までに積み重なった、偏見の累積でしかない。
byアインシュタイン

2019年4月15日月曜日

プログラミング言語:Scratch

MIT(マサチューセッツ工科大学)メディアラボが開発したプログラミング言語

私の独立のきっかけになった言語です。
これを見て、世の中には、本当に天才っているんだなぁ~と実感しました。

ブロックを組み合わせることで、画面上のキャラクターが動くのですが、プログラミングが分かる人が見れば、裏でこうやってるんだなぁとちゃんと想像がつくように出来上がってます。
プログラミングが分からない子供でも、何となくブロックをつなげて、実行するだけでキャラクターが動いてくれるのは、素晴らしいと思います。
また、ブロックにより視覚的にどういった順番にプログラムが動いているのかも一目で分かり易く、プログラミングの導入部分(まず、触って動かしてみる)としては、素晴らしい言語だと思います。

小学生向けのプログラミング教室では、このScratchを使っているところが多いです。
ただ、難点があるとするとScratchをプログラミング言語として、体系的に教えているところはあまりないかなと思います。

どちらかというと、子供にまず触ってもらって、こんなことしたい!といったら、じゃぁ、こうやると出来るよっと言った教え方です。体感的に覚えてもらうだけで、じゃぁ、なんでこうするの?っといった部分を教えているところは少なそうです。(もちろん、体系的に教えているとこともあると思います。)

ただ、元システムエンジニアとしても大変よくできた言語だと思います。

Scratchの画面

◆今日の名言
シンプルに説明できないのなら、それは十分に理解していないということだ。
byアインシュタイン

2019年4月14日日曜日

IT用語:USB

現在、最も普及している情報通信機器用へ接続するための規格「USB=Universal Serial Bus」についてです。

何故、今USBの話題かというと、Windows10においてUSBの取り外しポリシーが「高パフォーマンス」から「クイック削除」に変更されたので、急遽この話題を取り上げました。
気にしている方はあまりいないかもしれませんが、これは非常に画期的だと思いました。(Microsoftもようやく、面倒だと気付いたか!)

今まで既定値では、USBメモリを外す際にタスクバーから「ハードウェアの安全な取り外し」を選択してから抜く必要がありました。しかし「Windows 10 1809以降のバージョン」では、「クイック削除」が規定値に変わったことにより、何もせずにそのまま抜いてOKになりました。

本当にそうなっているのか、実際に確認してみました。

USBのポリシー画面

はい。確かに「クイック削除」が規定値になってます。
もちろん、メリット・デメリットがあるので設定があるわけですが、正直、抜く際の面倒さが際立ってましたよね。または、何も気にせず抜いている方も少なからずいると思います。

■クイック削除
 メリット:USBを抜く際に何もせずに抜ける。
 デメリット:書き込みの際にキャッシュしないので、外部デバイスへの書き込み速度が落ちる。

■高パフォーマンス
 メリット:外付けデバイスへの書き込みをキャッシュするので書き込みが速い。
 デメリット:USBの取り外しでタスクバーから「ハードウェアの安全な取り外し」を選択してから抜く必要がある。


おそらく、USB3.0の普及で、書き込み速度についての懸念が減少したことがきっかけかなと思われます。

■USB2.0(2000年)
 データ転送速度:480Mbps

■USB3.0(2008年)
 データ転送速度:5000Mbps(5GBps)

まぁ、「ハードウェアの安全な取り外し」を知らずに抜いていた人も多いと思いますし、知らない人のために、規定値を変えるのはありかなと思います。知識として知っている人であれば、書き込み頻度が高い場合は「高パフォーマンス」、たまにしか使わないのであれば「クイック削除」で使い分けでよいのではないでしょうか。
※かくいう私もこの話題があるまで、ポリシーで変更できるとは知らず、面倒だけど毎回「ハードウェアの安全な取り外し」で抜いてました。

話が、USB規格についての話というより、今話題になっているUSB関連の話になってますが、必要に応じて、USBについても解説いたします。


■今日の名言
最初から、我々の目標は「すべての机と、すべての家庭にコンピュータを」だった。
byビルゲイツ

2019年4月11日木曜日

ブラックホール

時事ネタです。

「4/10 世界初 ブラックホールの撮影に成功 一般相対性理論を証明」と大・大・大ニュースになりました!?となるはずが、某大臣の辞任のニュースで、ほとんど取り上げられていない悲しい日本です。どう考えても、ブラックホールの方が凄いニュースだと思いますが、身近なことの方が話題にし易いといったところでしょうか。

細かい内容は、色々なニュース記事になっているので、譲りますが、話題として取り上げたのは、単に宇宙が好きだからです。
「ホーキング宇宙を語る」がちょうど大学生時代で書籍も購入したり、SFだったりガンダムだったり、宇宙ってロマンがありますよね。

以上、ビックニュースでした。

■今日の名言
宇宙と人間の愚かさは無限大だ。宇宙については確かではないが
byアインシュタイン

2019年4月10日水曜日

小学生向けプログラミングスクール

小学生向けプログラミングスクールを開設したきっかけを書きたいと思います。

元々システムエンジニアとして会社員をやってました。
30代までは、会社を辞めてまで何かをするという目標もなく、仕事自体も多少の不満はありつつもこんなもんだよねと続けていました。

ただ、30代中盤になって、感じた以下の2つが最初のきっかけです。
 ・システムエンジニアとして体力的に厳しくなってきた
 ・定年までの約20年間同じように仕事を続けるイメージがきなかった

それでも、次に何をするか決まず悶々としながらも、30代の後半に差し掛かりました。
その頃、偶然ポストに入ってきたチラシでScratch」を使った小学生向けプログラミングスクールの存在を知りました。
これを見た瞬間「Scratchを考えた人天才だなぁ~」と思い、そのまま勢いで妻に「これやってみたいんだけど」と相談したのが最初です。
ScratchはMIT(マサチューセッツ工科大学)メディアラボが作ったビジュアルプログラミングです。

子供もいるので、反対されるかもとは思いましたが、妻も「いいんじゃない」と即答してもらったのは今でも感謝しています。それでも、具体的にどうすれば?というところまでは行かず、次の目標だけ決まったような感じでした。

それから数年経って、新学習指導要領において「2020年度 小学校でのプログラミン教育」が決まり、教育としてのプログラミングの注目もアップしてきました。
2020年度に向けて、プログラミング教室も増えてきて、会社員を続けながら情報収集し、最終的にタミヤロボットスクールとフランチャイズ契約を結んで、江東区の東砂へプログラミングスクールを開設しました。

タミヤロボットスクールを選んだのは、単純に「あのタミヤ」だからです。
当然TAMIYAのロゴ(正確にはタミヤロボットスクールのロゴ)も使えるし、子供のころミニ四駆でお世話になった良い印象もあるからでした。(理由は単純ですね。)



■今日の名言
「今やろうとしていることは 本当に自分のやりたいことだろうか?」
by スティーブ・ジョブズ

2019年4月9日火曜日

プログラミング言語:BASIC

プログラミング言語のBASICについて

タミヤロボットスクールでは、BASIC言語を使って、プログラミングを学びます。
人によっては、今BASICやるの?と思う方もいらっしゃると思います。
確かに50年以上前の言語であり、実用性という意味では皆無だと思います。

ただ「BASIC = Beginner's All-purpose Symbolic Instruction Code」の略であり日本語で言えば「初心者向け汎用記号命令コード」です。
名前のとおり、プログラミング初心でも分かり易く、かなりシンプルなプログラミング言語です。
小学生向け(または初心者向け)の導入としてBASICを使って、プログラミングの基本(順次、分岐、繰返し、関数など)を学ぶのは、かなり有効な手だと思います。

結局、プログラミング言語といっても、その時代で流行りがあり、例えば今流行っている言語が、10年後にも使われているか?というとおそらく、別の言語が主流になっているはずです。(今までもそうでした。)
そのため、今の流行りのプログラミング言語を小学生で、勉強しても社会人になってからでは、ほぼ役に立たない状況になると思われます。
それよりは、プログラミングの基本・考え方を覚えて、ほかの言語へ移行しやすい知識を蓄えるほうが有意義と考えています。

もちろん、行番号やGOTO文など絶対に今後のプログラミング言語では、出てこないような古臭い文法も残ってますが、そこを説明・理解したうえで、BASICを勉強すれば問題ないのではと思います。


◆今日の名言
年配の人たちは「これは何?」と尋ねる。でも少年は「これで何ができるの?」と尋ねる。
byスティーブ・ジョブズ

2019年4月8日月曜日

プログラミングスクールでやりたいこと③

③学校の先生の負担を減らしたい
2020年度 小学校でのプログラミング教育必修化については、賛成しています。

ただ、例えば、英語の必修化の時は、学校の先生であれば、基礎知識だけで小学生向けの英語を教える事はできると思いますし、研修などで補完することも容易だったと思います。
しかし、プログラミングについては、先生自身が習っていないものを教える必要があり、ただでさえ教員への負担が問題になっている中、人材も設備も足りていないのが現状です。

あと何事もですが、人に教える場合「全体が10としたら8か9理解していないと人に教えるのは難しい」です。先生たちも5か6(個人として解るレベル)まで到達することは可能かもしれませんが、じゃぁ、こうするのは何故?といった深いポイントまでは理解できないと思っています。
その状態で教わる生徒たちは、2か3までしか理解できないのではないでしょうか。
それでは、頑張った教員も教わった生徒も両者不幸な気がします。

現時点でいうと、学校独自でプログラミング教育を推進しているところも少数ですがあり、かなり先進的な学校(生徒全員へタブレット配布など)と全くやっていない学校(こっちが大半の普通の学校です)の両極端になっています。

最初に書いたとおり、プログラミングを学校で教えるのは大いに賛成です。また、設備は、ある程度予算を付ければ何とかなると思います。しかし、必修化まであと1年しかなく、一番肝心な教える人が追い付かない状況が発生すると見込んでいます。

そのため、先生のフォローをできるようなことができればと考えています。

以上の3点が大きな目標・目的となります。


■今日の名言
「シンプルであることは、複雑であることよりもむずかしいときがある。」
byスティーブ・ジョブズ


2019年4月7日日曜日

プログラミングスクールでやりたいこと②


②デジタルネイティブ世代に対するIT教育
ここは、非常に危機感を感じているので、長めです。

若い世代が新しいものに飛びついて、そこから新しいサービスが広がっていくのは、今も昔も変わらないと思います。
ただ、ちょうどWindows95により世の中にパソコンが急速に普及し始めた頃から使っている私から見るとリスクを分からず、デジタル機器を使っているなというのが印象です。

いわゆる「バカッター」、「ネットストーカー」、「フェイクニュース」など脅威・リスクを知らないまま使っているのが、デジタルネイティブ世代ではないかと思います。

「火」に例えると、使い方を誤れば火傷や火事になることを知らずに利用している状態で、非常に危険だと感じています。
「火」に関しては、子供の時に親に教わったり、ちょっとした火傷など実体験として脅威をある程度学習している人が殆どだと思います。

しかし、SNSなどの危険性につては、教科書などでも説明しているようですが、実体験の部分が欠けているのため、身についていないのではと思っています。

昨今ニュースにもなる「バイトテロ」は、昔も同じレベルでふざけていた若者はいたはずです。しかし、当時の伝達手段は口頭や電話、またはアナログな写真のみで、仲間内だけで盛り上がって終わっていました。(ちなみに私はやってませんよ)
今は「SNS」の発達で仲間内だけのつもりが、一瞬で世界中に情報が共有されます。そして、一度共有されたものを取り消すのは実質不可能です。

「SNS」は「火」と同様に非常に便利です。しかし、リスクを(火傷や火事のように)分かったうえで使うべきです。そうしないと、これからもっと進む情報化社会で生きていけなくなるのではないでしょうか。

そのあたりを、若い世代に伝えたい思いがあります。


■今日の名言
「テクノロジーは重要ではない。大事なのは、人は賢いということ、そして人を信じること。」
byスティーブ・ジョブズ

夏休みイベント 親子で学ぶSDGs(ワークブック付き) ■対象:小学3年生~

   7/30(日)に、夏休みイベントとして「親子で学ぶSDGs」を実施します。 今年は夏休み期間中に2回開催(7月と8月)しようと思います。2回目は、お盆期間の金曜日です。ご都合の良い方は是非ご参加いただければと思います。自由研究もついでに終わらせちゃいましょう。 ご予約・イベ...