[Bot Framework Tutorial] [episode.0] 环境配置与 Hello world

Overview

Bot-Framework 是微软推出的一个平台,这个平台将开发、测试、部署 bot 的一系列流程整合起来,极大地方便了开发者。bot 支持使用 Node.js 和 C# 进行开发,这个系列的文章将以 Node.js 平台下的 Bot-framework 开发作为主要介绍内容,目标是完成一个可以进行相对智能的人机交互任务的聊天机器人。

一些特性

Bot-Framework 支持多对话 (Dialogs),用户可以根据需求,定义每个对话的触发条件和对话流程。

Bot-Framework 支持自定义的卡片和按钮形式。用户可以自行制作卡片、表单、选项按钮等组件来丰富 bot 的外观。并且,bot 会自行根据所运行的平台,相对应地调整组件的外观。例如在 telegram 平台上,按钮组件就可以被非常完美地原生支持。

Bot-Framework 支持多数聊天工具和网页界面,用户可以根据需求进行选择。

关于认知服务

文章中将会使用微软的认知服务 (cognitive services) 作为主要的"智能"驱动平台,包括 LUIS(Language Understanding Intelligent Service) 服务,QnAMaker 服务,Custom Vision 服务等,提高 bot 对语言的识别能力和对交互的优化能力。有关微软认知服务的详细的信息请参照
https://azure.microsoft.com/en-us/services/cognitive-services/

环境配置

Node.js 环境

npm install --save botbuilder
npm install --save restify

Bot Framework Emulator

http://emulator.botframework.com/下载对应版本的本地模拟器

Hello world

編碼

首先,将依赖引入程序

// This loads bot-framework requires
const builder = require('botbuilder');
const restify = require('restify');

閱讀全文»

2017微軟學生夏令營&微軟編程之美小記

第一次來參加這類的活動,除了本校和微博上的某同學,剩下都是不熟悉的面孔。雖說顯得有點孤單,不過也是習慣了一個人出來闖蕩。在北京的這幾天收穫頗豐(各種意義上)。

另:這篇博文圖片蠻多的,注意流量。

來夏令營的起因

大一學年暑假開始的時候,俱樂部主席找到我,問我有沒有時間去微軟夏令營。當時沒怎麼考慮就答應了。其實蠻驚喜的,我只是一個剛大一入學的新生,就有去夏令營的機會。之後更沒想到的是,編程之美的項目進入了決賽。原本獨行的安排變成了六人同行,也是令我十分驚喜的。

編程之美

每一段有趣的經歷或許都有一個不恰當的開場。當時和cc做完國際軟件學院給的項目,認識了比我大兩屆的同名學長。一切的一切都像是安排好的齒輪一樣,漸漸旋轉起來。
現任WHUMSC主席想參加編程之美,找人組隊。我拉上了因為做項目熟悉起來的同名學長和在天行俱樂部認識的同齡妹子。初賽和複賽走的跌跌撞撞,每次都有沒希望的念頭,卻每次都收到了比賽通過的祝賀郵件。剛從令人焦頭爛額的期末考中走出來,便收到了微軟編程之美的決賽邀請信。
不過時間並不是那麼剛好,兩名學長在7月都忙著準備各種比賽,導致七月的時候我只能對著只寫過簡單粗略的AJAX的JavaScript束手無策。因為一直是用同步的思維寫代碼,遇上異步語言便有些狼狽。7月的時候僅僅把一些API封裝好,便沒有什麼別的進展。
好在八月后,和我同名的學長比賽回來了。跟著他寫了一段時間的JS,並且多看了些文檔,漸漸地寫JS也得心應手起來。

閱讀全文»

在Windows控制台下使用C語言實現俄羅斯方塊

在Windows的控制台下使用C語言實現俄羅斯方塊

這是CSAPP課程的作業,助教問了我情況之後就愉快的決定了
稍微思考了一下,因為是經典的遊戲程序,本身邏輯並不是很複雜,而且肯定也有很多類似的程序了。這裡僅僅提供自己的思路。

簡單思路

俄羅斯方塊本質上來講,是一個在二維地圖上進行操作的遊戲,自然我們需要一張二維圖來表示這個遊戲地圖。然而我們使用的是C語言。。。。好吧我們定義一個int二維數組的全局變量作為這張地圖的表示。

二維地圖也要遵守基本法,自然我們需要給這張圖上每個點做一個定義。當這個點為0的時候,表示這個地方沒有方塊。這個點為1的時候,表示這個點存在一個已經落地的方塊。當這個點大於1的時候,表示這是一個可以活動的點。至於這個可以活動的點具體數值代表什麼,我們之後討論。

閱讀全文»

Debian / Ubuntu快速更换内核

測試BBR,進行多次更換內核操作。記錄一下整個過程。

下載內核

先去尋找內核對應文件。例如
http://kernel.ubuntu.com/~kernel-ppa/mainline/
https://packages.debian.org

安裝對應內核

dpkg -i *下載的文件* 

查看當前已經安裝的內核

dpkg -l|grep linux-image

刪除舊內核

apt-get purge *舊內核名字* 

更新引導

update-grub

重啟系統即可

Owncloud安裝與配置(Debian)

這是一個簡單的配置ownCloud的教程。

安裝準備

先安裝好伺服器環境,我使用的是LAMP。

文件下載

ownCloud

https://owncloud.org/

配置ownCloud

解壓縮,安裝數據庫略。
.htaccess

#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####

下添加我們熟悉的代碼

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
  RewriteEngine on
  RewriteCond %{HTTPS} !^on$ 
  RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=302]  
</IfModule> 

閱讀全文»