云计算与互联网基础承载结构的矛盾

今天听了电信领域战略专家刘南杰关于“互联网基因与电信发展”的一个主题讲座,了解到了一些从互联网最早期日子一路过来,在互联网公司和电信运营商之间那些貌合神离的微妙关系,以及在互联网经历爆发性增长后电信运营商所面临的转型压力。其中一个关于“云计算”的有趣话题引起了我的更多思索。

“云计算”这个词最近实在太热了,以至于只要是个互联网公司,要是还没有自己的“云战略”,那简直是抬不起头见人了。但是,云计算在承载了众多期望与理想的同时,是否真的是未来互联网服务的大趋势呢?云计算的未来究竟应该是怎样的形态?很遗憾,我也无法回答这些问题,但至少眼下,我们必须看到云计算所面临的现实问题。

继续阅读云计算与互联网基础承载结构的矛盾

DIY雷柏9200的16个可编程按键

今天入手了雷柏9200无线鼠标,因为在这个价位中,它提供了绝对有竞争力的“8按键”+“二维滚轮”。再加上双模式的切换和滚轮,总共可以使用多达19个功能键!

但遗憾的是,纵然拥有如此多的按键,但官方所提供的驱动程序却只能支持对其中仅仅两个按键定制功能,不能不说是完全埋没了9200的天赋……

好在DIY精神就是要突破限制,明知不可为而为之!利用AutoHotkey,我们可以实现对其中最多16个键的功能随心定制,充分发挥你无边无际的想象力和炉火纯青的弹指神功!

继续阅读DIY雷柏9200的16个可编程按键

C语言小技巧:带扫尾工作的宏

前两天为了在C下编写一个类似Erlang式消息传递的框架,需要定义一个receive宏,使得coroutine处理函数的编写可以类似这样:

int foo()
{
    ...
    receive(msg)
    {
        // Deal with the message
    }
    ...
    receive(msg)
    {
        // Deal with another message
    }
    ...
}

因为foo()函数以coroutine方式执行,所以消息的及时释放就显得尤为重要了,receive()之后紧接的代码块就是这个消息的生存周期,完成之后需要立即对消息进行释放。这就对receive宏的编写提出了一个特别的要求:包含扫尾工作。

继续阅读C语言小技巧:带扫尾工作的宏

在线旅游服务网站初体验

由于筹划最近去澳门玩一趟,打算尝试通过网络预定旅游服务,因此在网上挑选了两个较大的旅游服务网站“携程旅游网”和“芒果网”,仔细研究了一下它们各自的“澳门自由行”产品,根据初步印象总结了一下我对这两家网站的感受:

继续阅读在线旅游服务网站初体验

搭建了一个自己的OpenID Server

利用开源的phpMyID搭建,以域名“id.oasisfeng.com”作为OpenID的认证标志,简单易记。从此不必依赖互联网上的公共OpenID服务商,也不用担心各种各样的潜在隐私问题。当然,带价是得自己防范黑客攻击。

PS:本来搭建的步骤非常简单,结果给phpMyID的README里那一大堆废话给反而搞复杂了……

补充:其实还可以用更简短的“oasisfeng.com”作为认证标志,前提是你可以通过这种不带“www”前缀的URL访问自己的域名,然后只要在这个域名首页HTML的<HEAD>部分中插入如下内容(从http://id.oasisfeng.com/在浏览器中看到的源码中复制过来)即可:

<link rel="openid.server" href="http://id.oasisfeng.com/" />
<link rel="openid.delegate" href="http://id.oasisfeng.com/index.php" />

大容量个人存储时代的管理理念——分区管理篇

当个人电脑的存储容量即将跨入TB纪元之时,你是否仍然还按照传统观念在管理着你的硬盘分区?将硬盘分作4-5个分区,分别规划为操作系统、应用软件、高清电影、网络下载、个人资料……

面对高达0.5-1TB容量的硬盘,不仅初期的分区容量规划变得难以取舍,一旦后期电脑应用趋势发生变化,分区的使用往往不得不偏离最初规划,而且还会造成文件存储的杂乱无章,甚至到头来连自己都找不到文件丢到哪里去了……

那么如何规划和使用你的硬盘分区才能最大程度的减少上述困扰呢?

继续阅读大容量个人存储时代的管理理念——分区管理篇

打点一个整洁的任务栏——三款免费任务栏整理工具横向评测

  如果电脑是你的主力生产工具,那么工作中通常难以避免打开一大堆窗口,尤其是碰到那些不支持Tab或MDI模式的应用程序。而且搞不好排列混乱的任务栏以及手忙脚乱的找窗口还会破坏你工作时的好心情,让你陷入无谓的抓狂之中。

  从某种角度来说,自Windows95至今,正是微软对这个设计简陋的任务栏顽固之极的坚持,自然而然的催生了一系列任务栏优化工具。这次要拿出来分享的就是一类应对上述问题而生的“任务栏按钮整理工具”。经过一段时间的收集和试用,大致挑选出以下三款小工具(均为绿色免费软件):

继续阅读打点一个整洁的任务栏——三款免费任务栏整理工具横向评测

【Linux小技巧】秘密追踪——谁用了我的大宝?>v

如果宿舍里就你买了一瓶大宝,而且用了之后效果还挺不错。隔不久,你就发现最近这瓶大宝似乎用的有点快了,敢情是哪个哥们儿想买之前先试用一下?不巧的是,你恰好非常好奇这哥们儿是谁,想要搞一次秘密追踪。啥?指纹鉴别?噢,请原谅我没有那么专业的器材…… 不过土办法、馊主意我们还是有的:只要往大宝里掺和一点稀释过的辣椒水,隔天就等着找猴子屁股吧。^_+

扯太远了,其实本篇是想和大家分享一个在Linux下利用辣椒水的思路实现追踪程序被调用情况的小技巧。因为前段时间在分析Linux中各种内核模块被加载的方式、时间和源头。为此,我写了一个小小的Shell脚本:

继续阅读【Linux小技巧】秘密追踪——谁用了我的大宝?>v

开发人员的月光宝盒 —— 基于CPU的“时光倒流”技术畅想

一. 重现罕见问题——开发人员永远的痛

但凡做过程序调试的开发人员,一定都有过面临难以重现的问题时仰天兴叹的经历,祈祷老天赐予传说中的“月光宝盒”,从而逆转时光揪出那引发程序错误的元凶!

即使在错误跟踪技术经历长足发展的今天,哪怕是经过周密故障跟踪机制加持的代码,程序员仍然对那些难以重现的问题提心吊胆。错误跟踪机制再先进,也难以完整记录整个程序的运行轨迹和任何过去时刻的系统状态。数据覆盖的不可逆决定了程序执行的单向性,就像时间之箭,谁也不能让它转向。但时间的单向性并不意味着过去的时光不能从头来过,就像“月光宝盒”虽然不能使你回身飞上万丈绝壁,但却可以将你带回过去的某一时刻,让后面的历史重新来过。

二. 挑战时间之箭,已逝历史也能重历?

继续阅读开发人员的月光宝盒 —— 基于CPU的“时光倒流”技术畅想