Bot時代到来。Microsoft Bot Frameworkを復習
Botが身近になってきた
Google HomeやAmazon Echoなど、Botの技術を利用し対話型の情報端末が続々と日本でも発売されて来ていますね。
Twitterやslackなどの「文字」でのBotから、「音声」でのBotへ進化をかんじます。
MicrosoftもBotに力を入れています
MicrosoftのBotといえば、つい最近IMEとしても利用できるようになった。
女子高生AI「りんな」さんを思い浮かべる人も多いと思います。
「りんな」による予測入力、Windows 10のIMEに テストビルドに実装 - ITmedia NEWS
じつはMicrosoftはりんなのようなAIを作るためのFrameworkを開発者向けに公開しているんです。
それがMicrosoft Bot Frameworkです。
Microsoft Bot Frameworkとは
C#やnodejsでBotがつくれる
Bot Frameworkは、Webの技術を利用したBotの制作ツールです。
Bot Frameworkを使ってBotを作成すると様々なWebサービスと連携できるBotを作ることができます。
制作に利用する言語は主にC#かnodejsです。
AzureのAI機能で高度な人工知能が実現
Bot FrameworkをMicrosoftのクラウドAzureに接続すれば、Azureの高度なAI技術をBotに利用することができます。
たとえば、自然言語処理であればAzureのLanguage Understanding Intelligent Service、通称LUIS(ルイス)を利用します。
LUISを利用することで、Microsoftの高度な自然言語処理を自然言語処理の専門家ではなくても実装することができます。
また、画像認識や音声認識といった技術もAzureのCongnitive ServiceのAPIを利用することができます。
これらの技術を組み合わせることで、最先端のAI技術を利用したオリジナルのBotが作れます。
Visual Studio Live Share。超楽しそー
気楽に使えそうなペアプログラミングツール
11月16日、MicrosoftがVisual Studio Live Shareという統合開発環境であるVisual StudioとテキストエディタのVisual Studio Codeの追加機能Visual Studio Live Shareをリリースしました。
Visual Studio Live Shareは、リアルタイムでコードを共有して、コーディングをすることのできる機能です。
URLを共有するだけで簡単に始めることができます。
Visual Studio系であれば、WindowsはもちろんMac、Linuxでも使うことができるとのことです。
Visual Studio Codeなら、無料で簡単にインストールできるので、初心者でも気軽に使うことができそうですね。
XPにも出てくるペアプログラミングは楽しい
エクストリーム・プログラミング(eXtreme Programming)略してXPは、アジャイルの代表的な開発手法の一つで、楽しく生産性を高めるためのプログラミング手法です。
このXPには、当時既存の開発手法にはなかったペアプログラミングという考え方が出てきます。
もともとは二人でひとつのパソコンを共有して、交互に一人がコードを書いて、もう一人がチェックを行うというものです。
このペアプログラミング、うまくできれば、二人でひとつのコードを考えるので、一人でプログラミングをするよりも、お互いにプログラミング能力を高めあうことができ、間違ったコードから生み出されるバグも減らすことができます。
やったことない人はコードを書いてるところを見られるのが緊張するのではないかという心配を抱く人もいるかもしれませんが、実際やってみるとかなり楽しいです。
初心者プログラマーを指導するのにも有益かも
URLをシェアすればリモートでコーディングしているところを共有できるので、プログラミング初心者が上級者にネット通して、アルゴリズムやコンパイルエラーの相談をすることができます。聞かれた側としても実際どう直したかを見せることができるところがいいですよね。
僕がネット越しにプログラミングの相談を受けるときには、メールにコードを載せて送られてくることが多く、返答もメールで文章のみでしなくてはいけないので少し大変でした。
Visual Studio Live Shareを用いたら、より簡潔にプログラミングの手法を共有できるので、聞く側にとっても聞かれる側にとっても、生産性が高まりそうです。
オフィシャルサイト
Excelの数式エディタの脆弱性について
参考資料
JPCERT/CC
JVNVU#90967793: Microsoft Office 数式エディタにスタックベースのバッファオーバーフローの脆弱性
Microsoft Security Guidance
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882
簡単な説明
Excelの数式エディターのコードが実は結構おんぼろで、Windowsのセキュリティ監視システムから逃れてしまっていました。
今回、そのセキュリティが甘い数式エディターでスタックオバーフローを再現できることが見つかりました。
攻撃者はこのスタックオバーフローを用いて、リモートコントロールできる可能性があります。
スタックオバーフローとは
メモリのスタック領域を溢れさせて、システムを攻撃する手法です。
こちらのサイトがわかりやすく説明されているので、スタックオバーフローを用いた攻撃手法についてより詳しく知りたい方は、ご覧になってみてください。
www.geocities.jp
対策
1. Windows Updateをする
2017年10月26日にはセキュリティアップデートが配布されています。
今回のようなセキュリティのためにもWindows Updateは常に最新を保つようにしましょう。
2. 手動でセキュリティアップデートをインストールする
使用しているOfficeのバージョンのセキュリティアップデートをインストールしましょう
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882
Excelの数式エディタ、ちょっと意外だった
最近のExcelでもまだまだ過去の遺物が、コードの中に紛れ込んでいるんですね。
少し驚きました。
日常で多くの人が使うものなので、セキュリティ対策がすごく大事です。
それにExcelファイルってインターネットから、テンプレートとして拾ってきちゃうことも多いですから、その中に悪意のあるコードが入っているとすると怖いですよね。
最近のMicrosoftはセキュリティ対策に迅速で対応してくれているので、セキュリティアップデートをしっかりすることで、今回のような脆弱性を防ぐことができます。
Windows Updateが自動、もしくはスケジュールをもとにしっかり実行されているか、いま一度確認しましょう。
Red Hat Enterprise Linuxについて
略してRHEL(れる)
Azureで動くLinuxのディストリビューションであるRed Hat Enterprise Linux(RHEL)について調べてみました。
兄弟のディストリビューションも有名
Cent OSのオリジナル?
僕にとってなじみのあるLinuxのディストリビューションとして、CentOSがあります。
CentOSは個人のサーバー用OSとして、人気のあるLinuxディストリビューションで、Web上にも様々な自作サーバーの立て方の記事で紹介されています。
Red Hat Enterprise Linuxは、CentOSのもととなるディストリビューションです。
Red Hat Enterprise Linuxは、Red Hatという会社が提供しているLinuxディストリビューションで、バイナリコードやサポート、ソフトウェアのアップデートなどが有料の製品として販売されています。
しかしLinuxというカーネル(OSの角となる部分)は、GPLライセンスによって著作権保護されているため、ソースコードを利用したら公開しなくてはならないため、Red Hat Enterprise Linuxもソースコードはオープンソースで誰でも見られる形で公開されています。
この公開されているソースコードをもとに作成されているディストリビューションが、CentOSなのです。
Fedoraは実験的ディストリビューション
FedoraはCentOSとは反対に、将来Red Hat Enterprise Linuxに搭載する予定の機能を試験するために開発されているディストリビューションです。
なので、バージョンのライフサイクルは短めに設定されています。
Red Had Enterprise Linuxの特徴
セキュリティ
無料で有志のコミュニティで保守されているLinuxディストリビューションに比べ、エンタープライズ向けによりセキュリティに気を使っています。
Red Hatのホームページによると軍事レベルのセキュリティを実現しているそうです。
安定性
Red Hatという会社が、有料で責任をもって保守管理しているので、安定性が高いです。
大規模なシステムでも、安心して使用することができます。
Azureで使ってみよう
AzureでWindows Serverといいライバル関係のRed Hat Enterprise Linux。
WindowsとLinuxで大きく異なるOSですが、どちらも企業が責任をもって開発しているという共通点があります。
Windows Serverはもちろん良いサーバーOSですが、開発要件によってはLinuxが必要です。
ぜひ一度、AzureでRed Hat Enterprise Linux インスタンスを立ててみるといいでしょう。
Winsockの歴史が深い
Microsoftはインターネットを無視してた
現在、世界中で使用されているインターネットという仕組みはTCP/IPという技術によって、支えられていることをネットワークについて少し詳しい人ならご存知でしょう。
このTCP/IPという技術は、BSDというカルフォルニア大学バークレイ校で開発されたUNIXのオペレーティングシステムで使用することを、前提として開発されました。
なので、TCP/IPをWindowsに実装するには、UNIXオペレーティングシステム特有の機能を再現することが難しく、当初MicrosoftはこのTCP/IPという技術を無視していました。
TCP/IPが普及するまで
WindowsがTCP/IPに対応するまでの間、Windowsが搭載されたコンピュータは、コンピュータを製造しているそれぞれのメーカーで、さまざまな通信方式やプロトコルによって通信を実現していました。
利用者は使いたいサービスに合わせて、接続方式を選び直す必要があったり、ソフトウェア同士での互換性がなかったりしました。
Winsockが誕生
1991年10月、パソコン通信時代の電子掲示板サイトでの議論がもととなり、WinsockことWindows Sockets API が誕生しました。
これにより、WindowsがオフィシャルにTCP/IPに対応できるようになりました。
ソケット通信とは
BSDなどのUNIXオペレーティングシステムは、すべてのことをファイルとして扱うという哲学があります。
Socketというのも、ファイルのように扱うことのできる通信APIです。
このすべてのことをファイルとして扱うという思想などに共感できなかったので、WindowsではSocket通信を利用したTCP/IPという仕組みをなかなか採用しづらかったわけです。
通信の約束を決めるのは大変
技術用語で通信の約束のことをプロトコルと呼びます。
インターネットの歴史を振り返ると、コンピュータメーカーがこの約束を決めるまで相当な苦労があったように感じます。
いま、僕らが毎日何気なく使っているインターネットという便利な仕組みは、本当に先人たちの知恵と努力の結晶です。
コンピュータの先人たちに感謝しながら、これからもありがたく使っていきたいと思います。
Note
Wikipediaを参考にして、書きました。
https://ja.wikipedia.org/wiki/Winsock
MSDNマガジンで英語の勉強しようかな
MSDNマガジン
MSDNマガジンって聞いたことありますか?
MSDNとは
MSDNはMicroSoft Developer Networkの略で、マイクロソフトの開発者向けのコンテンツを提供するサービスの一群です。
msdn.microsoft.comというサイトもMSDNのコンテンツなのですが、ここではC#の公式ドキュメントが置かれているので、普段からお世話になっている人も多いと思います。
また結構高価なサービスですが、MSDNサブスクリプションという開発者向けライセンスで、マイクロソフトのソフトウェアがダウンロードし放題なサービスもあります。
MSDNマガジンは開発者のための月刊誌です
月刊住職や月刊土木技術など日本だけでも様々な業種で、専門的な月刊誌が出ていますが、世界に目を向けるとマイクロソフトのデベロッパー向けというかなりマイナーな月刊誌も存在していて、それがMSDNマガジンです。Microsoftの製品に関する技術的な話題に関してのコラムを毎月、雑誌という形で読むことができます。
オンライン版は無料
MSDNマガジンのオンライン版は無料で読むことができます。
興味がある人は目を通してみてください。
日本語版
少し遅れてますが、実は日本語版もあります。
https://msdn.microsoft.com/ja-jp/magazine/mt745087.aspx
こちらは、日本マイクロソフトの社員さんが翻訳しているのだと思います。
英語ペーパー版も日本まで届きます
英語のMSDNマガジンは、アメリカの国外にも対応しているらしく、一年間の購読で65ドルになります。
2017年11月の為替で7400円弱ぐらいで一年間購読できます。
https://msdn.microsoft.com/magazine/ee358702
英語の勉強を兼ねて購読してみたい
個人的に来年から英語の勉強をかねて、購読してみようか悩んでいます。
なかなかサイトに毎月アクセスするのを忘れずに行うって習慣化しづらいし、毎月自動的に届いたら英語読書が習慣になって良いのかなと思っています。
内容も好きなマイクロソフトの話なので、他の英語教材に比べても魅力的です。
それにブログのネタにもなりそうですよね~。悩むナー( ̄へ ̄|||) ウーム
Microsoft Teamsって?
Microsoft Teams - グループ チャット ソフトウェア
約一年前にリリースされたサービスです
ニュース - Microsoftが業務用チャット「Microsoft Teams」を発表、「Slack」に対抗:ITpro
こちらのサイトによるとMicrosoft Teamsは約一年前の2016年11月2日にリリースされたサービスです。
Slackというチャットサービスに対抗して作られたMicrosoftのエンタープライズ向けのチャットサービスです。
価格体系は?
Office 365に含まれるサービスです。一部低価格帯のOffice 365だと使えないみたいですが、Office 365 Enterprise E1,E2,E3など主要なエンタープライズ向けOffice 365で使用できます。
Slackとの違い
Office 365に含まれるWord,Excel,OneNote,OneDriveなどとの親和性が高く、Office 365をすでに利用しているなら追加料金なしで利用を開始できます。