诺基亚设计主管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的结构定义与数据库中查阅到表结构定义,可以发现二者的差别:
- MySQL数据库将字段的数据类型BOOL/BOOLEAN默认地转换成TINYINT(1);
- 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)
小结:
- 测试数据表boolean_test的2个字段布尔类型字段,写入的值超过有符号整型TINYINT数据类型存储范围时,出现了字段值截断的警告信息;
- 向测试数据表boolean_test的字段可以写入表达布尔数值的TRUE 或 FALSE是不会报错,也不需要用单引号或双引号括起来;
- 向测试数据表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语句还是有一些差别,体现在:
- 写入的布尔类型值TRUE 转换成了 1,FALSE 转换成了 0;
- 超过TINYINT数据类型存储的上下限制的值,被自动截断;
- 布尔类型BOOL/BOOLEAN的功能等同于微整型TINYTINT;
要不要使用 Bootstrap 框架
Bootstrap 是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。
首先,人们发现 Bootstrap 框架超棒,于是开始使用,然后非常的恼火。所以我想说明下 Bootstrap 的优缺点以及为什么我决定继续使用它。
优点
-
应用视觉效果一致性. 这个其实是很很难的,你希望你的链接、按钮、提醒都有统一的视觉效果,你可以为不同级别的提醒使用不同的颜色
-
通过多个浏览器测试. 市面上主流的浏览器支持都没问题
-
完整的框架解决方案. 这是一个框架,你只需使用它而无需重新制作,这个框架专为 Web 应用设计,所有的元素都可以非常完美的在一起工作,可快速开发。
缺点
为什么我还要继续使用?
-
速度. 我不是一个设计师,我喜欢的设计师她现在非常的忙,我无法等她三周后再来帮我
-
一致性. 使用 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
创业必经之路——Paul Graham 创业曲线
我正在和几个创业公司合作,这些公司正处在Paul Graham所描绘的创业曲线的各阶段:
许多人认为创业总是处于上升期并且有着正确方向。但是更多服务显示这个“创业曲线” 超过任何其他增长模式。当然,有些人并未跌入途中的低谷。但也有很多人都遇到过,这是大多数初创公司都会遇到的难题,他们会设法解决并且向目标努力奋斗。
昨天一位创业者与我共进午餐,我们共事已有二十年。他最近的项目用了数年时间才步入正轨。目前他不断完善产品,签约客户,业务也终于开始盈利。我很高兴能看到他为自己的成就而自豪。
就如同大多数成功的故事,成功之道就是简化服务。从其特点来看,提炼有价值的建议,明确和简化用例。把并不完善的产品推广到市场,寻找少数需要它的客户,然后仔细倾听那些客户反馈,从而做出理想产品。
这就是你为什么必须要经历创业“过山车”的原因。业务下滑非常可怕,跌入低谷也同样如此。但是没有经过这些,你就不知道什么是炒作,什么是现实。
那些创业者询问我何时是发布产品的好时间,而我的回答是“你自己决定”。不管何时你都要经历这样的“过山车”,不如从现在开始。(张祺)
原文链接:avc.com