0%

历经三门考试,在这个阳光明媚的初春,2018年的第一个小目标——考取微软认证解决方案开发者(MCSD, Microsoft Certified Solutions Developer)证书,终于达成了。

回头看看,从大学时期的ASP开始,到ASP.NET、WinForm开发,到后来的ASP.MVC、WCF开发,再到近些年的ASP.NET Web API以及Azure相关的开发,我已经在微软技术栈上学习和实践了近10年。考取这个证书,不是为了面试找工作,而是对自己这么多年来学习的一个检验,给自己的一个交代。

阅读全文 »

REPL

Read-Eval-Print Loop,简称REPL,中文意为“读取-求值-输出”循环,是一个简单的、交互式的编程环境。REPL对于学习一门新的编程语言具有很大的帮助,因为它能立刻对初学者做出回应。

阅读全文 »

Word Count 是学习Spark开发的一个经典案例,类似于其他编程语言中的Hello World程序。但这个例子是基于英文的,英文断句分词是一件比较容易的事情,一般都是以空格为分隔符进行分词。但对于中文来说,事情就复杂了。

阅读全文 »

一切皆服务

在云计算领域,下面的三个术语可谓是人尽皆知了,这三个结合起来,就是云计算的SPI服务模型了。

  • 软件即服务(SaaS,software as a service)
  • 平台即服务(PaaS,platform as a service)
  • 基础设施即服务(IaaS,infrastructure as a service)

由此诞生了一个新的概念,一切皆服务(XaaS),意为“X as a service”、“anything as a service”、“everything as a service”。

阅读全文 »

我们先来看一段C#代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static void Main(string[] args)
{
var array = new string[] { "abc", "xyz" };
Foo(array);

var list = new List<string> { "abc", "xyz" };
Foo(list);
}

static void Foo(IList<string> list)
{
Console.WriteLine($"list count: {list.Count}");
foreach (var item in list)
{
Console.WriteLine(item);
}
}

在Visual Studio中编译、执行,一切正常。你会觉得这段代码很普通,没啥特别之处。但仔细观察,你会发现string数组竟然可以隐式地转换成IList<T>这个接口,这不是很奇怪吗?

阅读全文 »

从最终用户的角度来看,用户能提供身份信息的方式有:

  • 用户名/密码
  • 证书(基于x509标准)
  • 各种硬件设备(U盾、RSA密码生成器等)
  • 生物识别(指纹、虹膜、人脸等)
阅读全文 »

偶然看到一个关于Linux之父Linus Torvalds在TED上的一个视频。Linus谈到自己是一个喜欢安静的人,虽然创造了改变计算机行业的两大软件——Linux和Git,但他自己还是不太愿意和人打交道,只想安安静静的写代码、搞研究,我想技术大牛大多是这样的吧。当主持人问Linus为何能取得如此伟大的成就时,Linus的回答是不会放弃、固执,对技术和代码有着完美的追求。

阅读全文 »

在经历了QQ空间,百度空间,博客园之后,我决定要自己搭建一个博客,一个自己可以掌控全部的博客。

WordPress, Orchard, Github Pages

作为一名程序员,我喜欢折腾各种各样的技术,搭建博客也不例外。2012年,使用了当时最流行的wordpress在sourceforge上搭建了一个博客站点,怎奈服务器在国外,访问速度不太好,加上当时要读研,才写了几篇博客就停止更新了。到后来,我希望搭建一个基于.NET的博客站点,因为.NET是我最熟悉的编程语言,于是Orchard成为了我的首选。Orchard是由微软主导开发,基于ASP.NET MVC技术的免费开源的内容管理系统(Content Management System, CMS)。在使用了一段时间后,我逐渐发现Orchard对于写博客而言,实在是太重量级了。Orchard另外一个问题是,对于博客站点而言,它的主题太少,太单调,定制化也比较复杂。于是就放弃使用它了。这之后Github开始流行,使用Github Pages来搭建个人博客在程序员的圈子里成为了流行趋势。我也跟风搭建了一个主页,建完后不知道写啥好。一方面觉得一些生活感悟、个人兴趣发表在这种技术博客上不太好,另一方面则是Github Pages依托于一个全公开的代码仓库,这样网站的全部内容就毫无隐私,这也不是我想要的。

Hexo + Azure Websites

比较了Jekyll、Octopress、ghost、FarBox、Hexo等博客引擎之后,我选择了Hexo作为博客引擎,Azure Websites作为托管平台。它满足了我所有的要求:

  1. 自己可以掌握所有的内容以及方便的定制化
  2. 远程Git仓库由自己控制,仓库位置即为网站根目录
  3. 使用Markdown编写,Commit即发布,本地和远程包含网站的所有内容和历史记录

对自己的期望

阮一峰在他的一篇博文里谈到,喜欢写Blog的人,会经历以下三个阶段:

第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。
第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。
第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。

我很同意这样的观点,但我却没有养成写博客这个好习惯,还谈不上喜欢写博客,总是流于技术层面的东西在捯饬,没有踏踏实实,静下心来好好写博客。博客的本质在于优秀的内容,而不是博客网站本身的技术框架多牛,主题多好看。阮一峰的网络日志月光博客就是我的榜样。

写博客的好处是毋庸置疑的,我希望这篇文章是个好的开始。