Google 搜索放眼未来

来自华尔街日报的 消息,Google 正在计划一项重大的改变,对象是其核心业务——搜索。该计划将利用“语义搜索”分析搜索框内关键词的深层含义,然后直接显示问题的答案,而不是像现在这样 给出一列指向潜在答案的链接。如果说现在的搜索与目标还隔着一层玻璃,那么 Google 要做的就是击碎这块玻璃。The Verge 认为这个功能类似微软的搜索 Bing 的做法,直接给出各种问题的答案。

看到这个消息,我在想,Google 怎么了?从公司创立至今,Google 似乎一直都所向披靡,在搜索领域无人能敌。虽然在其搜索功能上有着极高的改进频率,但却从未有过这样的改变。

这究竟是怎么回事?据 The Verge 分析,Google 即将推出的功能类似于 Wolfram Alpha —— 一个“直接提供最佳解决方案而非链接”的 小众搜索引擎。之所以说它小众是因为对于科学领域的内容的擅长与对日常生活资讯内容的简陋对比鲜明。科技媒体 Cnet 曾经对它做过测评,利用 Wolfram Alpha 和 Google 搜索同样的内容,一旦涉及到数学,科技等领域,前者的结果往往更好,但在这些领域之外的内容则不如后者。

其实,这个评测明显多余,从 Wolfram Alpha 主页上写着的“输入你想计算或者想知道的内容”就能知道,这是一个“搜索版的 Quora”或者“搜索版的知乎”。它更倾向于解决你遇到的专业问题。

这就奇怪了,为什么 Google 面对比自己更加小众的搜索领域会做出这样的改变?原因可能在于,搜索的发展方向正在演变。

在 Google 刚刚成立的那些年里,智能手机没有普及,iPad 等等平板电脑更是没有影子。人们的生活正在经历着互联网热潮带来的革新,输入一个关键词就能得到相关的网站链接已经足够网民惊呼神奇的了。

随着互联网技术的日新月异,我们虽然表面上依旧满足于获得一串链接,但是内心已经渴望更加智能的结果。比如,过去如果要去云南旅游,我会在网上上搜 索当地的旅馆,然后一家家地对比,如果运气不好可能还会碰到虚假的信息。但是现在,铺天盖地的旅游网广告告示我,他们可以搞定这一切。那么未来呢,在十年 之后还要登陆旅游网站会不会太麻烦了?

下一个趋势就是智能助手,在你毫无察觉的情况下,直接将结果呈现出来,直接完成某项任务。苹果公司的乔帮主很有远见地感觉到了这点,将 Siri 加入了智能终端,虽然目前还只是 Beta 版,但谁都能顺着她那稍带人情味的声音里听出搜索的未来。

这一切 Google 都看在了眼里,虽然多年以来一直伴随苹果左右,发展了 Android ,现在又是智能助手 Google Assistant ,但它不会甘心这样的角色。Google 希望的是做真正的霸主,至少要在搜索领域,而且无论是在移动终端还是在人们的桌面上。

可以说,Google 及时看到了搜索的未来,并且不甘被苹果挤压,至于反击的结果如何,与其 Android 战略的发展息息相关,科幻电影里无时无刻都在线的未来世界也许并不遥远。

但疑问不是没有,因为一旦改变,可能会影响到数百万的搜索结果。Google 如何保证搜索结果的公正会是一个新话题,而如何与推出不久的社交搜索相融合也会是一个看点。另外,这个功能会融合到搜索结果中而不是单独呈现,我们将在接 下来的数月之内看到一个新的 Google.com。

诺基亚证实在开发平板

诺基亚设计主管Marko Ahtisaari告诉一家芬兰杂志,该公司正在开发平板。供应链消息来源称诺基亚使用的是微软的Windows-on-ARM平台。平板的规格为双核高通芯片组,显示屏为10英寸,预计2012年第4季度发布。诺基亚一位发言人就Ahtisaari的评论表示,他们对平板一直很感兴趣,但目前并无正式声明可宣布。

MySQL BOOL/BOOLEAN 与 TINYINT 测试总结

导读

MySQL数据库产品提供了二种比较特殊的数据类型: SET(集合类型)、ENUM(枚举类型)、BOOL/BOOLEAN(布尔类型),而多数开发人员,甚至DBA从业者对如何使用这三种数据类型的应用场 景并不十分清晰,为此结合TINYINT数据类型对比,让我们大家一起弄清楚。

(一)   数据类型测试 

(1). 布尔类型BOOL/BOOLEAN 微整型TINYINT

a). 创建测试表结构 

root@localhost : test 05:12:49> CREATE TABLE boolean_test(ID INT NOT NULL AUTO_INCREMENT,

    ->                           Online_Flag BOOL,

    ->                           Lock_Flag BOOLEAN,

    ->                           PRIMARY KEY(ID)

    ->                           )ENGINE=InnoDB CHARACTER SET ‘utf8′ COLLATE ‘utf8_general_ci’;

Query OK, 0 rows affected (0.01 sec)

 

我们可以发现对于字段类型写成BOOL或者BOOLEAN,MySQL的SQL语法都是允许通过的,另外我们再通过SHOW命令查阅创建好的表结构:

*************************** 1. row ***************************

       Table: boolean_test

Create Table: CREATE TABLE `boolean_test` (

  `ID` int(11) NOT NULL AUTO_INCREMENT,

  `Online_Flag` tinyint(1) DEFAULT NULL,

  `Lock_Flag` tinyint(1) DEFAULT NULL,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

小结:

我们对比手工输入创建表boolean_test的结构定义与数据库中查阅到表结构定义,可以发现二者的差别:

  1. MySQL数据库将字段的数据类型BOOL/BOOLEAN默认地转换成TINYINT(1);
  2. MySQL数据库自动完成的数据类型转换过程,没有给出任何错误或警告信息提示;

b). 测试数据的写入

root@localhost : test 05:12:58> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(TRUE,FALSE);

Query OK, 1 row affected (0.00 sec)

root@localhost : test 05:13:58> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(1,0);

Query OK, 1 row affected (0.00 sec)

root@localhost : test 05:14:04> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(2,-1);

Query OK, 1 row affected (0.00 sec)

root@localhost : test 05:14:11> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(-128,127);

Query OK, 1 row affected (0.00 sec)

root@localhost : test 05:14:18> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(-256,256);

Query OK, 1 row affected, 2 warnings (0.00 sec)

root@localhost : test 05:14:24> SHOW WARNINGS;

+———+——+——————————————————+

| Level   | Code | Message                                              |

+———+——+——————————————————+

| Warning | 1264 | Out of range value for column ‘Online_Flag’ at row 1 |

| Warning | 1264 | Out of range value for column ‘Lock_Flag’ at row 1   |

+———+——+——————————————————+

2 rows in set (0.00 sec)

小结:

  1. 测试数据表boolean_test的2个字段布尔类型字段,写入的值超过有符号整型TINYINT数据类型存储范围时,出现了字段值截断的警告信息;
  2. 向测试数据表boolean_test的字段可以写入表达布尔数值的TRUE 或 FALSE是不会报错,也不需要用单引号或双引号括起来;
  3. 向测试数据表boolean_test的字段可以写入非表达布尔类型的数值,MySQL数据库不会有任何错误或警告信息提示;

c). 显示写入表boolean_test的数据

root@localhost : test 06:31:33> SELECT * FROM boolean_test;

+—-+————-+———–+

| ID | Online_Flag | Lock_Flag |

+—-+————-+———–+

|  1 |           1 |         0 |

|  2 |           1 |         0 |

|  3 |           2 |        -1 |

|  4 |        -128 |       127 |

|  5 |        -128 |       127 |

+—-+————-+———–+

5 rows in set (0.00 sec)

小结:

通过查阅测试表boolean_test的数据,可以发现MySQL数据库中存储的值与数据写入的INSERT语句还是有一些差别,体现在:

  1. 写入的布尔类型值TRUE 转换成了 1,FALSE 转换成了 0;
  2. 超过TINYINT数据类型存储的上下限制的值,被自动截断;
  3. 布尔类型BOOL/BOOLEAN的功能等同于微整型TINYTINT;

要不要使用 Bootstrap 框架

Bootstrap 是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。

首先,人们发现 Bootstrap 框架超棒,于是开始使用,然后非常的恼火。所以我想说明下 Bootstrap 的优缺点以及为什么我决定继续使用它。

优点

  • 应用视觉效果一致性. 这个其实是很很难的,你希望你的链接、按钮、提醒都有统一的视觉效果,你可以为不同级别的提醒使用不同的颜色

  • 通过多个浏览器测试. 市面上主流的浏览器支持都没问题

  • 完整的框架解决方案. 这是一个框架,你只需使用它而无需重新制作,这个框架专为 Web 应用设计,所有的元素都可以非常完美的在一起工作,可快速开发。

缺点

  • 很难回头. 因为我们都在同一条起跑线上

  • 使用 Less CSS. 这个是个人喜好,我跟喜欢 SASS ,这样就变成我必须在同一个系统中使用两套 CSS 预处理器框架来做几乎相同的事情。

为什么我还要继续使用?

  • 速度. 我不是一个设计师,我喜欢的设计师她现在非常的忙,我无法等她三周后再来帮我

  • 一致性. 使用 Bootstrap 可以让我的整个 Web 应用的风格完全一致,一致的用户体验,一致的操作习惯。

  • 简单而优雅. 尽管还有很多不喜欢 Bootstrap 的人非常抗议这一点

最后我想说的是,Bootstrap 让我的应用看起来跟 Windows 或者 Gnome 下的程序一样,一样的按钮,一样的对话框,运行快速。而且越来越多的 Web 应用被直接放在桌面上运行,应用的一致性是一个趋势,你可以把精力放在业务上,而不是 UI。

英文原文,OSCHINA 原创翻译

传说中的开源 vs 现实中的开源

目前越来越多的科技企业加入到了开源领域,也都在积极地推动开源社区的发展。业界谈及开源,即想到创新、免费等一大堆优势。

不过,IDC并不这么认为。近日,IDC在其召开的Directions 2012大会上称,这些不过是一些传言,尽管有一定的道理,但也不能尽信。

IDC是全球著名的信息技术、电信行业和消费科技市场咨询、顾问和活动服务专业提供商。

IDC在大会上对6个热门传言进行了回应。

传言1:开源软件将接管世界,或者如同IDC一样,将进入每一个市场。

现实中:需求是有必要的,专有的解决方案无法很好地服务于市场,而开发者社区更愿意重新打造软件解决方案。

传言2:开源软件的本质是创新。

现实中:在过去,开源软件罕见地创造了一个新的市场,而不是复制已有的解决方案。而现在的开源软件已经逐渐背离了这些原则。

传言3:在功能改善上,开源软件比商业软件的周期更短。

现实中:在许多情况下,这是事实,但这并不意味着这些提交对于企业客户都是有用的。开源软件每月、每周,甚至每天都在更新,但问题是,有多少改进你能立即使用到。

传言4:开源软件不会将用户锁定(lock-in)到特定的产品中。

现实中:这是事实,但也多少会有些限制。没有强有力的锁定措施,这是对商业产品的最大挑战。

传言5:开源软件是免费的,或至少要便宜得多。

现实中:价格标签只不过反映了一小部分成本,用户在决定之前,必须考虑到项目的整个生命周期,再来看是否真正节省了成本。“Try-before-you-buy”是非常有必要的,同时要认识到,总成本还包括部署成本、长期管理成本、用户支持成本、故障停机成本等。

传言6:积极参与到开源社区,才能真正受益。

现实中:这是不正确的,看看一些大项目,如Linux、Hadoop等,为用户提供了巨大的好处,也不需要用户参与。尽管参与到开源社区有一定的好处,但并不意味着用户必须提交代码或进行测试。

关于开源软件,你怎么认为呢?

Via Zdnet