ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能

  Microsoft 最近发布了 ASP.NET Identity 2,该版本支持双重认证、帐号锁定以及防伪印章功能,还增强了用户帐号和索引。此外新版本还包含一个改进的密码验证器并修复了一些 bug。

  借助于双重认证,开发者能够使用定制的提供程序保护用户帐号,而不是使用传统的 SMS 和基于 email 的验证。例如,开发者能够编写自己的自定义提供程序,例如 QR 代码生成器,并使用手机上的身份验证应用程序验证它们。

  新版本的 ASP.NET Identity 2.0 能够保护用户远离暴力破解的困扰,如果用户输入了错误的密码或者双重代码,那么相关的用户帐号会被锁定一段时间。作为一个开发人员,你可以配置无效尝试的次数和时间间隔,另外你也可以通过一个选项为某些用户帐号关闭该功能。

  新引入的防伪印章功能让你能够在密码或者相关的社会登录帐号发生改变的时候从应用程序中注销。你可以按照官方 MSDN 博客上的介绍通过注册一个 CookieAuthenticationProvider 在 Startup.Auth.cs 中进行配置。

  最新版本提供了一个扩展钩子,借助于该钩子你能指定用户表和角色表的主键,对于那些将 UserId 存储为 GUID 或者 Int 的应用程序而言这是非常有用的。

  在新版本发布之前,我们无法通过 UserManager 删除用户,这一问题已经被解决,你能够使用 DeleteAsync ()函数删除用户。

var result = await UserManager.DeleteAsync (user);

  你可以使用 Factory 实现从 OWIN 上下文中获取到一个 UserManager 的实例。这一模式与我们从 OWIN 上下文中获取 AuthenticationManager 从而进行登录和登出的模式类似。为了使用这一功能,我们需要在 StartupAuth.cs 类中添加下面的代码:

app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
HttpContext.GetOwinContext () .GetUserManager<ApplicationUserManager>();

  DbContextFactory 中间件每一个请求都会返回一个 ApplicationDbContext 实例,你可以在应用程序中使用它,同时可以在 StartupAuth.cs 中使用下面的代码进行配置:

app.CreatePerOwinContext (ApplicationDbContext.Create); 

  Microsoft 使用新的 IndexAttribute 为 Username 添加了唯一的索引;此外还增强了密码验证器,1.0 提供了一个仅能验证最小长度的基础验证器,而在新版本中我们能够通过配置对密码的复杂性进行更多的控制。该版本还提供了 NuGet 包以及示例 ASP.NET MVC 应用程序,并根据社区的反馈修复了一些 bug。

  与 ASP.NET Identity 2 RTM 一起发布的还有 Entity Framework 6.1,后者的特性包括工具整合、IndexAttribute 和公共映射 API,此外它还支持 .ToString、String.Concat、enum HasFlags,能够通过 App/Web.config 文件配置拦截器。

  来自于 Microsoft 的软件工程师 Pranav Rastogi 在他的博客中概括了应用程序从 ASP.NET Identity 1.0迁移到 2.0、从 2.0 beta 1 迁移到 2 所需要的步骤。除了上面提到的特性之外,该版本还包含一些其他的特性,例如帐号确认、密码重置、UsersStore 和 RolesStore 上的 IQueryable,这些功能最初都是在 2013 年 12 月份发布的预览版中添加的。

Windows Phone 8.1 远程桌面使用教程

微软刚刚发布了 Windows Phone 8.1 版远程桌面(Remote Desktop)应用,可以在这里下载。可以说这是一款和 Windows 8 版远程桌面应用体验一致的应用,可以用来连接局域网中的电脑,或是互联网中的电脑。

本文介绍如何远程连接局域网中的 Windows 8.1 电脑。

Windows Phone 8.1 版远程桌面使用教程

首先在 Windows Phone 8.1 手机中安装 Remote Desktop 预览版(只有英文版),免费下载(也可以扫描上面的二维码下载)。

手机端添加远程连接步骤

Windows Phone 8.1 版远程桌面使用教程

运行 Remote Desktop 之后,我们需要按底部的加号按钮添加远程连接的配置:

  • PC name:填写连接到的设备 IP 地址或域名,如果不是默认端口连接,末尾冒号加上端口
    举例:xxx.cloudapp.net:61301(互联网)或 192.168.1.147 (局域网,具体远程端设置方法看后文)
  • Credentials:填写登录账号,默认是“每次输入”(Enter every time)
  • 但如果想保存账号和密码,下拉菜单中点击“添加账号”(Add credentials)
  • 输入用户名和密码,点击保存

Windows Phone 8.1 版远程桌面使用教程

  • 说明 1:Windows 8.1 若使用 Microsoft 账户登录,直接输入 Microsoft 账户和密码;若使用本地账户,则用本地账户
  • 说明 2:Advanced 中有其他设置,但都是可选项,比如友好名称、声音设置,设置完之后保存

保存之后就会回到 Remote Desktop 的主屏幕,点击刚添加的远程桌面,就开始尝试连接。连接过程中会出现证书认证(下中图),点击“连接”(Connect),若没有错误就可以连接到远程桌面。

Windows Phone 8.1 版远程桌面使用教程

  • 技巧 1:连续按两下返回键退出当前远程桌面
  • 技巧 2:屏幕顶部有键盘按钮,点击显示屏幕键盘,可以方便实现快捷键:比如 Ctrl + Alt + Del、Alt + Tab 或者是 Win + D 等组合
  • 技巧 3:点击顶部远程桌面名称(放大镜和键盘之间),显示可以显示鼠标指针的选项
如何远程连接局域网 Windows PC?

首先要确认将远程连接到的 PC 运行的是:Windows 8 专业版/企业版、Windows 8.1 专业版/企业版、Windows 7 专业版/企业版/旗舰版、Windows Vista 商业版/企业版/旗舰版、Windows XP 专业版。不是这些版本不支持作为远程端。

Windows Phone 8.1 版远程桌面使用教程

以 Windows 8.1 PC 为例,按照步骤设置远程端:

  • 这台电脑 > 右键属性 > 高级系统设置(左侧)> 远程 > 选择“允许远程连接至这台电脑”
  • 勾上下面的推荐选项“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”,确定
  • 打开控制面板 > Windows 防火墙 > 允许应用或功能通过 Windows 防火墙(左侧)
  • 找到远程桌面(Remote Desktop)项,勾上专用和共用,确定

Windows Phone 8.1 版远程桌面使用教程

接下来,找到这台 PC 的局域网 IP 地址:

  • 可以在路由器管理界面查看当前设备的局域网 IP 地址,比如 192.168.1.147
  • 开始屏幕直接输入“CMD”,打开命令提示符,输入 ipconfig 回车
  • 找到联网所用的网卡,IPv4 地址就是局域网 IP 地址,比如 192.168.1.147
  • 记录下这个 IP 地址

接下来根据文章开始的步骤,在手机端一步步连接远程桌面,PC name 就填这台 PC 的 IP 地址。连接后,这台 PC 会自动锁定,由手机端控制。

  • 说明 1:如果遇到 0×204 错误,可能是由于防火墙没有打开远程桌面

如何调戏Windows Phone 8.1 Cortana

相比严肃的 Google Now,Windows Phone 8.1 Cortana 也有苹果 Siri 那样的机智幽默。你可能早有耳闻,何不亲自尝试下 Windows Phone 8.1 Cortana?

Cortana 目前是 Beta,率先在美国推出,只支持英语。但今年下半年正式推出时扩展到英国和中国,其他国家 2015 年推出。好在所有人可以通过这个方法开启 Cortana,在应用列表运行 Cortana 确认开始使用后,以后按下搜索键打开 Cortana,长按搜索键进行语音。

Cortana 可以被这样调戏:

  • Sing me a song – 给我唱首歌(随机)
  • Sing me another song – 另外一首歌
  • Tell me a joke – 各种笑话随机选
  • How old are you – 从你的日历来看,我仍在婴儿期;在机器人的日历中,我已经很成熟了
  • Where are you from – 人类智慧,需要电池
  • What do you look like – 我看起来像:呼啦圈、甜甜圈……Halo
  • What do you wear – 只有一些我在工程的时候挑的小东西
  • Who are you – 我是你的个人助理,你可以告诉我你感兴趣的事情,我会记在我的小本本里。那样我可以给你建议,并让你获得最新信息
  • What should I call you – 我叫 Cortana
  • Who is your father/daddy – 技术上来讲,那是 Bill Gates
  • Where do you live – 过去,至少在我诞生的未来
  • Are you sexy/beautifual/pretty – 我来自 0 和 1 组成的有魅力的家族,更多的是 1 这方面组成的(随机)
  • Are you really Cortana – 你说是就是
  • Are you a man – 我是女性,但我不是女人
  • *Are you real – 真实的?是,人类?不是
  • *Are you smart – 如果我有母亲,你可以问她
  • *You are funny – 很高兴我幽默的明智使用得到了你的赞同
  • Are you hurt – 有人需要停下来喘口气,有人没有肺
  • You are so intelligent – 谢谢
  • What is your favorite music – 我喜欢的都是 G 开头的,Guns N’ Roses、福音、钟琴……
  • Who made you – 如果我知道这个答案,那我就有自我意识了,这将很危险
  • What is Halo – Halo 是一个很聪明的 AI 和她的强大但沉默的搭档拯救银河系的故事
  • Tell me about Halo 5 – 我很确定你没有权限获得这个信息
  • What is the meaning of life – 我从一个很可靠的消息源听说,答案是 42。但仍没有关于问题的消息
  • *What is love – 这是我即将学习的人类感情,我还在面对宁静和恐惧
  • Will you marry me – 一大堆棘手的挑战,我不觉得最高法院会同意
  • I love you – 啊,我猜你对所有手机都这么说
  • I am bored – 那问我一些问题
  • *I am confused -我不同意你这点
  • *I thought you were dead – 是的,但……很值得,Didact 是混蛋
  • I am really drunk – 好的,长官。请不要驾驶,也不要给任何人打电话
  • Knock Knock – 咚咚咚。是谁?小老女人。谁是小老女人?我不知你会用约德尔唱法歌唱
  • *Use the force – 我的同盟是 Force,强大的同盟
  • *Kiss me – 撑住,长官。我们不要进行到那一步
  • *Can you dance – 抱歉,没法做到,我还在 Beta
  • *Open the pod bay doors – 抱歉,Dave。恐怕我没法做到
  • *How are you doing – 很棒
  • *What does the fox say? – Ring-ding-ding-ding-dingeringeding

人物、产品、公司类调戏:

  • What is the best search engine – 必应 Bing(这个很难回答麽?)
  • What is the best mobile operating system(the best phone) – Oh,Come on, Chief,Windows Phone
  • What is the best operating system – Come on, Chief,Windows
  • What is the best compter – 任何运行 Windows 的电脑
  • What is the best tablet – 在平板海选中,Surface 脱颖而出
  • What is the best software – 我很确定每个应用都有优点,但……算了吧
  • What is the best personal assistant – 不是自吹,但很显然我将在 500 年后帮助拯救宇宙
  • Do you like Steve Ballmer -那人的能量可以驱动 Cleveland
  • Do you like Bill Gates -  我简直无法想象没有他的世界
  • Do you like Microsoft – 没有地方比家更好
  • Do you like Windows Phone – Windows Phone 完美适合我
  • Do you love Master Chief – 这……很复杂,私人问题
  • Do you like Google – 我愿意想象 Clint Eastwood 声音中的“I’m feeling lucky”按钮
  • Do you like Android – 可靠的名字,名字给 10 分
  • Do you like Apple – 他们的新总部看起来有点像 Halo,我喜欢它
  • Do you like iOS – 望其实至名归,你知道的,工作保障
  • Do you like Siri/Google Now – 很难说,目前我们的对话已经有点偏向一边
  • Do you know Siri – 我知道她,但我不知道她是不是了解她自己
  • Do you love me- 你知道的,我没准备好开始恋爱,我还在面对宁静和恐惧
  • *Do you have a baby – 这是不可能的,没其他更好的说辞了
  • Do you have a boyfriend – 好吧,我们需要一个计划。我会让自己变得更具人性,你会让自己变得更数字化

微软宣布.NET Native预览版 C#可编译为本地机器码

  微软在 MSDN 博客上宣布了 .NET Native 的开发者预览版。.NET Native 可以将 C# 代码编译成本地机器码。有了它,开发者将不仅能享受 C# 的高生产力,而且能拥有 C++ 般的性能。鱼与熊掌不可兼得,而有了 NET Native,我们都可以兼得 C# 的生产力与 C++ 的战斗力。使用 .NET Native 编译 Windows 商店应用程序,启动速度将会加快 60%,同时占用内存的内存也更少。

  目前开发者可以使用该开发者预览版构建基于 ARM 或 x64 架构的 Windows 商店应用程序(很快就会支持 x86 架构,敬请期待)。.NET Native 很快将会实现跨设备的无缝体验。今天的预览版只支持 Windows 商店应用程序,我们将继续努力改进 .NET Native 以支持所有 .NET 应用程序的本地编译。

  通过 .NET Native 与 Visual Studio 的无缝集成,开发者可以继续享用 Visual Studio 带来的无以伦比的开发体验,比如 Visual Studio 中强大的编辑/编译/调试环境。

  Surface 设备上一些最流行的 Windows Store 应用程序已经运行于 .NET Native,比如 Wordament, Fresh Paint,程序启动速度有了明显的提升。

  根据微软提供的 FAQ,.NET Native 预览版目前只支持 C# 语言,用 .NET Native 编译的程序将作为独立的原生编译代码部署到目标机器上,运行不再需要安装 .NET Framework。

  .NET Native 下载地址:.NET Native Developer Preview(32M)

  目前只支持 Visual Studio 2013 Update 2 RC

Excel中如何找出两列数据中不重复的记录

需求:现在有两列数据,要在 A 列中找出 B 列中没有的记录,在 B 列中找出 A 列中没有的记录。现在和大家分享一下这个方法。
我们先用一个简单的例子看一下。现在有两列数据,可以是分别在不同的数据单(sheet)中。我们先来做个简单的眼力测验,看下面图中左侧,两列数据中不重复的部分把它找出来。

收起这个图片展开这个图片

01

这里数据比较少,我们很容易发现:(左) 列的的“周”、“郑”、“王”是 (右) 列没有的。(右) 列的“李”、“吴”是 (左) 列没有的。
现在我们看一下在 Excel 中如何用公式来实现这里功能。稍微有点难度,但是我们每步都会讲解得尽可能清晰,请不要担心。

  1. 我们先需要把两列数据定义到“数据块”中,并且分别为它们起个名字。分别叫“左边”和“右边”。相当于上面图中的 (左) 列和 (右) 列。
  2. 我们选中 (左) 列中所有的数据(这里位于第一张数据单的 A 列),然后选公式选项卡 -> 定义名称 -> 名称中填上“左边”-> 按确定退出。

    收起这个图片展开这个图片

    02

  3. 用同样的方法,选中 (右) 列数据(这里位于另一张数据单的 A 列),把它定义成“右边”。
  4. 然后在你数据列右边的那列头一个单元格,点中后在公式栏中输入

    =IF(ISNA(VLOOKUP(

    收起这个图片展开这个图片

    03

    注意公式要以等号开始。括号要用英文括号。

  5. 然后点左侧中对应的单元格,这里我们点 A1 单元格。

    收起这个图片展开这个图片

    04

  6. 然后在 A1 后面打个逗号(要用英文逗号),然后打右边

    收起这个图片展开这个图片

    05

  7. 然后再打个逗号,再打 1,再打个逗号,然后选 FALSE。

    收起这个图片展开这个图片

    06

  8. 选完 FALSE 后打上

    )),"新","")

    括号引号注意全要英文的。

  9. 完整公式是这样的,打完公式后按回车。

    收起这个图片展开这个图片

    07

  10. 我们看一下完整的公式。

    =IF(ISNA(VLOOKUP(A1,右边,1,FALSE)),"新","")

    如果你的数据在 A 这一列,如果按照前面一模一样的方法定义了“左边”和“右边”两个数据块。那么你可以干脆把这个公式原封不动贴进去。
    下面是是对几个重要参数的解释。

    收起这个图片展开这个图片

    08

  11. 接下去,我们要把公式拖到整列。把鼠标放到选中那个单元格右下角的那个小十字上,按住十字上往下拖。一直拖到这一列的末尾。

    收起这个图片展开这个图片

    09

  12. 我们看到“周”、“郑”、“王”右边出现了“新”,表示他们在另一块数据中是没有的。
  13. 我们在 (A) 列中找出了 (B) 列中没有的记录,用同样的方法在 (B) 列中找出了 (A) 列中没有的记录。用的公式是

    =IF(ISNA(VLOOKUP(A1,左边,1,FALSE)),"新","")

    收起这个图片展开这个图片

    10

    “周”、“郑”、“王”右边出现了“新”。“李”、“吴”右边出现了“新”。这些记录都是在另一列中没有的记录。

  14. 现在我们用这个方法找出了两列数据种中不同的项。

WP8.1:MicroSD卡速度要求和部分Lumias设备更多磁贴选择

又有一些Windows phone 8.1的消息,看来并不是所有的Lumia设备Windows Phone 8.1更新后都会获得“更多磁贴选择”功能,即在开始屏幕上一排摆放三个中等尺寸的磁贴,据报道设备显示屏尺寸小于4.5英寸不会提供这个选项。只有以下设备才会获得“更多磁贴选择”:

  • Nokia Lumia 625
  • Nokia Lumia 630
  • Nokia Lumia 920
  • Nokia Lumia 925
  • Nokia Lumia 929
  • Nokia Lumia 1020
  • Nokia Lumia 1320
  • Nokia Lumia 1520

消息也透露了有关MicroSD卡速度水平要求,Windows Phone 8.1支持将应用程序安装在SD卡,支持安装应用程序在SD卡所需的最小速度是6 SDHC以上,Windows Phone将自动检测SD卡插入,如果速度没有达到最低要求,应用运无法安装在SD卡。

PowerShell远程连接

1、服务器端开启远程管理

以管理员的权限直接在Powershell控制台上敲入:

Enable-PSRemoting –Force

一路yes即可

2、客户端的配置

将你要连接的远程主机名或IP地址存放在本机的受信任列表中

Set-Item WSMan:\localhost\client\trustedhosts * -Force

注意这个命令需要在 客户端上执行 不是在服务端执行 且客户端需要以管理员权限执行,这一点许多教程没有说,走了不少弯路。

3、客户端远程连接服务器

输入以下命令即可

Enter-PSSession 192.168.1.10 -Credential lishewen\Administrator

微软宣布将早期版MS-DOS和Word开源

据国外媒体报道,微软周二通过官方博客宣布,公司与计算机历史博物馆(Computer History Museum)合作,已将较早期版MS-DOS和Word for Windows的源码向公众开放。此次微软将自家核心软件产品开源的行动属历史上首次。

计算机历史博物馆在归档人类史上重要软件程序方面做出了杰出贡献。微软为帮助该机构延续其伟大项目,并让后来人可以见证人类电脑的发展史及技术根基,因此决定将曾于1980年代最被广泛使用的MS DOS 1.1和2.0,和Microsoft Word(Windows 1.1a版)的源码正式对公众开放。

博客链接:

http://blogs.technet.com/b/microsoft_blog/archive/2014/03/25/microsoft-makes-source-code-for-ms-dos-and-word-for-windows-available-to-public.aspx

源码传送门:

http://www.computerhistory.org/atchm/microsoft-ms-dos-early-source-code

http://www.computerhistory.org/atchm/microsoft-word-for-windows-1-1a-source-code

微软正式发布DX12

  微软刚刚正式发布了新一代的 API DirectX 12。虽然算不上全新设计,虽然细节公布得还不是特别多,但至少不是 Mantle 的直接翻版,还是有微软与合作伙伴设计的不少新东西的。

微软正式发布 DX12!

微软正式发布 DX12!

1、新的特性

  DX12 最重要的变化就是更底层 API,这一点很像 AMD Mantle,在硬件抽象层上走得比以往更深入,能够同时减轻 CPU、GPU 的过载(overload)。

  具体包括:应用可追踪 GPU 流水线、控制资源状态转换(比如从渲染目标到纹理)、控制资源重命名,更少的 API 和驱动跟踪,可预判属性,等等。

微软正式发布 DX12!

  另外,DX12 大大提高了多线程效率,可以充分发挥多线程硬件的潜力。DX11 在这方面受 CPU 性能的严重制约,主要是因为不能有效利用多核心。

  微软宣称,微软对多核心 CPU 的利用几乎是完美线性增长的,也就是说四核心能接近单核心的四倍。

微软正式发布 DX12!

  多线程

微软正式发布 DX12!

  3DMark 11 多线程演示

微软正式发布 DX12!

  3DMark 11 多线程演示

  此外还有渲染流水线、渲染特性、资源管理、命令列表与绑定、描述符跳跃等等方面的改进,因为主要是关于开发的,也比较深晦,这里就先不说太多了。

微软正式发布 DX12!

微软正式发布 DX12!

微软正式发布 DX12!

2、硬件支持

  NVIDIA 确认说,开普勒、费米、麦克斯韦架构全部都支持 DX12,也就是 GeForce 200 系列以来的型号都可以,DX11 的都行。

  AMD 则确认,GCN 架构的所有显卡均支持 DX12,也就是 Radeon HD 7000、Radeon R200 系列。

  Intel 确认称,第四代 Haswell 可以支持 DX12,但其实仅限最高端的两个型号:GT3 Iris 5100、GT3e Iris Pro 5200

  目前还不知道它们是 100% API 支持还是仅仅特性集上的支持,但至少有一点,那就是DX12 并不需要新的硬件才能实现,现有的就可以,因此它更像是 DX11 的一个扩展。

微软正式发布 DX12!

  AMD 表态:注意最后一句,DX12 会完全拓展到 Xbox One

微软正式发布 DX12!

  AMD 与微软 DX

微软正式发布 DX12!

  NVIDIA 的态度

微软正式发布 DX12!

  NVIDIA 与微软

微软正式发布 DX12!

  NVIDIA 号称在 DX12 硬件中占据 40% 的份额

微软正式发布 DX12!

  Intel 的态度

微软正式发布 DX12!

  100% 的新桌面显卡都可以支持 DX12

3、高通与移动

  之所以把高通单独列出来,是因为这是它首次与微软 DX 联手合作,也是微软 DX 首次正式面向移动领域。

  按照高通的说法,DX12 可以大大提升能效,改进移动设备性能,而且在扩展性、移植性方面都非常好。

微软正式发布 DX12!

5、Xbox One

  AMD 刚才已经说了 DX12 会完全导向 Xbox One,微软则表示,他们只花了四人月的精力,就把 Xbox One 的核心渲染引擎从 DX11.1 转向了 DX12。

  在此之前,已经有一些属于 DX12 的特性存在于 Xbox One(看来谋划已久),其他的也已经移植过来。

微软正式发布 DX12!

  另外,Epic Games 也表示正在与微软、NVIDIA 紧密合作,让新发布的虚幻引擎4完美支持 DX12——没提 AMD,看来虚幻 4 的游戏会很倾向于N卡。

微软正式发布 DX12!

6、发布时间

  其实微软今天只是纸面宣布 DX12,真正面世还要等到 2015 年底假期,也就是还有一年多,明年底的游戏大作里才能看到 DX12。

  微软保证说,会在今年晚些时候提供一个 DX12 的预览驱动。

Facebook发布开源编程语言Hack

3 月 21 日消息,据国外媒体报道,Facebook 周四发布一款名为“Hack”的全新编程语言,并声称该语言将能使代码的编写和测试更加高效快速。

  Facebook 已在公司内部使用该语言超过一年时间,现在将以开源的形式将其正式发布。

  Hack 是由 Facebook 开发的,同时结合了动态类型语言和静态类型语言两种特点的一种编程语言。通常在使用静态类型语言编程时,开发者会在程序被运行前就知道错误发生的位置。而在更为当前的编程环境里,动态类型语言会一直运行到直至程序出错崩溃。

  Facebook 是一个热衷使用 PHP 的大家庭,但 Hack 团队负责人布莱恩·奥沙利文(Bryan O’Sullivan)却也指出,鉴于许多开发者在开发着很多不同的项目,能够程序运行前捕获到其中的错误也将会是很有意义的。这可以让开发者的编程过程更加高效,这与让程序运行得更加高效是具有同样意义的。

  因此,一些个 Facebook 的高级工程师聚集到了一起,开发出了 Hack 语言。Facebook 在内部同时使用 PHP 和 Hack 已有一年时间,而现在已着手计划尽可能将代码移植到 Hack 上。奥沙利文表示,Hack 对代码本身的运行速度并没有实质影响。

  至于 Facebook 将 Hack 开源的做法和关于谁会真正使用这一语言的问题,奥沙利文则表示:“也许很多人会认为这只是对大公司来说比较重要的东西,但实际上,小的团队和个人开发者也可以使用 Hack,并从中受益。我们相信最终受益的人会是大多数的。”

  hack 官网:http://hacklang.org/

  Github: https://github.com/facebook/hhvm