zirconsoft’s blog

Microsoft関係について取り上げます。

Bot時代到来。Microsoft Bot Frameworkを復習

Botが身近になってきた

Google HomeやAmazon Echoなど、Botの技術を利用し対話型の情報端末が続々と日本でも発売されて来ていますね。
Twitterやslackなどの「文字」でのBotから、「音声」でのBotへ進化をかんじます。

MicrosoftBotに力を入れています

MicrosoftBotといえば、つい最近IMEとしても利用できるようになった。
女子高生AI「りんな」さんを思い浮かべる人も多いと思います。
「りんな」による予測入力、Windows 10のIMEに テストビルドに実装 - ITmedia NEWS
じつはMicrosoftはりんなのようなAIを作るためのFrameworkを開発者向けに公開しているんです。
それがMicrosoft Bot Frameworkです。

Microsoft Bot Frameworkとは

f:id:zirconsoft:20171120213421p:plain

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が作れます。

今後Bot技術は急速に普及する?

Microsoftがこれからの時代はBotだ。と言い始めてから、急速にBotは進化を遂げているように感じます。
Botの技術を利用した接客業の自動化なども少しずつ普及していくでしょう。
接客業はクレーマー対応などストレスの感じないAIの方が向いている気がします。
AIが人間の仕事を奪うというのが、現実味を帯びてきました。
Botができないようなクリエイティブなお仕事ができるように頑張りたいです。

Visual Studio Live Share。超楽しそー

気楽に使えそうなペアプログラミングツール

11月16日、MicrosoftVisual Studio Live Shareという統合開発環境であるVisual StudioテキストエディタVisual Studio Codeの追加機能Visual Studio Live Shareをリリースしました。
Visual Studio Live Shareは、リアルタイムでコードを共有して、コーディングをすることのできる機能です。
URLを共有するだけで簡単に始めることができます。
Visual Studio系であれば、WindowsはもちろんMacLinuxでも使うことができるとのことです。
Visual Studio Codeなら、無料で簡単にインストールできるので、初心者でも気軽に使うことができそうですね。

XPにも出てくるペアプログラミングは楽しい

エクストリーム・プログラミング(eXtreme Programming)略してXPは、アジャイルの代表的な開発手法の一つで、楽しく生産性を高めるためのプログラミング手法です。
このXPには、当時既存の開発手法にはなかったペアプログラミングという考え方が出てきます。
もともとは二人でひとつのパソコンを共有して、交互に一人がコードを書いて、もう一人がチェックを行うというものです。
このペアプログラミング、うまくできれば、二人でひとつのコードを考えるので、一人でプログラミングをするよりも、お互いにプログラミング能力を高めあうことができ、間違ったコードから生み出されるバグも減らすことができます。
やったことない人はコードを書いてるところを見られるのが緊張するのではないかという心配を抱く人もいるかもしれませんが、実際やってみるとかなり楽しいです。

初心者プログラマーを指導するのにも有益かも

URLをシェアすればリモートでコーディングしているところを共有できるので、プログラミング初心者が上級者にネット通して、アルゴリズムコンパイルエラーの相談をすることができます。聞かれた側としても実際どう直したかを見せることができるところがいいですよね。
僕がネット越しにプログラミングの相談を受けるときには、メールにコードを載せて送られてくることが多く、返答もメールで文章のみでしなくてはいけないので少し大変でした。
Visual Studio Live Shareを用いたら、より簡潔にプログラミングの手法を共有できるので、聞く側にとっても聞かれる側にとっても、生産性が高まりそうです。

オフィシャルサイト

code.visualstudio.com

Excelの数式エディタの脆弱性について

簡単な説明

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が自動、もしくはスケジュールをもとにしっかり実行されているか、いま一度確認しましょう。

Note

Excelの数式エディタは英語だとMicrosoft Equation Editorというそうです。

Red Hat Enterprise Linuxについて

f:id:zirconsoft:20171116234732j:plain

略して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は実験的ディストリビューション

FedoraCentOSとは反対に、将来Red Hat Enterprise Linuxに搭載する予定の機能を試験するために開発されているディストリビューションです。
なので、バージョンのライフサイクルは短めに設定されています。

Red Had Enterprise Linuxの特徴

セキュリティ

無料で有志のコミュニティで保守されているLinuxディストリビューションに比べ、エンタープライズ向けによりセキュリティに気を使っています。
Red Hatのホームページによると軍事レベルのセキュリティを実現しているそうです。

安定性

Red Hatという会社が、有料で責任をもって保守管理しているので、安定性が高いです。
大規模なシステムでも、安心して使用することができます。

Azureで使ってみよう

AzureでWindows Serverといいライバル関係のRed Hat Enterprise Linux
WindowsLinuxで大きく異なるOSですが、どちらも企業が責任をもって開発しているという共通点があります。
Windows Serverはもちろん良いサーバーOSですが、開発要件によってはLinuxが必要です。
ぜひ一度、AzureでRed Hat Enterprise Linux インスタンスを立ててみるといいでしょう。

Winsockの歴史が深い

Microsoftはインターネットを無視してた

現在、世界中で使用されているインターネットという仕組みはTCP/IPという技術によって、支えられていることをネットワークについて少し詳しい人ならご存知でしょう。
このTCP/IPという技術は、BSDというカルフォルニア大学バークレイ校で開発されたUNIXオペレーティングシステムで使用することを、前提として開発されました。
なので、TCP/IPWindowsに実装するには、UNIXオペレーティングシステム特有の機能を再現することが難しく、当初MicrosoftはこのTCP/IPという技術を無視していました。

TCP/IPが普及するまで

WindowsTCP/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とは

MSDNMicroSoft Developer Networkの略で、マイクロソフトの開発者向けのコンテンツを提供するサービスの一群です。
msdn.microsoft.comというサイトもMSDNのコンテンツなのですが、ここではC#の公式ドキュメントが置かれているので、普段からお世話になっている人も多いと思います。
また結構高価なサービスですが、MSDNサブスクリプションという開発者向けライセンスで、マイクロソフトのソフトウェアがダウンロードし放題なサービスもあります。

MSDNマガジンは開発者のための月刊誌です

月刊住職や月刊土木技術など日本だけでも様々な業種で、専門的な月刊誌が出ていますが、世界に目を向けるとマイクロソフトデベロッパー向けというかなりマイナーな月刊誌も存在していて、それがMSDNマガジンです。Microsoftの製品に関する技術的な話題に関してのコラムを毎月、雑誌という形で読むことができます。

オンライン版は無料

MSDNマガジンのオンライン版は無料で読むことができます。
興味がある人は目を通してみてください。

日本語版

少し遅れてますが、実は日本語版もあります。
https://msdn.microsoft.com/ja-jp/magazine/mt745087.aspx
こちらは、日本マイクロソフトの社員さんが翻訳しているのだと思います。

英語ペーパー版も日本まで届きます

英語のMSDNマガジンは、アメリカの国外にも対応しているらしく、一年間の購読で65ドルになります。
f:id:zirconsoft:20171115002943p:plain
2017年11月の為替で7400円弱ぐらいで一年間購読できます。
https://msdn.microsoft.com/magazine/ee358702

英語の勉強を兼ねて購読してみたい

個人的に来年から英語の勉強をかねて、購読してみようか悩んでいます。
なかなかサイトに毎月アクセスするのを忘れずに行うって習慣化しづらいし、毎月自動的に届いたら英語読書が習慣になって良いのかなと思っています。
内容も好きなマイクロソフトの話なので、他の英語教材に比べても魅力的です。
それにブログのネタにもなりそうですよね~。悩むナー( ̄へ ̄|||) ウーム

Microsoft Teamsって?

Microsoft Teams - グループ チャット ソフトウェア
f:id:zirconsoft:20171113234359p:plain

約一年前にリリースされたサービスです

ニュース - 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をすでに利用しているなら追加料金なしで利用を開始できます。

Microsoft Graphなど管理APIが充実

Azure ActiveDirectoryなど、既存のMicrosoftのユーザー管理システムなどの連携機能もあり、部署ごとのチャットグループ(Microsoftチームではチームという単位で扱う)の管理に利用することができます。
またMicrosoft Graphなど、近年MicrosoftはOfficeのAPIの活用に力を入れており、エンタープライズの現場で既存のMicrosoftのスキルセットやREST APIを利用した柔軟なシステム管理にも、対応することができます。
zirconsoft.hatenablog.com

スマホにも対応

Android,iPhoneに対応したスマートフォンアプリもあるため、移動中でも気軽にチャットすることができます。

エンタープライズ向けにセキュア

データの送受信には、暗号化処理が施されていて、Microsoftのセキュリティのもとで安心してエンタープライズで利用することができます。

まとめ

Microsoft TeamsはMicrosoft製品を、毎日のように使っているオフィスワーカーにぜひ使ってもらいたいチャットサービスですが、現状まだまだ普及してなさそうですね。
日本の企業で普及させるには、もっとネットで見られるわかりやすいドキュメントが必要だとおもいます。