归档

2020
4月
04
mac下显示和隐藏文件
“macOS更新到 Catalina 10.15.4之后,原来显示隐藏文件的快捷键:Command + Shift + . 失效了,只能先用shell命令临时处理一下: 显示隐藏文件: defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall ...”
03
python字符编码问题一则
“ 今天在分析nginx日志的时候,发现用户的请求中有如下格式的字符: \xB6\xF1\xD2\xE2 而大部分用户提交的请求则是如下形式: %E4%BC%98%E8%A1%A3%E5%BA%93 对于前者,使用以下python代码进行解码: def decode_query_str(): str = b'\xB6\xF1\xD2\xE2' print("{} ==》 {}".format(str, str.decode('GBK'))) 执行结果: b'\xb6\xf1\xd2\xe2' ...”
1月
09
TPS及计算方法
“ TPS (transaction per second)代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。例如,用户每分钟执行6个事务,TPS为6 / 60s = 0.10 TPS。同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务也同时代表每个事务的响应时间或节拍为10秒。 利特尔法则 (Little’s law):该法则由麻省理工大学斯隆商学院(MIT Sloan School of Management)的教授John ...”
w3lib安装记录
“ w3lib 在pypi网站上的版本为1.21.0 https://pypi.org/project/w3lib/ 使用以下命令安装之后: pip install w3lib 发现安装的版本为: w3lib==1.19.0 通过以下命令可以查看到是可以升级的: pip list --outdated 所以指定版本号来安装一下: pip install w3lib==1.21.0 Collecting w3lib==1.21.0 Using cached https://files.pythonhosted.org/packages/6a/45/1ba17c50a0bb16bd950c9c2b92ec60d40c8ebda9f3371ae4230c437120b6/w3lib-1.21.0-py2.py3-none-any.whl Requirement already satisfied: six>=1.4.1 ...”
08
2018
5月
08
php安装gd扩展
“ gd扩展需要安装几个前置库,比如freetype、libpng等,此处把常用的库都安装一下。 使用yum安装常用库: yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype ...”
03
4月
21
mac下修改nginx的Docroot
“nginx使用brew安装,信息如下: brew info nginx nginx: stable 1.13.12 (bottled), HEAD HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server https://nginx.org/ /usr/local/Cellar/nginx/1.6.2 ...”
19
在mac下使用docker搭建php开发环境
“mac下安装docker 到官方下载安装即可。docker对系统版本要求较高,centos7及以上,window10需要专业版,家庭版无法安装。 mac版下载地址:https://store.docker.com/editions/community/docker-ce-desktop-mac 在安装之前先创建一下目录: mkdir -p ~/docker/nginx/www 网站根目录。 拉取php镜像 docker pull php:7.1-fpm 用docker search php 可以搜索到php官方镜像,但是使用 docker pull php 命令拉取该镜像到本地后无法正常使用,暂时未找到原因。 启动php-fpm docker run -p 9000:9000 ...”
1月
24
windows系统安装pip记录
“pip简介 pip是python的包管理工具。 项目主页:https://pypi.python.org/pypi/pip 下载后安装 下载后解压,通过CMD终端进入解压的目录,然后输入以下命令: python setup.py install 接下来设置环境变量 将 D:\program\Python\Python36\Scripts 添加至PATH,注意格式并替换你自己的python安装目录。 验证安装 C:\Users\mixh>pip list DEPRECATION: The default format will switch to columns in the ...”
2017
11月
17
电商app运营指标总结
“用户数 是指应用或网站累计的用户数量。 UV UV(网站独立访客)是unique visitor的简写,是指通过互联网访问、浏览这个网页的自然人。 独立IP:是指独立用户/独立访客。指访问某个站点或点击某条新闻的不同IP地址的人数,独立IP只记录第一次进入网站的具有独立IP的访问者,假如一台电脑关机了,30分钟后重启,再次访问这个站那就再计算一次ip,在同一天内再次访问该网站则不计数。独立IP访问者提供了一定时间内不同观众数量的统计指标,而没有反应出网站的全面活动。比如你是ADSL拨号上网的,你拨一次号都自动分配一个ip,这样你进入了本站,那就算一个ip,当你断线了而没清理cookie,之后又拨了一次号,又自动分配到一个ip,你再进来了本站,那么又统计到一个ip,但是UV(独立访客)没有变,因为2次都是你进入了本站。 PV PV(访问量):即Page View, 即页面浏览量或点击量,用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计。 现在大多数的统计工具只统计到IP和PV的层面上,因为在大多情况下IP与UV数相差不大。但由于校园网络、企业机关等一些部门的特殊性,IP已经很难真实的反映网站的实际情况,所以就引入了更加精确的UV这个概念。 对于使用真实IP上网的用户,UV和IP的数值是相同的。 但是如果访问你的站点中有通过“网络地址转换”(NAT)上网的用户,那么这两个值就不同的。所以对于国内站长来说,这个UV值还是很有意义的。 DAU DAU(Daily Active User)日活跃用户数量。常用于反映网站、互联网应用或网络游戏的运营情况。DAU通常统计一日(统计日)之内,登录或使用了某个产品的用户数(去除重复登录的用户),这与流量统计工具里的访客(UV)概念相似。 通常DAU会结合MAU(月活跃用户数量)一起使用,这两个指标一般用来衡量服务的用户粘性以及服务的衰退周期。 MAU、DAU分别从宏观和微观的角度对服务的用户粘性做了权衡,也可以这么说,MAU更像战略层面的表征,DAU更像战术层面的表征。通过这些宏观和细微的趋势变化,可以对营销及推广提供一些数据支持或者帮助。 比如: 虽说心上仅成立2年多,但已获得4轮融资,其中不乏北极光创投、愉悦资本等国内知名主流的投资机构。心上的服务用户也已突破300万,平台月均交易额3000万元,客单价2500元,复购率30%,用户日活跃度在2-3万。 来源:http://mp.weixin.qq.com/s?__biz=MjM5OTAzMjc4MA==&mid=2650071359&idx=1&sn=31c079730791e5de4ef2c50359035561&chksm=bec1e39c89b66a8a96e40b5db033da2129b84c89f726385b0855ea982d9564258e7beb05dab8&mpshare=1&scene=1&srcid=1117NeE8MPdi1N0m08zaZUfQ#rd MAU MAU(即monthly active users)是在线游戏的一个用户数量统计名词,数量越大意味着玩这款游戏的玩家越多。 GMV GMV:Gross Merchandise Volume,是成交总额(一定时间段内)的意思。在电商网站定义里面是网站成交金额。这个实际指的是拍下订单金额, 包含付款和未付款的部分。例:2009年春节期间(1月10日-1月30日),淘宝网交易总额(GMV)比去年相比增长60%,日均销售超过3亿元。 客单价 客单价(per customer transaction)是指商场(超市)每一个顾客平均购买商品的金额,客单价也即是平均交易金额。 客单价的计算公式是:客单价=销售总额(打折之类的算下来一起的总钱)÷顾客总数,或者是客单价=销售总额÷成交总笔数(五个人买10笔算五笔)。一般是使用前面的。 客单价的本质是:在一定时期内,每位顾客消费的平均价格,离开了“一定时期”这个范围,客单价这个指标是没有任何意义的。 零售术语又称ATV,即每一位顾客平均购买商品金额。 (1)客单价=商品平均单价×每一顾客平均购买商品个数(算法不同差异在小数点之后) (2)客单价=动线长度×停留率×注目率×购买率×购买个数×商品单价 与其相关的还有“客单量(UPT)”,“件单价”。 复购率 指消费者对该品牌产品或者服务的重复购买次数,重复购买率越多,则反应出消费者对品牌的忠诚度就越高,反之则越低。 重复购买率有两种计算方法:一种是所有购买过产品的顾客,以每个人人为独立单位重复购买产品的次数,比如有10个客户购买了产品,5个产生了重复购买,则重复购买率为50%;第二种,按交易计算,即重复购买交易次数与总交易次数的比值,如某月内,一共产生了100笔交易,其中有20个人有了二次购买,这20人中的10个人又有了三次购买,则重复购买次数为30次,重复购买率为30%。推荐企业采取第一种算法。 =========== 日活(DAU):每日活跃用户量,你只要本日登录过1次,就计算在内 月活(MAU):每月活跃用户量,你只要本月登录过1次,就计算在内 1、首先 这两个指标,行业规则都是要去重的,但因为这部分数据是由运营商提供,而计算规则各有差异,有些app的计算规则是不去重的。 但通常来说,游戏都会去重的,因为不去重的数据,对于游戏厂商而言毫无意义。 2、日活 这个数据对于游戏而言是非常重要的,代表了你游戏的粘*,如果日活下降,代表你游戏核心用户正在流失。 3、月活 对于游戏来说,这个数据独立来看,意义是很小的,没有其他数据一起对比,可以说毫无卵用。当然,如果是社交平台来说,这个数据还是很有意义的。 举《守望先锋》的例子,免费期间,登录了1次,算MAU吗?算。韩国网吧免费玩,算MAU吗?也算。 巨人的球球大作战,公布过数据,MAU是1个亿。 没有日活对比的月活,真的看看就好,对于游戏而言,月活这个数据最大的意义就是配合日活来看,核心用户/新增用户的比例与流失情况。 4、dota的DAU是公开的,在百万级,最近下滑得也很厉害,可能跟版本有关,流失严重。 这个数据不算很高,但在端游里,真的不低了。 5、现在最巅峰的是王者荣耀,DAU在6000万以上,已经超过了英雄联盟(DAU在3000万左右) 来源:http://bbs.sgamer.com/thread-13369783-1-1.html =========== 之前做过的一个产品仅作参考。最初用户刚达到千万量级的时候,日活35%、周活47%、月活70%后来达到几千万量级的时候有较大幅度下降,日活18%-21%、周活36%-40%、月活50%-55%次日留存有70%多的样子,周留存大概60%,月留存没统计。以上数字停留在该产品上线18个月的状态,现在什么情况不太清楚,应该会有所下降。 作者:Ricky 链接:https://www.zhihu.com/question/20429832/answer/20100842 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ”
12
FHIR介绍
“HL7 FHIR介绍 FHIR-Fast Health Interoperable Resources(快捷健康互操作资源)(hl7.org/fhir):是由HL7创建的下一代标准框架。FHIR结合HL7 V2、V3和CDA产品线的最佳功能,同时利用最新Web标准,紧密地关注于可实施性方面。 FHIR方案基于一系列被称为“资源”的模块化组件来构建。这些资源能够很容易地组装进工作系统,用来解决现实世界中的临床和管理问题,成本只是现有替代系统价格的一小部分。 FHIR适合应用于不同的语境中-手机上的社交媒体、云通讯、基于电子病历的数据共享、大型医疗机构中的服务器通讯,以及更多的语境。 为什么FHIR更好 FHIR比现存标准提供了更多的改进: 大力注重实施-快速和容易实施(多个开发者有简单接口,能够在单日内完成工作); 在启动开发时,能够得到多个实施库、多个案例,来帮助开发; 相关规格免费使用,没有限制; 不受规范限制的互操作性-基础资源能够按原样使用,但也可以按照本地需求改造应用; 基于HL7 V2及V3的进化发展-标准可以共存和相互利用; 利用Web标准-XML、JSON、HTTP、Atom、OAuth等等; 支持REST风格的架构,同时能够使用消息或文档进行无缝地信息交换; 规范简洁,容易理解; 针对开发者,支持人易读的格式; 基于坚实的本体和严格的正确性格式映射; 灵活性 医疗标准的核心挑战是如何处理因医疗流程多样化导致的变异。随着时间的推移,更多的领域和选择被添加到规范中,从而导致增加实施过程中的成本和复杂度。替代方案依赖于自定义扩展,但这也产生了大量的实施问题。 FHIR定义一个简单框架,用于扩展和适应已存在的资源,来解决这个挑战。所有的系统,不管他们是如何开发的,能够很容易地读取这些扩展,而且能够通过相同的框架,象检索其他资源一样来检索这些扩展定义。 此外,每个资源都有一个人可读的文本描述,用HTML作为临床安全的可选现实选项。对于复杂临床信息来说,这是特别重要的。在许多系统中,复杂临床信息只是简单地以文本/文档形式来解决。 FHIR作为HL7标准,仍然在开发中。到2013年底,FHIR可以形成试用标准草案。经过一段时间的试用,以及审批规范,HL7将把FHIR作为一个完整、正式的规范进行开发,最有可能是到2015年。 基于FHIR的诸多优点,规范的试用从现在已经开始。 ”
10月
26
Nginx配置upstream实现负载均衡
“如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。具体配置过程如下: 1. 在http节点下,添加upstream节点。 upstream linuxidc { server 10.0.6.108:7080; server 10.0.0.85:8980; } 2. 将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“http://linuxidc”. location / { root html; index ...”
OSI七层模型简介
“OSI(开放式系统互联模型)是一个开放性的通行系统互连参考模型,是一个协议规范。它把网络协议从逻辑上分了七层,每一层都有对应的物理设备。 OSI七层模型是一种框架性的设计方法,设计的主要目的是为了解决异种网络互联时遇到的兼容问题,主要功能就是帮助不同类型的主机实现数据传输。最大优点是将服务,协议,接口三者明确的区分开来,通过七个层次化的结构模型使得不同的主机不同的网络之间实现可靠的通讯。 服务说明下一层为上一层提供什么功能,接口说明上一层如何实现下一层提供的服务,协议涉及本层如何实现自己的服务。 优点: 1.发生故障易排除。 2.各层各自定义标准接口,使得相同等级的对应层之间的不同网络设备实现互操作。 3.技术更新可在小范围内进行,不必对整个网络更新。 第一层:物理层 物理层的任务就是为它的上一层提供一个物理连接,以及它们的机械、电气、功能和过程特性。如规定使用电缆和接头的类型、传送信号的电压等。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是比特。 设备举例::电缆连线连接器,网卡等。不包括具体的物理媒体。 第二层:数据链路层 控制物理层和网络层之间的通讯,把网络层的数据分割成物理层可以传输的帧。 具体设备:交换机。 第三层:网络层 将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A 到另一个网络中节点B 的最佳路径。 设备举例:路由器。 第四层:传输层 最重要的一层。可以对传输进行流量控制或是基于接收方的接受速度规定发送速率。如果数据包过大,可以将数据包分解,编序列号,到达接收端后,由于使用相同协议,可以按照编号重组,此过程称为排序。 第五层:会话层 负责网络中两个节点之间建立和保持通信,会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对 话,决定通信是否被中断以及通信中断时决定从何处重新发送。 第六层:表示层 应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密与加密,如系统口令的处理。在网络中传输需要加密数据的时候,表示层进行加密解密。对图片的编码解码也是表示层的工作。 第七层:应用层 负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。 ”
iterator详解以及和for循环的区别
“迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部。 1.Iterator Java提供一个专门的迭代器<interface>Iterator,我们可以对某个序列实现该interface,来提供标准的Java迭代器。Iterator接口实现后的功能是“使用”一个迭代器。 文档定义: Package java.util; public interface Iterator { boolean hasNext();//判断是否存在下一个对象元素 E next(); void remove(); } 2.Iterable Java中还提供了一个Iterable接口,Iterable接口实现后的功能是“返回”一个迭代器,我们常用的实现了该接口的子接口有: Collection, Deque, List, Queue, Set 等.该接口的iterator()方法返回一个标准的Iterator实现。实现这个接口允许对象成为 For ...”
16
java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法
“最近在使用 url 的 queryString 传递参数时,因为参数的值,被DES加密了,而加密得到的是 Base64的编码字符串 类似于: za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g== 显然 这里面含有了 特殊字符: / + = 等等,如果直接通过url 来传递该参数: url = "xxxxx?param=" ...”
10
memcached使用上的一些限制
“1、过期时间限制 memcached的过期时间并不能随便设置,有一个最大时限就是30天,若超过30天后,存储时返回true,但是在取数据的时候取不到。(在取数据的时候才去做验证,看看数据是否失效) 说到这个过期时间了,就不得不说说memcached的缓存失效策略: memcached的缓存失效策略是LRU(最近最少使用)加上到期失效策略。当向memcached存储数据时,你可能会设置一个过期时间,可以是永久也可以是一段时间,但是如果一旦给memcached分配的内存使用完毕,则首先会替换掉已失效的数据,其次是最近最少使用的数据。 2、存储限制 键被限制在 250 字符之内。数据项不能超过 1M (这个值由其内存分配机制决定的),因为这是最大的块( slab )值。如果对数据超过1M的值进行set,则会返回FALSE。 memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存。在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的。但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下,会导致操作系统比memcached进程本身还慢。Slab Allocator就是为解决该问题而诞生的。Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题. 3、访问限制 最大同时连接数200. 备注: 30天默认缓存时间是可以修改的:http://www.cnblogs.com/qqblog/p/6295777.html”
8月
18
TPS及计算方法
“TPS (transaction per second)代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。例如,用户每分钟执行6个事务,TPS为6 / 60s = 0.10 TPS。同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务也同时代表每个事务的响应时间或节拍为10秒。 利特尔法则 (Little’s law): 该法则由麻省理工大学斯隆商学院(MIT Sloan School of ...”
06
@Autowired与@Resource的区别
“1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。 2、@Autowired默认按类型装配(这个注解是属于spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下: @Autowired() @Qualifier("baseDao") private BaseDao baseDao; 3、@Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定, 如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。 @Resource(name="baseDao") private BaseDao baseDao; 我喜欢用 @Resource注解在字段上,且这个注解是属于J2EE的,减少了与spring的耦合。最重要的这样代码看起就比较优雅。 来源:http://bhdweb.iteye.com/blog/1663907 ”
MySQL的binlog详解
“什么是binlog binlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。 binlog作用 因为有了数据更新的binlog,所以可以用于实时备份,与master/slave复制。 和binlog有关参数 log_bin 设置此参数表示启用binlog功能,并指定路径名称 log_bin_index 设置此参数是指定二进制索引文件的路径与名称 binlog_do_db 此参数表示只记录指定数据库的二进制日志 binlog_ignore_db 此参数表示不记录指定的数据库的二进制日志 max_binlog_cache_size 此参数表示binlog使用的内存最大的尺寸 binlog_cache_size 此参数表示binlog使用的内存大小,可以通过状态变量binlog_cache_use和binlog_cache_disk_use来帮助测试。 binlog_cache_use 使用二进制日志缓存的事务数量 binlog_cache_disk_use 使用二进制日志缓存但超过binlog_cache_size值并使用临时文件来保存事务中的语句的事务数量 max_binlog_size Binlog最大值,最大和默认值是1GB,该设置并不能严格控制Binlog的大小,尤其是Binlog比较靠近最大值而又遇到一个比较大事务时,为了保证事务的完整性,不可能做切换日志的动作,只能将该事务的所有SQL都记录进当前日志,直到事务结束 sync_binlog 这个参数直接影响mysql的性能和完整性。 sync_binlog=0:当事务提交后,Mysql仅仅是将binlog_cache中的数据写入Binlog文件,但不执行fsync之类的磁盘。同步指令通知文件系统将缓存刷新到磁盘,而让Filesystem自行决定什么时候来做同步,这个是性能最好的。 sync_binlog=n:在进行n次事务提交以后,Mysql将执行一次fsync之类的磁盘同步指令,同志文件系统将Binlog文件缓存刷新到磁盘。 Mysql中默认的设置是sync_binlog=0,即不作任何强制性的磁盘刷新指令,这时性能是最好的,但风险也是最大的。一旦系统绷Crash,在文件系统缓存中的所有Binlog信息都会丢失。 binlog的删除 binlog的删除可以手工删除或自动删除 自动删除binlog 通过binlog参数(expire_logs_days )来实现mysql自动删除binlog mysql> show binary logs; mysql> show variables like 'expire_logs_days'; mysql> set global expire_logs_days=3; 手工删除binlog mysql> reset master; ...”
MySQL Binlog的介绍
“binlog基本定义: 二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中。 作用:MySQL的作用类似于Oracle的归档日志,可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、Mysql的复制(主主数据库的复制、主从数据库的复制)。 二进制日志的信息: 文件位置:默认存放位置为数据库文件所在目录下 文件的命名方式: 名称为hostname-bin.xxxxx (重启mysql一次将会自动生成一个新的binlog) 状态的查看:mysql> show variables like '%log_bin%'; mysql> show variables like '%log_bin%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | ...”
7月
28
在ubuntu上安装redis
“首先,通过ubuntu的软件安装命令apt-get来安装一下redis: darkmi@ubuntu:~$ sudo apt-get install redis-server 安装完毕之后,运行一下以下命令: darkmi@ubuntu:~$ ps -ef|grep redis redis 3258 ...”
服务器软件版本查看总结
“如何查看linux的版本 方法一: # uname -a Linux test.priv 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 ...”
21
查看mysql版本的四种方法
“1:在终端下:mysql -V。 以下是代码片段: # mysql -V mysql Ver 14.14 Distrib 5.6.25, for linux-glibc2.5 (x86_64) using ...”
JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
“Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。下面逐个分析。 JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx…… 那么,下面的步骤和以后的应用你都要受累了,呵呵。设置方法: JAVA_HOME=C:\jdk1.5.0_06 PATH 环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin (注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果) : PATH=%JAVA_HOME%\bin;%PATH% 同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。 CLASSPATH 环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。 CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 首先要注意的是最前面的".;",如果你看不清,我给你念念——句点分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的) ,所以如果喜欢盘根究底的朋友不妨研究一下LINUX。 为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:) 这个是由java语言的import机制和jar机制决定的,你可以查资料解决。 呵呵,具体的设定方法: win2k\xp用户右键点击我的电脑->属性->高级->环境变量,修改下面系统变量那个框里的值就行了。 win9x用户修改autoexec.bat文件,在其末尾加入: set JAVA_HOME=C:\jdk1.5.0_06 set PATH=%JAVA_HOME%\bin;%PATH% set CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar ”
说说JDK和JRE及JDK的目录结构
“JDK下又有一个JRE目录,看着像,但是应该是不同的,到底有什么区别呢? 都有一个bin目录,但是JDK和JRE还是各有其职能的。就名称来说,JRE意是运行环境,而JDK是开发环境(因为是Development Kit嘛),但是实际上却不是那么简单的。一般来说,JRE是最终用户需要用到的,如浏览器插件或者Swing界面的客户端就可直接用JRE;搞技术的人或者应用服务器上都是用JDK。JDK实际上自含一个JRE,而且JDK是依赖于它自含的JRE的。 JDK目录下(以1.6.0,Windows的为例)就包含一个子目录jre,你用JDK\bin\java启动程序时,实际上是依赖于jre目录的。以下简要过一下JDK目录下的子目录吧(非特殊说明,下列为JDK目录的一层子目录): bin: 这是存放java启动命令以及其他开发工具命令(如javac)的,该目录应当保存到PATH变量中。 lib: 是JDK工具用到的类库及其他文件。tools.jar就包含了对开发工具的支持功能库;dt.jar就是所谓DesignTime的东西,估计是给JavaBean和IDE用的;jconsole.jar自然是给jconsole工具用的了;htmlconverter.jar是用来把用applet的HTML转成所谓Java Plug-In的,即标签改为。 jre: 这就是JDK自含JRE的根目录了,这是系统属性java.home所指向的目录。 jre/bin: 包含执行文件和dll等库文件,是JVM需要的,可执行文件和jdk/bin是一样,本目录不需要被PATH所包含。 jre/bin/client: 包含用Client模式的VM时需要的dll库。 jre/bin/server: 包含用Server模式的VM时需要的dll库。 jre/lib: 包含核心代码库(Java平台的core API),如rt.jar是所谓的bootstrap的类库,还有很多其他需要的子目录和资源文件等等。注意这个lib目录和jdk/lib是不一样的。 jre/lib/ext: 是Extension Class Loader装入jar类库的地方,如localdata.jar包含的是java.text和java.util需要的东西。 jre/lib/security: 包含JVM安全需要的设置文件,JVM信任的证书也在这里。 jre/lib/applets: ...”
详解Java中的JDK、JRE、JVM
“JDK包含JRE,而JRE包含JVM。JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。 JDK JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。 JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和>起来就称为jre。 JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括>rt.jar)。 Java Runtime Environment(JRE) JRE是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。 JRE中包含了Java ...”
20
tail命令总结
“linux中的tail命令用户查看文件末尾的内容,linux中查看文件内容的命令有很多,比如cat、more和less等,而tail用于查看文件末尾的内容,这对于日志跟踪非常有用。 tail语法格式: tail 或者 tail 使用说明: tail 命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。 Number 变量指定将多少单元写入标准输出。 Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有 ...”
15
linux关机命令总结
“linux下常用的关机命令有:shutdown、halt、poweroff、init;重启命令有:reboot。下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法。 首先来看一下linux下比较常用的一些关机命令 关机命令: 1、halt 立刻关机 2、poweroff 立刻关机 3、shutdown -h now 立刻关机(root用户使用) 4、shutdown -h 10 10分钟后自动关机 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启 重启命令: 1、reboot 2、shutdown -r now 立刻重启(root用户使用) 3、shutdown -r 10 过10分钟自动重启(root用户使用) 4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启 下面我们来看看linux的这些具体的关机命令之间的区别和各自的用法 1.shutdown 安全的关机命令 对于shutdown命令,它是大家都推荐的一个安全的命令,通过参数-h或-r的配合来完成关机或重启。不过在linux系统中只有拥有root权限才可以使用这个命令。所以,虽然大家都推荐用这个命令,但是这个命令用起来真的不太方便:想要用这个命令吗?先去获得root权限吧。shutdown执行关机,是送信号给init,要求它改变运行级别,以此来关机。关机或重启实际上是运行级别的调整,所以我们也可以用init直接调整运行级别来进行关机或重启。使用这个命令时,机器立即关机或重启。它也需要root权限。 那么为什么说shutdown命令是安全地将系统关机呢? 实际中有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失使系统处于不稳定的状态。甚至在有的系统中会损坏硬件设备。而在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结,即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的,还有可能是重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。 shutdown执行它的工作是送信号〔signal〕给init程序,要求它改变 runlevel。runlevel ...”
14
对硬盘进行分区时,GPT和MBR有什么区别?
“在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区。GPT是一种新的标准,并在逐渐取代MBR。 GPT带来了很多新特性,但MBR仍然拥有最好的兼容性。GPT并不是Windows专用的新标准—— Mac OS X,Linux,及其他操作系统同样使用GPT。 在使用新磁盘之前,你必须对其进行分区。MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始的信息,这样操作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动的。在磁盘上创建分区时,你必须在MBR和GPT之间做出选择。 MBR的局限性 MBR的意思是“主引导记录”,最早在1983年在IBM PC DOS 2.0中提出。 之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。所谓启动加载器,是一小段代码,用于加载驱动器上其他分区上更大的加载器。如果你安装了Windows,Windows启动加载器的初始信息就放在这个区域里——如果MBR的信息被覆盖导致Windows不能启动,你就需要使用Windows的MBR修复功能来使其恢复正常。如果你安装了Linux,则位于MBR里的通常会是GRUB加载器。 MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘。MBR还只支持最多4个主分区——如果你想要更多分区,你需要创建所谓“扩展分区”,并在其中创建逻辑分区。 MBR已经成为磁盘分区和启动的工业标准。 GPT的优势 GPT意为GUID分区表。(GUID意为全局唯一标识符)。这是一个正逐渐取代MBR的新标准。它和UEFI相辅相成——UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。之所以叫作“GUID分区表”,是因为你的驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID)——这是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。 这个标准没有MBR的那些限制。磁盘驱动器容量可以大得多,大到操作系统和文件系统都没法支持。它同时还支持几乎无限个分区数量,限制只在于操作系统——Windows支持最多128个GPT分区,而且你还不需要创建扩展分区。 在MBR磁盘上,分区和启动信息是保存在一起的。如果这部分数据被覆盖或破坏,事情就麻烦了。相对的,GPT在整个磁盘上保存多个这部分信息的副本,因此它更为健壮,并可以恢复被破坏的这部分信息。GPT还为这些信息保存了循环冗余校验码(CRC)以保证其完整和正确——如果数据被破坏,GPT会发觉这些破坏,并从磁盘上的其他地方进行恢复。而MBR则对这些问题无能为力——只有在问题出现后,你才会发现计算机无法启动,或者磁盘分区都不翼而飞了。 兼容性 使用GPT的驱动器会包含一个“保护性MBR”。这种MBR会认为GPT驱动器有一个占据了整个磁盘的分区。如果你使用老实的MBR磁盘工具对GPT磁盘进行管理,你只会看见一个占据整个磁盘的分区。这种保护性MBR保证老式磁盘工具不会把GPT磁盘当作没有分区的空磁盘处理而用MBR覆盖掉本来存在的GPT信息。 在基于UEFI的计算机系统上,所有64位版本的Windows 8.1、8、7和Vista,以及其对应的服务器版本,都只能从GPT分区启动。所有版本的Windows ...”
07
张益唐:孤独的数学家
“张益唐的故事之所以特别轰动的原因在于,作出巨大数学贡献的他已经接近60岁,之前只是个默默无闻的讲师。 2012年7月3日,在一个阳光明媚的下午,张益唐在科罗拉多州好友齐雅格家后院抽烟,20多分钟里他有如神明启示般的想出了主要思路,找到了别人没有想到的特别突破口。 2013年4月17日,一篇数论论文被投递到纯粹数学领域最著名的刊物《数学年刊》。不到1个月,论文所涉及领域的顶级专家罕有地暴露自己审稿人的身份,信心十足地向外界宣布:这是一个有历史性突破的重要工作,文章漂亮极了。这位评审人就是当今最顶级的解析数论专家亨利·伊万尼克。 顶级专家的高度评价被科学界的泰斗级期刊《自然》敏锐地捕捉到了;2013年5月13日,《自然》催生了一次历史性的哈佛演讲。这篇文章的作者、一个学术界的“隐形侠”,第一次站在世界最高学府的讲台上,并告诉世人:我走进了世纪数学猜想的大门!哈佛的讲台下面座无虚席,连过道上都站满了人。演讲内容被即时传到网上,网上不少人在刷新网页等待最新消息。 2013年5月14日,《自然》在“突破性新闻”栏目里,宣布一个数学界的重大猜想被敲开了大门。5月18日,《数学年刊》创刊130年来最快接受论文的纪录诞生了。 世界震动了!5月20日,《纽约时报》大篇幅报道了这个华人学者的工作。文中引用了刚刚卸任《数学年刊》主编职务的彼得·萨纳克的讲话:“这一工作很深邃,结论非常深刻。”5月22日,老牌英国报纸《卫报》刊登文章,文章的标题是:鲜为人知的教授在折磨了数世纪数学精英的大问题上迈进了一大步。印度主流报纸把作出这一非凡贡献的人,与印度历史上最伟大的天才数学家拉马努金相媲美。 这位作出重大数学突破的就是张益唐,由于对数学界最著名的猜想之一孪生素数猜想的破冰性工作,使他从默默无闻的大学讲师跻身于世界重量级数学家的行列。 这是一个永久的疑问:为什么要研究数学猜想?短视地回答这个问题很困难。纯粹数学的研究很像体育比赛。刘翔跑得那么快有什么用?世界短跑纪录的刷新、跳高纪录的刷新到底有什么用?但这并不妨碍每四年一次的奥运会。很多数学大猜想的突破很像顶尖高手的棋艺对决,是世界纪录的突破。 孪生素数猜想 变大海捞针为泳池捞针 远在中古时代,人类社会就产生了自然数的概念,人们也因此创立了一个古老而漂亮的数学分支:数论。数论里面一个重要的概念就是素数,指的是那些只能被1和其自身整除的数,比如5、7、11、19等。 张益唐所做的工作和素数有关,尤其和所谓的孪生素数有关。孪生素数是指差为2的素数对,即p和p+2同为素数。前几个孪生素数分别是(3,5)、(5,7)、(11,13)、(17,19)等。100以内有8个孪生素数对;501到600间只有两对。随着数的变大,可以观察到的孪生素数越来越少。2011年,人们发现目前为止最大的孪生素数共有20多万位数。但这个数后面再多找一对孪生素数都要花至少两年的时间。 那么会不会有一天再也找不到新的孪生素数对呢?数学家认为答案是否定的。几百年前就有个孪生素数猜想:有无穷多个素数p,使得p与p+2同为素数。但至今人们都不知如何证明这个猜想。 张益唐在《数学年刊》上发表的这篇题为《素数间的有界距离》的文章,证明了存在无数多个素数对(p, q),其中每一对中的素数之差,即p和q的距离,不超过七千万。 如何理解张益唐的结果呢?诺丁汉大学物理教师安东尼奥·帕蒂拉举了个有趣的例子:假如在素数王国里素数只能找邻近的同类结婚,那3、5、7、11这种小素数找对象都很容易。但是素数越大,对象就越难找。但是根据张益唐的发现,素数和下一个素数的距离,应该小于或等于七千万。孤独的数字不会持续孤独下去,总有另一个素数与之匹配。换言之,对于“大龄光棍”素数来说,七千万步之内,必有芳草。 七千万听起来是个巨大的数字,但在数学上只是一个常数而已。虽然它和孪生素数猜想的距离为2的结果还有十万八千里,但用张益唐的方法把七千万缩短到几百以内也是指日可待的事情。实际上,在文章被公布于众后,短短的一个月以内,七千万就被菲尔茨奖获得者陶哲轩发起的网上讨论班缩小到六万多。 张益唐起到的作用就是把大海捞针的力气活缩短到在水塘里捞针,而他给出的方法还可以把水塘捞针轻松变为游泳池里捞针。也许最后变成在碗里捞针还需要一些再创新的工作。但给出了这一伟大框架已经是让全世界数学家瞠目结舌的壮举了。 非凡探索路 演绎一个数学神话 张益唐的故事之所以特别轰动的原因在于,作出巨大数学贡献的他已经接近60岁,之前只是个默默无闻的讲师。为了潜心研究数学,他几乎把自己与世隔绝,在美国的偏远省份“潜伏”下来。他的妹妹曾在网上发寻人启事寻找哥哥。当时在美国当教授的老同学给他妹妹回了个电邮,表示他哥哥健康地活着,在钻研数学呢。 张益唐于1955年出生于北京。他1978年考进了北京大学数学系。北大1977年没有招生,所以他是北大数学系“文革”后恢复高考的第一批学生。 1978年第1期《人民文学》发表了作家徐迟的报告文学《哥德巴赫猜想》,讲述了数学家陈景润刻苦钻研在哥德巴赫猜想研究上取得重大突破的真实故事,一时间陈景润和哥德巴赫猜想变得家喻户晓。像那个时代很多有志青年一样,张益唐也是被徐迟的文章、被陈景润的故事、被哥德巴赫猜想引导到数学系,以致终身投入到数学中去。 4年的北大学习为张益唐打下了坚实的数学基础。那时的北大教书育人之风极强,最顶尖的教师都在讲台上耕耘。北大也有很多眼界很高的老师,学富五车,但不轻易落手写小文章,可谈起大问题颇为津津乐道,这让年轻的张益唐“中毒”匪浅。这也奠定了他一辈子只做大问题、不为小问题折腰的风格。张益唐也是1978级公认的数学学习尖子。 张益唐1982年毕业后跟随著名数论专家潘承彪读了3年的硕士。潘承彪的哥哥就是大名鼎鼎的山东大学前校长,因在哥德巴赫猜想方面的工作而闻名的潘承洞院士。潘氏兄弟也是北大数学系校友,毕业后在各自的岗位上做出了非凡的精彩。 张益唐总是说在潘承彪的指导下他在北大打下了非常扎实的数论基础。 1985年,张益唐来到了位于美国的名校普渡大学读博士,成为抗日名将孙立人和物理学家邓稼先的校友。 但张益唐在普渡的六七年是不堪回首的时光。他在美国的导师是代数专家莫宗坚。张益唐的研究课题是导师的专长——雅可比猜想,但苦干了7年,得到的结果乏善可陈。眼界极高的张益唐不屑把博士论文结果整理出来发表。更糟糕的是,他和导师的关系糟得一塌糊涂。这里有学术上的冲突,也有性格上的不和。 因为博士论文的结果没有发表,加上导师连一封推荐信都不愿意写,张益唐毕业后连个博士后的工作都没有找到。 一面要继续做数学,一面还要糊口。毕业后的前六七年他干过很多杂活,包括临时会计、餐馆帮手、送外卖。你能想象一代北大数学才子、数学博士数年间在快餐店、在唐人街餐馆打工的情形吗?看到这里,你是否对“天将降大任于斯人也,必先苦其心志,劳其筋骨”有更深刻的理解呢? 1999年后,张益唐又回到了学校,到美国的新罕布什尔大学做助教、讲师。新罕布什尔大学是成立于1866年的一所综合性公立大学。虽然教学量比较大,比起研究系列的教授、副教授的工资性价比低很多,但能回到学校,做自己驾轻就熟的事情,还能利用图书馆、办公室作研究,对一个胸有大志的数学人来说,应该是非常满足的了。 在新罕布什尔大学的14年是张益唐研究的黄金期。不需要研究经费,凭自己坚实的数学功底,充满智慧的大脑,以及潜心钻研的精神,他终于演绎出数学史上的一个神话。2012年7月3日,在一个阳光明媚的下午,张益唐在科罗拉多州好友齐雅格家后院抽烟,20多分钟里他有如神明启示般的想出了主要思路,找到了别人没有想到的特别突破口。 校友情深 助千里马奔腾 张益唐的成功路上有众多的朋友帮助,特别是北大校友的帮助。 一位北大化学系的校友在上世纪90年代开了几家赛百味连锁店。他听北大校友说张益唐在逆境中还在作数学的大问题,很想资助张益唐,但又怕被拒绝。所以他就想了一个点子,每个季度请张益唐来帮助给这些连锁店报税,让张益唐用简单数学来得到较为轻松的报酬,同时有较多时间去研究数学大问题。 张益唐一辈子的转折点是落脚新罕布什尔大学。促成这件事的有两个主要人物,他们是北大数学系1980级的校友唐朴祁和葛力明。 毕业于湘潭一中的唐朴祁是1980年湖南省高考状元,是张益唐在北大时的系友、普渡大学读博士时的同学。1999年初,已经在美国大计算机公司工作的唐朴祁去纽约参加学术年会时,找到在纽约打工的张益唐,聊到自己在计算机网络研究中遇到的一个数学难题。大约3周以后,张益唐居然想出了解决问题的基本思想,最后产生了两人的一个软件合作专利。据说这个专利已经在计算机网络基础设施领域有广泛应用。三个星期啃下一个有广泛实际用途的计算机算法难题,让张益唐顿觉宝刀不老,信心大增。唐朴祁也对老友的数学实战功夫印象深刻。 同年晚些时候唐朴祁与在新罕布什尔大学工作的葛力明见面,他提到张益唐的强大分析实力和当时的艰难处境。作为学长的张益唐不仅做过他们的习题课老师,也是上世纪80年代他们自己组织的大学生讨论班上的常客。此时已是大学教授的葛力明似乎更有条件帮一下他们的朋友和老师。这次会面时,唐朴祁已经不知道张益唐的准确工作地点。经过一番周折,葛力明在美国南方的一个赛百味快餐店联系上了张益唐,两三天后,张益唐就来到新罕布什尔大学了。每过几天,张益唐都会说,有进展,应该很快就出来了。他是指自己正在攻克的一两个世界难题。但时间过得很快,两个月、三个月,两年、三年……14年后,张益唐轰动性的工作终于横空出世了。 当然,在美国大学里要留一个没有多少学术资历的人14年肯定不是一件简单的事,中间也有酸甜苦辣的故事。这里的主要帮手还是系里的明星教授葛力明。 葛力明过去的10年一半时间在中国科学院数学院工作,教书育人,深得国内同行的好评;同时由于在研究领域的国际声誉,他也是新罕布什尔大学数学系的大教授。难能可贵的是,作为学弟,在执迷于数学的学长最困难的时候,他真正做到了出手相助。 思考张益唐 释放学术研究正能量 张益唐成功很重要的一点是淡定,宠辱不惊。在朋友开的赛百味快餐店帮忙,他可以一丝不苟。在大学任教,年近60还只是个讲师,在一般人看来无疑是失败,甚至是潦倒的,但他处之泰然,不改其志。 难能可贵的是逆境之中他还是一如既往地作大问题。作大问题的人不需要太多,但不能没有!张益唐的精神及成就,对中国科学界是极大的正能量,也是对目前浮躁的科研环境的一种鞭策。 2013年5月20日,耶鲁大学法学教授斯蒂芬·卡特在《彭博》上撰文《可以是电影明星的数学家》,他认为张益唐的励志故事是一个很好的电影题材。网上也有人建议文学家、编剧、导演们可以把张益唐的故事搬上银幕,拍出比《美丽心灵》更美的电影。 张益唐做过学生会主席,具有演讲天才,喜欢文学、音乐,是NBA球赛的铁杆球迷,还可以喝一斤二锅头没感觉。他应该是新时代数学家的好代言人。 成名后的张益唐仍像过去一样低调淡定。他说:“我的心很平静。我不大关心金钱和荣誉,我喜欢静下来做自己想做的事情。” 张益唐自己想做的事情是什么呢?他还在瞄着迄今未解决的另一个大猜想。我们希望他能够在平静中再创神话。 (作者:香港浸会大学教授) 420 举报 ”
6月
30
【概念混淆】取余运算和取模运算
“笔者之前一直把取余和取模运算混淆,甚至认为这两者是同一种事物,各种资料说法就更不统一了。其实取余是数学运算,取模是计算机运算。记得在上小学的时候,学过余数,那时候还没有学负数。比如 7 除以 4 等于 1,余 3;10 除以 3 等于 3,余 1。很简单,余数要小于除数。(引入负数的概念之后,余数的绝对值要小于除数的绝对值)下面就说一下求余运算的原理吧。 对于 n 和 p,总能表示成n ...”
29
MD5算法原理
“MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。 MD5功能: 输入任意长度的信息,经过处理,输出为128位的信息(数字指纹); 不同的输入得到的不同的结果(唯一性); 根据128位的输出结果不可能反推出输入的信息(不可逆); MD5属不属于加密算法: 认为不属于的人是因为他们觉得不能从密文(散列值)反过来得到原文,即没有解密算法,所以这部分人认为MD5只能属于算法,不能称为加密算法; 认为属于的人是因为他们觉得经过MD5处理后看不到原文,即已经将原文加密,所以认为MD5属于加密算法;我个人支持后者。 MD5用途: 1、防止被篡改: 1)比如发送一个电子文档,发送前,我先得到MD5的输出结果a。然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。如果a与b一样就代表中途未被篡改。2)比如我提供文件下载,为了防止不法分子在安装程序中添加木马,我可以在网站上公布由安装文件得到的MD5输出结果。3)SVN在检测文件是否在CheckOut后被修改过,也是用到了MD5. 2、防止直接看到明文: 现在很多网站在数据库存储用户的密码的时候都是存储用户密码的MD5值。这样就算不法分子得到数据库的用户密码的MD5值,也无法知道用户的密码(其实这样是不安全的,后面我会提到)。(比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。) 3、防止抵赖(数字签名): 这需要一个第三方认证机构。例如A写了一个文件,认证机构对此文件用MD5算法产生摘要信息并做好记录。若以后A说这文件不是他写的,权威机构只需对此文件重新产生摘要信息,然后跟记录在册的摘要信息进行比对,相同的话,就证明是A写的了。这就是所谓的“数字签名”。 MD5算法过程: 对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 第一步、填充:如果输入信息的长度(bit)对512求余的结果不等于448,就需要填充使得对512求余的结果等于448。填充的方法是填充一个1和n个0。填充完后,信息的长度就为N*512+448(bit); 第二步、记录信息长度:用64位来存储填充前信息长度。这64位加在第一步结果的后面,这样信息长度就变为N*512+448+64=(N+1)*512位。 第三步、装入标准的幻数(四个整数):标准的幻数(物理顺序)是(A=(01234567)16,B=(89ABCDEF)16,C=(FEDCBA98)16,D=(76543210)16)。如果在程序中定义应该是(A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L)。有点晕哈,其实想一想就明白了。 第四步、四轮循环运算:循环的次数是分组的个数(N+1) 1)将每一512字节细分成16个小组,每个小组64位(8个字节) 2)先认识四个线性函数(&是与,|是或,~是非,^是异或) F(X,Y,Z)=(X&Y)|((~X)&Z) G(X,Y,Z)=(X&Z)|(Y&(~Z)) H(X,Y,Z)=X^Y^Z I(X,Y,Z)=Y^(X|(~Z)) 3)设Mj表示消息的第j个子分组(从0到15),<<<s表示循环左移s位,则四种操作为: FF(a,b,c,d,Mj,s,ti)表示a=b+((a+F(b,c,d)+Mj+ti)”
23
专家指导 如何进行JVM参数配置
“本文将教大家如何进行JVM参数配置,JVM提供了大量命令行参数,大家可以将本文打印下来作为资料备查。最后还将为大家讲解如何进行调优,相信你一定会感兴趣的。 高手教大家如何进行JVM参数配置 堆大小设置 JVM中最大堆大小有三方面限制: 相关操作系统的数据模型(32-bt还是64-bit)限制; 系统的可用虚拟内存限制; 系统的可用物理内存限制。 32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在WindowsServer2003系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。 典型JVM参数配置: java-Xmx3550m-Xms3550m-Xmn2g-Xss128k -Xmx3550m: 设置JVM最大可用内存为3550M。 -Xms3550m: 设置JVM初始内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xmn2g: 设置年轻代大小为2G。整个堆大小=年轻代大小+年老代大小+持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 -Xss128k: 设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。 java-Xmx3550m-Xms3550m-Xss128k -XX:NewRatio=4-XX:SurvivorRatio=4 -XX:MaxPermSize=16m-XX:MaxTenuringThreshold=0 -XX:NewRatio=4: 设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5 -XX:SurvivorRatio=4: 设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6 -XX:MaxPermSize=16m: 设置持久代大小为16m。 -XX:MaxTenuringThreshold=0: 设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。 回收器选择 JVM给了三种选择:串行收集器、并行收集器、并发收集器,但是串行收集器只适用于小数据量的情况,所以这里的选择主要针对并行收集器和并发收集器。默认情况下,JDK5.0 以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。JDK5.0以后,JVM会根据当前系统配置进行判断。 吞吐量优先的并行收集器 如上文所述,并行收集器主要以到达一定的吞吐量为目标,适用于科学技术和后台处理等。 典型JVM参数配置: java-Xmx3800m-Xms3800m-Xmn2g-Xss128k -XX:+UseParallelGC-XX:ParallelGCThreads=20 -XX:+UseParallelGC: 选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集。 -XX:ParallelGCThreads=20: 配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。 java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:ParallelGCThreads=20-XX:+UseParallelOldGC -XX:+UseParallelOldGC: 配置年老代垃圾收集方式为并行收集。JDK6.0支持对年老代并行收集。 java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:MaxGCPauseMillis=100 -XX:MaxGCPauseMillis=100: 设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。 java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:MaxGCPauseMillis=100-XX:+UseAdaptiveSizePolicy -XX:+UseAdaptiveSizePolicy: 设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开。 响应时间优先的并发收集器 如上文所述,并发收集器主要是保证系统的响应时间,减少垃圾收集时的停顿时间。适用于应用服务器、电信领域等。 典型JVM参数配置: java-Xmx3550m-Xms3550m-Xmn2g-Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC-XX:+UseParNewGC -XX:+UseConcMarkSweepGC: 设置年老代为并发收集。测试中配置这个以后,-XX:NewRatio=4的配置失效了,原因不明。所以,此时年轻代大小最好用-Xmn设置。 -XX:+UseParNewGC: 设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值。 java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseConcMarkSweepGC-XX:CMSFullGCsBeforeCompaction=5-XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction: 由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行多少次GC以后对内存空间进行压缩、整理。 -XX:+UseCMSCompactAtFullCollection: 打开对年老代的压缩。可能会影响性能,但是可以消除碎片。 ”
关于 Java 的系统属性 sun.jnu.encoding 和 file.encoding 的区别
“sun.jnu.encoding 影响文件名的创建,而 file.encoding 则影响到文件内容。 所以说,在我们使用 Java 处理中文文件的时候,如果发现文件的中文内容没有乱码,而文件的中文名发生乱码,我们就应当多考虑一下 sun.jnu.encoding 和 file.encoding 的区别了。 支持中文文件目录的 org.apache.tools.zip.* 打包解压缩中文文件夹都没有问题的。但有的时候打包后的中文文件名会出现乱码,这是为什么呢?查看 org.apache.tools.zip.ZipOutputStream 的 API ...”
22
再议数据库军规
“上一篇《58到家数据库30条军规解读》引发了广泛的讨论,某些军规部分同学有疑惑,补充一文说明。   军规:必须使用UTF8字符集 和DBA负责人确认后,纠正为“新库默认使用utf8mb4字符集”。 这点感谢网友的提醒,utf8mb4是utf8的超集,emoji表情以及部分不常见汉字在utf8下会表现为乱码,故需要升级至utf8mb4。 默认使用这个字符集的原因是:“标准,万国码,无需转码,无乱码风险”,并不“节省空间”。 一个潜在坑:阿里云上RDS服务如果要从utf8升级为utf8mb4,需要重启实例,所以58到家并没有把所有的数据库升级成这个字符集,而是“新库默认使用utf8mb4字符集”。 自搭的Mysql可以完成在线转换,而不需要重启数据库实例。 军规:数据表、数据字段必须加入中文注释 这一点应该没有疑问。 不过也有朋友提出,加入注释会方便黑客,建议“注释写在文档里,文档和数据库同步更新”。这个建议根据经验来说是不太靠谱的: (1)不能怕bug就不写代码,怕黑客就不写注释,对吧? (2)文档同步更新也不太现实,还是把注释写好,代码可读性做好更可行,互联网公司的文档管理?呆过互联网公司的同学估计都清楚。   军规:禁止使用存储过程、视图、触发器、Event 军规:禁止使用外键,如果有外键完整性约束,需要应用程序控制 军规:禁止大表使用JOIN查询,禁止大表使用子查询 很多网友提出,这些军规不合理,完全做到不可能。 如原文所述,58到家数据库30条军规的背景是“并发量大、数据量大的互联网业务”,这类业务架构设计的重点往往是吞吐量,性能优先(和钱相关的少部分业务是一致性优先),对数据库性能影响较大的数据库特性较少使用。这类场景的架构方向是“解放数据库CPU,把复杂逻辑计算放到服务层”,服务层具备更好的扩展性,容易实现“增机器就扩充性能”,数据库擅长存储与索引,勿让数据库背负过重的任务。   关于这个点,再有较真的柳岩小编就不回复了哈,任何事情都没有百分之百,但58到家的数据库使用确实没有存储过程、视图、触发器、外键、用户自定义函数,针对业务特性设计架构,等单库吞吐量到了几千上万,就明白这些军规的重要性啦。   军规:只允许使用内网域名,而不是ip连接数据库 这一点应该也没有疑问。 不只是数据库,缓存(memcache、redis)的连接,服务(service)的连接都必须使用内网域名,机器迁移/平滑升级/运维管理…太多太多的好处,如果朋友你还是采用ip直连的,赶紧升级到内网域名吧。   军规:禁止使用小数存储国币 有朋友问存储前乘以100,取出后除以100是否可行,个人建议“尽量少的使用除法”。 曾经踩过这样的坑,100元分3天摊销,每天摊销100/3元,结果得到3个33.33。后来实施对账系统,始终有几分钱对不齐,郁闷了很久(不是几分钱的事,是业务方质疑的眼神让研发很不爽),最后发现是除法惹的祸。 解决方案:使用“分”作为单位,这样数据库里就是整数了。   案例:SELECT uid FROM t_user WHERE phone=13812345678 会导致全表扫描,而不能命中phone索引 这个坑大家没踩过么? phone是varchar类型,SQL语句带入的是整形,故不会命中索引,加个引号就好了: SELECT uid FROM t_user WHERE phone=’13812345678’   军规:禁止使用负向查询NOT、!=、、!、NOT IN、NOT LIKE等,会导致全表扫描 此军规争议比较大,部分网友反馈不这么做很多业务实现不了,稍微解释一下: 一般来说,WHERE过滤条件不会只带这么一个“负向查询条件”,还会有其他过滤条件,举个例子:查询沈剑已完成订单之外的订单(好拗口): SELECT oid ...”
58到家数据库30条军规解读
“主题 数据库 军规适用场景 : 并发量大、数据量大的互联网业务 军规 :介绍内容 解读 :讲解原因 , 解读比军规更重要 一、基础规范 ( 1 ) 必须使用 InnoDB 存储引擎 解读:支持事务、行级锁、并发性能更好、 CPU 及内存缓存页优化使得资源利用率更高 ( ...”
21
JVM参数详解
“首先来看看JVM参数的设置形式: -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 这里有几个问题: 1. 各个参数的含义什么? 2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? 3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置? 下面我们一一进行回答 1. 各个参数的含义什么? 参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了。 我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。 堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。” “在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。 可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT 编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。 -Xms的含义 -Xms表示堆堆存的初始化分配大小,默认是物理内存的1/64; -Xmx的含义 -Xmx表示堆内存可以分配的最大尺寸,默认是物理内存的1/4。默认空余堆内存小于 ...”
08
Linux下自动删除n天前日志
“linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧。 1.删除文件命令: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -mtime +30 -name ...”
06
MAC下下如何查看环境变量
“查看所有的变量: $ printenv PATH=/Library/Frameworks/Python.framework/Versions/3.4/bin:/Users/calios/.cabal/bin:/Applications/ghc-7.8.4.app/Contents/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Users/calios/.cabal/bin:/Applications/ghc-7.8.4.app/Contents/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Users/calios/.cabal/bin:/Applications/ghc-7.8.4.app/Contents/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin ZSH=/Users/calios/.oh-my-zsh 查看指定的变量: $ echo $SHELL /bin/zsh 设置临时环境变量 $ export PATH=$PATH:~/bin 后面的$PATH意味着在原有值的基础上,拼接上~/bin/,再将新值赋给PATH。 ”
Linux的bg和fg命令简单介绍
“我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。 假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号): 代码如下: + Stopped /root/bin/rsync.sh 然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号) 代码如下: #bg 1 + ...”
02
MySql数字函数大全
“MySql数字函数大全 abs(N) 返回N的绝对值  mysql> select ABS(2); -> 2 mysql> select ABS(-32); -> 32 floor(N) 返回不大于N的最大整数值  mysql> select FLOOR(1.23); -> 1 mysql> select FLOOR(-1.23); -> -2 ceiling(N) 返回不小于N的最小整数值 mysql> select CEILING(1.23); -> ...”
01
mysql的时间格式化函数
“总结一下mysql的时间格式化函数。 DATE_FORMAT(date,format) 根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %M 月名字(January……December) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %D ...”
MySQL浮点类型总结
“MySQL支持的三个浮点类型是 FLOAT、DOUBLE 和 DECIMAL 类型。FLOAT 数值类型用于表示单精度浮点数值,而 DOUBLE 数值类型用于表示双精度浮点数值。 与整数类型一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。例如,语句FLOAT (5,2)规定显示的值不会超过5位数字,小数点后面带有2位数字。看下面的示范举例: mysql> insert into data values (876.90); Query OK, ...”
mysql表结构修改
“增加字段: ALTER TABLE table_name ADD field_name field_type; //增加一个新列 alter table t2 add d timestamp; alter table infos add ex ...”
nohup命令总结
“用途: LINUX命令用法,不挂断地运行命令。    语法: nohup Command   描述: nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 ...”
nohup命令及其输出文件
“nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。 该命令的一般形式为: nohup command & 示例: ls xxx 1>out.txt 2>&1 nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于 &1 更准确的说应该是文件描述符 ...”
关于Linux重定向
“0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。 在一般使用时,默认的是标准输出,既1,当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中: ./program 2 > log 这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外,也可以实现0,1,2之间的重定向: 2>&1 将错误信息重定向到标准输出。 Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。 如果想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如: # ls 1>/dev/null 2>/dev/null 还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如: # ls > /dev/null 2>&1 注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静悄悄:-) 由于使用nohup时,会自动将输出写入nohup.out文件中,如果文件很大的话,nohup.out就会不停的增大,这是我们不希望看到的,因此,可以利用/dev/null来解决这个问题。 nohup ./program ...”
5月
31
python中的类型转换
“int(x ) 将x转换为一个整数 long(x ) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 str(x ) 将对象 x 转换为字符串 complex(real ) 创建一个复数 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s ) 将序列 s 转换为一个元组 list(s ...”
27
wget命令小结
“wget是Linux最常用的下载命令, 一般使用只需要记住以下两个命令即可: # wget http://www.linuxsense.org/xxxx/xxx.tar.gz 或者使用-c参数, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载,如下所示: # wget -c http://www.linuxsense.org/xxxx/xxx.tar.gz 下面详细介绍一下wget的用法: wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。大 多数Linux发行版本都默认包含这个工具。如果没有安装可在http://www.gnu.org/software/wget/wget html下载最新版本,并使用如下命令编译安装: #tar zxvf wget-1.9.1.tar.gz #cd wget-1.9.1 ...”
26
nginx默认日志格式总结
“Nginx中日志文件的格式在nginx.conf中定义,其默认格式如下: #vim /usr/local/nginx/conf/nginx.conf log_format access '$remote_addr – $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' ' "$http_user_agent" ...”
17
【Android】@+id与@id的区别
“在进行Android开发的时候,必然要涉及到对控件的设计和操作。控件在layout文件当中进行定义的时候,一般会为其定义android:id属性来唯一标识这个控件。比如,对于一个文本控件TextView,我们可以为其定义android:id="@+id/textView1"。而当我们有另外一个文本控件,我们对其进行布局的时候,可以通过相对布局将其放置在前一个文本控件的右侧,例如android:layout_toRightOf="@id/textView1"。 通过上面的说明,我们可以发现,在layout文件中涉及到一个控件的id的时候,可能会使用到"@+id",也可能会使用到"@id"。那这两种写法有什么区别呢? @+id:表示新增一个id,所以一般用在定义一个控件的id的时候。比如,android:id="@+id/textView1",表示新增一个叫做textView1的id,并且设置当前这个控件的id叫做textView1。 @id:表示引用一个id,一般用来指定某一个控件。比如,当放置一个B控件位于A控件的左边的时候,可以使用android:layout_toLeftOf="@id/A",这里就是通过引用A的id来指明相对于哪个控件进行布局。 ”
03
如何查看tomcat的版本号
“进入tomcat的bin目录,里边有个version.sh,直接运行一下: $ ./version.sh Using CATALINA_BASE: /opt/tomcat-8 Using CATALINA_HOME: /opt/tomcat-8 Using CATALINA_TMPDIR: /opt/tomcat-8/temp Using JRE_HOME: ...”
4月
03
mysql字符集总结
“mysql服务器中有六个关键位置使用了字符集的概念,他们是:client 、connection、database、results、server 、system。 1、其中client是客户端使用的字符集,相当于网页中的字符集设置如下 。 2、其中的connection是连接数据库的字符集设置类型,如果php没有指明连接数据库使用的字符集类型就按照服务器端默认的字符集设置。 3、其中database是数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。 4、results是数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。 5、server是服务器安装时指定的默认字符集设定。 6、system是数据库系统使用的字符集设定。 system一般默认是utf-8字符集,server是最高的字符集设定,database没有单独设定就按照server的字符集设定,其他都是按照server的设定设置字符集。还有,数据库内的每个表和字段也都有字符集的概念,一般都是根据上一级结构决定自身的字符集,比如表就根据database库的设定决定自己的字符集,字段根据表来决定自己的字符集。 ”
parallel-ssh使用
“Linux系统映像规模当超过30时,小小的变更也会浪费很多时间,Linux系统下有很多可用的集中管理方案,例如著名的puppet,这个是用ruby开发,号称可以管理以万计的服务器。不过对于大多数SA来说,这个不怎么轻量,设置有点复杂。 这里推荐PSSH,比DSH更强大的批量管理工具,先来看下它的命令列表。 pssh 包安装 5 个实用程序: parallel-ssh (pssh) 在多个主机上并行地运行命令。 parallel-scp (pscp)把文件并行地复制到多个主机上。 parallel-rsync (psync)通过 rsync 协议把文件高效地并行复制到多个主机上。 parallel-slurp (pslurp)把文件并行地从多个远程主机复制到中心主机上。 parallel-nuke (pnuke)并行地在多个远程主机上杀死进程。 安装步骤(前提系统中已经安装有python2.4+): wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz tar xvf pssh-2.3.1.tar.gz cd ...”
mysql操作查询结果case when then else end用法举例
“Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN ...”
Linux 查看计算机名以及修改
“1.查看计算机名 hosname 【实例】 # hostname Yuanji_Server 2.Centos 修改计算机名 --------------------- setep1. hostname New-Server setep2. 修改/etc/sysconfig/network NETWORKING=yes HOSTNAME="New_Server" #将原来的进行修改 GATEWAY="192.168.0.1" GATEWAYDEV="eth0" setep3检查 sysctl kernel.hostname New_Server 如果不是,就用 sysctl kernel.hostname=New-Server setep4修改更新 /etc/hosts 中的内容 【实例】 # hostname 10-222 # hostname 10-222 NETWORKING=yes HOSTNAME=10-222 ...”
MySQL如何计算两个时间差
“MySQL计算两个日期的时间差函数TIMESTAMPDIFF用法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。 其结果的单位由interval 参数给出,该参数必须是以下值的其中一个: FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。 示例如下: mysql> SELECT TIMESTAMPDIFF(MONTH,'2012-10-01','2013-01-13'); -> 3 mysql> ...”
su 和 sudo、su root和su - root 区别
“su su是superuser的前面两字母。 su root=su like you open an interactive shell in root name,then only .bashrc will be sourced. su ...”
2月
13
macOS Sierra安装任何来源的应用
“每次macOS升级之后都需要通过spctl关闭安全策略子系统,否则无法安装来自任何来源的应用。 spctl简介 该命令用来管理安全评估策略子系统,这个子系统决定了软件是否可以在系统中进行安装、执行及操作文件等。 该详细的介绍可以通过命令 man spctl 进行查看。 如果需要恢复允许“任何来源”的选项,即关闭Gatekeeper,请在终端中使用spctl命令: sudo spctl --master-disable 参数说明: --master-disable --master-enable 开启 assessment subsystem。 ”
2016
9月
20
crontab命令
“前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。 一、crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。 Linux下的任务调度分为两类,系统任务调度和用户任务调度。 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。 /etc/crontab文件包括下面几行: # cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO="" HOME=/ # run-parts 51 ...”
详细介绍Linux mount命令使用
“Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件,此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。 Linux显示所有的目录都在一个目录树下,而于他们位于哪一个驱动器/硬件无关。在Linux下的磁盘内容作为子目录形式出现的。 用Linux mount命令来挂载cdrom。 命令: mount -t auto /dev/cdrom /mnt/cdrom 这命令就是把cdrom挂载在/mnt/cdrom目录中,这里我就可以访问里面的内容了。 学习操作过程: $ mount -t auto /dev/cdrom /mnt/cdrom mount: only root ...”
10
vi 设置自动换行和自动折行
“vim设置自动换行和自动折行的方式是不同的,自动换行使用set textwidth命令,自动折行使用set wrap命令。 自动换行 自动换行是每行超过 n 个字的时候 vim 自动加上换行符用 类似 :set textwidth=70 来设置 n 自动折行 自动折行是把长的一行用多行显示 , 不在文件里加换行符用 :set wrap 设置自动折行 :set ...”
09
linux找不到主机名解决办法
“项目有个定时任务是根据主机名称来判断是否执行,原来一直运行良好,这两天突然出现了问题,后台日志报错如下: 2016-08-30 21:02:00,013 ERROR cn.xxx.man.task.event.EventTask - 获取主机名称发成错误:test.xxx.priv: test.xxx.priv: unknown error Java代码大致如下: public class InetAddressTest { ...”
07
干货:衡量App应用的9个KPI指标
“有读者提问:什么是衡量移动应用软件最重要的指标? 这是个不错的问题——这个问题说难不难,说容易也不容易。实际上并没有通用的主要性能指标,也没有具体的评判标准,但是下面所提到的是几个最基本的指标。 很明显,下载量对任何应用软件都是很重要的,但是空谈下载数量,而不注重质量也是毫无意义的。“下载量有助于应用软件的成功,但是真正的成功并不能用下载量来衡量,” BiTE Interactive公司技术执行副总裁Brant DeBow说道,“许多品牌仍然以是否吸引“眼球”去评判一款App应用是否成功,这似乎把App应用软件当成了电视广告。” App应用为品牌带来独特的商机,但是品牌不应该只把App当作是公司网站的另一个版本。最好的App应用会有些“粘性”,并能够让用户体验到它们的固有价值。 考虑下:你的品牌有多少几率被用户全天使用,你不应该浪费掉这些机会。你的应用应该有些新鲜、刺激的东西,从而能够加深用户体验,提高用户的忠诚度以及品牌的亲和力。 你要知道,用户下载、然后打开、注册一款App与实际使用的过程中还是要很大流失率的。 本文将告诉读者九个最重要的KPI指标,它们可以评估移动App应用软件是否成功。 1.用途 用户评价一款App应用时,会首先是从它的用途入手,而真正成功的App应用能够解决用户所面临的问题。除了单纯的使用外,还必须了解用户的年龄段,应用的使用频率、时间、方式等。特别的,对受众群体进行特征分析,可以估测不同受众群体使用情况,预测模型转换。了解这些问题后,可以对App应用有更深刻的见解,并且有的放矢进行资源分配,从而获得更大的利润。 2. 产品终生价值 对任何一款App应用而言,经得住检验并且可靠耐用,就是对产品终生价值(LTV)最重要的评价标准。简言之,LTV是移动用户相对于非移动用户的价值。如果移动用户比非移动用户更忠诚、使用频率更高,那么这个移动策略就是切实可行的。根据不同的用途来评断“价值”,这样就可以在了解应用对不同用户的价值后,就可以明确哪些功能对用户是重要的,哪些是有待提高的。 3.保留率 一款应用软件不会一直都是最热门的,因此要延长使用寿命就必须重视保留率,特别是在第1,7,30天的保留率。如今,保留率以及成为应用软件的最大的挑战,调查显示,有65%的人会在安装3个月后停止使用。而且早期的保留率预测也能显示市场生产力。另外,应用软件排名也越来越关注保留率。对用户来说保留率是更好的指标,但是只有做的很出色才会有更高的保留率。 4.活跃用户 每个人都可以下载应用软件,但是要想让用户定期使用并不那么容易。月度活跃用户(MAU)、日活跃用户(DAU) 都是评估用户活跃度的关键指标。如果用户喜欢一款App,它们就会经常使用,甚至能到依赖的程度。只有了解这类人群的特质以及他们是如何使用的,才会创造出更受欢迎的App应用,并且把更多的客户转化为活跃客户。 5.使用时间 只打开应用软件与切实使用应用软件是有很大区别的,就像网页访问量与网页浏览时间相比一样。增加使用时间对App应用而言是非常重要的。要想使App应用更加具有用户粘性,就要让它更具吸引力,这样才会有更长的使用时间。 6.平均用户收益 如果App应用有固定的用户群那是很好的,但你可能会创造一款应用软件能以其他方式获取收益。着眼大局要从平均用户收益(ARPU) 入手。“收益”来自于 App应用价格、应用内置广告等等,但是当你决定使用平均用户收益这个指标,那么请注意,要把你的App应用放在多个渠道平台上。GPShopper市场营销部高级经理Andrea Cohen表示,如果你只是简单的看看用户在App应用里买了些什么,并忽略他们总体花费的增长,这绝对是一个错误。根据她曾在The North Face和bebe这两个品牌公司的经验,每年用户使用App消费比在线用户多15%,甚至能占到总体收益的25%。 7.App加载/登陆时间 你的App应用需要六秒才能登陆?明确的告诉你,不会有人愿意花时间用这款App应用的。时间可以说是App应用的本质,你有责任为用户提供更高效的应用加载时间。用户应用加载App应用,登陆新页面,在应用里进行购买交易,所有处理都应该是无缝完成。如果你让用户思索为什么这款App应用的加载时间这么长,他们可能已经用上了你竞争对手的App了。 8.用户获取 获取新用户有一个办法,那就是研究一下现有用户是如何找到你开发的App应用的,是通过搜索,付费广告,内置推荐,还是通过口碑相传。人们会因为不同的原因寻找不同的App应用,对于App应用而言,了解如何触及到自己的目标用户是非常有用的。Candy Crush就是通过付费广告把美国20%的iPhone用户变成了这款游戏的活跃玩家。 9.用户体验/幸福度 如果用户使用了你的App应用五分钟以后,他们能从中得到价值吗?或是他们能找到自己需要的网页吗?还是感到非常挫败?人们使用一款App应用,并非意味着他们就喜欢这款App应用。当然,你可以在App Stores通过评论和评级看看一款App是否受欢迎。当然,你也可以使用一些像Helpshift这样的工具获得用户体验的反馈。 以上就是你需要了解的九个重要的App指标。在你开始分析自己的移动App应用之前,要确定这些指标是否适合自己的业务。Pietrzak说过,“跟踪大量的数据并不会提升你的业务,但是有效的执行企业关键目标,收效则会不同。” 是不是还漏掉了一些指标?或是你的公司里还有其他的KPI指标,欢迎在评论栏里留下您的意见。 来源:http://www.cyzone.cn/article/4873.html ”
指标与维度的那些事
“指标与维度是数据分析中最常用到的术语,它们是非常基础的,但是又很重要,经常有朋友没有搞清楚它们之间的关系,只有掌握理解了,我们的数据分析工作开展就就容易多了。现在就来说说指标与维度的那些事。 1、指标 指标,用于衡量事物发展程度的单位或方法,它还有个IT上常用的名字,也就是度量。例如:人口数、GDP、收入、用户数、利润率、留存率、覆盖率等。很多公司都有自己的KPI指标体系,就是通过几个关键指标来衡量公司业务运营情况的好坏。 指标需要经过加和、平均等汇总计算方式得到,并且是需要在一定的前提条件进行汇总计算,如时间、地点、范围,也就是我们常说的统计口径与范围。 指标可以分为绝对数指标和相对数指标,绝对数指标反映的是规模大小的指标,如人口数、GDP、收入、用户数,而相对数指标主要用来反映质量好坏的指标,如利润率、留存率、覆盖率等。我们分析一个事物发展程度就可以从数量跟质量两个角度入手分析,以全面衡量事物发展程度。 刚才说过,指标用于衡量事物发展程度,那这个程度是好还是坏,这就需要通过不同维度来对比,才能知道是好还是坏。 2、维度 维度:是事物或现象的某种特征,如性别、地区、时间等都是维度。其中时间是一种常用、特殊的维度,通过时间前后的对比,就可以知道事物的发展是好了还是坏了,如用户数环比上月增长10%、同比去年同期增长20%,这就是时间上的对比,也称为纵比; 另一个比较就是横比,如不同国家人口数、GDP的比较,不同省份收入、用户数的比较、不同公司、不同部门之间的比较,这些都是同级单位之间的比较,简称横比; 维度可以分为定性维度跟定量维度,也就是根据数据类型来划分,数据类型为字符型(文本型)数据,就是定性维度,如地区、性别都是定性维度;数据类型为数值型数据的,就为定量维度,如收入、年龄、消费等,一般我们对定量维度需要做数值分组处理,也就是数值型数据离散化,这样做的目的是为了使规律更加明显,因为分组越细,规律就越不明显,最后细到成最原始的流水数据,那就无规律可循。 最后强调一点,只有通过事物发展的数量、质量两大方面,从横比、纵比角度进行全方位的比较,我们才能够全面的了解事物发展的好坏。 来源:http://blog.sina.com.cn/s/blog_49f78a4b0102vxk8.html ”
“维度”和“指标”的区别
“维度:说明数据 维度是指可指定不同值的对象的描述性属性或特征。例如,地理位置的维度可以包括“纬度”、“经度”或“城市名称”。“城市名称”维度的值可以为“旧金山”、“柏林”或“新加坡”。 “浏览器”、“退出网页”、“屏幕”和“会话持续时间”都是 Google Analytics(分析)中默认显示的维度。维度显示在您的所有报告中,但您可能会在不同的报告中看到不同的维度。您可以使用维度来整理、细分和分析数据。在一些报告中,您可以通过添加和删除维度来查看数据的不同方面。 指标:衡量数据 指标是指可以按总数或比值衡量的具体维度元素。例如,维度“城市”可以关联指标“人口”,其值为具体城市的居民总数。 Google Analytics(分析)中的指标包括“屏幕浏览数”、“每次访问浏览页数”和“平均访问持续时间”等。 维度和指标的关系 虽然维度和指标可以独立使用,但常见的还是相互结合使用。维度和指标的值以及这些值之间的关系,使您的数据具有了意义。为了挖掘尽可能多的深层次信息,维度通常与一个或多个指标关联在一起。 例如,维度“城市”可以与指标“人口”和“面积”相关联。有了这些数据,系统还可以创建“人口密度”等比值指标,带来有关这些城市的更详细的深入信息。 来源:https://www.douban.com/note/344707227/ ”
05
Windows系统环境变量大全
“很多时候,不管我们在XP下还是在Vista、Win7、Win8下,不管我们是程序员还是普通用户,我们都可能会用到Windows系统环境变量。 可能有些初级用户比较迷惑,这个,对我们有什么用?该怎么用?今天列出Windows系统环境变量大全,并举出例子,希望大家善用。本文是在Win8系统下使用的,其他系统一样。 举个例子说,你的Windows桌面比较乱,被人或自己解压了几百个文件,这个时候,怎么管理? 这个时候,如果你按下 Win键+R键,打开运行窗口,然后输入 %HOMEPATH% 回车后,是不是资源管理器就打开了你的Windows登陆名字的那个文件夹? 然后点击桌面那个文件夹进去,就可以在资源管理器里面随意的管理了吧! Windows系统环境变量大全(XP/Win7/Win8) 当然,这只是一个用途,还有很多很多,可以让你快速的定位到你需要的地方,例如,如果你不想使用魔方优化大师里面的系统文件夹搬家功能,那么可以手动的设置,例如在刚才打开的资源管理器里面,收藏夹 那个文件夹,你可以右键、属性、位置 里面修改下,把它转移到D盘或者其他地方,这样以后重装系统就都不怕了。 系统环境变量都是 %????% 这种格式的,我个人比较常用的是 %APPDATA%、%HOMEPATH%、%TEMP% 这3个,当然你小写也没关系。 %ALLUSERSPROFILE% 所有用户 Profile 文件位置 %APPDATA% 应用程序数据的默认存放位置 %CD% 当前目录 %CLIENTNAME% 联接到终端服务会话时客户端的 NETBIOS 名 %CMDCMDLINE% 启动当前 cmd.exe 所使用的命令行 %CMDEXTVERSION% 当前命令处理程序扩展版本号 %CommonProgramFiles% 常用文件的文件夹路径 %COMPUTERNAME% 计算机名 %COMSPEC% 可执行命令外壳(命令处理程序)的路径 %DATE% 当前日期 %ERRORLEVEL% 最近使用的命令的错误代码 %HOMEDRIVE% 用户主目录所在的驱动器盘符 %HOMEPATH% 用户主目录的完整路径 %HOMESHARE% 用户共享主目录的网络路径 %LOGONSEVER% 有效的当前登录会话的域名控制器名 %NUMBER_OF_PROCESSORS% 计算机安装的处理器数 %OS% 操作系统的名字( Windows ...”
vim查看和更改文件的编码格式
“在Vim中查看文件编码 :set fileencoding 即可显示文件编码格式。 如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么在 ~/.vimrc 文件中添加以下内容: set encoding=utf-8 fileencodings=utf-8 这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或 者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适 的编码,就用latin-1(ASCII)编码打开。 以指定的编码打开某文件 如打开windows中以ANSI保存的文件 vim file.txt -c "e ++enc=GB18030" 文件编码转换 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式 :set fileencoding=utf-8 查看文件格式 :set fileformat? 设置文件格式为 unix :set fileformat=unix 来源:http://jpuyy.com/2012/07/vim-set-encoding.html ”
ext2、ext3与ext4的区别
“ext2与ext3 Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。 linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。 对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。 Linux之前缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定。但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了:其中系统缺省使用的ext2文件系统是非日志文件系统。这在关键行业的应用是一个致命的弱点。本文向各位介绍Linux下使用ext3日志文件系统应用。 Ext3文件系统是直接从Ext2文件系统发展而来,目前ext3文件系统已经非常稳定可靠。它完全兼容ext2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。这实际上了也是ext3日志文件系统初始设计的初衷。 Ext3日志文件系统的特点 1、高可用性 系统使用了ext3文件系统后,即使在非正常关机后,系统也不需要检查文件系统。宕机发生后,恢复ext3文件系统的时间只要数十秒钟。 2、数据的完整性: ext3文件系统能够极大地提高文件系统的完整性,避免了意外宕机对文件系统的破坏。在保证数据完整性方面,ext3文件系统有2种模式可供选择。其中之一就是“同时保持文件系统及数据的一致性”模式。采用这种方式,你永远不再会看到由于非正常关机而存储在磁盘上的垃圾文件。 3、文件系统的速度: 尽管使用ext3文件系统时,有时在存储数据时可能要多次写数据,但是,从总体上看来,ext3比ext2的性能还要好一些。这是因为ext3的日志功能对磁盘的驱动器读写头进行了优化。所以,文件系统的读写性能较之Ext2文件系统并来说,性能并没有降低。 4、数据转换 由ext2文件系统转换成ext3文件系统非常容易,只要简单地键入两条命令即可完成整个转换过程,用户不用花时间备份、恢复、格式化分区等。用一个ext3文件系统提供的小工具tune2fs,它可以将ext2文件系统轻松转换为ext3日志文件系统。另外,ext3文件系统可以不经任何更改,而直接加载成为ext2文件系统。 5、多种日志模式 Ext3有多种日志模式,一种工作模式是对所有的文件数据及metadata(定义文件系统中数据的数据,即数据的数据)进行日志记录(data=journal模式);另一种工作模式则是只对metadata记录日志,而不对数据进行日志记录,也即所谓data=ordered或者data=writeback模式。系统管理人员可以根据系统的实际工作要求,在系统的工作速度与文件数据的一致性之间作出选择。 实际使用Ext3文件系统 创建新的ext3文件系统,例如要把磁盘上的hda8分区格式化ext3文件系统,并将日志记录在/dev/hda1分区,那么操作过程如下: # mke2fs -j /dev/hda8 mke2fs 1.24a (02-Sep-2001) Filesystem label= OS type: Linux Block size=1024 (log=0) .. .. .. Creating ...”
04
MongoDB数据库启动和停止
“MongoDB数据库在linux下的启动和停止: MongoDB启动: ./mongod --dbpath=/data/db --logpath=/data/log/r3.log --fork ##--fork是用一个Daemon方式,加了--fork,就必须加—logpath 使用默认端口27017 ./mongod --dbpath=/app/hadoop/db --logpath=/app/hadoop/mongodb-linux-x86_64-static-legacy-2.0.5/log/r3.log –fork 使用默认端口27017 ./mongod -fork --dbpath=/app/hadoop/db --logpath=/app/hadoop/db/m_log.log --logappend --port=27018 & 指定端口27018 以上方式将MongoDB启动为后台进程 MongoDB服务停止: 在linux下大家停止很多服务都喜欢直接kill ...”
如何在mac下快速打开终端
“作为程序员,在mac下很多工作都需要在终端下完成,以下介绍两种方法可以快速打开终端。 方法1: 打开launcpad,然后输入“终端”,即可打开终端程序; 方法2: 使用快捷键ctrl+空格键,输入:Terminal.app,然后可以打开终端程序。 ”
02
linux fdisk命令使用
“Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区,在介绍该命令之前,我们先来了解一下不同类型硬盘在linux下的标识符。 对于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd等, 如果还有IDE Raid卡,则依次为:/dev/hde,/dev/hdf,/dev/hdg,/dev/hdh。对于SCSI硬盘,则设备名依次为/dev/sda,/dev/sdb...等等。 fdisk 操作硬盘的命令格式如下: # fdisk 设备 比如我们通过 fdisk -l 得知 /dev/hda 或者 /dev/sda设备;我们如果想再添加或者删除一些分区,可以用 # fdisk /dev/hda 或 # fdisk /dev/sda 注 ...”
磁盘分区的相关知识
“一、什么是分区? 分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化,即Format命令来实现。 安装操作系统和软件之前,首先需要对硬盘进行分区和格式化,然后才能使用硬盘保存各种信息。许多人都会认为既然是分区就一定要把硬盘划分成好几个部分,其实我们完全可以只创建一个分区使用全部或部分的硬盘空间。不过,不论我们划分了多少个分区,也不论使用的是SCSI硬盘还是IDE硬盘,都必须把硬盘的主分区设定为活动分区,这样才能够通过硬盘启动系统。 二、扩展分区和逻辑分区: DOS和FAT文件系统最初都被设计成可以支持在一块硬盘上最多建立24个分区,分别使用从C到Z 24个驱动器盘符。但是主引导记录中的分区表最多只能包含4个分区记录,为了有效地解决这个问题,DOS的分区命令FDISK允许用户创建一个扩展分区,并且在扩展分区内在建立最多23个逻辑分区,其中的每个分区都单独分配一个盘符,可以被计算机作为独立的物理设备使用。关于逻辑分区的信息都被保存在扩展分区内,而主分区和扩展分区的信息被保存在硬盘的MBR内。这也就是说无论硬盘有多少个分区,其主启动记录中只包含主分区(也就是启动分区)和扩展分区两个分区的信息 硬盘分区方式 我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。 主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。 扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。 所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。 需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。 ”
IDE、SCSI、SATA总结
“看linux的书时,发现许多地方提到SCSI/SATA/IDE这几种硬盘接口,对这些硬盘的概念和区别感到很模糊。所以特意查了一些资料,基本上算是弄懂了他们的区别。 目前硬盘最要分为3种。也即:IDE、SCSI、SATA。首先,这三个都是一种硬盘的接口标准。 最初硬盘的通用标准即IDE(Integrated Device Electronics:电子集成驱动器),IDE经过不断的发展,除了开始的几个版本外,后续的几个版本都叫Ultra DMA,其中最快的是Ultra DMA133,速度达到了133M/s。而人们通常喜欢用ATA来称呼IDE硬盘,但是严格来讲这个称谓是不对的,因为从理论上来讲,IDE的范围比ATA更大,任何电子集成驱动器都属于IDE,甚至包括SCSI(Small Computer System Interface)。直到SATA的出现将ATA和IDE区分开来,SATA即Serial-ATA(串行ATA),而IDE则属于Parallel-ATA(并行ATA)。这样可以如此来区分:廉价便宜的是IDE,新兴快速的是SATA,稳定高价的是SCSI。下班对这三种接口进行解释。 IDE(Intergrated Device Electronics) IDE一般是有扁平电缆连接的,一个扁平电缆可以连接2个IDE硬盘,而一个计算机一般提供2个扁平电缆,所以一般允许4块IDE硬盘。IDE经过多年的发展,成熟,廉价,稳定。一般老式的电脑中装的都是这种硬盘。目前2011主流的硬板已经是SATA硬盘了。IDE是平行传输的,而SATA是串行传输的。下边说一下SATA。 SATA(Serial-ATA) SATA是串行ATA,是近些年的新兴技术,数据校验更为完整,传输速度也更快,快到什么程度呢?SATA1.0的标准已经达到150M/s了,至于后续的2.0和3.0,则是可以达到300M/S和600M/S的。总之SATA是一项新技术,在各个方面都比IDE更加出色,所以总的来讲,IDE迟早会被SATA完全取代的,只是时间问题而已。 SCSI(Small Computer System Interface:小型计算机系统接口) SCSI的出现主要是由于原有IDE接口的硬盘转速比较低,传输效率比较慢。由于SCSI硬盘独立于系统总线工作,所以它的最大优点就在于系统的占用率低,当然它还有一些优点,转速高,传输速率快,更稳定。但也有一些缺点,价格高,安装没有IDE方便。 有一点请注意,SCSI硬盘一般来讲只有服务器才用到的,在个人电脑上我们很少见到SCSI硬盘的存在。 在linux系统中,对于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd等,如果还有IDE Raid卡,则依次为:/dev/hde,/dev/hdf,/dev/hdg,/dev/hdh。对于SCSI硬盘,则设备名依次为/dev/sda,/dev/sdb...等等。 ”
8月
26
ETL概述
“ETL概述 ETL,Extraction- Transformation-Loading的缩写,即数据抽取(Extract)、转换(Transform)、装载(Load)的过程,它是构建数据仓库的重要环节。ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为 企业的决策提供分析依据。ETL是BI项目重要的一个环节。通过ETL,我们可以基于源系统中的数据来生成数据仓库。ETL为我们搭建了OLTP系统和 OLAP系统之间的桥梁,是数据从源系统流入数据仓库的通道。通常情况下,在BI项目中ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到 BI项目的成败。 ETL架构 创建ETL系统的时候,头脑里应并存的两条主线:规划&设计主线和数据流主线 规划&设计主线:需求和实现===〉架构===〉系统实施===〉测试和发布 数据流主线:抽取===〉清洗====〉规格化====〉提交 架构的时候,我们必须作出关于创建ETL系统创建方法的主要的决定,其中包括: 手工编码还是使用ETL工具 实现方式一般有以下3种:一种是借助ETL工具(如Oracle的 OWB、SQLServer2000的DTS、SQLServer2005的SSIS服务、Informatic等)实现,一种是SQL方式实现,另外一种是ETL工具和SQL相结合。前两种方法各有各的优缺点,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,会极大地提高ETL的开发速度和效率。 批处理式数据流还是流式数据流 ETL 系统的标准架构是从数据源中周期性的以批处理的方式进行抽去数据,流经整个系统,最后以批处理的方式对最终用户表进行批量更新。大部分数据仓库主要基于此种架构方式。如果数据仓库的加载的实时性变得很急迫,批处理的方式就会被打破,替代的方法就是流式数据流,记录级数据从原系统不停的流向最终用户数据库和屏幕。 批处理到流处理方式的转变会改变所有的一切,尽管必须也有抽取,清晰,转换和提交步骤,但是这些步骤必须经过修改,以便适应实时性记录处理需求,尤其是对于快速流方式而言,很多关于数据到达甚至参照完整性方面的常规假设都必须进行修改。 水平任务依赖还是垂直任务依赖水平方式组织任务流是指每个最终的数据库加载相互独立运行,因此,如果有订货和配送两项任务,这两项数据库加载任务会相互独立运行,这通常意味着抽取,清洗,转换和提交的步骤在两个工作流之间是非同步的。 垂直方式任务流会对多个离散的作业进行同步,这样最终的数据库加载会同步进行。尤其是多个系统使用共同的维表的时候,比如客户或者供应商等,之前的步骤一定要同步,这样,如果之前的步骤没有完全执行完,后面的步骤,比如转换或者提交就不会往下进行。 恢复和重启 从 一开始建立ETL系统的时候,就应当考虑如何保证系统从非正常结束状态下的恢复和重启能力。比如有一个ETL作业是从全部的产品种类中抽取某个品牌产品的销售业绩,这样的任务不允许执行两次。在设计每一个ETL作业时都需要这样来考虑问题,因为每个作业迟早都会出现非正常终止或者错误地执行多次的情况。无论如何,必须想办法防止发生这种情况。 元数据 来自于关系型数据库表和数据模型设计工具的元数据比较容易获取,但这些元数据可能只占系统全部元数据的25%。还有25%的元数据会在数据清洗过程中产生。 对于ETL小组而言,最大的元数据难题是在哪里以及以何种方式存储流程信息。ETL工具的一个重要的优势在于它们能够自动维护流程元数据。如果是使用手写 编写ETL系统,用户则必须构建流程元数据的中央资料库。 初次之外,自动调度、异常处理、质量控制和安全也是ETL架构设计中不可忽视的环节。 ETL过程 抽取 这一部分需要在调研阶段做大量的工作,首先要搞清楚数据是从几个业务系统中来,各个业务系统的数据库服务器运行什么DBMS,是否存在手工数据,手工数据量有多大,是否存在非结构化的数据等等,当收集完这些信息之后才可以进行数据抽取的设计。源系统的原始数据在进行大的转换之前通常直接写入到磁盘。来自于结构化源系统的数据(比如IMS 数据库,或者XML数据集)在这一步中经常写入到文本文件或者关系型数据库表中。这使得最初的抽取尽可能简单和快速,对于源数据的不同来源,有以下不同的实现方法 1、对于与存放DW的数据库系统相同的数据源处理方法 这一类数据源在设计上比较容易。一般情况下,DBMS(SQLServer、Oracle)都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select语句直接访问。 2、对于与DW数据库系统不同的数据源的处理方法 对于这一类数据源,一般情况下也可以通过ODBC的方式建立数据库链接——如 SQLServer和Oracle之间。如果不能建立数据库链接,可以有两种方式完成,一种是通过工具将源数据导出成.txt或者是.xls文件,然后再 将这些源系统文件导入到ODS(Operating Data Source)中。另外一种方法是通过程序接口来完成。 3、对于文件类型数据源(.txt,.xls),可以利用数据库工具将这些数据导入到指定的数据库,然后从指定的数据库中抽取。或者还可以借助工具实现,如SQLServer2005的SSIS服务的平面数据源和平面目标等组件导入ODS中去。 4、增量更新的问题 对于数据量大的系统,必须考虑增量抽取。典型的做法是通过在ODS上建立时间戳以作为抽取记录,那么下次抽取时只要对比时间戳的抽取记录即可判断出增量数据。 数据清洗 数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。 大 ...”
16
从CIO、CEO、CFO、COO...到CVO 这22个你了解几个?
“1.CEO:是Chief Executive Officer的缩写,即首席执行官。 由于市场风云变幻,决策的速度和执行的力度比以往任何时候都更加重要。传统的“董事会决策、经理层执行”的公司体制已经难以满足决策的需要。而且,决策层和执行层之间存在的信息传递时滞和沟通障碍、决策成本的增加,已经严重影响经理层对企业重大决 策的快速反应和执行能力。而解决这一问题的首要一点,就是让经理人拥有更多自主决策的权力,让经理人更多为自己的决策奋斗、对自己的行为负责。CEO就是这种变革的产物。 在某种意义上代表着将原来董事会手中的一些决策权过渡到经营层手中。CEO与总经理,形式上都是企业的“一把手”,CEO既是行政一把手,又是股东权益代言人,大多数情况下,CEO是作为董事会成员出现的,总经理则不一定是董事会成员。从这个意义上讲,CEO代表着企业,并对企业经营负责。 2.COO:是Chief Operation Officer的缩写,即首席营运官。 COO是负责公司企业的日常运作并向CEO报告的二把手。如果说CEO是部长、市长的话,COO这个名称可以很容易地联想到中文里现有的名词如常务副部长、常务副市长等。 3.CFO:是Chief Finance Officer的缩写,即首席财务官。 首席财务官是企业财务总监的“增长版”。当然,从本质上讲,CFO在现代治理结构中的真正含义,不是其名称的改变、官位的授予,而是其职责权限的取得,在管理中作用的真正发挥。 4.CIO包括两种含义: ①为Chief Information Officer的缩写,即首席信息官 早在上个世纪80年代末,世界500强企业就有30%以上配备的CIO,首席信息官的职责是负责制订公司信息化的政策与标准,并确定实施程序与方法,统一领导企业内部信息系统建设,制定总体规划,并协调各部门之间的关系,保证信息流通畅通。随着首席信息官内涵的丰富,现在他们的另一项任务还包括利用现代化的技术捕捉收集信息,以实现信息资源的合理配置。 ②为Chief Innovation Officer的缩写,即首席创新官 是负责公司和组织的创新策略、创新流程和创新工具的主管领导。 5.CTO:是Chief Technology Officer的缩写,即首席技术官。 首席技术官即企业内负责技术的最高负责人。这个名称在1980年代从美国开始时兴。起于做很多研究的大公司,如General Electric,AT&T,ALCOA,主要责任是将科学研究成果成为盈利产品。1990年代,因计算机和软件公司热门,很多公司把CTO的名称给予管理计算机系统和软件的负责人。有时CTO和CIO是同一个人(尤其在软件公司),有时CTO归于比较精通科学技术的CIO手下。在不同领域的公司,CTO工作性质不同;即使在同一领域,工作性质也可能大不相同。一般CTO会有以下责任:长期技术方向(战略性)、短期技术方向(战术性)、管理研究对公司经营活动和营利的影响、公司中使用的软件等等。 6.CHO有两个含义: ①是Chief ...”
10
浅析python 中__name__ = '__main__' 的作用
“很多新手刚开始学习python的时候经常会看到python 中__name__ = '__main__' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = '__main__' 的作用,到底干嘛的? 有句话经典的概括了这段代码的意义: “Make a script both importable and executable” 意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。 这句话,可能一开始听的还不是很懂。下面举例说明: 先写一个模块: #module.py def ...”
03
平行进口货品
“平行进口货品(英语:parallel import),或平行输入货品,一般俗称水货,为无经由正式代理商进口的货品。相对地,经由正式代理商进口的货品则俗称行货。水货未必等同于冒牌货,但是因为来源不明,所以有买到仿冒品的风险,因为无经由总公司直接或者间接授权的代理商入口,所以若商品有问题可能求助无门。贩售“水货”因夹杂“制造合法”与“输入非法”的行为,又通称为“灰色市场(gray market)”。视乎各地法律而定,某一商品的水货在某国家或地区可能被禁止销售。 水货的售价一般比较行货便宜,这可能是由于货品在不同国家的价格有差距,或者水货商的成本较行货为低。但是如果该货品在销售地仍然未推出,水货的售价则可能比较原产地为高。 水货与行货的分别一般在售后服务上,行货电子、电器产品一般都附有有期限的免费或收费保修服务,由代理商提供。水货则可能完全没有保修服务,或由水货进口商提供。通常这些保养,只是在货品损坏后由水货进口商代为把货品运回输出国作维修或由进口商自行提供维修服务。 来自:维基百科 ”
01
vi查找替换命令示例
“1、在vi中使用的查找替换方法 利用 :s 命令可以实现字符串的替换。具体的用法包括: :s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1 :s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1 :.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1 :1,$ s/str1/str2/g 用字符串 str2 ...”
vi查找替换命令详解
“一、查找 查找命令 /pattern :向下查找pattern匹配字符串 ?pattern:向上查找pattern匹配字符串 使用了查找命令之后,使用如下两个键快速查找: n:按照同一方向继续查找 N:按照反方向查找 字符串匹配 pattern是需要匹配的字符串,例如: 1: /abc #查找abc 2: / abc ...”
VI快捷键攻略
“Vi提供了三个关于光标在全屏幕上移动并且文件本身不发生滚动的命令。它们分别是H、M和L命令。 (1)H命令 该命令将光标移至屏幕首行的行首(即左上角),也就是当前屏幕的第一行,而不是整个文件的第一行。利用此命令可以快速将光标移至屏幕顶部。若在 H命令之前加上数字n,则将光标移至第n行的行首。值得一提的是,使用命令dH将会删除从光标当前所在行至所显示屏幕首行的全部内容。 (2)M命令 该命令将光标移至屏幕显示文件的中间行的行首。即如果当前屏幕已经充满,则移动到整个屏幕的中间行;如果并未充满,则移动到文本的那些行的中间行。利用此命令可以快速地将光标从屏幕的任意位置移至屏幕显示文件的中间行的行首。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式下,输入命令M之后,光标都将移到add这一行的字母a上。同样值得一提的是,使用命令dM将会删除从光标当前所在行至屏幕显示文件的中间行的全部内容。 (3)L命令 当文件显示内容超过一屏时,该命令将光标移至屏幕上的最底行的行首;当文件显示内容不足一屏时,该命令将光标移至文件的最后一行的行首。可见,利用此命令可以快速准确地将光标移至屏幕底部或文件的最后一行。若在L命令之前加上数字n,则将光标移至从屏幕底部算起第n行的行首。同样值得一提的是,使用命令dL将会删除从光标当前行至屏幕底行的全部内容。 让我们看看最简单也是最常用的编辑过程:没有人不犯错误。所以迟早你会碰到修改你输入的文本的时候。实际上花在字处理上的大多数时间是修改而不是输入新的东西。因此,你要知道如何方便地修改就很重要。 (1)x–删除一个字符 删除文字的最简单的方式是用x。这个命令的结果是光标所处的字符的消失,后面的文字左移动。如果你删除的字符是一行最后的一个字符,那么光标将向左移动一个,这样光标就不会停留在不存在的字符的下面了。假如没有任何文字了,喇叭就叫。 (2)d–删除对象 这个命令的右边还要有一定的文字对象。文字对象就是一块文字。他右边接的就是在控制光标移动的那些字符。例如 w 表示向前一个单词,那么 dw 将删除下一个单词。5w 表示前进5个单词,那么 d5w 将删除他们。 (3)dd–删除一行 最常用的 d 系列命令之一。和前面一样, 5dd 将删除 5 行 (4)D–整个删除 大写形式的 ...”
7月
31
理解WebKit和Chromium: WebKit和Blink
“关注Web和HTML5领域的人最近应该都有了解WebKit项目的重磅消息,那就是Google退出WebKit项目,创建自己的渲染引擎Blink。这其实不能说完全没有先兆,合合分分,纯属正常。其实,之前关于WebKit2,双方的争论就非常的大。Apple希望它可以随便加入和删除代码而无需担心它会破坏其它Ports的代码,这遭到很多人的反对和不满。同时,另一方面,Google有很多新的功能希望加入WebKit中,但是WebKit可能并不认可他们。双方分歧越来越多,终于分道扬镳。 这里面有个误区,就是Google的Blink是一个全新的引擎。其实不是这样,Blink目前就是从WebKit直接复制出一个版本出来,然后将与chromium无关的Ports全部移除掉,将代码结构重新整理,就目前而言,Blink的渲染和WebKit是一样,但是,以后两者将各自走不同的路。这有点类似于之前WebKit从KHTML中复制出来一样,历史总是惊人的相似。 目前参与Blink和Chromium大致一样,拥有Chromium的commit权限对Blink也适用。原来一些WebKit的committer和reviewer也开始成为blink的committer。它的提交代码流程,review流程等都是chromium的风格,这对chromium的开发者来说非常熟悉。 Blink从WebKit继承而来,那么未来它会在哪些方面做改变呢?根据chromium官方的说法,目前大概有两个比较大的,后面应该有更多的改变: 1. 跨进程的iframe(out-of-process iframes):为iframes内容创建单独的沙箱进程来渲染它们 2. 将DOM移入JavaScript中,这样JavaScript可以更快的访问DOM 今后,Blink会和WebKit差别越来越大,对Web标准支持也不尽相同,未来的发展如何,让我们拭目以待吧。 顺便插一句,以后可能要改这个系列的标题了,呵呵。 参考资料 1. http://www.chromium.org/blink 来源:http://blog.csdn.net/milado_nju/article/details/8805810 ”
键盘事件keydown,keypress,keyup区别
“按下键盘时会触发键盘事件,顺序为keydown -> keypress ->keyup。 1、keydown、keypress事件触发在文字还没敲进文本框,这时如果在keydown、keypress事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本。 var input = document.getElementById('input'); input.onkeydown = function() { console.log('onkeydown ' ...”
29
什么是轧差
“轧差是指交易伙伴或者系统的参与者之间一致同意的余额或债务对冲。轧差把大量逐笔交易额或债务减少到较小数目的交易额或债务。轧差可以采用不同的方式进行,这些方式在一方丧失清偿能力的情况下,其法律强制轧差的程度不尽相同。参见双边和多边轧差,状态轧差,债务更新,更替。 轧差,并无专门的法律定义,汉语中对轧差的相应的称谓还有差额计算、对冲、净提等。轧差的法律机制是利用抵销、合同更新等法律制度,最终取得一方对另一方的一个数额的净债权或净债务,如市场交易者之间,可能互有内容相同,方向相反的多笔交易,在结算或结束交易时,可以将各方债权在相等数额内抵销,仅支付余额。 轧差的分类 按照轧差的内容来分,可以分成为结算轧差和违约轧差(或者称结束交易轧差)。 结算轧差(settlement netting) 结算轧差是指交易正常结束时,交易各方进行的轧差操作,结算轧差通常在结算之前先轧净同种类的相互债务债权。结算轧差的目的主要是为了减少结算风险,防止一方支付后,对方于支付之前破产,即使同日支付也存在交割风险,结算轧差不仅适用于支付系统,它同时还适用于外汇、证券等的交割和结算。 违约轧差(close-out netting) 违约轧差是指交易一方违约,交易各方立即终止尚待履行合同(executory contract)交易,对已交易的部分进行的轧差操作,各个合同产生的损失和收益相抵销后,一方向另外一方仅支付(或申报)一个余额,结束交易轧差的主要目的是为了减少一方于结算日前破产给敞口合同带来的风险。 轧差在信用风险中的形式 轧差是控制双边信用风险和约(如远期和约、掉期)的最常见方法之一,包括支付轧差(payment netting)、出清轧差(closeout netting)、跨产品轧差(cross-product netting)几种形式。 1、支付轧差。指通过降低必须支付的金额来降低信用风险。如果支付到期,A欠B的金额大于B欠A的金额,A向B支付所欠金额之差。 举例来说,如果A欠B10万元,B欠A4万元,则A对B的净欠额为6万元。没有轧差,B需要向A支付4万元,而A需向B支付10万元。假设B在向A支付4万元的过程中没有意识到A会违约,如果A已经得到B支付的4万元,则B可能无法收回其10万元,那么其信用损失将大于轧差后的6万元。 2、出清轧差。轧差可以扩张到破产情形。假设A、B间有很多衍生工具交易,一些和约市值对A为正值,其他和约市值对B为正值,如果A宣布破产,可用轧差来解决很多问题。如果A、B在破产前同意轧差,就可以把所有衍生工具和约市值进行轧差而决定一方欠另一方的净额,这样B在破产过程中不是A的债权人。实际上,A对B的追索权变成A剩余资产的追索权。这个过程就叫出清轧差。 轧差在破产过程中发挥重要作用。当允许破产公司执行有利和约而不执行不利和约时,存在选择问题。上面例子中,如果没有轧差,A会对A欠B金额大于B欠A金额的和约违约,而B会被迫执行B欠A金额大于A欠B金额的和约。 3、跨产品轧差。当A、B同意对所有和约进行轧差时,这个过程就是跨产品轧差。例如,如果一方是银行,他们可以在决定一方欠另一方的总净额时包含任何条款。 ”
MySQL行级锁、表级锁、页级锁详细介绍
“这篇文章主要介绍了MySQL行级锁、表级锁、页级锁详细介绍,同时列举了一些实例说明,需要的朋友可以参考下 页级:引擎 BDB。 表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行 行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许 行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。 页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。 MySQL 5.1支持对MyISAM和MEMORY表进行表级锁定,对BDB表进行页级锁定,对InnoDB表进行行级锁定。 对WRITE,MySQL使用的表锁定方法原理如下: 如果在表上没有锁,在它上面放一个写锁。 否则,把锁定请求放在写锁定队列中。 对READ,MySQL使用的锁定方法原理如下: 如果在表上没有写锁定,把一个读锁定放在它上面 否则,把锁请求放在读锁定队列中。 InnoDB使用行锁定,BDB使用页锁定。对于这两种存储引擎,都可能存在死锁。这是因为,在SQL语句处理期间,InnoDB自动获得行锁定和BDB获得页锁定,而不是在事务启动时获得。 行级锁定的优点: 当在许多线程中访问不同的行时只存在少量锁定冲突。 回滚时只有少量的更改。 可以长时间锁定单一的行。 行级锁定的缺点: 比页级或表级锁定占用更多的内存。 当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。 如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个表,比其它锁定明显慢很多。 用高级别锁定,通过支持不同的类型锁定,你也可以很容易地调节应用程序,因为其锁成本小于行级锁定。 在以下情况下,表锁定优先于页级或行级锁定: 表的大部分语句用于读取。 对严格的关键字进行读取和更新,你可以更新或删除可以用单一的读取的关键字来提取的一行: UPDATE tbl_name SET column=value WHERE unique_key_col=key_value; DELETE ...”
JQuery显示、隐藏div的几种方法简明总结
“这篇文章主要介绍了JQuery显示、隐藏div的几种方法简明总结,本文总结了控制style、控制CSS、JQuery自带方法等几种显示、隐藏div的方法,需要的朋友可以参考下。 1、第一种方法是通过jquery的css方法,设置div隐藏,代码如下所示: $("#demo").css("display","none");//隐藏div $("#demo").css("display","block");//显示div 2、第二种方法是给元素设置style属性,代码如下所示: $("#demo").attr("style","display:none;");//隐藏div $("#demo").attr("style","display:block;");//显示div 另外还有一个toggle方法需要关注一下: $("#id").toggle() 切换元素的可见状态。如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。 3.第三种方式是通过jquery的show()、hide()方法,设置div的显示和隐藏,代码如下所示: $("#demo").hide();//隐藏div $("#demo").show();//显示div ”
图灵奖简介
“奖金金额不算太高,设奖初期为2万美元,1989年起增到2万5千美元,奖金通常由计算机界的一些大企业提供(通过与ACM签订协议)。目前图灵奖由英特尔公司和谷歌公司赞助,奖金为250,000美元。 每年,美国计算机协会将要求提名人推荐本年度的图灵奖候选人,并附加一份200到500字的文章,说明被提名者为什么应获此奖。任何人都可成为提名人。美国计算机协会将组成评选委员会对被提名者进行严格的评审,并最终确定当年的获奖者。 从1966年到2011年的46届图灵奖,共计有58名科学家获此殊荣,其中美国学者最多,此外还有英国、瑞士、荷兰、以色列等国少数学者。 最新一届获奖者为:沙菲·戈德瓦塞尔,西尔维·奥麦克林。 贡献:在密码学和复杂理论领域做出创举性工作。 参考链接 http://mt.sohu.com/20160323/n441701194.shtml http://blog.sciencenet.cn/blog-287179-882071.html ”
硬件发展史及其趋势
“计算机的诞生酝酿了很长一段时间。1946年2月,第一台电子计算机ENIAC在美国加州问世,ENIAC用了18000个电子管和86000个其它电子元件,有两个教室那么大,运算速度却只有每秒300次各种运算或5000次加法,耗资100万美元以上。尽管ENIAC有许多不足之处,但它毕竟是计算机的始祖,揭开了计算机时代的序幕。 计算机的发展到目前为止共经历了四个时代,从1946年到1959年这段时期我们称之为“电子管计算机时代”。第一代计算机的内部元件使用的是电子管。由于一部计算机需要几千个电子管,每个电子管都会散发大量的热量,因此,如何散热是一个令人头痛的问题。电子管的寿命最长只有3000小时,计算机运行时常常发生由于电子管被烧坏而使计算机死机的现象。第一代计算机主要用于科学研究和工程计算。 从1960年到1964年,由于在计算机中采用了比电子管更先进的晶体管,所以我们将这段时期称为“晶体管计算机时代”。晶体管比电子管小得多,不需要暖机时间,消耗能量较少,处理更迅速、更可靠。第二代计算机的程序语言从机器语言发展到汇编语言。接着,高级语言FORTRAN语言和COBOL语言相继开发出来并被广泛使用。这时,开始使用磁盘和磁带作为辅助存储器。第二代计算机的体积和价格都下降了,使用的人也多起来了,计算机工业迅速发展。第二代计算机主要用于商业、大学教学和政府机关。 从1965年到1970年,集成电路被应用到计算机中来,因此这段时期被称为“中小规模集成电路计算机时代”。集成电路(Integrated Circuit,简称r)是做在晶片上的一个完整的电子电路,这个晶片比手指甲还小,却包含了几千个晶体管元件。第三代计算机的特点是体积更小、价格更低、可靠性更高、计算速度更快。第三代计算机的代表是IBM公司花了50亿美元开发的IBM 360系列。 从1971年到现在,被称之为“大规模集成电路计算机时代”。第四代计算机使用的元件依然是集成电路,不过,这种集成电路已经大大改善,它包含着几十万到上百万个晶体管,人们称之为大规模集成电路(LargeScale lntegrated Circuit,简称LSI)和超大规模集成电路(Very Large Scale lntegrated Circuit,简称VLSI)。1975年,美国1BM公司推出了个人计算机PC(PersonaI Computer),从此,人们对计算机不再陌生,计算机开始深入到人类生活的各个方面。 经过这些年的发展,由于笔记本电脑成本的迅速下降,移动PC并没有获得良好的市场呼应,并逐步淡出了人们的视野。但是,电脑硬件总体的发展却正在向我设想的方向前进,而移动PC这种采用普通台式电脑芯片内存并可更换的理念却常常浮现在我脑海中。在这里,不妨让我们重新拾起移动PC的设计思路,更大胆一些,提出未来电脑硬件的发展趋势。 我认为,今后若干年电脑硬件发展可能出现的技术更新或者说需要解决的问题有: 1、闪存的可靠性加强、成本大幅度降低、速度进一步提高,大容量和超大容量闪存的使用成为可能。结果:在电脑中彻底取代硬盘、光驱、软驱等存储设备。目前,U盘已经成功取代软驱,由 2G闪存构成的U盘已经成为市场主流,虽然U盘与硬盘容量仍有差距,但大容量U盘的出现势在必然,取代硬盘是早晚的事。 2、液晶显示器的使用寿命、分辨率、响应时间、亮度等指标大幅提高,成本大幅下降。结果:在常规领域彻底取代CRT显示器。这一点已经成为现实,并且液晶显示器的指标仍在不断提高,需要改进的主要是生产成本的突破性下降。 3、CPU的发热量得到更有效的控制,采用各种技术手段,改变过去单纯提高工作频率来提高CPU运算速度的方式,采用更先进、更经济和更合理的散热系统。这一点正在研究和实验中,如液冷降温,如从高频奔四到低频酷睿的改进等等,还有待于从实验阶段向实用阶段转变。 4、电脑主板全面集成视频系统、音频系统、网络系统等多媒体和网络必备组件,实现真正意义上的全集成主板。现在的主板几乎已经百分之百的集成了百兆或千兆网卡、5.1或7.1声卡甚至高清视频输出,最近显卡巨头nVIDIA推出了一系列集成显示芯片的主板芯片组,并扬言未来所有nVIDIA芯片组中都将集成显示芯片,实际上也反映出了主板全面集成的一种趋势。 5、CPU、内存、显卡、声卡、网卡以及其它各种功能卡的芯片均设计成微型插卡式,可以非常方便的更换。届时,升级电脑硬件易如反掌,譬如,升级显卡,只需简单的更换一块显示芯片,就如更换手机卡般方便,连三岁小孩都能轻易做到。当然,这一点有待于各硬件厂商形成统一的标准和规范后才能实现,估计也是各项中最难以付诸实施的。 6、所有软件,包括个性化的操作系统、应用程序、数据等均保存在外插式的带有密码保护的闪存(U盘)中,电脑主机除了主板BIOS上固化了简单的系统引导程序以外,不再需要内置大容量的存储设备,操作系统和数据同样为用户随身携带。这样,移动资料异常方便,安全保密更胜一筹。 综上所述,整个电脑硬件系统其实是PC和移动PC思路的发展,使PC成为更个性化也更通用,更简洁也更经济的电脑系统。 ”
27
烤面包的由来
“烤面包是由一位法国人Grard Depardieu于1491年发明的,发明的原因其实是因为“意外”,是因为别的原因而发现了另一个更好的东西,而这位先生一直想要发明一种机器可以把一片一片的面包变成黄金,后来被法国国王知道了,国王限他两个星期要把这种可以把面包变成黄金的机器发明出来,当然,最后他并没有成功发明,最后只好拿着面包和烤面包机硬著头皮去见国王。 当面包从烤土司机器中跳出来时,大家一看也知道那不是黄金,这位先生差点要被砍头了,临门一脚,在土司上放了奶酪献给国王吃。 国王吃了之后,觉得真是美味,简直比黄金更有价值,于是没有砍他的头,并且命名为这种面包为“土司”(Toast)。 Toast是这位国王的女儿的名字,因此,就有了吐司的名称。 面包相关 曾经有人问爱因斯坦:“世界上最伟大的发明是什么?”他毫不犹豫地回答道:“面包!” 面包是由古代埃及人和巴比伦人发明的。最初,他们将面粉和入水和盐制成面包,但由于面团没有经过发酵,所以这种面包又干又硬。后来,埃及人在无意中将和好的面团放置在阳光下,面团受热后便自行发酵,这时再把面团放在火上烤熟,做出来的面包就变得松软可口了。 后来,埃及人的面包自然发酵技术传入了希腊和罗马。公元前5世纪,欧洲一些城市相继出现了专业的面包作坊。公元14世纪,面包烤炉在欧洲问世,这大大减轻了制作面包的劳动强度。17世纪,荷兰人雷文虎又发现了酵母菌,从此,用酵母菌发酵的面包制作法便流行于欧洲。18世纪以来,随着机器和电力的出现,面包的生产进入了机械化和自动化的工业时代。 面包按口味可分为咸面包和甜面包,按用途可分为主食面包和点心面包,按形态可分为长形、圆形、长方形、棍形和花形等面包,按原料可分为全麦、黑麦、土豆、棉子蛋白等面包,按添加物又可分为牛奶、果酱、维生素、葡萄糖、夹肉等面包,但习惯上人们主要按照烘烤方式将面包分为软面包和硬面包两大类。 软面包制作时需将发酵面团装入一定形态的烤听内饧发,然后再放入烤箱内烤制而成;硬面包制作时不需要烤听,只需将揉成一定形状的面包坯直接放在烤盘上,饧发后再放入烤箱中烤熟。 面包家族中又出现了许多新面孔,如大豆面包、蔬菜面包、蘑菇面包、学生午餐面包等等。 在西方,面包被誉为“食品之母”。人们为了将面包做得又好吃又好看,而且富于营养,便在面包的造型上大动脑筋,并且有意地在面包中添加各种东西或想方设法变换面包的馅心,但最终还是脱离不了面包的本来面目。另外,当今流行的三明治、汉堡包、热狗等,也都是从面包中派生出来的。”
26
main、major、chief、primary、principal、prime的区别
“六个常用于表示 “主要的”意思的形容词。 main 普通用词,指在一系列事物中,其数量,功能、重要性都大于其他同类事物,通常只用作定语。 1)The main difficulty with the project is that the geological structure ...”
21
澳洲移民:绿卡、永居、国籍有什么区别?
“对于澳洲移民,大家也许频繁地听到“绿卡”和“永居”这两个词,但刚刚接触的人总是分不清这两者和“澳洲国籍”的关系,总以为拿到了绿卡就成了澳洲的公民,但其实并非如此。 “绿卡”一词的来源,是由于美国给永久居留者发放的证件是绿色的,故中国人习惯将所有国外的居留权称为“绿卡”。但永久居民必须满足一定条件方能申请该国的公民资格,即获得该国的国籍。也就是说,拿到“绿卡”就相当于拿到“永居身份”,那么澳洲“永居身份”和“国籍”之间有何差别待遇呢? “绿卡”=“永居身份”? 永久居留的英文是Permanent Residence,所以通常也称为PR。永久居留是一种权利,这种权利让获得永久居留权的人可以在该国永远居住下去,并在许多方面与该国公民享受同等待遇。澳大利亚的永久居留权实际是用一张永久居留签证贴在原居住国护照上来体现的。永久居留签证除了可以让你永远居住在澳大利亚,并可以在5年时间内自由地、无限次地往返于澳大利亚。同时,澳大利亚永久居留签证持有者可以自由地到新西兰定居,享有新西兰绿卡的所有权利。从福利政策的角度来说,新的永久居留签证持有者在最初2年内不得申请失业救济、紧急综合救济和学生津贴,其他福利都一样,如免费中小学教育、学生贷款、免费医疗等。在持有绿卡2年后,就可以享受所有福利。 永久居民与公民权利有不同 澳大利亚永久居民与公民享受权利的不同主要体现在五个方面:一是选举权;二是被选举权;三是参军;四是被选为陪审团成员;五是从事政府的某些特殊工作(如情报人员)。这五项权利或义务,永久居民没有,公民才有。 另外,绿卡一般只允许持有者5年内出入澳大利亚,期满后必须续签,条件是在过去5年内必须在澳大利亚住满2年。而一旦拿到澳大利亚国籍,不管是否住在澳大利亚,都将终生保持澳洲公民身份,并受澳大利亚海外领馆保护。绿卡持有者如在澳大利亚被判刑12个月以上,将被取消绿卡,而澳大利亚国籍是不能被取消的;如果父母双方有一方是澳大利亚绿卡持有者,如孩子在澳大利亚出生,那么孩子生下来就是澳大利亚公民;如孩子在中国出生,那么孩子是中国公民,当然可以以后申请澳大利亚绿卡。如果父母双方有一方是澳大利亚公民,不管孩子在那儿出生(如中国),孩子生下来就是澳大利亚公民。澳大利亚对新移民的居住要求较宽松,一个家庭只须一人住满所须居住要求即可全家获签证延期。所以获得澳大利亚永久居民签证后可先到澳大利亚作第一次入境,其后可按个人需要前往其它国家发展,5年内随时赴澳定居即可。 ”
17
俯卧撑抬头练胸 低头练腹
“俯卧撑是人们经常做的健身运动,其主要作用是提高上肢、胸部、腰背和腹部肌肉力量。它无须器械,所占空间又小,是简单易行而又十分有效的力量训练手段。但是麻雀虽小,五脏俱全,小小的俯卧撑也是大有学问的,不同的锻炼方法会产生不同的结果。 标准的俯卧撑,是指在做练习时,练习者的脚和手都在一个水平面上。眼向前看,保持背挺直,这种方法可以起到均衡锻炼身体肌肉的效果。 专家说,抬头和低头至关重要,它决定着身体的锻炼部位。俗话说“抬头练胸,低头练腹”,抬头时,胸部更加伸张,腹部自然用力较少;而低头时,在胸部发力的同时,腹部起到了很大的分担作用,因而腹部的肌肉能得到更多锻炼,有将军肚的人可以多尝试低头做俯卧撑。 专家说,做俯卧撑前,一定要热身,防止受伤和肌肉僵硬。根据自己的体质情况,选择适宜的练习方法,锻炼时最好循序渐进,由易到难,由少到多,由轻到重。 ”
15
什么是翻台率
“首先说一下什么是翻台率:翻台率就是一个饭店一天内每张桌子平均的使用次数。举个简单的例子,一个饭店有20张桌子,一天内饭店总共接待了70桌客人,那么这个饭店的翻台率就是3.5。 在餐饮行业,原材料成本占销售额比重平均为39.29%。也就是说,如果你今天在饭店吃饭花了100元,买到做这些饭的原材料,只需要话39元稍多。 来看看翻台率和利润率之间的关系。 假设1:在北京的繁华地段开一家饭店,500平方米,一年房租70万。请30个服务员,每个服务员月工资1300,年工资支出47万。水电费节约一点,支出7万。 假设2:饭店40张桌子,每桌消费平均消费150元,每天翻两次台。也就是说,平均中午晚上每张桌子都被使用一次。 结论1:年营收:40 * 2 * 150 * 365 = 438万;年原料支出175万,房租和工资支出124万,盈利139万。 结论2:在假设2的基础上,每张桌子每翻台多一次,将多营收219万,多赢利131万。(60%的超额营收转化为利润) 看起来钱很容易嘛...不过请看假设3: 假设3:假设一天之内,只有20桌客人前来用餐,也就是说,翻台率0.5。桌平均消费仍然是150元。 结论3:年营收:109万,原料支出43.6万,房租和工资支出124万,亏损58.6万。 胡闹胡闹,也许你会说,谁家每天20桌客人,还要请30个服务员?10个足够了。唉,就算10个服务员,房租总少不掉吧... 注1:你尽可以怀疑里面任何一个数字,我只是想说明一个概念,就是翻台率。 注2:本文疑似采用(利润额/营业额)作为 利润率 的计算公式,如果不当,请包涵。 ”
NoSQL起步台阶:简单的Redis
“NoSQL正试图打破关系数据型数据库一统天下的局面。Redis也是NoSQL的一种尝试。Redis是什么?其网站上如是说: A persistent key-value database with built-in net interface written in ANSI-C for Posix systems Redis最值得拿出来说事的优点就是“快”!Github就用了Redis为自己加速。 我们选择下载稳定的发布版: http://code.google.com/p/redis/downloads/list 也可以直接获取源码: http://github.com/antirez/redis 现在的redis与一般的C开源项目相比,非常简单,只有很少的一些文件。它的构建过程也不像其它的项目那些,需要先配置再构建。它只有一个简单的makefile,构建它,只要make一下即可。当然,正如其声称的那样,目前redis只是为Posix系统而打造,所以,如果想在Windows上构建,也许Cygwin是个选择。 先来做一下简单的体验,启动redis的服务器端: > ./redis-server redis本身还附带了一个命令行的客户端,用它就可以对redis本身进行测试: > ...”
11
Nginx 日志文件切割
“偶然发现access.log有21G大,所以将其切割。 Nginx 是一个非常轻量的 Web 服务器,体积小、性能高、速度快等诸多优点。但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理。当然了,我们也不希望看到这么庞大的一个访问日志文件,那需要手动对这个文件进行切割。 在 Linux 平台上 Shell 脚本丰富,使用 Shell 脚本加 crontab 命令能非常方便地进行切割,但在 Windows 平台上就麻烦一些了,刚才弄了好长时间,就在这里记录整理一下。 日志文件切割要求 由于 ...”
07
Redis安装
“准备部分: 什么是redis? Redis是REmote DIctionary Server的缩写。一个非关系型数据库 为什么要用redis? 1, 因为redis快,Redis is pretty fast!, 110000 SETs/second, 81000 GETs/second 2, 省去了复杂的SQL。 3, 可以省去memcache了。 开始: 下载redis: 可以在redis的官网下载 : http://redis.io/ 也可以去谷歌的code下载: http://code.google.com/p/redis/downloads/list 谷歌code是一个版本列表,在列表里找出你想要安装的redis版本。这里我选择安装的是最新的2.0.4稳定版: redis-2.0.4.tar.gz (在2.0以上版本中,增加了VM(Virtual ...”
06
简述 MySQL 发展史
“MySQL的历史最早可以追溯到1979年,那时Oracle也才小打小闹,微软的SQL Server影子都没有。Monty Widenius在其合伙的TcX小公司工作时,用BASIC设计了一个报表工具,可以在4M主频和16KB内在的计算机上运行。随着时间的推移,这个小工具被用C重写并迁移到Unix上运行。当时,它只是一个很底层的面向报表的存储引擎,再配上一个报表前端。它就是大家知道的Unireg。 1990年,该公司的客户急切要求访问其数据的SQL接口,TcX提出其中一方案是把数据都加载进一个商用数据库。但Monty对这个方案的执行速度并不满意。他尝试将mSQL的代码用做SQL层,并用自己的低层级的存储引擎集成进来,但效果也不好。于是, Monty决心自己重写一个SQL。 1996年,MySQL 1.0发布,只面向一小拨人。同年10月,MySQL 3.11.1发布,只提供了Solaris下的二进制版本。一个月后,Linux二进制包也发布。 此时的MySQL还非常简陋,除了在一个表上做一些Insert,Update,Delete和Select 操作,没有其他更多的功能。 接下来的两年里,MySQL依次移植到各个平台下。它发布时,采用的许可策略,有些与众不同:允许免费商用,但是不能将MySQL与自己的产品绑定在一起发布。如果想一起发布,就必须使用特殊许可,意味着要花银子。 MySQL3.22应该是一个标志性的版本,提供了基本的SQL支持。还带有一个复杂的优化器,新版本速度很快,且非常稳定。尽管如此,它还是不支持事务、子查询、外键、存储过程和视图,只存在表级别的锁。 1999-2000,一个名叫MySQL AB的独立公司成立了(Monty Widenius也作为创始人之一),它聘请了几位开发者并与Sleepycat公司建立合作伙伴关系,提供访问Berkeley DB数据文件的SQL接口。自从Berkeley DB具备事务功能之后,它就赋于了MySQL支持事务的特质,补上了它的短板。在为集成的Berkeley DB做了一些修改之后,MySQL 3.23发布了。 2000 年,MySQL ...”
PostgreSQL简介
“上个周末,无聊的时候关注了一下PostgreSQL。第一次尝试去安装PostgreSQL,还是好几年前的事了,那是8.0版本刚出来,终于开始原生的支持windows了,所以在自己电脑上折腾了一个。不过那时候也仅限于安装了一次而已,甚至psql的命令行都不知道怎么用。 同样作为开源关系型数据库,MySQL在这几年获得了更多的关注。大量的互联网公司都基于MySQL来构架系统,也导致MySQL DBA开始火热,一大堆年轻有为的同学投入到其中,渐成燎原之势。MySQL数据库火热了,MySQL AB公司却被sun收购,现在又随着sun要投入Oracle的怀抱,而且欧盟已经无条件批准这个收购,只剩下中国和俄罗斯,大局已定。作为商业数据库的绝对老大,Oracle的这次收购,让MySQL的支持者感到了威胁,其创始人甚至发起了一场保护MySQL(有墙),阻击Oracle收购的运动。 这也是PostgreSQL的机会,最近PostgreSQL的开发节奏很快,8.5已经连续出到了alpha3版,在这个版本中,最吸引我的是hot standby,类似于Oracle11g的active data guard,hot standby也可以在恢复的同时提供读服务,而以往版本,PostgreSQL的物理备库warm standby,则只能处于恢复状态,一旦open,则需要重做,比较痛苦。PostgreSQL的很多特性,都和Oracle相当的类似,甚至有一家商业化的公司EnterpriseDB,在致力于将PostgreSQL打包,使得应用程序从Oracle迁移到PostgreSQL更方便,据说80%的Oracle应用代码甚至不需要做修改就能在PostgreSQL运行。因此,我在twitter上说,如果PostgreSQL在人机交互的工具和配置部分,能够更加友好一点,完全是一个影子版本的Oracle。 PostgreSQL也支持mvcc多版本一致性控制。不过其实现的机制和Oracle的不一样。Oracle是将变化的前映像记录到单独的undo段中,而PostgreSQL则只是将前映像(Tuples)上做个标记,如果是delete,则相当于是逻辑删除,实际的数据还是在原来的段中,如果是insert,相当于先delete,再insert,而且会在原来的记录上加一条指向新记录的指针,形成一个链表,查询的时候需要沿着这个链表找到一致的数据。这样会造成一个问题,一段时间以后,dml操作使得数据段和索引段中都有大量的前映像信息存在,会严重影响数据查询的效率。PostgreSQL的mvcc的这种实现方式,带来的一个好处是回滚非常快,只需要修改前映像上的几个标志位即可,而不像oracle需要从undo段将前映像再复制回来。但是,这种方便回滚,却会损失查询性能的设计思路,真的比较诡异。PostgreSQL中有一个专门用来清理这些旧版本数据的程序,叫做vacuum。在以前的版本中,需要定期执行vacuum来优化数据存储结构。这对于DBA来说,无疑是一件痛苦的事情。直到8.1版本,引入了autovacuum,系统可以自动来进行这些清理工作,终于人性化了一点点。 在8.3版本,引入了一个新的特性HOT(Heap Only Tuples),主要的目的是努力避免update造成的性能低下的问题。其实这个HOT,说白了很简单,对于update,要实现mvcc,其机制还是一样的,区别在于select,在沿着链表找一致性数据的过程中,如果发现这个检查过的版本已经没有任何事物在引用了,就会顺便把清理工作做掉,而不是像以前要等vacuum来做。因此这会加大一点select的压力,但前人栽树,后人乘凉,接下来需要访问这些数据的其他select就会快很多了,这和Oracle的延迟块清除其实有些类似的,当然两者的设计目的并不一样。 http://www.ningoo.net/html/2010/introduce_to_postgresql.html ”
车检流程总结
“新车二年马上到了检车的最后期限,想着新车应没问题吧,决定自助检车,亲身体验一下检车过程。上行开车去外环检车处,见到院中已经有很多车了,是不是平时都这样。不知道如何进行,需要从网上看到一些流程,但到实际如何去做还得问问。下面呢,是自己的一检过车后的所得,供未检过车的参考。 一、交费、照相、观查验 应把车先停在大厅的北边,哪里分大车和小车,哪是先检尾气的,小车是外侧,两个车道。先去大厅去交费一百二十元,领三张表,一张带条形码的机打收据,不干胶拓号标签,注意保管好;埴写一下车牌申领登记表,当时感觉这表没用,就没有填,但后面还要用到,哪里有一项是检车的,写上。 二、到北侧找照相的人,拿着相机,穿着制服的,有的是协管类,照相得盯着找人,照完之后他给你一个序号,一定要记住(当时我差点忘记)。三角警示牌是必须的。如果照不清的话,上传后得重照,耽误时间。 把不干胶拓号标签粘到车架号上,用手指甲刮正面会变黑显示出车架号,揭下来贴在《申请表》下方的位置上。 把材料交给负责查验外观的协管员,并签字。拿着材料去检车大厅旁边西侧着外观查验的屋子,盖章 三、尾气检测: 进入检测线前,后来有人告诉自己要大脚踩几下油门,并且在检车前最好是换上高标号汽油,跑一段时间,当时自己不知道,结果悲惨的差一点没过,还得费事。这个时候,如果找人了就好过了,不找人得听天由命了。 如果是合格会告诉你,一会到大厅中环保处领合格检测报告和环保标志。 四、上检测线 1、从尾气检测出来,顺序排队进行车况等其它方面安检,就是南侧哪一排房子,是在检测线入口停车,交相关材料,把车交给检测员上线; 2、在检测线出口接车,停好,回出口领取检测报告。 五、领车标 进入检车大厅,领环保标,打印环保报告,然后去13号窗口交上材料上传材料,这时候要等着了,等约一个小时左右,如果线上审核完毕就给打印副页,打印标,给了就完成。 ”
北京车检新规
“在交通拥挤的北京,拥有一辆爱车可不是一件容易事,从考驾照到为爱车上车牌,一样样下来就好像西天取经一样费心费力,2014年北京又出台了北京汽车年检新规定,不过这个规定对我们来说确实一件值得利好的事情,那么北京汽车年检新规定是什么呢?具体规定内容细则又是什么呢?您的爱车符不符合免检车辆的新规定呢?现在小编就带您一起了解一下北京汽车年检新规定。 2014年 5月16日,公安部、国家质检总局联合公布《关于加强和改进机动车检验工作的意见》,这使得车辆检验发生了新变化,2014年9月1日起将试行北京汽车年检新规定,新规中规定6年内私家小汽车免去上线检测。此举可以说大大改变了我国私家车年检格局。那您的爱车符合北京汽车年检新规定吗?下面小编就给大家总结一下具体细则。 1、什么样的汽车可以6年内免检。2014年9月1日之后,6年以内在用私家车,面包车、7座及7座以上车辆不包含在此。且时间节点必须是2010年9月1日之后注册等级的私家小汽车,2010年8月31日之前注册等级的私家小汽车还是要之行原检验规定哦! 值得注意的是如果6年期间发生造成人员伤亡产生交通故事的车辆不符合免检规则而且所有新出厂的小轿车以及其他小型客车,在办理机动车注册登机前免于检验,出场后2年内没有申请注册等级或注册登机前发生交通事故的不能免检,让在进行安全技术检验。 2、每两年人需要申领检验标志。那么申领检验标志的时候都需要提供那些材料呢小编给大家总结一下。 (1)车主需要提供相关部门开具的无交通违法记录证明。 (2)车主需要提供交通事故责任强制保险缴纳收据以及车船税证明。 3、超出6年后仍然需要上线检测。在我们体会了6年的免检政策之后,北京汽车年检新规定也有6年后需上线检测的规定哦,具体细则是,6年至15年的汽车需要每年上线检测一次,15年以上的汽车需要每半年上线检测一次。 4、检车不排队的好时间段。根据小编调查统计,每年3、4、9、10四个月,每周二至周四,是前来年检的车辆相对较少的时间段哦!并且车辆年检可提前3个月进行,假如您不想把时间浪费在漫长的排队等候上,建议您合理调配好时间,错开车辆年检的高峰期。 上文介绍了北京汽车年检新规定您都了解了吗?看完了如此详细的介绍您是不是对你的爱车检测方面的事项了然于心了呢?您是不是很高兴这项规定给您带来的利好,让您的新车免去了检测排队的苦恼呢,随然我们省去了检测车辆的麻烦,但是小编还是要提醒您爱车的保养也不能疏忽哦!如果您还有什么关于北京汽车年检新规定方面,不了解的问题,欢迎随时咨询小编,小编一定尽力解答哦! ”
nginx安装总结
“总结一下nginx的安装过程。 1.环境准备 yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl openssl--devel pcre ...”
如何查看Nginx的版本
“怎么查看服务器上安装的nginx版本号,主要是通过ngix的-v或-V选项,如下所示: # ./nginx -v nginx version: nginx/1.8.1 # ./nginx -V nginx version: nginx/1.8.1 built by gcc 4.4.7 20120313 (Red Hat ...”
05
会计分录(Accounting Entry)概念总结
“什么是会计分录? 简称“分录”。按照复式记账的要求,对每项经济业务以账户名称、记账方向和金额反映账户间对应关系的记录。在借贷记账法下,则是指对每笔经济业务列示其应借和应贷账户的名称及其金额的一种记录。例如,从银行提取现金500元的会计分录为: 借:现金  500 贷:银行存款  500 会计分录的格式和要求 先借后贷;借和贷要分行写,并且文字和金额的数字都应错开;在一借多贷或一贷多借的情况下,要求借方或贷方的文字和金额数字必须对齐。 会计分录方法 一、层析法:层析法是指将事物的发展过程划分为若干个阶段和层次,逐层递进分析,从而最终得出结果的一种解决问题的方法。利用层析法进行编制会计分录教学直观、清晰,能够取得理想的教学效果,其步骤如下: 1、分析列出经济业务中所涉及的会计科目。 2、分析会计科目的性质,如资产类科目、负债类科目等。 3、分析各会计科目的金额增减变动情况。 4、根据步骤2、3结合各类账户的借贷方所反映的经济内容(增加或减少),来判断会计科目的方向。 5、根据有借必有贷,借贷必相等的记账规则,编制会计分录。 此种方法对于学生能够准确知道会计业务所涉及的会计科目非常有效,并且较适用于单个会计分录的编制。 二、业务链法:所谓业务链法就是指根据会计业务发生的先后顺序,组成一条连续的业务链,前后业务之间会计分录之间存在的一种相连的关系进行会计分录的编制。 此种方法对于连续性的经济业务比较有效,特别是针对于容易搞错记账方向效果更加明显。 三、记账规则法:所谓记账规则法就是指利用记账规则“有借必有贷,借贷必相等”进行编制会计分录。 会计分录的编制方法 初学者在编制会计分录时,可以按以下步骤进行: 第一:涉及的账户,分析经济业务涉及到哪些账户发生变化; 第二:账户的性质,分析涉及的这些账户的性质,即它们各属于什么会计要素,位于会计等式的左边还是右边; 第三:增减变化情况,分析确定这些账户是增加了还是减少了;增减金额是多少; 第四:记账方向,根据账户的性质及其增减变化情况,确定分别记入账户的借方或贷方; 最后,根据会计分录的格式要求,编制完整的会计分录。 会计分录的编制格式 第一:应是先借后贷,借贷分行,借方在上,贷方在下; 第二:贷方记账符号、账户、金额都要比借方退后一格,表明借方在左,贷方在右。 会计分录的种类包括简单分录和复合分录两种,其中简单分录即一借一贷的分录;复合分录则是一借多贷分录、多借一贷以及多借多贷分录。 需要指出的是,为了保持账户对应关系的清楚,一般不宜把不同经济业务合并在一起,编制多借多贷的会计分录。但在某些特殊情况下为了反映经济业务的全貌,也可以编制多借多贷的会计分录。 会计分录的运用 会计分录在实际工作中,是通过填制记账凭证来实现的,它是保证会计记录正确可靠的重要环节。会计核算中,不论发生什么样的经济业务,都需要在登记账户以前,按照记账规则,通过填制记账凭证来确定经济业务的会计分,以便正确地进行账户记录和事后检查。会计分录有简单分录和复合分录两种。 ”
01
ofbiz 简介
“What, Why and How OFBiz? ----Jackyliu@digitalrev.com 2010-6-30 OFBiz(Open for business), 开源的电子商务系统,基于JAVA开发,功能强大,可扩展性强。 官网:http://ofbiz.apache.org/ 1.为什么使用OFBiz呢? 首先 OFBiz 是开源的,集成了很多优秀的开源技术: Ant , Freemarker , ...”
6月
30
瞬间搞懂:O2O、B2C、B2B、C2C、P2P
“P2P、P2C 、O2O 、B2C、b2b、 C2C,每天看着这些常见又陌生的名词,如果有人跟你说让你解释它的含义,金融的小伙伴们是不是瞬间石化了,是不是欲言又止了,哑口无言了,它的概念意义你真的懂吗?来吧,跟着小编一起来真正的了解下它们的含义和区别吧! P2P到底是什么呢? P2P借贷是一种将非常小额度的资金聚集起来借贷给有资金需求人群的一种民间小额借贷模式。P2P是“Peer-to-Peer”的简写,个人对个人的意思,P2P借贷指个人通过第三方平台(P2P公司)在收取一定服务费用的前提下向其他个人提供小额借贷的金融模式。 P2P模式 第一种是纯线上模式,是纯粹的P2P,在这种平台模式上纯粹进行信息匹配,帮助资金借贷双方更好的进行资金匹配,但缺点明显,这种线上模式并不参与担保; 第二种是债权转让模式,平台本身先行放贷,再将债权放到平台进行转让,很明显能让企业提高融资端的工作效率,但容易出现资金池,不能让资金充分发挥效益。 O2O到底是什么呢? O2O是目前微信二维码营销的超火概念,即Online To Offline,也即将线下商务的机会与互联网结合在了一起,让互联网成为线下交易的前台。 这样线下服务就可以用线上来揽客,消费者可以用线上来筛选服务,还有成交可以在线上结算,很快达到规模。 该模式最重要的特点是:推广效果可查,每笔交易可跟踪。 目前广义的O2O代表着Online&Offline O2O的优势 O2O的优势在于把网上和网下的优势完美结合。通过网购导购机,把互联网与地面店完美对接,实现互联网落地。让消费者在享受线上优惠价格的同时,又可享受线下贴身的服务。同时,O2O模式还可实现不同商家的联盟。 O2O营销模式的核心 O2O营销模式的核心是在线预付,在线支付不仅是支付本身的完成,是某次消费得以最终形成的唯一标志,更是消费数据唯一可靠的考核标准。其是对提供online服务的互联网专业公司而言,只有用户在线上完成支付,自身才可能从中获得效益, B2C的概念 B2C是Business-to-Customer的缩写,而其中文简称为“商对客”。“商对客”是电子商务的一种模式,也就是通常说的商业零售,直接面向消费者销售产品和服务。这种形式的电子商务一般以网络零售业为主,主要借助于互联网开展在线销售活动。B2C即企业通过互联网为消费者提供一个新型的购物环境——网上商店,消费者通过网络在网上购物、在网上支付。 网站组成 B2C电子商务网站由三个基本部分组成: 1、为顾客提供在线购物场所的商场网站; 2、负责为客户所购商品进行配送的配送系统; 3、负责顾客身份的确认及货款结算的银行及认证系统。 代表网站: 天猫——为人服务做平台 京东——自主经营卖产品 凡客——自产自销做品牌 B2B概念 B2B(企业对企业的电子商务模式) B2B(也有写成BTB)是指企业对企业之间的营销关系,它将企业内部网,通过B2B网站与客户紧密结合起来,通过网络的快速反应,为客户提供更好的服务,从而促进企业的业务发展(Business Development)。近年来B2B发展势头迅猛,趋于成熟。 B2B是指进行电子商务交易的供需双方都是商家(或企业、公司),她(他)们使用了互联网的技术或各种商务网络平台,完成商务交易的过程。电子商务是现代B2Bmarketing的一种具体主要的表现形式。 含有三要素 1.买卖:B2B网站平台为消费者提供质优价廉的商品,吸引消费者购买的同时促使更多商家的入驻。 2.合作:与物流公司建立合作关系,为消费者的购买行为提供最终保障,这是B2B平台硬性条件之一。 3.服务:物流主要是为消费者提供购买服务,从而实现再一次的交易。 代表网站 阿里巴巴  阿里巴巴是国内也是全球最大的B2B电子商务网站。是中小企业首选的B2B平台,主要提供“诚信通”服务,但由于所有用户基本上都是“诚信通”客户。所以没有专业的电子商务运营能力和做阿里巴巴的其它推广业务,很难取得显著效果。 中国制造网 中国制造网是B2B电子商务行业网站后起之秀,干净的网站风格,实用的网站类容,深受用户喜爱。虽然位居中国B2B网站行业第三位,但由于“百销通”付费用户还不算多,听说效果还算不错,推荐做电子商务的企业尝试一下。 中国供应商 是由中国互联网新闻中心主办的B2B贸易平台。提供多种样式的广告服务,但网站以免费普通会员居多,好好运营商铺,效果还可以。反正不要钱,建议多注册一个B2B平台尝试一下。 C2C的概念 c2c实际是电子商务的专业用语,是个人与个人之间的电子商务。c2c即消费者间 ,因为英文中的2的发音同to,所以c to c简写为c2c。c指的是消费者,因为消费者的英文单词是Customer(Consumer),所以简写为c,而C2C即 Customer(Consumer) to Customer(Consumer)。C2C的意思就是个人与个人之间的电子商务。比如一个消费者有一台电脑,通过网络进行交易,把它出售给另外一个消费者,此种交易类型就称为C2C电子商务。 代表网站: 淘宝网 易趣网 ...”
28
JavaScript数组内置排序函数
“javascript内置的sort函数是多种排序算法的集合 JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。 sort() 方法用于对数组的元素进行排序。语法如下: ArrayObject.sort(order); 测试A: var mm=; mm.sort(); alert(mm);//0 1 1 2 3 4 6 返回值为对数组的引用。请注意,数组在原数组上进行排序,不生成副本。 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下: •若 a 小于 b,在排序后的数组中 ...”
24
redis-sentinel 做HA
“基本介绍 本文基于redis-2.8.10和jedis2.4.2版本。 redis 2.8之后的版本 开始支持Sentinel监听客户端功能。使用1个或多个的Sentinel作为一个监听的集群。 后端N个(master+slave)组成一个redis集群。 Sentinel通过检测Redis的master实例是否存活,并在Redis master实例发生故障时,将Redis master的slave提升为master, 并在老的master重新加入到redis sentinel的群集之后,会被重新配置,作为新master的slave。 这意味着基于redis sentinel的HA群集是能够自我管理的! 应用通过sentinel可以动态的得到当前master的连接,而不是直接在应该中配置写死的master的IP和端口。 这样就避免了master,slave切换后应用配置的连接不可用的情况。 安装配置 http://download.redis.io/releases/redis-2.8.17.tar.gz 1.安装redis: tar zxvf redis-2.8.17.tar.gz (要先安装tcl) cd redis-2.8.8 (查看Liunx版本方式:getconf LONG_BIT) 如果是32位: make CFLAGS="-march=i686" 如果是64位: make 要是编译失败(make clean) cd src make ...”
武汉发生蜱虫咬人事件 女白领被迫挖肉取虫
“夏天才刚开始,蜱虫就开始偷袭换上清凉装的市民。连日来,协和医院、武汉市中心医院和武汉市医疗救治中心等多家医院共收治多例被蜱虫咬伤病人,其中华中科技大学两名学生在校内被咬伤。据有关专家称,蜱虫在武汉市区咬人非常少见。 华科三学子被蜱虫咬伤 近来在华中科技大学的多个学生网络群里,常见关于谨防蜱虫叮咬的提示。据了解,近日该校有3人遭受蜱虫叮咬,其中两人是在校内被咬的。 据介绍,三名学生在就诊前分别去过学校东操场、喻家山及校外的森林公园。其中一人为了踢球,把衣物随意放置在东操场的草地上,踢完球后直接拿起来穿上身,结果遭到蜱虫叮咬。幸运的是,三名学生在就诊时都没有出现全身症状,在校医院做简单处理后,又转至协和医院做进一步治疗。目前三人状况良好,生活正常。 该校医院杨医生表示,她在校医院工作十多年来,这还是第一次遇到蜱虫咬人的病例。 据协和医院急诊科孙鹏博士和武汉市中心医院急诊科主任艾芬介绍,他俩从未接诊过在武汉市内被蜱虫叮咬的病人。近年来蜱虫咬人多发生在山区,在武汉市区发生的还未听说过。 女白领被迫挖肉取虫 相对三名学子,43岁的胡女士就没这么幸运了。去爬山游玩归来后,她被一只蜱虫叮了几天才发觉,前天不得不做手术。 胡女士在一家公司上班,端午小长假第一天和同事去神农架爬山。当晚她用手摸到后腰上有个圆圆的小包,大约有小指甲盖大小,她请同事帮忙瞧瞧,同事看了说“是个黑痣”。 回到武汉后,胡女士一直纳闷,怎么平白多了这么大一颗痣?她甚至猜测是不是得了黑色素瘤,便让老公细细看。老公举着手电筒照了半天,突然惊叫:“这东西是活的!”胡女士吓得差点直接晕倒。 6月2日一早,胡女士赶到武汉市中心医院急诊科求治。医生检查确认,这颗活的“黑痣”就是蜱虫。蜱虫的头部和两只“脚”已经深深埋入她的皮肤,周围的皮肤组织已经出现感染和红肿,如果放任不管它会越钻越深。 急诊科主任艾芬介绍,在充分考虑了蜱虫的特点和危害后,当天医生花了2个小时为胡女士做了扩创取异物切除术,小心挖除部分感染组织,蜱虫取下来时还是活的。随后胡女士接受清创消毒,缝合伤口后平安回家。 万一被咬别用手拔 省疾病预防控制中心传染病防治所专家熊进峰介绍,蜱虫喜欢找刁位置叮咬,一般选择皮肤较薄、不易被搔挠的部位,如人的颈部、耳后、腋窝、大腿内侧等。 在叮咬人时,它散发一种麻醉物质,然后将头、螯肢埋在人的皮肤内吸血,可造成局部充血、水肿、急性炎症反应,还可引起继发性感染。有些蜱虫在叮刺吸血过程中,其唾液还会分泌神经毒素,可导致人的运动性纤维传导障碍,引发呼吸衰竭甚至死亡。 熊进峰说,蜱虫咬人后,必须尽快取出,若任其叮咬,轻者数年内遇阴雨天气,患处便瘙痒难忍;重者,高烧不退、深度昏迷、抽搐,引起类似流感或登革热的出血热及脑炎。 他特别强调,一旦被蜱虫叮咬,千万不可生拉硬拽、强行拔除,也不能用手指将其捏碎。应该用酒精、煤油、松节油涂在蜱虫头部,或在蜱虫旁点蚊香,把蜱虫“麻醉”,让它自行松口;或用液体石蜡、甘油厚涂蜱虫头部,使其窒息松口。 武汉市中心医院急诊科主任艾芬还指出,也有人在被蜱虫叮咬后没有任何症状,但这样也不可掉以轻心,因为发病的潜伏期可长达一个多月。 四类人要防蜱虫 熊进峰介绍,蜱虫一般活跃在夏季,武汉入夏早,一般5月份蜱虫就开始活跃了。 蜱虫主要栖息在草地、树林中。艾芬主任指出,常遛狗、爱钓鱼、喜野外游玩者及儿童等四类人群需要特别注意防蜱虫,因为他们经常在上述地段游玩。熊进峰表示,如果去草地、树林时,最好在暴露的皮肤上喷涂罗浮山百草油或是驱蚊液,尽量避免在野外长时间坐卧。 如果要进入已知的有蜱地区,最好穿防护服并扎紧裤脚、袖口和领口。外露部位要涂擦驱避剂(避蚊胺、避蚊酮、前胡挥发油),或将衣服用驱避剂浸泡。离开时应相互检查,切勿将蜱虫带回家。 ”
通过mysql show processlist 命令检查mysql锁的方法
“processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令。 1.进入mysql/bin目录下输入mysqladmin processlist; 2.启动mysql,输入show processlist; 如果有SUPER权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户运行的线程)。 得到数据形式如下(只截取了三条): mysql> show processlist; +-----+-------------+--------------------+-------+---------+-------+----------------------------------+---------- | Id | User | Host ...”
MySQL数据库中CHAR与VARCHAR之争
“在数据库中,字符型的数据是最多的,可以占到整个数据库的80%以上。为此正确处理字符型的数据,对于提高数据库的性能有很大的作用。在字符型数据中,用的最多的就是Char与Varchar两种类型。前面的是固定长度,而后面的是可变长度。现在我们需要考虑的是,在什么情况下使用Char字符型数据,什么情况下采用Varchar字符型数据。在这部分内容中,我就跟大家来探讨一下这个话题。 一、VARCHAR与CHAR字符型数据的差异 在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char。这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数据的保存方式来看,两者相差很大。而且其具体的实现方式,还依赖与存储引擎。我这里就以大家最常用的MYISAM存储引擎为例,谈谈这两种数据类型的差异。在后续建议中,也是针对这种存储类型而言的。 这里首先需要明白的一点是,这两种数据类型,无论采用哪一种存储引擎,系统存储数据的方式都是不同的。正是因为如此,我们才有必要研究两者的不同。然后在合适的情况下,采用恰当的方式。了解这一点之后,我们再来看后续的内容。 Varchar往往用来保存可变长度的字符串。简单的说,我们只是给其固定了一个最大值,然后系统会根据实际存储的数据量来分配合适的存储空间。为此相比CHAR字符数据而言,其能够比固定长度类型占用更少的存储空间。不过在实际工作中,由于某系特殊的原因,会在这里设置例外。如管理员可以根据需要指定ROW_FORMAT=FIXED选项。利用这个选项来创建MyISAM表的话,系统将会为每一行使用固定长度的空间。此时会造成存储空间的损耗。通常情况下,VARCHAR数据类型能够节约磁盘空间,为此往往认为其能够提升数据库的性能。不过这里需要注意的是,这往往是一把双刃剑。其在提升性能的同时,往往也会产生一些副作用。如因为其长度是可变的,为此在数据进行更新时可能会导致一些额外的工作。如在更改前,其字符长度是10位(Varchar规定的最长字符数假设是50位),此时系统就只给其分配10个存储的位置(假设不考虑系统自身的开销)。更改后,其数据量达到了20位。由于没有超过最大50位的限制,为此数据库还是允许其存储的。只是其原先的存储位置已经无法满足其存储的需求。此时系统就需要进行额外的操作。如根据存储引擎不同,有的会采用拆分机制,而有的则会采用分页机制。 CHAR数据类型与VARCHAR数据类型不同,其采用的是固定长度的存储方式。简单的说,就是系统总为其分配最大的存储空间。当数据保存时,即使其没有达到最大的长度,系统也会为其分配这么多的存储空间。显然,这种存储方式会造成磁盘空间的浪费。这里笔者需要提醒的一点是,当字符位数不足时,系统并不会采用空格来填充。相反,如果在保存CHAR值的时候,如果其后面有空值,系统还会自动过滤其空格。而在进行数据比较时,系统又会将空格填充到字符串的末尾。 显然,VARCHAR与CHAR两种字符型数据类型相比,最大的差异就是前者是可变长度,而后者则是固定长度。在存储时,前者会根据实际存储的数据来分配最终的存储空间。而后者则不管实际存储数据的长度,都是根据CHAR规定的长度来分配存储空间。这是否意味着CHAR的数据类型劣于VARCHAR呢?其实不然。否则的话,就没有必要存在CHAR字符类型了。虽然VARCHAR数据类型可以节省存储空间,提高数据处理的效率。但是其可变长度带来的一些负面效应,有时候会抵消其带来的优势。为此在某些情况下,还是需要使用Char数据类型。 二、项目建议 根据上面的分析,我们知道VARCHAR数据类型是一把双刃剑,其在带来性能提升的同时,也可能会存在着一些额外的消耗。我们在评估到底是使用VARCHAR数据类型还是采用CHAR数据类型时,就需要进行均衡。在实际项目中,我们会考量如下情况。 一是根据字符的长度来判断。如某个字段,像人的名字,其最长的长度也是有限的。如我们给其分配18个字符长度即可。此时虽然每个人的名字长度有可能不同,但是即使为其分配了固定长度的字符类型,即18个字符长度,最后浪费的空间也不是很大。而如果采用NVARCHAR数据类型时,万一以后需要改名,而原先的存储空间不足用来容纳新的值,反而会造成一些额外的工作。在这种情况下,进行均衡时,会认为采用CHAR固定长度的数据类型更好。在实际项目中,如果某个字段的字符长度比较短此时一般是采用固定字符长度。 二是考虑其长度的是否相近。如果某个字段其长度虽然比较长,但是其长度总是近似的,如一般在90个到100个字符之间,甚至是相同的长度。此时比较适合采用CHAR字符类型。比较典型的应用就是MD5哈希值。当利用MD5哈希值来存储用户密码时,就非常使用采用CHAR字符类型。因为其长度是相同的。另外,像用来存储用户的身份证号码等等,一般也建议使用CHAR类型的数据。 另外请大家考虑一个问题,CHAR(1)与VARCHAR(1)两这个定义,会有什么区别呢?虽然这两个都只能够用来保存单个的字符,但是VARCHAR要比CHAR多占用一个存储位置。这主要是因为使用VARCHAR数据类型时,会多用1个字节用来存储长度信息。这个管理上的开销CHAR字符类型是没有的。 三是从碎片角度进行考虑。使用CHAR字符型时,由于存储空间都是一次性分配的。为此某个字段的内容,其都是存储在一起的。单从这个角度来讲,其不存在碎片的困扰。而可变长度的字符数据类型,其存储的长度是可变的。当其更改前后数据长度不一致时,就不可避免的会出现碎片的问题。故使用可变长度的字符型数据时,数据库管理员要时不时的对碎片进行整理。如执行数据库导出导入作业,来消除碎片。 四是即使使用Varchar数据类型,也不能够太过于慷慨。这是什么意思呢?如现在用户需要存储一个地址信息。根据评估,只要使用100个字符就可以了。但是有些数据库管理员会认为,反正Varchar数据类型是根据实际的需要来分配长度的。还不如给其大一点的呢。为此他们可能会为这个字段一次性分配200个字符的存储空间。这VARCHAR(100)与VARCHAR(200)真的相同吗?结果是否定的。虽然他们用来存储90个字符的数据,其存储空间相同。但是对于内存的消耗是不同的。对于VARCHAR数据类型来说,硬盘上的存储空间虽然都是根据实际字符长度来分配存储空间的,但是对于内存来说,则不是。其时使用固定大小的内存块来保存值。简单的说,就是使用字符类型中定义的长度,即200个字符空间。显然,这对于排序或者临时表(这些内容都需要通过内存来实现)作业会产生比较大的不利影响。所以如果某些字段会涉及到文件排序或者基于磁盘的临时表时,分配VARCHAR数据类型时仍然不能够太过于慷慨。还是要评估实际需要的长度,然后选择一个最长的字段来设置字符长度。如果为了考虑冗余,可以留10%左右的字符长度。千万不能认为其为根据实际长度来分配存储空间,而随意的分配长度,或者说干脆使用最大的字符长度。 ”
对于mysql而言,tinyint(1)与tinyint(4)的区别
“答案其实很简单,但是我的几个朋友还是搞不清 MySQL 的列类型定义中长度修饰符(指TINYINT(N)中的N)的作用,所以我在这里再解释一下。我相信,这个问题的出现的根本原因将字符串列类型定义中 N 的意义挪用到了数值列类型的定义中。 VARCHAR(N) CHAR(N) 对于字符串列类型 VARCHAR(N) 和 CHAR(N)而言,N 是字段中可以存储的最大字符长度,也就是说是字段长度。根据设置,当你插入超出字段长度的数据时,你很可能会收到错误提示,即使没有收到错误提示,你插入的数据也会被自动截断以适应该字段的预定义长度。所以,VARCHAR(20) 和 VARCHAR(40) 是不同的,其真实反映了该字段可以存储的数据长度。 现在,让我们来看看数值列类型。对于数值列类型而言,其长度修饰符表示显示宽度,与该字段物理存储没有任何关系。也就是说,TINYINT(1) 和 TINYINT(4) 能够存储的数值范围都是-128..127 ...”
23
Tomcat中server.xml文件内各节点详解
“由于 Tomcat 基于 Java,实际上在各种 Linux 发行版里的配置方法都大同小异,只是我看见在 Arch Linux 环境里搭建 Tomcat 的文章比较少,所以在 Arch Linux 实践一遍然后得出此文。此文假设你对 Tomcat ...”
22
Redis Sentinel初体验
“自Redis增加Sentinel集群工具以来,本博主就从未尝试过使用该工具。最近在调研目前主流的Redis集群部署方案,所以详细地看了一遍官方对于Sentinel的介绍并在自己的台式机上完成了三Redis实例+三Sentinel实例的部署,这里做一下简单的总结。 首先,下载安装Redis。目前随Redis 2.8发布的Sentinel版本被antirez称为Sentinel 2,是在Sentinel 1的基础上重写的。因为Sentinel 1已经废弃而且BUG太多,所以antirez强烈建议将Redis和Sentinel均升级到2.8版本,本博主安装的版本为最新的2.8.17。 其次,配置并启动Redis实例。分别在6379、6380和6381三个本地端口上启动三个Redis实例,其中6379为Master,其余两个为Slave。关于Redis的主从配置这里就不再赘述了,但其中需要指出的是两个Slave在配置参数slave-priority上的区别:6380实例该配置参数为50,6381实例该配置参数为100,这样当Master挂掉的时候Sentinel会优先选择slave-priority值较小的作为新的Master。 最后,配置并启动Sentinel实例。分别在26379、26380和26381三个本地端口上启动三个Sentinel实例,这三个Sentinel实例用来监控上面已经启动的三个Redis实例。以下是26379上Sentinel实例的配置文件内容,参考官方文档仅配置几个主要的参数,其他两个实例的配置文件只是端口号和数据目录不同。 port 26379 dir /home/liangzhichao/data/redis/sentinels/26379 sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel ...”
高可用、开源的Redis缓存集群方案
“由于单台Redis服务器的内存管理能力有限,使用过大内存的Redis又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,而Redis 3.0 beta1支持的集群功能还不适合生产环境的使用。于是为了获取更好的Redis缓存性能及可用性,很多公司都研发了Redis缓存集群方案。现对NetFlix、Twitter、国内的豌豆荚在缓存集群方面的解决方案进行一个汇总,以供读者参考,具体内容如下: 1、NetFlix对Dynamo的开源通用实现Dynomite Dynomite是NetFlix对亚马逊分布式存储引擎Dynamo的一个开源通用实现,使用C/C++语言编写、以代理的方式实现的Redis缓存集群方案。Dynomite不仅能够将基于内存的Redis和Memcached打造成分布式数据库,还支持持久化的MySQL、BerkeleyDB、LevelDB等数据库,并具有简单、高效、支持跨数据中心的数据复制等优点。Dynomite的最终目标是提供数据库存储引擎不能提供的简单、高效、跨数据中心的数据复制功能。Dynomite遵循Apache License 2.0开源协议发布,更多关于Dynomite的信息请查看NetFlix技术博客对Dynomite的介绍。 2、Twitter的Redis/Memcached代理服务Twemproxy Twemproxy是一个使用C语言编写、以代理的方式实现的、轻量级的Redis代理服务器,它通过引入一个代理层,将应用程序后端的多台Redis实例进行统一管理,使应用程序只需要在Twemproxy上进行操作,而不用关心后面具体有多少个真实的Redis或Memcached实例,从而实现了基于Redis和Memcached的集群服务。当某个节点宕掉时,Twemproxy可以自动将它从集群中剔除,而当它恢复服务时,Twemproxy也会自动连接。由于是代理,所以Twemproxy会有微小的性能损失。根据 Redis作者的测试结果,在大多数情况下,Twemproxy的性能相当不错,同直接操作Redis相比,最多只有20%的性能损失。Twemproxy遵循Apache License 2.0开源协议发布,更多关于Twemproxy的信息请登录其在GitHub的主页查看。 3、豌豆荚的 Redis 集群解决方案Codis Codis是豌豆荚使用Go和C语言开发、以代理的方式实现的一个Redis分布式集群解决方案,且完全兼容Twemproxy。Twemproxy对于上一层的应用来说, 连接Codis Proxy(Redis代理服务)和连接原生的Redis服务器没有明显的区别,上一层应用能够像使用单机的 Redis一样对待。Codis底层会处理请求的转发、不停机的数据迁移等工作, 所有底层的一切处理, 对于客户端来说是透明的。总之,可以简单的认为后台连接的是一个内存无限大的Redis服务。Codis遵循MIT开源协议发布,更多关于Codis的信息请登录其在GitHub的主页查看。 另外,还有一些未开源的解决方案,比如新浪、百度、淘宝、腾讯等的Redis集群方案。在Redis官方正式推出可用于生产环境的集群方案前,以上三种方案是非常值得考虑在生产环境使用的方案。 ”
揭开Linux的Swap之谜-系统管理
“为什么选择Linux?因为Linux能让你掌握你所做的一切! 为什么痛恨Windows?因为Windows让你不知道自己在做什么! 这就是我喜欢Linux的原因。只要我愿意,我可以将底层的系统运行机制看得清清楚楚,可以掌握一切。而Windows尽管界面漂亮,却让你总也猜不透她心里想什么。我不喜欢若即若离的感觉。 如果你一看到这个标题就觉得头疼,或者对Linux的内部技术根本不关心,那么,我劝你一句:别用Linux了。你只是在追赶潮流,并不是真心喜欢它。 Linux的确没有Windows好用,可它比Windows“结实”。如果你对Linux的稳定性感兴趣,特别是想把Linux作为网站服务器的话,那就请看看下文吧! Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。 本文内容包括: Swap基本原理 突破128M Swap限制 Swap配置对性能的影响 Swap性能监视 有关Swap操作的系统命令 Swap基本原理 Swap的原理是一个较复杂的问题,需要大量的篇幅来说明。在这里只作简单的介绍,在以后的文章中将和大家详细讨论Swap实现的细节。 众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是,“虚拟内存”是隔离每个进程的安全保护网,使每个进程都不受其它程序的干扰。 Swap 空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 计算机用户会经常遇这种现象。例如,在使用Windows系统时,可以同时运行多个程序,当你切换到一个很长时间没有理会的程序时,会听到硬盘“哗哗”直响。这是因为这个程序的内存被那些频繁运行的程序给“偷走”了,放到了Swap区中。因此,一旦此程序被放置到前端,它就会从Swap区取回自己的数据,将其放进内存,然后接着运行。 需要说明一点,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap就会不堪重负),有相当一部分数据被直接交换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少要打开一个文件,那就是运行程序本身),当需要将这些程序的内存空间交换出去时,就没有必要将文件部分的数据放到 Swap空间中了,而可以直接将其放到文件里去。如果是读文件操作,那么内存数据被直接释放,不需要交换出来,因为下次需要时,可直接从文件系统恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc和new函数生成的对象的数据则不同,它们需要Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称作“匿名”(Anonymous)内存数据。这类数据还包括堆栈中的一些状态和变量数据等。所以说,Swap 空间是“匿名”数据的交换空间。 突破128M Swap限制 经常看到有些Linux(国内汉化版)安装手册上有这样的说明:Swap空间不能超过128M。为什么会有这种说法?在说明“128M”这个数字的来历之前,先给问题一个回答:现在根本不存在128M的限制!现在的限制是2G! Swap 空间是分页的,每一页的大小和内存页的大小一样,方便Swap空间和内存之间的数据交换。旧版本的Linux实现Swap空间时,用Swap空间的第一页作为所有Swap空间页的一个“位映射”(Bit map)。这就是说第一页的每一位,都对应着一页Swap空间。如果这一位是1,表示此页Swap可用;如果是0,表示此页是坏块,不能使用。这么说来,第一个Swap映射位应该是0,因为,第一页Swap是映射页。另外,最后10个映射位也被占用,用来表示Swap的版本(原来的版本是 Swap_space ,现在的版本是swapspace2)。那么,如果说一页的大小为s,这种Swap的实现方法共能管理“8 * ( ...”
一日一省linux:swap
“一、“linux native”和“linux swap” red hat linux的分区是不同于其它操作系统分区的,它的分区格式只有ext2和swap两种,ext2用于存放系统文件,swap则作为red hat linux的交换分区。那么现在我们就可以知道red hat linux至少需要两个专门的分区(linux native和linux swap)况且不能将red hat linux安装在dos/windows分区。一般来说我们将red hat linux安装一个或多个类型为“linux ...”
21
MySQL支持的数据类型总结
“MySQL支持的数据类型非常多,选择正确的数据类型对性能至关重要,本文谈谈如何正确选择MySQL的数据类型。 整数 有以下几种整数:TINYINT, SMAILLINT, MEDIUMINT, INT, BIGINT,分别使用8, 16, 24, 32, 64位存储空间。它们都有一个可选的UNSIGNED属性,表示不允许负数。 你可以为整数类型指定宽度,如INT(13),但对大多数应用来说是没有意义的,对于存储计算来说,INT(1)和INT(18)是相同的。 实数 实数是带有小数部分的数字,MySQL既支持精确类型,也支持不精确类型。 FLOAT和DOUBLE支持使用标准的浮点计算(即不精确类型),FLOAT使用4个字节,DOUBLE使用8个字节,有多种方法可以指定浮点列的精度,但这些精度都是非标准的,因此建议只指定数据类型,不指定精度。 DECIMAL用于存储精确的小数,它还可以指定小数点前后所允许的最大位数,如DECIMAL(20,2)表示小数点后面存储2个数字,小数点前面存储18个数字。很显然,DECIMAL比浮点数占用更多的空间,消耗更多的CPU,这也是为了精确表示所付出的代价。 因此,只有在必须使用精确小数的情景下(如财务)才使用DECIMAL,否则尽量使用浮点数。 字符串 MySQL支持的字符串类型比较复杂,且每个字符串列可以定义自己的字符集和排序规则。 VARCHAR: 用于存储可变长字符串。它需要使用1或2个额外字节记录字符串长度:如果列最大长度”
input的size和maxlength属性
“这些天设计表单的时候,对于input下的size和maxlength属性有些概念上的不理解,这里整理出来。 1、示例代码: 用户名: 用户名: 2、区别: maxlength="8":input输入框中只能够输入8个字符,输入8个字符后再不能输入,即最大输入字符长度(中文也算一个字符长度); size="8":表示input输入框只显示8个可见的字符,但可以输入无数多字符内容,即size属性规定输入字段的宽度。 size 属性规定输入字段的宽度。 对于 和 ,size 属性定义的是可见的字符数。而对于其他类型,size 属性定义的是以像素为单位的输入字段宽度。 3、总结: 从文档结构语义化与样式分离原则来看,由于 size 属性是一个可视化的设计属性,因此我们应建议使用 css中的width来代替它。 css 语法: 来源:http://my.oschina.net/aram/blog/143281 ”
19
查看mysql版本的四种方法
“总结一下查看MySQL版本的几个方法。 1:在终端下:mysql -V。 以下是代码片段: # mysql -V mysql Ver 14.14 Distrib 5.6.25, for linux-glibc2.5 (x86_64) using ...”
2015年北京二套房公积金贷款新政策出台
“昨日,北京住房公积金管理中心发出通知,从2015年9月14日起,申请公积金贷款买二套房,首付最低也可以低至两成。 2015年8月31日,住建部、财政部、央行联合下发通知,下调公积金二套房的首付比例。对拥有1套住房并已结清相应购房贷款的居民家庭,为改善居住条件再次申请住房公积金贷款购买住房的,最低首付款比例由30%降低至20%。不过,对北京、上海、广州、深圳这4个一线城市,三部委表示,可在国家统一政策基础上,结合本地实际,自主决定申请住房公积金贷款购买第二套住房的最低首付款比例。 北京住房公积金管理中心昨日下发了落地文件。文件中明确,对于在北京市住房和城乡建设委员会房屋交易权属信息查询系统中,显示有1套住房并已结清相应住房公积金个人贷款(含住房公积金政策性贴息贷款)购买第二套住房的借款申请人,执行第二套住房贷款政策,最低首付款比例由30%降低至20%。 记者注意到,文件中并没有提及二套房贷利率。因此,可以理解为,二套房公积金贷款仍将执行目前1.1倍利率的政策。而且,和三部委此前发布的文件略有不同,北京此次仅提及结清相应公积金贷款即可执行首付最低两成的比例,并没有包括商贷。 点评:北京获益人群不多 不过,在实际市场交易中,由于目前公积金二套房贷的最高额度仅为80万元,能同时满足首付两成且80万元额度的房屋几乎不存在。“由于北京房价较高,因此能从新政获益的人群并不多。”北京中原地产首席分析师张大伟分析说。 ”
住房公积金贷款还款及房产证解押手续
“在网上找了很久也没有找到一个很系统的,告诉住房贷款人相关还款、解押等手续的流程,因此自己办理过程中遇到很多的问题,多跑了很多的冤枉路,为避免大家同样多跑冤枉路,因此现将其整理下来,提供给大家,权当参考: 第一步:还款 银行规定不一样,以及各银行操作程序不一样,因此最好还款前能打电话向银行咨询,咨询具体需要带的证件以及材料。 现将我在建设银行还款举例如下: 第一次2006年还款时,需要提前打建设银行分行电话预约,预约完以后要去建设银行前门支行拿到预约还款通知单,预约时须带上本人身份证以及贷款合同原件,然后才能持支行开具的还款通知以及身份证和钱在指定时间内到指定银行柜台办理。 第二次还款的时候就方便多了,2007年还款,打电话咨询后只需要到指定的银行柜台办理就可以了,不用预约了。建设银行一般是每月24日之前的每周二、四才能办理(建议是提前打电话咨询一下,因为银行可能会随时调整)。 特别提请注意:去银行办理还款,最好能提前将还的钱倒到一张卡里,这样避免麻烦。一般还款柜台不办理日常人民币业务,如果带的存折,还需要到普通的窗口排队将钱划到他们指定的帐户,如果带的卡,他们还款柜台就能直接从卡里划走。不知道是为什么,反正他们就是这么操作的,为了避免麻烦,所以还是建议提前将钱倒到卡里)。 在银行还清贷款后,取得银行出具的“贷款结清证明”一式两份。 注:如果是商业贷款,还能直接从银行拿到银行收押的购房合同原件或房屋所有权证、国有土地使用证原件。如果已经办理了抵押的,购房人已经拿到了以上两证的,就需要拿到房屋他项权证以及土地他项权利证明书。住房公积金贷款这些一般在住房担保中心留存。 第二步:办理担保终结手续 如果贷款全部还完了,下一步就是去住房担保中心办理担保终结手续。 贷款担保终结手续需要到住房公积金贷保中心办理; 地址:海淀区北四环西路56号辉煌时代大厦西座7层业务大厅(具体地址就是:四环内环辅路海淀桥往中关村一桥方向大约500米,理想大厦旁边,那里都是一片新的写字楼,辉煌时代大厦名字不太明显,反正海淀桥东南辅路500米拿一些写字楼中一家华夏银行的楼就是)。 需要带的东西: 1、银行开具的贷款结清证明; 2、住房贷款合同原件; 3、借款人(主申请人)身份证明原件,由配偶或直系亲属代办的还需要出具代办人员的身份证明原件及证明双方关系的结婚证或者共同的户口本,有其他人员代办的需要出具代办人员的身份证明原件以及公证过的授权委托书; 4、担保中心开具的担保服务费发票原件; 办理时间:周一到周五 上午9:30----11:00,下午13:30-----16:00 咨询电话:62695566 62695577(后面这个电话接通率比较高) 在担保中心拿回来的东西: 1、商品房买卖合同原件(如果抵押在担保中心的可以拿回来); 2、已经办理了抵押的,拿到房屋他项权证以及土地他项权利证明书; 3、住房担保中心开具的加盖公章的:房屋他项权注销登记申请书、委托授权书、解除抵押权协议、贷款还清确认书、同意解除土地他项抵押权协议(共计5张)。 4、如果是在2004年7月1日之前办理贷款担保的,贷款结清后还可以拿到相应的担保费退费,相关退费标准及比率请去住房公积金中心网站查询。2004年7月1日以后办理的贷款提前结清的不予以退还担保费。 第三步:办理房屋所有权证以及国有土地使用证解押手续 这一步手续需要到市或者区县建委办理。 一般市属产权,都需要到北京市建委办理;区属产权直接到房产所在地区县建委办理即可。 咱们小区的房子属于市属产权,因此需要到北京市建委办理。(说明:一般房产证证号注明:京房权证市*私字第****号的,都是市属产权,若为:京房权证*私字第***号的位区县的,也就是有“市”的就是市属产权。 北京市建委地址:东城区和平里北街2号一层大厅 需要带的东西: 房产证、土地征、以及两个他项权利证还有住房担保中心开具的上面5项协议以及授权书等、还有就身份证、购房合同、贷款合同原件等只要是有关的都带上以备不时之需。 特别需要提醒的:所有市属产权的两证,因办理两证抵押时住房担保中心是委托的“中汇”(一个公司名,具体是什么我还不知道)代理的,办理时盖有他们公司的公章,因此办理解押时还需要他们的人带着章一起去,这是市建委特别规定的。这个“中汇”公司的电话是:63327890,63314889 ,需要提前和他们预约。注意是属于免费的。区县建委就不需要这个了,购房人本人或代理人自己去区县建委就能办理。 去北京市建委办完他项权利证注销,解押手续以后,全部程序就告结束。你,就真正拥有了属于你自己私人的合法房产了。 ”
15
大型公司最盛行的六大开源项目
“首先是去了解了zookeeper这个项目,基于paxos算法的分布式服务组件,同事对此有非常深入的研究和介绍,具体可以看我们的团队Blog。令我感慨的是这么一个非常难以理解的算法,却用一个简单的树状目录模型表达出来,并且在这个模型的基础上衍生出种种应用:集群感知、分布式锁、分布式队列、分布式并发原语等等,具体可以看文档给出的recipes。在实现这些应用的时候,突出强调的是避免网络风暴,例如分布式锁的实现,竞争创建子节点,节点序列号最小的获取锁,其他节点等待,但是等待在什么条件上是有讲究的,如果所有节点都等待最小节点的删除事件,那么当最小节点释放锁的时候,就需要广播消息给所有其他等待的节点;换一个思路,如果每个等待节点只是等待比它序列号小的节点上,那么就可以避免这种广播风暴,变成一个顺序唤醒的过程。因此尽管有了zookeeper帮助实现分布式这些服务,但是要实现好仍然有一定难度,具体可以参考官方例子。我本来萌生了基于zookeeper实现一套封装好的类似j.u.c的服务框架,后来在邮件列表发现已经有人搞了这么一个基础类库放在github上:https://github.com/openUtility/menagerie 。不过我没有继续深入了,有兴趣的朋友可以瞧瞧。 然后又去看了我们淘宝开源的TimeTunnel。 TimeTunnel你可以理解成一个消息中间件,它整个设计跟我们的产品相当接近,但是两者的目的完全不同,tt强调的是高吞吐量,而notify强调的则是可靠性。TT的通讯层直接采用Facebook的thrift,并且利用zookeeper做集群管理和路由。TT的代码质量很好,有兴趣可以拉出来看一下,并且对zookeeper的应用也是一个典型的案例。TT在高可用性上的方案也很有特色,所有的服务器节点形成一个环,两两相互主辅备份,一个节点挂了,后续节点仍然可以提供服务直到主节点回来,有点类似一致性哈希的概念。节点的主从关系和顺序也是通过zookeeper保证。消息顺序的实现是通过称为router的路由到固定节点做传输,router默认是策略不是固定而是RR。TT的数据存储优先放在内存,并设置了一个内存状况监视的组件,当发现内存放不下的时候,swap到磁盘文件缓存,实现类似内存换页的功能。正常情况数据都应该在内存,当然如果可靠级别要求高的话可以先存磁盘再传输。 TT目前仍然还是比较适合传输日志这样的文本增量数据,并且提供了TailFile这样的python脚本帮你做这个事情,这个脚本可以通过 checkpoint做断点续传。在学习这个项目的时候,发现文档有很大问题,要么错误,要么遗漏,并且代码也不是最新的,我估计开源出来外面的人用的还不太多,希望慢慢能搞的更好一些。 跟TT类似,另一个追求高吞吐量的MQ是linkedin开源的kafka。 Kafka就跟这个名字一样,设计非常独特。首先,kafka的开发者们认为不需要在内存里缓存什么数据,操作系统的文件缓存已经足够完善和强大,只要你不搞随机写,顺序读写的性能是非常高效的。kafka的数据只会顺序append,数据的删除策略是累积到一定程度或者超过一定时间再删除。Kafka另一个独特的地方是将消费者信息保存在客户端而不是MQ服务器,这样服务器就不用记录消息的投递过程,每个客户端都自己知道自己下一次应该从什么地方什么位置读取消息,消息的投递过程也是采用客户端主动pull的模型,这样大大减轻了服务器的负担。Kafka还强调减少数据的序列化和拷贝开销,它会将一些消息组织成Message Set做批量存储和发送,并且客户端在pull数据的时候,尽量以zero-copy的方式传输,利用sendfile(对应java里的 FileChannel.transferTo/transferFrom)这样的高级IO函数来减少拷贝开销。可见,kafka是一个精心设计,特定于某些应用的MQ系统,这种偏向特定领域的MQ系统我估计会越来越多,垂直化的产品策略值的考虑。 在此期间,我还重新去看了activemq和hornetq的存储实现,从实现上大家都大同小异,append log + data file的模式。Activemq采用异步队列写来提高吞吐量,而Hornetq干脆就直接利用JNI调用原生aio来实现高性能。在搜索Java的 aio实现的时候,碰巧发现Mina的沙箱里有个aioj的实现,源码在:https://svn.apache.org/repos/asf/mina/sandbox/mheath/aioj/ 。我测试了完全可用,也尝试改造我们的磁盘存储组件,可惜提升不多,估计不从整个设计上调整服务器,不大可能从aio上获益。 最近也重新看起了clojure的一些开源项目,clojure的开源资源在github上也非常丰富,有待挖掘,下次有机会再尝试介绍一二。 整理自网络”
02
mysql的校对规则引起的问题
“在以前用oracle的时候,很少关于它的collation方法,但是在mysql中,这点不加注意的话,却有可能会出现问题。 问题是这样的: 一张test的表,字符集采用的latin1。 select to_id from test where to_id='cn象_王'; +---------------+ | to_id | +---------------+ | cn陶_陶 | | cn象_王 | +---------------+ 2 rows in set ...”
Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结
“用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别。。 ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的; bin 是二进制, a 和 A 会别区别对待. 例如你运行: SELECT * ...”
mysql数据库操作总结
“创建数据库 最简单的方式 CREATE DATABASE my_db; 或者是 CREATE DATABASE IF NOT EXISTS my_db; 创建utf8编码的数据库 CREATE DATABASE IF NOT EXISTS my_db default character ...”
01
SRC的含义
“SRC是Security Response Center的缩写,即:安全应急响应中心。 主要针对科技互联网企业常见的安全漏洞而特别设立的机构,目前大型互联网公司一般都会有SRC,比如: 百度安全应急响应中心: http://sec.baidu.com/views/main/index.html#home 腾讯安全应急响应中心 https://security.tencent.com/index.php ”
5月
31
广告投放方式:CPC、CPM、CPA、CPS、CPT总结
“CPC(按点击付费) CPC—英文全称Cost Per Click。CPC是一种点击付费广告,根据广告被点击的次数收费。如关键词广告一般采用这种定价模式,比较典型的有Google的AdSense for Content、百度联盟的百度竞价广告以及淘宝的直通车广告。 CPM(按展示付费) CPM—英文全称Cost Per Mille 或者是Cost Per ThousandImpression。CPM是一种展示付费广告,只要展示了广告主的广告内容,广告主就为此付费。这种广告的效果不是很好,但是却能给有一定流量的网站、博客带来稳定的收入。 CPA(按行为付费) CPA—英文全称Cost Per Action。CPA是一种按广告投放实际效果计价方式的广告,即按回应的有效问卷或定单来计费,而不限广告投放量。CPA的计价方式对于网站而言有一定的风险,但若广告投放成功,其收益也比CPM的计价方式要大得多。 CPS(按销售付费) CPS—英文全称Cost Per Sales。CPS是一种以实际销售产品数量来计算广告费用的广告,这种广告更多的适合购物类、导购类、网址导航类的网站,需要精准的流量才能带来转化。凡客的网站联盟是这种广告形式的典型代表。 CPT(按 时长付费) CPT—英文全称Cost ...”
17
UVA/UVB概念总结
“紫外线分UVB、UVA两种。 UVB UVB的伤害和防护已经得到彻底的研究,它可以使皮肤在短时间内晒伤、晒红(对一般人来说是25分钟左右),现市场上绝大多数防晒品是UVB型的,SPF就是UVB防护能力的标志。 UVA UVA是可怕的阳光杀手,它藉着波长比较长,穿透能力强的本领,可以穿透皮肤表层,深入真皮以下组织,可以破坏胶原蛋白,弹性纤维组织等皮肤内部的微细结构,产生皱纹和幼纹,令皮肤松弛衰老。这在医学上称之为光致老化。 在阳光中紫外线的能量分布中,UVA是UVB的15倍,是令皮肤晒黑的主要原因。它能使皮肤里结合水的透明质酸含量减少,令皮肤干燥,加速黑色素形成,使肤色变黑,同时也是引起皮肤癌的重要原因。 人们发现一般强度的阳光UVA照射在皮肤上,约经过2-4小时,皮肤就会出现比较稳定的黑化,学术上称“持续型即时黑化”。 SPF值 所谓SPF值是指产品防护UVB的能力,也就是防止皮肤晒红晒伤的能力。一般地说,人的皮肤在日光直射下产生红斑的时间是20-25分钟,如果一瓶防晒乳的SPF值为8,用它涂敷一次,对皮肤的保护时间就是20(25)×8=160(200)分钟左右。具体可以参考下表: SPF值 使用条件 2-8 冬日阳光,春秋早晚阳光和阴雨天 9-20 夏日早晚和中等强度阳光 21—30 户外工作、旅游、夏日强烈阳光 大于30 特定环境下(如高原),强烈阳光照射 在国外,注重UVA防晒品包装上除了标志SPF值以外,经常可以发现“PA+”的字样,它们表示产品防护UVA的能力,也就是防止晒黑的能力。一般有此标识的产品都是刚刚面世的防晒品,技术上比较先进。 PA值指数对应代表的含义如下: PA值 有效防护时间 PA+ 大约4小时 PA++ 大约8小时 PA+++ 超强防护”
UPF概念总结
“紫外线是一组高频率短波长的光线,若以波长来区分又可分分为下列四种: 1、真空紫外线(Vacuum UV),波长为110--180nm 2、短波紫外线(UV-C),波长为180--290nm 3、中波紫外线(UV-B),波长为290--315nm 4、长波紫外线(UV-A),波长为315--400nm UPF指的是皮肤无防护时计算出的紫外线辐射平均效应与皮肤有织物防护时计算出的紫外线辐射平均效应的比值。 UPF是英文Ultraviolet Protection Factor的简称,即紫外线防护系数。 UPF的物理意义,比如UPF值为50,就说明有1/50的紫外线可以透过织物。 UPF值越高,就说明紫外线的防护效果越好。但国家标准中纺织品的UPF值最高的标识是50+,也就是UPF>50。因为UPF大于50以后,对人体的影响完全可以忽略不计。 国家质检总局颁布的《纺织品防紫外线性能的评定》标准中规定: A.只有当样品的UPF值大于40,并且UVA的透过率小于5%时,才能称之为“防紫外线产品”,这两个条件缺一不可。这是衡量一种产品是不是“防紫外线产品”的指标。 B.防紫外线产品应该在标签上标有三个方面的内容: 1、国家标准的编号:GB/T 18830-2009 2、UPF值: 3、40+,或者50+ 备注: 如果UPF的测定值:40<upf≤50时,并且uva的透过率小于5%,标识为:upf40+ 如果upf的测定值大于50,并且uva的透过率小于5%,标识为:upf50+="" 长期使用以及在拉伸或者潮湿的情况下,该产品所提供的防护性能可能减少。="" 伞布uv:是指紫外线遮蔽率。="" <="" p=""></upf≤50时,并且uva的透过率小于5%,标识为:upf40+>”
HIIT简介
“HIIT简介 通过HIIT(High Intensity Interval Training,此处译为“高强度间歇性训练”),你可以在健身房花较少的时间燃烧更多的脂肪。以下我会说明如何在这种新颖、前沿的心血循环系统训练中达到最好的效果。 如果我告诉你可以在少量的有氧运动当中燃烧更多的脂肪,你是否会感到怀疑?然而,通过HIIT你就能办到,在健身房花少量的时间燃烧更多的脂肪。在这篇文章当中,我会说明如何在这种新颖、前沿的心血循环系统训练中达到最好的效果。 和我们大多数人一样,你可能被告知为了燃烧最大量的脂肪就得完成20~60分钟中等强度的有氧训练。这种方法确实会消耗掉脂肪,但是HIIT是一种更高效的,运动员友好(athlete-friendly)的训练方式,并且同时也消除体内脂肪。 HIIT的工作原理 使用HIIT,将会比你平时选择使用有氧器械更费劲,但只会使用常规有氧训练1/4到一半的时间。HIIT是一种无与伦比的强烈和高效的有氧训练,因此你只需花15~20分钟。 开始HIIT训练: 选择有氧器械(跑步机、椭圆机、划船机、单车、游泳),然后进行5分钟的热身。 然后进行适当的拉伸运动,准备开始HIIT。 以一分钟的中速运动作为开始,然后加快速度达到最大心率的90%或者95%。 最大心率(MHR) 计算公式 最大心率=220-年龄 继续保持这个效果15~20秒,然后减到起始速度运动1分钟,紧接着又是另外一次竭力冲刺15~20秒。 保持这种循环运动在15分钟以内。 最后用5分钟整理运动结束训练,然后接着进行全面的拉伸。 假如你正确按照上面的步骤训练,我保证在接下来的20分钟你会感到完全的精疲力竭。 HIIT的好处 通过一项由加拿大魁北克的Laval 大学进行的研究发现,HIIT有氧运动帮助受训者减掉9倍于采用传统方式(中速跑20~60分钟)训练的脂肪。在你的减重计划中结合HIIT,你将会提升你的新陈代谢达到顶点。 HIIT成功的原因: 当人体在高强度状态下训练,每磅体重将会燃烧更多的热量总量。 高强度锻炼,比如重量训练和HIIT会促进荷尔蒙分泌。 在全天时间内提高人体新陈代谢率! 这对你意味着什么?每天消耗的热量越多,你就能减去更多的重量。即使降低体重不是你的最终目标,HIIT也适合你。通过HIIT,运动员将会发现与传统有氧运动截然不同的更好的收获。 除非你在为马拉松作训练,你不必在运动中保持不变的速度。所有的运动,不管是足球还是橄榄球,甚至垒球或者篮球,都具备一点,就是你需要不断的变换速度,并且达到全速奔跑。 HIIT不仅仅对心血管循环系统有益,也对无氧ATP/CP系统有帮助;不仅仅会增加你心肺功能的耐力,更会提高你的初速度和爆发力! 什么是ATP? 也就是著名的三磷酸腺苷,ATP对于能量的释放很重要。ATP是一种由腺苷衍生的核苷酸,通过它的水解作用到二磷酸腺苷可以为细胞进行各类生化过程提供大量能量,包括肌肉收缩及糖份新陈代谢。 总结 我会让这个研究为它自己证明。HIIT在更短的时间提供了一种更高效的锻炼!每个人都会通过HIIT有氧训练受益,可能是一个一直尝试减肥的人,或者是为接下来的NFL(National Football League, ...”
13
卡路里、焦耳概念总结
“卡路里 (简称“卡”,缩写为"calorie")的定义为将1克水在1大气压下提升1摄氏度所需要的热量。现在仍被广泛使用在营养计量和健身手册上。国际标准的能量单位是焦耳(joule)。 一般所说的卡路里还分为两种: 大卡,也被记做大写字母C,最常见于食品标注,相当于将1000克水在1大气压下由摄氏14.5度提升到15.5度所需的热量,约等于4186焦耳的内能。 小卡,也被记做cal,较多见于科研文档中,1000小卡=1大卡。 1卡=1卡路里=4.186焦耳; 1千卡=1大卡=1000卡=1000卡路里 =4186焦耳=4.186千焦。 (1)1千克的脂肪完全氧化释放9000千卡的热量。 (2)营养学通常计算7700千卡消耗一公斤脂肪。 (3)你消耗了980千卡热量减少了130克脂肪。如果你消耗了1000千卡热量减少的应该还是130克脂肪。因为你多出来的20千卡热量由于数量太小在营养学上可以忽略不计。就像你吃了一个黄瓜,能量计算的时候是不会把黄瓜的能量计算进去的。但是黄瓜不可能没有一点能量,对于营养学只是数值太小了。对于正常成人10~30千卡的热量,通常是忽略不计的。”
12
BMI指数总结
“BMI指数 BMI指数(即身体质量指数,简称体质指数又称体重,英文为Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。主要用于统计用途,当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时,BMI值是一个中立而可靠的指标。 定义 BMI值原来的设计是一个用于公众健康研究的统计工具。当我们需要知道肥胖是否为某一疾病的致病原因时,我们可以把病人的身高及体重换算成BMI值,再找出其数值及病发率是否有线性关连。不过,随着科技进步,现时BMI值只是一个参考值。要真正量度病人是否肥胖,体脂肪率比BMI更准确、而腰围身高比又比体脂肪率好、但是最好的看法是看内脏脂肪(若内脏脂肪正常,就算腰围很大及体脂肪率很高,健康风险不高,日本相扑很多都是这种胖法)。因此,BMI的角色也慢慢改变,从医学上的用途,变为一般大众的纤体指标。BMI是Body Mass Index 的缩写,BMI中文是“体质指数”的意思,是以你的身高体重计算出来的。BMI是世界公认的一种评定肥胖程度的分级方法,世界卫生组织(WHO)也以BMI来对肥胖或超重进行定义。 身高体重指数这个概念,是由19世纪中期的比利时通才凯特勒最先提出。它的定义如下: 体质指数(BMI)=体重(kg)÷身高^2(m) EX:70kg÷(1.75×1.75)=22.86 举例: 例如:一个人的身高为1.75米,体重为68千克,他的BMI=68/(1.75^2)=22.2(千克/米^2)当BMI指数为18.5~23.9时属正常。 BMI是与体内脂肪总量密切相关的指标,该指标考虑了体重和身高两个因素。BMI简单、实用、可反映全身性超重和肥胖。 在测量身体因超重而面临心脏病、高血压等风险时,比单纯的以体重来认定,更具准确性。”
09
保税区清关流程总结
“保税区是一个进口免税区,进口暂时放存的地方,由海关监查,一般都要是来料加工,原材料进口加工再出口,这些外贸方式才会用到这保税区到港货物->保税区企业自行办理保税区海关备案手续->保税区仓库。 以下为保税区的报关流程: 一、境外货物进区流程: 1.加工贸易所需进境料件、转口货物、仓储货物适用进境备案手续。 2.货物到达港后,收货人或其代理人到预录入点办理进境货物备案清单预录入手续(加工贸易进境料件在加工企业预录入,仓储、转口货物在仓库预录入)预录入按“进出境备案清单填制规范”填写。 3.将预录入数据向海关发送申报,待接到接受申报回执后,打印进境货物备案清单。 4.在备案清单上签署报送员名字,并加盖报关章,随附报送员证、提单(包括小提单)、相关商业单证、运输单证、原产地证书、《进口信用证、托收承兑/付汇情况表》、审批单证及其他海关认为必要时需交验的有关单证和资料到海关里书面交单申报手续。 5.海关接单后,经审核符合申报条件、手续齐全有效的,予以放行,并在有关单证上加盖放行章或验讫章,将盖单证返还报关员办理提货手续。 6.货物须由海关监管车辆从码头(机场等)承运至保税区内。 二、保税区货物出境流程: 1.保税区运往境外的货物适用出境备案手续。 2.发货人或其代理人到预录入点办理出境备案清单预录入手续,预录入按“进出境备案清 单填制规范”填写。 3.将预录入数据向海关发送申报,待收到申报回执后,打印出境货物备案清单。 4.在备案清单上签署报关员名字,并加盖报关章,随附报关员证、相关商业单证、运输单证、审批单证及其他海关认为必要时需交验的有关单证和资料到海关办理书面申报手续。 5.海关接单后,经审核符合申报条件、手续齐全有效的。予以放行,并在关单证上加盖放行章或验讫章,将盖章单证返还报关员办理货物装船出运手续。 6.货物须由海关监管车辆从保税区承运至码头(机场等)。 ”
海淘的几种模式
“直邮模式: 国外电商平台购买直接购买的,“海淘”,买家平台下单,商品直接从境外通过国际物流发货,入关清关,入境 集货模式: 买家境内下单,当订单达到一定数量之后,商家境外采购商品,通过国际物流发到保税区,批量通关,使用国内物流配送至买家 备货模式: 商家境外大批量采购商品,运至保税区仓库在海关监管下存放,买家下单后,支付,海关核对三单(订单、快递单、支付单),清关,清关,出保税区,以个人包裹形式从保税仓发货 ”
保税进口直邮进口的区别和优缺点
“什么是保税区。保税区,亦称保税仓库区。这是一国海关设置的或经海关批准注册、受海关监督和管理的可以较长时间储存商品的区域。是经国务院批准设立的、海关实施特殊监管的经济区域。 外国商品存入保税区,不必缴纳进口关税,只需缴纳存储费等少量费用。当需要给消费者发货的时候,再进行完税清关。 保税区直邮和海外直邮进口有什么区别? 保税区直邮是先从海外大批量运至保税区存放,当购买发生时及时清关发货,到货时效快。因为保税仓是需要提前备货的,所以商品的种类可能比较少,一般销量比较大的商品会选择保税仓备货模式。 海外直邮是收到订单后,直接从海外直接通过快递发货,清关,入境的消费形式。速度相对要慢一些,费用可能也会更高,但是商品的种类会比较多,很多国外的商品都可以买到。 ”
06
jstl forEach标签使用总结
“概述 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行的本体内容。 语法 语法1:迭代一集合对象之所有成员 本体内容 语法2:迭代指定的次数 本体内容 标签具有以下一些属性: var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。 items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。 varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。 begin:如果指定了items,那么迭代就从items开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。 end:如果指定了items,那么就在items结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。 step:迭代的步长。 标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示: java.util.Collection:调用iterator()来获得的元素。 java.util.Map:通过java.util.Map.Entry所获得的实例。 java.util.Iterator:迭代器元素。 java.util.Enumeration:枚举元素。 Object实例数组:数组元素。 基本类型值数组:经过包装的数组元素。 用逗号定界的String:分割后的子字符串。 javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。 不论是对整数还是对集合进行迭代,的varStatus 属性所起的作用相同。和var属性一样,varStatus用于创建限定了作用域的变量(改变量只在当前标签体内起作用)。不过,由varStatus属性命名的变量并不存储当前索引值或当前元素,而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。该类包含了一系列的特性,它们描述了迭代的当前状态,如下这些属性的含义如下所示: current:当前这次迭代的(集合中的)项。 index:当前这次迭代从0开始的迭代索引。 count:当前这次迭代从1开始的迭代计数。 first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。 last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。 begin:begin属性的值。 end:end属性的值 step:step属性的值 下面就来看一个个基本的例子,表格隔行背景色变化 xxx 限制 ·假若有begin属性时,begin必须大于等于 0 ·假若有end属性时,必须大于begin ·假若有step属性时,step必须大于等于0 Null 和 错误处理 ·假若items为null时,则表示为一空的集合对象 ·假若begin大于或等于items时,则迭代不运算 说明 如果要循序浏览一个集合对象,并将它的内容显示出来,就必须有items属性。 ”
电商CRM之重复购买率怎么计算
“好多做电商CRM运营的不会计算重复购买率并且针对它分析,通过和业内几位运营大神的交流,总结几种重复购买率的方法,供大家参考。 一、按照客户计算 该方法指在单位时间段内,回头客购买人数/总购买人数,计算出来的比例,则为重复购买率。例如在一个月内,有100个客户成交,其中有20个是回头客,则重复购买率为20%。 这里比较含糊的是,关于回头客的定义,又分为两种, 1.按天非去重,即一个客户一天产生多笔付款交易,则算重复购买。 2.按天去重,即一个客户一天产生多笔交易付款,只算一次购买,除非在统计周期内另外一天也有购买,才算回头客。 按天非去重,是目前b2c网站统计数据常用计算方法,相对计算出来的重复购买率要高于第二种。 二、按照交易计算 该方法指在单位时间内,重复购买交易次数/总交易次数,及重复购买的总次数占比。比如在某个季度中。一共产生了100笔交易,其中有20个人有了二次购买,这20人中的10个人又有了三次购买,则重复购买次数为30次,重复购买率为30%。(摘自卖家刊2011-04期) 三、现状分析 目前经常能在微博上能看到有人在公布关于自家店铺的重复购买率或独立运营重复购买率的分析。基本都比较含糊。只有一个百分比。也未公布其统计计算周期,和具关的指标计算准则。所以在重复购买率分析中,统计周期至关重要,要结合自自运营产品类目周期来分析,才更有参考价值和意义。 ”
什么是重复购买
“什么是重复购买 重复购买是指在相当长的时间内选择一个品牌或极少品牌的购买行为。 重复购买的内容 当消费者对该品牌产品或者服务的重复购买次数,重复购买率越多,则反应出消费者对品牌的忠诚度就越高,反之则越低。这就是重复购买率。 重复购买率 重复购买率有两种计算方法:一种是所有购买过产品的顾客,以每个人人为独立单位重复购买产品的次数,比如有10个客户购买了产品,5个产生了重复购买,则重复购买率为50%;第二种算法是,单位时间内,重复购买的总次数占比,比如10个客户购买了产品,中间有3个人有了二次购买,这3人中的1个人又有了三次购买,则重复购买次数为4次,重复购买率为40%。”
03
Cortana简介
“Cortana中文名:微软小娜,是微软发布的全球第一款个人智能助理。它“能够了解用户的喜好和习惯”,“帮助用户进行日程安排、问题回答等”。 Cortana 可以说是微软在机器学习和人工智能领域方面的尝试。微软想实现的事情是,手机用户与小娜的智能交互,不是简单地基于存储式的问答,而是对话。它会记录用户的行为和使用习惯,利用云计算、搜索引擎和“非结构化数据”分析,读取和“学习”包括手机中的文本文件、电子邮件、图片、视频等数据,来理解用户的语义和语境,从而实现人机交互。 一个很简单的例子就是,假如手机中记录的日程显示将要参加会议,那么不需任何操作,Cortana 到时就会自动将手机调至会议状态。这也是微软的研究,从个人计算机(personal computer)走向个人计算(personal computing)的开始。 微软Windows系统负责人Joe Belfiore(乔北峰)已确认Cortana实现跨平台。可通过App Store、Google Play商店进行下载。 ”
4月
22
Tomcat应用部署总结
“最近调整了一下系统的部署架构,对Tomcat部署应用多了一些了解,简单总结一下。 方式一:直接部署war包 直接通过把war包扔到webapps目录之下,这是最简单直接的方式,也是最常用的方式。 这种方式对server.xml文件没做任何修改,默认配置如下所示: 方式二:修改server.xml文件 如果不想把war文件直接上传到webapps目录下,可以使用该方式,在server.xml文件的Host段中添加以下内容: 以后要部署应用就可以直接把应用的war文件上传到:/data/apps/xxx.com/work/ 目录下即可。 方式三:动态配置文件 方式二对Tomcat有一定的侵入性,Tomcat还支持另外一种部署方式,在 %TOMCAT_HOME%conf 目录下新建目录:/Catalina/localhost,然后在其下创建文件ROOT.xml,文件内容如下: 效果同方式二类似。每增加一个应用,新建一个应用名称.xml的文件即可。 ”
20
IDEA常用快捷键
“查询快捷键 CTRL+N 查找类 CTRL+SHIFT+N 查找文件 CTRL+SHIFT+ALT+N 查找类中的方法或变量 CIRL+B 找变量的来源 CTRL+ALT+B ...”
3月
25
linux的hostname修改详解
“Linux操作系统的hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。也可以直接cat /proc/sys/kernel/hostname查看。 #hostname #cat /proc/sys/kernel/hostname 上面两种输出结果相同。 修改运行时Linux系统的hostname,即不需要重启系统 hostname命令可以设置系统的hostname #hostname newname newname即要设置的新的hostname,运行后立即生效,但是在系统重启后会丢失所做的修改,如果要永久更改系统的hostname,就要修改相关的设置文件。 永久更改Linux的hostname man hostname里有这么一句话,”The host name is usually set once at system startup in ...”
24
启动nginx出现错误:nginx: [emerg] getpwnam(“www”) failed
“解决方法1: 在nginx.conf中 把user nobody的注释去掉既可 解决方法2: 错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www,如下命令: #/usr/sbin/groupadd -f www #/usr/sbin/useradd -g www www ”
nginx 启动、重启、关闭命令
“停止操作 停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的 步骤1:查询nginx主进程号 ps -ef | grep nginx 在进程列表里面找master进程,它的编号就是主进程号了。 步骤2:发送信号 从容停止Nginx: kill -QUIT 主进程号 快速停止Nginx: kill -TERM 主进程号 强制停止Nginx: pkill -9 nginx 另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下: kill -信号类型 '/usr/nginx/logs/nginx.pid' 平滑重启 如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx ...”
2月
28
jquery post提交表单用法详解
“在jquery中提交表单可以使用$.post带参数直接实现post提交数据,也可以利用ajax的type=post来实现post提交数据,下面我来介绍一下 jquery `$.post方法 在jquery中有这样一个方法,$.post()下面就这个方法做一个简单的实例: jQuery.post( url, , , ): 使用POST方式来进行异步请求 参数: url (String) : 发送请求的URL地址. data (Map) : (可选) 要发送给服务器的数据,以 Key/value ...”
SKU的概念总结
“SKU=Stock Keeping Unit(库存量单位)。即库存进出计量的单位,可以是以件,盒,托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已经被我们引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。单品:对一种商品而言,当其品牌、型号、配置、等级、花色、包装容量、单位、生产日期、保质期、用途、价格、产地等属性与其他商品存在不同时,可称为一个单品。 1概述 SKU=Stock Keeping Unit(库存量单位),即库存进出计量的单位,可以是以件,盒,托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。 当下已经被我们引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。 针对电商而言,SKU有另外的注解: 1、SKU是指一款商品,每款都有出现一个SKU,便于电商品牌识别商品。 2、一款商品多色,则是有多个SKU,例:一件衣服,有红色、白色、蓝色,则SKU编码也不相同,如相同则会出现混淆,发错货。 补: 英文全称为 stock keeping unit, 简称SKU,定义为保存库存控制的最小可用单位,例如纺织品中一个SKU通常表示:规格、颜色、款式。 STOCK KEEP UNIT.这是客户拿到商品放到仓库后给商品编号,归类的一种方法。通常是SKU#是多少多少这样子。还有的译为存货单元\库存单元\库存单位\货物存储单位\存货保存单位\单元化单位\单品\品种,基于业务还有的是最小零售单位\最小销售单位\最小管理单位\库存盘点单位等;专业物流术语解释为“货格”。 换言之,有助于理解: 首先我们应当了解单品的定义,即指包含特定的自然属性与社会属性的商品种类。对一种商品而言,当其品牌、型号、配置、等级、花色、包装容量、单位、生产日期、保质期、用途、价格、产地等属性与其他商品存在不同时,可称为一个单品。在连锁零售门店中有时称单品为一个SKU(中文译为最小存货单位,例如纺织品中一个SKU通常表示规格,颜色,款式)。当然,单品与传统意义上的"品种"的概念是不同的,用单品这一概念可以区分不同商品的不同属性,从而为商品采购、销售、物流管理、财务管理以及POS系统与MIS系统的开发提供极大的便利。例如:单听销售的可口可乐是一个单品SKU,而整扎销售的可口可乐又是一个单品,这两个单品在库存管理和销售是不一样的。而在传统意义上的品种听装的可口可乐是一个品种,不管其销售模式是什么样的。 我们不难看出,无论是国外还是国内的定义和解释中,基本上是三个概念:品项、编码、单位。 这三个概念代表了三个方面: 1. 品项,品项可以结合上面关于单品、SKU和品种的解释理解。也就是只要属性有不同,那么就是不同的品项(SKU)。可以说这是SKU看作是一种产品的角度来分析理解的。属性有很多种,大家容易理解是品牌、型号、配置、等级、花色、生产日期、保质期、用途、价格、产地等,因为他们可以很直观的区分开来;但是包装容量、单位、存放地等就不是那么容易了——难道一支放到一箱,一箱放到一个托盘就不是这个产品了?同样的产品放到亚洲和美洲就不一样了?也就是说同样的产品只要在人们对其进行保存、管理、销售、服务上有不同的方式,那么它(SKU)就不再是相同的了。 2. 编码,这个概念是基于信息系统和货物编码管理来说的,用“品项”中介绍为,不同的品项(SKU)就有不同的编码。这样,我们才可以依照不同的SKU数据来分析库存、销售状况。当你使用物流或者ERP系统的时候,你会发现SKU#:12356这样的文本框。长时间这样的状况让很多朋友都认为,SKU就是产品的编码了。但是这里的产品如“品项”所说,并非是一个泛泛的产品的概念,而是很精确的产品概念。 3. 单位,基本上就是基于管理来说的吧,这个名字上是数字化管理方式的产物。但是这里的单位和我们平时的“单位”有什么区别呢?看看产品的包装单位的不同,SKU就不同。也就是说,精确到SKU的管理方式才能适应当下的物流竞争,其实信息系统的使用对它产生了很大的影响。没有精确的编码来区分相同产品的不同SKU就很难进行单位化到SKU的管理方式。 2管理案例 背景 以生产西式生活小家电产品为主的某国际品牌进入大陆市场之后终端零售表现一直低迷不振。一开始,他们就将市场传播目标定位在为国内消费者提供一种西式时尚生活方式,入市之后,该品牌通过运用大量的市场传播和PR行为,逐步建立了品牌知名度、品牌忠诚度,但受限于产品概念超前和习惯性消费行为尚未形成等因素的制约,产品尚且只能在北京、上海城市及部分一级市场行销。来自零售铺点率低及渠道约束等多方面的影响,零售表现很不理想。2005年,该品牌在大陆市场的整体零售额也就6000万左右。 如何突破当前的销售瓶颈,实现零售快速增长,也就成了管理高层最为头疼的问题。不断的调整销售、市场队伍,寄希望于通过强调人员的作用来拉动零售,却收效甚微。后怕的是,由于姿意的进行人员调整,干扰了原来小心翼翼的市场秩序,零售波动明显。建样板市场、重点门店重点投入、不间歇的举行各种形式的促销等似乎也没有太大的作用,那么到底什么方法才是最有效的呢? 导入SKU David是公司新请来的市场及商业发展总监,作为一名海归的MBA,他不但有海外工作经验,而且也熟悉国内市场。了解到这种零售状况之后,他提出了在公司内部实行SKU管理的想法,即将现有的所有单品,分型号、分颜色作为最小的管理单元进行品类管理,通过精准的数据分析来挖掘单品或品类的销售潜力,最终实现零售迅速增长。 SKU管理的根本在于建立一个完整的基础数据库,包含分城市、分区域、分渠道、分品类、分代理商,零售价/量/额、商场名称等条件,在此基础上,可得出平均单价、单店产出、品类销售增长趋势预测、环比同比增长等许多内容。 数据库建立之后,David运用SKU管理工具一分析,立刻就发现了BBQ(BBQ是Barbecue的缩写,意思是“烧烤”)的一个销售机会。以往电烤箱北方零售明显高于南方市场,且以15L左右的为主。南方市场作为非主力市场,公司的投入力度一直不大。但是,数据显示,南方城市10L以下的小容量电烤箱占据该区域BBQ市场零售量份额的70%以上。David还发现这与南方人的生活习惯有关系,大多数南方人都是拿电烤箱来制作一些甜点或饼干之类的食物,那这也说明南方动销的BBQ主是以10L以下的为主。 小试牛刀就尝到甜头之后,David决定从现下市场容量较大的电水煲市场下手,通过SKU工具分析来获得更大的零售量增长。以下是他得出的结论: ※分渠道:深入分析渠道与电水煲SKU产出高低的关系,挖掘渠道零售潜力,重新调整SKU出样。结论:百货零售量份额在下降,超市则在不断增长,量非常大,家电连锁增长比例最高,但各渠道零售表现差距很大(以美的对比为例)。建议公司调整零售资源投入策略,重点扶持零售量很大的超市系统,发展专供超市的SKU,开发超市系统物流服务商。 ※分城市了解各地域的消费特点。如哈尔滨的电水煲销售则呈两极分化的特点,高端与低端水煲零售量占比差别不是很大,这与哈尔滨人大多钟情于品牌消费或炫耀性消费有关。 ※竞品SKU分析:结合中怡康数据可以发现,不同渠道之间畅销产品型号差距很大。宁锐市场份额为8.6%,而且全部来自超市,其主销型号为NR—3020,是销量增长最快的型号。我们需要了解从功能到外观、到价格,在不同渠道,什么产品畅销,从而帮助我们确定新品开发方向。对策:调查总结各渠道前5位的产品功能,外观特点等,了解销量增长最快的产品功能卖点和外观卖点、价格等,了解畅销品牌的销售代理模式,尤其是超市的代理模式和铺市情况,了解促销员说辞、促销方式和陈列方式。 ※我们的市场份额和金额覆盖率大致相符,而和数字覆盖不符。同时,铺市效率越高,市场份额越高。相比美的的铺市率,我们还差很多。基本还处于靠销售布点来提高销量的阶段,所以从销售到市场的策略应以快速提高销售为主。我们发现西部,尤其是西安自进入九月份以来,销售节节攀升,十月零售排名已跃居全国第三,这说明零售铺点履盖范围扩大后,销量增长明显。对策:加强铺市,同时加强对于重点渠道,如家乐福的进入。开发有利于进店谈判的销售工具,如产品手册、演示光盘等,提高进场费。 当下,我们的水煲价格段变化不明显,增长平均,90元以上价格段增长较快,低价位产品增长相对较慢。最大的3个价格段分别是 ...”
22
Got error 28 from storage engine 解决方法
“今天一大早,把我的数据都tar了一遍,结果。。。mysql数据库就出现了“Got error 28 from storage engine”错误,去google搜索了一下,发现问题这样解决; 1、 磁盘临时空间不够导致。 解决办法: 清空/tmp目录,或者修改my.cnf中的tmpdir参数,指向具有足够空间目录 2、 mysql报以下错的解决方法 ERROR 1030 (HY000): Got error 28 from storage engine 出现此问题的原因:临时空间不够,无法执行此SQL语句 解决方法:将tmpdir指向一个硬盘空间很大的目录即可 当然两个说法都是一样。所以基本肯定是空间没有了。去其他磁盘看了一下,果然。。 郁闷了一下,把备份文件先删除了就正常了。 两个技巧来自:http://www.aslibra.com/blog/read.php/794.htm,感谢这个google搜索的头条帮我解决了这个问题。 整理自网络。 ”
18
DSR是什么意思
“DSR是英文Detail Seller Rating的简称,中文卖家服务评级系统。淘宝DSR评分包括店铺的好评率、宝贝与描述相符DSR、卖家的服务态度DSR、发货速度DSR、退款率、纠纷退款率6大因素;宝贝与描述相符、卖家服务态度、卖家发货速度三大板块,其实还隐藏着一个版块:物流评价,因为这与卖家没有直接关系所以很少有人关注。 DSR在淘宝的权重一直在上升。说明淘宝搜索越来越注重商品的质量。以往卖家拼命报活动做销量,因为销量占有很高的权重。自从淘宝加大DSR的权重后,很多卖家苦于达不到参加活动所需的DSR值。现在通过降低销量的权重,同时通过提升DSR权重的方法,引导卖家向产品的质量和服务倾斜,这样对于提升买家用户的购物体验也是是非常有利的。其实我们的销售过程及售后是否做到了位就直接体现在了DSR评分上,DSR评分高了,我想老客户回头自然就多了!不过就目前而言,商品的销量在淘宝上还是占了非常高的权重的,并且很可能一直是排名的重要依据之一。 ”
12
GMV释义
“GMV基本含义 GMV 是 Gross Merchandise Volume的缩写,即成交总额(一定时间段内)的意思。 例:2009年春节期间(1月10日-1月30日),淘宝网交易总额(GMV)比去年相比增长60%,日均销售超过3亿元。 GMV的计算 一般平台类的电子商务网站会使用GMV的概念,比如淘宝、京东、天猫等。gmv主要是指网站的成交金额,而这里的成交金额包括:付款金额和未付款,也就是说GMV的计算公式如下所示: GMV = 销售额 + 取消订单金额 + 拒收订单金额 + 退货订单金额 为什么要看gmv呢? gmv虽然不是实际的交易数据,但同样可以作为参考依据,因为只要你点击了购买,无论你有没有实际购买,都是统计在gmv里面的。我们可以用gmv来研究顾客的购买意向,顾客买了之后发生退单的比率,gmv与实际成交额的比率等等。并不能说gmv是毫无是处的,不过一般只有大型平台网站才会研究这个东西,比如淘宝和京东。”
03
mysqldump基本用法总结
“继续遵循二八原则,一个命令再强大,其最常用的功能不过十分之二而已。 命令行下具体用法如下: mysqldump -u用户名 -p密码 -d 数据库名 表名 > 脚本名; 说明: 密码不用再命令中输入,回车之后必须得再输入一次。 1、导出数据库为dbname的表结构(其中用户名为root,密码为dbpasswd,生成的脚本名为db.sql) mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2、导出数据库为dbname某张表(test)结构 mysqldump -uroot -pdbpasswd ...”
1月
21
互联网行业“波特五力”模型分析
“按照波特的观点:一个行业的激烈竞争,根据在于其内在的竞争结构。在一个行业中存在五种基本的竞争力量,即:行业中现有企业间的竞争、新进入者的威胁、供应者讨价还价的能力、用户讨价还价的能力、替代品或服务的威胁。这五种竞争力量的现状,消长趋势及其综合作用强度,决定了行业竞争的激烈程度和行业获利能力。 (一)上游供应商讨价还价能力 供应商,是指那些向行业提供产品或服务的企业,群体或个人,也包括劳动力和资本的供应商。 作为互联网行业的供应商,主要是为互联网企业承担基础产品的开发工作,比如动画广告设计、互动内容开发到网页设计等。此类工作属于技术性比较强的任务,对互联网企业来说这种选择的余地会相对较大,因此很多时候供应商的议价能力受到了同业竞争的限制,因此对互联网行业来说就有了议价优势。 (二)行业现有企业间的竞争 互联网行业是一个十分精细化的行业,同时也是一个“粗放”的行业。主要还是行业大企业之间的竞争。但也不排除小企业由于抓住发展机遇而飞速发展的例子。 经过了历史上的互联网寒冬、业务盈利模式转型等考验,中国有影响力的门户网站所剩无几,竞争格局基本形成:第一阵营有新浪、搜狐、网易、腾讯;业务由单一走向多元化退入至第二阵营:中华网、TOM、雅虎中国、21CN、MSN中国、北青网、互联时空、天空等。 (三)下游用户讨价还价能力 决定买方议价能力的基本因素有两个:价格敏感度和相对议价能力。价格敏感度决定买方讨价还价的欲望有多大;相对议价能力决定买方能在多大程度上成功地压低价格。 表面上来看,互联网企业提供的产品大多不是实物,但这并不影响商家购买互联网企业的产品和服务。一般来说,互联网行业盈利模式多种多样,互联网企业产品和服务的购买商其实也是多种多样。这些购买上的议价能力将直接影响到互联网企业的盈利水平。 比如在网络广告行业中,广告商对门户网站的议价能力就不强,因为门户网站只有几家,而通常有好多个广告商可供选择,其替代成本相对较高。近年来随着我们国家互联网行业的发展,广告商的选择余地加大,其议价能力明显增强,新浪等门户网站的广告收入占市场份额年年下降。 综合而言,互联网行业购买商议价能力还是很强的,这主要是互联网行业的高速发展,购买商的选择余地正在扩大。互联网行业的充分竞争使得市场成为一个买方市场。这是我国互联网发展的历史趋势,也是行业逐步成熟的标志。 (四)新进入者的威胁 互联网行业的进入和退出障碍都不是很高,技术要求也不是很严,潜在的进入者有很大的机会涉足该领域。并且,互联网行业是一个高未知利润、高未知风险的行业。因此,许多精英创业者义无反顾的投身于互联网行业之中。 不过,对互联网行业来说,行业新进入者需要具备三个方面的优势,才能基本上在市场中占有一席之地:产品优势、资本金投入、客户忠诚度。 中国互联网行业经过近十年来的飞速发展,出现了不计其数的互联网公司,其中不乏具备深厚政府背景的大公司。但是,在大浪淘沙般的浪潮中,大多被广大的网民踩在时间的回忆里而昙花一现。 (五)替代品的威胁 近几年以来,在3G陆续开通的大背景下,伴随着手机和PC平台的融合,移动互联网的时代正快速来临。不过,对互联网行业来说,移动互联网并不是一个单纯的替代品,在某种程度上也可以把它作为互联网的发展方向。只要各企业能够准确判断互联网行业的发展趋势,并积极投身于新产品和服务的开发,这个威胁不是很大。 替代品威胁的另外一种就是产品服务的免费替代。目前互联网消费者,主要使用的还都是互联网免费产品,从免费即时通讯、免费网络传媒、免费杀毒软件、免费网络视频、免费博客和微博、免费网游、免费邮箱等等。但又不难发现,在这种种免费的背后又有种种收费的阻力。如360免费杀毒。虽然奇虎2009年推出的免费杀毒软件断了业内其他企业的财路,但其用户规模每天增长上百万,在2010年短短半年之内飙升到3亿。 ”
19
关于数组和List之间相互转换的方法
“1.List转换成为数组。(这里的List是实体是ArrayList) 调用ArrayList的toArray方法。 toArray public T a) 返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的数组。 如果指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集合末尾的元素设置为 null。这对确定列表的长度很有用,但只在调用方知道列表中不包含任何 null 元素时才有用。 指定者: 接口 Collection 中的 toArray 指定者: 接口 List 中的 toArray 覆盖: 类 AbstractCollection 中的 ...”
Mysql日期和时间函数不求人
“对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) select DAYOFWEEK('1998-02-03'); -> 3 WEEKDAY(date) 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。 mysql> ...”
MySQL字符串函数总结
“对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str) 返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。 mysql> select ASCII('2'); -> 50 mysql> select ASCII(2); -> 50 mysql> select ASCII('dx'); -> 100 也可参见ORD()函数。 ORD(str) 如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ...”
SVN子命令SVN Update详解
“本文讲解一下SVN Update 问题,它是Subversion的一个命令,在这里拿出来和大家分享一下,希望对大家有用。 本节说一下Subversion的子命令SVN Update命令问题,大家应该知道Subversion是一个版本管理软件,了解了Subversion的命令就可以更好的操作 Subversion了。 名称 SVN Update命令—更新你的工作拷贝。 概要 svn update SVN Update命令描述 svnupdate会把版本库的修改带到工作拷贝,如果没有给定修订版本,它会把你的工作拷贝更新到HEAD修订版本,否则,它会把工作拷贝更新到你用--revision指定的修订版本。为了保持同步,svnupdate也会删除所有在工作拷贝发现的无效锁定(见“有时你只需要清理”一节)。 对于每一个更新的项目开头都有一个表示所做动作的字符,这些字符有下面的意思: A添加 D删除 U更新 C冲突 G合并 第一列的字符反映文件本身的更新,而第二列会反映文件属性的更新。 别名up 改变 工作拷贝2 是否访问版本库 是 选项 --revision(-r)REV --non-recursive(-N) --quiet(-q) --no-ignore --incremental --diff3-cmdCMD --usernameUSER --passwordPASS --no-auth-cache --non-interactive --config-dirDIR --ignore-externals 例子 SVN Update命令获取你上次更新之后版本库的修改: $svn update Anewdir/toggle.c Anewdir/disclose.c Anewdir/launch.c Dnewdir/README Updated to revision 32. 你也可以将工作拷贝更新到旧的修订版本(Subversion没有CVS的“sticky”文件的概念;见附录B,CVS用户的Subversion指南): $svnupdate-r30 Anewdir/README Dnewdir/toggle.c Dnewdir/disclose.c Dnewdir/launch.c Ufoo.c Updatedtorevision30. 提示:如果你希望检查单个文件的旧的修订版本,你会希望使用svncat。SVN Update命令介绍完毕。 $ svn ...”
Linux 系统设置 ulimit 以及 Core文件的生成
“当系统中的一些程序在遇到一些错误以及crash时,系统会自动产生core文件记录crash时刻系统信息,包括内存和寄存器信息,用以程序员日后debug时可以使用。这些错误包括段错误、非法指令、总线错误或用户自己生成的退出信息等等,一般地,core文件在当前文件夹中存放。 core文件有时可能在你发生错误时,并没有出现在你当前的文件夹中,发生这种情况的原因有两个:一个是当前终端被设置为不能弹出core文件;另一种则是core文件被指定了路径。 对于前者,我们可以使用ulimit命令对core文件的大小进行设定。一般默认情况下,core文件的大小被设置为0,这样系统就不dump出core文件了。这时,使用命令:ulimit -c unlimited进行设置,就可以把core文件的大小设置为无限大,同时也可以使用数字来替代unlimited,对core文件的上限制做更精确的设定。 除了可以设置core文件的大小之外,还可以对core文件的名称进行一些规定。这种设置是对 /proc/sys/kernel/core_pattern 和 /proc/sys/kernel/core_uses_pid 这两个文件进行修改。改动这两个文件的方法如下: echo > /proc/sys/kernel/core_pattern echo /proc/sys/kernel/core_uses_pid 并且注意,只有超级用户才可以修改这两个表。 core_pattern接受的是core文件名称的pattern,它包含任何字符串,并且用%作为转移符号生成一些标示符,为core文件名称加入特殊含义。已定义的标示符有如下这些: %%:相当于% %p:相当于 %u:相当于 %g:相当于 %s:相当于导致dump的信号的数字 %t:相当于dump的时间 %e:相当于执行文件的名称 %h:相当于hostname 除以上这些标志位外,还规定: 1、末尾的单个%可以直接去除; 2、%加上除上述以外的任何字符,%和该字符都会被去除; 3、所有其他字符都作为一般字符加入名称中; 4、core文件的名称最大值为64个字节(包括'\0'); 5、core_pattern中默认的pattern为core; 6、为了保持兼容性,通过设置core_uses_pid,可以在core文件的末尾加上%p; 7、pattern中可以包含路径信息。 查看限制情况 ulimit -a 可以看到如下信息 core file ...”
技术网站推荐
“给大家推荐几个技术网站: 都是中文的; 都是小网站; 基本都是干货。 importNew http://www.importnew.com/ Java 开发者学习新知识的网站。 并发编程网 http://ifeve.com/ java并发编程、Mina、Netty、大数据等。 码农周刊 http://weekly.manong.io/ 码农周刊是一份专为程序员打造的IT技术周刊。我们会为你精选一周IT技术干货,每周五发送,完全免费。 开发者头条 http://toutiao.io/ 伯乐在线 http://www.jobbole.com/ Startup News http://news.dbanotes.net/ 何登成的技术博客 http://hedengcheng.com/ 数据库相关。 火丁笔记 http://huoding.com/ 侧重LNMP。 图灵教育 http://www.ituring.com.cn/ 酷壳 http://coolshell.cn/ 田春冰河 http://tianchunbinghe.blog.163.com/ Common Lisp 程序员, 毽球运动员, 跆拳道黑带一段。 ”
13
如何进行SKU动销率的分析
“SKU分析步骤: 第一步:按照小分类制订SKU动销情况分析表。 第二步:到系统报表中找到需要分析的时间段最后一天的SKU总数和动销SKU数分别填写在分析表中。 第三步:进行数据的的分析: 1、动销率的计算公式:动销率=动销SKU/实际SKUX100 动销SKU———在某个会计期间的有销售记录的单品数量,其中包括销售后立即退货的一种账面体现的零销售现象。 实际SKU———在某个会计期间期末的实际库存单品数,不包括已经是零库存的商品,但是包括负库存的商品。 2、动销率说明的问题:某个分类在特定的时间段内销售的单品数占该分类特定会计期间期末的库存SKU的比例。 3、理解动销率的误区: (1)动销率越高越好 (2)动销率等于100%就是正常,动销率小于100%就是滞销商品惹得祸。 (3)仅仅被百分比所迷惑,只看数据的表面,不透过表面找到问题的实质。 4、动销率会出现的4种情况 第一种情况:动销率超过100%; (1)说明的情况:动销率超过100%说明了在某个时段该分类的销售品项数高于目前现有库存的品项数,说明了该分类出现了品项数的流失现象。 (2)造成的原因:A、商品的缺货;B、商品的停进停销;C、虚库存。 (3)、解决办法: A、门店加强商品缺货的控管。 ★商品的缺货控管的重点是我们店长必须定期与不定期分析数据以及按照相关流程进行现场巡视相结合,绝对不能出现凭经验进行商品的进销存控管。★ B、平时的经营管理中要重视各方面的数据分析,绝对不要根据经验进行经营管理,从数据中可以看出,商品的适销度与地域性与季节及陈列、商品的价格有很大的关系,A门店不好销售的商品不等于B门店或者C门店不好销售,A门店现在不好销售的商品并不代表永远不好销售,我们首先应该找到销售不佳的原因(销售不佳的原因有:商品的陈列不佳、商品的价格不适合)、商品的款式不流行、同质商品太多等);再进行商品的淘汰,我们在淘汰商品是必须要注意以下几种情况: 动销SKU当前库存SKU+淘汰的品项数:说明该分类商品被淘汰的商品比应该淘汰。 动销SKU=当前库存SKU+淘汰的品项数:说明该分类商品不但不可以淘汰商品,还需要引进商品品项数。 C、确保系统基础数据的准确性。 第二种情况:动销率低于100% (1)说明的情况:从数据的表面上看,该类商品存在滞销商品,至少在查询的会计期间存在一定比例的滞销单品 (2)造成的原因:A、品项数过多,特别是同质商品过多;B、存在结构商品;C、该类商品的淘汰力度不够或者淘汰与引进不成比例;D、该类商品的陈列、促销、价格性价比等指标需要调整;E、虚库存过多。 (3)解决办法: A、加强商圈内消费者的消费调查,谨慎引进该类商品的新品(谨慎做到:充分进行市调,充分分析,根据消费者的需求适度谨慎引进新品。) B、调整不动销商品陈列,更换不动销商品陈列位置,增加商品陈列量;加大不动销商品的促销力度;改变不动销商品的营销策略。 C、充分市调不动销商品的价格,调整不动销商品的定价策略。 D、通过综合数据分析,加大商品的淘汰力度。 E、及时调整商品的虚库存和增加库存。   ★我们在处理动销率低于100%的分类商品是必须谨慎,应注意先找到商品不动销的原因:一是商品是否是结构性、季节性商品;二是要检查商品的性价格比(价格是否高于消费者的心理价位、是否高于竞争店、是否高于同类商品);三是该分类商品的同质商品是否过多;四是商品的陈列位置及促销活动情况等等因素。 只有通过上述因素的排除并进行有效的改善后,才能真正判定该类商品是否真正的滞销,然后进行处理。 切记:出现一看到商品动销就是商品滞销,我们要知道商品不动销大部分并不是商品本身的错,而是我们人类的错,是我们没有重视它的存在。★ 第三种情况:动销率等于100% (1)说明的情况:动销率等于100%表面上说明该分类所有的商品都适合商圈内消费的需求,从数据的背后说明该类商品在品项数方面还有开发的空间。 (2)造成的原因:动销率等于100%的情况说明该分类在商品结构上比较正常,但是还有一些特殊原因也会造成动销率等于100% A、长期没有维护缺少的品项数。 B、收银串号以及输入错误。 C、商品的缺货(一些动销商品长期缺货以及结构性商品的缺货)。 D、虚库存(实际有库存,但是系统库存已经为0)。 (3)解决办法: A、定期与不定期维护门店的品项数,具体办法:门店店长根据商品布局及历史数据确定每个小分类的计划品项数,然后定期与不定期按照小分类查询《分类库存明细SKU报表》了解商品SKU的变化情况,找到差异的原因及品项。 B、加强收银员的技能培训,减少收银串号及错误率。 C、加强商品的缺货管理,特别是一些畅销、常销商品的缺货以及结构性商品的缺货控管。 D、及时调整商品的虚库存。 E、加强该类商品的民意市调,挖掘内在的消费力,适度引进新品。 ★我们在处理动销率等于100%的分类时不能被“百分百”的表面现象迷惑,我们应该透过数据的表面看到看到内在的实质,千万不要以为该类商品品项数结构比较合理,在确定是否合理的前提必须要经过以上异常原因的排除及改善后方可确定分类商品单品结构的合理性,同时还要加强民意市调,挖掘消费潜力,适度引进新品。还应该加以重视:一是该分类商品的新品引进;二是该小分类商品的促销;三是如何提升新品的销量,培养更多的A类商品。★ 第四种情况:动销率等于0 (1)说明的情况:动销率等于0从数据的表面上说明门店的商品结构不合理,通过数据的也表明了以下一些特殊情况:A、商品架构存在问题;B、特定原因(季节和环境)。 (2)造成的原因:A、门店没有重视该类商品的销售,没有引进任何新品;B、商品分类设置不合理;C、该类商品具有特定原因,如有较强的季节性和销售环境;D、漏统计;E、长期缺货,至少本会计期间没有进销存业务往来。 (3)解决办法: A、门店应根据商品结构表定期与不定期进行检查商品的经营结构是否完善。 B、重新调整商品结构表。 C、严控商品的缺货,特别是长期缺货。 门店SKU分析注意点 1、门店SKU动销情况调查与分析须在次月的1至5日统计数据为佳,并及时汇总与分析数据。 2、分析的条件必须相同。 3、分析要深入,不要被数据的表面所迷惑,必须要深入数据进行综合分析。 4、找到问题后切忌立即定性,应该找到造成的原因并进行改善后观察一段时间在定性问题。 5、SKU动销情况调查与分析工作一定要有持续性、连续性,绝对不能通过一次分析就调整。 ”
存货周转率总结
“存货周转率 存货周转率是企业一定时期销货成本与平均存货余额的比率。用于反映存货的周转速度,即存货的流动性及存货资金占用量是否合理,促使企业在保证生产经营连续性的同时,提高资金的使用效率,增强企业的短期偿债能力。 定义 《制造业库存控制技巧》第三版(2张)存货周转率是企业营运能力分析的重要指标之一,在企业管理决策中被广泛地使用。存货周转率不仅可以用来衡量企业生产经营各环节中存货运营效率,而且还被用来评价企业的经营业绩,反映企业的绩效。 存货周转率是对流动资产周转率的补充说明,通过存货周转率的计算与分析,可以测定企业一定时期内存货资产的周转速度,是反映企业购、产、销平衡效率的一种尺度。存货周转率越高,表明企业存货资产变现能力越强,存货及占用在存货上的资金周转速度越快。 存货周转率(inventory turnover)又名库存周转率,是衡量和评价企业购入存货、投入生产、销售收回等各环节管理状况的综合性指标。它是销货成本被平均存货所除而得到的比率,或叫存货周转次数,用时间表示的存货周转率就是存货周转天数。 其计算公式如下: 存货周转率(次数)= 销货成本 / 平均存货余额 还有一种是: 存货周转率(次数)= 营业收入 / 存货平均余额 该式主要用于获利能力分析。 其中:平均存货余额 =(期初存货+期末存货)÷ 2 存货周转率计算公式 存货周转天数=计算期天数/存货周转率(次数) 存货周转率指标的好坏反映企业存货管理水平的高低,它影响到企业的短期偿债能力,是整个企业管理的一项重要内容。一般来讲,存货周转速度越快,存货的占用水平越低,流动性越强,存货转换为现金或应收账款的速度越快。因此,提高存货周转率可以提高企业的变现能力。 分析 商品库存周转率,销售总额和库存平均价值的比例关系, 一般来讲,存货周转速度越快,存货的占用水平越低,流动性越强,存货转换为现金、应收账款等的速度越快。 提高存货周转率可以提高企业的变现能力,而存货周转速度越慢则变现能力越差。 库存周转率 库存周转率等于销售的物料成本除以平均库存。在这里,销售的物料成本是指公司完成的最终产品销售所包含的物料的总成本,而平均库存则是指所有原材料,在制品,成品以及所有在手的呆滞物料的平均库存。这里的平均库存通常是指各个财务周期期末各个点的库存的平均值。有些公司取每个财务季度底的库存平均值,有的是取每个月底的库存平均值 。 库存周转率考核的目的在于从财务的角度计划预测整个公司的现金流,从而考核整个公司的需求与供应链运作水平。 很简单的算法,如某制造公司在2003年一季度的销售物料成本为200万元,其季度初的库存价值为30万元,该季度底的库存价值为50万元,那么其库存周转率为200/=5次。相当于该企业用平均40万的现金在一个季度里面周转了5次,赚了5次利润。照此计算,如果每季度平均销售物料成本不变,每季度底的库存平均值也不变,那么该企业的年库存周转率就变为200*4/40=20次。就相当于该企业一年用40万的现金赚了20次利润! 计算方式 存货周转率有两种不同计价基础的计算方式。一是以成本为基础的存货周转率,即一定时期内企业销货成本与存货平均余额间的比率,它反映企业流动资产的流动性,主要用于流动性分析。二是以收入为基础的存货周转率,即一定时期内企业营业收入与存货平均余额间的比率,主要用于获利能力分析。其计算公式为: 成本基础的存货周转次数=营业成本/存货平均余额 收入基础的存货周转次数=营业收入/存货平均余额 其中: 存货平均余额=(期初存货+期末存货)/2 收入基础的存货周转次数 - 成本基础的存货周转次数 = ...”
动销率总结
“基本描述 动销率是店铺有销售的商品的品种数与本店经营商品总品种数的比率。它反映了进货品种的有效性。动销率越高,有效的进货品种越多;反之,则无效的进货品种相对较多。 商品动销率计算公式为: 商品动销率 = 动销品种数 / 仓库总品种数 × 100% 参数说明: 动销品种数:门店中所有商品种类中有销售的商品种类总数。 在实际操作中,需要了解某一单品的动销情况,一般会使用以下计算公式: 商品动销率 = 商品累计销售数量 ÷ 商品库存数量 此处的累计销售可以按会计年度或者商品的销售年度来累计。此处可以通过对动销率进行分析比较,对于低动销率的商品予以关注。 对动销率的理解 (1)动销率越高不一定越好; (2)动销率等于100%也不一定就是正常,动销率小于100%也不一定就是滞销商品惹得祸; (3)实际工作中不能仅仅被百分比所迷惑,只看数据的表面,不透过表面找到问题的实质。 考核动销率 > 100% (1)说明的情况:动销率超过100%说明了在某个时段该分类的销售品种数高于目前现有库存的品种数,说明了该分类出现了品种数的流失现象。 (2)产生的原因: A、商品的缺货; B、商品的停进停销; C、虚拟库存; (3)解决办法: A、门店应加强商品缺货的控管,商品的缺货控管的重点必须定期与不定期分析数据以及按照相关流程进行现场检查监督相结合,绝对不能出现凭经验进行商品的进销存控制。 B、平时的经营管理中要重视各方面的数据分析,绝对不要根据经验进行经营管理,不同商品其适销程度与地域、季节、价格、陈列位置有很大的关系。甲门店不好销售的商品不等乙B门店或者丙门店不好销售,甲门店现在不好销售的商品并不代表永远不好销售,我们首先应该找到销售不佳的原因(销售不佳的原因有很多:促销不力、陈列不佳、价格偏高、品牌吸引力差、同质商品太多);再进行该品的淘汰或者退货。 动销率 < 100% (1)说明的情况:从数据的表面上看,该类商品存在滞销,至少在查询的会计期间存在一定比例的滞销。 (2)产生的原因: A、品种过多,特别是同质同类品种过多; B、进货品种的结构有问题; C、该类商品的淘汰力度不够或者淘汰与购进不成比例; D、该类商品的陈列、促销等策略需要调整; E、虚拟库存过多。 (3)解决办法: A、加强市场调查以及对消费者的消费习惯、消费心理进行调查,谨慎引进该类商品的新品种,做到:充分进行市场调查,充分分析,根据消费者的需求适度、谨慎购进新的商品品种。这就是努力做到品种对路数量恰当。 B、调整不动销商品的陈列布局,更换不动销商品的陈列位置,增加陈列量;加大不动销商品的促销力度;改变不动销商品的营销策略。 C、结合市场调查调整不动销商品的销售价格,利用价格杠杆促销。 D、通过综合数据分析,加大退货力度,如果确定某单品数月内动销数为零,采取了一定的促销手段后仍无起色,就应考虑退货。 E、及时调整虚拟库存和增加适销库存。 F、在经营前期的合同洽谈期就应考虑商品库存周转情况,与供应商提前制定不动销商品处理办法,厂商共同承担滞销风险,也能最大限度调动厂商双方市场关注度。 动销率不但对减不减库存至关重要,更体现供应链管制的水平。但也别以为库存动销率越高越好。当我们的动销率高于90%时,意味着我们90%的商品都是畅销。但其实这却只是表面繁荣而已,紧接着问题就会出现:运营该主推哪些商品,该让哪些畅销商品更加畅销,该打造哪些商品为爆销款等等,也就是,如何控制你供应链的节奏。 同时也不能被动销率的百分比所迷惑,只看数据的表面,不透过表面找到问题的实质。商品的畅销、平销、滞销,有时绝对不仅仅是市场需求问题,也不仅仅是商品质量问题、过季问题、构造问题。有可能是销售策略,也有可能是销售推广力度问题等,这种误导案例数不胜数。 切记: 我们要知道任何商品不动销大部分并不是商品本身的错,而是经营者或者销售人员的错,是我们没有重视它的存在,没有最大限度地发掘和发挥该商品的销售潜力,也就是说没能够有效地找到该品类商品的卖点并有效地加以利用。 ”
06
notepad++插件推荐NppFtp
“简介 NppFTP是一个notepad++编辑器的FTP插件,支持的协议包括:FTP, FTPS, FTPES以及SFTP,以下是NppFtp的官方说明: NppFTP: a plugin that allows FTP, FTPS, FTPES and SFTP communications. Very useful ...”
2015
11月
25
MySQL索引的查看创建和删除
“1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。 SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 此查询结果应该为1000行,每行包含3个相等的值。在无索引的情况下处理此查询,必须寻找3个表所有的组合,以便得出与WHERE子句相配的那些行。而可能的组合数目为1000×1000×1000(十亿),显然查询将会非常慢。 如果对每个表进行索引,就能极大地加速查询进程。利用索引的查询处理如下。 (1)从表t1中选择第一行,查看此行所包含的数据。 (2)使用表t2上的索引,直接定位t2中与t1的值匹配的行。类似,利用表t3上的索引,直接定位t3中与来自t1的值匹配的行。 (3)扫描表t1的下一行并重复前面的过程,直到遍历t1中所有的行。 在此情形下,仍然对表t1执行了一个完全扫描,但能够在表t2和t3上进行索引查找直接取出这些表中的行,比未用索引时要快一百万倍。 利用索引,MySQL加速了WHERE子句满足条件行的搜索,而在多表连接查询时,在执行连接时加快了与其他表中的行匹配的速度。 2. 创建索引 在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。 1.ALTER TABLE ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY ...”
MySQL索引类型一览 让MySQL高效运行起来
“索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。 在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了10000条记录,其中有一条:5555, admin。 在查找username="admin"的记录 SELECT * FROM mytable ...”
24
关于Intellij IDEA乱码的问题
“新安装的Intellij IDEA,配置好Tomcat并启动之后发现console中输出的中文都是乱码的,乱码问题司空见惯了,于是在打开tomcat的配置窗口,中添加了以下 VM 参数: -Dfile.encoding=UTF-8 然而这并没有什么卵用,于是进入在Intellij IDEA 安装目录的 bin 目录下,打开 idea64.exe.vmoptions 文件,把上面的参数加到了文件末尾,重启之后,乱码依旧。这个时候,我有点怀念Eclipse。最后,在同事的帮助之下发现原来在Intellij IDEA的bin目录下有两个以vmoptions结尾的文件,分别为 idea.exe.vmoptions idea64.exe.vmoptions 在这两个文件中都加上编码参数就OK了。 ”
JSP的Request对象总结
“Resquest对象主要用于接收客户端通过HTTP协议连接传输到服务器端的数据。在客户端的请求中如果有参数,则该对象就有一个参数列表,它通常是HttpServlet-Request的子类,其作用域就是一次Request请求。Request对象包括很多方法,主要有以下几种。  object getAttribute(String name) 返回指定属性的属性值 Enumeration getAttributeNames() 返回所有可用属性名的枚举 String getCharacterEncoding() 返回字符编码方式 int getContentLength() 返回请求体的长度(以字节数) String getContentType() 得到请求体的MIME类型 ServletInputStream getInputStream() 得到请求体中一行的二进制流 String getParameter(String name) 返回name指定参数的参数值 Enumeration getParameterNames() 返回可用参数名的枚举 String[] getParameterValues(String name) 返回包含参数name的所有值的数组 String getProtocol() 返回请求用的协议类型及版本号 String getScheme() 返回请求用的计划名,如:http.https及ftp等 String ...”
JSP的application对象总结
“application对象是一个特别重要的JSP对象,它存在于服务器的内存空间中,服务器一旦启动,就会自动产生一个application对象,除非服务器被关闭,否则这个application对象将一直保持下去。在application对象的生命周期中,在当前服务器上运行的每一个JSP程序都可以任意存取和这个application对象绑定的参数(或者Java对象)的值。 application对象的这些特性为我们在多个JSP程序中、多个用户共享某些全局信息(如当前的在线人数等)提供了方便。由此我们可以不借助数据库就实现聊天室的功能。 application对象其实是实现javax.servlet.ServletContext接口的类的实例对象,那么我们具体如何获得application对象呢?有以下几种方法。 1)在JSP程序中直接使用application以代表application对象 2)使用ServletConfig接口 使用ServletConfig接口可以间接获取application对象,但是这个application对象的名字不能同样为application,因为application是JSP引擎创建的默认的application对象的副本,不能够被覆盖。使用ServletConfig接口其实就是使用config对象,config对象是实现ServletConfig接口的类的实例对象,它可以通过调用getServletContext()方法返回一个ServletContext接口的对象,也就是application对象的一个副本,如程序4-3所示。 【程序4-3】createApp1.jsp 程序4-3首先创建了一个application对象的拷贝app,然后使用getServletInfo()方法获取服务器的相关信息,该程序的运行效果如图4-4所示。 图4-4 createApp1.jsp程序的运行效果 3)使用pageContext对象获取application对象pageContext对象的getServletContext()方法同样可以返回一个application对象的副本, 如程序4-4所示。 【程序4-4】createApp2.jsp 程序4-4的运行效果如图4-5所示,我们从图中可以发现,与程序4-3的运行效果是相同的。 图4-5 createApp2.jsp程序的运行效果 在JSP服务器的运行过程中,仅有一个application对象,application对象是由服务器创建的,由服务器自动清除它,不能被用户创建,用户也不能清除application对象,我们只能创建这个application对象的同步副本。application就是由JSP引擎自动创建的第一个application对象的同步副本。特别需要注意的是这些副本是同步的,任何一个副本上发生的变化都会影响到其他的副本。 ”
MySQL Show命令的使用
“show tables或show tables from database_name; 解释:显示当前数据库中所有表的名称 show databases; 解释:显示mysql中所有数据库的名称 show processlist; 解释:显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看 他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。 show table status; 解释:显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间 show columns from table_name from database_name; 或show ...”
物流术语总结
“快递: 又名速递,是兼有邮递功能的门对门物流活动,即指快递公司通过铁路、公路和空运等交通工具,对客户货物进行快速投递。在很多方面,快递要优于邮政的邮递服务。除了较快送达目的地及必须签收外,现时很多快递业者均提供邮件追踪功能、送递时间的承诺及其他按客户需要提供的服务。因此,快递的收费比一般邮递高出许多。 收寄 收寄流程是指业务员从客户处收取快件的全过程,包括验视、包装、填写快件详情单和交接款项等环节。收寄可分为上门揽收及网点收寄两种形式。 揽收 揽收即指投递员接到投寄需求后,上门收取需要投寄的邮件。快递员已收件就叫做揽收成功。揽收是指快递员取件的动作,不是送件。在几个快递员之间倒手,每一次快递员拿到件,已收件就叫做揽收成功。 超派件 这个意思就是说快递公司只送到他们规定的范围之内,超出了这个范围,就属于超派; 实际上超派就是叫客户自己去取,首先快递员会先与你联系,把大概地址跟你说好大概去哪里取件的,一般都是离你最近的快递分部,如果楼主实在不方便去拿,可以叫他给你送到他们可以派送的范围之内,自然其中也是少不了你要打电话给快递,起码取件要找到确切地址不容易; 另外这种快件最好自己去取,如果是代收的话程序比较麻烦! ”
项目启动会和项目开工会议的区别
“项目启动会项目开工会议 在项目会议中,有项目启动会和项目开工会议这两个会议,经常有学员分不清,现在就对这两者进行一下区分: 一、项目启动会 1、英文名称:initiating meeting; 2、召开时间:是启动阶段结束时召开的会议; 3、主要任务:发布项目章程,并任命项目经理,赋予项目经理动用组织资源的权力; 4、注意事项: (1)会议召开前已经对干系人进行了识别,已经有了干系人登记册与干系人管理策略。 此时应当让各方干系人进行认识和会面,让客户方领导表达信息化推动的决心,向项目经理和项目小组成员进行授权,调动员工的积极性,让客户方从上到下达成一种共识,为项目团队日后开展相关的工作扫除障碍。 (2)启动会召开时已经对风险进行了初步规划与识别(风险类别); (3)项目经理要向相关干系人汇报项目计划,但此时的计划是非常粗略的计划,不能用于指导项目执行。 用于指导项目执行的项目管理计划需要滚动式规划渐进明细,通过制定项目管理计划过程组才能得到真正的项目管理计划。 二、项目开工会议(开踢会议) 1、英文名称:kick-off meeting 2、召开时间:项目管理计划完成后、实施之前 3、会议目的: (1)项目团队成员互相认识; (2)介绍项目背景及计划,正式批准综合性项目管理计划,并在干系人之间达成共识。 (3)落实具体项目工作,明确个人和团队职责范围,获得团队成员承诺,为进入项目执行阶段做准备。 4、已做事项:开踢会议(开工会议)召开前,通常已经确定了项目的组织结构,并已经对团队成员的角色与职责进行定义。 5、已有文件:此时用于指导项目的项目管理计划已经制定出来,因此,在开工会议中,通常需要对项目的范围、进度、成本、风险应对等事项进行确认,并在干系人之间达成共识。 PMP考试中项目启动会是initiating meeting,与开踢大会不是一个会,有一次PMP考试就同时出现了initiating meeting与kick-off meeting;当时,前者PMI翻译为项目启动会,后者PMI翻译为开踢大会。 例题: 下列哪一项包含作为项目启动大会(Kick-Off)的讨论议题? A. 主要风险,职责范围,高层次预算和进度 B. 工作分解结构,详细进度,项目计划和风险登记册 C. 质量计划,预算进度和工作分解结构 D. 章程,干系人分析,预算和项目计划 推荐答案是: A”
22
主动收入 vs 被动收入
“1、暂时收入:95%以上的人赚的是暂时收入。(当工作的行为一旦终止,收入是不是会归零?如果答案为“是”的话,那你就是在赚暂时性收入。) 2、持续收入:持续收入是一种每个月会自己流进来的收入,它不会随着我们不再工作而停止。例如政府拥有营业税、水电费等持续收入。 全世界的巨富都在做两件事(1)建立系统;(2)寻找顶尖的人才,以建立更大更棒的系统帮他们赚钱。他们都懂得运用别人的时间和金钱致富,但却没有一个有钱人是靠单打独斗致富的,都拥有一个系统帮自己赚钱。你是已经决定活到老工作到老,还是有累积持续的收入计划? 工作不是为了赚钱或养老。年轻时努力工作,年老时要靠公司养老,靠公司照顾我们一辈子,这样的事在这个时代简直是天方夜谭,老板的任务是向我们提供薪水,让我们在公司学习、实现人生价值。至于如何致富,那是我们自己的事情了。财富不应该用生命赚取,我们应该是利用系统,让财富源源不绝地出现,学着用工具赚钱,而不是耗尽自己的生命来养家。 所谓资产,就是买了之后,还可以帮你生财,能把钱持续放进你口袋里的东西。而负债,就是用了就没了,只是把钱从你口袋里取走。房子如果是用来给自己住,就不能产生收入,但如果我们把房子拿去租,带来的租金在付了房贷后还有剩余,那房子就是资产了。因此我们必须不断地想,如何把原本的负债变成资产。 凡是不可持续的,就不值得羡慕。赚多少钱不重要,能赚多久才是最重要的。做一次生意,领一次报酬,还是领N次,你选择哪一种? 想想你目前的工作能帮自己带来几次报酬?你卖的东西是一生能用几次的?你今天找的客户,是不是明天还会来消费?很多种选择,事实上是可以让你多次获利的。 我们必须努力成为一个支配资源、建构系统的人,而不仅仅是公司里人力资源或系统的一部分。没工作就没收入,过去的努力总在下个月一笔勾销,都得重新开始。有没有那种收入呢,只要努力工作就能永远获得丰收,即使退休也不用愁,因为每个月都会有钱不断地流进钱包? 有,那就是建一个系统,或加入一个系统追求持续收!系统能带给我们持续收入,让我们享有财务上的自由,很多亿万富翁都熟知这个道理,每一个事业成功者几乎都曾经是一个系统建构者,或系统拥有者。任何一个成功的企业都会先建构一套系统,建构系统之后,它会让钱自己流进来。 倍增也是件很重要的事,学会运用倍增之后,要成为亿万富翁就轻而易举了。许多连锁式机构扩张的速度非常快,这就是一种倍增。如果有人开了一家店,每月大约赚10万,可能经过7年,每月仍然维持只赚10万,但是假如店主有倍增的观念,每年培训多一位的经理,把一家店面变成两家,第二年增加到4家,第三年增加到8家,一直这样下去,那么7年后,这家店的老板月收入就会是2550万。爱因斯坦曾说过:复利,比原子弹更可怕。 ”
再次推荐极简主义生活方式!
“导读:极简主义生活方式,是对自身的再认识,对自由的再定义。深入分析自己,首先了解什么对自己最重要,然后用有限的时间和精力,专注地追求,从而获得最大幸福。放弃不能带来效用的物品,控制徒增烦恼的精神活动,简单生活,从而获得最大的精神自由。 欲望极简 了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。 把自己的精力全部用在自己最迫切的欲望上,如提升专业素养、照顾家庭、关心朋友、追求美食等。 精神极简 了解、选择、专注于1-3项自己真正想从事的精神活动,充分学习、提高。不盲目浪费自己的时间与精力。 物质极简 将家中超过一年不用的物品丢弃、送人、出售或捐赠。比如看过的杂志、书,不再穿的衣服,早先收到的各种礼物或装饰品。 明确自己的欲望和需求,不买不需要的物品。 确有必要的物品,买最好的,充分使用它。 不囤东西,不用便宜货、次品。 用布袋,代替塑料袋和纸袋。 用一支好用的钢笔,替代堆积如山的中性笔。 用瓷杯、钢杯代替纸杯。 用电脑写东西,少用纸。养成纸质文件扫描、存档的习惯。 整合、精简电源线、充电设备。不重复购买电子产品。 精简出门行头,只带“身手钥纸钱”。 精简银行卡,仅保留一张借记卡一张信用卡。 信息极简 精简信息输入源头,减少使用社交网络、即时通讯。少看微博、朋友圈。 定期远离互联网、远离手机,避免信息骚扰。 不关注与己无关的娱乐、社会新闻。 精简电子邮箱数量。 关注少而精,宁缺毋滥。时间线干净。 APP使用少而精,删除长期不使用的应用。 表达极简 写东西、说话,尽可能简单、直接、清楚。 多用名词、动词。少用形容词、副词。 工作极简 使用有效的GTD方法,不拖延。 及时清理电子邮件,不要让它们堆积起来。 一次只专注做一件事,尽可能不做Multi-task。 生活极简 慢生活。 不做无效社交。 锻炼。 穿着简洁、不花哨。 少吃含有添加剂的食品。 喝白水和纯果汁,不喝添加了大量化学成分的碳酸饮料和果汁。 实践极简主义的方法、角度有很多,关键是要行动起来。 ”
信用卡中银联、VISA、MasterCard、JCB的区别
“在申请信用卡的时候,你是否注意到信用卡的卡面上有银联、VISA、MasterCard这三种不同的标志呢?其实,银联、VISA、MasterCard分别代表不同网络信用卡组织。VISA(维萨)和MASTERCARD(万事达)是国际上两个大的信用卡组织;而银联是属于国内组建的跨国股份制金融服务机构。 VISA和MASTERCARD是两个国际信用卡组织。在国际上主要有威士国际组织 (VISA International)及万事达卡国际组织(MasterCard International)两大组织及美国运通国际股份有限公司(America Express)、大来信用证有限公司(Diners Club)、JCB日本国际信用卡公司(JCB)三家专业信用卡公司。 VISA 威士国际组织是目前世界上最大的信用卡和旅行支票组织。威士国际组织的前身是1900年成立的美洲银行信用卡公司。1974年,美洲银行信用卡公司与西方国家的一些商业银行合作,成立了国际信用卡服务公司,并于1977年正式改为威士(VISA)国际组织,成为全球性的信用卡联合组织。 威士国际组织拥有VISA、ELECTRON、INTERLINK、PLUS及VISA CASH等品牌商标。 威士国际组织本身并不直接发卡,VISA品牌的信用卡是由参加威士国际组织的会员(主要是银行)发行的。目前其会员约2.2万个,发卡逾10亿张,商户超过2000多万家,联网ATM机约66万台。 MasterCard 万事达卡国际组织是全球第二大信用卡国际组织。1966年美国加州的一些银行成立了银行卡协会(Interbank Card Association),并于1970年启用Master Charge的名称及标志,统一了各会员银行发行的信用卡名称和设计,1978年再次更名为现在的MasterCard。万事达卡国际组织拥有MasterCard、Maestro、Mondex、Cirrus等品牌商标。万事达卡国际组织本身并不直接发卡,MasterCard品牌的信用卡是由参加万事达卡国际组织的金融机构会员发行的。目前其会员约2万个,拥有超过2100多万家商户及ATM机。 银联 银联是经中国人民银行批准的、由八十多家国内金融机构共同发起设立的股份制金融服务机构,注册资本16.5亿元人民币。公司于2002年3月26日成立,总部设在上海。银联采用先进的信息技术与现代公司经营机制,建立和运营广泛、高效的银行卡跨行信息交换网络系统,制定统一的业务规范和技术标准,实现高效率的银行卡跨行通用及业务的联合发展,并推广普及银联卡,积极改善受理环境,推动我国银行卡产业的迅速发展,把银联品牌建设成为国际主要银行卡品牌,实现"中国人走到哪 里,银联卡用到哪里”。 JCB JCB卡是源自日本的世界通用国际信用卡。 JCB 是成立于 1961 ...”
15
数据分析之 - DAU,MAU,及DAU/MAU专业名词解释
“最近看到FaceBook上的social game分析报表,发现一些未知专业名词,比如DAU(或者dau)以及MAU(mau)这两个缩写是什么?其含义代表什么呢?分析这两个指数对我们又有什么帮助呢? 其实很简单,全称如下: DAU(dau)=Daily Activited Users 日活跃用户 MAU(mau)=Monthly Activited Users 月活跃用户 这两个指标一般出现在在线服务的分析统计指标中,比如在线文档,或者是网页邮箱服务,网络游戏,SNS游戏等等。 这两个指标一般用来衡量服务的用户粘性以及服务的衰退周期。 现在来看DAU/MAU是什么: 这个指标目前在SNS游戏里面出现,这个怎么计算的,按计算DAU的当天算起,计算MAU往前推30天计算MAU,这相当于计算一个移动平均,这个公式里面只有两个参数,我们假设MAU不变,而是DAU在增加,说明什么,说明游戏对用户的口碑及粘性正开始发生深度的交互作用,如果是DAU在降低呢,则说明同样样本的用户池,用户开始对游戏不敢兴趣,当然你可以对照DAU和MAU得出结论,但是实际上,有这个比值视乎更直观一些。MAU、DAU分别从宏观和微观的角度对服务的用户粘性做了权衡,也可以这么说,MAU更像战略层面的表征,DAU更像战术层面的表征。通过这些宏观和细微的趋势变化,可以对营销及推广提供一些数据支持或者帮助。 ”
14
VI快捷键攻略
“Vi提供了三个关于光标在全屏幕上移动并且文件本身不发生滚动的命令。它们分别是H、M和L命令。 (1)H命令 该命令将光标移至屏幕首行的行首(即左上角),也就是当前屏幕的第一行,而不是整个文件的第一行。利用此命令可以快速将光标移至屏幕顶部。若在 H命令之前加上数字n,则将光标移至第n行的行首。值得一提的是,使用命令dH将会删除从光标当前所在行至所显示屏幕首行的全部内容。 (2)M命令 该命令将光标移至屏幕显示文件的中间行的行首。即如果当前屏幕已经充满,则移动到整个屏幕的中间行;如果并未充满,则移动到文本的那些行的中间行。利用此命令可以快速地将光标从屏幕的任意位置移至屏幕显示文件的中间行的行首。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式下,输入命令M之后,光标都将移到add这一行的字母a上。同样值得一提的是,使用命令dM将会删除从光标当前所在行至屏幕显示文件的中间行的全部内容。 (3)L命令 当文件显示内容超过一屏时,该命令将光标移至屏幕上的最底行的行首;当文件显示内容不足一屏时,该命令将光标移至文件的最后一行的行首。可见,利用此命令可以快速准确地将光标移至屏幕底部或文件的最后一行。若在L命令之前加上数字n,则将光标移至从屏幕底部算起第n行的行首。同样值得一提的是,使用命令dL将会删除从光标当前行至屏幕底行的全部内容。 让我们看看最简单也是最常用的编辑过程:没有人不犯错误。所以迟早你会碰到修改你输入的文本的时候。实际上花在字处理上的大多数时间是修改而不是输入新的东西。因此,你要知道如何方便地修改就很重要。 (1)x–删除一个字符 删除文字的最简单的方式是用x。这个命令的结果是光标所处的字符的消失,后面的文字左移动。如果你删除的字符是一行最后的一个字符,那么光标将向左移动一个,这样光标就不会停留在不存在的字符的下面了。假如没有任何文字了,喇叭就叫。 (2)d–删除对象 这个命令的右边还要有一定的文字对象。文字对象就是一块文字。他右边接的就是在控制光标移动的那些字符。例如 w 表示向前一个单词,那么 dw 将删除下一个单词。5w 表示前进5个单词,那么 d5w 将删除他们。 (3)dd–删除一行 最常用的 d 系列命令之一。和前面一样, 5dd 将删除 5 行 (4)D–整个删除 大写形式的 ...”
剖析:MySQL的左连接、右连接、等值连接异同
“n 三种连接的语法 为便于更多的技友快速读懂、理解,我们只讨论2张表对象进行连接操作的情况,大于2张表对象进行的连接操作原理也是一样的。 u 左连接(LEFT JOIN ) SELECT M.columnname……,N.* columnname….. FROM left_table M LEFT JOIN right_table N ...”
MySQL Show命令的使用
“show tables或show tables from database_name; 解释:显示当前数据库中所有表的名称 show databases; 解释:显示mysql中所有数据库的名称 show processlist; 解释:显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看 他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。 show table status; 解释:显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间 show columns from table_name from database_name; 或show ...”
13
Java 日志管理最佳实践
“日志记录是应用程序运行中必不可少的一部分。具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源。对于开发人员来说,在程序中使用日志API记录日志并不复杂,不过遵循一些最佳实践可以更好的利用日志。本文介绍了在Java程序中记录日志的最佳实践,同时也介绍了如何使用开源软件对日志进行聚合和分析。 概述 对于现在的应用程序来说,日志的重要性是不言而喻的。很难想象没有任何日志记录功能的应用程序运行在生产环境中。日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间信息等。在生产环境中,日志是查找问题来源的重要依据。应用程序运行时的产生的各种信息,都应该通过日志 API 来进行记录。很多开发人员习惯于使用 System.out.println、System.err.println 以及异常对象的 printStrackTrace 方法来输出相关信息。这些使用方式虽然简便,但是所产生的信息在出现问题时并不能提供有效的帮助。这些使用方式都应该改为使用日志 API。使用日志 API 并没有增加很多复杂度,但是所提供的好处是显著的。 尽管记录日志是应用开发中并不可少的功能,在 JDK 的最初版本中并不包含日志记录相关的 API 和实现。相关的 API(java.util.logging ...”
mysql创建表CREATE TABLE语法
“MySQL中create table语句的基本语法是: CREATE TABLE tbl_name TEMPORARY: 该关键字表示用MySQL create table新建的表为临时表,此表在当前会话结束后将自动消失。临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用。 IF NOT EXISTS: 实际上是在建表前加上一个判断,只有该表目前尚不存在时才执行create table操作。用此选项可以避免出现表已经存在无法再新建的错误。 tbl_name:你所要创建的表的表名。该表名必须符合标识符规则。通常的做法是在表名中仅使用字母、数字及下划线。例如titles、our_sales、my_user1等都应该算是比较规范的表名。 create_definition: 这是MySQL create table语句中关键部分所在。在该部分具体定义了表中各列的属性。 column_definition: ...”
12
SQL去重
“上周工作中数据库中出现了N多重复记录的情况,导致联合查询时数据异常。由于数据是客户提供的,当时并没有提供唯一标识列,而且也没预料到会出现重复数据。哎,大意了。后来对表中的数据进行了一次重复查询。 1、查找表中重复记录,重复记录是根据单个字段来判断,并统计重复次数 SELECT ,COUNT(0) AS 重复次数 FROM GROUP BY HAVING COUNT() > 1 2、删除表中多余的重复记录,重复记录是根据单个字段来判断,只留有rowid最小的记录 DELETE FROM ...”
sql中的group by 和 having 用法解析
“sql中的group by 用法解析: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 注意:group by 是先排序后分组。 举例说明: 如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术。 select DepartmentID as '部门名称', COUNT(*) as ...”
11
nginx常用的超时配置说明
“client_header_timeout 语法 client_header_timeout time 默认值 60s 上下文 http server 说明 指定等待client发送一个请求头的超时时间(例如:GET / HTTP/1.1).仅当在一次read中,没有收到请求头,才会算成超时。如果在超时时间内,client没发送任何东西,nginx返回HTTP状态码408(“Request timed out”) client_body_timeout 语法 client_body_timeout time 默认值 60s 上下文 http ...”
09
Velocity判断null和空
“1、判断Velocity 是否为null 方法一 、 #ifnull() 或 #ifnotnull() Eg: #ifnull ($XXX) Warn:要使用这个特性必须在velocity.properties 文件中加入: userdirective = org.apache.velocity.tools.generic.directive.Ifnull userdirective = org.apache.velocity.tools.generic.directive.Ifnotnull 方法二 、$null.isNull() Eg:#if($null.isNull()) 推荐使用方法二,特别是在判断集合对象为null时,灰常有用。 2、判断Velocity是否为空 判断空:#if (! ...”
mysql.sock文件
“mysql.sock文件是服务器与本地客户端进行通信的Unix套接字文件,其默认位置是/tmp/MySQL.sock。这有可能导致问题,原因在于,在某些版本 的Unix上,任何人都能删除/tmp目录下的文件。 在大多数Unix版本中,可对/tmp目录进行保护,使得文件只能被其所有这或 超级用户(根用户)删除。为此,以根用户身份登录,并使用下述命令在/tmp目录上设置粘着位: shell> chmod +t /tmp 通过执行ls -ld /tmp,可检查是否设置了粘着位。如果最后一个许可字符是“t”,表明设置了粘着位。 另一种方法是改变服务器创建Unix套接字文件的位置。如果进行了这类操作,还应让客户端程序知道文件的位置。能够以多种不同方式指定文件位置: 在全局或局部选项文件中指定路径。例如,将下述行置于文件/etc/my.cnf中: socket=/path/to/socket socket=/path/to/socket 在运行客户端程序时,在命令行上为mysqld_safe指定“--socket”选项。 将MYSQL_UNIX_PORT环境变 量设置为Unix套接字文件的路径。 重新从源码编译MySQL,以使用不同的默认Unix套接字文件位置。运行configure 时,用“--with-unix-socket-path”选项定义文件路径。 用下述命令连接服务器,能够测试新的套接字位置是否工 作: shell> mysqladmin --socket=/path/to/socket version ”
重启nginx后丢失nginx.pid的解决方法
“一,nginx的停止操作 停止操作是通过向nginx进程发送信号来实现的。 步骤1:查询nginx主进程号 代码如下: ps -ef | grep nginx 在进程列表里 面找master进程,它的编号就是主进程号了。 步骤2:发送信号 从容停止Nginx: kill -QUIT 主进程号 快速停止Nginx: kill -TERM 主进程号 强制停止Nginx: kill -9 nginx 另外,若在 nginx.conf 配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下: kill ...”
简明nginx常用命令
“1. 启动 Nginx poechant@ubuntu:sudo ./sbin/nginx 2. 停止 Nginx poechant@ubuntu:sudo ./sbin/nginx -s stop poechant@ubuntu:sudo ./sbin/nginx -s quit -s 都是采用向 Nginx 发送信号的方式。 3. ...”
Linux 使用pid文件结束nginx
“nginx的结束重启一般是通过下面命令来实现的: kill -QUIT 26000 其中26000是nginx的主进程号。 每次都需要通过ps命令来查询nginx的主进程号,非常麻烦。 在《实战nginx:取代Apache的高性能Web服务器》一书中提到了使用pid文件的方法,不巧的是给的命令漏了些东西,这里给出完整的指令。 什么是pid文件 pid文件就是一个纯文本文件,里面记录的是进程的pid号。 下面是一个pid文件的内容:: 26032 nginx的默认pid文件 nginx使用了pid文件来记录master process的pid号,如果编译时没有指定,那它的路径就是: /logs/nginx.pid 其中是nginx的安装路径。 如果你想修改默认的pid文件路径,可以在编译时加入配置。参数如下:: ./configure –-pid-path=/data/test/ngx.pid 指定后,默认的pid文件路径就更改为:: /data/test/ngx.pid 如果指定只是路径,没有pid的文件名,那么pid的文件名还是nginx.pid 通过配置文件修改pid 除了使用默认值和通过编译时修改外,还可以通过在nginx的配置文件中修改。如下: pid /data/test/nginx.pid; 这里修改的值只对使用该配置文件的nginx有效。 用PID文件停止Nginx 假设pid文件路径为/data/logs/nginx.pid kill –QUIT `cat /data/logs/nginx.pid` 用pid文件重新加载配置文件 kill –HUP `cat /data/logs/nginx.pid` ”
Linux 使用pid文件结束nginx
“nginx的结束重启一般是通过下面命令来实现的: kill -QUIT 26000 其中26000是nginx的主进程号。 每次都需要通过ps命令来查询nginx的主进程号,非常麻烦。 在《实战nginx:取代Apache的高性能Web服务器》一书中提到了使用pid文件的方法,不巧的是给的命令漏了些东西,这里给出完整的指令。 什么是pid文件 pid文件就是一个纯文本文件,里面记录的是进程的pid号。 下面是一个pid文件的内容:: 26032 nginx的默认pid文件 nginx使用了pid文件来记录master process的pid号,如果编译时没有指定,那它的路径就是: /logs/nginx.pid 其中是nginx的安装路径。 如果你想修改默认的pid文件路径,可以在编译时加入配置。参数如下:: ./configure –-pid-path=/data/test/ngx.pid 指定后,默认的pid文件路径就更改为:: /data/test/ngx.pid 如果指定只是路径,没有pid的文件名,那么pid的文件名还是nginx.pid 通过配置文件修改pid 除了使用默认值和通过编译时修改外,还可以通过在nginx的配置文件中修改。如下: pid /data/test/nginx.pid; 这里修改的值只对使用该配置文件的nginx有效。 用PID文件停止Nginx 假设pid文件路径为/data/logs/nginx.pid kill –QUIT `cat /data/logs/nginx.pid` 用pid文件重新加载配置文件 kill –HUP `cat /data/logs/nginx.pid` ”
10月
27
删除ArrayList中的重复元素
“总结了两种删除ArrayList中重复元素的方法。 方法一: // 删除ArrayList中重复元素,保持顺序 public static void removeDuplicateWithOrder(List list) { Set set = new HashSet(); ...”
8月
11
svn merge 命令使用
“Subversion的分支通常用于在主干程序之外,对程序进行修改。这样 可以在不扰乱主干程序进行的开发、测试、发布流程之外,尝试一下新功能的研究、修改。如果觉得新功能没问题,可以将分支合并到主干程序中。 合并前,需要将分支提交(Commit),由此看来,合并操作好象是在服务端和本地客户端同时进行的操作。 合并时,要从主干的working copy的右键菜单开始,"From" Url是合并的目的地,需选择主干的url,"To"是合并的来源,需选择分支的url。 svn 的 merge其实很好用,当然前提是你明白了svn merge这个命令,还好,我用了大约一年明白了这个命令 -___-!! 跟大家说一下用法,比如我们要把分支merge到主干上 # svn merge --help merge: Apply the differences between ...”
7月
20
做事4步曲:先问目的,再做推演,亲手打样,及时复盘
“在孙陶然的微博上,看到拉卡拉的方法论16个字:先问目的,再做推演,亲手打样,及时复盘,我觉得这16个字对实践很有指导价值。它提供了我们面对一件事情如何做的完整结构。虽简单,但如果真能按照这四个步骤去做,实践的效率和结果的品质肯定会得到提高。 下面我谈谈自己的学习感悟: 第一步:先问目的 “先问目的”是做任何事情的第一步,就工作层面而言,我们去做某件事,或者完成某个任务,都不是为了做而做,是一定要达成某个目的才去做的。这是最基本的常识。 但是,现实中真正先搞清楚目的再去做的情况还真不多,只有少数能做成事情的人,他们可能明白个中深意。因为大部分人都是按照这个社会的行为惯性在行动,就是说我们已经有现成的参考模式,新员工按照老员工的方法做,新人按照领导的方式做。如果一直按照这样方式进行的话,会带来两种情况。 第一,老员工或者领导的理念和方法是正确的,那么你按照它的思路去做,表面上可能没有什么问题,但是你只是知道了表层的方式,但是没理解背后的目的,你做的事情就是为了完成而完成,很容易偏离主要目的。 第二,老员工的理念和方法本来就不够本质,那么你也按照他所仰赖的惯性在行动,那就是以盲引盲。当然,有时候你可能并不会发现它有多大的坏处。因为这可能就是社会的主流惯性,其实这种例子真的蛮多的,就拿广告行业来说,其实大部分广告人就是在追求广告的美啊,大气啊,品味啊,这些东西,但是这些东西虽然不够本质,但是也并没有妨碍那些公司的生存,因为很多客户也没有本质的认识。 但是实际上,那些真正能从无到有做成事情的人,他们就深知目的导向的重要性。为什么很多草根企业家都是那种能够一针见血抓本质的人,因为他们之所以能够生存下来,大部分都不是盲动主义者,都是搞清目的再行动。 所以,在工作中,一定要明白你做事情的目的是什么,既知其然,也知其所以然。这样才能真正对企业有价值,对社会有价值。 第二步:再做推演 推演场景模拟,就是在沙盘上或者在大脑中将要做的事情模拟一遍。 孙陶然说,“沙盘上推演不出来的胜利,现实中也不可能会发生”。 现实正是如此,排除个别运气特别好的,撞大运才能胜利,但毕竟是少部分人在少部分情况下的胜利。 推演就是孙子兵法上讲的“少算不胜,而况于无算乎!吾以此观之,胜负见矣”。 推演就是毛泽东讲的“不打无把握之仗”。把握何来?来自推演。 推演的目的就是达到“先胜而后求战”的效果。就是先构想出胜利,再把胜利变现出来。 推演虽不能完全穷尽真正的现实场景,但是通过现实场景的构想,能让我们做出最充分的准备。 对于,我们做策划的启发就是,我们制定的品牌定位或者策略,把终端场景给构想出来,把消费者给构想出来,然后想象下,把你的诉求告诉他们,他们会被打动而购买吗? 对于做一个广告片也是如此,你想象出来家里的客厅,家里人都在各做各的事,你的广告片播放的时候,能否唤醒目标消费群的注意力,能否在消费者毫无准备的情况下,让他至少记住你的品牌,记住你的购买理由。等等。 所以,说学会推演,只有推演,你才能跳出问题看问题,把自己置于一个旁观者的位置看待这件事,这样胜算的把握才会更大。 第三步:亲手打样 亲手打样就是做任何事,先建样板再复制。 打样就是开模具,也就是先打造出一个胜利单元,然后有了一个就可以有千千万万个。 打样最基本的原因就在于“实践出真知”。因为只有实践才是检验真理的唯一标准。毛主席说,指导中国革命的理论只能在革命中产生。打样就是要建立适合你品牌运作的革命理论和革命方法。 没有打样,就生硬的把自己的构想推向市场,就容易造成高尝试成本,全面性的失败对企业是个致命的打击。就像一个广告片没经过销售力测试,就直接上央视,央视高昂的广告价格足以吃掉中小企业多年的利润。因此,打样是避免大失败最好的办法。 这里孙陶然前面加了一个“亲手”,特指领导人或者相关部分负责人一定要亲自打样。只有亲手打样,因为打样的过程既是一个验证战略的过程,也是一个纠错的过程。因为战略是企业领导人做出来的,它只有在亲自打样中才能发现战略中的不足,这是打样的战略价值。 尤其对我们做营销工作特别具有指导意义,要做全国市场,先做区域市场。通过区域市场的试点,练就市场策略的套路化和团队运作的标准,为图谋全国市场加快步伐。 史玉柱就特别重视营销试点工作,他说“全国市场慢不得,样板市场快不得。”样板市场市场的慢是为了全国市场的快。 所以,打样是一种科学运作市场的方法,是化偶然的胜利为必然的胜利的途径。 第四步:及时复盘 复盘是个象棋术语,也称为“复局”,以检查对局中招法的优劣与得失关键。 复盘也就是古人说的“吾日三省吾身”。它是一种对自己工作或者生活的深刻反省,不管是失败还是成功都需要复盘,失败可以得到教训,成功可以吸取经验,通过不断的复盘,人生的各种经历都可以得到沉淀。 所以说,复盘确实是最好的学习,远远比读书效果要好很多。因为复盘是属于体悟层面的,读书学的是别人的东西,缺乏深刻的体验。一般来说,我们最终沉淀的东西,都是自己体悟出来的。 复盘是联想文化中最重要的组成部分,柳传志本人是一个习惯复盘、善于复盘的人。所以,联想的人在每做完一件事,都要召开复盘会,大家一起复盘,总结经验、吸取教训、沉淀结果。 复盘的方法一般是横向的结构分析和纵向的流程分析。首先是结构分析,这件事的组成结构有哪几大板块,在每个板块自己做的怎么样,有没有把握每个结构板块的关键点。纵向的流程分析就是按照做事的流程重新过一遍,把握每个关键环节的得失关键。通过复盘优化做事流程,完善做事的结构和关键点把握,下次胜利的把握肯定会大很多。 “先问目的,再所推演,亲手打样,及时复盘”确实是非常棒的方法论。对实践具有清晰而实用的指导价值。记得在你的工作中应用试试。 ”
15
History对象使用小结
“简介 History 对象包含用户(在浏览器窗口中)访问过的 URL。History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。History 对象最初设计来表示窗口的浏览历史。但出于隐私方面的原因,History 对象不再允许脚本访问已经访问过的实际 URL。唯一保持使用的功能只有 back()、forward() 和 go() 方法。 注意: 没有应用于 ...”
08
Linux后台运行命令&
“这里继续介绍Linux后台运行命令&,这个命令比较常用,还是和前面一样,Linux后台运行命令比较一下学习,和前面两篇比较一下。 Linux后台运行命令前面介绍了cron和crontab、at这两个命令,后面这里继续介绍&,使用这个命令将不会占据终端,将进程放入后台运行。还是要讲Linux后台运行命令加以比较学习,结合举例印象更深。当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用&命令把作业放到后台执行。 该命令的一般形式为: 命令 & 在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。 不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中: command >out.file 2>&1 & 在上面的例子中,2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。 当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。 例一: 查找名为“httpd.conf”的文件,并把所有标准输出和错误输出重定向到find.dt的文件中: # find /etc/httpd/ -name "httpd.conf" -print >find.dt 2>&1 & 7832 ...”
java中key值可以重复的map:IdentityHashMap
“在java中,有一种key值可以重复的map,就是IdentityHashMap。在IdentityHashMap中,判断两个键值 k1 和 k2 相等的条件是 k1 == k2 。在正常的Map 实现(如 HashMap)中,当且仅当满足下列条件时才认为两个键 k1 和 k2 相等:(k1==null ...”
07
linux下echo命令详解
“linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法。 echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。 该命令的一般格式为: echo 字符串 其中选项n表示输出文字后不换行;字符串可以加引号,也可以不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。 语法: echo 或 echo 补充说明: echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。 参数: -n 不要在最后自动换行 -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般 –help 显示帮助 –version 显示版本信息 文字输出: \a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n ...”
06
删除ArrayList中的重复元素
“总结了两种删除ArrayList中重复元素的方法。 方法一: // 删除ArrayList中重复元素,保持顺序 public static void removeDuplicateWithOrder(List list) { Set set = new HashSet(); ...”
Linux uname命令用法
“uname 命令可显示关于计算机的基本信息: xy@G460XY:~$ uname -a Linux G460XY 3.2.0-38-generic-pae #61-Ubuntu SMP Tue Feb 19 12:39:51 UTC 2013 i686 ...”
05
如何将iphone或者ipad恢复为出厂设置
“1. 将iOS装置和iTunes连线后,屏幕上可能会显示“iTunes 无法与 iOS 装置连接,因为它已使用密码锁定。您必须在 iOS 装置上输入密码,才能与 iTunes 搭配使用。”的讯息。这时先将 iOS 装置的连接线拔除,然后将iPhone或是iPad关机。 2. 接着,一手持续按住iPhone或是iPad的“Home 键”不放,另一手将连接线重新接回 iOS装置,此时装置会自动开机。直到出现“连接 iTunes”的画面时,才可以放开“Home ...”
6月
29
svn merge 命令使用
“Subversion的分支通常用于在主干程序之外,对程序进行修改。这样 可以在不扰乱主干程序进行的开发、测试、发布流程之外,尝试一下新功能的研究、修改。如果觉得新功能没问题,可以将分支合并到主干程序中。 合并前,需要将分支提交(Commit),由此看来,合并操作好象是在服务端和本地客户端同时进行的操作。 合并时,要从主干的working copy的右键菜单开始,"From" Url是合并的目的地,需选择主干的url,"To"是合并的来源,需选择分支的url。 svn 的 merge其实很好用,当然前提是你明白了svn merge这个命令,还好,我用了大约一年明白了这个命令 -___-!! 跟大家说一下用法,比如我们要把分支merge到主干上 # svn merge --help merge: Apply the differences between ...”
22
404、500、502等HTTP状态码介绍
“基本涵盖了所有问题 HTTP 400 – 请求无效 HTTP 401.1 – 未授权:登录失败 HTTP 401.2 – 未授权:服务器配置问题导致登录失败 HTTP 401.3 – ACL 禁止访问资源 HTTP 401.4 ...”
英文职位名称大全
“公司高层职位的英文缩写: CEO : Chief Executive Officer 首席执行官 CFO : Chief Financial Officer 首席财务官 COO : Chief Operated Officer ...”
java格式化数字、货币、金钱
“java开发中经常会有数字、货币金钱等格式化需求,货币保留几位小数,货币前端需要加上货币符号等。可以用java.text.NumberFormat和java.text.DecimalFormat实现。 第一种:比如网上交易系统,数字保留4位小数: public static void main(String args){ NumberFormat nf = new DecimalFormat("$##.####"); Double d = 554545.4545454; String str = nf.format(d); System.out.println(str); //$554545.4545 } 第三种:比如网上交易系统,金钱数字保留4位小数且三位三位的隔开: public ...”
linux scp命令参数及用法详解
“Linux scp命令用于Linux之间复制文件和目录,具体如何使用这里好好介绍一下,从本地复制到远程、从远程复制到本地是两种使用方式。这里有具体举例: ================== Linux scp 命令 ================== scp 可以在 2个 linux 主机间复制文件; 命令基本格式: scp file_source file_target ====== 从 本地 复制到 远程 ====== * 复制文件: * ...”
15个Linux Wget下载实例终极指南
“Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。下面我们以实例的形式说明怎么使用wget。 1、使用wget下载单个文件 以下的例子是从网络下载一个文件并保存在当前目录 wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。 2、使用wget -O下载并以不同的文件名保存 wget默认会以最后一个符合“/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。 错误:下面的例子会下载一个文件并以名称download.php?id=1080保存 wget http://www.zhumaohai.com/download?id=1 即使下载的文件是zip格式,它仍然以download.php?id=1080命令。 正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名: wget -O wordpress.zip http://www.zhumaohai.com/download.php?id=1080 3、使用wget --limit -rate限速下载 当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。 wget --limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 4、使用wget ...”
ICP备案证书与ICP证书的区别
“ICP备案针对的是域名,做了ICP备案,你的域名注册商才能帮你解析服务器地址;ICP证则是针对公司,是对公司从事电信增值业务的一种资格认可。ICP证(增值电信业务经营许可证)都是颁发给公司,个人想去拿这个证估计拿不到的。 办ICP证的流程 根据国务院令第292号《互联网信息服务管理办法》和《关于互联网信息服务办理许可与备案的通知》,经营性网站必须办理ICP证,否则就属于非法经营。 ICP许可证申请条件 1、在省、自治区、直辖市范围内经营的,其注册资本最低限额为100万元人民币。 2、有可行性研究报告和相关技术方案; 3、有必要的场地和设施; 4、最近三年内未发生过重大违法行为 根据《电信业务经营许可证管理办法》规定,申请单位应提供如下材料: 1、公司法定代表人签署的经营增值电信业务的书面申请。内容包括:申请电信业务的种类、业务覆盖范围、公司名称、通信地址、邮政编码、联系人、联系电话、电子信箱地址等 2、公司的企业法人营业执照副本及复印件(包括法人身份证复印件); 3、公司概况。包括:公司基本情况,拟从事增值电信业务的人员、场地和设施等情况(执有通信行业职业资格证书的情况); 4、公司最近经会计师事务所审计的企业法人年度财务会计报告或验资报告及电信主管部门规定的其他相关会计资料; 5、公司章程,公司股权结构及股东的有关情况(包括入股方式的说明) 6、业务发展可行性研究报告和技术方案。包括:申请经营电信业务的业务发展和实施计划、技术方案、服务项目、业务覆盖范围、市场调研与分析、收费方案、预期服务质量、投资分析、社会效益和经济效益等 7、为用户提供长期服务和质量保障的措施 8、信息安全保障措施 9、证明公司信誉的有关材料 10、公司法定代表人签署的公司依法经营电信业务的承诺书 11、申请经营的电信业务依照法律、行政法规及国家有关规定须经有关主管部门事先审核同意的,应当提交有关主管部门审核同意的文件 通信管理局ICP许可证办理流程 1、书写申请材料 2、提交公司所在省通信管理局审批 3、审批通过领取证书 通信管理局ICP许可证审核标准 1、申办材料齐全、规范、有效 2、申请单位必须符合《电信业务经营许可证管理办法》第六条的规定 注意事项 电信主管部门应当自收到ICP经营许可证(互联网经营许可证)的申请材料之日起15日内,完成对材料的初步审查 对申请材料齐备的,向ICP申请者发出受理申请通知书。对ICP申请材料不齐备的,书面通知申请者补齐,ICP申请者将材料补齐后,电信主管部门应当在15日内向ICP申请者发出受理ICP经营许可证申请通知书 电信主管部门应当自发出受理申请通知书之日起60日内完成审查工作,作出批准或者不予批准的决定 申请经营无线电通信业务的,应当提交国家或者省级无线电管理机构出具的无线电频率资源预指配意见 尚未获得企业法人营业执照的申请者,应当提交公司的企业名称预先核准通知书,无需提交第2、9项中规定的材料 第1项规定的书面申请和第10项规定的承诺书,拟成立有限责任公司的,应当由全体股东签署;拟成立股份有限公司的,应当由全体发起人签署 ”
Linux下scp的用法
“scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。 有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。 一、将本机文件复制到远程服务器上 #scp /home/administrator/news.txt root@192.168.6.129:/etc/squid /home/administrator/ 本地文件的绝对路径 news.txt 要复制到服务器上的本地文件 root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户) 192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名) /etc/squid 将本地文件复制到位于远程服务器上的路径 二、将远程服务器上的文件复制到本机 #scp remote@www.abc.com:/usr/local/sin.sh /home/administrator remote 通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户) www.abc.com 远程服务器的域名(当然也可以使用该服务器ip地址) /usr/local/sin.sh 欲复制到本机的位于远程服务器上的文件 /home/administrator 将远程文件复制到本地的绝对路径 注意两点: 1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下: #scp ...”
17
JSTL判断list的size()大小
“ 需要添加以下依赖: javax.servlet jstl ${jstl.version} jsp页面判断获得action传的list的是否为空或者list.size的长度,就可以用fn这个标签: 这样就可以判断了。 我是这样使用: 来源:http://blog.csdn.net/rambo_china/article/details/7771783”
JSTL 的 if else : 有 c:if 没有 else 的处理
“jstl的c:if 没有else 想要实现if...else...: 可以用下面的解决 -------------------------------------------------------------------- 结构: 如果 否则 代码: ------------------------------------------------------------------------- 附:详解+代码 在同一个 中,当所有 的条件都没有成立时,则执行 的本体内容。 语法 本体内容 属性 无 限制 必须在 ...”
11
用jquery设置按钮的disabled属性的实现代码
“在html标签中设置按钮被禁用,可以使用如下代码 在jquery中可以使用attr()函数修改按钮的disable属性 添加disabled属性 $('#button').attr('disabled',"true"); 移除disabled属性1: $('#button').attr('disabled',"true"); 移除disabled属性2: $('#button').removeAttr("disabled"); ”
09
Apache之父Brian Behlendorf
“Apache作为最流行的HTTP服务器之一,具有很高的市场占有率,可以运行在绝大多大型商业操作系统上,同时也是WebSphere等大型服务器软件的底层系统。Apache的许可证制度保证了它的健康发展。它的创始者就是被人们尊称为Apache之父的Brian Behlendorf。 Apache是开放源码软件中的一个成功典范。几年间,它一跃成为市场占有率很高的Web服务器,并获得了Web管理员们的广泛青睐,被认为是“价格低廉、升级容易、安全可靠”的产品。网络为Apache提供了孕育的温床。Apache的成功也给予开源的网络开发模式以强有力的证明。这是一个和商业模式结合得如此完美的开放源代码软件,它的许可证制度保证了它的健康发展,既不脱离开放源代码世界,也不因为缺乏资金而夭折。他的创始者就是被人们尊称为Apache之父的Brian Behlendorf,一个刚刚踏入儿立之年的小伙子。 与HTTP Server结缘 当Internet开始在美国大学流行的时候,Urbana-Champaign的伊利诺斯大学超级计算机应用程序国家中心(NCSA)组织了一些研究生开始编写基于HTTP通信协议的Server端和Client端程序。Client端程序叫做mosaic,也就是是Netscape浏览器的前身,之后演变为Mozilla浏览器。而Server端软件就是最早的Web Server,也就是现在Apache HTTP Server的前身。这个NCSA HTTP Server端完整地实现了HTTP协议,实验获得了成功。依利诺斯大学出于学术目的,开发工作没有继续下去,研究小组也解散了。但是,这里我们应该惊叹开放源代码的伟大:一个大学在实验室中设计的两套软件因为公开了源代码,在十多年后的今天,都成为了世界上占据软件市场半壁江山的王者。 然而,互联网对HTTP Server的需求却越来越大,公开源代码的NCSA HTTP Server成了进一步发展的极好的起点。很多研究者不断地给它添加功能、增加代码,并对不断出现的Bug打补丁。这些后继者中就有Brian Behlendorf。 1991年,Brian毕业于La Canada High ...”
Linux下修改用户所在组以及拒绝用户登陆的方法
“usermod -g 用户组 用户名 强行设置某个用户所在组 usermod -G 用户组 用户名 把某个用户改为 group(s) usermod -a -G 用户组 用户名 把用户添加进入某个组(s) 附usermod使用说明: 功能说明: 修改用户帐号。 语  法: usermod 补充说明: usermod可用来修改用户帐号的各项设定。 参  数: -c   修改用户帐号的备注文字。 -d登入目录>   修改用户登入时的目录。 -e ...”
Linux nologin 用户使用su执行命令(以Tomcat自启动脚本为例)
“今日在一台Fedora Server上安装了tomcat 8.0.15。使用脚本设置其自启动。脚本如下: #!/bin/bash # description: Tomcat Start Stop Restart # processname: tomcat # chkconfig: 234 20 80 JAVA_HOME=/usr/java/jdk1.8.0_25 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export ...”
5月
18
Mac下使用SecureCRT的一些记录
“无法保存密码的问题: 在MAC下新安装使用secureCRT,第一次连接保存过的密码,第二次再启动提示密码不正确,又需要重新输入密码,密码一直无法保存,每次都需要手动再输一次。 这个问题是由于MAC下的secureCRT有一个默认设置为使用Mac OS自带的“钥匙串访问”来保存密码,只要取消掉这个选项就能用SecureCRT自己的保存密码功能了。 取消这个选项的方式,请打开SecureCRT的全局选项,在主菜单Preferences,或者COMMAND键加逗号,打开之后在Advanced页签下,取消掉Use Keychain即可。 CTRL + C无法发送中断信号的问题: 在MAC下装了一个secureCRT,无法使用ctrl+c发送中断,而MAC自带的终端都可以,我断定这无疑不是我键盘的问题而是secureCRT本身。 因此我尝试了各种办法,设置快捷键映射,恢复默认配置,甚至把键盘上可能用的组合都尝试了一个遍,发现了一些新的快捷键而我的secureCRT不能control+c发送中断的问题依然没有解决。上网查询资料,各种资料都有各式各样的解决办法,也没有能够解决我问题的。 最后乱按一通,无意中把输入法切换到了系统自带的“美式英文”,再次尝试control+c的时候发现总是既然神奇的解决了。对的,这个问题是因为我用了非系统的qq五笔输入法引起的,不用系统的输入法,就算把五笔切换到英文状态也是不能发送control+c中断信号的。 总结下来就是:mac下的secureCRT只有使用自带的输入法才能用control+c发送中断信号。 快捷键总结: MAC下使用SecureCRT的快捷键与windows下有些不一样,下面是我发现的一些比较实用的快捷键: 直接使用secureCRT新开标签页连接mac系统:command+l 新建session:command+k 打开session管理器:command+t 退出secureCRT:command+q 查找:command+f 打开新的secureCRT窗口:control+N 整理自网络。”
13
linux下du及df 命令详解
“du和df的区别: du 统计文件大小相加,df 统计数据块使用情况,如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。 df命令详细用法 指令 df 可以显示目前所有档案系统的最大可用空间及使用情形,以下是其常用的参数: a:显示全部的档案系统和各分割区的磁盘使用情形 i:显示i -nodes的使用量 k:大小用k来表示 (默认值) t:显示某一个档案系统的所有分割区磁盘使用量 x:显示不是某一个档案系统的所有分割区磁盘使用量 T:显示每个分割区所属的档案系统名称 h:表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 df示例1: # df -h Filesystem Size Used ...”
4月
20
英文url中的中划线dash和下划线underscore的区别
“百度对URL中下划线和连字符是基本上同样处理的,而谷歌对下划线和连字符处理的区别比较大。综合来说,URL使用连字符对于提升关键词排名更有意义。 谷歌官方对于使用连字符还是下划线问题的建议是:我们建议您在网址中使用连字符(-)而尽量避免使用下划线 (_)。 举个例子,如果你有一个像word1_word2网址,而用户搜索word1_word2(虽然几乎不会用这样的方式来搜索),谷歌将只返回该网页。如果你有 一个像word1 - word2网址,该网页可以返回的搜索结果为word1,word2,甚至“word1 word2”。 上面的话实际告诉我们,word1_word2 这种形式中,实际上下划线符号起到前后连接的作用,即把word1_word2整个连成整体(这是1个单词而非词组,实际上这种关键词组是不存在的,因为 搜索的时候没人会故意去加下划线),并没有正常词组中的分隔空格的意思,否则就和许多计算机常规应用法则相冲突了。 GoogleGuy 也曾暗示过连字符(-)是最佳选择。后来GoogleGuy最终站出来对于其中的原因作了解释:“如果你使用下划线‘_’,Google就会把这两个字联 起来看待。所以,yoursite.com/keyword1_keyword2.html 不会看作是keyword1与keyword2两个关键字。你必须输入keyword1_keyword2才能得到相应的搜索结果”。 ”
WEB-INF目录下看不到classes文件夹
“今天将eclipse3.2建立的工程迁移到eclipse3.5中, 发现WEB-INF目录下看不到classes文件夹, 但是workspace里是有的, 在eclipse中被隐藏了。 网上有的说是只能在resources视图下才会显示, 我改成resource视图, 依然不行, 有的说用navigator视图, 当我选择resource视图后, 再在菜单window - show view - 下找navigator视图却找不到。 我先切换到java视图, 或java EE ...”
14
MySQL UUID函数的详解
“MySQL中可以有二类用于生成唯一值性质的工具:UUID()函数和自增序列,那么二者有何区别呢?我们就此对比下各自的特性及异同点: (1)都可以实现生成唯一值的功能; (2)UUID是可以生成时间、空间上都独一无二的值;自增序列只能生成基于表内的唯一值,且需要搭配使其为唯一的主键或唯一索引; (3)实现方式不一样,UUID是随机+规则组合而成的,而自增序列是控制一个值逐步增长的; (4)UUID产生的是字符串类型值,固定长度为:36个字符,而自增序列产生的是整数类型值,长度由字段定义属性决定; 接下来,详细讲解下UUID()函数产生的值: oot@localhost : (none) 06:09:40> SELECT UUID(),UUID(),LENGTH(UUID()),CHAR_LENGTH(UUID())\G *************************** 1. row *************************** (注:其中 \G代表前一个匹配的结束 参考建:http://wenku.baidu.com/view/f5e5dcf07c1cfad6195fa711.html) UUID(): de7ee638-4322-11e0-85ab-842b2b4a7e75 UUID(): de7ee642-4322-11e0-85ab-842b2b4a7e75 LENGTH(UUID()): ...”
mysql5.5 uuid做主键与int做主键的性能实测
“偶然的机会,得知mysql主键的类型采用 varchar 存UUID 的查询性能没有int型做主键好。网上查询大量资料,都是停留在理论上的,因此,自己写了代码进行实测,以下结果仅供参考,不具备权威性。 三个表的字段,除了主键ID 分别采用varchar,bigint 和自动增长bigint不同外,其他三个字段都为 varchar 36位 数据库:mysql5.5 表类型:InnoDB 数据量:100W条 第一种情况: 主键采用uuid 32位。 运行查询语句1:SELECT COUNT(id) FROM test_varchar; 运行查询语句2:SELECT * FROM test_varchar ...”
如何来确定主键?
“对于一个表来说主选用的好坏直接关系到对于该表的操作性能,因此主键选用的好坏很大程度上决定了表的相关性能。一般来说选用主键需要遵循以下规则: 数据类型用 INT(bigint)类型 1.Int类型在做比较运算时会获取更好的性能(cpu比较周期缩短)。 2.Int类型是顺序排列的,这样在索引中逻辑上相邻的数据就分布在磁盘相邻的地方(大大减少IO次数) 要尽可能的避免使用字符串来做主键 1.主键长度尽可能短。如果选用bigint做主键由于bigint做主键只占8个字节所以比较节约空间,同时查询性能也很好。 2.字符串来做主键,myisam默认的情况下为字符串使用了压缩索引这使查找更加缓慢。还要特别注意是随机字符串,如MD5(),UUID()。他们产生的每一个新值都会被保存在很大的空间范围(通常会占用32个字节),这会减慢inset 及一些select查询原因如下: 1:他们会减慢insert查询,因为插入的值会被随机放入索引页中,导致分页,随机磁盘访问及聚集存储引擎的聚集索引碎片。 2:他们会减慢查询速度,因为逻辑上相邻的行会分布在磁盘和内存中的各个地方。 3:随机值会导致缓存对所有类型的查询性能都很差,因为他们会使缓存依赖以工作的访问局部性失效,如果整个数据集都变的同样“热”的时候,那么把特定部分的数据缓存到内存中就没有任何优势了。并且如果工作集部能被装入内存中,缓存就会进行很多刷写的工作,并且会导致很多缓存未命中。 对于mysql来说存储不同的存储引擎对主键的影响也稍有不同。 1.Myisam 引擎支持和聚集索引(主要是B树索引),不支持聚集索引。 2.Innodb 引擎支持聚集索引,非聚集索引(主要是B树索引,hash索引)。 3.因此对于不支持聚集索引的myisam来说即使建立了主键也是不能为其建立聚集索引的,因此数据的物理排列顺序则是插入数据先后的顺序(myisam插入数据时是直接插入表的尾部的)。虽然数据是插入在表的尾部但是对于索引来说随机的主键值则是按一定的规则进行排列的。这样随机主键就容易导致索引频繁分页,进而出现索引碎片,最终导致insert慢select查询慢。 4.对于innodb来说我们可以为主键建立聚集索引,聚集索引存储记录是物理上连续存在的。因此insert时插入排序规则(uuid_short())的值做主键可以直接将该值追加到表的尾部,且索引没有发生分页。更重要的是对于聚集索引来说索引下面直接对应的就是数据因此按主键查找时效率会比myisam要高很多。(myisam索引下面对应的是指向数据的一个指针) 5.单纯对于myisam来说在选用主键类型时也是要避免使用字符串的。因为myisam上的字符串类型所建立的索引默认采用的是压缩处理后的格式,因此在查询时效率要稍慢一些。 UUID_SHORT() PK UUID() UUID():用来生成唯一值 该值类型为string长度为32位且为无序的值(所谓无序的值是指每次生成的值没有规律可言或者说是随机的),这决定了他不能做主键 UUID_SHORT():用来生成唯一值(理论上也是有限的但是由于出现出现重复的概率低到了极致或者说出现的概率最大为1/1000000000000000(以最低生成位数来算,实际生成位数一般都大于16)),跟UUID()相比UUID_SHORT()生成的是有序的整数,长度在16-21(或者更长)位之间,如果我们用bigint来存储处理后的UUID_SHORT()作为主键是完全符合主键的选取规则的。 UUID_SHORT()处理方式: CREATE PROCEDURE primary_id(in len ...”
07
ubuntu上从源码安装apache
“1.下载apache源码 apache官网下载apache服务器2.4.4 解压文件 2 http://apr.apache.org/下载apr-1.4.6 以及apr-util.1.5.1 解压至./srclib/apr and ./srclib/apr-util 这里的根目录为httpd-2.4.4,即步骤1中解压出的文件目录 3. 在1中文件目录下执行./configure --prefix=/usr/local/apache2。若出现需要安装pcre则执行4 4.在pcre.org下载pcre解压文件 在该文件目录下 $./configure --prefix=/usr/local/pcre 若出现configure: error: You need a C++ compiler ...”
Linux上从源码安装Apache
“1. 前言 本文档试图以最简单方式阐明Apache2.4版本的安装。Apache采用的是automake编译方式,包括它所依赖的库,正因为这种依赖,使用得编译安装稍变复杂。 如果喜欢英文阅读,可直接查看官方的指南:http://httpd.apache.org/docs/2.4/install.html,这里有详细的说明。 2. 依赖库 Apache依赖apr、apr-util和pcre,下载网址为: 1) Apr和Apr-util:http://apr.apache.org/。截止2012/12/26,版本分别为:apr-1.4.6.tar.gz和apr-util-1.5.1.tar.gz; 2) Pcre:http://pcre.org/(实际下载网址是http://sourceforge.net/projects/pcre/files/pcre/和ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/,建议从sourceforge.net处下载,后一个经常抽风)。截止2012/12/26,版本为:pcre-8.32.tar.gz。 3. Apache2.4下载网址 http://httpd.apache.org/download.cgi#apache24 Apache2.4的源代码包为:httpd-2.4.3.tar.gz(注意最后一位版本号3可能不同)。 4. 安装步骤 Apr和Apr-util不用特别去编译和安装,随Apache一起完成,见下面的“安装Apache”一节。 4.1. 安装Pcre 在安装Apache之前,需要安装好Pcre,安装过程完全遵循automake方式,步骤依次如下: 1) ./configure –prefix=/usr/local/pcre(注:将Pcre安装到/usr/local/pcre目录下) 2) make 3) make install 4.2. ...”
Linux上安装PCRE
“1、下载pcre-7.8.tar.bz2 主页地址:http://www.pcre.org/ 2、解压缩: tar xjpf pcre-7.8.tar.bz2 3、配置: cd pcre-7.8 ./configure --prefix=/usr/local/pcre-7.8 --libdir=/usr/local/lib/pcre --includedir=/usr/local/include/pcre configure有许多参数可配,具体参见./configure --help及手册 4、编译: make 5、安装: make install 6、检查: ls /usr/local 检查是否有pcre-7.8目录 ls /usr/local/lib 检查是否有pcre目录 ls ...”
linux下configure命令详细介绍
“Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。 与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。 为此我转载了一篇关于Configure选项配置的详细介绍。供大家参考 'configure'脚本有大量的命令行选项,对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'--help'选项执行'configure'脚本可以看到可用的所有选项.尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的.下面对每一个选项进行简略的介绍: --cache-file=FILE 'configure'会在你的系统上测试存在的特性(或者bug!).为了加速随后进行的配置,测试的结果会存储在一个cache file里.当configure一个每个子树里都有'configure'脚本的复杂的源码树时,一个很好的cache file的存在会有很大帮助. --help 输出帮助信息.即使是有经验的用户也偶尔需要使用使用'--help'选项,因为一个复杂的项目会包含附加的选项.例如,GCC包里的'configure'脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项. --no-create 'configure'中的一个主要函数会制作输出文件.此选项阻止'configure'生成这个文件.你可以认为这是一种演习(dry run),尽管缓存(cache)仍然被改写了. --quiet --silent 当'configure'进行他的测试时,会输出简要的信息来告诉用户正在作什么.这样作是因为'configure'可能会比较慢,没有这种输出的话用户将会被扔在一旁疑惑正在发生什么.使用这两个选项中的任何一个都会把你扔到一旁.(译注:这两句话比较有意思,原文是这样的:If there was no such output, the user would be left wondering ...”
Linux ./configure --prefix命令
“源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。Configure是一个可执行脚本,它有很多选项,使用命令./configure –help输出详细的选项列表,如下: -bash-3.00# ./configure --help Usage: configure Options: Configuration: --cache-file=FILE cache test ...”
configure,make,make install的作用总结
“这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。 configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。 make是用来编译的,它从Makefile中读取指令,然后编译。 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。 ----- 1、configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 ...”
充分及必要条件总结
“充分条件 1.概述 充分条件一定能保证结果的出现。 2.定义 如果有事物情况A,则必然有事物情况B;如果没有事物情况A而未必没有事物情况B,A就是B的充分而不必要的条件,简称充分条件。 简单地说,满足A,必然B;不满足A,不必然B,则A是B的充分条件。例如: 1. A下雨;B地湿。 2. A烧柴;B会产生二氧化碳。 3. A再过一百年;B在座的各位都不在人间了。 例子中A都是B的充分条件,确切地说,A是B的充分而不必要的条件:其一、A必然导致B;其二,A不是B发生必需的。在例子中,往地上泼水地就湿了;燃烧石油也会产生二氧化碳;扔一颗炸弹进去,各位就不在了,这说明A不是B发生必需的。 3.生活中的充分条件 生活中常用“如果……,那么……”、“若……,则……”和“只要……,就……”来表示充分条件。例如: 1. 如果这场比赛踢平,那么中国男足就能出线。 2. 总参命令:若飞机不能降落则直接伞降汶川。 3. 四婶问祥林嫂竟肯依,卫老婆子说:“这有什么依不依。闹是谁也总要闹一闹的;只要用绳子一捆,塞在花轿里,抬到男家,捺上花冠,拜堂,关上房门,就完事了。” 不过生活中使用这些关联词语时人们往往并不考虑必要性。也就是说,满足A,必然B成立时,我们就说,如果A,那么B,或者说只要A,就B。这样就表达了条件的充分性,至于条件A是不是结果B必需的我们没有考虑。例如: 只要活着,我就要写作。 从客观上看,不满足“活着”,必然“不能写作”。所以“活着”是“我要写作”的充分必要条件。但是实际上说话人在说这句话时,他只想表达满足“我活着”时必然“我要写作”。至于“不活着就不能写作”的情况虽然大家都知道,但不是说话人要表达的意思。 所以生活中这些关联词语只是表达条件是充足的、充分的这个意思,而没有考虑必要性,这和逻辑学的严格定义是不同的。 充分条件的其他说法:充分的条件、充足条件、充足的条件。 必要条件 1. 概述 如果没有事物情况A,则必然没有事物情况B;如果有事物情况A而未必有事物情况B,A就是B的必要而不充分的条件,简称必要条件。 2.定义 简单地说,不满足A,必然不B;满足A,不必然B,则A是B的必要条件。例如: 1. A不断呼吸;B人能活着。 2. A认识26个字母;B能看懂英文。 3. A听过京剧;B能体会到京剧的美。 例子中A都是B的必要条件,确切地说,A是B的必要而不充分的条件:其一、A是B发生必需的;其二,A不必然导致B。在例子中,不呼吸人就不能活下去;认识了26个字母不一定就能看懂英文;听过京剧未必能体会到京剧的美,这说明A不必然导致B。 3.生活中的必要条件 生活中常用“只有……,才……”或“不……,不……”来表示必要条件。例如: 1. 一个制度、一个政府,只有不断地听取批评意见,才能够不断改进工作,不断进步。(温家宝总理关于“问题奶粉”的谈话) 2. 只有同心协力,才能把事情办好。 3. 只有每年犹太历七月初十日大祭司进入至圣所时,才能在约柜前说出这个单词的正确发音。 4. ...”
06
build-essential软件包简介
“build-essential 指的是编译程序必须的软件包。 查看该软件包的依赖关系,可以看到以下内容: $ apt-cache depends build-essential build-essential |依赖: libc6-dev 依赖: libc6-dev ...”
如何使用apt-get删除软件包
“apt-get这几个参数最常用了,必须记住才行。 安装 apt-get install xxxx 卸载但不删除配置 apt-get remove xxxx 卸载并且删除相关配置 apt-get purge xxxx ”
3月
26
mac系统如何显示和隐藏文件
“苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令。 显示Mac隐藏文件的命令: defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏Mac隐藏文件的命令: defaults write com.apple.finder AppleShowAllFiles -bool false 或者 显示Mac隐藏文件的命令: defaults write com.apple.finder ...”
DS_Store文件简介
“DS_Store 是用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。删除以后的副作用就是这些信息的失去。当然,这点副作用其实不是太大。 尽管这些文件本来是为Finder所使用,但它们被设想作为一种更通用的有关显示设置的元数据存储,诸如图标位置和视图设置。 例如,在Mac OS X 10.4 "Tiger"中.DS_Store包含了一文件夹的所有文件的Spotlight注释。然而,在Mac OS X 10.5 "Leopard"中这种方式又被更改了,注释(现称为关键字)被改成存储在了扩展文件属性中。 和别人交换文件(或你做的网页需要上传的时候)应该把 .DS_Store 文件删除比较妥当,因为里面包含了一些你不一定希望别人看见的信息,尤其是网站,通过 .DS_Store 可以知道这个目录里面所有文件的清单,很多时候这是一个不希望出现的问题。 参考以下文章可以删除所有的DS_Store文件: http://www.macx.cn/thread-2053938-1-1.html ”
1月
02
Mac下Eclipse常用快捷键
“Mac下Eclipse和Windows下Eclipse的快捷键还是有很大不同的,还得重新记忆一下。 为什么要记快捷键,因为我觉得判断你有没有熟练掌握一个软件的使用,就是看你有没有熟练掌握她的快捷键。 Shift + Command + L: 打开快捷键列表,没事的时候就打开看看,用着用着就烂熟于胸了。 Command + L: 定位到指定的行号 Command + O:显示大纲 Command + 1:快速修复 Command + D:删除当前行 Control + /:注释当前行,再按则取消注释 ...”
2014
12月
20
Mac环境变量设置
“打开terminal,然后输入下列语句: vim ~/.bash_profile open .bash_profile 然后按shift+g就会跳到文件最后,然后依次输入a,回车,把下面的语句复制到.bash_profile里面即可,路径根据自己安装sdk和ndk的路径作相应的修改即可: export COCOS2DX_ROOT=/Users/XXX/Workspaces/SDK-TOOL/cocos2d-x export NDK_ROOT=/Users/XXX/Workspaces/SDK-TOOL/android-ndk-r8 export ANDROID_SDK_ROOT=/Users/XXX/Workspaces/SDK-TOOL/android-sdk-mac_86 export PATH=$PATH:$ANDROID_NDK_ROOT export PATH=$PATH:/usr/local/apache-tomcat-7.0/bin export PATH=$PATH:/usr/local/mysql/bin export PATH=$PATH:/usr/local/mysql-5.6.14-osx10.7-x86/bin 然后按esc ,再:wq(回车)保存好之后,就可以了。如果大家不喜欢vim,可以用其它编辑器,不过,由于./bash_profile是隐藏文件,查看隐藏文件设置参照以前的一篇文章《Mac OSX 隐藏/显示文件 和 常用快捷键修饰键符号》 环境变量变更反应 source ...”
Mac OSX 文件系统总结
“OS X采用的是类UNIX的多用户系统。 通常我们在启动盘下面都只能看到应用程序、资源库、系统、用户这4个目录。但其实还有很多的隐藏目录,如bin、sbin之类的,这些都是系统的一些资源,一般是不用普通用户去访问,是些比较重要的系统文件及配置文件。 所以我这里就只是探讨一下通常在Finder中可以触及的文件项目和资源。 首先我们来了解一下OS X系统的几大组成部分: 文件系统区域: 作为了一个多用户的操作系统,控制系统资源的访问对于保证系统的稳定性是非常重要的。通过目录的设置,由当前用户的操作权限来决定该用户对每部分资源的访问。 在OS X系统中,存在以下4个文件系统区域: User:这个区域包含了登录到系统的用户可供使用的特定资源。该区域由用户的主目录来定义,在这个区域中,用户具有完全的控制权限。 Local: Local区域包括如文件、程序这些被系统中所有用户共享的资源,但它不是系统运行所必须的。Local区域没有一个相应的单独的目录,它包含于启动卷宗的多个目录中。具有系统管理员权限的用户可以添加、删除或修改此区载的项目。 Network:此区域包含了本地局域网中可被所有用户共享的资源,如文件或应用程序。该区域的代表项目在网络文件服务中的位置,并受网络管理员的控制。 System:包含由Apple安装的系统软件。这此资源是系统正常运行所必须的,位于启动卷宗中,在该区域中,用户不允许添加、删除或更改这些资源。 用户区域包含指定给一个单独的用户的资源。由当前用户的个人目录来表示。每个Mac OS X系统用户必须有一个账号,在文件系统中给每个用户账号指定一个目录空间。目录中包括了用户的应用程序、资源以及文档。用户个人目录以用户账号的短名称来命名,并且是唯一的。 用户区域可以让用户为自己定义一个合理的工作环境,当用户登录时,Finder将恢复用户的工作环境,并按预置设置为用户上次使用时的状态。同样的,应用程序及其它系统软件按程序预置、网络设置、email设置、字体设置及其它设置来进行恢复。 用户的个人目录的位置依赖于用户的账号。如果用户账号是本地账号,那么用户的个人目录则位于启动卷宗的”User”目录中,如果是一个网络账号,则个人目录位于网络服务器中。 无论用户的个人目录实际位置在哪里(实际上,我们还是可以通过终端命令更改个人目录的实际位置的),OS X都使用”~”字符来代表当前登录用户的个人目录。这个符号可以与其它路径来组合使用。 表一: ~ 当前用户目录的顶级目录,相当于”/User/当前用户名”这个目录 ~/Library/Fonts 当前用户个人目录中的字体储存位置 ~Steve 用户Steve的个人目录。 说明:这里我们需要注意的是,终端或系统中,我们其实都可以多重登录的,因此,在使用”~”的时候,连接的是“当前登录用户“的个人目录。所以,当你登录为不同的用户时,”~”所指的位置并不相当。 表二: 这里我们列出的是个人目录下一些常见的目录: Applications 包含一些只有当前用户可以使用的程序,比如我们安装了一个程序,安装时选Applications,应用程序将会默认安装到这里! Desktop:包含当前用户显示在Finder桌面上的所有项目。 Documents:用户个人的一些文档。经常会包含一些程序使用的文件或者下载的文件,以及程序安装的纪录文件。 Library:包括应用程序设置、预置及其它用户指定的系统资源或设置(具体内容将在下一章中进行说明)。 Movies:QuickTime或其它格式的影片 Music:数字音乐文件(如.aiff, .mp3, .m4p或其它格式),包括iTunes自动倒入的歌曲。 Pictures:图片文件,包括iPhoto自动导入的数码相机中的图片 Public:你可以把需要与其它用户共享的文件放在这个目录中,默认状态下,这个目录可以被其它所有用户访问。 Sites:用户的个人站点网页文件。在被其它用户访问之前,你必须在“系统预置-共享-Web共享“中打开共享。 当新建账号时,”Applications”目录并不会自动添加到该用户的个人目录中。用户可以自已手工建议一个”Applications”,并把自己的程序放在该目录中,系统会自动搜索该目录中的项目。 在’/User’目录中包含一个叫”Shared”的子目录,这个目录可以被本地的所有用户访问(不过请不要把应用程序放置在该目录中),所有用户都可以从该目录中读取或写入文件,用于本地用户的文件交换及共享。 本地区域包括本地计算机所使用的资源,但它不是系统运行所必须的。比较典型的包括:应用程序、实用工具、自定义字体、自定义的启动项目以及应用程序全局设置。在”Applications” 以及 ...”
强制退出Mac程序的六种方法
“用电脑时间长了,难免会遇到程序卡住,风火轮狂转不停,没有任何相应等情况。可能是由于程序冲突、缓存不足或者一些bug等情况导致,这个时候我们就需要强制退出这个程序了,下面有六种在Mac系统中强制退出程序的方法,大家至少应该记住一两个。 1、使用键盘快捷键强制退出处于活跃状态的Mac程序 快捷键:Command+Option+Shift+Esc 这样按住一两秒钟,就可以强制退出当前程序了,算是最方便的一种方法。 2、打开强制退出程序窗口 使用快捷键:Command+Option+Esc 来打开“强制退出应用程序”的窗口,然后选中你需要退出的程序,再点右下方的“强制退出”即可。 3、从Dock中强制退出程序 按住Option然后右键点击程序在Dock中的图标,可以看到“强制退出”的选项,选择即可。 4、从左上角苹果菜单中强制退出程序 这个有些类似第二条,从左上角的菜单中选择“强制退出”,不过有些时候程序当机,点击菜单会出现没反应的情况。 5、使用“活动监视器”强制退出程序 在 应用程序-实用工具 中找到“活动监视器”,找到程序的名字然后选择左上方红色按钮强制退出程序,这个就有些类似Windows中的任务管理器了。如果上面的方法都不奏效,那么可以尝试这个方法。 6、使用终端命令强制退出程序 这个应该算是重启电脑之前的最后办法了,在终端中输入如下命令 killall 比如说强制退出Safari,就输入 killall Safari 再回车即可,这样有关Safari的全部进程就都退出了;如果你想分的细一些,可以通过 ps 或者 ps aux 命令查找某些单独的进行,然后使用 kill -9 ...”
14
Vim插件管理利器——Vundle
“Vundle是基于Git仓库的插件管理软件。Vundle将插件的安装简化为类似yum软件安装的过程,只要:BundleInstall插件就安装完了,:BundleClean之后插件就卸载了。 一、Vundle的安装和使用 1. Vundle的安装 在CODE上查看代码片派生到我的代码片 $ git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle 2. 更新.vimrc配置文件 在CODE上查看代码片派生到我的代码片 set nocompatible ...”
使用Bundle进行VIM插件的管理
“1.安装git: sudo apt-get install git 2.安装Bundle: git clone https://github.com/gmarik/vundle.git~/.vim/bundle/vundle 3.在.vimrc文件中添加如下语句 setnocompatible " 设置vim为不兼容vi模式 filetypeoff " required setrtp+=~/.vim/bundle/vundle/ "如果在windows下使用,设置为 "set rtp+=$HOME/.vim/bundle/vundle/ callvundle#rc() "let Vundle manage Vundle Bundle'gmarik/vundle' " ...”
vim更换颜色主题
“vim编辑器提供的色彩配置模版: CentOS的方案文件放在:/usr/share/vim70/colors $ ls /usr/share/vim/vim62/colors blue.vim delek.vim evening.vim murphy.vim ...”
vim多文件切换
“通过vim打开多个文件(可以通过ctags或者cscope) ":ls"查看当前打开的buffer(文件) ":b num"切换文件(其中num为buffer list中的编号) 可以用到的命令有 ":bn" -- next buffer in the buffer list ":bp" -- previous buffer in the ...”
Vi编辑器的基本使用方法!
“vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。 1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令行模式command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 2) 插入模式(Insert mode) 只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。 3) 底行模式(last ...”
12
Linux Source命令及脚本的执行方式解析
“当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile,对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下。 source命令: source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。 功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句 source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。 用法: source filename 或 . filename source命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称。 source filename 与 sh ...”
Linux命令file总结
“用途说明 file命令是用来检测并显示文件类型(determine file type)。 常用参数 -b   不显示文件名称,只显示文件类型。在shell脚本中时有用。 -i 显示MIME类别。 -L   直接显示符号连接所指向的文件的类别。 -f namefile 指定名称文件(namefile),该文件每一行为一个文件名,file命令将按每一行的文件名辨别该文件的类型 使用示例 示例一 显示文件类型 # file install.log install.log: UTF-8 Unicode text # file -b install.log ...”
/sbin/init讲解
“/sbin/init程序是系统中所有程序的父进程。这个进程的PID总是1,它负责启动组成Linux操作系统的其他进程。那些使用过一段时间Linux操作系统的用户都知道,Ubuntu服务器上的init程序与大家之前习惯使用的init程序不同。它们在如何初始化UNIX操作系统方面有一些不同的标准,但是绝大多数传统Linux发行版都使用著名的System V init模型(马上就会讲到),然而一些现代Linux发行版选择使用其他系统,如Upstart,或者最近的systemd。例如,Ubuntu服务器选择使用Upstart,但它仍然保留了System V init程序的杰出结构,如运行等级(runlevel)和针对向后兼容的/etc/rc?.d文件夹,而且Upstart现在开始处理底层所有的工作。因为服务器上最常使用的两种init系统是Sytem V init和Upstart,所以下面就分别介绍它们。 1. 传统的System V Init System V指的是由AT&T开发的原始UNIX操作系统中的一个特定版本。在这种风格的init程序中,init进程会读取/etc/inittab的配置文件,通过它来查看默认的运行等级,下面会讨论到这点。然后进入这个运行等级,启动配置在这个运行等级下应该启动的进程。 System V init进程由很多称为运行等级的不同系统状态定义。运行等级用数字区分,从0到6,每个数字代表了一个完全不同的系统状态。例如,运行等级0留给了停止的系统状态。当你进入运行等级0,系统就会终止所有的运行进程,卸载所有的文件系统并断电。类似地,运行等级6代表重启机器。运行等级1代表单用户模式—仅有单个用户可以登录到系统中的状态。通常,没有几个进程能在单用户模式下启动,所以这个运行等级在处理系统无法完全启动的问题上非常有用。在默认的GRUB菜单中能看到一个恢复模式,它会启动进入运行等级为1的系统状态中。 运行等级2到5留给发行版使用,最终由用户来定义。定义诸多运行等级的想法是让你创建进入服务器的不同模式。很多Linux发行版都会为图形桌面设置一个运行等级(在Red Hat中,为运行等级5),并为非图形界面设置另一个运行等级(在Red Hat中,为运行等级3),这是一个传统的做法。你也可以定义其他的运行等级,例如,为启动不带网络访问的系统定义一个运行等级。然后在启动的时候,根据提示输入一个参数,用你指定的运行等级覆盖默认的运行等级。系统启动之后,你也可以用init命令后跟着运行等级的方式更改当前的运行等级。所以,想要更改为单用户模式,应该输入sudo ...”
如何分辨操作系统是32位版本还是64位版本
“相当一部分软件都是区分系统版本的(难道不能做的更智能一点?),所以在下载这些软件之前首先要确定自己所用操作系统到底是32位还是64位,查阅了一些资料,结合实际情况,简单总结了一下。 windows系统如何查看是32位版本还是64位版本: (1)在我的电脑上点击鼠标右键,选择“属性”,在“系统类型”上可以看到具体的版本信息; (2)打开一个cmd窗口,输入“systeminfo”,在系统类型上可以看到:X86-based PC,说明是32为操作系统。 mac或者Linux系统: (1)打开一个shell终端,输入:uname -a,可以看到如下信息: phpbegindeMacBook-Pro:~ phpbegin$ uname -a Darwin phpbegindeMacBook-Pro.local 14.0.0 Darwin Kernel Version 14.0.0: Fri Sep 19 ...”
uname命令总结
“uname 命令可用于大多数 UNIX 和类 UNIX 系统以及 Linux。 功能说明: uname用来获取电脑和操作系统的相关信息。 语  法: uname 补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。 参  数: -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 -m或–machine 显示主机的硬件(CPU)名 -n或-nodename 显示主机在网络节点上的名称或主机名称 -r或–release 显示linux操作系统内核版本号 -s或–sysname 显示linux内核名称 -v 显示显示操作系统是第几个 version 版本 -p 显示处理器类型或unknown -i 显示硬件平台类型或unknown -o 显示操作系统名 –help 获得帮助信息 –version   显示uname版本信息 最常用参数 uname -a 一些示例: darkmi@ubuntu:~$ ...”
06
10月
20
linux上ln命令详细说明
“ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,s 是代号(symbolic)的意思。具体用法是:ln –s 源文件 目标文件。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less 这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s,它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。 如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。 指令详细说明 指令名称 : ...”
04
Fedora19添加和设置YUM源
“添加yum源前先安装fastestmirror/downloadonly插件和axelget插件: 1.安装fastestmirror/downloadonly插件 由于yum中有的mirror速度是非常慢的,如果yum选择了这个mirror,这个时候yum就会非常慢,对此,可以下载fastestmirror插件,让系统yum的时候自动选择最快的镜像: yum install yum-fastestmirror yum-downloadonly -y fastestmirror配置文件:(一般不用动)/etc/yum/pluginconf.d/fastestmirror.conf 2.安装axelget插件 axelget是一个多线程下载工具,yum本身是单线程下载,难怪速度不快呢,安装方法: yum install alex 注意:在这里提供一个小技巧:在YUM的时可能会遇到很长时间都没有速度的现象,这时候可以Ctrl+C。这样就是终止了从当前站点的下载,然后会自动选择其他站点下载,速度往往快很多。 3.接下来添加yum源 RPMForge源-----RPMForge是一个安全、稳定并且更新及时的软件仓库,通过安装RPMForge可以在进行yum update的时候多一个选择,如果懒得自己编译安装,就得依靠RPMForge了。 1、先安装priority这个yum的插件,这个插件用来设定安装软件时候软件仓库的优先级,一般是默认先从官方base或者镜像安装,然后从社区用户contribute的软件中安装,再从第三方软件仓库中安装。 #yum install yum-priorities 2、手动编辑 /etc/yum.repos.d/ 目录中后缀为.repo的文件来设置软件仓库的优先级, priority=N(N是整数,范围从1-99,数字越小代表优先级越高) 官方推荐配置是:, , ...”
Tool Command Language简介
“基本概念 Tcl 的全称是:"Tool Command Language",中文名称是:“工具命令语言”,由John Ousterhout创建。TCL很好学,功能很强大。TCL经常被用于快速原型开发、脚本编程、GUI和测试等方面。TCL念作:"tickle"(踢叩)。Tcl的特性包括: * 任何东西都是一条命令,包括语法结构(for, if等)。 * 任何事物都可以重新定义和重载。 * 所有的数据类型都可以看作字符串。 * 语法规则相当简单 * 提供事件驱动给Socket和文件。基于时间或者用户定义的事件也可以。 * 动态的域定义。 * 很容易用C, C++,或者Java扩展。 * 解释语言,代码能够动态的改变。 * ...”
02
linux系统目录结构
“1. / /目录也称为根目录,位于linux文件系统目录结构的顶层。在很多系统中的唯一分区。如果还有其他分区,必须挂在到/目录下某个位置。整个目录结构呈树型结构,因此也称为目录树。 2. bin bin目录为命令文件目录,也称为二进制目录。包含了供系统管理员及普通用户使用的重要的linux命令和二进制(可执行)文件,包含shell解释器等,该目录不能包含子目录。 3. boot boot目录,该目录中存放系统的内核文件和引导装载程序文件。例如:RHEL5的内核文件:vmlinuz-2.6.18-8.el5xen。 4. dev dev目录,也称设备(device)文件目录,存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件,包括字符设备和块设备等。 5. etc etc目录存放系统的大部分配置文件和子目录。X Window系统的文件保存在/etc/X11子目录中,与网络有关的配置文件保存在/etc/sysconfig子目录中。该目录下的文件由系统管理员来使用,普通用户对大部分文件有只读权限。 6. home home目录中包含系统上各个用户的主目录,子目录名称即为各用户名。 7. ...”
7月
19
中间件简介
“中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,在现代信息技术应用框架如Web服务、面向服务的体系结构等中应用比较广泛。 中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,在现代信息技术应用框架如Web服务、面向服务的体系结构等中应用比较广泛。如数据库、Apache的Tomcat,IBM公司的WebSphere,BEA公司的WebLogic应用服务器以及Kingdee公司的Apusic等都属于中间件。严格来讲,中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,Apache组织、IBM、Oracle(BEA)、微软各自发展出了较为完整的软件产品体系。(Microsoft Servers是微软公司的服务器产品介绍).中间件技术创建在对应用软件部分常用功能的抽象上,将常用且重要的过程调用、分布式组件、消息队列、事务、安全、连结器、商业流程、网络并发、HTTP服务器、Web Service等功能集于一身或者分别在不同品牌的不同产品中分别完成。一般认为在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。阵营的区分主要体现在对下层操作系统的选择以及对上层组件标准的制订。目前主流商业操作系统主要来自Unix、苹果公司和Linux的系统以及微软视窗系列。微软阵营的主要技术提供商来自微软及其商业伙伴,Java阵营则来自IBM、Sun、Oracle、BEA(已被Oracle收购)、金蝶(Kingdee Apusic)及其合作伙伴,开源阵营则主要来自诸如Apache,SourceForge等组织的共享代码。中间件技术的蓬勃发展离不开标准化,标准的创建有助于融合不同阵营的系统.越来越多的标准被三大阵营共同接受并推广发展。 中间件技术的发展方向朝着更广阔范围的标准化,功能的层次化,产品的系列化方面发展。基于中间件技术构建的商业信息软件广泛的应用于能源、电信、金融、银行、医疗、教育等行业软件,降低了面向行业的软件的开发成本。 1 基本简介 中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,在现代信息技术应用框架如Web服务、面向服务的体系结构等中应用比较广泛。如数据库、Apache的Tomcat,IBM公司的WebSphere,BEA公司的WebLogic应用服务器以及Kingdee公司的Apusic等都属于中间件。 严格来讲,中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,Apache组织、IBM、Oracle(BEA)、微软各自发展出了较为完整的软件产品体系。 (Microsoft Servers是微软公司的服务器产品介绍).中间件技术创建在对应用软件部分常用功能的抽象上,将常用且重要的过程调用、分布式组件、消息队列、事务、安全、连结器、商业流程、网络并发、HTTP服务器、Web Service等功能集于一身或者分别在不同品牌的不同产品中分别完成。一般认为在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。阵营的区分主要体现在对下层操作系统的选择以及对上层组件标准的制订。目前主流商业操作系统主要来自Unix、苹果公司和Linux的系统以及微软视窗系列。微软阵营的主要技术提供商来自微软及其商业伙伴,Java阵营则来自IBM、Sun、Oracle、BEA(已被Oracle收购)、金蝶(Kingdee Apusic)及其合作伙伴,开源阵营则主要来自诸如Apache,SourceForge等组织的共享代码。 中间件技术的蓬勃发展离不开标准化,标准的创建有助于融合不同阵营的系统.越来越多的标准被三大阵营共同接受并推广发展。 中间件技术的发展方向朝着更广阔范围的标准化,功能的层次化,产品的系列化方面发展。 基于中间件技术构建的商业信息软件广泛的应用于能源、电信、金融、银行、医疗、教育等行业软件,降低了面向行业的软件的开发成本。 2 物联网中间件 与物联网/M2M相关中间件有很多种类,如嵌入式中间件、数字电视中间件、RFID中间件和通用M2M物联网中间件等,中间件和物联网一样无处不在。 OSGi(Open Services Gateway initiative)是一个1999年成立的开放标准联盟,被广泛的用到了手机和智能M2M终端上,在汽车业(汽车中的嵌入式系统)、工业自动化、智能楼宇、网格计算、云计算、各种机顶盒、Telematics等领域都有广泛应用。 3 ...”
JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
“Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。下面逐个分析。 JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx…… 那么,下面的步骤和以后的应用你都要受累了,呵呵。设置方法: JAVA_HOME=C:\jdk1.5.0_06 PATH 环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin (注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果) : PATH=%JAVA_HOME%\bin;%PATH% 同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。 CLASSPATH 环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。 CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 首先要注意的是最前面的".;",如果你看不清,我给你念念——句点分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的) ,所以如果喜欢盘根究底的朋友不妨研究一下LINUX。 为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:) 这个是由java语言的import机制和jar机制决定的,你可以查资料解决。 呵呵,具体的设定方法: win2k\xp用户右键点击我的电脑->属性->高级->环境变量,修改下面系统变量那个框里的值就行了。 win9x用户修改autoexec.bat文件,在其末尾加入: set JAVA_HOME=C:\jdk1.5.0_06 set PATH=%JAVA_HOME%\bin;%PATH% set CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar ”
CLASSPATH总结
“假设你在C:\workspace下写了个HelloWorld.java,并顺利使用编译程序javac将之编译为HelloWorld.class,在不 切换路径的情况下,可以直接执行java HelloWorld来加载HelloWorld.class并运行当中所定义的行为。 如果你切换到C:\底下或是其它路径底下,那么该如何加载HelloWorld.class并执行呢?以下并不是正解: java C:\workspace\HelloWorld 首先你要知道java这个指令是作什么用的?执行java,其实就是启动JVM,之后接下类别名称,表示由JVM载入该类别的.class并执行。 在 PATH 是什么? 中提过,当你在实体操作系统下执行某个指令时,操作系统会依PATH中的路径信息,试图找到可执行的档案(例如对Windows来说,就是.exe、.bat,对Linux等就是有执行权限的档案)。 在 为什么需 要 JVM? 中则提过,JVM是Java程序唯一认得的操作系统,对JVM来说,可执行文件就是扩展名为.class的档案。当你要想在JVM中执行某个它的可执行文件(.class)时,则JVM会依CLASSPATH中的路径信息来寻找。 作个简单的比照,可以很清楚地对照PATH与CLASSPATH: 实体操作系统依PATH中的路径信息来寻找可执行指令(对Windows就是.exe、.bat等,对Linux等就是有执行权限的档案)。 JVM(虚拟操作系统)依CLASSPATH中的路径信息来寻找可执行指令(.class档案)。 如何在启动JVM时告知可执行文件(.class)的位置?可以使用-classpath自变量来指定: java -classpath c:\workspace HelloWorld 指定可执行文件(.class)时,不用加上.class扩展名,这跟在Windows下执行javac时,不用特别再加上扩展名(javac.exe)是类似的。如果有多个路径信息,则可以用分别区隔。-classpath有个缩写形式-cp。例如: java -cp ...”
16
一个人的失败,98%死于“脾气”
“泰国的传奇人物─白龙王告诫: 人只要脾气好,凡事就会好。 很多人来到这里都问我︰ 我的事业好不好?家庭好不好?孩子好不好?姻缘好不好?我只是回答一句:你的脾气好不好? 人的一生都在学做人 ,学习做人是一辈子的事,没有办法毕业的。人生不管是士农工商,各种人等,只要学习就有进步。 第一学习认错 人常常不肯认错,凡事都说是别人的错,认为自己才是对的,其实不认错就是一个错。 认错的对象可以是父母,朋友,社会大众、上帝,甚至向儿女或是对我不好的人认错,自己不但不会少了什么,反而显得你有度量。 学习认错是美好的,是一个大修行。 第二学习柔和 人的牙齿是硬的,舌头是软的,到了人生的最后,牙齿都掉光了,舌头却不会掉,所以要柔软,人生才能长久,硬反而吃亏。 心地柔软了,是修行最大的进步。 一般形容执着的人说,你的心、你的性格很冷、很硬,像钢铁一样。如果我们像禅门说的调息、调身、调心,慢慢调伏像野马、像猴子的这颗心,令它柔软,人生才能活得更快乐、更长久。 第三学习生忍 这世间就是忍一口气,风平浪静,退一步海阔天空; 忍,万事都能消除。忍就是会处理、会化解,用智慧、能力让大事化小、小事化无。 要生活、要生存、要生命,有了忍,可以认清世间的好坏,善恶,是非.甚至接受它。 第四学习沟通 缺乏沟通,会产生是非、争执与误会。 最重要的就是沟通,相互了解、相互体谅、相互帮助,大家都是龙兄虎弟,互相争执、不沟通怎么能和平呢? 第五学习放下 人生像一只皮箱,需要用的时候提起,不用的时就把它放下,应放下的时候,却不放下,就像拖着沉重的行李,无法自在。人生的岁月有限,认错、尊重、包容才能让人接受,放下才自在啊! 第六学习感动 看到人家得好处,要欢喜;看到好人好事,要能感动。 感动是一个爱心、菩萨心、菩提心,在几十年的岁月里,有许多事情、语言感动了我们,所以我们也很努力的想办法让别人感动。 第七学习生存 为了生存,要维护身体健康,身体健康不但对自己有利,也让朋友、家人放心,所以也是孝亲的行为。 每天晚上睡觉前问问自己:今天我发脾气了吗? ”
浅谈淘宝类目属性体系:淘宝如何让用户找到想要的商品?
“【导读】今天的文章,适合大家保存,然后有空慢慢看。淘宝拥有百万家商户和超过10亿的商品数,它如何让用户精准地找到想要的商品呢?其背后的逻辑又如何?慢慢看。 【作者介绍】葛灿辉,搜索产品经理任职百度,希望做一个有思想的搜索产品经理。新浪微博:@葛灿辉-搜索数据挖掘 淘宝目前在线商品数超过 10 亿,如何精准的帮助用户找到他想要的商品呢?经过多年的探索,淘宝通过建立一套完整的类目属性体系,终于较好的解决了这一问题,今天就跟大家一起来谈谈淘宝的类目属性体系。 ▍一点点历史和架构 2003 年淘宝刚上线时,商品量很少,没有分类。 后来,商品量上百,开始有了对商品进行单级分类,有点类似于现在的一级行业类目。 等到商品上万的时候,商品的单级分类已经不能满足需求,开始有了多级分类,就是一颗类目树了。从 06 年开始引入了属性,商家按照属性模板填写属性,用户可以按照属性筛选商品。 到了 08 年,开始将前后台类目分开,用户根据前台类目筛选商品,商家将商品挂到后台类目上,前后台类目树之间建立好映射。 今天的淘宝类目属性体系主要由后台类目树、前台类目树、挂载在后来叶子类目上的商品属性模板以及管理前后台类目之间映射关系的类目管理平台组成,整体架构如下: 从图中可以看出,淘宝类目属性体系是一个非常基础的数据服务,在商品发布页上商家选择后台类目上传商品信息,详情页上以面包屑的方式给用户显示商品所属的前台类目,在搜索结果页上让用户根据前台类目筛选商品。运营同学可以通过一个管理后台来管理前后台类目之间的映射关系以及后台类目的属性模板。 ▍后台类目 后台类目面向商家,主要用于商品的分类和属性管理。商家上传商品时见到的就是后台类目,如下图: 后台类目有如下特点:  ● 后台类目树中最重要的是叶子类目,也就是类目树上不能再往下分的类目,任何商品都必须挂载到后台叶子类目上。  ● 叶子类目挂载属性模版,商家发布商品时选择好类目之后会根据属性模版,补充必填的商品属性信息,方可成功上传商品。  ● 后台类目相对稳定,不能随便删除,叶子类目不能重复。 ▍前台类目 前台分类面向用户,方便用户筛选查找商品,大部分时候用户见到的类目都是前台类目。下图就是淘宝搜索结果页上的淘宝前台类目树: 前台类目有如下特点:  ● 用户购买时看到的类目是前台类目。  ● 前台类目通过跟后台映射间接和商品关联。  ● 前台类目由后台叶子类目+属性组成,一个前台类目可以包含多个后台类目,一个后台类目也可以映射给多个前台类目。  ● 前台类目不直接挂载属性模版,前台类目对应的属性来自后台叶子类目的公共属性。  ● 前台类目很灵活,可重叠,可删除。 ▍为什么要将前后台类目分开呢? 介绍完淘宝的类目属性体系,或许你会问为啥要将前台类目和后台类目分开呢?直接用一套类目体系不就行了吗?这里我就给大家解释一下原因,到了 08 年,淘宝商品日益增多,类目层级也越来越深,买家越来越难找到想要的商品。淘宝的小二们就开始不断调整类目属性,把类目树变浅,让商品更容易被买家找到。只有一套类目体系的情况下,小二每次调整,卖家也必须跟着调整。如果只是改一次,卖家也能勉强接受,但这是周期性的。比如,在夏天服装这个类目下可能是连衣裙、衬衫等夏装,到了冬天就会变成打底裤、羽绒服等冬装了,而且卖家也都知道这些调整时合理的,但是一年到头这么调整,意味着他一年到头都在编辑类目,可能还得专门养个把人在那里,一天到晚改类目,无形中卖家的运营成本也就提高了。 08 年的时候,有个淘宝的产品经理从线下零售巨头沃尔玛得到启发,他发现沃尔玛仓库里面的类目分区和货架区的类目分区是分离的,仓库里面的类目分区比较稳定,很少变化,而货架区的类目分区会根据活动和季节经常调整。类似的,淘宝也可以把原来的一套类目体系分为后台分类和前台分类,后台分类面向商家,用来挂载商品和属性模板,比较稳定很少变化;前台分类面向用户,主要方便用户查找商品,很灵活,可以经常调整。后台类目和前台类目之间通过映射联系起来,一个后台类目可以映射到多个前台类目,一个前台类目也可以包含多个后台类目。 从技术的角度来看的话,前台类目就是在后台类目的基础上建立了一个虚拟类目。 ▍类目属性体系在搜索上的应用 先来看看类目属性体系是怎么帮助提升搜索的精准度的,下图是说明了用户 query 到商品搜索结果的全过程: 用户输入 query:iPhone,淘宝类目属性体系预测到跟这个 ...”
中国有位神人的31岁 51岁 74岁 85岁——你一定要知道
“有一位老人,他的名字叫褚时健。 生于1928年的褚时健出生在一个农民的家庭。1955年27岁的褚时健担任了云南玉溪地区行署人事科科长。 31岁时被打成右派,带着妻子和唯一的女儿下农场参加劳动改造。 文革结束后,1979年褚时健接手玉溪卷烟厂,出任厂长。当时的玉溪卷烟厂是一家濒临倒闭的破烂小厂。那年他51岁!扛下了这份重任。 思考: 而我们现在有很多2、30岁的人已经不想工作,害怕压力、害怕承担、怕苦怕累。到40岁已经觉得这一生的奋斗结束了。褚时健的奋斗故事51岁才刚刚开始。 经过褚时健和他的团队经过18年的努力,把当年濒临倒闭的玉溪卷烟厂打造成后来亚洲最大的卷烟厂,中国的名牌企业:红塔山集团。褚时健也成为中国烟草大王。成为了地方财政的支柱,18年的时间共为国家创税收991亿。 而就在褚时健红透全中国,走到人生巅峰时,在1999年因为经济问题被判无期徒刑(后来改判有期徒刑17年),那年的褚时健已经71岁。当从一个红透半边天的国企红人,执政了18年的红塔集团的全国风云人物一下子变成阶下囚,这个人生的打击可以说是灭顶之灾。 接下来的打击对一个老人才是致命的,妻子和女儿早在三年前已经先行入狱,唯一的女儿在狱中自杀身亡。 这场人生的游戏是何等的残酷,一般人想到的:此时这位风烛残年的老人在晚年遇到这样的不幸,只能在狱中悲凉的苟延残喘度过余生了。 三年后,褚时健因为严重的糖尿病,在狱中几次晕倒,后被保外就医。经过几个月的调理后,褚时健上了哀劳山种田,后来他承包了2400亩的荒地种橙子。那年他74岁。 王石感慨地说:我得知他保外就医后,就专程到云南山区探访他。他居然承包了2400亩山地种橙子,橙子挂果要6年,他那时已经是75岁的老人了,你想像一下,一个75岁的老人,戴着一个大墨镜,穿着破圆领衫,兴致勃勃地跟我谈论橙子6年后挂果是什么情景。所以王石说:人生最大的震憾在哀劳山上!是穿着破圆领衫,戴着大墨镜,戴着草帽,兴致勃勃的谈论6年后橙子挂果的75岁褚时健。6年后,他已经是81岁的高龄。 后来有人问深圳万科集团董事长王石:你最尊敬的企业家是谁?石沉王吟了一下,说出了一个人的名字。不是全球巨富巴菲特、比尔.盖茨或李嘉诚,也不是房地产界的某位成功人士,而是一个老人,一个跌倒过并且跌得很惨的人。 这些看起来无法跨越的困难并没有阻挡褚时健,他带着妻子进驻荒山,昔日的企业家成为一个地道的农民。几年的时间,他用努力和汗水把荒山变成果园,而且他种的冰糖脐橙在云南1公斤8块钱你都买不到,原来这些产品一采摘就运往深圳、北京、上海等大城市,效益惊人。因为褚时健卖的是励志橙。 王石再去探望褚时健时,他看到了一个面色黝黑但健康开朗的农民老伯伯。他向王石介绍的都是果园、气温、果苗的长势。言谈之间,他自然地谈到了一个核心的问题:2400亩的荒山如何管理? 他使用了以前的方法,采用和果农互利的办法。他给每棵树都定了标准,产量上他定个数,说收多少果子就收多少,因为太多会影响果子的质量。这样一来,果农一见到差点儿的果子就主动摘掉,从不以次充好。他制定了激励机制:一个农民只要任务完成,就能领上4000块钱,年终奖金2000多块,一个农民一年能领到一万多块钱,一户三个人,就能收入三四万块钱,比到外面打工挣钱还多。 他管理烟厂时,想到烟厂上班的人挤破头;现在管理果园,想到果园干活的人也挤破头。这个已经85岁的老人,把跌倒当成了爬起,面对人生的波澜,他流过泪,也曾黯然神伤。 现今,经过评估,褚时健的身家又已过亿。他的那种面对任何人生的磨难所展示出来的淡定,让他作为企业家的气质和胸怀呼之欲出。王石说:如果我在他那个年纪遇到挫折,我一定不会像他那样,而是在一个岛上,远离城市,离群独居。 王石的感慨,褚时健并没有听到。他在红塔集团时带的三个徒弟,现在已是红河烟厂、曲靖烟厂、云南中烟集团的掌门人,对他来说,他在曾经最辉煌时跌倒,但在跌倒后又一次创造神话,这就足够了。 褚时健这个最富争议的人物,给了我们一个答案衡量一个人成功的标志。不是看他登到顶峰的高度,而是看他跌到低谷的反弹力——巴顿将军! 未来的路上,不管遇到多大的困难,请想想这位老人,记住他的31岁、51岁、71岁、75岁、85岁.... 最后一句话送给所有的朋友:抓住机遇! ”
13
90后创业者开淘宝 月销售额达150万!
“一毕业就失业,成为当代大学毕业生共同面临的尴尬难题。而在浙江义乌工商学院,两名90后创业者,勤于思考,吃苦耐劳无论在哪里工作都有可能将挑战转化为机遇。在他们身上究竟发生着什么样的创业故事呢? 今天我们继续关注大学生创业的话题,2014年 全国大学毕业生达727万,一到就业季,就业就会成为不少毕业生所担心的难题,然而于此同时,一些大学生却开始了另一段别样的人生,在自主创业的道路上大展拳脚,浙江义乌的应届毕业任宝光就是其中的一位,一起来认识他。 任宝光的创业梦月赚十万不是梦 今年7月,浙江省义乌工商学院学生任宝光即将毕业,一大早他便来到了学校招生就业处,他此行目的并不是找工作,而是来招人。 工商管理学院任宝光:老师,我是毕业生,我是11届任宝光,我现在需要人手,今年刚毕业,然后这边规模扩充了还差两个人,希望这边帮助招一下。 老师:任宝光? 任宝光:嗯。 老师:今年刚毕业? 任宝光:嗯。 老师:现在在做什么? 任宝光:现在做阿里巴巴,现在两个岗位,一个是仓库配货员,还有一个是客服。 老师:仓库配货员和客服? 任宝光通过学校招生办招生 今年22岁的任宝光,虽然还是一名学生,但在电子商务领域已经小有成就,在阿里巴巴电子商务平台经营的家居用品店铺,从2013年开始,销售量就一跃成为家居行业第二名,并与全国上百家超市建立合作关系。目前任宝光已经拥有了自己的公司,拥有员工八名,月销售额达到120多万,成为了义乌工商学院的创业明星。说起今天的成绩,任宝光显得少年老成,他的创业之路并不平坦,由于忙于创业,学业一度被耽误,曾到了被学校劝退的尴尬处境。 央视财经《经济半小时》记者:你当时的时候成绩糟糕到什么地步? 任宝光:期末考的时候,会计考9分。 央视财经《经济半小时》记者:9分啊。 任宝光:我同学说,选择题随便选几个,也不是9分,当时我确实是考了9分,我自己都觉得不可思议。 由于当年高考成绩不理想,并没有考上理想的本科院校,2011年任宝光考入浙江省义乌工商职业技术学院经济管理学院,一入学便做起了淘宝,业绩逐步提升,可到教室上课却越来越少,缺课严重,挂科较多,面临退学和创业的冲突。经管分院建议他休学,与学校反复沟通后,他最终决定休学去创业.得知这一消息任宝光父亲很恼火。 任宝光父亲:当时很火的。我叫你来读书,现在不靠你赚钱,我是这么想的,你就安安心心把书读好。 老人的道理任宝光无法反驳,但是他内心却认定自己的长处更适合在商海搏击,不顾家人的反对,任宝光约了几个创业伙伴,拿着入学第一年开淘宝店赚到的5万元钱,直奔杭州开始做起了服装生意。 任宝光:我当时出去,出去的时候满怀信心,一定要干出点样子,让老师和同学知道一下。 但接下来发生的事情让他任宝光始料未及。 任宝光:结果因为对产品不熟悉,有些服装款式很复杂,就是搞的对市场这些都不了解,就比较盲从,后来就亏了,到后来回来的时候,就身上只剩下一千块钱。 创业的失败,家里的不理解,让任宝光很失落,这也让他重新思考对自己的职业规划,他认为,要圆自己的创业梦,自己还是应该寻找一个合适的平台重新学习和积累。再三思考后, 他再次回到学校,但是这一次,他没有回到经济管理学院,而是向学校提交了调换到创业学院的申请。创业学院院长朱华兵回忆起当时的场景。 浙江省义乌工商学院创业学院院长朱华兵: 他拿到申请想转到我们创业学院来,希望能够有一个好的起点,从零再开始,我当时就毫不犹豫地就签字,同意接受。因为我发现,他在杭州的创业,其实是积累经验的过程,他这个经验是我们普通学生所不具备的,我们创业学院的学生没有经历过很多的失败,我看好他。 回到学校的任宝光,重新开启创业梦想,重新做起了淘宝,通过老师的辅导,并依靠数据软件以及自己的实验分析,凭借淘宝官方付邮试用活动,迅速做大销量,最高一天卖出了2万3千单。 任宝光:那时候我打单,我都惊呆了,我就觉得两万三千单怎么打,一个小时打400张单子,两个打印机一直打一直打,连晚上睡觉的时候,都调好几千张单子塞到那里。 短短三个月时间,任宝光通过促销活动,赚了30万,平均每月10万元。 任宝光每天接到大量订单 任宝光:感觉,在做的时候就感觉,回去可能要买个宝马回去,特兴奋,想着家人看着这个样子,你特兴奋,每天干活都特别卖力。 任宝光销量上去了,可售后服务却跟不上,消费者投诉增多,并且淘宝对促销活动规则也进行了修改,这一系列的问题使任宝光感觉到,单独依靠淘宝活动冲销量的方法行不通了。 任宝光:,所以我就停下来了,就想做一些比较稳定的,因为这个东西毕竟不是每天都有的事情。 经过两个月的沉淀,2013年8月,任宝光在阿里巴巴的网店上线,从零开始,依托义乌本地小商品市场的货源优势,以独特的9.9元店供货的小百货定位,上线当月突波十万,接下来每个月翻倍增长,到2014年3月后月销售额突破120万,最高达到150万元。 任宝光:一开始的时候,当时就租了这个场地,然后货架就这两排,我也没想到,发展的挺快的,我也没想到能从一开始,一开始刚做的时候是月销售额7万多,现在已经到了120万到150万左右了,基本上稳定在这个区间,也没想到能发展这么快,现在这个货架这些已经全部都堆不下了,然后后来楼下租了两个仓库,也是堆得满满的。 刚开始做阿里巴巴的时候,任宝光和其他同学一样也很迷茫,卖什么样的产品,货源从何而来,也是困扰他的主要问题,通过市场调研进行数据分析,他发现问题解决的关键,是根据市场需求对现有产品进行改款升级 。 阿里巴巴上任宝光改良自己的产品 任宝光:有一次一个买家他说,能不能把这个东西做成椭圆的,因为人的脸是长的,后来我就带着这个镜子跟厂家说了,帮我把它做成椭圆的,椭圆的就是做成这种,这样大小其实没怎么办,只不过把形状变了一下,然后整个人脸照进去都能照得进去,人际关系就很好。 这款产品原先每天销售十几个,改款后每天销售几万个,按照市场需求进行一个简单的款式变化,便给任宝光的销量带来了巨大的变化。 任宝光:所以我一直就是很享受普通的产品把它改造之后,成为自己产品的这个过程。成为自己产品之后,它有销量的突破,不是说一般的大家能卖多少你能卖多少,你一下子就翻天覆地的变化。 现在每天任宝光都要网上寻找新产品,结合市场需求,不断进行改款创新。 任宝光:经过我的调查,这个厨房秤基本上都是5公斤的,然后7公斤的也很少,那么我想,如果保证他的准确度不变的情况下,把它提高到10公斤、15公斤,不仅仅是厨房能用的到,平常忙一些乱七八糟的一些水果之类的,日用也能用的到,这样功能就增加了,需求量肯定也会增加。 任宝光拨通了生产厂家的电话,希望将产品进行改款生产的想法与厂家进行了沟通 ,很快厂家给予了回复。 老板娘:你好。我跟你说,你这个15公斤,做是可以做,做起来这个秤有点难看,因为你15公斤,肯定是要有一个压的那种,压的15公斤中肯定会压到底板,但是我会把中间垫高一点,垫高一点的话,那肯定就是那个圆盘和秤底有一定的距离了,比我们平常的要稍微高一点。 任宝光:这个没事,到时候再调,你先这个确定能做是吧。 老板娘:能做。 得知厂家可以改款生产,任宝光显得很兴奋,10公斤、15公斤厨房秤目前在阿里巴巴市场上还没有销售,一旦改款成功,就意味着任宝光的这款产品在市场上具有唯一性,这样他就可以凭借这款产品最先占有市场,而此时销售这款产品利润也相对更高。 任宝光:因为新品出来这段时间它的销量是很大的,然后可以带动整个店的销量,等到后来大家都发现,等你销量上去成了爆款之后,大家其实同行都会发现你的产品好做,他们也会去做,到最后大家都有这个产品的时候,就是比谁的价格低,变成打价格战了。我希望根据买家的一些需求,做自己的产品创新,赚第一波钱,这个是比较有意义的 随着任宝光销售业绩的不断攀升,他也逐渐获得家人的理解,现在家里人成为了他的主要后援团,在他的带动下,父母关掉了江西老家的石材加工场,跟着他来到义乌共同创业,如今看着儿子从早到晚忙碌的身影,任宝光的父亲很感慨。也理解了儿子为了追逐创业梦想的决心和勇气。 任宝光父亲:没有想到,哪里会想到这样。当时我们这么说,一个书包,两个包,交了点学费过来了,哪里会觉得他现在会做成这么大,这小子怎么搞了搞,也搞出一点名堂来了,后来是这么想的,一看这个,那个就过来支持他。 任宝光始终认为,差异化经营,产品创新是竞争力的核心,尤其在互联网创业做电子商务更是这样。 任宝光:现在新时代我自己个人认为,创新对于互联网来说是比较重要的,一个生存的法则应该说。因为只有是说不断的去更新自己的产品,然后不断的去迎合这个市场的需求,我们才能走到最前面,才能一直走下去。 任宝光告诉记者,经历过创业的失败,然后才收获过创业成功,这样的曲折让他对创业的理解也更加深刻了,他知道前方也许还会有坎坷,但是他热爱创业带给自己的激情,他会在这条路上更加坚定地走下去。 任宝光:首先去喜欢自己将要做的这个事情,然后不断的去为之努力,全身心的努力,这样一定会有机会成功。 任宝光刚刚大学毕业,就已经总结出了自己的生意经,这都是他从成功和失败中不断琢磨而总结出的创业经验,这样的经验和认知比看书,听讲座更加深刻,也将对他未来的人生更有帮助。在他的身上,我们看到了一种后生可畏的朝气和果敢,而事实上,在他就读的义乌工商学院,还有一大批大学生有着同样的志向和信念。 我们认识了一位即将毕业的大学生创业者任宝光,他不怕失败,勤于思考,充满干劲儿,让人印象深刻,他的另一位校友朱盈盈,还在大学二年级,就走上了自主创新的创业路,我们再来见识一下这个不走寻常路的大二女生。 90后女大学生朱盈盈不走寻常路 义乌工商学院创业班学生朱盈盈:老板你好,我想问一下你们家有没有这款腰包,有看到过吗? 老板:我们没做这个。 朱盈盈是义乌工商学院创业学院大二的学生,她和同学黄成博一早便赶到义乌小商品市场,为他们在淘宝网上销售的一款户外腰包,进行线下市场调研,通过了解,他们发现这款产品在市场上并不多见,经过多方寻找终于找到了一个商家正在销售。 老板:像你这样的差不多在十块钱左右。 朱盈盈:我起订数量,如果我要订的话,肯定是要订一万个以上的,你就先按一万个给我一个价格,最便宜的价格,我们都是学生,你们那个价格给我们便宜一点,因为这种产品要是成本价报得太高,我们做网上的,网上价格很难压得下来了。 老板:像你这样的差不多在九块钱。 朱盈盈:好的,你先把你的名片给我一张,我稍候跟你联系一下。 朱盈盈:来这里拿货的价格比我们贵好多。 通过市场调研和比对,朱盈盈和黄成博一致认为,他们在网上销售的产品从无论从价格还是到质量都非常有竞争力,这让他们对未来的销售前景也充满了信心。随后他们又来到了一家经营户外用品的商户,为另一件即将推出的商品进行调研。 朱盈盈:你觉得像这个产品,在户外产品行业里面,有没有看到过这种产品,就这款? 老板:不多。 朱盈盈:是新产品确实是。 老板:对,不多,一般的都是那种围巾或者小护腿之类的,小毛子之类的。 朱盈盈:就那种臂包之类的,这款是新产品。 商户老板对于这个新产品给予了认可,但是对于朱盈盈提出对产品进行精品化包装,走精品路线,这位老板并不赞同。 朱盈盈:精品盒装,盒子外面可以印自己的LOGO。 老板:LOGO是可以的。 朱盈盈:弄得比较像是一个品牌产品一样。 老板:我不知道你们这边怎么样,像我们这边,我们那边好多骑自行车或者怎么样的,大部分都是一部分是志愿者,一部分是环保人士,不会说特别注重你这个东西的包装的,但是你这个东西的牢固程度一定要结实。 朱盈盈:这款多少钱会买? 老板:我觉得看起来的话,不能超过十块钱吧。 朱盈盈:不能超过十块钱。 回到学校朱盈盈马上召集创业团队成员开会,把市场调研的情况和大家分享,看得出来,她对目前团队主营的运动腰包产品定位非常有信心,而且价格方面也颇有优势,朱盈盈向大家透露了即将推出新品户外臂套的计划。 朱盈盈:对于我们现在来说,我们时间可能非常紧迫了,时间很紧迫,我们必须现在要跟时间做一个比赛,是吧,像现在的话,南方的话可能稍微还是入冬,可能稍微比北方更迟一点,但北方,他们8、9月份基本开始冷了,户外的人比较少去户外,我们这款产品,如果到他们入秋了,他们穿长衣服,佩戴可能有点不方便,我们就是做一个夏天产品,现在一定要赶紧把它打入市场。 为了让我们新产品早日上线,让我们一起来加油一下,来,好,加油。 为了新产品早日上线,朱盈盈给每名团队成员明确了责任,进行了分工。忙完团队会议,朱盈盈与工厂老板就价格和款式经行了进一步商谈。 与厂家交涉中的大学生创业者朱盈盈 朱盈盈:我们团队刚才开了一个小会讨论,我们就说想要把这款产品打进这个市场,我们首先考虑用一个低价策略,低价策略的话在成本上我想得到你更多的一些支持。 老板:支持的话,我们合作这么愉快,我也想尽最大努力去支持你,但是我可以跟你说,你应该了解业务这块,说的难听点就是薄利多销,假如价格降很多下来,说得难听点,羊毛都出在羊身上,你说要降价,肯定产品质量下来了。 朱盈盈希望把产品定位在低价优质上,吸引更多回头客,但是如果成本价格降不下来,这个策略就很难实施。经过反复与老板进行沟通,老板提出了一个新的解决办法。 老板:我也是一个初步的打算,打个比方,你给这个产品参加活动,但是这个活动我给你补贴,打个比方这个五块钱一个,给你8%的回扣,可以给你便宜四毛,如果超过一万,就站在另外一个档次上面,说得难听点,这个东西就是一个推广的作用,这个钱是推广的费用。 朱盈盈:可以。 得到工厂老板承诺的优惠扶持政策,朱盈盈显得很开心,她告诉记者2012年大一刚开始创业做淘宝的时候,创业很艰辛,进货全部是现金,由于资金有限,拿货量少,也不受重视,更没有资格和供货商谈优惠条件,由于进货价格高,往往是卖一单赔一单。 朱盈盈:因为刚开始的时候我们想的是说,放很多很杂的东西在一个店铺里面,总想着说藏品多,然后买的人就会多,然后这个方向就是错误的。 经过一段时间的总结与摸索,朱盈盈渐渐明白,要做大做强,必须拥有自己的品牌,她的创业的方向也逐渐清晰了。 朱盈盈团队致力于创建自己的品牌 朱盈盈:小的话,我的理解就是一个产品它的细分市场下的一个子细分市场,然后美的话,就是将这个产品做得精,做得好,品质好、品牌好,就想要这样子,所以说才想要去做品牌,想要去做质量,要求厂家也都是说一定要质量好。 朱盈盈所强调的创业方法是, 产品走自主研发的路,不是盲目跟风模仿,而是通过在网上和手机上与进卖家进行调研,根据市场需求自行设计产品,再与生产厂家直接对接生产,这样就形成了一条自主研发的道路。 就是因为经过调查、经过一些数据的表现,我才觉得它是一个可行的方法,因为数据的是很客观的直接的反映消费者的他们的需求的,因为我们就是以他们的需求为中心,然后再去卖产品的。 新的产品生产理念给朱盈盈和她的团队带来了巨大收获,运动腰包上市销售火爆,短短1个多月时间便销售出近3千件,原先一件商品只有10%的利润,而现在一件商品的利润可以达到25%-30%,如今朱盈盈和几个同学成立的“蘑菇头创业团队”,也得到了创业学院充分认可,学院免费提供给他们提供创业场地,使他们有了属于自己创业工作室,朱盈盈很珍惜学校现有的创业环境和创业氛围,明年她也将面临着毕业,也要像师哥任宝光一样接受挑战,独立面对社会去创业,朱盈盈告诉记者,他并不会像其他大学毕业生一样,为就业而苦恼,她会坚定沿着这条创业路走下去,她会摆脱走出校园面对社会时的恐惧与抵触,因为她已经有了一笔宝贵的财富,那就是在学校期间的创业经历 。 朱盈盈的创业团队 朱盈盈:总有一次会成功。不可能人生那么久,不可能说每次都失败,而且每次的战斗即使是失败,它给你累计下来的经验都是一笔一笔的财富,都是日后可能回忆起来一笔一笔美好的回忆。所以说我觉得的话,那么如果继续做下去,一定有成功的那一天,也相信有志者事竟成。 类似任宝兴、朱盈盈的创业大学生,在义乌工商学院还有很多,他们入学时成绩并不是很优秀,当初报考高职院校的目的很简单就是学习一技之长,日后方便就业。但很多学生却逐渐点燃了自己创业的渴望,背靠义务小商品市场的平台,义乌工商学院在2009年就成立了创业学院,鼓励学生在校创业。学院是怎么扶持学生的?让自己拥有市场是努力的方向,为自己的同学创设就业岗位不应只是一个梦想,成为了创业学院学生的奋斗目标。此句不通顺。不在于有多少学生专升本,而在于有多少学生能以创业带动就业,成为了学校培养学生的方向。 义乌工商学院副院长贾少华:成才的路千条万条,谁都能意识的到,但是我们现实当中很多时候走的路过于单一,所以我们还是回归到真理,选择走一条自己适合走的路,我们一定能成功。所以创业人才的话,万变不离其中,你就是要去做、实践,不是因为你有机会,你才去创业,是因为你去做了,你才有机会。不是你有本事,你才去做,而是因为你去做,你才有本事, 【半小时观察】素质教育铺就创业路 在节目中我们看到的两位充满朝气的90后创业者,说实话,从他们管理业务和团队所展现出来的成熟和干练,让人很难相信他们一个是92年出生,一个是94年出生。是这些年在市场的摸爬滚打,失败和教训历练了他们,从而成就了他们。从他们身上,我看到了一个创业者所必须具备的品质:勤于思考,吃苦耐劳。其实,培养好创新创业素质 ,无论在哪里工作都有可能取得成功,关键是要把挑战转化为机遇。 即使大学生毕业后不自主创业,而到各类企业、政府部门、高校或科研机构就业工作,或者选择攻读更高的学位,他们也能有更强的创新意识和更好的表现。成功的道路有千万条,重要的是具备取得成功的素质。 ”
李先生293万元拍下法院拍卖房 结果买贵了
“法院处理的财产价格怎么说也应该比较低,这几天,上海的李先生抱着这个想法,在法院拍卖财产时盲目跟拍,就遇到了拍到的房产高于市场价的情况。李先生好不容易把房子拍到后,又后悔了。 [竞拍] 293万元拍下法院拍卖房 李先生今年56岁,儿子结婚后一家人挤在自己家的老房子里,生活着实有点不方便,一直盘算着买一套住宅给儿子儿媳小两口居住,前几年房价太高,房子看了好几套,一直没下手。 上月初,李先生无意中在报纸上看到一则法院拍卖公告,宁波某法院要拍卖一套位于上海浦东新区的住宅房,公告期只剩下两天。李先生赶紧和儿子一起到现场看房,房子东南朝向,面积、户型、地段和房屋装修都挺好,当时两人想把房子买下来。由于担心房款支付的问题,李先生还特地询问了上海的一家房产中介。中介和他说不用担心房款,可以拍卖下来后先办理抵押贷款手续,再用所贷钱款支付拍卖款项。 于是第二天,李先生就和儿子兴冲冲赶来宁波,拍卖须知也没详细了解,就通过银行向法院交付了30万保证金。拍卖当天,竞拍现场气氛热烈,李先生心仪房子的价格从起拍价243万开始节节攀升,李先生志在必得,以293万元的最高价将房子拿下。 [后悔] 拍卖价高过市场价格 拍卖成交后,李先生却傻眼了。因为法院告知他,拍卖成交后必须在规定时间内将293万成交价(扣除已支付的30万元拍卖保证金,还需支付263万元)全额打进法院账户,待款项全部到位后,法院才会出具相关法律文书,李先生在缴纳各项税费后凭相关法律文书才能办理房产过户手续。 263万不是一笔小数目,李先生一时半会儿上哪里去筹这么多钱?除此之外,李先生还需要支付拍卖佣金、房产过户中应由买方承担的相关税费等各项费用,总额也是十几万。这么算下来,李先生购买这套房产的全部费用已超过市场价。不要这套房子吧,30万元的保证金就要损失。要吧,一下子又没这么多现钱。无奈之下,李先生只好四处筹钱,搞得自己非常被动。 昨日,法官告诉记者,李先生已经将钱全部打进了法院账户。 [提醒] 参加法院拍卖须理性 法官提醒:法院拍卖财产,在成交后,买受人除了要一次性全额向法院支付成交款以外,还需承担另外的一些费用,以房产为例,需要支付拍卖佣金,房产过户所需的一切税费等,可能还要承担房产滞交的物业费以及所欠的水电费等。 法院综合考虑各种税费及其他费用,定的拍卖底价一般低于市场价,如果流拍过一次,再次拍卖时价格会更低。但法院仍然建议竞买人在参与竞拍前将拍卖所需各项费用都了解清楚,由此估算出自己的心理价位,不要盲目跟拍,因为不理性的加价跟拍,导致成交的标的物比市场价高的情况也是存在的。 ”
北京买车新规 购买法院拍卖车无需指标
“近日,媒体报道了一条关于“北京购买法院拍卖车无需指标”的消息,这成为除了参加“摇号”之外另一条合法获得购车资格的有效途径。据了解,这个方法有望为购车人缓解“摇号难”问题,通过司法拍卖同时得到车和车牌。我卖我车网进行相关解析。 自2014年1月1日起《北京市小客车数量调控暂行规定》施行。新规中,首次专门对司法拍卖车辆作出明确规定。根据新规第33条第3款,"因本市法院司法拍卖本市号牌小客车发生所有权转移的,竞买人须符合小客车配置指标申请条件,竞拍成功后买受人持市高级人民法院和指标管理机构共同出具的相关证明文件,到公安机关交通管理部门办理转移登记手续"。 针对此问题,大兴法院执行三庭庭长张守国解读称:"2012年初施行的实施细则,要求购买法院委托拍卖车辆的人,也必须拥有购车指标。而此次,竞买人只需要"符合小客车配置指标申请条件"就行了。" 申请条件:2014年1月1日起,凡满足住所地在本市、名下没有本市登记的小客车、拥有驾照三项条件的本市户籍人员、持有《北京市工作居住证》的非本市户籍人员、持有本市暂住证且近5年(含)连续在本市缴纳社会保险(放心保)和个人所得税的非本市户籍人员等,可以通过司法拍卖会竞拍车辆,而无须购车指标。 参考链接: 北京法院网 网络拍卖平台 ”
6月
30
长期短途行车对车的损害
“长期短途行车,对于车是很不好的,短期内看不出什么问题,但车辆使用3到5年后,车况的好坏就比较明显了。 首先电瓶容易亏电,每次点火会比较耗电,而行驶时间只有5分钟,充电时间不够,电瓶长期处于缺电状态,寿命大大缩短。电瓶通常是行驶30分钟以上才能完全充足电。 其次利用怠速10分钟来充电,油耗和积炭都大大增加。对于火花塞、气门、活塞环以及三元催化剂都极为不利。通常怠速最好不要超过3分钟。 第三、5分钟的行驶时间,还不够车辆转动机件充分润滑。水温和油温都没有到达正常温度。通常正确的做法是点火后原地热车1分钟,待车速回复到600-700转左右,起步慢行5-10分钟(视气温高低而不同),水温油温才开始逐步正常后才能进入正常的驾驶。 ”
32-47岁,黄金15年,你需要做的10件事
“人的一生,从三十而立迈向四十不惑的一段路上会有很多新的感悟,不管怎样,这十门功课是少不了的。70、80后的亲们共勉! 1 、学会放手 这个年龄已经不允许你不成熟,当你无力把握命运中的某种爱,某种缘,某种现实,学会放手。给自己身心一个全新的开始,只要信心在,勇气就在;努力在,成功就在。 2 、储蓄友谊 真挚的友谊是人生最温暖的一件外套。它是靠你的人品和性情打造的,在这个年龄一定要好好地珍惜它,用心去储存。 3 、播种善良 一定要极尽自己所能及之事,让那些比你苦、比你难的人感受到这世上的阳光和美丽。这样的善良常常是播种,不意间,就会开出最美丽的人性之花来。 4 、懂得音乐 音乐可以陶冶情操,它会洗涤你的身心。会打开你的记忆和想象,全心地投入,更会给你带来意想不到的宁静。它是日子中的味精,点点滴滴中让我们的生活有了滋味。 5、避开两种苦 尘间有两苦,一是得不到之苦,二是钟情之苦。在你付诸努力的前提下,所有的、想得到的都当作一场赌。胜之坦然;败之淡然。好在这年龄还具有一定的资本,我们可以卷土重来。世间最苦是钟情,如果在这时候还有这样的情愫,一定要象打扫灰尘一样,把它从心屋里清出去。 6 、学会承受 有些事情需要无声无息地忘记,经过一次,就长一次智慧;有些苦痛和烦恼需要默默地去承受;历炼一次;丰富一次。 7 、保留感恩的心 感恩的心一定要时时保留,它不仅让你怜惜一沙一石、一草一枝,还会让你淡漠某种无形的压力,平抚你的欲望和争斗,更多的时候,有一些幸福的感觉也往往来自于此。 8 、热爱工作 尽管它决没有喝茶、聊天儿那样惬意,但它检验着我们的智慧和能力,是我们体现价值和成就所必备一种内容。一定要全心爱它,它让你大半生有事做、有饭吃。 9 、善于学习 读书和学习都是在和智慧聊天,它不仅保证你的记忆力、感悟力。你的有些思想来源于此,有些见解来源于此。并且还能医愚,还会长久地保持你的个性魅力,这是练瑜珈做美容所不能达到的效果,何乐而不为。 10 、享受运动 很多人认为自己胖、自己丑 … 于是,就有人拚命地节食减肥、手术美容。你的大部分时间与其就浪费在这样的情况下,不如去享受运动、享受自然。 你的体重就不会因懒惰而上涨,你的容貌也不会因岁月而减少生动。那么你就在某种程度上保存住了你的青春,你的快乐,你的健康。 等老了,和心爱的人一起, 找一个小镇,安静的住下,早上在巷口看太阳,晚上拄着拐棍敲夕阳… 世间的感情莫过于两种: 一种是相濡以沫,却厌倦到终老;另一种是相忘于江湖,却怀念到哭泣。 离开一个地方,风景就不再属于你; 错过一个人,那人便再与你无关。 人生就是这样,牵挂着、烦恼着、自由着、限制着;走出一段路程,回头一望,却也生动着、美丽着; 有着你爱的人和爱你的人, 有着你喜欢的事和需要你做的事, 有着牵挂你的人和你牵挂着的人; 人这一辈子是短暂的,所以要让自己健康着、开心着、幸福着,偶尔还要醉着。 ”
成功不是先有钱,而是先有胆
“一、胆量决定财富 1、想常人之不敢想,做常人之不敢做 2、不拼,怎么知道不行 3、有没有勇气走出第一步,往往是人生的分水岭 4:人的成功是被冒险逼出来的 5、不冒险就是最大的冒险,我们坚决不做老实人 6、害怕失败,就等于拒绝成功 7、要想知道梨子的味道,就要亲口尝一尝 二、机会青睐于果断(果断法则) 1、一个有魅力的人,必定毫不犹豫,说到做到 2、你一旦拖延,你就总是会拖延 3、当你做了不属于自己的工作时,机会就来了 4、对于强者而言,碰到的每一件小事都是一个机会 5、不要因为那些“如果”,影响了你的果断 6、偶尔做出错误的决定,总比不做决定要好 7、我们还有机会,因为我们还活着 三、成功者希望自己“一定要”成功(“野心”法则) 1、不是“我想要”成功,而是“我一定要”成功 2、虽然不能成为富人的后代,但我可以成为富人的祖先 3、斩断退路,把自己逼上悬崖 4、积极行动,将49%的成功率扩大到100% 5、态度决定高度,企图决定成败 6、与众不同的经历,造就与众不同的未来 7、想越过高墙,你就先得把帽子扔过去 四、“发现”就是成功之门(判断力法则) 1、大富翁从不害怕做决定 2、我们身边并不缺少财富,而是缺少发现 3、让每一寸土地生长出黄金 4、你必须放弃一些平凡人的快乐财富的眼光 5、只有目标清晰,意志坚定的领导人才能成为一流的决策家 6、要减少失误率,最好的办法就是减少打击率 7、商业第六感来自长期积累,而不是天生 五、天才始于创新(创新法则) 1、你一旦放松自己,就马上落伍 2、用新的方式思考,用新的方式做事 3、如果一个人有当傻瓜的勇气,那他一定很有创意 4、能生存下来的不是最强的,而是最能适应变化的物种 5、胆识决定成功,野心决定规模 6、唯有偏执狂才能成功 7、大家都没做的,正是你该做的 8、成功者决不看人脸色做事 六、成功者必须借助他人的智慧(智慧法则) 1、成功者懂得运用别人的智慧 2、少接触小人,多跟成功的人在一起 3、无知的冒险只会使事情变得更糟 4、既要胆大,更要心细 5、你不一定要有很高的智慧,但你必须把所有的优点都发挥出来 6、卖文具并不比卖鸭蛋赚得多 7、从商者必须具有街头生存智慧 七、为你的目标而奋斗(领导力法则) 1、一个真正的企业家,不仅要有管理才能,更要有胆量 2、做个既有威严又有人情味的上司 3、激励你的团队,让他们更加积极 4、想要人们跟着你的想法走,就要付出极大的勇气 5、信任你的员工,这样他们才会更信任你 6、要么跟着我好好干,要么立马走人 八、在害怕中仍然充满自信(勇气法则) 1、不要被自己的恐惧杀死 2、你可以怕,但是不可以输给眼前的敌人 3、进攻!进攻!再进攻! 4、做你害怕做的事 5、想一想最坏的结果会是怎样 6、没有所谓的失败,只有暂时的成功 7、成功就躲藏在最后一步 九、尽自己最大努力就是成功(狂人法则) 1、40岁前至少赚到10亿美元 2、你在为自己打工,为自己的人生打工 3、成功者都是天生的工作狂 5、拥有一个强大的对手是一种福分 5、像疯子一样不屈不挠 6、只有傻瓜才会害怕变成傻瓜 7、不想当元帅的兵不是好兵 ”
你不想瞎忙,只需做三件事
“第一件事:找对平台 无论你是才华横溢,还是草根布衣,你只有把自己放对了地方,你才会有正念正见正语正行,因为,人是环境的产物。 第二件事:交对朋友 物以类聚,人与群分,你的一生中要么影响别人,要么被人影响,当你还是处在社会底层的时候被人影响非常重要也十分必要,关键是你被谁在影响,你是否经常被一些与你同层次的人弄的人云亦云的,经常被人消极的催眠呢?请记住,跟谁交朋友,将决定你的一生可能跟谁一样! 第三件事:跟对贵人 先有伯乐,才有千里马。人是可以被教育的,前提是,你的伯乐在哪里?他是谁?他能让你成为谁?贵人是教育你建立正确思维、正确价值观、正确人生理念的人,贵人是给你理顺思路的人,是给你明确方向的人,是修正你的人、是恨铁不成钢又处处说你优点的人,是鼓励和帮助你的人,是恨你到咬牙切齿又不忍心放弃你的人,是把你扶上马送你一程的人,是陪你到胜利为你呐喊欢呼的人! ”
15
浅析O2O商业闭环的价值与痛点
“当很多人谈论“闭环是一个伪命题”的时候,相信不少真正的业内人士都会报以“呵呵”。所谓互联网的闭环,就是说依靠核心产品使得整个商业模式链条的每个环节,都能够实现价值,各个环节之间都有一种环环紧扣的循环关系——而如果一旦缺少两个中的任何一个功能,都不能称之为闭环。 网购属于最典型的商业模式闭环,而如今闭环这个词常常被应用在O2O模式下。再联想到团购和导购行业,它们所处的行业其实在闭环打造的进程中分别处于不同的阶段,整体的商业体系也存在着很多需要补缺的地方。但或许正是这种不完整,才蕴含有无穷的商业潜能。 两种形态的商业闭环 先举我碰到过的两个例子,以此来简单阐述一下商业闭环的价值: 还在北京的时候,去商场买一个派克IM系列的钢笔,当时的专柜价是160元,我在问柜员有没有折扣的时候,他直接推荐我去天猫旗舰店购买,现在正在做活动只需要150元,当时被那个帅哥柜员感动的稀里哗啦。 另一个例子是去一家非常好吃的餐馆(为避免商家的麻烦,故隐去名子)去吃梭边鱼,吃完之后,我问服务员有没有优惠券,顺势就掏出手机打算用大众点评客户端去查一下,这时候服务员告诉我,你不用下载优惠券了,我们直接按优惠后的价格给你…… 这两件事给我带来了不小的启示,第一个例子中,除去派克的帅哥店员看我娇俏可爱(自恋一下,勿喷啦)的因素外,他主动给我推荐一个优惠的渠道,可以说明他不介意我是从天猫上购买还是从店里直接购买,甚至是还在有意的引导我去逛他们的天猫旗舰店。但在第二个例子中,服务员明显是有意的让我绕开大众点评,使我和他们之间产生更直接的交易。当然,我们看来店员的行为一定是老板所授意的。 同样是融入了网上的这一个环节,为什么一家有意的去迎合,一家却避之惟恐不及?其实造成这两种态度最大的原因就是闭环所带来的价值。 我在天猫店购买,只要是正常流程,不出现售后等各种问题的话,我一般会给一个好评。即便我忘记了,几天之后天猫也会默认给一个好评。而这些好评,可以给这家店和这件商品带来一些信用的积累,以此来吸引更多的人购买。 而我通过大众点评下载优惠券,商家实际上并不能获得太多的好处,相反,如果点评是按优惠券下载给商家收费,商家还要付给点评推广费。虽然点评上也有商户评论信息,但并没有完全的融入到用户的消费流程之中,即就算我吃了,并且也是事先从点评上看的推荐菜、下的优惠券,但最终评不评价完全要看我的心情。 餐馆的做法非常具有代表性,也就是O2O模式往往在线下环节难以形成闭环,这也是O2O模式不足够成熟,急需要解决的痛点所在。 而淘宝在线商城的模式,就完成了一个典型的商业闭环。淘宝的伟大之处在于将用户选择、购买、支付、评价、售后的各个环节都放到了一条线上,并且以此来形成了一个完整的闭环。在这个闭环中,消费者、商家和淘宝分别各司其职,通过维护这个闭环来最终获益。 但在本地生活服务领域,这个闭环并没有形成,即大众点评其实并没有能够使得三方形成一个利益的集合体。服务商更多的对商家提供的是一个松散的服务体系,对其店面的推广、二次营销并没有太好的引导。这同样也是服务类团购网站所面临的问题。 团购模式解决了闭环问题,但服务任仍有局限性 团购的价值在于给团购网站提供了一个预收费系统和相对完整的闭环验证体系。团购的大致流程是,消费者在团购之后是付钱给了团购网站,然后由团购网站发给消费者一个验证码,消费者拿着这个验证码可以直接吃饭。然后商家就必须记录下来这个验证码去和团购网站结算,最后团购网站根据销售额来收取一定的佣金。 这个好处在于,商家和团购网站都不用担心相互有“逃单”的行为,像前文提到的去新辣道吃饭,店员绕过大众点评的做法,在团购之中就不可能会出现。但仅仅这样,其实并不能满足商家的需求。 团购的本质其实是商家通过减少自身的利润来拉来客户,团购网站在其中扮演的作用是将这个优惠的信息让更多的人知道,也就是媒体。但商家逐渐会觉得,我减少利润拉来的客户,最后招来的往往是那些贪便宜的人,而真正能够转化为可以赚钱也就是忠实客户的人非常少,如果是这样的话,对自己来说又会有什么价值呢? 这种问题最终往往会导致两种情况,一种情况是团购的价格优势逐渐失去,商家想的是,反正在团购网站上相当于投广告,还不如少亏一点,把价格提上来。好像有一份统计,团购在不到3年的时间,涨价70%。但这种情况会导致用户的不满,如果团购没有价格优势,用户为什么还要用团购呢?第二种情况是,团购上的优质商家在慢慢减少,而普通的商家在不断的增多,在优质商家看来,团购其实就是在帮忙拉来了新客,但并没有什么后续的服务,与其这样,干嘛还要做团购呢?最经典的例子是,万达院线就已经很少再做团购了。这种情况会让消费者感到,团购上都是一些新的商家,一些知名商家都不做团购了。如果团购网站上都没有那些知名商家的话,用户还会用团购么? 不过,好在中国商户的数量足够多,暂时还没有出现这种迹象。但从长久来看,团购的尴尬终将会导致这些团购网站开始向服务的纵深领域发展。还是以大众点评为例,在下一步大众点评很可能会在给商户提供拉新服务之后,将优惠券与其商户评价相结合,即用户可以免费下载优惠券,但前提可能需要给商户一个评价,或者是改变优惠券自由下载的模式,通过点评团购消费之后,点评会立即再发给消费者一个优惠券,以此来刺激用户的二次回头。接着,根据用户的购买记录,点评可以给这些用户办理一张虚拟的在线会员卡,让这些用户无论商家有没有优惠信息,都可以随时享受到一个折扣,如果更进一步,还可以有一些特权,比如无需排号等等。 以此为基准点,最终点评很可能还需要帮助商户建立其CRM体系,帮助商户区分出哪些是新客、哪些是回头客、哪些是忠诚用户,然后进行针对性的营销。同时,点评还可以发展其在线预定、在线点餐等类似于OpenTable的服务,最终形成一个整体的商业闭环。在这其中,很可能需要的是类似于微信服务帐号和微信支付帮助实现,相信这也是为什么一直孤傲的点评同意腾讯入股的原因之一。 导购:评价闭环的价值 其实在根本上,本地生活服务需要解决的是在团购现有的基础上,最终形成一个评价和支付闭环的统一。同样在导购领域,其实也需要经历这个流程。不过,从目前国内类似于美丽说、蘑菇街、折800这样的导购网站发展来看,这种闭环的价值体系还处于起步阶段。 导购在其闭环之路上,其实很大程度上取决于其目标网站,即目标网站原本的体系。虽然美丽说、蘑菇街现在已经都转型为自营,但其实很大程度上还是用的导购平台的运营模式,只不过从之前将流量导向淘宝转为了自营平台(其实现在在美丽说和蘑菇街上,也还有一部分流量是导向淘宝天猫的)。而这也恰恰能够帮助导购网站更好的完成自己的闭环。对于这种以导购运营切入自建商城的特色运营模式,我们干脆将其称之为“导购平台”。 之前我在《导购平台,无差异则无未来》一文中简单提到过,导购的生命线在于其差异化的生存,也就是能否帮助用户进行挑货。但从导购更加长远的发展来看,如何与用户产生更加多的互动从而产生更多有意的东西反哺给导购网站才是至关重要的。 在淘宝上,用户购买之后需要给予好评,而在导购平台上,经常的做法是用户开放性的评论。无论这个用户有没有购买,都可以给这个商品进行评价。这种体制很可能出现的情况是,用户很难找到哪些是真正有用的信息。对于这个问题,导购网站的解决对策是,更多的用PGC也就是编辑推荐的内容来增强用户的信任度。比如美丽说经常会做一些潮人搭配专题,而折800做的就更加干脆,所有推荐的商品都由自己的编辑去跟商家砍价。 但这明显不是长久之计,只依靠编辑推荐的方式,最终很可能会导致用户的兴趣点降低,一个月每天看可以,但一年、两年、三年……用户的难免会产生审美疲劳。晒单其实是一个比较好的做法,再有购买过的用户才能进行晒单(比如提供物流帐号、订单号等等),这样用户就可以迅速找到有价值的信息。而导购网站可以给晒单用户一些积分或者其它奖励,来维持晒单的积极性。 购买晒单-奖励-购买-晒单,这样就产生了一个评价的闭环。从现在的导购网站来看,折800虽然有一个可以供用户免费换取奖品的积分商城,但缺少晒单的流程,美丽说、蘑菇街在奖励体系上不够完善,什么值得买也是没有形成很好的积分体系,而55BBS的问题是用户太窄,受地域限制,而且不够专注,线上线下都有,没有特别明显的差异化。 而对于支付的闭环,很多人认为导购网站并不涉及到支付的环节,追求这个闭环又会有什么意义? 实际上,在上面那个评价闭环之中,如果导购平台能有一个支付的反馈,其实就更容易实现这个闭环。其实如果淘宝客能够实时的反馈给商家数据的话,导购平台的闭环中就很容易确认是否是购买晒单了。这也是为什么美丽说、蘑菇街在转成自营平台之后,更有了实现这种闭环的土壤。因为这个购买数据可以有一个更实时的反馈,可以让用户都更有积极性去贡献有价值的内容,而商家也会对这个内容更加重视。 商业闭环的魔力,其实体现在各个我们无意识的角落。实现了闭环,就能够将各个商业环节打通,从而形成一个良性的循环。但对于任何一个想要成为巨头的公司而言,闭环完成的越多其实也往往意味着它的业务线越完整,商业壁垒越高。 作者:杨君君 来源:万擎咨询 责编:李丹”
11
喜欢使用IntelliJ Idea的25个理由
“IntelliJ Idea是一个相对较新的Java IDE。它是我所使用过的(我用过大部分Java开发环境)Java开发环境中最为有用的一个。高度优化的IntelleJIdea使普通任务变得相当容易。 通常不是较大的标签特性使一个产品真正有用。而是这些小的方面:里面的许多小的细节使整个包无缝集成及乐于使用。 下面是我真正喜爱Idea的一些理由。 1、感知语法词选择 反复使用Ctrl-w使所选表达式逐步增大直到选取整个文件。但是这一点听起来并不是很重要,它在与其它特性如“introduce variable”refactoring(“引入变量”重整)相结合使用时才真正好用。我可以把脱字符置于复杂表达式上,按Ctrl-w直到选取所需范围然后按Ctrl-Alt-v为表达式引入一个新的变量。如果我要替换这个表达式的其他事件Idea甚至也可以自动做到。 2、多种导航形式 在一个工程里,Idea有很多种方法用于转换。除鼠标之外所有的命令都可以通过键盘实现(这一点对于像我这样难以忍受不停地切换到鼠标的人来说绝对不错)。Ctrl-n可以通过键入类名查找一个类。Ctrl-shift-n可以查找文件。Ctrl-e得到最近编辑的文件,通过键入文件名或者鼠标键选择。命令不仅可以容易地在你的工程两个视图里导航并且使整合操作变得轻而易举。Alt-f1可以是你在任何一个其他视图里选择当前文件。工程导航地方法太多在这儿不能全部列举。所有命令没必要像观点一样都给出概念。 3、 本地历史 开启本地历史,你源代码中的每一个改变(在tool和externally里)都被跟踪。这个特性救了我很多次所以我推荐它。不同的地方在一个绝对漂亮的差异查看器里高亮显示出来。 4、灵活的JUnit支持 单元测试可以独立运行。特殊的测试方法可以单独拉出来独立运行。Idea能够在一个包或者工程里自动运行所有测试而不需要手工启动一个麻烦的测试套件。在GUI运行器里的堆迹线上双击可以直接切换到源代码的相应行。就我个人认为我更喜欢文本运行器。它不但秀美而且速度更快功能更多。 5、设计优良的整合支持 Idea支持很多整合功能。更重要的使它们设计的好容易使用。有一些你会一直使用,也有一些几乎用不到。当你发现你需要他们时它们就成了一个大的时间节约器。 6、 代码助手 在Idea里有一些真正强大的代码编写助手。在这里我只能介绍给你一点它的好处。一个比较好的例子是“委托方法”助手。它允许你在你的类里面为一个对象实例委托方法调用。它并不是你每天都使用的东西,但当你需要它的时候你就会发现自己节省了大量的时间。另一个例子是产生冗余代码和等价特性。你会发现这是一个自己经常使用的特性。其他一些代码助手特性为:产生Getters/Setters,产生构造器与“surround with…”(译者注:被什么保护)等特性。 7、灵活的代码重格式化 关于代码怎样重格式化的选择有许多。它可以为每一个工程单独设置,所以没必要担心自己是否必须支持不同的代码标准。重格式化一个文件或者一个完整的工程眨眼间就可以完成。 8、 XML支持 Idea支持XML中的代码实现。如果没有定义图表或者DTD(文件类型定义)Idea将基于文件中已经包含的来实现。否则可能基于为文件定义的图表或者DTD来实现。Idea同时还会校正XML。 9、 直观简洁的GUI 更为好玩的是每一个程序中的函数都可以通过键盘访问的到。在一个开发工具里这是应该有的但可悲的是大多数IDE对键盘导航并不注意。 为了完成工作不必要在不同的视图之间切换,也不必要在不同的窗口之间选择了。 10、与文件系统自动同步 不管你的IDE是多么优秀,通常都需要在工具之外作一些工作。Idea在这一点上做的很好。大多数工程都可以在Idea里不用改变他们的结构就可以使用。Idea还可以检查文件在外部的更改情况。这不需要人工刷新以告诉Idea一个文件已被更改。 11、定制的键盘映射 Idea自带的默认键盘映射非常有用。如果有时需要改变也很容易做到。有些键也可以设置阻挡比如外来的工具与Ant目标等。 12、 动态的错误高亮显示 在键码时Java代码,XML与Java文档标签被动态解析,错误也会被报告。Ant建立文件甚至可为Ant工程句法提供额外支持。 13、 检查 运行代码检查以报告大量的代码中潜在的错误点。它可以编制成脚本以作为一个批量工作运行,结果也可以以网页的形式提交。 14、 完全理解JSP Idea理解JSP的结构。作用于普通Java代码的众多功能同样适用于JSP(比如整合功能)。同时支持JSP调试。 15、灵巧的编辑功能 一些小技巧如键入匹配的引号及括号使得生活更加容易:)。 16、 支持EJB Idea理解EJB,尽管它不包括对个别应用服务器的特殊支持。不管怎样最好与Ant一起使用。EJB支持容易使用而且实在-本来就是这样。 17、几乎没有向导 从前许多厂家都绑定大量的向导而不是设计一个简单易用的接口。虽然有向导但只是一个滥用的工具。Idea只包含了一个用于帮助创建新工程的向导,并且仍然能够创建一个对新手来讲容易使用的程序。 18、灵巧的模板 这些灵巧的模板是代码的片断,它们被用来做各种各样令人惊讶的事情。我第一次使用“iterate over collection”模板时就被震惊了。它不仅挑拣出正确的默认收集变量而且还知道我已经放进去了什么以及默认的方法。这个特性很难在纸上描述。下载一个测试版本试验一下吧。 19、最好的代码实现支持 Idea现在有三种代码实现支持包括实现默认得变量名称,JavaDoc以及其他代码细节。 20、集成Ant Idea支持Ant建立工具。不仅是运行目标它还支持编译与运行程序前后运行目标,另外也支持绑定键盘快捷键。 在编辑一个Ant建立XML文件时,Idea还对组成Ant工程的XML部分提供支持。 21、未使用代码高亮显示 如果Idea检查出某一个变量或者方法没有被使用,它会把它作为一个不明显的警告显示出来。检查可用来做更详细的死代码分析。甚至JavaDoc标签也能被查出来。 22、小技巧 Ctrl-d复制选中的代码。如果没有选择则复制整行。在没有选择的情况下Ctrl-c拷贝一整行,Ctrl-x剪切一整行。 Ctrl-Shift-j会做一个想VI那样的连接,除非它是句法敏感的。比如有这么一行: String ...”
什么是hosts文件?有什么作用?
“什么是hosts文件 hosts文件是个什么文件呢?Hosts虽然没有后缀名,其实是个纯文本文件,可以用记事本等文本编辑软件打开。Hosts文件主要用于在本地电脑强制解析域名,Hosts文件里包含映射IP地址和Host主机名的规定,每段只能包括一个映射关系,IP地址要放在每段的最前而,空格后再写上映射的主机名。 hosts文件的路径是%SystemRoot%\system32\drivers\etc\hosts,一般来说也就是C:\WINDOWS\system32\drivers\etc\hosts。 hosts文件的一般格式如下: # copyright (c) 1993-1999 microsoft corp. # # this is a sample hosts file used by microsoft ...”
06
VTL模板中的注释
“注释允许在模板中包含描述文字,而这些文字不会被放置到模板引擎的输出中。注释是一种有效的提醒自己和向别人解释你的VTL语句要做什么事情的方法。你也可以把注释用来做其他你认为有用的用途。下面就是一个注释的例子。 ## This is a single line comment. 一个单行的注释以##开始,直到行尾才结束。如果你要写很多行的注释,那么不用使用多个单行注释,VTL还提供了多行注释。多行注释以#*开始,以*#结束。下面是一个多行注释的例子。 This is text that is outside the multi-line comment. Online ...”
什么是SPM
“SPM是淘宝社区电商业务(xTao)为外部合作伙伴(外站)提供的一套跟踪引导成交效果数据的解决方案。 下面是一个跟踪点击到宝贝详情页的引导成交效果数据的SPM示例: http://detail.tmall.com/item.htm?id=3716461318&&spm=2014.123456789.1.2 其中spm=2014.123456789.1.2 便是下文所说的SPM编码 SPM编码:用来跟踪页面模块位置的编码,标准spm编码由4段组成,采用a.b.c.d的格式(建议全部使用数字),其中, a代表站点类型,对于xTao合作伙伴(外站),a为固定值,a=2014 b代表外站ID(即外站所使用的TOP appkey),比如您的站点使用的TOP appkey=123456789,则b=123456789 c代表b站点上的频道ID,比如是外站某个团购频道,某个逛街频道,某个试用频道 等 d代表c频道上的页面ID,比如是某个团购详情页,某个宝贝详情页,某个试用详情页 等 完整的SPM四位编码能标识出某网站中某一个频道的某一个具体页面。 比如xTao合作伙伴(a=2014)中某个外站appkey为123456789(b=123456789),频道ID为1(c=1),页面ID为2(d=2),那么spm=2014.123456789.1.2,就唯一标识外站123456789的频道1上的页面2,从这个页面点击出去的链接,后面都应该携带spm=2014.123456789.1.2的参数串。这样,通过这个编码,我们就能唯一的定位到一个url是由外站中哪个具体页面点击生成的。 注意:spm的四位总长度32位,并且不支持%、&等特殊字符,请尽量使用英文以及数字 SPM的应用场景 因为spm编码本身是有层次的,因此,我们可以: 单独统计spm的a部分,我们可以知道某一类站点的访问和点击情况,以及后续引导和成交情况。 单独统计spm的a.b部分,我们可以用来评估某一个站点的访问和点击效果,以及后续引导和成交情况。 单独统计spm的a.b.c部分,我们可以用来评估某一个站点上某一频道的访问和点击效果,以及后续引导和成交情况。 单独统计spm的a.b.c.d部分,我们可以用来评估某一个频道上某一具体页面的点击效果,以及后续引导和成交情况。 SPM的效果指标和数据查看 基于SPM可以得到的效果统计指标: PV:通过指定spm编码引导到宝贝详情页面的PV UV:通过指定spm编码引导到宝贝详情页面的UV 支付宝成交人数:通过指定spm编码引导到宝贝详情页面的用户当天对同店商品的支付宝成交人数 支付宝成交笔数:通过指定spm编码引导到宝贝详情页面的用户当天对同店商品的支付宝成交笔数 支付宝成交金额:通过指定spm编码引导到宝贝详情页面的用户当天对同店商品的支付宝成交金额 客单价=支付宝成交金额/支付宝成交人数,代表通过指定spm编码引导过来的购买用户的消费能力 转化率=支付宝成交人数/UV,代表通过指定spm编码引导的用户最终转化为购买用户的比率 申请权限 参考增值包申请规则文档开通。 ”
HDMI接口是什么?主要应用在什么地方?
“问:HDMI接口是什么?主要应用在什么地方? 答:HDMI,英文全称是High Definition Multimedia Interface,中文名称是高清晰多媒体接口的缩写。HDMI能高品质地传输未经压缩的高清视频和多声道音频数据,最高数据传输速度为5Gbps。同时无需在信号传送前进行数/模或者模/数转换,可以保证最高质量的影音信号传送。 HDMI接口是什么?主要应用在什么地方? HDMI接口 通俗的讲HDMI并不神秘,它作为一种新型接口可以支持声音与图像的同步传输 ,即声音图像都是用一条HDMI线来传输(与传统有所区别)的,信号无压缩。它最高可达1080p即1960x1080的分辨率,这是真正意义的高清而人们日常所说的高清也就能达到720p 即1280×720像素。 HDMI接口的应用,现在来说是非常广泛: 1、高清信号源:蓝光机 高清播放机 PS3 独显电脑 高端监控设备; 2、显示设备:液晶电视 电脑显示器(比较少见)监控显示设备等。 液晶电视带HDMI接口是目前最为常见的:一般至少一个,多的可达3-6个HDMI接口。 HDMI线顾名思义是带有HDMI接口的线,分别类比较多:据OD直径分:30号 28号 24号,号越小OD直径越大,因此质量也越好;据附属:是否带磁环 带尼龙网 注塑头 ...”
03
C#数据类型总结
“C#的数据类型可以分为3类:数值类型,引用类型,指针类型。指针类型仅在不安全代码中使用。 值类型包括简单类型(如字符型,浮点型和整数型等),集合类型和结构型。引用类型包括类类型,接口类型,代表类型和数组类型。 值类型和引用类型的不同之处是值类型的变量值直接包含数据,而引用类型的变量把它们的引用存储在对象中。对于引用类型的变量,完全有可能让两个不同的变量引用同一个对象,这样一来,对其中一个变量的操作就会影响到被另一个变量引用的对象。对于值类型的变量而言,每一个变量有它们自己的数值,因此对其中一个变量的操作不可能影响到另外一个变量。 值类型 所有的值类型都隐含地声明了一个公共的无参数的构造函数,这个构造函数叫做默认构造函数。默认构造函数返回一个初始为零的值类型的实例,称之为默认值。 对于sbyte,byte,short,ushort,int,uint,long,ulong ,默认值为0。 对于char,默认值是'\x0000' 对于float,默认值是0。0F 对于double,默认值是0。0D 对于decimal,默认值是0。0M 对于bool,默认值是false 对于一个枚举类型,默认值是0 对于一个结构类型,默认值的设置就是把所有值类型的域都设置为它们各自的默认值,把所有的引用类型的域赋为空 简单类型 C#提供一套预定义的结构类型叫做简单类型。简单类型用保留字定义,这些保留字仅仅是在System名字空间里预定义的结构类型的化名。比如int是保留字,System.Int32是在System名字空间中预定义类型。一个简单类型和它化名的结构类型是完全一样的,也就是说写int和写System.Int32是一样的。简单类型主要有整型,浮点类型,小数类型,布尔类型,字符型,整型。 C#中支持9种整型:sbyte,byte,short,ushort,int,uint,long,ulong和char。 Sbyte:代表有符号的8位整数,数值范围从-128 ~ 127 Byte:代表无符号的8位整数,数值范围从0~255 Short:代表有符号的16位整数,范围从-32768 ~ 32767 ushort:代表有符号的16位整数,范围从-32768 ~ 32767 Int:代表有符号的32位整数,范围从-2147483648 ~ 2147483648 uint:代表无符号的32位整数,范围从0 ~ 4294967295 Long:代表有符号的64位整数,范围从 -9223372036854775808 ~ 9223372036854775808 Ulong:代表无符号的64位整数,范围从 0 ~ ...”
六种被淘汰的PC技术:蓝牙上榜
“导语:调研公司Enderle Group总裁罗布·恩德勒(Rob Enderle)今日发表文章,列出了6种被淘汰的PC技术,蓝牙、红外、光驱和调制解调器等纷纷上榜。 以下为文章内容摘要: 微软周二发布安全预警,称Windows 7和Vista系统中存在一处蓝牙技术漏洞。我当时的反应很简单:“不用担心,根本就不使用它。” 尽管科技日新月异,一些计算机技术已经很少使用或根本无用,但从蓝牙到调制解调器,再到红外发射器等,这些过时的技术仍出现在今天的PC中,而消费者也要继续为之付费。 以下就是6项应该被淘汰、但仍出现在PC中的过时技术: 蓝牙: 曾经被视为普遍存在的“个人区域网络”技术,用于连接智能化个人设备,一些电视机甚至都内置了蓝牙技术。但有谁在PC上使用蓝牙外设呢?大部分人都不使用。在过去的几年中,也测试过不少蓝牙应用,但没有一项值得推荐。相对而言,蓝牙耳机还算实用,但有效距离太短。 红外: 基本上已被淘汰,但多年来PC上仍保留红外接口。除了让邻座的人轻松侵入你的PC,还没有发现该功能有什么实际用途。简而言之,唯一的功能就是允许自己在开会上被别人打扰,或者被他人轻松入侵。 调制解调器: 许多PC仍内置调制解调器,但有谁还使用这种电话线连接呢?除非住在偏远地区,电话线是唯一的上网方式。即便如此,下载一个文件可能需要几个小时时间。即便真的需要,也没有必要内置,因为用户多在家里使用。 并行和串行端口: 仍有一些PC内置这样的端口,但有什么用呢?打印机早在10年前就不再使用这样的端口了,如今已经很难再想起上一次使用这些端口的时间了。这些端口不但占用了空间,还增加了PC的复杂性。 断开键: 断开键即中断程序运行键,很多人已经不记得,甚至根本没看过该键。老键盘在ESC行最右边,新键盘在方向键的右上角,多媒体键盘和笔记本可能没有。 光驱: 苹果已停止使用光驱,光驱将步软驱后尘。与光盘相比,硬盘和闪存的存储空间更大。而且,如今大部分软件都通过互联网下载,而不是光盘形式。 一个亟待完善的问题:电源线问题,包括电源线在内的线缆杂乱无章的问题连苹果都未能解决。(李明)”
5月
28
蓝牙技术应用
“蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接,其程序写在一个9mm×9mm的微芯片中。 如果把蓝牙技术引入到移动电话和膝上型电脑中,就可以去掉移动电话与膝上型电脑之间的令人讨厌的连接电缆,而通过无线建立通信。打印机、PDA、桌上型电脑、传真机、键盘、游戏操纵杆以及所有其它的数字设备都可以成为蓝牙系统的一部分。除此之外,蓝牙无线技术还为已存在的数字网络和外设提供通用接口,以组建一个远离固定网络的个人特别连接设备群。 蓝牙系统由以下功能单元组成:无线单元、链路控制单元、链路管理、软件。蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,数据传输速率为1Mb/s,时分双工传输方案被用来实现全双工传输。 ISM频带是对所有无线电系统都开放的频带,因此使用其中的某个频段都会遇到不可预测的干扰源。例如某些家电、无绳电话、汽车房开门器、微波炉等等,都可能是干扰。为此,蓝牙特别设计了快速确认和跳频方案,以确保链路稳定。跳频技术是把频带分成若干个跳频信道(hop channel),在一次连接中,无线电收发器按一定的码序列(即一定的规律,技术上叫做“伪随机码”,就是假的随机码)不断地从一个信道“跳”到另一个信道,只有收发双方是按这个规律进行通信的,而其他的干扰不可能按同样的规律进行干扰;跳频的瞬时带宽是很窄的,但通过扩展频谱技术使这个窄带宽成百倍地扩展成宽频带,使干扰可能产生的影响变得很小。 与其它工作在相同频段的系统相比,蓝牙跳频更快,数据包更短,这使蓝牙比其它系统都更稳定。FEC(Forward Error Correction,前向纠错)的使用抑制了长距离链路的随机噪音。另外,应用二进制调频(FM)技术的跳频收发器也被用来抑制干扰和防止衰落。 蓝牙基带协议是电路交换与分组交换的结合。在被保留的时隙中可以传输同步数据包,每个数据包以不同的频率发送。一个数据包名义上占用一个时隙,但实际上可以被扩展到占用5个时隙。蓝牙可以支持异步数据信道、多达3个同时进行的同步话音信道,还可以用一个信道同时传送异步数据和同步话音。每个话音信道支持64kb/s同步话音链路,异步信道可以支持一端最大速率为721kb/s,而另一端速率为57.6kb/s的不对称连接,也可以支持43.2kb/s的对称连接。 蓝牙的特点和应用范围 国际开放的2.4GHz频段 在这样的频段中,用户使用设备不需要向专门管理机构申请频率的使用权限。同时,对这种频段使用的规定,世界各国都比较接近。 传输距离短 目前的工作距离是10米以内,经过增加射频功率后可达到100米。这样的工作范围使得蓝牙可以保证较高的数据传输速率,同时可以降低与其他电子产品和无线电技术的干扰,此外,还有利于安全性的保证。 采用跳频扩频技术 将2.4GHz到2.4835GHz之间划分出79个频点,采用快速跳频,根据piconet的主单元确定的跳频为随机序列每秒钟1600跳。跳频技术的采用使得蓝牙的无线链路自身具备了更高的安全性和抗干扰能力。 采用时分复用多路访问技术 蓝牙的基带符号速率为1Mb/s,采用数据包的形式按时隙传送,每时隙0.625ms,不排除将来采用更高的符号速率。每个蓝牙设备在自己的时隙中发送数据,在一定程度上可以有效地避免无线通信中的“碰撞”和“隐藏终端”等问题。 蓝牙是为满足个人移动设备在个人区域网络环境中进行无线通讯而设计的。蓝牙的目的是使网络无所不在,即现有的网络连接要全部被无线取代。蓝牙使个人区域网络中设备对设备的连接最优化,诸如其中的同步,短数据传输,语音通信控制。对于最小的移动设备(如手持机、移动电话、移动耳机和照相机)中的小功率问题,蓝牙具有独一无二的处理能力。蓝牙芯片虽小,功能却极大,装置了蓝牙芯片的电脑、电子或通信产品,能自动通过智能模式互通,自动同步交换高速数据信息(包括数字化话音),而无须使用任何连线与插头。届时,在任何地方、任何时间均可通过掌上电脑或便携式电脑与移动电话联系、浏览互联网或收发电子邮件与传真。它可使一部移动电话集三种功能于一身,在办公室,可作为内部通话器;在家则成为室内免提电话;在户外则实施移动电话的功能。 蓝牙网络技术 蓝牙技术支持点对点和点对多点连接。几个piconet可以被连接在一起,靠跳频顺序识别每个piconet。同一piconet的所有用户都与这个跳频顺序同步。其拓扑结构可以被描述为“多piconet”结构。 在一个“多piconet”结构中,带有10个全负载的独立的piconet的情况下,全双工数据速率超过6Mb/s。 话音 话音信道采用连续可变斜率增量调制(CVSD)话音编码方案,并且从不重发话音数据包。CVSD编码擅长处理丢失和被损坏的语音采样,即使比特错误率达到4%,CVSD编码的语音还是可听的。 无线 蓝牙空中接口是建立在天线电平为0dBm的基础上的。空中接口遵循FCC(美国联邦通信委员会)有关电平为0dBm的ISM频段的标准。如果全球电平达到100mW以上,可以使用扩展频谱功能来增加一些补充业务。频谱扩展功能是通过起始频率为2.402GHz,终止频率为2.480GHz,间隔为1MHz的79个跳频频点来实现的。出于某些本地规定的考虑,日本、法国和西班牙都缩减了带宽。最大的跳频速率为1660跳/秒。理想的连接范围为10厘米~10米,但是通过增大发送电平,可以将距离延长至100米。 纠错 FEC(前向纠错)方案的目的,是为了减少数据重发的次数,降低数据传输负载。但是,要实现数据的无差错传输,FEC就必然要生成一些不必要的开销比特而降低数据的传送效率。这是因为,数据包对于是否使用FEC是弹性定义的。报头总有占1/3比例的FEC码起保护作用,其中包含了有用的链路信息。 在无编号的ARQ方案中,在一个时隙中传送的数据必须在下一个时隙得到确认。只有数据在收端通过了报头错误检测和循环冗余检测后认为无错,才向发端返回确认消息,否则,则返回一个错误消息。 蓝牙鉴权和保密 蓝牙基带部分在物理层为用户提供保护和信息保密机制。 鉴权是蓝牙系统中的关键部分,它允许用户为个人的蓝牙设备建立一个信任域,比如只允许主人自己的笔记本电脑通过主人自己的移动电话通信。 加密被用来保护连接中的个人信息。密钥由程序的高层来管理。网络传送协议和应用程序可以为用户提供一个较强的安全机制。 蓝牙应用 蓝牙规范接口可以直接集成到笔记本电脑或者通过PC卡或USB接口连接。 蓝牙应用 通过蓝牙蜂窝电话连接远端网络; 利用蓝牙蜂窝电话做扬声器; 蓝牙笔记本电脑、手持机和移动电话间的商用卡交易; 蓝牙笔记本电脑、手持机和移动电话间的时间同步。 蓝牙是一个独立的操作系统,不与任何操作系统捆绑。适用于几种不同商用操作系统的蓝牙规范正在完善中。 电话 蓝牙规范接口可以直接集成到蜂窝电话中或通过附加设备连接。电话的使用模型包括: 通过蓝牙无线耳机实现电话的免提功能;与笔记本电脑和手持机的无电缆连接;与其它蓝牙电话、笔记本电脑和手持机的商用卡交易;与信任的蓝牙笔记本电脑或手持机自动同步地址簿。 其它 其它蓝牙设备的使用模型包括: 耳机;手持机和其它便携设备;人机接口设备;数据及话音接入点。 各大公司纷纷推出具有蓝牙功能的产品,无需通过电缆即可方便地接入公司或校园的局域网中,进行资源访问,并能够将每一位网络使用者使用电子邮件、网络间的文件传输等功能紧密连接在一起。此外,惠普还将提供广域网及个人信息网的无线通讯方案,使用户可以通过使用笔记本电脑达到随时随地无限移动的效果。 联想公司宣布,在其昭阳笔记本电脑中引入蓝牙技术,并展示了点对点无线数据共享及无线局域网组网方案。联想昭阳率先应用这一技术,以笔记本电脑强大的综合计算处理功能和蓝牙无线互连技术为核心,构建个人局域网的未来应用前景,使个人信息家电、个人电脑、手机等真正实现“无缝连接,随时在线”。 最近,Acer宏基推出的AcerTravelMate350 使用PⅢ650以上的高档处理器,64M以上的SDRAM内存,10G以上的防震高速硬盘,8M显存。 SmartCard(保全卡)使数据保持安全,同时,通过它,电子商务的应用更加快捷和安全;56K ...”
蓝牙技术评介
“一、 蓝牙技术简介 1、 市场目标 "今天的因特网可将全世界的计算机连接起来,明天的蓝牙技术可将全世界的信息家电连接起来"。正是这种人类无穷尽的信息欲,使近年来兴起的蓝牙技术在信息界掀起阵阵热潮,企业界普遍认为,又有一个经济增长热点来临了。 所谓蓝牙,实际上就是一种短距离(10~100米)的无线连接技术,把一种微型、廉价的通信模块嵌入各类信息设备中,实现这些设备的无线互联,而不用电缆。它可实现语音、数据无线传输及进入网络。它采用全世界统一的开放性规范,使不同厂家的移动电话、计算机、信息家电互联互通成为可能。这些基本要求如能实现,蓝牙产品将会在许多领域得到应用,会有巨大的市场。 以下是蓝牙的几种典型应用: (1) 产品把手机、笔记本电脑、打印机、电话机、摄像机、投影机等办公设备用无线方式互联互通,成为一个室内移动办公室。 (2) 国际统一标准的蓝牙产品可把手机、电脑与电话网、综合业务网、ADSL、蜂窝移动网等通信网高速连接,可与LAN、WAN、Internet等计算机网互联,实现网上浏览、资源共享及各种电子业务。 (3) 可把彩色电视、音响、灯光控制设备、微波炉、电冰箱、洗衣机等各种信息家电采用不用电缆的无线连接或遥控监视。 随着蓝牙技术的发展,蓝牙产品不断进入市场,据资料介绍,2000年全球销售为3670万美元,2001年可望达到1.26亿美元,2006年为7亿美元,到2002年可望有1.5亿台信息家电嵌入蓝牙,2005年达到6.7亿台。 2. 发展及现状 环绕建立通用的无线接口、开放性的控制软件两大基本技术目标,蓝牙技术的发展及现状大致如下: 1994年,瑞典EriCSSon公司推出蓝牙技术开发计划,其目的是解决移动电话周边设备的无线连接问题。 1997年,Nokia、Intel、IBM和东芝公司加入蓝牙技术开发研究。 1998年,上述五大公司倡导成立蓝牙技术特别兴趣小组,简称SIG。开始系统性研究不需要电缆连接各类信息终端的技术,包括负责制定开放性技术规范,决定专利可向产业界无偿转让。小组成立后,其中有许多是通信、计算机、消费电子产品的知名大企业。蓝牙技术已成为受到工业界广泛支持和关心的技术。全球统一技术规范的原则被确认。 1999年,SIG公布了第一版蓝牙技术规范。 2000年,一些生产手机、计算机的企业宣布它们的一些产品支持蓝牙。如:2000年9月,MOTOROLA公司推出可用于移动电话的蓝牙产品。 同月,东芝美国信息系统公司推出蓝牙PC卡。 同月,MOTOROLA公司宣布它的蓝牙PC卡和USB适配器接受ABI全面认证。 10月,英国Red-M公司推出蓝牙接入服务器,可提供PC机、电话、PDA和WAP实现移动接入,推出第一个蓝牙无线局域网产品。 2000年10月,GCT公司推出第一片蓝牙无线芯片GDM1100。 2000年5月,瑞典爱立信公司进行首次蓝牙技术接入系统试验。 2000年10月,Silicom Wave公司宣布它的无线Modem IC第一个得到蓝牙认证。 2001年初,安捷伦、泰瑞达等公司陆续推出可对射频模块与蓝牙芯片进行测试的设备。 目前蓝牙部分产品已在许多国家取得了"型号认可",蓝牙模块目前要用3块芯片,价格为8美元,很快将被压缩为一块芯片,价格降到5美元或更低,企业界希望几年后,手机、PC机、音响、TV、微波炉、电冰箱、灯控设备等信息家电能广泛应用蓝牙技术。 3、蓝牙模块特点 蓝牙技术是移动通信技术和计算机技术的综合,其产品是超短距离的无线通信网产品,蓝牙技术依托SIG推出的蓝牙规范,目前版本No.1,主要按美国要求为目标,对于某些国家,有某些参数(例如发射频率或功率)有可能要作些调整,蓝牙主要技术参数如下: 工作频段 蓝牙产品使用无需申请许可证的工业、医学、科学自由频段(ISM),频率为2.402GHz~2.480GHz,此频段可以在全世界通用,产品兼容性良好,能大大减少建网的困难,有利于推广使用。各国无线电管理机构只是规定该频段的带外辐射和最大发射功率,产品只需满足此规定,无需申请,便可使用。 工作方式 采用时分双工---跳频方式,信道分成若干个长为625微秒的时隙,每个时隙交替进行发射和接收实现时分双工。每个时隙对应不同的跳频频率,在2.402~2.480GHz频段内含有间隔为1MHz的79个跳频载频及一系列的跳频序列。跳频速率为1600跳/秒,每个时隙传送一个分组数据。 由于采用了时分双工,可以防止收发信机之间的串扰。由于采用跳频技术提高了设备抗干扰能力,便于叠区组网。 分组传输方式 蓝牙系统基于分组传输信息流被分成多个小组,每一个小组由地址、分组头、有效数据组成,具有同一结构地址码为随机编码,具有随机特性,只有地址码相同的设备才可通信。分组报头用8比特的差错校验码(HFC)。支持1/3速率、2/3速率的前向纠错(FEC)和自动重传请求(ARQ),此两种措施均能有效防止报头出错。 基带协议 蓝牙基带协议包含电路交换和分组交换支持电路交换方式和分组交换方式,支持以下三种通信信道: (1) 同步话音 同步话音同时传送信道: 可提供三路64kbit/s话音信道同时传送。 (2) 异步对称数据传送信道: 最大上行数据速率为433.9kbit/s、最大下行数据速率也为433.9kbit/s。 (3) 异步不对称数据传送信道: 最大上行数据速率为723.2kbit/s或457.6kbit/s、最大上行数据速率为57kbit/s或723.2kbit/s 输出功率 发射输出功率分为三类不同设备可选择不同类型。第一类最大输出功率为100mW、最大距离约为100米。第二类输出功率为2.5mW。第三类输出功率为1mW。同时还规定了三种功率模式以延长电池的寿命。此三种模式分别是侦听模式、保持模式和休眠模式,耗电分别按次序由大到小。 安全技术 蓝牙技术是无线电技术,各类蓝牙设备连网通信时,必需有避免误传或不被滥用的措施,因此,安全问题十分重要。蓝牙支持三种安全模式,第一种是设备设有任何安全措施的"无安全操作"模式。第二种是信道建立之前不需启动安全协议的"业务级安全模式"。第三种是要求终端在链路建立前就需启动安全协议的"链路级安全模式"。安全性能分别按次序由低至高。 网络连接 网络连接一般采用微微网结构(10米~100米),每一微微网由一个主设备和多个辅助设备组成。两个以上微微网可组成所谓"散射网",相邻之间的两个微微网允许有重叠区域。 设备开机后,即处于守候工作状态,此时未成网的各个蓝牙终端会周期性地监听网络信息,即每1.28秒侦听一次32个跳频。当某设备需和其他设备通信时,就发送一个相应对象设备的地址,即发送一个寻呼信息。如果此地址因从未与本设备通信过,因而不知道地址,则先发查询信息,查清对方地址后,再发地址信息。 二、 蓝牙技术评述 续上所述蓝牙技术是一种全球统一标准、互操作强、体积小、工作频段不受限制、无需电缆连接的无线网络新产品,特别适于短距离移动传输。各类家电信息产品只需多花几美元就能连接成网,嵌入的蓝牙模块成本不高,甚至希望能低于电缆和连接头。人们希望这种理想尽快实现,产品尽快问世。2001年3月1日在广州召开了第一次中国蓝牙技术国际会议,据说此次会议之后,不少中国企业一改以往观望态度,积极投入蓝牙技术的研制开发或合作生产。但是蓝牙技术作为一种综合性很强的高科技通信产品,与任何一种高科技新技术一样,它的研发与生产同样存在风险,技术越高,投资必越大,风险也越高。本文建议我们的企业家在投资决策之前,需先认真研究蓝牙,看到蓝牙的特点、优点,也要看到蓝牙的问题和不成熟度。 本文下一部份是作者认为在蓝牙真正进入市场得到广泛应用之前,蓝牙必须克服的几点障碍。 1、 蓝牙产品的成本问题 目前蓝牙蕊片最低价为8美元,近期可望达到5美元。即使达到5美元(40元人民币)对于大多数生产成本仅为数十美元的家电产品(包括手机)、蓝牙所占的整机成本仍属过高,除了芯片蓝牙产品还要加上收发信模块、天线、软件等费用,其成本与一条电缆加连接头的成本相比,显然过高。蓝牙产品成本如不能大幅度降下来(如仅需3美元)就难以进入大量的中产以下家庭。只能为少数富款接受的产品,无疑需求量有限,生命力有限。 2、产品可靠性问题 蓝牙以移动无线技术为基础,无线通信技术先天性具有的难点,蓝牙全都具有,而且蓝牙技术必需在一个很小的芯片中来解决这些问题。文章上部介绍了一部份技术措施来克服这些问题,但这些技术尚非完善成熟,它们还有稳定性、可靠性以及成本等等需要考验。把这些技术压缩在比8 x ...”
4月
23
事务管理
“问题的提出 关于数据库的原子性问题在前面资金转帐例子中已经提到:几个操作要么都完成要么根本不发生。除此之外,资金转帐还必须保持数据库的一致性,也就是说转帐之后钱的总数还应该保持不变,这种对数据库值的正确性要求称作一致性。当资金转帐成功结束后,不管发生什么事情,包括系统故障,帐户A和B的钱数也应该保持不变,这种对数据库的值保持不变的要求称作持久性。 保证数据的正确性是数据库的生命。注意这里的正确性主要是指:如果数据库中的数据一开始是正确的,那么经过一系列操作之后它还应该是正确的;数据的一致性还包括能够防止某些错误的操作对数据库中数据的修改,当然,完全防止是不可能的,例如在输入一个人的性别的时候,数据库是不可能知道某个人是"男"的还是"女"的。 事务的定义 事务是数据库应用中完成单一逻辑功能的操作集合,是一个既具原子性又具一致性的逻辑执行单元。事务的定义不能违反任何的数据库一致性要求。从上面的讨论中可知一个事务应具有原子性,应使数据库保持一致性和持久性。在事务的并发执行中,事务还应该保持其隔离性,这在第十章"事务"里会详细讨论。 事务管理器 对于一个事务来说:IF 事务执行前数据库是一致的在事务执行的过程中允许暂时的不一致,但此时发生故障将会产生不可预测的问题THEN 事务成功执行之后数据库也应该是一致的事务的定义应使之能保持数据库的一致性,这一点是由数据库程序员在定义事务时保证的。而事务的原子性和持久性则是由数据库管理系统保证的,具体地说,是事务管理器的任务。 显然,事务管理器就是用来管理事务的,它能够保证事务的ACID四个基本特性。 并发控制管理器 当多个事务同时执行时,即使每个单独的事务都正确执行完毕,数据的一致性也可能被破坏。并发控制管理器就是用来控制并发事务间的相互影响,把它们在逻辑上隔离开,以保证数据库的一致性。 ”
数据库语言总结
“数据库用户只能通过数据库语言来定义数据库的结构和访问数据库中的数据。数据库管理系统提供两种不同类型的语言:一种用于定义数据库模式,这就是数据定义语言;另一种用于表达数据库的查询和更新,这就是数据操纵语言。 数据定义语言 数据库模式是通过一系列定义来说明的,这些定义由称作数据定义语言(Data Definition Language,英文缩写为DDL)的一种特殊语言来表达,如create table。DDL语句的编译结果是填写一系列存储在一个特殊文件中的系统表,这个特殊的文件称作数据字典。数据字典是一个包含元数据的文件,元数据是关于数据的数据。在数据库管理系统中,实际读取和修改数据前总要先查询该文件。 数据库管理系统所使用的存储结构和访问方式也是通过一系列特殊的DDL语句,如create cluster、create index来定义的,这种特殊的DDL语句称作数据存储定义语言。这些语句的编译结果是一系列用来描述数据库模式实现细节的指令,这些实现细节对用户来说是不可见的。 各行各业都有各自的"行话",有时也称为"黑话"。数据定义语言就是用来定义这些"黑话"的。例如这边一句"create table"语句,那边数据库管理系统就明白了要创建一张表。 数据操纵语言 数据操纵是指对存储在数据库中的信息进行检索、向数据库中插入新的信息、从数据库中删除信息以及修改存储在数据库中的信息。数据抽象的层次不仅适用于定义数据和组织数据,还适用于对数据的操纵。在物理层,必须定义可以高效访问数据的算法。在较高的抽象层次上,强调数据的易用性,目的是要提供人与系统间的有效交互。 数据操纵语言(Data Manipulation Language,英文缩写为DML)通常有两类: 1、过程化的DML要求用户指定需要什么数据以及如何获得这些数据; 2、非过程化的DML只要求用户指定需要什么数据,而不必指明如何获得这些数据。通常非过程化的DML比过程化的DML易学易用,但是非过程化的DML比过程化的DML的效率可能要低一些。 我们创建一个数据库,最终是要能够保存和检索我们需要的数据。这就需要另外一种语言,即数据操纵语言。通过这种语言,数据库能够理解并完成我们想要完成的工作,例如插入数据,或者对数据进行修改等等。数据操纵语言通常有两类:过程化的DML和非过程化的DML。前者要给出如何进行操作,后者只要给出要做什么事情即可。显然后者比较"讨领导喜欢"。但是因为后者经常耍一些"小聪明",马屁拍的太多,其效率可能比前者要低一些。 查询是用来对信息进行检索的语句。DML中涉及信息检索的那一部分称作查询语言。但在实际当中不严格区分查询语言和数据操纵语言,有时就简单地称为数据查询语言。 ”
20
机动车登记证与机动车行驶证的区别
“机动车登记证书 机动车登记证书,是车辆上牌时与行驶证一起核发的,绿外皮、大小大约为A4纸的一半,里面的内容详细载有车主以及车辆各参数信息,登记证主要用于抵押、转让、过户等。 机动车行驶证 机动车行驶证是准予机动车上道路行驶的法定证件。机动车行驶证由证夹、主页、副页三部分组成。其中:主页正面是已签注的证芯,背面是机动车相片,并用塑封套塑封。副页是已签注的证芯。主页正面文字颜色为黑色。 “中华人民共和国机动车行驶证”字体为12pt黑体,位置居中; “号牌号码”、“车辆类型”、“所有人”、“住址”、“使用性质”、“品牌型号”、 “车辆识别代号”、“发动机号码”、“注册日期”、“发证日期”等文字。副页正面文字颜色为黑色。“号牌号码”、“档案编号”、“核定载人数”、 “总质量”、“整备质量”、“核定载质量”、“外廓尺寸”、“准牵引总质量”、“备注”、“检验记录”等文字。 ”
17
计算机科学中最重要的32个算法
“奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。 1、A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是最佳优先搜索的范例。 2、集束搜索(又名定向搜索,Beam Search)——最佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现最前面的m个最符合条件的节点,m是固定数字——集束的宽度。 3、二分查找(Binary Search)——在线性数组中找特定值的算法,每个步骤去掉一半不符合要求的数据。 4、分支界定算法(Branch and Bound)——在多种最优化问题中寻找特定最优化解决方案的算法,特别是针对离散、组合的最优化。 5、Buchberger算法——一种数学算法,可将其视为针对单变量最大公约数求解的欧几里得算法和线性系统中高斯消元法的泛化。 6、数据压缩——采取特定编码方案,使用更少的字节数(或是其他信息承载单元)对信息编码的过程,又叫来源编码。 7、Diffie-Hellman密钥交换算法——一种加密协议,允许双方在事先不了解对方的情况下,在不安全的通信信道中,共同建立共享密钥。该密钥以后可与一个对称密码一起,加密后续通讯。 8、Dijkstra算法——针对没有负值权重边的有向图,计算其中的单一起点最短算法。 9、离散微分算法(Discrete differentiation) 10、动态规划算法(Dynamic Programming)——展示互相覆盖的子问题和最优子架构算法 11、欧几里得算法(Euclidean algorithm)——计算两个整数的最大公约数。最古老的算法之一,出现在公元前300前欧几里得的《几何原本》。 12、期望-最大算法(Expectation-maximization algorithm,又名EM-Training)——在统计计算中,期望-最大算法在概率模型中寻找可能性最大的参数估算值,其中模型依赖于未发现的潜在变量。EM在两个步骤中交替计算,第一步是计算期望,利用对隐藏变量的现有估计值,计算其最大可能估计值;第二步是最大化,最大化在第一步上求得的最大可能值来计算参数的值。 13、快速傅里叶变换(Fast ...”
想成为优秀的技术人员你必须做到的几件事情
“找工作的这几天,收获颇多。思考得最多的问题可能就是对未来的一个规划。无意中看到下面几条经验,发现和自己想的也差不多,就分享出来。我要求自己做到这些,同时也希望对您也有所帮助。 1、保持学习 一个非常重要的观点是:如果你停留在一个地方不前,并不代表你能一直呆在那里,而是代表你正在落后(不进则退)。往前进并不意味着你是就能进步 - 这至少你不会沦落到最后(付出就会有收获) 。程序员为了保持向前发展,就需要不断学习 ,我们需要的不是慢慢的往前走,而是我们要奔跑起来!下面列出这方面的几个观点: 1)、读书 2)、订阅RSS和阅读一些杂志(我觉得msdn的杂志不错) 3)、参加一些研讨会,自己准备一些简报(社区精英、博客园每月的活动等都不错) 4)、学习一切可以帮助你的东西 5)、教其他人其实也是教自己 2、给自己确定目标 如果不知道向什么方向发展,是很难有成就的。这一点关键是自己要有一个清晰地目标。这个应该是个长期的目标,然后要有一个目标的愿景。首先要把这个目标分成一些小的任务,建立实现这些目标的路线图。你可以创建每月或每年你必须完成的一个任务列表,然后根据这个任务列表去实现。 3、生活中的每一个挑战都是一个机遇 在日常工作时,总是会遇到各种各样的问题。你可能会遇到一些程序的bug;项目经理分配的新任务;你同事请你帮助;你请别人帮助。这些都是一个一个的挑战。问题是:你如何去解决这些挑战?我的一个答案是:你必要调动你所有的激情去应对这些挑战,因为每个挑战就是一个机遇。 4、抱有积极态度 对待每一件事情都应抱着积极的态度。如果发现你犯了一个错误,请不要在意,因为没有人是不会犯错误的。你可以想象一下,有谁喜欢那种一遇到问题就抱怨的人呢?如果你说“好吧,伙计们,我能做到的,请给我一分钟,我就会解决这个问题。”,然后笑着转过身就修改自己的错误,这样在别人眼里又是如何看待你呢?当您解决这个问题之后,你会感觉到异常的高兴。 相信自己的方法是正确的,自己正在快速进步。千万不要老是认为自己无法达到自己的目标。 5、给自己寻找一个导师 这并不是说你需要一个人来帮助你来完成你的工作。导师可能就是比你职别高的职员。而且他的职位是你想要去争取的。如果他的职位你争取到了,你可以再选择另外一个更高的。但是你必要一直都需要有这么一个人。也可以能督促你和支持你的朋友、亲人、恋人等等。 6、让自己公众化 如何让别人知道你呢?一个最简单的办法是写博客、提问题、帮别人解决问题。起码要google知道你吧。学会在团队和项目中分享自己的知识。如果你学了新的知识,就把它分享出来!如果你没有分享,下次再用的时候,你可能就忘记了。 7、时不时的审查一下自己,确保自己的方式正确 时不时的,你需要检查你做的方法是否全正确。检查一下是否完成即将完成的目标。如果没有,赶快找原因,加紧去完成。寻找你的薄弱环节,加强它们。这听起来很滑稽:我认识一个技术很强的开发人员,但他的打字速度却是很慢。为什么?因为他对键盘不熟悉,又不想花10-20小时进行键盘训练。兄弟,如果你会读到此,请务必要求自己克服此类的问题。 8、保持健康身体 我写这篇文章之前,算是“集思广益”的。我是一个年轻男子,跟我的笔记本电脑和另一台计算机工作了太长时间,我不能强迫自己做健身运动了。这个有点像磨刀不误砍柴工。有一个故事,两个樵夫打赌砍树,一个比较强壮,另外一个比较瘦弱。强壮的人相信他会赢得,因为他没有休息,持续砍了8小时。瘦小的那位,每隔一个小时就休息15分钟。最后瘦小的那位樵夫却赢了。他赢的秘密在于休息的时候将刀磨锋利了。你的健康就像是斧头,如果斧头钝了,你将无法为自己人生道路披荆斩刺。 ”
14
基准测试,一项测量和评估软件性能指标的活动
“什么是基准测试? 基准测试(benchmarking)是一种测量和评估软件性能指标的活动。你可以在某个时候通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。这是基准测试最常见的用途。其他用途包括测定某种负载水平下的性能极限、管理系统或环境的变化、发现可能导致性能问题的条件,等等。 基准测试的具体做法是:在系统上运行一系列测试程序并把性能计数器的结果保存起来。这些结构称为“性能指标”。性能指标通常都保存或归档,并在系统环境的描述中进行注解。比如说,有经验的数据库专业人员会把基准测试的结果以及当时的系统配置和环境一起存入他们的档案。这可以让他们对系统过去和现在的性能表现进行对照比较,确认系统或环境的所有变化。 基准测试通常都是些功能测试,即测试系统的某个功能是否达到了预期的要求。有些性能测试工具可以对系统几乎所有的方面(从最常见的操作到最复杂的操作,从小负载到中等负载到大负载)进行测试。 大部分程序员只在系统发生了奇怪的事情时才考虑进行基准测试,但我认为定期进行基准测试,尤其是在重大事件(比如系统或环境发生变化)之前和之后进行基准测试更有意义。一定要首先进行一次基准测试以创建基准线。如果没有基准线作为参照物,在事件发生之后进行的基准测试是不会对你有多大帮助的。 1、优秀基准测试的指导原则 在进行基准测试的时候,有许多好的实践方法。在这一节里,我将向大家介绍几个我认为对大家最有帮助的基准测试原则。 首先,应该牢记“事前快照”和“事后快照”的概念。不要等到你对服务器做出修改之后才想起应该进行一次基准测试并把测试结果与你在六个月前建立的基准线进行对比。六个月的时间会发生许多事情!你应该在做出修改之前进行一次测试,做出修改,然后再对系统进行一次基准测试。这可以让你对三组性能指标进行对比:系统的预期性能、它在修改前的实测性能以及它在修改后的实测性能。你可以发现所发生的事情让你的改变多少会明显一些。比如说,假设你的基准测试有一项是度量查询时间。你在六个月前为某个特定的测试查询建立的基准线需要花费4.25秒才能完成。现在,你决定修改受测表的某个索引。你在修改之前进行的基准测试得到的结果是15.5秒,而你在修改之后进行的基准测试得到的结果是4.5秒。如果你没有拍摄事前快照,就不会知道你的修改让系统的性能有了很大的提高。说不定还会以为你的修改降低了查询的速度--你也许会因此撤消这次修改,结果返回到执行速度慢的查询。 虽然这是一个假想的例子,但我希望大家能够从中注意到以下几点。首先,如果你是在对某个系统的数据检索性能执行基准测试,而这个系统的数据量会随着时间的推移而增长,你必须更频繁地运行你的基准测试工具才能准确地把握数据量的增长对系统性能的影响。在刚才的例子里,你应该把有关性能指标(比如数据负载量)在事前的测量值当作系统的“正常”指标。 其次,必须保证你的测试对你测量的东西有效。如果你在对某个表的查询性能进行基准测试,你得到的测试结果只限于应用程序级别,不足以从一般意义上预测系统的性能。一定要把应用程序级别的基准与全局性的性能指标区分开来,这样才能保证不会得出错误的结论。 另外一个与事前概念和事后概念有关的好的实践方法是,在活动(负载量相对稳定)的有限时间内尽可能多做几次基准测试,这是为了保证你的测试结果不会受到局部活动(比如临时出现的进程或高资源占用任务)的影响。我发现重复进行几十次同样的基准测试可以把各次测试结果的平均值作为最终的性能指标值。有许多技巧可以得到这些统计结果。有条件的话,你甚至可以使用一个统计包或是你喜欢的适用于统计的电子表格应用程序 来得出基本的统计数字。 注解:有些基准测试工具有自己的统计分析包,但MySQL Benchmark Suite没有。 我认为最有用的建议是每次只修改一个地方。一次修改多个地方并不是不可以,但这样你就不能期望从基准测试结果里得出什么有意义的结论。经常会发生这样的事:你修改了6个地方,其中之一产生的负面影响掩盖了另外几个的正面效果,剩下的一两个对性能没有任何影响。只有每次修改一个地方,你才能准确地判断出它对系统性能的影响是负面的、正面的还是没有影响。 还有,只要有可能,就应该使用实际数据来进行基准测试。人工生成的测试数据怎么说也会有一些规律可循,那样得到的测试结果往往不能反映实际情况,某些特定的功能(比如边界值和范围检查等)可能永远也得不到测试。如果你的数据变化很频繁,你应该选择某个时刻为它们“拍摄”一张快照,然后使用这张快照来进行每一次测试。不过,这么做虽然能够保证使用真实的数据来测试性能,可是随着数据量的增长也许无法测试出系统性能的下降。 最后,在解读基准测试结果和管理预期目标时,一定要让你的目标有现实意义。如果你想改善系统在某种特定条件下的性能,在确定目标前首先要把已知的后果弄清楚。比如说,如果你想知道把网络接口的传输速度提高100倍对系统性能会产生哪些影响,就必须先弄清楚你的服务器将不能按照比现在快100倍的速度发送和接收数据。在这类场合中,你必须综合考虑硬件的性价比和硬件可能带来的性能改善。换句话说,你的服务器的执行速度应当提高几个百分点,这样就为你省了钱(或说增加了收入)。 如果在做过仔细评估之后预计你的网络性能只要提高10%就可以做到收支平衡甚至赢利,那就把这个数字作为你的目标好了。如果基准测试结果表明你得到了这么大(或更好)的改善,就去找老板谈谈加薪的事吧;如果基准测试结果表明你没有得到这么大的改善,去建议老板把新硬件退回去(也可以顺便谈谈加薪的事,因为你让他省钱了)。不管是哪种情况,你的报告都有充分的依据,即你的基准测试结果。 2、对数据库系统进行基准测试 基准测试在很多领域都非常重要。但基准测试与数据库服务器到底有什么关系呢?答案包括很多方面。 对数据库服务器进行基准测试可以在许多不同的层次上进行。最常见的是针对数据库模式的改动而进行的基准测试。专门针对某个表的基准测试比较少见(虽然你可以这么做)。人们更感兴趣的是在改变了数据库的结构之后,其性能会受到什么样的影响。 人们的这种关心在刚开始使用一个新的应用程序或一个新的数据库时表现得尤为明显。此时,你可以设计好几种数据库模式并填充数据,然后编写一些基准测试程序来模仿所推荐的系统。嘿,这也是一种测试驱动的开发行为!通过创建多个数据库模式并进行基准测试,甚至可能会多次重复这些改动,你很快就可以确定哪套模式最适合你设计的应用。 有时候,对数据库系统进行基准测试还有一些特殊的目的。比如说,你想知道数据库系统在不同的负载情况或不同的系统环境下会有怎样的性能表现。那么,除了进行事前和事后的基准测试去了解对环境所做的改变会产生多大的不同,还有什么方法更能证明你新安装的RAID设备将大幅改善系统的性能呢?是的,一切都是围绕成本进行考虑,基准测试工具可以帮助你管理好数据库系统的成本。 ”
年过50,还能继续当码农吗?
“背景:我30出头,但我周围却有一批比我老得多的程序员。以下是我的个人观点,不代表雇主。关键不在于年龄,而在于雇主的年龄观念。当你40、50、60岁时,雇主会认为你想当项目主管、架构师、首席软件工程师之类的职位。他们还会认 为,过去二三十年,你的薪水每年都提升了5%至10%,所以与只有3年工作经验的25岁年轻人相比,你的市价可能高出50%至100%。 因为雇主认为你比年轻人要求的职位和薪水更高,所以他们会认为聘请你的门槛更高。如果年轻程序员不了解最佳的工作方式,或许不是什么大问题。但如果你不了解,那雇主自然会怀疑你的价值是否真能比其他应聘者高出一倍。 要改善这种状况,可以考虑以下几种方式: ——当一个很牛的程序员。这简直是废话,但杰夫·迪恩(Jeff Dean)和肯特·贝克(Kent Beck)这样的人总是很容易找到程序员的工作。他们的水平都高得出奇,但如果能达到一定水平,哪怕是远低于杰夫·迪恩,那么无论多大岁数,仍然很容易找到工作。 ——成为专家。既可以是某种语言(Clojure、Java、C等),也可以是某个领域(数据系统设计、算 法设计、机器学习等),甚至可以是某类软件(欺诈探测系统、推荐引擎等)。这些技术很多都已经存在了十年,甚至更久,所以,如果你成为专家,肯定会很抢 手。但有两个警告:1)你必须喜欢这个领域,否则会很不快乐;2)环境会随时间而改变,所以最好是将此作为5至10年的计划,而不是30年计划。如果你目前的专业领域开始过时,就应该探索新的领域,但不要等到真正过时再动手。 ——对一些初级职位持开放态度,尤其是当你进入了新的软件领域时。如果你能接受中等的职位和薪水,肯定比那些非CTO不干、非百万年薪不干的人更容易找工作。这是供给与需求的共同作用。 ——利用自己的经验。不要变成“要求高薪的老家伙”,而要成为“有很多经验的良师益友”。应该不断吸取教训,然后与大家分享。尽管你仍然是一名程序员,但与单纯的程序员相比,你的价值会大得多。 ——到程序员短缺的地方生活,不要到过剩的地方凑热闹。当一家公司急需程序员时,他们因为年龄而放弃你的概率会小一些。 ——积累经验。你需要在与年轻人的竞争中脱颖而出,如果你过去10年一直没有什么提升,人家为什么放着便宜的年轻人不用,非要用你呢? ——不断学习新东西,尝试新技术。刚毕业的学生之所以有吸引力,是因为他们思维开阔、可塑性强。而对于年龄较老的员工,则有可能已经定型。你可以证明自己对新语言、新工具的接受程度,以此反驳这种观念。 ——从简历中删除毕业日期和以前的职位。你或许已经45岁了,但如果你看起来像30多岁,便可以利用这项优势。别跟人说你是1990年从某某大学毕业的,直接告诉他们你是某某大学毕业的。而且,只要是超过15年的从业经历,都应当果断删除,这不会影响你找工作的成功率。要知道,几乎没人会在乎你1997年用Perl/CGI开发过什么东西,既然如此,为什么非要用这个来强调自己的年龄呢? ”
13
Git 少用 Pull 多用 Fetch 和 Merge
“本文有点长而且有点乱,但就像Mark Twain Blaise Pascal的笑话里说的那样:我没有时间让它更短些。在Git的邮件列表里有很多关于本文的讨论,我会尽量把其中相关的观点列在下面。 我最常说的关于git使用的一个经验就是: 不要用git pull,用git fetch和git merge代替它。 git pull的问题是它把过程的细节都隐藏了起来,以至于你不用去了解git中各种类型分支的区别和使用方法。当然,多数时候这是没问题的,但一旦代码有问题,你很难找到出错的地方。看起来git pull的用法会使你吃惊,简单看一下git的使用文档应该就能说服你。 将下载(fetch)和合并(merge)放到一个命令里的另外一个弊端是,你的本地工作目录在未经确认的情况下就会被远程分支更新。当然,除非你关闭所有的安全选项,否则git pull在你本地工作目录还不至于造成不可挽回的损失,但很多时候我们宁愿做的慢一些,也不愿意返工重来。 分支(Branches) 在说git pull之前,我们需要先澄清分支的概念(branches)。很多人像写代码似的用一行话来描述分支是什么,例如: 准确而言,分支的概念不是一条线,而类似于开发中的有向无环图 分支类似于一个重量级的大对象集合。 我认为你应该这样来理解分支的概念:它是用来标记特定的代码提交,每一个分支通过SHA1sum值来标识,所以对分支进行的操作是轻量级的--你改变的仅仅是SHA1sum值。 这个定义或许会有意想不到的影响。比如,假设你有两个分支,“stable” 和 “new-idea”, 它们的顶端在版本 E ...”
MySQL: InnoDB 还是 MyISAM?
“MyISAM存储引擎 MyISAM是 默认存储引擎。它基于更老的ISAM代码,但有很多有用的扩展。MyISAM存储引擎的一些特征: 所有数据值先存储低字节。这使得数据机和操作系统分离。二进制轻便性的唯一要求是机器使用补码(如最近20年的机器有的一样)和IEEE浮点格式(在主流机器中也完全是主导的)。唯一不支持二进制兼容性的机器是嵌入式系统。这些系统有时使用特殊的处理器。 先存储数据低字节并不严重地影响速度;数据行中的字节一般是未联合的,从一个方向读未联合的字节并不比从反向读更占用更多的资源。服务器上的获取列值的代码与其它代码相比并不显得时间紧。 大文件(达63位文件长度)在支持大文件的文件系统和操作系统上被支持。 当把删除和更新及插入混合的时候,动态尺寸的行更少碎片。这要通过合并相邻被删除的块,以及若下一个块被删除,就扩展到下一块来自动完成。 每个MyISAM表最大索引数是64。 这可以通过重新编译来改变。每个索引最大的列数是16个。 最大的键长度是1000字节。这也可以通过编译来改变。对于键长度超过250字节的情况,一个超过1024字节的的键块被用上。 BLOB和TEXT列可以被索引。 NULL值被允许在索引的列中。这个占每个键的0-1个字节。 所有数字键值以高字节为先被存储以允许一个更高地索引压缩。 当记录以排好序的顺序插入(就像你使用一个AUTO_INCREMENT列之时),索引树被劈开以便高节点仅包含一个键。这改善了索引树的空间利用率。 每表一个AUTO_INCREMEN列的内部处理。MyISAM为INSERT和UPDATE操作自动更新这一 列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索 引的最后一列,可以出现重使用从序列顶部删除的值的情况 )。AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置。 如果数据文件中间的表没有自由块了,在其它线程从表读的同时,你可以INSERT新行到表中。(这被认识为并发操作 )。自由块的出现是作为删除行的结果,或者是用比当前内容多的数据对动态长度行更新的结果。当所有自由块被用完(填满),未来的插入又变成并发。 你可以把数据文件和索引文件放在不同目录,用DATA DIRECTORY和INDEX DIRECTORY选项CREATE TABLE以获得更高的速度,请参阅13.1.5节,“CREATE TABLE语法”。 每个字符列可以又不同的字符集。 在MyISAM索引文件里又一个标志,它表明表是否被正确关闭。如果用--myisam-recover选项启动mysqld,MyISAM表在打开得时候被自动检查,如果被表被不恰当地关闭,就修复表。 如果你用--update-state选项运行myisamchk,它标注表为已检查。myisamchk --fast只检查那些没有这个标志的表。 myisamchk --analyze为部分键存储统计信息,也为整个键存储统计信息。 myisampack可以打包BLOB和VARCHAR列。 MyISAM也支持下列特征: 支持true VARCHAR类型;VARCHAR列以存储在2个字节中的长度来开始。 有VARCHAR的表可以有固定或动态记录长度。 VARCHAR和CHAR列可以多达64KB。 一个被搞乱的已计算索引对可对UNIQUE来使用。这允许你在表内任何列的合并上有UNIQUE。(尽管如此,你不能在一个UNIQUE已计算索引上搜索)。 InnoDB存储引擎 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN ...”
InnoDB还是MyISAM 再谈MySQL存储引擎的选择
“两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用。 我作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,但是从我目前运维的数据库平台要达到需求:99.9%的稳定性,方便的扩展性和高可用性来说的话,MyISAM绝对是我的首选。 原因如下: 1、首先我目前平台上承载的大部分项目是读多写少的项目,而MyISAM的读性能是比Innodb强不少的。 2、MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引,而Innodb是索引和数据是紧密捆绑的,没有使用压缩从而会造成Innodb比MyISAM体积庞大不小。 3、从平台角度来说,经常隔1,2个月就会发生应用开发人员不小心update一个表where写的范围不对,导致这个表没法正常用了,这个时候MyISAM的优越性就体现出来了,随便从当天拷贝的压缩包取出对应表的文件,随便放到一个数据库目录下,然后dump成sql再导回到主库,并把对应的binlog补上。如果是Innodb,恐怕不可能有这么快速度,别和我说让Innodb定期用导出xxx.sql机制备份,因为我平台上最小的一个数据库实例的数据量基本都是几十G大小。 4、从我接触的应用逻辑来说,select count(*) 和order by 是最频繁的,大概能占了整个sql总语句的60%以上的操作,而这种操作Innodb其实也是会锁表的,很多人以为Innodb是行级锁,那个只是where对它主键是有效,非主键的都会锁全表的。 5、还有就是经常有很多应用部门需要我给他们定期某些表的数据,MyISAM的话很方便,只要发给他们对应那表的frm.MYD,MYI的文件,让他们自己在对应版本的数据库启动就行,而Innodb就需要导出xxx.sql了,因为光给别人文件,受字典数据文件的影响,对方是无法使用的。 6、如果和MyISAM比insert写操作的话,Innodb还达不到MyISAM的写性能,如果是针对基于索引的update操作,虽然MyISAM可能会逊色Innodb,但是那么高并发的写,从库能否追的上也是一个问题,还不如通过多实例分库分表架构来解决。 7、如果是用MyISAM的话,merge引擎可以大大加快应用部门的开发速度,他们只要对这个merge表做一些select count(*)操作,非常适合大项目总量约几亿的rows某一类型(如日志,调查统计)的业务表。 当然Innodb也不是绝对不用,用事务的项目如模拟炒股项目,我就是用Innodb的,活跃用户20多万时候,也是很轻松应付了,因此我个人也是很喜欢Innodb的,只是如果从数据库平台应用出发,我还是会首选MyISAM。 另外,可能有人会说你MyISAM无法抗太多写操作,但是我可以通过架构来弥补,说个我现有用的数据库平台容量:主从数据总量在几百T以上,每天十多亿 pv的动态页面,还有几个大项目是通过数据接口方式调用未算进pv总数,(其中包括一个大项目因为初期memcached没部署,导致单台数据库每天处理 9千万的查询)。而我的整体数据库服务器平均负载都在0.5-1左右。 ”
MySQL内存表的特性与使用介绍
“内存表,就是放在内存中的表,所使用内存的大小可通过My.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M,内存表与临时表并不相同,临时表也是存放在内存中,临时表最大所需内存需要通过tmp_table_size = 128M设定。当数据超过临时表的最大值设定时,自动转为磁盘表,此时因需要进行IO操作,性能会大大下降,而内存表不会,内存表满后,会提示数据满错误。 临时表和内存表都可以人工创建,但临时表更多的作用是系统自己创建后,组织数据以提升性能,如子查询,临时表在多个连接之间不能共享。这里只讨论内存表。 创建表是,用engine=memory可创建(mysql5.5中已经不支持type,以后都用engine,形成习惯)。 create table test ( id int unsigned not null auto_increment primary key, state char(10), type char(20), date char(30) )ENGINE=MEMORY ...”
创业永远不会太晚 三位大龄创业者的故事
“这些都是让人振奋的故事:一个满腹牢骚的职员突然有了勇气辞职,并开始从事能实现自己抱负的行业;一位经验丰富的天才发现了一种更好地服务于市场的方法,也辞职去开了一家新公司。对这些人来说,创业是他们自然而然需要迈出的一步。 但如果你一直喜欢你多年所从事的这项工作呢?如果你在准备经营的行业上并没有多少经验呢?不要让这些障碍挡住你。正如上面提到的那些人一样,你可能会发现自己比以前会更好。 尼科尔奥登(Nicole Oden) 过去是:Smith Barney公司的高级副总裁 现在是:Eleven Spa水疗服务公司的创始人 在意外地离开公司之前,41岁的Eleven Spa创始人尼科尔奥登(Nicole Oden)已在享有盛誉的Smith Barney金融公司做了12年的副总裁,长期以来,她都对于水疗服务感到失望和不满。 2003年,奥登在又一次体验了失望的服务后,她决定自己开办一家水疗服务机构,以提供自己想要的那种体验服务。因此她去了一趟美国佛罗里达州的德尔雷海滩(Delray Beach),并在那买下了11,000平方英尺的建筑。 “就是这么快做出决定的。”她说,“我有了一个大致的构想,当时想‘我要把这个地方建起来,每个人都会来,我要回去工作,还要建立一家很棒的水疗服务机构’。” 奥登在一年多的工程施工中发现自己怀孕了,当2004年11月Eleven Spa开业的时候她住进了妇产科医院。她从没后悔:“我再也没去原来的办公室,我们这里事情太多了,我和助手整天都要忙于自学相关的业务、上培训课、接受采访、雇佣员工等等。” 4年后,Eleven Spa推出了一项皮肤护理系列服务,2008年开始走上正轨,销售额达到了600万美元。2009年1月,她还要在维加斯开一家新店,第一年的销售额预计可达1,200万美元。 以前的职业生涯当然对她在Eleven Spa上取得的成功帮助很大:“我是搞财务的,不用找投资者,我自己就能够完成这些事了。” 奥登也承认这次创业已超越了她的期望:“我觉得对我来说,没有比我原来的工作更好的选择了,但Eleven Spa是我的梦想。从我开始创业的那一刻起,我就决定做自己想做的事情,我想不到比这更棒的了。” 里克 菲尔德(Rick Field) 过去是:“NOW with ...”
单条32GB 创见推新Mac Pro专用内存
“苹果新一代Mac Pro最高可选配高达64GB的内存,虽然看起来很多,但作为服务器来说它总会有被用光的时候,在这种情况下你就要想办法升级你的内存了。 创见在日前宣布退出专门为Mac Pro设备的单条16GB和单条32GB内存,而单条32GB应该也是目前容量最大的内存条了。在Mac Pro配备了四个内存插槽的前提下,配备创见的单条32GB内存的话最大就能够把内存容量提升到128GB,比笔者的固态硬盘还要大了。 这款单条32GB的内存频率为DDR3-1333MHz,而16GB版则能够达到DDR3-1866MHz。创见表示这两款内存经过实际测试都能够100%兼容新Mac Pro。 超高的容量也带来了超高的售价,按照创见官方公布的价格来看,128GB版内存套装(四根32GB)的价格高达2480美元,约合人民币15370元,快赶上标价2999美元的低配版Mac Pro了。 ”
OLTP概念总结
“定义 OLTP是On-Line Transaction Processing的缩写,即联机事务处理系统。OLTP也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。这样做的最大优点是可以即时地处理输入的数据,即时地回答。也称为实时系统(Real time System)。衡量联机事务处理系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response Time),即用户在终端上送入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP是由数据库引擎负责完成的。 OLTP 数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。 特征 支持大量并发用户定期添加和修改数据。 反映随时变化的单位状态,但不保存其历史记录。 包含大量数据,其中包括用于验证事务的大量数据。 具有复杂的结构。 可以进行优化以对事务活动做出响应。 提供用于支持单位日常运营的技术基础结构。 个别事务能够很快地完成,并且只需访问相对较少的数据。OLTP 系统旨在处理同时输入的成百上千的事务。 实时性要求高。 数据量不是很大。 交易一般是确定的,所以OLTP是对确定性的数据进行存取;(比如存取款都有一个特定的金额)。 并发性要求高并且严格的要求事务的完整,安全性。(比如这种情况:有可能你和你的家人同时在不同的银行取同一个帐号的款)。 应用领域 OLTP 系统中的数据主要被组织为支持如下事务: 记录来自销售点终端或通过网站输入的订单。 当库存量降到指定级别时,订购更多的货物。 在制造厂中将零部件组装为成品时对零部件进行跟踪。 记录雇员数据。 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 什么是OLAP ...”
11
OLTP与OLAP对比
“当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。 联机事务处理OLTP(on-line transaction processing)主要是执行基本的、日常的事务处理,比如在银行存取一笔款,就是一个事务交易。 OLTP的特点一般有: 1.实时性要求高; 2.数据量不是很大; 3.交易一般是确定的,所以OLTP是对确定性的数据进行存取(比如存取款都有一个特定的金额); 4.并发性要求高并且严格的要求事务的完整、安全性 (比如这种情况:有可能你和你的家人同时在不同的银行取同一个帐号的款)。 联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。 联机分析处理OLAP(On-Line Analytical Processing)是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。典型的应用就是复杂的动态报表系统。 OLAP的特点一般有: 1.实时性要求不是很高,很多应用顶多是每天更新一下数据; 2.数据量大,因为OLAP支持的是动态查询,所以用户也许要通过将很多数据的统计后才能得到想要知道的信息,例如时间序列分析等等,所以处理的数据量很大; 3.因为重点在于决策支持,所以查询一般是动态的,也就是说允许用户随时提出查询的要求。于是在OLAP中通过一个重要概念“维”来搭建一个动态查询的平台(或技术),供用户自己去决定需要知道什么信息。 两者的区别在于:      ...”
博客 为谁而写?
“一个人的博客是为谁而写?为自己而写的,还是为读者而写的?博客是否应该迎合自己的读者,写自己读者喜欢的内容呢?这恐怕是困扰着很多博客作者的一个问题。今天我就详细探讨一下这个问题。 被惯坏了的读者 博客早期是日记的另一种形式,具有很强的个性化,读者在最初是被作者的这种个性所吸引,并订阅或长期阅读该博客。但随着读者越积越多,博客的读者也会越来越多,大部分读者会和作者形成一种良性的反馈和互动,鼓励和引导作者进一步创作。 但是有极少数的读者,也就是一些所谓被“惯坏了”的读者,试图尝试对作者形成一些影响力,并通过留言、写文章或者其他形式,对作者的写作施加影响,要求 作者按照自己的要求写作,写自己喜欢看的文章,如果不按照自己的要求写作,动辄就以退订相威胁。从某种程度上,作者这时已经被这一小撮读者所要挟了。而一 小撮读者为了自己产生某种满足感,不会对这种要挟带有任何道德愧疚感。 在中国这样的环境下,产生这样的读者也不足为奇,这些是被“惯坏 了”的读者,尤其以大学生为甚,他们拥有着大量的时间,使用这盗版的操作系统和免费的软件,在互联网上用着免费服务,看着免费的好文章,对于他们而言,别 人将好东西送到自己手里是天经地义的。试问一句,凭什么作者要免费为你提供优秀的文章,你在索取这么多的同时,付出了什么呢? 对于这一小撮大学生,魏武挥曾经说他们没有消费能力,功利性很强,可以说商业价值很低,通常不可能对作者给予任何形式的回报。如果一个博客作者要沦落到迎合这类读者的口味上的话,那不如直接关闭算了。 恶劣的中国互联网环境 这也是当今中国互联网的一个怪圈——原创内容的作者无法从自己的创作中获得赢得的收益,那必将降低作者的创作欲望,导致更新减少。为什么在中国,原创内容不值钱呢?因为中国人的传统观念就是不尊重知识产权,各类聚合或者门户类网站直接复制走个人博客的文章,有些还振振有词, 这种情况在国外的互联网是非常少见的。国外的互联网也因此形成了一条较为成熟的产业链,产生了一大批职业博客,专职来更新博客,优秀的好文章则是层出不 穷,多的连翻译都翻译不过来。相比之下这么大一个中国,网民数量据世界第二,目前还没有出现一个以博客为职业的专职博客,中国互联网环境之恶劣可见一斑。 目前的现状是,个人博客的生存环境异常艰辛,个人辛辛苦苦的创作的内容却因为种种原因无法给个人带来应该得到的回报,各类门户网站或者所谓的社会化推荐 引擎,通过人肉的方式或者采集全文RSS Feed加机器自动筛选的形式从个人博客上挑选出优秀的文章,从内容上说,个人博客的内容远远无法和门户网站和聚合行网站相比,主流门户网站拥有自己的编 辑团队和营销团队,具有足够的资源和能力输出更好的内容,社会化推荐引擎则更简单,连编辑都不需要了,直接通过计算筛选分析出热门文章进行输出,而个人博 客要写一篇好文章需要酝酿很长时间,每周能写一篇好文章已经算不错了,而且中文博客大多都“傻乎乎”的全文RSS输出,自动帮这些聚合网站减少工作量,这 些网站更新频繁,内容又是精选了众多博客的好文章,所有的流量都逐步流向这类门户网站和聚合性网站,如果仅从内容或者搜索引擎上来看,个人博客在这种恶劣的互联网环境下生存极其困难。 个人博客的选择 对付聚合性质的网站的方法其实也很简单,就是RSS摘要输出,但这也将伤害那些博客的忠实读者,实在是一种两难的决策,你也可以要求这些聚合网站不要提 供网页快照,但通常不会得到正面的回应,对方还会振振有词,说你看某某某网站也有网页快照等等,和尚摸得,我就摸不得吗? 对付门户网站,可以要求门户网站删除复制的文章,但通常会浪费巨大的时间和精力,对博客自身来说又是得不偿失。 博客作者全文RSS输出难道就是为了这些采集网站方便聚合吗?为什么那么多人喜欢“偷”内容而没有任何愧疚感呢?还是因为读者,读者喜欢阅读好内容,但 是大多数读者对于内容的出处毫不关心,只要内容能满足读者的需求就够了。而那些门户网站和聚合性网站正好可以迎合他们的需求,提供海量而优秀的个性化内 容,都是免费的。 有时候我在想,什么时候中国的互联网环境能变得和美国那里一样好,一切的问题不就都解决了,要到那时候,中国肯定会涌 ...”
淘宝开店不赚钱的四大原因
“要想利用淘宝开店赚钱,首先必须了解大部分网店主是如何赔钱的。因为赚钱的方法多种多样,赔钱的原因总是那三四个。过去两年与几百家淘宝店主深入交流直流,我发现不赚钱主要是因为以下四大原因: 原因之一:产品利润太薄 非常多的朋友,开淘宝店都是从卖身边的产品开始的,例如卖一个杯子,旧书资料、充值卡、小玩具等等产品。每单仅卖一二十元,利润再高也不超过10元,就算是一天卖上十几单,抛去运营成本,可能还赔钱。 我有一句话许多朋友很喜欢,那就是:只要你敢卖,就有人敢买! 其背后的道理是:卖利润5块钱的产品,和卖利润是500元的产品,花费的精力是差不多的,但是利润却相差100倍。同样是卖10单,利润5元一单你只能赚50,利润500元一单你可以赚5000,这就是差距。 所以,网上开店创业者,应该首选卖暴利产品,只要你认真观察,我们身边存在着非常非常多的暴利产品。明天10点,我会准时发文章:《挖掘身边的暴利产品》发布到www.cn006.com,敬请关注。 原因之二:网店流量太小 太多淘宝开店的人总以为,开一个网店就像在商城开一个柜台一样,自动会有人来。真是的情况是:淘宝这个大商城有600多万个店铺,竞争越来越厉害。如果你只开一个店,而不去推广,就像你把店开在深山老林一样,不可能门庭若市,甚至是让你熟悉的人在淘宝上去找,都很难找到。 淘宝开店和线下开店的道理是一样的,你的客流越多,你的生意就可能越好。所以在淘宝开店不能坐天吃饭,必须想办法去推广。 这个时候,如果你开始投放直通车广告,有可能赚钱,也有可能赔钱,因为直通车广告越来越像百度竞价广告,价格越来越高,竞争越来越激烈。 所以,除此之后,有没有不花钱,并且有效的网店推广方法呢? 非常多,例如淘宝搜索排名,采用合理的优化策略,可以让你的宝贝或店铺在淘宝搜索结果中,获得较好的排名,从而带来较多的客户。当然,还有非常多的方法,特别是利用淘宝之外流量的方法,我们今后的文章将逐步给大家分享。 原因之三:销售转化率太低 还有不少网店,流量已经不小了,但是成交却很少,这主要原因就是:销售转化率太低! 客户从进入你的淘宝网店,到产生购买,有着一个系统化的流程。例如:从浏览到咨询,这环节最关键的就需要你的产品文案写的诱惑客户。如果你的产品文案只是复制粘贴来的,比起其他家没有任何特点,可能很少有冲动联系你或者下订单。 如果你的销售文案采用了营销心理学的技巧,写的非常诱惑人,甚至连购买意向不强的人都想和咨询一下你,那么你的转化率不可能低的。记住,销售就是诱惑! 从营销上来分析,从客户进网店的销售环节,有以下几个步骤非常重要: 1、淘宝网店流量多少? 2、淘宝网店转化的浏览量多少? 3、淘宝网店浏览量转化的咨询量多少? 4、淘宝网店咨询量转化的成交量多少? 5、淘宝网店成交客户回头客比例多少? 这每一个环节,都有非常多的技巧来提升,只要把每一个环节的每一个细节都认真的做好,你的淘宝网店生意才会越来越好。关于里面的技巧,我将持续与大家分享.如果你已经统计出你的淘宝店以上几个数据,欢迎与我们交流。邮箱:ask@tongwang.cn 原因之四:不够坚持 大部分在淘宝开店是前一月很新鲜,然后会遇到越来越多的问题,三个月后就逐渐倦怠,再往后,淘宝店就会一直处于半死不活的状态。 前几天,我和一个生意做的很成功的朋友聊天,我问他成功的关键是什么?他回答:坚持!因为他觉得自己不够聪明,所以他从来不追求自己快速做到什么样子,而是按照自己的计划,一步一步去做,坚持到最后,就会做的非常扎实,结果反而最成功。 网络时代,人心浮躁;坚持难得,剩者为王! 如果你的淘宝店还不赚钱,那么是以上那个原因造成的呢? ”
小说520网站遭关停:创办人获刑4年被罚300万
“发现“金库” 金俊杰,一个 26 岁的湖北宜城大男孩,从学校毕业之后,开始像其他大学毕业生一样到处不停地投简历、找工作。由于毕业学校的知名度不高,加上金俊杰期望值过高,一段时间下来,找工作屡屡碰壁。心灰意冷的金俊杰萌发了自主创业的念头。 因为大学时喜欢看网络小说,加上课余学到的网络知识,金俊杰便在 2007 年注册了 www.xiaoshuo520.com (小说 520)的域名,联系了服务器托管公司,开始了做原创小说网站的创业尝试。 创业是艰辛的。由于网站刚刚成立,一时间也难以找到签约的写手,而且高水平的网络写手也不会签约这样的小网站。一腔热血的金俊杰便拿来了自己大学时期写下的玄幻小说挂到网站上。 然而,水平不高的小说质量很难吸引读者光顾“小说 520”。在经营了一段时间之后,由于单一的盈利模式和管理经验的欠缺,“小说 520”逐渐入不敷出。 “小说 520”该怎样经营下去成了一个困扰着金俊杰的难题。一天,在互联网上浏览网页时,他无意间发现一些小型文学网站直接复制知名小说网上的作品挂到自己的网站上,而且有着不错的浏览量。 金俊杰好像发现了一个“金库”,眼界豁然开朗。复制别人网站上的小说基本上不需要成本,可谓省时省力,还能提高浏览量,自己为什么不跟着做呢?从 2009 年起,经营原创小说难以为继的金俊杰从此走上网络盗版的道路。 免费午餐金俊杰瞄上了起点中文网。起点中文网是目前国内领先的原创文学门户网站,也是中国最大的文学阅读与写作平台之一,在国内拥有众多的读者群体。 当金俊杰把手伸向起点中文网之后,起点中文网上取之不竭的原创网络小说资源就成了“小说 520”的“小金库”。为了方便盗版,金俊杰从网上联系一个叫“关关”的软件高手,从他那里购买了名为“关关采集器”的文章自动采集程序,利用这个软件可以全面、快速地把起点中文网上的小说复制过来并放到“小说 520”网站上。 从 ...”
糗事百科团队股权纷争 第二大股东遭CEO驱逐
“据记者了解,国内知名的个人原创信息分享网站“糗事百科”已于2011年5月注册公司,但是随后不久就爆发创始团队内部斗争,创始团队接连发生内部斗争,原创人员“闪”和一年来糗百的第二大股东“霜叶”均被糗事百科现任CEO“黑衣”赶出糗事百科。 糗事百科创办自2005年,一直为个人网站,不过这种网友分享形式的个人网站似乎也一直找不到太好的赢利点,自2005年创办以来,到2010年,糗事百科每个月通过网站广告和用户捐赠获得的收入大约在5000元上下。 糗百由网名“闪”的合伙人写下了糗事百科的全部代码,并上线运行。包括“黑衣”等人以兼职的方式在业余时间管理着这个网站。糗事百科注册网友习惯称之为“糗百”,糗事百科是以网友真实糗事为主题的笑话网站,话题轻松休闲,目前在年轻人中十分流行,不少网络上流行的各种笑话大多来源于糗事百科上面的网友分享。 2010年10月,糗百创始人“黑衣大葛格”找到了一位新的合伙人“霜叶”,许诺给“霜叶”18%的股份,邀请“霜叶”参与糗百的运营和发展规划。“霜叶”认为以糗事百科当时的影响力和流量,糗事百科应该可以有更大的发展,随即提出了在一年内将月收入从5000元增加到10万元,网站用户数也增加20倍的发展计划。随后,创始人“黑衣”要求原糗事百科的管理员“闪”交出所有网站文件和数据,并逼迫闪退出了糗百团队。 在接下来的一年里“霜叶”全面接手了糗事百科网站的运营和管理,并出资购买了糗事百科的服务器。至今年6月,糗事百科的用户数和流量增长近20倍,网站收入也如期达到了每月10万元的水平。此时“黑衣”自己私下为糗事百科注册了公司,开始全职投入对糗事百科的运作。到了8月,“黑衣”通知“霜叶”:“鉴于一年来你对糗事百科的贡献,我可以赠送给你1%的股份。”不过根据记者了解到的最新情况,最终“霜叶”连1%的股份也没有拿到,仅仅得到了2万元的“道义上的补偿”。 据熟悉此时相关内幕的网友爆料,糗事百科网站经过这一年的快速发展,估值已达3000万人民币,月收入10万以上,已经具备了成功商业运作和融资发展的基础。也正是这一年来糗事百科的迅速增长,让糗事百科团队内部出现了分歧。根据现在糗事百科的估值计算,18%的股份价值达540万元人民币。而糗事百科一直作为一个朋友利用业余时间兼职维护的个人网站,在之前也没有任何正规化的公司运作,没有通过合同条文规范管理团队间的股份关系,所有股份关系都是来自管理团队间的口头约定。 有一位来自天使投资机构的投资经理对记者表示,这其实是挺常见的创业纠纷:创业者在刚开始创业的时候由于都没什么经验,更重要的是创业项目还完全不值钱,加上创业者往往都是朋友加兄弟的关系,往往创始人会非常不重视具体的股权分配概念,只凭口头约定未来的权利和责任,并不会通过正规的合同规范各自的股权比例。按照中国人的传统文化,总觉得“提钱伤感情”。但是现在成功的互联网项目总会经历一个突然爆发的阶段,一些原本辛辛苦苦一个月只有1万元上下收入的普通创业者,突然在数月之间发现自己正在管理一家估值达数千万人民币的公司,1%的股份对于他来说就相当于他曾经数年的收入,在这种情况下难免会有一些创业者产生一些心理波动。 该投资经理提醒所有的创业者,既然大家创业就是在憧憬成功,那么最好在创业第一天就以规范的方式明确创业团队的股权分配情况,这样既有利于在未来吸引投资时减少投资者对该项目的担心,也有利于避免创业团队之间未来的矛盾,出现朋友变仇人这样的情况。(本文涉及到的人物均使用他们在网络上的网名) ”
使用Vagrant练习环境布署
“最近对Rails的布署有更深一层的体悟,打算花点时间将布署心得整理成文章,预计大概会在2050年前完成这部大作,这边决定先发布序章,就是教你怎么使用Vagrant来打造自己的测试机器。 为什么要用Vagrant 答案很简单,因为开远程机器练习布署或是机器架构又慢又麻烦又要钱,而且玩坏了或是环境脏了又得重灌又很慢,如果你想我一样最近在玩Chef-Server,实验多机器环境架构,例如一台Web Load Balancer、5台Application Server、1台Master Database 1台Slave Database、1台Data Analytics Server、1台 Service Monitor Server,1台Redis Server,听起来有没有很牛,但这一切都只要在你那台用来开发的计算机就做的到,告诉我为何你还不用Vagrant呢? Vagrant Basic 下载安装Vagrant与Virtual Box Vagrant背后用的是Virtual ...”
10
aufs特性介绍
“很有趣的文件系统,作为unionfs的替代品。 平常所接触的文件系统的概念都是,一个设备挂载在一个目录上,访问这个目录的时候,其实访问到这个设备里面的数据,当你挂载一个新的设备到这个目录的时候,原来的内容就会不可见。 aufs有一个好玩的特性就是,可以把两个设备挂载在同一个目录上,可以同时对这两个设备的数据进行操作,通常是将一个只读设备跟一个读写设备挂载在一起。读的内容是两个分区中的,写的时候对读写设备操作。 最常用的应用是livecd,使用livecd的时候,有时候会希望对系统进行一些修改,比如安装软件什么的。这种修改是不能保存到硬盘上的。或者机器就没有硬盘。这时候就需要aufs了,将光盘作为不可写的设备,将内存划分一些作为可读写设备,然后挂载在一个目录,这样就可以实现在livecd环境安装软件的需求了。 关于aufs的使用,这里有一个小小的介绍:http://blog.chinaunix.net/u3/96583/showart_1944879.html unionfs是早期的实现,但是因为bug太多而被弃用,现在ubuntu的livecd采用的就是aufs。 ”
Docker跟一般的虚拟机有什么区别?
“这是StackOverflow上的一个问题及其回答的翻译(原文:Docker.io跟一般的虚拟机有什么区别?)。原文主要回答了三个问题:Docker.io的基本原理是什么?为什么在docker中部署软件很方便?docker是如何保存系统镜像的?前两个问题是主问题,最后一个问题是有人在评论中提出的,原作者也做了回答。 问题: 我正在学习Docker.io的文档(http://docs.docker.io/en/latest/terms/container/),试图找到Docker.io跟完整的虚拟机之间到底有什么差别。Docker.io是如何在实现一个完整的文件系统,隔离网络环境等特性的同时又能保持轻量化的? 回答: Docker使用的是Linux容器(LinuX Container, 简称LXC),跟其宿主运行同样的操作系统。这使得LXC可以跟共享其宿主操作系统的很多资源。它还用AuFS作为文件系统。它还可以为你管理网络。 AuFS是一个分层文件系统,可以有一个只读分区,一个可写分区,然后将两者合并。所以,可以让所有的容器共享同一个只读分区,并各个容器设置各自的写分区。 比如有一个1GB大小的容器镜像。如果使用一般的虚拟机,需要N台机器的话,就需要N GB的存储空间。有了LXC和AuFS,可以让运行相同操作系统的多个容器共享这1GB,这样即使需要1000个容器,所需的空间也比1GB多不了多少。 完全的虚拟化系统会完全占有分配给它的资源,很少共享。隔离性很好,但很重(需要更多的资源)。 LXC的隔离性弱一下,但非常轻量化,需要的资源很少。类似在一个主机上运行1000个容器这种任务,对LXC来说就是秒杀。如果用Xen来实现这么多虚拟机,除非主机异常强悍,否则是不可能的。 一般的虚拟系统需要数分钟来启动,LXC容器的启动时间只有几秒钟,有时甚至不到一秒。 两种虚拟系统都有各自的优缺点。如果需要彻底的隔离,确保资源分配,那就应该用完整的虚拟机。如果只是要隔离各个进程,同时需要在一般的主机上运行大量的此类进程,LXC就是最佳选择。 关于LXC的具体解释可以看看这篇博客文章:http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part 问题 为什么在docker镜像中部署软件要比直接在持久化的生产环境中部署软件便捷? 回答 在持久化的生产环境中部署软件是说起来容器做起来难。就算是用上了诸如chef和puppet一类的工具,主机和生产环境之间还是会有诸如OS更新之类的差异。 用Docker可以讲操作系统放入同一个镜像中,在其他的docker主机上部署就变得非常同意。在本地主机上,开发、质控、生产环境等都可以是一个镜像。用其他工具也可以实现这些,但用docker无疑是最便捷的解决方案。 对于单元测试这也是个好东西,假设有1000个测试,它们都需要连接数据库,为了确保测试不会破坏原有的东西,需要逐个地运行这些测试(运行测试,回滚,然后下一个测试)。有了Docker,可以给数据库建一个镜像,然后同时运行所有的测试,因为你知道他们所使用都是数据库的同一个镜像。测试是并行执行的,而且在LXC容器中,他们可以同时在一个环境中运行,测试的速度可以大大提升。可以试试在完整的虚拟机中做这个测试。 问题 很有意思!我依然觉得我对“snapshot the OS”这个概念感到困惑。怎么可能实现这个功能却不需要做一个OS的镜像? 回答 好吧,我试着解释一下。首先你有一个基础镜像,做一些修改,用docker提交这些修改,docker会创建一个镜像。但这个镜像中保存的只是你修改后的镜像跟基础镜像之间的差异。在运行你的镜像时,依然需要基础镜像,docker会通过分层文件系统,就是AuFS,将你的镜像放在基础镜像之上。AuFS会将各层系统合并,你就能得到你自己的镜像,直接运行即可。可以添加更多的镜像(层),docker只会保存它们之间的差异。 ”
Git 高级:Git Reset, Checkout, Diff, Stash
“Git Reset 有时候,你可能想要撤销 Git 操作。通常,git reset 就是你需要的命令。但是,使用 git reset 可能会非常复杂,取决于你的撤销操作。如果本文没有提到你需要的,查看 git reset 官方文档。 假设,你正在进行一个项目,想要取消所有的改变,返回到最近一次的提交,命令如下: $ git reset --hard ...”
uptime命令总结
“linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息。uptime命令过去只显示系统运行多久。现在,可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 uptime命令用法十分简单:直接输入 # uptime 即可。 输出示例: 18:02:41 up 41 days, 23:42, 1 user, load average: 0.00, 0.00, 0.00 1可以被认为是最优的负载值。负载是会随着系统不同改变得。单CPU系统1-3和SMP系统6-10都是可能接受的。 另外还有一个参数 -V ...”
Linux安装JDK详细步骤
“Linux安装JDK详细步骤呢将向你介绍Linux安装JDK的每一个细节,这对于程序开发初学者是十分有帮助的。 Linux安装JDK步骤1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也行。 进入安装目录 #cd /home #cp jdk-1_5_0_02-linux-i586.rpm /usr/local #cd /usr/local 给所有用户添加可执行的权限 #chmod +x jdk-1_5_0_02-linux-i586.rpm.bin #./jdk-1_5_0_02-linux-i586.rpm.bin 此时会生成文件jdk-1_5_0_02-linux-i586.rpm,同样给所有用户添加可执行的权限 #chmod +x jdk-1_5_0_02-linux-i586.rpm 安装程序 #rpm -ivh jdk-1_5_0_02-linux-i586.rpm 出现安装协议等,按接受即可。 Linux安装JDK步骤2.设置环境变量。 #vi /etc/profile 在最后面加入 #set java ...”
Linux查看目录大小和查看磁盘使用情况
“今天也有同学问我Linux下查看目录大小的命令,现在也将前阵子学习到du/df两个命令总结一下吧。 前阵子测试工作中有遇到过由于磁盘空间满导致程序无法执行到情况,所以使用了df和du两个命令。 du查看目录大小,df查看磁盘使用情况。 我常使用的命令(必要时,sudo使用root权限), 1.查看某个目录的大小:du -hs /home/master/documents 查看目录下所有目录的大小并按大小降序排列:sudo du -sm /etc/* | sort -nr | less 2.查看磁盘使用情况(文件系统的使用情况):sudo df -h ...”
“聪明爷爷”80岁读初一 90岁进中科大
“昨日8:30,在中国科技大学第二教学楼,吴天雄和同学们准时走进106教室,人群中,92岁的他格外显眼。“当年学的知识少,不够用,现在要补”,吴天雄老人现在读的是中国科技大学于2010年创办的中华文化大学堂,这学期学习“科学方法与创造学”。“我想用自己的行动告诉更多的老人家,90岁照样可以上大学,可以爬山,我还想学到100岁。” 今年92岁的吴天雄家住蜀山区望江西路社区,退休前是合力叉车厂的普通职工。“一直感觉自己知识不够用,我们上学的时候很可怜。 ” 老人家出生于1923年,是合肥人,但少年时在重庆长大,重庆大轰炸时,正是他读初中的时候,“没办法上课了,经常轰炸,我们只好常常躲到山里去。 ”就这样,中学基本上没读多少书。 后来吴天雄回到合肥,成了合力叉车厂职工。工作中常觉得知识不够,吴天雄就养成了常去图书馆的习惯。 当时他的身体很不好,于是留意医学类书籍。一天他看到“蜂毒明目”,萌生了研究蜜蜂的想法,但自己对动物完全不懂。老人爱长跑,在跑步中认识了中国科技大学的归国教授解俊民。 60岁那年,吴天雄退休,在解俊民的介绍下,来到了中科大生物系,开始了“打工”生活,平时是卫生员,给实验室养兔子,工作结束后就去实验室观摩旁听,“那些年轻学生很热情,我不懂的地方,他们都一遍遍地讲给我听。 ” 5年过后,他离开学校,开始实践,他去过长丰、定远,在那里研究蜜蜂,还带领当地农民一起养蜜蜂致富。 80岁孙子送他去读初一 多年研究蜂毒,吴天雄有了一定的基础,还想看更多的生物著作,这就要学习英语。2002年,80岁的老人家背起了书包开始读初一,当时他就读于合肥市第二十八中,这也是他儿子曾就读的学校。 “孩子们非常支持! ”老人家上学的第一天,是由孙子送他去学校的,“别人都是爷爷送孙子上学,我们家是孙子送爷爷上学。 ”对此,老人家很是骄傲。 受其影响,吴天雄的孙子也很爱学习,孙子研究生毕业,常跟爷爷讨论问题,还不忘鼓励老人家:“爷爷好聪明! ” 90岁到中科大恶补知识 这位“聪明爷爷”2005年中学毕业,后来还曾去安徽农业大学学习。 2012年,90岁的老人家走进了中国科技大学,成了中华文化大学堂年龄最大的一名学员。 每周三上午半天课,每月第三个周日半天课,老人家基本不落,早上6点起床,锻炼身体,然后背着书包上学,还自创了一首歌“大学,大学,我爱你”,上学路上边走边唱。 中华文化大讲堂的主任刘仲林教授介绍,大讲堂是开放性质的,有兴趣的都可以参加。 “中华文化,讲究亲证,实践非常重要。 ”刘仲林教授介绍,吴天雄老人有非常珍贵的实践,有扶贫理念,有学习的精神,他经常在讲堂上拿老人家做榜样。 吴天雄老人虽然年纪大,但坚持写作业,而且用毛笔,他说会一直学下去,还要造点“势子”,让老人家都要“不服老”,都去学习。(郑超 梅竹 汪漪 吴天雄) ”
提高英语的几个tips
“把你的手机,无论是android还是iphone,设置为英文的 把你的PC操作系统,Windows, Ubuntu 或 Mac OS,设置成英文的 看美剧的时候,不要挂载字幕,如果无字幕看美剧确实很卡,可以挂载英文字幕。千万不要挂载中文字幕,或者中英文双语字幕,一旦有母语字幕出现,你基本上就不会用耳朵去听,而是用眼睛去看字幕了,那看美剧纯粹就是浪费时间。我觉得对于中国人来讲,词汇,语法,其实都学的很好,导致很多人喜欢用眼睛看英语,而不去用耳朵听英语,长期这样,耳朵缺少锻炼,没有一对灵敏的耳朵,这就是问题所在。所以看美剧的时候,一定要无字幕,这样可以把眼睛蒙住,把机会让给耳朵。推荐几部我一直在追的美剧,Big Bang(生活大爆炸), Shameless(无耻之徒),Game of thrones(权力的游戏) 使用Google查阅技术资料的时候,尽量用英文关键字搜索,一来可以搜到高质量的英文资料,二来可以锻炼英语。不要用百度搜索技术资料,我已经6年多没有使用百度了。 在找北美工作的过程中,我还没发现有哪位小伙伴是英语上出问题的,即使你说话结结巴巴,不成连贯的语句,一个单词一个单词往外挤,老外还是可以听得懂的。反过来想,假设你在路上碰到一个老外用结结巴巴的中文向你问路,你一般也是听得懂的。 英语是无法短时间提高的,提高英语,要从现在开始,每天无字幕看一小时美剧。 同时推荐一本关于英语学习认知原理的书,《找对英语学习学习方法的第一本书》,很不错,我从这本书找到了很多共鸣。 ”
09
git pull问题一则
“1.出错场景: 协同开发时,我们从远程服务器上pull下代码的时候,出现以下提示信息: Auto Merge Failed; Fix Conflicts and Then Commit the Result. 2.原因分析: 利用git status,输出如下: root@hyk-virt:/etc# git status # On branch ...”
原码, 反码, 补码 用法+详解
“本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ...”
03
使用左手锻炼右脑有科学依据吗?
“有一位朋友在爱问知识人提出了这个问题,使用左手锻炼右脑有科学依据吗? 在总共41条回答中,几乎100%认为有科学依据。我还没见过有什么问题能得到如此一致的意见。 大家提出的科学依据是,右脑控制左手,左脑控制右手。 但是,却没人能够提出直接的依据证明,使用左手可以锻炼右脑。 我们来看看研究大脑的科学家怎么回答这个问题: 洪兰教授认为:没有使用左手锻炼右脑这回事。(洪兰教授是台湾中央大学认知神经科学研究所所长) 那么,洪兰教授给出的原因是什么呢? 原来,人的大脑虽然分为两个半球,但是,两个半球并不是独立的,中间有一个桥梁,叫胼胝体。胼胝体富含神经纤维,能够极快的传递信息,速度可达千分之一秒。 大脑两半球虽然各有分工,但这种分工不是那么泾渭分明的,往往你中有我,我中有你。就拿听音乐这件事来说。我们通常理解,听音乐这不是右脑的事情吗?其实不然,左右脑其实在通力合作。右脑对旋律灵敏,重在感知旋律,但是,听音乐不仅仅在听物理的旋律,还要感知理解那种情绪,意境等,这便是左脑的强项了。可见,左右半脑各有相对优势,只有分工合作才能处理好任务。 伦敦大学教授,《左手、右手:探索不对称的起源》(本书曾获2003年全球科普书最高荣誉安万特奖)一书的作者麦克麦纳斯(Chris McManus)指出,大脑虽然的确分成左右脑,却不是独立运作,“将左右脑分开讨论是很诱人的做法,但它们实际上是两个半脑,原本就设计在一起工作,成就一个柔软、单一、整合型的完整大脑。” 麦克麦纳斯还写道:“半脑模式”(hemisphericity) 的想法完全错误,这种观念认为多数人只使用一侧的大脑来解决问题,所以只要透过适当的训练,就可以自主地转换到另一侧,也就会变得比较有创意、有想像力、无忧无虑和体贴,反正只要我们想得到的优点,都可以达到。…… 西方人的右半脑未被完全开发的观念(当然是和充满神祕的东方相比),与认为多数成人只用了10%的脑力来处理日常事务的都市神话一样,经常出现在日常话题中,甚至是高级知识份子都会谈论,但其实这一点根据都没有。脑部扫描的研究显示,整颗大脑大部份时间都处于活化的状态,也没有任何证据可以支持“整体上,左半脑用得比右半脑多”。 台湾科学家曾志朗教授也认为,人的左右脑主司功能确有差别,左脑较偏重语言,右脑偏重空间方位及想像力,但大脑在执行计算等复杂的活动时,常同时用到左右脑,不可能只用左脑或右脑,也不能简化为多用左手或心算,右脑比较发达,就会比较聪明。 洪兰教授针对七田真推广右脑开发的广告用词表示,去问任何一位脑神经医师都会说不正确。不可能只单独训练一脑,除非切开,广告所谓的传统只注重左脑训练令人不解,所谓训练会产生脑梁连结两脑更没有医生听说过。 有人说大脑有些区域(甚至说高达90%)没有得到开发。洪兰指出,没有这回事。她讲了一个实验的例。 有个实验让猴子动不同手指,找出大脑中控制5根手指的部位;然后将中指截肢,发现原本控制中指的地方,会被控制食指和无名指的地方瓜分掉。 这个实验说明,你即使不用某个部位,你的大脑也不会让相应的那个地方闲置,而是会挪作他用。所以你根本不用忧心于自己还有那么多潜力没开发出来。大脑里没有冗余,全都充分利用。不是用在这里,就是用在那里。 总之,各种开发右脑的说法,无论是用左手也好,还是练某种特殊的记忆也好,都没有证据表明能够单独提高右脑能力。某种意义上说,由于左右脑存在的强大交互性和协同性,我们人类所从事的所有活动都在同时锻炼大脑的左右两部分。说话,饮食,思考,做题,运动,其实都是一种全脑锻炼。只是不同时刻会有不同的主导脑区罢了。因此,单独地所谓开发右脑,既无科学依据也无实际意义。 洪兰教授在《雕塑大脑》一文中对台湾的家长提出了忠告,我想对于大陆的家长也会有所启发。她说: 对于坊间一些脑力开发、潜能开发、右脑补习班等似是而非的赚钱“企业”,我觉得最好的方法就是将正确的知识介绍给国人,让父母在掏荷包时,有资料可以帮助他判断是非。 台湾对于正确的大脑知识非常匱乏,不肖商人利用父母望子成龙的心理,用“不要输在起跑点上”去恐吓父母,让他们把钱掏出来“启发右脑”或“补习创造力”。其实只要对大脑有一点了解,别人就骗不了的。 那么为什么我们的父母会去相信商人的花言巧语,支付巨款去“启动孩子的右脑”呢?更可笑的是,有些书叫父母要让小孩每天用左手写几个字以启发右脑,这不但在学理上完全没有根据,还会造成孩子的挫折感,因为强迫孩子用左手写字就跟强迫原来是左手的孩子改用右手写字一样 ── 用不擅长的那只手来做事是很痛苦的。 ”
01
BitSet学习笔记
“简介 我们称Java平台的BitSet类为位集,该类一般用于存储一个位序列,比如存储标志位。由于位集将位包装在字节里,所以,使用位集比使用Boolean对象的ArrayLlist更加高效。 BitSet比较常用的几个方法: get(i) 获取第i位的状态。如果为“开”状态则返回true;如果为“关”状态则返回false; set(i) 将第i位设置为“开”状态,即true; clear(i) 将第i位设置为“关”状态,即false; set(int bitIndex, boolean value) 将指定位设置为true; 以下是一个简单示例: public class BitSetStudy { public static void main(String[] args) { BitSet ...”
MySQL数据库之数据类型BOOL/BOOLEAN与TINYINT测试总结
“网络上很多人咨询mysql是否提供布尔类型?MySQL数据库确实提供布尔类型,此数据类型的关键字可以写成:布尔类型BOOL或布尔类型BOOLEAN,但是MySQL数据库数据类型的布尔类型是否也像其他数据库产品一样呢?本文揭开mysql布尔类型的真实面目。 (一) 数据类型测试 (1). 布尔类型BOOL/BOOLEAN 与 微整型TINYINT a). 创建测试表结构 CREATE TABLE boolean_test( ID INT NOT NULL AUTO_INCREMENT, Online_Flag BOOL, Lock_Flag BOOLEAN, PRIMARY KEY(ID) )ENGINE=InnoDB ...”
MySQL Show命令总结
“MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法。 a. show tables或show tables from database_name; — 显示当前数据库中所有表的名称。 b. show tables like ‘my_%’; — 显示当前数据库中以my_开头的表。 c. show ...”
3月
31
乐观锁总结
“相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库 性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。 乐观锁介绍 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。而乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本( Version )记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。 示例 如一个金融系统,当某个操作员读取用户的数据,并在读出的用户数据的基础上进行修改时(如更改用户帐户余额),如果采用悲观锁机制,也就意味着整个操作过 程中(从操作员读出数据、开始修改直至提交修改结果的全过程,甚至还包括操作员中途去煮咖啡的时间),数据库记录始终处于加锁状态,可以想见,如果面对几百上千个并发,这样的情况将导致怎样的后果。 乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本 ( Version )记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” ...”
悲观锁总结
“悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 一个典型的倚赖数据库的悲观锁调用: select * from account where name="Erica" for update 这条 sql 语句锁定了 account 表中所有符合检索条件( name="Erica" )的记录。 本次事务提交之前(事务提交时会释放事务过程中的锁),外界无法修改这些记录。 Hibernate ...”
数据库的模式
“学数据库这么久,这些概念还是很模糊,今天再提出来,希望不要忘记了 三级模式结构:外模式、模式和内模式 一、模式(Schema) 定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 理解: ① 一个数据库只有一个模式; ② 是数据库数据在逻辑级上的视图; ③ 数据库模式以某一种数据模型为基础; ④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。 二、外模式(External Schema) 定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 理解: ① 一个数据库可以有多个外模式; ② 外模式就是用户视图; ③ 外模式是保证数据安全性的一个有力措施。 三、内模式(Internal Schema) 定义:也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。 理解: ① 一个数据库只有一个内模式; ② 一个表可能由多个文件组成,如:数据文件、索引文件。 它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法 其目的有: ① 为了减少数据冗余,实现数据共享; ② 为了提高存取效率,改善性能。 =============== 1.概念模式(Conceptual ...”
float,decimal精确度比较
“float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,用于定义货币等要求精确度高的数据。在数据迁移中,float(M,D)是非标准定义,最好不要这样使用。M为精度,D为标度。 mysql> create table t1(c1 float(10,2), c3 decimal(10,2)); Query OK, 0 rows affected (0.02 sec) mysql> insert into ...”
mysql中float、double数据类型的问题
“总结:对于单精度浮点数Float: 当数据范围在+-131072(65536×2)以内的时候,float数据精度是正确的,但是超出这个范围的数据就不稳定,没有发现有相关的参数设置建议:将float改成double或者decimal,两者的差别是double是浮点计算,decimal是定点计算,会得到更精确的数据。 分析如下: 一、浮点数的概念及误差问题: 浮点数是用来表示实数的一种方法,它用 M(尾数) * B( 基数)的E(指数)次方来表示实数,相对于定点数来说,在长度一定的情况下,具有表示数据范围大的特点。但同时也存在误差问题,这就是著名的浮点数精度问题! 浮点数有多种实现方法,计算机中浮点数的实现大都遵从 IEEE754 标准,IEEE754 规定了单精度浮点数和双精度浮点数两种规格,单精度浮点数用4字节(32bit)表示浮点数,格式是:1位符号位 8位表示指数 23位表示尾数;双精度浮点数8字节(64bit)表示实数,格式是:1位符号位 11位表示指数 52位表示尾数。同时,IEEE754标准还对尾数的格式做了规范:d.dddddd...,小数点左面只有1位且不能为零,计算机内部是二进制,因此,尾数小数点左面部分总是1。显然,这个1可以省去,以提高尾数的精度。由上可知,单精度浮点数的尾数是用24bit表示的,双精度浮点数的尾数是用53bit表示的,转换成十进制: 2^24 ...”
27
Comparable与Comparator总结
“Comparable 和 Comparator 都是用来实现集合中元素的比较、排序的。 只是 Comparable 是在集合内部定义的方法实现的排序,而Comparator 是在集合外部实现的排序, 所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。 Comparator位于包java.util下,而Comparable位于包 java.lang下 一.Comparable 是一个对象,本身就已经支持自比较所需要实现的接口(如 String、Integer 自己就可以完成比较大小操作,已经实现了Comparable接口) 自定义的类要在加入list容器中后能够排序,可以实现Comparable接口,在用Collections类的sort方法排序时,如果不指定Comparator,那么就以自然顺序排序,这里的自然顺序就是实现Comparable接口设定的排序方式。 二.Comparator ...”
java排序总结
“简单类型的排序 简单类型不外是byte, char, short, int, long, float, double等数据类型,这些类型不能放在聚集中,只能使用数组。java.util.Arrays方法提供了对这些类型的sort方法(实际上还有很多其他有用的方法),下面是对一个简单的int数组排序: int + " "); } System.out.println(); Arrays.sort(arr); System.out.print("after sort: "); for (int i = ...”
java进制互换方法总结
“总结一下java进制互换的方法。 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.valueOf("876",8).toString() 二进制转十进制 Integer.valueOf("0101",2).toString() 有什么方法可以直接将2,8,16进制直接转换为10进制的吗? java.lang.Integer类 parseInt(String s, int radix) 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。 examples from jdk: parseInt("0", 10) returns 0 parseInt("473", 10) returns 473 parseInt("-0", ...”
java位运算详解
“Java 定义的位运算(bitwise operators )直接对整数类型的位进行操作,这些整数类型包括long,int,short,char,and byte 。 运算符 结果 ~ 按位非(NOT)(一元运算) & 按位与(AND) | 按位或(OR) ^ 按位异或(XOR) >> 右移 >>> 右移,左边空出的位以0填充 >= 右移赋值 >>>= 右移赋值,左边空出的位以0填充 > ...”
关于java中char,byte,short的移位操作
“在Think in Java中有这么一段话“对char,byte或者short进行移位处理,那么在移位进行之前,它们会自动转换成一个int。只有右侧的5个低位才会有用。这样可防止我们在一个int数里移动不切实际的位数。若对一个long值进行处理,最后得到的结果也是long。此时只会用到右侧的6个低位,防止移动超过long值里现成的位数。” 对上面那段话的理解是:移位操作符操作的运算对象是二进制的“位”,int类型是32位也就是2的5次幂 !如果移32位以上,那么原来的数的信息会全部丢失,这样也就没有什么意义了!所以上面的“只有右侧的5个低位才会有用”说的是:移位操作符右端的那个数(化成二进制)的低5位才有用,即 X < ”
Java 位运算总结
“一,Java 位运算 1.表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。  (1)正数的最高位为0,其余各位代表数值本身(二进制数)。  (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。 2.位运算符 位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。位运算符可以分为逻辑运算符(包括~、&、|和^)及移位运算符(包括>>、>)。 1)左移位运算符()则将运算符左边的运算对象向右移动运算符右侧指定的位数。 “有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。 3)Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C或C++没有的。 4)若对char,byte或者short进行移位处理,那么在移位进行之前,它们会自动转换成一个int。只有右侧的5个低位才会用到。这样可防止我们在一个int数里移动不切实际的位数。若对一个long值进行处理,最后得到的结果也是long。此时只会用到右侧的6个低位,防止移动超过long值里现成的位数。但在进行“无符号”右移位时,也可能遇到一个问题。若对byte或short值进行右移位运算,得到的可能不是正确的结果(Java 1.0和Java 1.1特别突出)。它们会自动转换成int类型,并进行右移位。但“零扩展”不会发生,所以在那些情况下会得到-1的结果。 在进行位运算时,需要注意以下几点。   (1)>>>和>>的区别是:在执行运算时,>>>运算符的操作数高位补0,而>>运算符的操作数高位移入原来高位的值。   (2)右移一位相当于除以2,左移一位(在不溢出的情况下)相当于乘以2;移位运算速度高于乘除运算。   (3)若进行位逻辑运算的两个操作数的数据长度不相同,则返回值应该是数据长度较长的数据类型。   (4)按位异或可以不使用临时变量完成两个值的交换,也可以使某个整型数的特定位的值翻转。   (5)按位与运算可以用来屏蔽特定的位,也可以用来取某个数型数中某些特定的位。   (6)按位或运算可以用来对某个整型数的特定位的值置l。 3.位运算符的优先级   ~的优先级最高,其次是和>>>,再次是&,然后是^,优先级最低的是|。 二, 按位异或运算符^ 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例如: 10100001^00010001=10110000 0^0=0,0^1=1 0异或任何数=任何数 1^0=1,1^1=0 1异或任何数-任何数取反 任何数异或自己=把自己置0 (1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。 10100001^ 00000110= 10100111 相当于: 1010 0001 ^ 0x06 ...”
按位与、或、异或等运算方法
“按位与运算符(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则: 0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0 例如:3&5 即 ...”
java中的位运算符和运算符优先级
“1、位运算符 一共3个移位运算符,左移位和无符号移位>>>。左移位若值为正则在高位插入0,若值为负则在高位插入1。无符号右移位>>>无论正负都在高位处插入0。 ~: 非运算符,对各位取反。 &: 与运算符,对两个整型操作数中对应位执行布尔代数,两个位都为1时输出1,否则0。(这个有问题吧。。。。) |: 或运算符,对两个整型操作数中对应位执行布尔代数,两个位都为0时输出0,否则1。 ^: 异或运算符,对两个整型操作数中对应位执行布尔代数,两个位相等0,不等1。 如: 以下哪种运算正确: A. 1010 0000 0000 0000 0000 0000 0000 0000 >> 4 gives ...”
java基本位操作
“~ 按位非(NOT) & 按位与(AND) | 按位或(OR) ^ 按位异或(XOR) >> 右移 >>> 无符号右移 前面几个都非常简单,主要是移位操作比较容易出错. 首先要搞清楚参与运算的数的位数,如int的是32位。long的是64位。 如int i = 1; i的二进制原码表示为: 00000000000000000000000000000001 long l = 1; l的二进制原码表示为: 0000000000000000000000000000000000000000000000000000000000000001 二、 正数没有反码、补码,也可以说正数的反码、补码跟原码一样。 负数的反码为原码逐位取反, 如int i = ...”
21
最新PMP考场独家秘笈
“PMP考试对于绝大多少考生来说,都是第一次。因为不了解,会感觉很神秘因而很担心,了解是消除担心的不二法门。 为了大家了解PMP考试情景,以淡定面对并有充分临场发挥,我做为一个身经百战的老资格,根据自己的切身体会,对PMP考试临场注意事项总结如下: 一、考试前一天。 1、 如果自己家离考场很远,建议头一天晚上就住在考试附近的酒店(北京上海考场附近的酒店都很紧张,要尽早预订),省得一大早起床赶路,碰到堵车还会迟到,影响考试情绪。2、 有条件的考生,头一天去考场认清地点、熟悉一下路线更好。 3、 早点睡,不要熬夜看书,休息好,保证充足睡眠。 二、什么时候到考场。 1、 考试当天,早上8:00——8:30时间段到考场即可,当然再早一点也没有关系,但不要晚,因为一般老师会在8点30-40分前后开始宣读考试注意事项、考试要求、核对座位号、发试卷等等。 2、 考试开始之后,是否还能进考场,新的规定不太清楚。尽量不要迟到。 三、带什么 1、 参加考试原则上,只需要带身份证、准考证即可。 2、 监考机构会提供铅笔、橡皮、计算器、卷笔刀等考试用品。 3、 ...”
19
焦点小组访谈法
“一、 关于焦点小组(Focus Group)访谈法 焦点小组访谈法源于精神病医生所用的群体疗法。目前的焦点小组一般由8-12人组成,在一名主持人的引导下对某一主题或观念进行深入讨论。焦点小组调研的目的:在于了解和理解人们心中的想法及其原因。调研的关键是,使参与者对主题进行充分和详尽的讨论。调研的意义在于了解他们对一种产品、观念、想法或组织的看法,了解所调研的事物与他们的生活的契合程度,以及在感情上的融合程度。 焦点小组访谈法远不止是一问一答式的面谈。它们之间的区别也就是“群体动力”和“群体访谈”之间的区别。群体动力所提供的互动作用是焦点小组访谈法成功的关键;正是因为互动作用才组织一个小组而不是进行个人面谈。使用群体会议的一个关键假设是,一个人的反应会成为对其他人的刺激,从而可以观察到受试者的相互作用,这种相互作用会产生]比同样数量的人作单独陈诉时所能提供的更多的信息。 二、 实施焦点小组访谈法的过程 一) 、准备焦点小组访谈 1、 环境:一般是有一个焦点小组测试室,主要设备应包括,话筒、单向镜、室温控制、摄像机。对调研者来说,焦点小组访谈法是一种了解消费者动机的理想方法。 2、 征选参与者   一般是在商业街上随机地拦住一些人或是随机选择一些电话号码。征选是应极力避免在小组中出现重复的或“职业”性受访者。一个小组一般包括8名 参与者。注意,并不存在理想的参与人数,这应根据小组的类型而定,经历性的小组比分析性的小组所需的受访者要多。 另外,经调查发现,人们同意参加焦点小组的动机依次是:报酬、对话题感兴趣、有空闲时间、焦点小组有意思、受访者对产品知道的很多、好奇、它提供了一个表达的机会。 二)、选择主持人 拥有合格的受访者和一个优秀的主持人是焦点小组访谈法成功的关键因素。焦点小组对主持人的要求是:第一、主持人必须能恰当的组织一个小组。第二、主持人必须具有良好的商务技巧,以便有效的与委托商的员工进行互动。 不仅对主持人的培训和主持人自身的准备是非常重要的,而且委托商的员工在观察小组之前也必须做好充分的准备。 三)、编制讨论指南 编制讨论指南一般采用团对协作法。讨论指南要保证按一定顺序逐一讨论所有突出的话题。讨论指南是一份关于小组会中所要涉及的话题概要。主持人编制的讨论指南一般包括三个阶段:首先,建立友好关系、解释小组中的规则,并提出讨论的个体。第二阶段是由主持人激发深入的讨论。第三阶段是总结重要的结论,衡量信任和承诺的限度。 四)、编写焦点小组访谈报告 访谈结束主持人可做一次口头报告。 正式的报告,开头通常解释调研目的,申明所调查的主要问题,描述小组参与者的个人情况,并说明征选参与者的过程。接着,总结调研发现,并提出建议,通常为2-3页的篇幅。如果小组成员的交谈内容经过了精心归类,那么组织报告的主体部分也就很容易了。先列出第一个主题,然后总结对这一主题的重要观点,最后使用小组成员的真实记录(逐字逐句的记录)进一步阐明这些主要观点。以同样的方式一一总结所有的主题。 三、 焦点小组访谈法的优缺点 优点: 1、 参与者之间的互动作用可以激发新的思考和想法。 2、 可以在单向镜后观察顾客和期望顾客。 3、 通常比其他方法容易执行 缺点: 问题在于焦点小组所说的观点并不一定都具有典型性。实际上应做的是先进行定性调研,然后再进行定量调研。 焦点小组访谈法的最大的潜在不足在于群体会谈本身。主持人是整个互动过程的一部分,这就决定其不能有任何的偏见,个人风格的不同也会使结果产生偏差,另外也与受访者本身有关。 此外,在跨国环境下进行焦点小组访谈应该注意的问题: 1、 社会文化差异 2、 语言差异 3、 商务习惯上的差异 4、 ...”
13
项目管理中冲突的六种解决方法
“解决项目冲突的主要责任在于项目经理,项目经理可以使用以下六种方法来解决冲突: 面对/解决问题(confronting/problem solving):通过审查备选方案,把冲突当作需要解决的问题来处理;需要以“取舍”的态度进行公开对话。问题解决就是冲突各方一起积极地定义问题、收集问题的信息、制定解决方案,最后直到选择一个最合适的方案来解决冲突,此时为双赢或多赢。但在这个过程中,需要公开地协商,这是冲突管理中最理想的一种方法。 合作(collaborating):综合考虑不同的观点和意见,引导各方达成一致意见并加以遵守;集合多方的观点和意见,得出一个多数人接受和承诺的冲突解决方案。 妥协(compromising):寻找能让所有当事人都在一定程度上满意的方案;妥协就是冲突的各方协商并且寻找一种能够使冲突各方都有一定程度满意、但冲突各方没有任何一方完全满意、是一种都做一些让步的冲突解决方法。 这是一种“双输”的方法。 缓解/包容(smoothing/accommodating):强调一致而非差异,可简记为求同存异;求同存异的方法就是冲突各方都关注他们一致的一面,而淡化不一致的一面。一般求同存异要求保持一种友好的气氛,但是回避了解决冲突的根源。也就是让大家都冷静下来,先把工作做完。 撤退/回避(withdrawing/avoiding):撤退就是把眼前的或潜在的冲突搁置起来,从实际或潜在冲突中退出。 强迫(forcing):以牺牲其他方为代价,推行某一方的观点;只提供赢—输方案。强制就是以牺牲其他各方的观点为代价,强制采纳一方的观点。一般只适用于赢一输这样的零和游戏情景里。PMPBOK认为这是最差的一种冲突解决方法,但某些场景下却又不得不使用该方法以解决问题并推动项目进展。 在不同项目场景下,面对不同的冲突应该使用不同的解决方法。而对冲突方法的判定,既要考虑冲突解决的结果,也要考虑冲突解决的过程。 举个例子,小两口商量晚饭吃什么,老公想吃包子,老婆想吃面条,于是冲突出现,作为小两口的朋友,我们使用前面所提到的6种冲突解决方法来帮助他们解决晚饭问题。 面对/解决问题 两个人坐下来,平心静气的讨论一下膳食均衡及营养问题,列出备选的晚餐方案:1、面条;2、包子;3、披萨;4、馒头+红烧肉。最终讨论决定,晚上吃馒头+红烧肉。能够取得这样的结果,是因为冲突的双方彼此信任,认同对方的能力及目标。这是最好的冲突解决方法。 合作 两人一商量,今晚吃面条,明晚吃包子。 妥协 晚上做面条,同时叫外卖送点包子。都能吃到自己喜欢的东西。 缓解/包容: 一致的地方是都想吃面食,不一致的地方是男方想吃带馅的,女方想吃带汤的,所以最终决定:吃饺子。 撤退/回避 既然决定不了那就先把问题搁置,男方去上上网,女方去看看电视,等会儿继续讨论晚上吃什么。 强制: 这个好理解,必须吃面条,不然女方就行使财政大权,剥夺男方每月零花钱。 接下来做几道测试题,巩固一下所学知识。 1、如果冲突双方虽不配合但也不固执,应该使用下列哪一项冲突解决技术 A. 回避 B. 面对 C. 妥协 D. 缓解 2、在团队会议中,总建筑师指出一座新建筑物的严重设计缺陷,并提供了新的设计,许多团队成员也都提出其他选择方案,不过,总建筑师却不愿意考虑这些方案。这属于哪种冲突解决方法 A. 妥协 B. 面对 C. 强制 D. 避免 3、项目经理说:“我现在不能处理这件事。”此时,该项目经理用的何种冲突解决技巧? A. 解决问题 B. 强迫 C. 撤退 D. 妥协 4、项目预测显示项目将在测试阶段落后于进度,由于产品上市的时间是强制性的,在项目开始时,这个事件就被记录为已知风险。由于目前项目尚处于分析阶段,项目经理决定将测试任务外包,并开始与选定的供应商讨论。这是哪个风险策略的事例 A. ...”
11
制定工作分解结构的方法
“制定工作分解结构的方法多种多样,主要包括类比法、自上而下法、自下而上法和使用指导方针等等。 1.类比法 类比法就是以一个类似项目的WBS为基础,制定本项目的工作分解结构。例如 ABC飞机制造公司,曾设计制造多种类型的大型客机,当他们计划投入设计生产某种新型战斗机时,就可以使用以往制造大型客机而设计的子系统。以从前的子系统为基础,开始新项目的WBS的编制。比如,该WBS的第一层中有飞机机身顶,该项又包括了飞机前身、飞机中部、飞机后身和机翼等第二层的多个子项。 这种一般性的产品导向的WBS就成为新飞机项目的范围定义和新型战斗机成本估算等工作的起点。 2.自上而下法 自上而下法常常被视为构建WBS的常规方法,即从项目最大的单位开始,逐步将它们分解成下一级的多个子项。这个过程就是要不断增加级数,细化工作任务。 这种方法对项目经理来说,可以说是最佳方法,因为他们具备广泛的技术知识和对项目的整体视角。 3.自下而上法 自下而上法,是要让项目团队成员从一开始就尽可能的确定项目有关的各项具体任务,然后将各项具体任务进行整合,并归总到一个整体活动或WBS的上一级内容当中去。仍以ABC飞机制造公司设计制造新型战斗机为例,用这种方法,则不是开始就考察WBS制定的指导方针或是参考其他类似项目的WBS,而是尽可能详细的列出那些项目团队成员认为完成项目需要做的任务。在列出详细的任务清单后,就开始对所有工作进行分类,以便于将这些详细的工作归入上一级的大项中。比如说,项目团队某小组中的商业分析人员会知道他们必须确定用户对项目的要求以及该项目的内容要求;工程师们也会知道他们必须确定对系统的要求和对发动机的要求。于是,该小组可能会将这四项任务都归入到战斗机制造项目的概念设计这个总项中去。 自下而上法一般都很费时,但这种方法对于WBS的创建来说,效果特别好。项目经理经常对那些全新系统或方法的项目采用这种方法,或者用该法来促进全员参与或项目团队的协作。 4.使用指导方针 如果存在WBS的指导方针,那就必须遵循这些方针。如前面我们提到的美国国防部为国防装备项目定义的许多工作分解结构标准。许多DOD(国防部)项目都要求承包商按照国防部提供的WBS模板提交他们的项目建议书。这些建议书必须包括针对WBS中每一项任务的成本估算,既有明细估算项,也有归总估算项。项目整体的成本估算必须是通过归总WBS底层各项任务成本而得到的。当国防部有关人员对成本计划进行评审时,他们必须将承包商的成本估算与国防部的成本估算进行对比,如果某项WBS任务成本有很大的出入,那一般就意味着对要做的工作任务还没搞清楚。 我们来看一下美国空军的一个自动控制项目。在20世纪80年代中期,美国空军要建立一个本地在线网络系统(LONS),以便为15个空军指挥基地提供自动控制系统。于是就需要征寻该系统的开发计划。这个两亿五千万美元的项目包括提供必要的硬件设施,为诸如合同、技术规范、建议邀请书等文档的共享开发应用软件等等。空军建议书指导方针包括这样一个WBS模板,主要承包商在准备其成本建议书时必须遵循这一模板。这个WBS的第一级主要包括硬件、软件开发、培训和项目管理等几项内容。硬件项所包含的第二层子项则主要有服务器、工作站、打印机和网络硬件设施等。空军有关人员会对照他们内部的成本估算,该估算也同样是以这个WBS为基础的考察承包商的成本建议书。因此,拥有一个规定的WBS既有助于承包商准备他们的成本建议书,也有利于空军方面对承包商们的评价工作。 ”
2月
14
共享锁和排它锁
“共享锁(Shared Lock)也叫做读锁(Read Lock),排它锁(Exclusive Lock)也叫做写锁(Write Lock)。 某一资源的读锁是共享的,或是说互补阻塞的。在同一时间,多个用户可以读取同一资源,二互不干扰。 写锁是排他的,也就是说,一个写锁会阻塞其他的读锁和写锁,这是出于安全策略的考虑,在给定的时间里,只有一个用户能写入资源,以防止用户在写操作的同事其他用户读取同一资源。 共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。 获准共享锁的事务只能读取数据,不能修改数据。 排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能在对A加任何类型的封锁。 获准排他锁的事务既能读取数据,也能修改数据。 数据库死锁的原因:若干事务相互等待对方释放封锁,就陷入了无限期等待状态,系统进入死锁。 预防数据库死锁的方法: 1、要求一个事务必须一次性封锁所需要的所有数据(要么全成功,要么全部成功) 2、规定封锁数据的顺序,所有事务必须按照这个顺序实行封锁 解除数据库死锁的方法: 允许死锁发生,然后解除它,如果发现死锁,则将其中一个代价较小的事务撤销,回滚这个事务,并释放此事务持有的封锁,使其他事务继续进行。 ”
Eclipse重新加载插件-clean方法
“Eclipse是一款很好的IDE工具,像JAVA开发都会首选它。 只要加上特定的插件,它就增加某项功能,而且安装非常方便。 但是偶尔我们安装了插件后,eclipse没反应,或者启动报错,这时我们就可以采用-clean方法清除原来的插件,重新加载一次,具体方法如下: 方法一: 开始-->运行: 输入cmd回车 ...”
13
QUIC简介
“QUIC,即Quick UDP Internet Connection,类似于SPDY,同样也是由Google公司在现有已存协议之上进行了扩展设计,而旨在减少网络延迟。之前我曾介绍过SPDY的相关信息,SPDY工作在应用层,而这里的QUIC工作在传输层。虽然QUIC的名字暗示着它类似于一个被修改过的UDP协议,但它的目标却是优化或替换那些需要使用面向链接的应用程序中所采用的TCP协议。 因为光速不变,而且抛开网络繁忙这些额外整体因素(因为我们这里考虑的是局部,要做的目标也是局部优化,因此整体因素属于更上一层的研究),那么在网络上,任意确定两端之间的往返时延RTTs(round trip times)基本上是固定的,因此,减少单个连接网络延迟的唯一办法就是让建立一条连接所需耗费的RTTs个数尽量的少。从这个需求可以看出,对于TCP协议本身而言,已经很难做到对应的优化了,一方面是因为TCP所要求的握手协议、拥塞控制等固定了其所必须的RTTs个数,而另一方面是因为TCP实现于操作系统协议栈内,要改变实际用户的操作系统必定是相当难的。 QUIC尝试解决那些SPDY无法涵盖的问题点。首先是TCP对头阻塞,其次是TCP拥塞阀门阻塞,也就是这两个点导致的SPDY优势无法充分发挥。这很好理解,我们知道SPDY是跑在TCP协议之上的,如果瓶颈在TCP这一层,那么上层做再多的优化都是白搭。 另外,SPDY采用的SSL/TLS也会带来两个性能问题:1,恢复已断的开会话将引进一个额外的握手,而这纯粹只是SSL/TLS协议的设计如此,并非安全或其他什么特别的原因。2,对历史数据包的解决需要按顺序进行,这将导致延迟数据包所带来的延迟影响更大。因此,QUIC一开始就被设计有类似于TLS加密这样的功能,从而避免对SSL/TLS的使用,减少对应的开销。 在此之前,Google工程师已经针对这些具体问题提出了一些解决方案。比如TCP Fast Open(TFO)可用于减少连接到以前已经访问过的相同服务器的RTTs。QUIC揉合了这些旧解决方案,以及一些新的方案,用于重点解决一个应用场景,即从同一台服务器,利用携带多个数据流的TLS加密连接传输数据的Web应用程序服务。 简单来看,QUIC的目标是在UDP协议之上提供一种可建立面向链接的服务。嗯,听上去不错,虽然我对具体细节也是茫然不清,但貌似看懂了它的意思是想针对具体的场景,结合传统TCP和UDP协议两者各自的优点,合二为一。 http://blog.chromium.org/2013/06/experimenting-with-quic.html http://lwn.net/Articles/558826/ ”
Mysql事务以及加锁机制
“事务的特征ACID,即原子性、一致性、隔离性、持久性。 原子性(Atomic)保证一个事务为一个最小的单元,内部不可分割; 一致性(Consistency)保证事务中的每个操作线程不可单独提交,成功则一起提交,不成功则事务回滚; 隔离性(Isolation)保证不同事务间看到的数据视图相互独立,相互隔离(隔离级别可设置); 持久性(Durability)保证事务提交后数据会持久的保存下来; sql规范定义的事务的隔离级别: 1.READ UNCOMMITTED(读取未提交内容) 所有事务可以看到未提交事务的执行结果,本隔离级别很少用到实际应用中,读取未提交的数据,又称为“脏读”。 2.READ COMMITTED(读取提交内容) 大多数数据库的默认隔离级别是此级别,但不是mysql默认的。一个事务在开始的时候只能看见已提交事务所做的改变。一个事务从开始到提交前所做的任何改变都是不可见的,除非提交。这种隔离级别也称为不可重复读。 3.REPEATABLE READ(可重复读) 此隔离级别是为了解决可重复读隔离级别导致的问题即一个事务多个实例并发读取数据时会看到不同的结果。此隔离级别不会看到其他事务提交后的结果,即事务即使提交了我也看不到。此级别也称为“幻读”。 4.SERIALIZABLE(可串行化) 可串行化是最高的隔离级别,它通过强制事务排序,使之不可重读,解决了幻读的问题。此隔离级别会在每个读的数据行上加共享锁,使用这种隔离级别会产生大量的超时现象,一般实际开发中不会用到。 mysql加锁机制 : 根据类型可分为共享锁(SHARED LOCK)和排他锁(EXCLUSIVE LOCK)或者叫读锁(READ LOCK)和写锁(WRITE LOCK)。 根据粒度划分又分表锁和行锁。表锁由数据库服务器实现,行锁由存储引擎实现。 mysql提供了3种事务型存储引擎,InnDB、NDB Cluster和Falcon。 一个事务执行的任何过程中都可以获得锁,但是只有事务提交或回滚的时候才释放这些锁。这些都是隐式锁定,也可以显式锁定,InnoDB支持显式锁定,例如: SELECT .... LOCK IN SHARE MODE ...”
11
采访Java Collection的作者Joshua Bloch
“想必用Java的人都用过JDK的容器类吧,什么List, Set, Map啦。每天这些代码在全世界成千上万的JVM里面运行,每天数以万记的程序员在使用这些类。你知道这些这么cool的代码是谁写的吗?是Joshua Bloch。他以前是在Sun工作,现在跳到Google了,Google是无敌了。他可是大师级别的人物了。虽说他是大师但是人家也在写代码,所以这样的人的文章必定是脚踏实地。而非有些只会动嘴皮子,开会的时候在白板上画出一堆框框线线然后让别人来coding的“专家”。虽然自己写了多年Java也设计了不少东西,但是自己从他的经验和设计上还也实实在在受到了不小的帮助。虽说这是01年的采访,但是内容仍旧值得一读,我把这篇采访翻译了一下(Joshua Bloch: A conversation about design - JavaWorld)。下面就来听听别人采访他关于设计方面的对话。作为Java开发者,我把自己的注释用/**/来标示:) 为什么要设计API? Bill Venners:在你的Effective Java Language Programming ...”
解析Java对象的equals和hashCode的使用
“在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个。在多数情况 下,这两个函数是不用考虑的,直接使用它们的默认设计就可以了。但是在一些情况下,这两个函数最好是自己设计,才能确保整个程序的正常运行。最常见的是当 一个对象被加入收集对象(collection object)时,这两个函数必须自己设计。更细化的定义是:如果你想将一个对象A放入另一个收集对象B里,或者使用这个对象A为查找一个元对象在收集对象B里位置的钥匙,并支持是否容纳,删除收集对象B里的元对象这样的操作,那么,equals()和hashCode()函数必须开发者自己定义。其他情 况下,这两个函数是不需要定义的。 equals 它是用于进行两个对象的比较的,是对象内容的比较,当然也能用于进行对象参阅值的比较。什么是对象参阅值的比较?就是两个参阅变量的值得比较,我们都知道参阅变量的值其实就是一个数字,这个数字可以看成是鉴别不同对象的代号。两个对象参阅值的比较,就是两个数字的比较,两个代号的比较。这种比较是默认的对象比较方式,在Object这个对象中,这种方式就已经设计好了。所以你也不用自己来重写,浪费不必要的时间。 对象内容的比较才是设计equals()的真正目的,Java语言对equals()的要求如下,这些要求是必须遵循的。否则,你就不该浪费时间: 对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。 反射性:x.equals(x)必须返回是“true”。 类推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。 还有一致性:如果x.equals(y)返回是“true”,只要x和y内容一直不变,不管你重复x.equals(y)多少次,返回都是 “true”。 任何情况下,x.equals(null),永远返回是“false”;x.equals(和x不同类型的对象)永远返回是“false”。 hashCode 这 个函数返回的就是一个用来进行赫希操作的整型代号,请不要把这个代号和前面所说的参阅变量所代表的代号弄混了。后者不仅仅是个代号还具有在内存中才查找对象的位置的功能。hashCode()所返回的值是用来分类对象在一些特定的收集对象中的位置。这些对象是HashMap, Hashtable, HashSet,等等。这个函数和上面的equals()函数必须自己设计,用来协助HashMap, Hashtable, HashSet,等等对自己所收集的大量对象进行搜寻和定位。 这些收集对象究竟如何工作的,想象每个元对象hashCode是一个箱子的编码,按照编码,每个元对象就是根据hashCode()提供的代号归入相应的箱子里。所有的箱子加起来就是一个HashSet,HashMap,或 Hashtable对象,我们需要寻找一个元对象时,先看它的代码,就是hashCode()返回的整型值,这样我们找到它所在的箱子,然后在箱子里,每个元对象都拿出来一个个和我们要找的对象进行对比,如果两个对象的内容相等,我们的搜寻也就结束。这种操作需要两个重要的信息,一是对象的 hashCode(),还有一个是对象内容对比的结果。 hashCode()的返回值和equals()的关系如下: 如果x.equals(y)返回“true”,那么x和y的hashCode()必须相等。 如果x.equals(y)返回“false”,那么x和y的hashCode()有可能相等,也有可能不等。 解析Java对象的equals和hashCode的使用结束。 ”
为什么覆写equals的时候一定要覆写hashCode
“经常在论坛上面看到覆写hashCode函数的问题,很多情况下是一些开发者不了解hash code,或者和equals一起用的时候不太清楚为啥一定要覆写hashCode。 对于hash code的理论我不想多说,这个话题太大。那些“对称性”,“传递性”的规则网上有无数的文章来描述。我只想说用hash code的原因只有一个:效率。理论的说法它的复杂度只有O(1)。试想我们把元素放在线性表里面,每次要找一个元素必须从头一个一个的找它的复杂度有O(n)。如果放在平衡二叉树,复杂度也有O(log n)。 为啥很多地方说“覆写equals的时候一定要覆写hashCode”。说到这里我知道很多人知道有个原则:如果a.equals(b)那么要确保a.hashCode()==b.hashCode()。为什么?hashCode和我写的程序的业务逻辑毫无关系,为啥我要override? 要我说如果你的class永远不可能放在hash code为基础的容器内,不必劳神,您真的不必override hashCode() :) 说得准确一点放在HashMap和Hashtable里面如果是作为value而不是作为key的话也是不必override hashCode了。至于HashSet,实际上它只是忽略value的HashMap,每次HashSet.add(o)其实就是HashMap.put(o, dummyObject)。 那为什么放到Hash容器里面要overide hashCode呢?因为每次get的时候HashMap既要看equals是不是true也要看hash code是不是一致,put的时候也是要看equals和hash code。 如果说到这里您还是不太明白,咱就举个例子: 譬如把一个自己定义的class Foo{...}作为key放到HashMap。实际上HashMap也是把数据存在一个数组里面,所以在put函数里面,HashMap会调Foo.hashCode()算出作为这个元素在数组里面的下标,然后把key和value封装成一个对象放到数组。等一下,万一2个对象算出来的hash ...”
EmEditor及其替代
“话说EmEditor我用了好几年。在我看来对于非专业程序员,EmEditor可以称得上是Win平台下最为完美的编辑器,因为它在速度、功能、易用性和扩展性上都达到了相当平衡的高水准。 EmEditor的功能和特点:标签页编辑、语法着色和自动完成、文本格式操作、正则表达式查找替换,以上都已经是主流文本编辑器所必备的特征了;大文件支持;原生Unicode支持、内码检测和转换;外部工具扩展;支持宏和脚本、插件,可以自己编写;…… 我最看重的是EmEditor的轻快和内码检测转换的强大。我用过超过两星期的文本编辑器包括UltraEditor、PSPad、Notepad++、ConText之类的,在老机器上EmEditor打开文件的速度是仅次于记事本的第二快,因此很自然地,不管我试用什么编辑器,文件关联总是雷打不动的EmEditor。至于Unicode支持和多内码则是EmEditor的独门绝技。EmEditor在打开文本文档的时候能够自动检测文件的编码格式,给出最有可能的格式和相应的编码预览,这个功能在处理多国语言,不清楚文件实际编码方式的时候非常有用。只要系统中安装了相应的code page和unicode字体,EmEditor支持编辑和保存任意编码的文本。编码的转换也是非常方便的,直接使用reload as就能实现on-the-fly recoding,跟浏览器没有什么两样。而其他的文本编辑器就没有类似的功能,以上那些宣称支持Unicode的编辑器实际上要么需要手动调整code page和字体,要么只支持保存为UTF-8,16等格式而无法存为任意格式。 硬要说EmEditor的不足的话,比如虽然也有一定的辅助编程的能力,但在本质上EmEditor是一般向的编辑器。跟上面那些程序员向编辑器不同,EmEditor没有工程管理、不支持拼写检查、不支持编译、没有16进制编辑能力。这也是它的定位所造成的。作为一个日常使用的一般向编辑器,就算Win平台的Vim和Emacs都不会比EmEditor更好。特别的,这样一个完美的编辑器不是由大公司或是开源团队,而是个人开发和维护的,使人不得不佩服作者木村丰(可以去官网上的讨论区看看,bug报告、使用讨论的每一个问题都是这个人在回帖)。 之前一直用的破解版,进入9版之后,EmEditor加入了在线key校验使得算号器失效了(patch主程序好像没作用),我很认真地考虑是否要花300元买一个正式的licence。不过在这之前,还是找一下有没有功能上接近免费软件。于是发现了一个劣化替代品——MadEdit。实际上早先我也下载过这个编辑器,不过由于开发者对于程序图标的审美观与我分歧太大,我根本没碰过它。 MadEdit是一个开源跨平台文本编辑器,支持Win、Linux和FreeBSD。Win平台的MadEdit无需安装,解压即可运行。打开文件的速度比EmEditor略慢,不过作文件关联属于还可以接受的范畴。在我最关心的内码检测和转换方面,MadEdit的功能与EmEditor不相上下,某些功能还犹有过之。 MadEdit的优点:小巧快速,整个程序文件夹不超过2M;Unicode支持,自动检测内码,可以编辑和保存任意编码格式,支持实时编码转换;带有16进制编辑模式;界面语言支持简繁日英意;开源。 在转码功能上,MadEdit有一个很特别的功能:支持日文汉字、简体汉字和繁体汉字的互转。同一个汉字在不同的书写体系中有不同的书写方式(当然编码也不同),MadEdit可以在文件编码一定的情况下改变汉字的书写形式,如果出现了目标编码页不包括的汉字,MadEdit会将其标注为U+XXXXh的Unicode越界形式便于恢复,不会丢失字符信息。 这个功能有时是很实用的,比如原来我在轻国下的日文小说,上传者很秀逗地特意把日文汉字预先替换成简体汉字,然后转成GB码。而我PDA上的青空文库体阅读软件只能读取Shift-JIS编码的青空文库格式文本。利用EmEditor来做GB到Shift-JIS的转码,由于Shift-JIS不包括某些简体汉字,这些汉字全部被转换为“?”。利用MadEdit就能轻松地转码。 不过MadEdit还算不上成熟的编辑器,它的缺点很明显:还存在很多bug;作为开源软件却没有内建扩展功能,没有宏、插件、不支持外部工具;连开发文档都没有;还有,程序图标实在是太过小众了…… 总而言之MadEdit是一个有替代EmEditor潜力的开源编辑器,我准备继续用一段时间,看它能否打消我在EmEditor上花300元的冲动。 软件下载和截图:http://madedit.sourceforge.net/ ”
10
使用 tracert 跟踪网路连接
“Tracert(跟踪路由)是路由跟踪公用程式,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP错误消息来确定从一个主机到网路上其他主机的路由。 Tracert 工作原理 透过向目标发送不同 IP 生存时间 (TTL) ...”
route 命令详解
“概述 route命令主要用来管理本机路由表,可以查看,添加、修改或删除路由表条目。该命令在win2000以上操作系统都可使用。 命令语法 route 参数说明 Command: 可以是print(列出当前路由表)、delete(删除路由表条目)、add(添加路由表条目)和change(修改已有路由表条目)这些命令之一。 -f: 清空所有路由表的网关条目。如果与某个route指令一块使用,会在执行该命令前先清空路由表。 -p: 这个选项与add命令一块使用时用于添加永久的静态路由表条目。如果没有这个参数添加的路由表条目在系统重启后会丢失。如果其它命令使用 这个选项此选项会被忽略。因为其它命令对路由表的影响总是永久的。在Windows 95系统的route命令不支持这个选项。 destination、gateway 、netmask、metric和interface参数分别定义路由表条目中的目标IP段,使用网关,子网掩码、度量值和网络界面。 在命令中可以用字符串符号来替代目标网络和网关的IP表示,对于用符号名表示的网络,系统会查找networks文件来解析符号名对应的网络IP(这个文件在winxp系统一般位于C:\ WINDOWS\system32\drivers\etc目录下),对于用符号名表示的网关系统会使用HOSTS文件来对符号名进行解析。 如果是print或delete命令,目标网络和网关可以包括通配符(*或?),而且网关参数可以省略。 如果在目标网络定义中包含*或?,这时这些通配符会按其在命令行界面中的含义,及*代表多个任意字符而?代表一个任意字符。例如这样157.*.1。 注意:在添加或修改路由条目时,如果目标网络与网络掩码不符会产生错误,也即DEST & MASK) ...”
主机的路由表
“在windows中,也保存着一张路由表。这张路由表根据实际情况的不同而不同。它是保证本机能上网不可缺少的一项。 在windows的命令提示符下输入:route print ,可查看当前路由表信息。 C:\Documents and Settings\Administrator>route print ====================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 01 40 ...”
08
子网掩码计算教程
“************* IP地址的分类: ************* 任何一个0到127间的网络地址均是一个A类地址。 任何一个128到191间的网络地址是一个B类地址。 任何一个192到223间的网络地址是一个C类地址。 任何一个第一个八位组在224到239间的网络地址是一个组播地址。 任何一个专用IP网络均可以使用包括一个A类地址( 10.0.0.0 )、16个B类地址(从172.16.0.0到172.31.0.0 )和256个C类地址(从192.168.0.0到192.168.255.0 )在内的任何地址。 *************** 子网掩码的计算: *************** 其实计算并不复杂。 以C类地址为例,自己找找规律。 掩码00000000,最大子网,相当于无子网。 掩码10000000,子网数2,可用0,每子网地址128,可用主机126。 掩码11000000,子网数4,可用2,每子网地址64,可用主机62。 掩码11100000,子网数8,可用6,每子网地址32,可用主机30。 掩码11110000,子网数16,可用14,每子网地址16,可用主机14。 掩码11111000,子网数32,可用30,每子网地址8,可用主机6。 掩码11111100,子网数64,可用62,每子网地址4,可用主机2。 可见,子网划分越多,地址浪费越多。 将掩码换算为十进制,可使用WINDOWS的计算器。 如掩码11100000,换算后是224,子网掩码就是255.255.255.224。 应根据主机最多的部门来确定子网大小,如果一个C类地址段不够用,就要涉及到路由、VLAN等技术,这里就不多说了。 **************************** 子网掩码及主机段的十进制算法 **************************** 首先要明确一些概念: 类范围:IP地址常采用点分十进制表示方法X.Y.Y.Y,在这里 X=1--126时称为A类地址; X=128--191时称为B类地址; X=192--223时称为C类地址; 如10.202.52.130因为X=10在1--126范围内所以称为A类地址 类默认子网掩码:A类为 255.0.0.0 B类为 255.255.0.0 C类为 255.255.255.0 当我们要划分子网用到子网掩码M时,类子网掩码的格式应为 A类为 255.M.0.0 B类为 255.255.M.0 C类为 255.255.255.M M是相应的子网掩码如:255.255.255.240 十进制计算基数:256,等一下我们所有的十进制计算都要用256来进行。 几个公式变量的说明: Subnet_block:可分配子网块大小,指在某一子网掩码下的子网的块数。 Subnet_num:实际可分配子网数,指可分配子网块中要剔除首、尾两块,这是某一子网掩码下可分配的实际子网数量,它等于Subnet_block-2。 IP_block:每个子网可分配的IP地址块大小。 IP_num:每个子网实际可分配的IP地址数,因为每个子网的首、尾IP地址必须保留(一个为网络地址,一个为广播地址),所以它等于IP_block-2,IP_num也用于计算主机段 M:子网掩码(net mask)。 它们之间的公式如下: M=256-IP_block IP_block=256/Subnet_block,反之Subnet_block=256/IP_block IP_num=IP_block-2 Subnet_num=Subnet_block-2 2的冥数:要熟练掌握2^8(256)以内的2的冥代表的十进制数,如128=2^7、64=2^6…,这可使我们立即推算出Subnet_block和IP_block数。 现在我们举一些例子: 一、 已知所需子网数12,求实际子网数 解:这里实际子网数指Subnet_num,由于12最接近2的冥为16(2^4),即 Subnet_block=16,那么Subnet_num=16-2=14,故实际子网数为14。 二、已知一个B类子网每个子网主机数要达到60x255(约相当于X.Y.0.1--X.Y.59.254的数量)个,求子网掩码。 解:1、60接近2的冥为64(2^6),即,IP_block=64 2、子网掩码M=256-IP_block =256-64=192 3、子网掩码格式B类是:255.255.M.0. 所以子网掩码为:255.255.192.0 三、 如果所需子网数为7,求子网掩码 解:1、7最接近2的冥为8,但8个Subnet_block因为要保留首、尾2个子网块,即 ...”
Java Bitset总结
“(1)BitSet类 大小可动态改变,取值为true或false的位集合。用于表示一组布尔标志。 此类实现了一个按需增长的位向量。位 set 的每个组件都有一个 boolean 值。用非负的整数将 BitSet 的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以使用一个 BitSet 修改另一个 BitSet 的内容。 默认情况下,set 中所有位的初始值都是 false。 每个位 set 都有一个当前大小,也就是该位 ...”
项目基线总结
“什么是项目基线 项目基线(project baseline)是特指项目的规范、应用标准、进度指标、费用指标以及人员和其他资源使用指标等。基线随着项目的进展而变化,主要原因有:(1)时间指标无法实现;(2)各项任务延期完成;(3)里程碑未达到;(4)有些工作不能按时开始;(5)人员不能按计划到位;(6)设备性能被过高估计;(7)高峰期人员工效不高;(8)预算过高或过少;(9)工作完成量超过或未达到计划。 项目基线变化 基线变化所涉及的是项目计划,要比范围变化容易预见并采取措施,因为项目经理及项目组成员可根据实际工作情况跟踪发现。 一.项目基线变化根源: 项目基线变化有4种主要根源:委托人驱使、规章驱使、内部驱使和外部驱使。每种根源又各有若干不同的分类型。有些类型的变化是经常发生的,能很快被识别并对之采取行动。另一些类型的变化则难以捉摸,会神不知鬼不觉地出现在项目组面前,造成难以忍受的成本增加和进度推迟。 在有些机构里,由项目组负责监控出自不同根源的潜在变化。而另一些机构则专门设有监控变化根源的部门,以便在变化情况可能要影响到计划时对项目计划进行修改。现在,我们分别看一下基线变化的4个根源及其附属的分类型。 (1)委托人驱使 委托人是项日组正在开发的产品的业主或未来业主。除了知道委托人是谁,还得知道在与项目组打交道时谁是委托人的授权代言人。 受委托人驱使而发生的变化有多种原因,但这里有3个相互联系的基本问题: ①范围。终极产品的每一个方面都是委托人所关注的。在项目周期的任何时候,都可能会因委托人提出修改终极产品的性能而涉及范围变化。 ②成本。总成本也好,阶段性成本(财政年度、财政季度)也好,都是委托人很关心的。委托人可能会发现必须对上述两者之一作出修改,于是项目组的基线就得作出相应改变。可能大家会想到这意味着削减项目的成本,但有些时候委托人也会试图增加成本。譬如,委托人可能正面临季度预算过剩,于是便可能要在那个季度里增加项目的成本。委托人可能只着眼于成本,也可能着眼于把成本同进度联系起来。③进度表。委托人经常关注着完工日期及阶段性的里程碑日期。委托人可用各种理由要求改变这些交付日期。最常见的是要求将日期提前;也有可能请求推迟交付终极产品的日期。这往往与成本相关。 (2)规章驱使 规章驱使的变化源自有权给项目组施加强制性命令的组织或个人。最好把规章驱使的变化设想成一个矩阵图。 (3)外部驱使 外部驱使的变化源自项目组所在机构的操作环境。经济的、政治的及社会的这3种类型的环境变化会影响到项目。经济变化会影响到项目的进展方式而不影响到终极产品本身。例如,计算机的集成电路片价格在过去一个季度里涨了3倍或者根本就搞不到,这会使两个硬件项目的基线发生变化。政治驱使的变化可能由改变了机构的顾客对象或消费者环境的某个事件或某种情况引起。最后还有社会驱使的变化——例如,当与南非共和国做生意不受人们欢迎的时候。 (4)内部驱使 内部驱使的变化是项目组因情况的改变或机构内部的问题而受到的常见压力。在这一领域里有若干不同类型的变化。 ①因技术问题而引起的变化。例如,由于整个机构信息处理系统的改变,项目可能会难以达到技术目标。因此项目组可能需要修改此目标。如果机构不能交付符合技术目标的产品,那就需要去找委托人改变项目的范围。 ②因进度问题而引起的变化。当一个机构知道自己不能如期支付终极产品时,与委托人协商项目基线就是合适的和必需的了。 ③因成本问题而引起的变化。当项目组织预告说项目完成时的成本将超过委托人投资的最大数目时,基线就必须有所变动了。 ④因人员需求而引起的变化。不管在任何项目中,都可能会出现过度的人员需求问题。项目的进度或成本基线很可能因此而更改。 二.项目基线变化的处理步骤:      有3个主要步骤: 步骤1:要保证基线变化的责任人只有一个人——项目主管。因为他能看到项目的全景,能估计出变化对项目基线平衡的总体影响;知道在何种情况下,他必须赞成变化;在何种情况下,完全不必要采取改变措施。 步骤2:在项目主管是否应被告知每一点变化或只要被告知对项目会产生重大影响的变化这一问题上,存在着分歧。例如,某项任务有3个星期的浮动时间,而现在可能要超期2天。项目主管是否必须被告知呢?很可能不必。但是,项目组成员应该知道到了什么地步,必须将基线变化的情况告知项目主管。如果担心无法控制的基线变化可能发生的话,只有将一切变化自动告知项目主管。 确定基线变化行动的重要准则 *负责处理基线变化的人也应协调项目组成员内部的变化。 *设法有计划地处理基线变化,而不是任意处置。 *当项目陷入危机时别忽视作正规的基线变化处理。 *把所作变化告知各层人士包括项目组其他成员及委托人。 *行使预先规定的职权及表决权。举例来说,你可以授权某项任务在浮动时间里滑称,但要推迟整个项目的完成日期就得去找委托人商量。 *确定还剩多少时间及人员和经费。 *只允许得到授权的人作出变化。职能经理能批准人员变化,但项目组成员不能任意与他人对换工作。 *批准任何变化之前要考虑是否可能有副作用。 *研究是否有别的选择。在绝对必需的情况下才提出变动基线。 *必须这样做时不要害怕基线变化。 *不要反应过度。要等到一项基线变化产生效果,其影响有了估计以后再实施另一项变化。 *要把变化详细记录下来:何时作出决定的,为什么,谁批准的。这有助于以后对所作决定的原因作出解释,也有助于建立更好的历史根据以备将来参考。 *跟踪变化,确保没有未预见到的后果。 步骤3:跟踪基线变化是一件费时费力的事。因此可制订章程规定提出变化的时间。例如,可规定在特定时间(例如每星期二上午)提出,或者在每两周一次的情况回顾会上讨论。不要鼓励项目组成员随时给项目主管打电话或写报告提出基线变化来。 跟踪基线变化基于3方面原因:发出危险信号、记录并分析问题以及争取最有效的协助方式。当项目陷入危机时,不要对提出基线变化犹豫不决。重新制订各种计划,重新公布这些计划,以及处理基线与计划不一致的问题,都是很费时间的。然而这是一个紧要关头,作为项目主管应采取大胆而经过核算的现实观点,来看待基线变化对完成项目目标的影响。 ”
节后要跳槽,五思而后行
“春节忙,节后实在也不省心。过完节回来,巧妈那儿同事被节后心理失调症困扰,富爸这儿呢,有同事正为节后跳槽忙。跳槽二字,说出来轻松潇洒,要想真正跳好槽可不简单。富爸劝同事五思而后行,做好以下准备,再跳不迟。 定向 定向,即给自己明确职业发展方向,确定职种。有些人跳槽时,并没有明确的方向,对未来的职业发展方向只有很笼统的概念。这种人是为跳槽而跳槽,只是感觉目前的工作不想做了,就去跳槽,究竟适合做什么,不清楚。在跳槽之前,一定要为自己找准方向,才能跳得更准。 定位 定位,即明确自己所要达到的目标。只有明晰自己的职位目标,才能更好地提升和成长。如果跳槽后的工作内容与当下并无区别,这种跳槽是换汤不换药。这种缺乏定位,没有实质变化的跳槽没有多大的意义,跳槽时必须找准定位,才能跳得更稳。 找差距 找差距,即找出目前所从事职位和要谋求的职位之间在知识结构和能力方面要求的差距,以便自己知道是否能成功跳槽。否则,只有跳槽的冲动,没有跳槽的成功。 弥补差距 弥补差距,即自己目前从事的职位和要谋求的职位之间在知识结构和能力方面的差距要通过自学、参加培训、向他人学习等多种途径来弥补,以为跳槽做好准备。成功跳槽青睐那些有准备的人。 找机会 当前四项准备都做好了,还不意味着想跳槽就一定会成功,特别是一些中高层职位,还是要等待机会。机会要通过自己主动争取,如借助人脉关系,关注网络招聘信息,关注大型招聘会,与猎头建立良好关系,树立个人口碑等,都是主动争取机会的有效方法。 ”
加拿大旅游签有效期十年
“加拿大使馆发布消息称,即日起,多次往返临时居民访问签证费将由150加元减至100加元。单次往返签证收费标准将被取消,申请人会被默认为申请多次往返签证。符合条件的访问者持多次往返签证可在加拿大每次最多停留6个月,最长达10年内无需每次重新申请。 ”
利润敏感性分析法总结
“概述 利润敏感性分析(Profit Sensitivity Analysis Method)是指从众多不确定性因素中找出对投资项目经济效益指标有重要影响的敏感性因素,并分析、测算其对项目经济效益指标的影响程度和敏感性程度,进而判断项目承受风险能力的一种不确定性分析方法。敏感性分析有助于确定哪些风险对项目具有最大的潜在影响。它把所有其他不确定因素保持在基准值的条件下,考察项目的每项要素的不确定性对目标产生多大程度的影响。 1. 找出影响项目经济效益变动的敏感性因素,分析敏感性因素变动的原因; 2. 研究不确定性因素变动如引起项目经济效益值变动的范围或极限值,分析判断项目承担风险的能力; 3. 比较多方案的敏感性大小,以便在经济效益值相似的情况下,从中选出不敏感的投资方案。 影响企业利润的因素主要有四个:产品的价格、产品的单位变动成本、产品的销售量和产品的固定成本。其中任何一个因素的变动都会引起企业利润的变动,甚至会使一个企业由盈变亏,也会使一个企业扭亏为盈。那么,如何知道影响企业利润的关键因素?企业决策者如何在激烈变动的外部境下做出正确决策?借助敏感性分析,企业管理者可以对此类问题有一个明确的认识。 那些对利润影响大的因素我们称之为敏感因素,反之,则称为非敏感因素。 反映敏感程度的指标是敏感系数:某因素的敏感系数 = 利润变化(%)/该因素变化(%) 当敏感系数的绝对值>1,即当某影响因素发生变化时,利润发生更大程度的变化,该因素为敏感因素; 当敏感系数的绝对值≤1,即利润变化的幅度小于或等于影响因素变化的幅度,该因素为非敏感因素; 利润敏感性分析法帮助企业决策 为决策者提供各因素的最低值及最大值,有关数据可以得出以下经济指标: 1. 销售量最低值:利润为零时的销售量,即盈亏临界点的销量。 2. 单位变动成本的最大值:单位变动成本上升会使利润下降,并逐渐趋于零。 3. 固定成本最大值:固定成本的上升也会使利润下降并趋于零。 4. 单价最小值:单价的下降会使利润下降,到一定程度利润将变为零。 利润敏感性分析法的应用 利润敏感性分析法是在投资项目评价和企业其他经营决策中常用的一种不确定性分析方法。它是在确定性分析的基础上,重复分析不确定因素(如销售量、价格、成本、投资等)变化时,将对项目经济效益评价指标(如利润、投资收益率、投资回收期等)的影响程度。根据不确定性因素每次变动数目的多少,利润敏感性分析法可以分为单因素利润敏感性分析法和多因素利润敏感性分析法。 单因素敏感性分析法 每次只变动一个因素而其他因素保持不变时所做的敏感性分析法,称为单因素敏感性分析法。当影响利润的某一因素单独发生变化时,按常规的敏感系数可直接预测计划期的营业利润。计算公式为:预测期营业利润 = 基期利润×(1+某因素的敏感系数×该因素变化率) 多因素敏感性分析法 多因素敏感性分析法是指在假定其它不确定性因素不变条件下,计算分析两种或两种以上不确定性因素同时发生变动,对项目经济效益值的影响程度,确定敏感性因素及其极限值。多因素敏感性分析一般是在单因素敏感性分析基础进行,需要注意的是,多因素敏感性分析须进一步假定同时变动的几个因素都是相互独立的,且各因素发生变化的概率相同。 概率分析对利润敏感性分析法的补充 敏感性分析法是一种动态不确定性分析,是项目评估中不可或缺的组成部分。它用以分析项目经济效益指标对各不确定性因素的敏感程度,找出敏感性因素及其最大变动幅度,据此判断项目承担风险的能力。但是,这种分析尚不能确定各种不确定性因素发生一定幅度的概率,因而其分析结论的准确性就会受到一定的影响。实际生活中,可能会出现这样的情形:敏感性分析找出的某个敏感性因素在未来发生不利变动的可能性很小,引起的项目风险不大;而另一因素在敏感性分析时表现出不太敏感,但其在未来发生不利变动的可能性却很大,进而会引起较大的项目风险。为了弥补敏感性分析的不足,在进行项目评估和决策时,尚须进一步作概率分析。 ”
关于敏感性分析法
“敏感性分析法概述 敏感性分析是针对潜在的风险性,研究项目的各种不确定因素变化至一定幅度时,计算其主要经济指标变化率及敏感程度的一种方法。 (一)适用范围 适用于对项目不确定性对结果产生的影响进行的定量分析。 (二)实施步骤 1.选定不确定因素,并设定这些因素的变动范围; 2.确定分析指标; 3.进行敏感性分析; 4.绘制敏感性分析图; 5.确定变化的临界点。 (三)主要优点和局限性 1.主要优点: (1)为决策提供有价值的参考信息; (2)可以清晰地为风险分析提供方向; (3)可以帮助企业制定紧急预案。 2.局限性: (1)分析所需要的数据经常缺乏,无法提供可靠的参数变化; (2)分析时借助公式计算,没有考虑各种不确定因素在未来发生变动的概率,无法给出各参数的变化情况,因此其分析结果可能与实际相反。 ”
德尔菲法总结
“简介 德尔菲(Delphi)预测方法属于一种主观判断法。它起源于19世纪40年代美国的兰德公司。由有经验的专家或管理人员对一些问题,或某一领域的前景进行直觉判断预测,其精度取决于预测者的个人经验和判断力。也称“专家征询法”、“集体预测法”,“天才预测法”等。 德尔费预测技术的操作方法是:首先,提出要求,明确预测目标。将要咨询的内容写成若干条意义十分明确的问题,将这些问题寄给专家;其次,请他们对每个问题的意见明确表态,并以书面的形式予以回答。第三,将专家在背对背的情况下回答的问题,集中归纳,并反馈给他们,请每个专家根据归纳的结果重新予以考虑。再将修改的结果寄回,有异议的专家要陈述理由。经过三到四次反馈,专家的意见趋于集中。最后经过资料处理,可得出结果。 德尔菲法与一般的主观判断方法并不相同。首先,它吸取和综合了众多的专家意见,这些意见是集体经验和知识的结晶,不同于一个人在小信息量情况下作出的判断。其次,它不是集体讨论的方式,而是背对背发表自己的意见,由一个协调人在这些专家之间从事收集、传递、归纳和反馈信息。最后,德尔菲法不是一次意见就定论的,要经过几个轮回的预测,使专家的意见趋于一致,因此,有较高的预测准确性。 使用该方法进行人力资源需求预测中,应该注意以下问题: 被调查专家要达到一定的数量,大型的调查不得少于30人,问卷返回率不得低于60%;要向专家提供充分且完备的信息,以使其能够做出判断;所提问题尽可能简单,应该是他们能够答复的问题,以保证所有专家能够从相同角度判断;不必要求精确。在必要时可以不问人力需求的总体绝对数量,只问变动的百分比或某些专业人员的预计变动数量。允许专家粗估数字,并请他们说明预估数字的可靠程度。 该方法的缺陷:属一种主观判断法,而且成本相对高。 运用德尔菲法进行预测时应遵循的原则 1.挑选的专家应有一定的代表性、权威性; 2.在进行预测之前,首先应取得参加者的支持,确保他们能认真地进行每一次预测,以提高预测的有效性。同时也要向组织高层说明预测的意义和作用,取得决策层和其他高级管理人员的支持; 3.问题表设计应该措辞准确,不能引起歧义,征询的问题一次不宜太多,不要问那些与预测目的无关的问题,列入征询的问题不应相互包含;所提的问题应是所有专家都能答复的问题,而且应尽可能保证所有专家都能从同一角度去理解; 4.进行统计分析时,应该区别对待不同的问题,对于不同专家的权威性应给予不同权数而不是一概而论; 5.提供给专家的信息应该尽可能的充分,以便其作出判断; 6.只要求专家作出粗略的数字估计,而不要求十分精确。 7.问题要集中,要有针对性,不要过分分散,以便使各个事件构成一个有机整体,问题要按等级排队,先简单后复杂;先综合后局部。这样易引起专家回答问题的兴趣。 8.调查单位或领导小组意见不应强加于调查意见之中,要防止出现诱导现象,避免专家意见向领导小组靠拢,以至得出专家迎合领导小组观点的预测结果。 9.避免组合事件。如果一个事件包括专家同意的和专家不同意的两个方面,专家将难以做出回答。 ================== 另外一个关于德尔菲技术的简介: 德尔菲技术 德尔菲技术是决策学中的一种方法.在20世纪40年代由O.赫尔姆和N.达尔克首创,经过T.J.戈尔登和兰德公司进一步发展而成的。德尔菲这一名称起源于古希腊有关太阳神阿波罗的神话。传说中阿波罗具有预见未来的能力。因此,这种预测方法被命名为德尔菲法。1946年,兰德公司首次用这种方法用来进行预测,后来该方法被迅速广泛采用运用。 这一方法的步骤是:  (1)根据问题的特点,选择和邀请做过相关研究或有相关经验的专家。   (2)将与问题有关的信息分别提供给专家,请他们各自独立发表自己的意见,并写成书面材料。   (3)管理者收集并综合专家们的意见后,将综合意见反馈给各位专家,请他们再次发表意见。如果分歧很大,可以开会集中讨论;否则,管理者分头与专家联络。 (4)如此反复多次,最后形成代表专家组意见的方案。 德尔菲法的典型特征 (1) 吸收专家参与预测,充分利用专家的经验和学识;   (2) 采用匿名或背靠背的方式,能使每一位专家独立自由地作出自己的判断;  (3) 预测过程几轮反馈,使专家的意见逐渐趋同。   德尔菲法的这些特点使它成为一种最为有效的判断预测法。 德尔菲法的优缺点 德尔菲法同常见的召集专家开会、通过集体讨论、得出一致预测意见的专家会议法既有联系又有区别。德尔菲法能发挥专家会议法的优点,即能充分发挥各位专家的作用,集思广益,准确性高。能把各位专家意见的分歧点表达出来,取各家之长,避各家之短。同时,德尔菲法又能避免专家会议法的缺点:权威人士的意见影响他人的意见; 有些专家碍于情面,不愿意发表与其他人不同的意见;出于自尊心而不愿意修改自己原来不全面的意见。 德尔菲法的主要缺点是过程比较复杂,花费时间较长。 德尔菲法实施注意事项 ① 由于专家组成成员之间存在身份和地位上的差别以及其他社会原因,有可能使其中一些人因不愿批评或否定其他人的观点而放弃自己的合理主张。要防止这类问题的出现,必须避免专家们面对面的集体讨论,而是由专家单独提出意见。 ② 对专家的挑选应基于其对企业内外部情况的了解程度。专家可以是第一线的管理人员,也可以是企业高层管理人员和外请专家。例如,在估计未来企业对劳动力需求时,企业可以挑选人事、计划、市场、生产及销售部门的经理作为专家。   其他注意事项: (1) 为专家提供充分的信息,使其有足够的根据做出判断。例如,为专家提供所收集的有关企业人员安排及经营趋势的历史资料和统计分析结果等等。 (2) 所提问的问题应是专家能够回答的问题。  (3) 允许专家粗略的估计数字,不要求精确。但可以要求专家说明预计数字的准确程度。 (4) 尽可能将过程简化,不问与预测无关的问题。 (5) 保证所有专家能够从同一角度去理解员工分类和其他有关定义。 (6) 向专家讲明预测对企业和下属单位的意义,以争取他们对德尔菲法的支持。 ”
什么是德尔菲技术预测法?
“德尔菲技术预测法是美国兰德公司1964年发明并首先用于技术预测的专家会议预测法的改进方法。有的学者认为,德尔菲法可能是最可靠的预测方法。在长期规划者和决策者心目中,德尔菲法享有众望。 德尔菲是古希腊的一座城市,因阿波罗神殿而驰名,由于阿波罗有着高超的预测未来的能力,故德尔菲成了预测、策划的代名词。 所谓德尔菲法是指采用函询的方式或电话、网络的方式,反复也咨询专家们的建议,然后由策划人作出统计,如果结果不趋向一致,那么就再征询专家,直至得出比较统一的方案。这种策划方法的优点是:专家们互不见面,不能产生权威压力,因此,可以自由地充分地发表自己的意见,从而得出比较客观的策划案。 德尔菲法的预测程序 德尔菲法预测有一套独特的预测程序,它主要包括三个阶段:准备阶段、轮番征询阶段和结果处理阶段。 1. 准备阶段 准备阶段主要完成四个方面的工作:明确预测主题和预测目的;选择专家;准备背景资料;设计调查咨询表。 2. 轮番征询阶段 准备阶段完成后,就要进入向专家们进行知识调查阶段。这一阶段主要通过反复地轮番询问专家的预测意见来实现。 第一轮:①由组织者发给专家的第一轮调查表是开放式的,不带任何框框,只提出预测问题。请专家围绕预测主题提出预测事件。如果限制太多,会漏掉一些重要事件。②预测组织者要对专家填好的调查表进行汇总整理,归并同类事件,排除次要事件,用准确术语提出一个预测事件一览表,并作为第二轮调查表发给专家。 第二轮:①专家对第二轮调查表所列的每个事件做出评价。例如, 说明事件发生的时间、叙述事件或迟或早发生的理由。②预测组织者收到第二轮专家意见后,对专家意见作统计处理,整理出第三张调查表。第三张调查表包括:事件、事件发生的中位数和上下四分点,以及事件发生时间在四分点外侧的理由。 第三轮:①把第三张调查表发下去后,请专家做以下事情:重审理由;对上下四分点外的对立意见作一个评价;给出自己新的评价(尤其是在上下四分点外的专家,应重述自己的理由);如果修正自己的观点,也请叙述为何改变,原来的理由错在哪里,或者说明哪里不完善。②专家们的新评论和新理由返回到组织者手中后,组织者的工作与第二轮十分类似:统计中位数和上下四分点;总结专家观点,重点是双方有争论的意见,形成第四张调查表。 第四轮:①请专家对第四张调查表再次评价和权衡,做出新的预测。是否要求作出新的论证与评价,取决于组织者的要求。②当第四张调查表返回后,组织者的任务与上一轮的任务相同:计算每个事件的中位数和上下四分点,归纳总结各种意见的理由以及争论点。 3. 结果处理阶段 预测结果处理阶段,是要把最后一轮的专家意见加以统计、归纳和处理,得出代表专家意见的预测值和离散程度。然后,对专家意见做出分析和评价,确定预测方案。在该阶段最主要的工作是用一定的统计方法对专家的意见做出统计、归纳和处理。下面介绍几种统计处理方法。这些方法同样适用于轮番征询阶段中每一轮的专家意见处理。 (1) 中位数和上、下四分位数法 这一方法主要用于预测结果为时间或数量时的统计处理,用中位数代表专家预测意见的协调结果,用上、下四分位数反映专家意见的离散程度。 首先,将专家们提供的预测值从小到大顺序排列,得到下面的数据序列: X1≤X2≤X3≤X4≤…≤Xn-1≤Xn。 其次,使用下面的公式计算中位数: 式中, ――中位数; Xk――第k个数据; Xk+1――第k+1个数据; k――正整数。 然后,求上、下四分位数,计算公式为: 上四分位数 下四分位数 各专家预测值中的最大值与最小值之差称为全距,0表示调查结果的最大变动幅度,是各专家之间看法的分散程度的一种度量。 用中位数和上、下四分位数描述预测的结果,则中位数表示预测结果的期望值,下四分位数表示预测期望值区间的下限,上四分位数表示预测期望值区间的上限。 (2) 算术平均统计处理法 算术平均法即对预测结果进行算术平均,其值作为专家预测的最终结果,主要用于对预测结果为数量的统计处理。 (3) 主观概率统计处理法 所谓主观概率是指专家对某一未来事件发生的可能性大小做出的主观判断值。对主观概率的处理,往往以加权平均值作为专家集体预测的协调结果,其权数是相应的专家人数。 (4) 非量化预测结果的统计处理法 对于非数量化的专家意见可采用比重法或采用评分法进行归纳统计。比重法是指计算出专家对某个意见回答所占的人数比例,然后以比例最高者作为预测结果。评分法常用于产品各特征的重要性比较或不同品牌的同类产品的质量评比等,如采用9分制,最重要为9分, 最不重要为1分。 运用这种策划方法时,要求专家具备策划主题相关的专业知识,熟悉市场的情况,精通策划的业务操作。专家的意见得出结果后,策划人需要对结果进行统计处理。但是这种方法缺乏客观标准,主要凭专家判断,再者由于次数较多,反馈时间较长,有的专家可能因工作忙或其它原因而中途退出,影响策划的准确性。而且技术上,征询表的设计对预测结果的影响较大。 ”
07
男孩成长的不同阶段,父亲所起的作用
“父亲和儿子之间,存在一门他人无法读懂的外语。 一位母亲就曾这样描述丈夫与儿子之间的关系: 有时,我觉得丈夫与儿子之间的关系就像一个谜,他们总是扭在一起打打闹闹,例如,你追我赶、互相挠痒痒等,但他们之间打闹的那种性质,与我和儿子之间的那种打闹是完全不同的。 我觉得他们之间有一种特殊的语言,例如,当丈夫与儿子打闹完之后,他们会同时躺在床上,摸摸对方的肚子,然后安静地休息一会儿。但一旦他们其中一个人有了小动作,另外一个人就会马上进入警觉状态,就好像他们心有灵犀一般。 的确,父亲和儿子之间确实有一种属于他们的语言,他们在一起可以不分长幼地打闹、可以不断触碰对方的身体……行为学家表示,父亲与儿子在打闹中所进行的这种身体之间的接触,是父子之间所进行的一种深层次的沟通。 正是由于这种深层次沟通的存在,男孩知道,他将要成长为一个像父亲那样的男人。因此,在父亲身上,他们能看到自己的未来,他们会自觉地以父亲为榜样。 每个男孩的成长都需要家长的爱,但父爱与母爱是完全不同的两种爱。母爱细腻、温柔,在母爱中,男孩能得到满足感;而父爱博大、粗犷,在父爱中,男孩能找到方向感。 当然,如果一个小男孩长时间接触不到父亲,或者感受不到父爱,他会产生强烈的不安全感,进而会迷失方向。例如,长期接触不到父亲的男孩会产生女性化倾向。 另外,还有很重要的一点,在长期感受不到父爱的情况下,很多小男孩为了使自己有机会与父亲进行深层次的沟通,常常会用一些坏行为,如撒谎、偷盗、打架等,来吸引父亲的眼球。当然,还有很多小男孩甚至不惜伤害自己,以赢得父亲的关注。 男孩是需要父亲的,他们需要从父亲身上看到自己的定位,他们需要模仿父亲的行为来使自己成长为男子汉。所以,为了男孩的健康成长,父亲千万不要以“工作忙”为理由而忽视了对儿子的教育。 当然,父亲们还应该注意:你的行为、语言以及思想每时每刻都在影响着儿子,因为他正在自觉不自觉地以你为榜样。 但并不是所有的父亲都能成功地承担“儿子榜样”这一角色。很多父亲就常常在无意识之间,把错误的思想和行为传达给了儿子。 一位幼儿园老师讲述了这样一件事情: 当我把孩子们的餐具都洗好时,一个小男孩正好在我身边,我请他帮我一起整理餐具,没想到却遭到了这个小家伙的严辞拒绝。他一本正经地对我说:“不,我不能帮你做这些事情,因为这些事情是女人做的,我爸爸从来都不做这些事情。” 看,这就是父亲的作用。一个刚刚有了性别意识的小男孩,就已经在主动模仿父亲的行为,他不自觉地把父亲当成了自己的榜样。 父亲的行为每时每刻都在影响着男孩。在生活中,如果父亲很少帮妻子做家务,那当母亲要求男孩帮自己做一些家务时,男孩就会理所应当地严词拒绝。因为在他们的头脑中已经产生了这样的思想:做家务都是女人的事情,男人有权不去帮忙。这些思想或者是父亲在无意之间传达给他们的,或者是他们从父亲的行为中得出的结论。 男孩的成长需要榜样,他们常常会自觉不自觉地就把父亲当成自己的榜样。然而,父亲要想做好男孩的榜样也并不是易事,在男孩成长的每一个阶段,他们所需要的榜样是不断变化的。 作为男孩的父亲,如果你对做男孩的榜样还没有足够的信心,那你不妨借鉴以下几种观点和方法: 方法一:面对幼儿期的男孩→帮他们完成对母亲的依恋 曾有心理学家说过这样一句话:母亲的爱让我们迷恋,但母亲过度的爱却会使一个男孩长不大,使他永远停留在小男孩的状态。 的确,现在就有很多这样的小男孩,他们不喜欢与别人接触,整天寸步不离母亲身边,甚至到了上学的年龄,他们还整天跟在妈妈后面,不肯去幼儿园或学校。 这些孩子大多都有这样一个毛病,他们只愿意与妈妈在一起,除了妈妈之外,他们拒绝与任何人在一起,其中也包括爸爸。 心理学家经过多年的研究发现,这些男孩长大之后将很难融入集体。更可怕的是,不管是与人相处,还是做其他事情,他们常常会被强大的自卑心理包围。 为什么会出现这种现象呢? 事实上,这些男孩长大之后之所以会出现这些现象,往往是由于他们没有很好地完成在幼儿期的心理发展任务而造成的。 在幼儿期,男孩需要完成的心理任务有很多,但最主要的一点就是,完成对母亲的亲密分离。即让他们从对妈妈一个人的依恋中走出来,开始接纳爸爸和其他人。因此,在这一时期,爸爸的任务是巨大的,这就需要爸爸抽出更多的时间来陪男孩,鼓励他与自己沟通。 说到这里,很多父亲也许会联想到自己小时候与父亲之间的关系。在幼儿早期,男孩的世界里只有母亲,但一旦他发现自己的身边有父亲这样一个人物时,一股神秘的力量就会推动着他们与父亲接触。 其实,对于这些幼儿期的孩子来讲,父亲的关爱意味着一种特殊的意义。 一位成年男性曾讲述了这样一件事情: 我的父亲将近70岁了,一次,我们一起翻那些老照片。忽然,翻到了我3岁时的那张照片,父亲抱着我把我举过了头顶,我脸上的笑容很灿烂,也很自豪。 我把这张照片放入我的钱夹内。之后,父亲第一次跟我谈起了他与他的父亲之间的关系:“我的父亲从来没有抱过我,我甚至都没有在他的腿上坐过……”说到这里,父亲已经是泪流满面了。 我能深深地感受到,即使现在父亲即将70岁了,但他仍对小时候父亲没有抱过他而感到遗憾。 对于幼儿期的男孩来讲,他们迷恋母亲,因为母亲的爱是温柔的、令人陶醉的,而且是很容易感受到的,这会让他们产生安全感。但与此同时,他们又对父亲的世界充满了向往,在他们眼中,父亲是“大力士”、“万事通”,能够解决一切困难,但父亲却总是那么冷漠、不容易让人接近,这会促使男孩更加依恋母亲。 就拿上述事例中那位70岁的老父亲来说,也许他的父亲并不是不爱他,只是他不善于表达,所以,他给儿子留下了终身的遗憾。所以,要想做好幼儿期男孩的父亲,你首先需要学会的是——向儿子表达自己的关爱之情。 那么,父亲应该如何向儿子表达关爱之情呢? 还是让我们来听听这些小男孩自己的心声吧: ※“我喜欢爸爸带我出门,这样我会因为爸爸在身边而感到很自豪!” ※“我喜欢坐在爸爸的腿上,让他不停地颤我,有他那大大的手掌扶着我,我一点也不害怕。” ※“我喜欢爸爸把我举过头顶,这样我能感觉到爸爸的力量,我觉得他就是一个力大无比的神仙。” 由此我们可以看出,要想让儿子成功地摆脱对母亲的依恋也不难,当然,这主要需要爸爸的配合。其实,爸爸需要做得也很简单:在显示自己男性力量的同时,对儿子多些关注和细心的爱护就可以了。 方法二:面对儿童期的男孩→明确规则,培养他们的自控能力 一位幽默的父亲曾这样说过:“我们要想与儿子很好地相处,一定要学会摔跤!” 当然,这位父亲所要表达的意思并不是说男孩们都崇尚武力,而是说,男孩们都喜欢自己的父亲与自己打成一片。其实,这也正是很多心理学家都在研究的一个问题:为什么父亲和儿子在一起总是喜欢打打闹闹,甚至是打成一团呢? 其实,对这个问题最不理解的人应该是男孩的母亲们,她们总是想办法试图让好动的男孩安静下来,但他们往往受到父亲的鼓动,变得越来越爱打闹,从而把房间搞得越来越乱。 在打闹中,男孩和父亲总会不小心弄坏东西,把房间搞得又脏又乱,但这仅仅是表面现象。心理学家表示,男孩在与父亲的打闹中所学到的东西,对他们以后的成长具有深远的意义。 我们都知道,由于受大脑结构以及体内睾丸素的影响,男孩常常会不计后果地去搞破坏、去攻击别人。但在与爸爸的打闹中,爸爸能让他们明白,任何事情都是有规则的。 一位父亲曾讲述过这样一件事情: 当儿子4岁的时候,我喜欢给他挠痒痒,他也喜欢我这样做,每当做这个动作的时候,我们父子俩就会围着整个房间跑来跑去。 但有一次,我看儿子躺在床上,便过去给他挠痒痒。那天儿子也许不高兴,他没有像平时那样“咯咯”笑,而是狠狠地踹了我一脚。 我被儿子的反应惊呆了,但我并没有冲他发脾气或指责他,而是平静地对他说:“你受了伤会痛,爸爸受了伤也会痛,如果爸爸受了伤,那以后我就不能陪你玩了。所以,我们需要制定一些规则,例如,不允许使劲踢别人、打别人,或是抓别人!你能遵守这样的规则吗?” 儿子似乎已经意识到了自己的错误,因为我看到他在点头。 我们都知道,男孩是讲究规则的动物。如果在进入新的团体之前,他们不了解这个团体的规则,那男孩就会产生极大的不安全感。 其实,父亲与男孩相处的过程,就是向他们传输各种基础规则的过程。受体内睾丸素的影响,任何一个男孩都可以被称为“破坏大王”、“带有攻击性的机器”等,但如果家长对他们的这种破坏性和攻击性听之任之,任其发展,那男孩真的会变成人见人怕的破坏性“机器”;但如果家长对他们的这种破坏性和攻击性进行强行压制,那男孩天生的探索欲望和创造欲望就会逐渐泯灭。 所以,最好的办法就是,告诉他们规则是什么,让他们自己去把握行为的“度”。就拿上面的事例来说,父亲喜欢与男孩在一起打闹,他告诉了男孩打闹的规则——不许使劲踢别人、打别人,或是抓别人。但打闹必须是有身体接触的,因此,这个男孩以后再与别人打闹时,就会自觉把握自己与别人身体接触的“度”。 其实,在这一过程中,男孩学到的不仅仅是生活技巧,还有自控力,他们开始学习有意识地控制自己的行为了。 看到这里,也许有家长会问:“‘规则’,妈妈也可以教他们,难道只有爸爸教才会有效吗?” 我们都知道,母爱是完全不同于父爱的,母亲的爱会让男孩陶醉其中,只想享受这种温暖,而不去思考别的问题。而且在大多数男孩的心目中,母亲只擅长做日常家务,她们并不擅长制定规则,所以男孩常常会对母亲制定的规则持怀疑的态度。 但当男孩与父亲相处时就完全不同,他可以和父亲打闹,但他绝不敢在父亲面前胡闹。所以,父亲的威严让父亲所制定的规则也具有了可信度。 大多数的家庭常常因为男孩的破坏性和攻击性而发生矛盾,例如,男孩不小心把家里的古董花瓶打碎了,妈妈会对男孩大发脾气;又如,男孩把家里的小闹钟弄成了“哑巴”,害得爸爸上班迟到。 但在父亲懂得制定规则的家庭中,这些“闹剧”出现的几率却很低。 一位父亲为全家人制定了这样一条规则: 每周的周六晚饭后为“真理时间”,全家人聚在一起,可以自由说出自己心中的“真理”。 例如,在一次“真理时间”中,妈妈是这样说的:“儿子的那些破坏行为总是让我抓狂,我刚收拾干净了客厅,他没一会儿又把它搞乱了;我刚告诉了他,不要把杯子打碎,他就不小心把杯子摔在地上;更可恨的是,他把我最喜欢的那块手表给拆了!” 而儿子是这样说的:“妈妈总是说我是‘破坏大王’,我讨厌这个称呼,所以,每当妈妈这样称呼我时,我就故意搞破坏。我希望妈妈以后能给我一个我喜欢的称呼,如帅小子、小英雄等,这些我都喜欢。” 自从家里有了这个“真理时间”之后,家庭成员之间几乎就不再发生矛盾了。 作为家长,我们知道,与女孩相比,男孩的“嘴”笨多了,他们不善表达自己的情感,确切来说,他们是不知道该在什么时间、什么场合下表达,也不知道该如何表达自己的情感。所以,每个家庭都应该给男孩规定这样一个“真理时间”,让他有机会表达自己的情感。 虽然不善表达,但男孩的内心也是渴望被他人理解的,所以,他会深深地感谢父亲所制定的“真理时间”这个规则。 对于男孩来讲,父亲是权威的,他有权制定规则。当然,如果这些规则能够深入“他”心的话,他更会对父亲这位家庭规则的制定者深信不疑。 方法三:面对青春期的男孩→让他们感觉到道德约束的力量 大家都说青春期的男孩容易变“坏”,但有心理学家表示,青春期的男孩是否会变“坏”,与他们是否与父亲在一起有很大的关系。 一位心理学家曾在一所中学里进行了调查,他发现这些初中的男孩子都是以“群”而居的。一般情况下,爱学习的男孩们总会在一起玩儿,而那些爱打架、爱调皮的男孩总会在一起儿玩。 心理学家想深入了解这个现象,便问那些爱学习的男孩:“你为什么不喜欢跟他们一起玩呀?” “因为我跟他们不是一路人。” “哦?那你们是哪路人,他们又是哪路人?” “我们都是有父亲的人,而他们要么没有父亲,要么不跟父亲生活在一起,所以,他们总会干坏事。” 在这些男孩的眼中,父亲不仅是一种权威,而且还象征着一种力量,正是因为这种力量的存在,男孩才不会去做坏事,才不会变坏。 其实,孩子们的这种观点是很正确的。人类行为学研究表示,那些劳改所里80%的“少年犯”都属于这样一种情况:他们要么没有父亲,要么不与父亲生活在一起,要么就经常得不到父亲的关注。 由此可见,对于青春期的男孩来讲,父亲就像一股道德的力量,他在时刻束缚着儿子的行为。其实,这在生物学上也是有一定依据的。 当孩子进入青春期,也许就在忽然之间,男孩会发现自己的身体发生了巨大的变化:他们的身高猛增、力气也变大了很多。在面对温柔或者暴躁的妈妈时,即使平时最乖巧的男孩也会产生这样的想法:这下,妈妈再也不能强迫我做任何事情了! 因为这种想法的出现,男孩开始不拿妈妈的教育当回事,有时,他们甚至还会故意与妈妈作对,向妈妈的权力挑战。当然,如果男孩的这一行为不断地得逞,他们就会变得自傲自大,甚至是目无王法。所以,在这种情况下,他需要父亲的权威让他们保持清醒。 一位母亲讲述了她亲身经历的一件事情: 在我们家,每个人都有明确的任务:孩子的爸爸买菜、我做饭、儿子洗碗。我们的这项分工从儿子9岁时就开始了,并且在昨天之前,一切都在按着正常的情况进行。 但昨天,却出现了一个小插曲。我去厨房拿东西,忽然,一股怪怪的味道传来。我一看便明白了是怎么回事,儿子把碗泡在水池里没有洗,由于天气太热,水池里的水都发霉了。 看到这种情况,我生气地把儿子叫来,并冲他大喊道:“这是怎么回事?” 令我惊讶的是,13岁的儿子竟然没有愧疚的感觉,他还不耐烦地对我说:“我只不过是忘记洗碗了,妈妈,你用得着这样大嚷大叫吗?” 看着比我高出一头的儿子,我真的拿他没有一点办法。但就在这时,孩子的爸爸来到厨房,还没等到他讲话,儿子就开始捋起袖子打算洗碗了。 男孩进入了青春期,母亲的管教似乎已经对他们不起作用了。有时,为了让母亲看清这种局势,他们甚至还常常向母亲的权力挑战。在这些时候,父亲最需要做的就是,与母亲站在一起,两个人用同样的态度教育儿子。 就拿上述案例来说,面对儿子向母亲的权力挑战的情况,如果父亲这样对儿子说:“不允许你用这样的腔调同妈妈讲话,否则,我真的要管管了……”听到父亲这种“规则”鲜明的话,男孩至少也会清醒上一段时间,不敢再向妈妈的权力挑战。其实,从另一方面我们还可以这样说,在尊重女性方面,男孩需要父亲给他们做出榜样。 当然,要想让青春期的男孩认同家长的教育,父亲必须要和母亲达成统一的战线。并且,在这一过程中,父亲的态度一定要是真诚的。如果父亲并不是想帮助妻子,而是逢场作戏式地教育儿子,那男孩就会越来越不尊重母亲,甚至还会越来越多地向母亲的权力发出挑战。 其实,当男孩进入了青春期,不是母亲的力量变弱了,而是男孩的“翅膀”变硬了。在这个时候,他们需要父亲给他们约束的力量,并为他们指引方向,所以,在这一阶段,男孩是否会变“坏”,大部分原因要取决于父亲。 ”
如何坚持每天写千字文
“成功的blogger们有一个秘诀:他们十分多产。每天写1000字对他们来说就像刷牙一般例行公事。这听上去似乎很难,但是一旦习惯形成,其实真的不难。每一个写作者都有不同的方式去产出这一千字。我来分享一些有用的经验。 1. 无干扰的写作工具 我每天写作的核心工具就是一个沉浸式的无干扰写作工具——简书。大多数人写作(比如用word),会被各种乱七八糟的按钮和多余的界面所干扰,拖慢了速度。沉浸式的写作工具有最少的功能让你专注在写作上面。简书还提供了全屏的写作模式,这篇文章就是在全屏模式下写就的。 2. 障碍最小化 在《快乐竞争力》这本书中,Sean Achor 谈及了一个概念叫「障碍最小化」。基础的假设就是,一件事情的障碍越少,那么你越可能去做它。举个例子,如果你把明天早起运动的衣服放到你的床边,那么你明天早上起来运动的可能性就大多了。如果你要培养每天写一千字的习惯,那么在睡前打开你的写作软件放在那,等到你第二天坐到电脑前看到的就是这个写作界面,那么你做的第一件事就是写作。 3. 即兴写作 即兴写作是很多人经常会讨论的,但是真正做到的人不多。即兴写作是指写你所想到的任何东西。也许你会发现这样写出来的东西大多是垃圾。但是有时候,最好的点子就是这么来的。你写了1000字,其中的200字可能是一个非常了不起的想法。写作这篇文章的想法正是来源于我的一次即兴写作的最后100个字。 4. 盲写 当我们能看到所写的文字的时候我们就会去评价它们。你会经常回顾、修改。当你盲写,比如关掉显示器,让你的文字肆意流动。你不会有机会去回顾和修改。(译者注:因为中文很难盲打,所以这条国人可忽视。) 5. 写作灵感 如果你真的写不下去,你应该去找点写作灵感。说几个我的方法: 如果这篇文章是你的最后一篇文章,你会说什么? 如果你正在给你的孩子们写一封信,他们长大后看的信,你会说什么? 从Kindle的摘要中找灵感 如果你在Kindle上读书,它可以摘要句子和段落。挑一个你喜欢的摘要,基于这条摘要写下去。 从其他文章中找灵感 也可以从他人的文章中寻找素材。比如你可以就你读的一篇文章写一篇回应。也可以是回应某一篇文章下面的评论。通过这个方法,你可以获得无穷尽的写作素材。 6. 写大纲 当我实在写不出了,我会只写一些想法的大纲。这篇文章最早就只是一个大纲。我并不确定怎么写,但是第二天早上我醒来,文字流露,文章自成。持续做这件事,你会稳定地产出新的写作想法。 7. 播种想法 想法的种子可以以单词、句子或者段落的形式播种。如果你想成为一个高产的写作者,那么你要学会接受并记录这些不完整的想法和可能是错误的开端。 携带笔记本:随时记录你的想法。 活用Evernote:如果不喜纸笔,可以用Evernote。 培育你记录下来的想法,完善它们,要不然它们就消失了。 每天写1000字其实跟培养其他任何习惯一样,都需要时间。然而你一旦形成了这个习惯,这事儿就简单多了。你会经常不知不觉就写完了1000字。 原文:How to Consistently Write 1000 Words ...”
怎样查询公司名字是否重名
“想注册公司的朋友绞尽脑汁想的字号提交到工商局,工商局反馈的一直是重名,是不是让人很郁闷了?主要是提交的周期长时间也浪费了。其实我们可以自己网上查下再决定用哪一个提交这样就方便多了。下面小编以多年注册公司的经验给大家讲解下如何查询重名。(以北京地区为例,其他省市的则登陆当地工商局网站) 怎样查询公司名字是否重名 首先百度搜索:【北京企业信用网】进入后点击【信用查询】只要在北京注册过的营业执照基本都能查到,哪怕是个体户。 以【中企恒安】这个字号为例查询下,在主体名称处输入【中企恒安】查询后如果显示无结果那么这个名字通过的几率有80% 企业信用网没有并不代表100%能通过,我们再搜索【中国商标网】进入 选择【商标综合查询】在【商标名称】处输入你要查询的字号 查询结果无的话,那么字号核准通过的几率就大些 企业名称申请登记的原则: 一、企业名称不得含有下列内容的文字: 1、 有损于国家、社会公共利益的; 2、 可能对公众造成欺骗或者误解的; 3、 外国国家(地区)名称、国际组织名称; 4、 政党名称、党政军机关名称、群众组织名称、社会团体名称及部队番号; 5、外国文字、汉语拼音字母、阿拉伯数字; 6、其他法律、行政法规规定禁止的。 二、企业名称应当使用符合国家规范的汉字。 三、企业法人名称中不得含有其他法人的名称,国家工商行政管理总局另有规定的除外。 四、企业名称中不得含有另一个企业名称。企业分支机构名称应当冠以其所从属企业的名称。 五、企业营业执照上只准标明一个企业名称。 六、企业名称有下列情形之一的,不予核准: 1、与同一工商行政管理机关核准或者登记注册的同行业企业名称字号相同,有投资关系的除外; 2、与其他企业变更名称未满1年的原名称相同; 3、与注销登记或者被吊销营业执照未满3年的企业名称相同; 4、其他违反法律、行政法规的; 七、企业名称需译成外文使用的,由企业依据文字翻译原则自行翻译使用,不需报工商行政管理机关核准登记。 注意事项 名称核准以工商局核准为准;很多查询不到的字号如果与其他公司字号谐音、70%相似工商局有时候也不批的。你最好多想几个备用名,第一个不过还能用第二个。 ”
KPI释义
“关键绩效指标(Key Performance Indicators,简称KPI),又称主要绩效指标、重要绩效指标、绩效评核指标等,是指衡量一个管理工作成效最重要的指标,是一项数据化管理的工具,必须是客观、可衡量的绩效指标。这个名词往往用于财政、一般行政事务的衡量。是将公司、员工、事务在某时期表现量化与质化的指标一种。可协助将优化组织表现,并规划愿景。 ”
CPI释义
“基本概念 CPI即消费者物价指数,英文:Consumer Price Index,缩写CPI,亦称居民消费价格指数,在经济学上,是反映与居民生活有关的产品及劳务价格统计出来的物价变动指标,以百分比变化为表达形式。它是衡量通货膨胀的主要指标之一。一般定义超过3%为通货膨胀,超过5%就是比较严重的通货膨胀。CPI过高始终不是好事,高速经济增长率会拉高CPI,但物价指数增长速度快过人民平均收入的增长速度就一定不是好事,而一般平均工资的增长速度很难超越3-4%。 主要作用 1、反映通货膨胀状况:通货膨胀的严重程度消费物价指数是用通货膨胀率来反映的,它说明了一定时期内商品价格持续上升的幅度。通货膨胀率一般以消费者物价指数来表示。 通货膨胀率= (报告期消费者物价指数 - 基期消费者物价指数)/基期消费者物价指数X 100% 2、反映货币购买力变动 :货币购买力是指单位货币能够购买到的消费品和服务的数量。消费者物价指数上涨,货币购买力则下降;反之则上升。消费者物价指数的倒数就是货币购买力指数。 ] = ( 1/消费者物价指数)X 100% 3、反映对职工实际工资的影响 :消费者物价指数的提高意味着实际工资的减少,消费者物价指数的下降意味着实际工资的提高。因此,可利用消费者物价指数将名义工资转化为实际工资,其计算公式为 实际工资= 名义工资/消费者物价指数 计算方法 ...”
通货膨胀与通货紧缩
“一、比较通货膨胀与通货紧缩 1、区别 ⑴含义和本质不同: 通货膨胀是指纸币的发行量超过流通中所需要的数量,从而引起纸币贬值、物价上涨的经济现象。其实质是社会总需求大于社会总供给。 通货紧缩是与通货膨胀相反的一种经济现象,是指在经济相对萎缩时期,物价总水平较长时间内持续下降,货币不断升值的经济现象。其实质是社会总需求持续小于社会总供给。 ⑵表现不同: 通货膨胀最直接的表现是纸币贬值,物价上涨,购买力降低。通货紧缩往往伴随着生产下降,市场萎缩,企业利润率降低,生产投资减少,以及失业增加、收入下降,经济增长乏力等现象。主要表现为物价低迷,大多数商品和劳务价格下跌。 ⑶成因不同: 通货膨胀的成因主要是社会总需求大于社会总供给,货币的发行量超过了流通中实际需要的货币量。 通货紧缩的成因主要是社会总需求小于社会总供给,长期的产业结构不合理,形成买方市场及出口困难导致的。 ⑷危害性不同: 通货膨胀直接使纸币贬值,如果居民的收入没有变化,生活水平就会下降,造成社会经济生活秩序混乱,不利于经济的发展。不过在一定时期内,适度的通货膨胀又可以刺激消费,扩大内需,推动经济发展。通货紧缩导致物价下降,在一定程度上对居民生活有好处,但从长远看会严重影响投资者的信心和居民的消费心理,导致恶性的价格竞争,对经济的长远发展和人民的长远利益不利。 ⑸治理措施不同:治理通货膨胀最根本的措施是发展生产,增加有效供给,同时要采取控制货币供应量,实行适度从紧的货币政策和量入为出的财政政策等措施 。治理通货紧缩要调整优化产业结构,综合运用投资、消费、出口等措施拉动经济增长,实行积极的财政政策、稳健的货币政策、正确的消费政策,坚持扩大内需的方针。 2、联系 ⑴二者都是由社会总需求与社会总供给不平衡造成的,亦即流通中实际需要的货币量与发行量不平衡造成的。 ⑵二者都会使价格信号失真,影响正常的经济生活和社会经济秩序,因此都必须采取有效地措施予以抑制。 二、物价上涨不等于通货膨胀 一般地说, 通货膨胀必然引起物价上涨,但不能说凡是物价上涨都是通货膨胀。影响物价上涨的因素是多方面的。①纸币的发行量必须以流通中所需要的数量为限度,如果纸币发行过多,引起纸币贬值,物价就会上涨。 ②商品价格与商品价值成正比,商品价值量增加,商品的价格就会上涨。③价格受供求关系影响,商品供不应求时,价格就会上涨。④政策性调整,理顺价格关系会引起上涨。⑤商品流通不畅,市场管理不善,乱收费、乱罚款,也会引起商品价格的上涨。可见,只有在物价上涨是因纸币发行过多而引起的情况下,物价上涨才是通货膨胀。 三、 通货紧缩对经济发展的影响必须进行具体分析 一般来说,适度的通货紧缩,通过加剧市场竞争,有助于调整经济结构和挤去经济中的“泡沫”,也会促进企业加强技术投入和技术创新,改进产品和服务质量,对经济发展有积极作用的一面。 但过度的通货紧缩,会导致物价总水平长时间、大范围下降,市场银根趋紧,货币流通速度减慢,市场销售不振,影响企业生产和投资的积极性,强化了居民“买涨不买落”心理,左右了企业的“惜投”和居民的“惜购”,大量的资金闲置,限制了社会需求的有效增长,最终导致经济增长乏力,经济增长率下降,对经济的长远发展和人民群众的长远利益不利。由此看来,通货紧缩对经济发展有不利的一面。为此,我们必须通过加大政府投资的力度,刺激国内需求,抑制价格下滑,保持物价的基本稳定。 ”
网络计划技术
“网络计划技术是指用于工程项目的计划与控制的一项管理技术。它是五十年代末发展起来的,依其起源有关键路径法(CPM)与计划评审法(PERT)之分。1956年,美国杜邦公司在制定企业不同业务部门的系统规划时,制定了第一套网络计划。这种计划借助于网络表示各项工作与所需要的时间,以及各项工作的相互关系。通过网络分析研究工程费用与工期的相互关系,并找出在编制计划及计划执行过程中的关键路线。这种方法称为关键路线法(CPM);1958年美国海军武器部,在制定研制“北极星”导弹计划时,同样地应用了网络分析方法与网络计划,但它注重于对各项工作安排的评价和审查,这种计划称计划评审法(PERT)。鉴于这两种方法的差别,CPM主要应用于以往在类似工程中已取得一定经验的承包工程,PERT更多地应用于研究与开发项目。 网络计划技术包括以下基本内容: 网络图 网络图是指网络计划技术的图解模型,反映整个工程任务的分解和合成。分解,是指对工程任务的划分;合成,是指解决各项工作的协作与配合。分解和合成是解决各项工作之间,按逻辑关系的有机组成。绘制网络图是网络计划技术的基础工作。 时间参数 在实现整个工程任务过程中,包括人、事、物的运动状态。这种运动状态都是通过转化为时间函数来反映的。反映人、事、物运动状态的时间参数包括:各项工作的作业时间、开工与完工的时间、工作之间的衔接时间、完成任务的机动时间及工程范围和总工期等。 关键路线 通过计算网络图中的时间参数,求出工程工期并找出关键路径。在关键路线上的作业称为关键作业,这些作业完成的快慢直接影响着整个计划的工期。在计划执行过程中关键作业是管理的重点,在时间和费用方面则要严格控制。 网络优化 网络优化,是指根据关键路线法,通过利用时差,不断改善网络计划的初始方案,在满足一定的约束条件下,寻求管理目标达到最优化的计划方案。网络优化是网络计划技术的主要内容之一,也是较之其它计划方法优越的主要方面。 网络计划技术的应用主要遵循以下几个步骤: 1、确定目标 确定目标,是指决定将网络计划技术应用于哪一个工程项目,并提出对工程项目和有关技术经济指标的具体要求。如在工期方面,成本费用方面要达到什么要求。依据企业现有的管理基础,掌握各方面的信息和情况,利用网络计划技术为实现工程项目,寻求最合适的方案。 2、项目分解,列作业明细 一个工程项目是由许多作业组成的,在绘制网络图前就要将工程项目分解成各项作业。作业项目划分的粗细程度视工程内容以及不同单位要求而定,通常情况下,作业所包含的内容多,范围大多可分粗些,反之细些。作业项目分得细,网络图的结点和箭线就多。对于上层领导机关,网络图可绘制的粗些,主要是通观全局、分析矛盾、掌握关键、协调工作、进行决策;对于基层单位,网络图就可绘制得细些,以便具体组织和指导工作。 在工程项目分解成作业的基础上,还要进行作业分析,以便明确先行作业(紧前作业),平行作业和后续作业(紧后作业)。即在该作业开始前,哪些作业必须先期完成,哪些作业可以同时平行地进行,哪些作业必须后期完成,或者在该作业进行的过程中,哪些作业可以与之平行交叉地进行。 在划分作业项目后便可计算和确定作业时间。一般采用单点估计或三点估计法,然后一并填入明细表中。 3、绘网络图,进行结点编号 根据作业时间明细表,可绘制网络图。网络图的绘制方法有顺推法和逆推法。 1)顺推法:即从始点时间开始根据每项作业的直接紧后作业,顺序依次绘出各项作业的箭线,直至终点事件为止。 2)逆推法:即从终点事件开始,根据每项作业的紧前作业逆箭头前进方向逐一绘出各项作业的箭线,直至始点事件为止。 同一项任务,用上述两种方法画出的网络图是相同的。一般习惯于按反工艺顺序安排计划的企业,如机器制造企业,采用逆推较方便,而建筑安装等企业,则大多采用顺推法。按照各项作业之间的关系绘制网络图后,要进行结点的编号。 4、计算网络时间,确定关键路线 根据网络图和各项活动的作业时间,就可以计算出全部网络时间和时差,并确定关键线路。具体计算网络时间并不太难,但比较烦琐。在实际工作中影响计划的因素很多,要耗费很多的人力和时间。因此,只有采用电子计算机才能对计划进行局部或全部调整,这也是为推广应用网络计划技术提出了新内容和新要求。 5、进行网络计划方案的优化 找出关键路径,也就初步确定了完成整个计划任务所需要的工期。这个总工期,是否符合合同或计划规定的时间要求,是否与计划期的劳动力、物资供应、成本费用等计划指标相适应,需要进一步综合平衡,通过优化,择取最优方案。然后正式绘制网络图,编制各种进度表,以及工程预算等各种计划文件。 6、网络计划的贯彻执行 编制网络计划仅仅是计划工作的开始。计划工作不仅要正确地编制计划,更重要的是组织计划的实施。网络计划的贯彻执行,要发动群众讨论计划,加强生产管理工作,采取切实有效的措施,保证计划任务的完成。在应用电子计算机的情况下,可以利用计算机对网络计划的执行进行监督、控制和调整,只要将网络计划及执行情况输入计算机,它就能自动运算、调整,并输出结果,以指导生产。 网络计划技术的基本原理是:利用网络图表达计划任务的进度安排及各项活动(或工作)间的相互关系;在此基础上进行网络分析,计算网络时间参数,找出关键活动和关键线路;并利用时差不断改善网络计划,求得工期、资源与费用的优化方案。在计划执行过程中,通过信息反馈进行监督与控制,以保证达到预定的计划目标。 网络计划的优化方法概述:根据资源限制条件不同,可分为时间优化、时间-费用优化和时间-资源优化3种类型。 时间优化:在人力、物理、财力等条件基本上有保证的前提下,寻求缩短工程周期的措施,使工程周期符合目标工期的要求。主要包括压缩活动时间、进行活动分解和利用时间差三个途径。 时间-费用优化:是指找出一个缩短项目工期的方案,使得项目完成所需总费用最低。并遵循关键线路上的活动优先;直接费用变化率小的活动优先;逐次压缩活动的作业时间以不超过赶工时间为限三个基本原则。 时间-资源优化:分为两种情况:第一,资源一定的条件下,寻求最短工期;第二,工期一定的条件下,寻求工期与资源的最佳结合。 ”
挣值管理总结
“挣值管理是项目管理的一种方法,主要用于项目成本和进度的监控。挣值将到目前为止完成的工作与项目开始时的估计值进行比较,这给出了一个关于项目距完成还有多远的估量。通过从已经完成的工作量外推,项目经理可以得到项目完成还需要多少资源的估计。是用与进度计划、成本预算和实际成本相联系的三个独立的变量,进行项目绩效测量的一种方法。它比较计划工作量、WBS的实际完成量(挣得)与实际成本花费,以决定成本和进度绩效是否符合原定计划。 挣值分析的三个基本参数: 1.计划值 英文缩写为PV(Plan Value),又叫计划工作量的预算费用(BCWS,Budgeted Cost for Work Scheduled )。是指项目实施过程中某阶段计划要求完成的工作量所需的预算工时(或费用)。计算公式是: PV=BCWS=计划工作量*预算定额 PV主要反映进度计划应当完成的工作量,而不是反映应消耗的工时或费用。 2.实际成本 英文缩写为AC(Actual Cost),又叫已完成工作量的实际费用(ACWP,Actual Cost for Work Performed)。指项目实施过程中某阶段实际完成的工作量所消耗的工时(或费用)。主要反映项目执行的实际消耗指标。 3.挣值 (EV,Earned Value)又叫已完成工作量的预算成本(BCWP,Budgeted Cost for ...”
方差与标准差的定义
“方差的定义 变异量(数)(Variance),应用数学里的专有名词。在概率论和统计学中,一个随机变量的方差描述的是它的离散程度,也就是该变量离其期望值的距离。一个实随机变量的方差也称为它的二阶矩或二阶中心动差,恰巧也是它的二阶累积量。方差的算术平方根称为该随机变量的标准差。 来源:维基百科-方差 标准差的定义 标准差(英语:Standard Deviation),数学符号σ,在概率统计中最常使用作为统计分布程度(statistical dispersion)上的测量。标准差定义为方差的算术平方根,反映组内个体间的离散程度;标准差与期望值之比为标准离差率。测量到分布程度的结果。 来源:维基百科-标准差”
三点估算法估算工期和方差的计算公式和习题
“公式:Te=(To+4Tm+Tp)/6 参数说明: Te:预期活动持续时间; To:最乐观时间,为基于活动的最好情况,所得到的活动持续时间; Tm:最有可能时间,为基于活动最有可能活动持续时间; Tp:最悲观时间,为基于活动的最差情况,所得到的活动持续时间; 活动持续时间(工期Te)=(悲观Tp+乐观To+最可能时间Tm*4)/6 标准差=(悲观Tp - 乐观To)/6 方差=标准差的平方 三点估算法把非肯定型问题转化为肯定型问题来计算,用概率论的观点分析,其偏差仍不可避免,但趋向总是有明显的参考价值,当然,这并不排斥每个估计都尽可能做到可能精确的程度。 习题 A公司的某项目即将开始,项目经理估计该项目10天即可完成,如果出现问题耽搁了也不会超过20天完成,最快6天即可完成。根据项目历时估计中的三点估算法,你认为该项目的历时为(37),该项目历时的估算标准差为(38)。 (37)A.10天 B.11天 C.12天 D.13天 (38)A.2.1天 B.2.2天 C.2.3天 D.2.4天 参考答案:B、C ”
蒙特卡罗分析法
“蒙特卡罗分析法(Monte Carlo method)(统计模拟法),是一种采用随机抽样(Random Sampling)统计来估算结果的计算方法。由于计算结果的精确度很大程度上取决于抽取样本的数量,一般需要大量的样本数据,因此在没有计算机的时代并没有受到重视。 第二次世界大战时期,匈牙利美藉数学家约翰·冯·诺伊曼(John von Neumann,1903.12.28—1957.02.08)(现代电子计算机创始人之一)在研究中子的实验中采用了随机抽样统计的手法,因为当时随机数的想法来自掷色子及轮盘等赌博用具,所以就形象地用摩洛哥的赌城蒙特卡罗来命名这种计算方法。 利用蒙特卡罗分析法可用于估算圆周率:在边长为 2 的正方形内作一个半径为 1 的圆,正方形的面积等于 2×2=4,圆的面积等于 π×1×1=π,由此可得出,正方形的面积与圆形的面积的比值为 4:π。现在让我们用电脑或轮盘生成若干组均匀分布于 0-2 之间的随机数,作为某一点的坐标散布于正方形内,那么落在正方形内的点数 ...”
1月
29
春联的来历
“爆竹声中一岁除,春风送暖入屠苏。 千门万户曈曈日,总把新桃换旧符。 这是宋代王安石的《元日》诗。诗中所咏的“桃符”,就是古代春联的前身。张贴春联,是中华民族所独有的文化现象。红艳艳的春联,给新年增添出一道绚丽的色彩和喜庆的气氛。如果说门神的出现与桃树有关,那么,春联则直接取自于桃木,也还是起源于善于打鬼的神荼、郁垒两兄弟。门神和春联,是一株桃树上的两朵花,一朵花绽放出形态各异的门神,一朵花引来争奇斗艳的春联。所谓桃符,就是用桃木削制成的两块七八寸长、一寸多宽的小木板,上面分别写上“神荼”和“郁垒”的名字,钉在门的左右两侧以保佑家庭平安。后来,人们为了省事,渐渐地不用桃木板而是干脆用两片纸写上神荼郁垒的名字,贴在门的左右两边就完事了。 据说这种挂桃符的风俗,延续并发展到五代时期,西蜀的宫廷里开始在桃符上题写吉祥语,用来表达某种意愿。公元964年除夕,后蜀皇帝孟昶命学士辛寅逊题写联语,嫌其不工巧,于是自己提笔写了一副“新年纳余庆,嘉节号长春”的联语,这便是我国明文记载的第一副春联。 “春联”的正式命名,则是明代的事。明太祖朱元璋酷爱对联,有一年除夕,他传令文武百官和平民百姓,家家户户都要贴上用红纸写的春联。圣旨传出后,他在京城金陵(今南京)微服察访,只见大街小巷对联红光闪耀,甚为满意。不料走到城门口,发现一户人家居然没贴,他进门得知这户人家以阉猪为业,因无人写字正在发愁,于是兴致勃发,提起毫笔,为东家写就一联:“双手劈开生死路,一刀割断是非根”,御赐人家贴上。由于朱元璋身体力行,春节贴春联蔚然成风。朱元璋实在是一位热心的对联倡导者,他还亲书对联,赐与他手下的名将徐达:“破虏平蛮,功贯古今人第一;出将入相,才兼文武世无双”。又赠给修撰国史的谋士陶安:“国朝谋略无双士,翰苑文章第一家”。理政之余,他就与文人学士联对。一次,他思忖“色难”二字无对,不料解缙不假思索对出“容易”,他啧啧赞叹不已。据说又有一次,他微服私访,走进一家酒店进餐时,发现一个重庆的书生在座,便出了个上联与书生联对:“千里为重,重水重山重庆府”;书生暗知来者身份,立即对出下联:“一人是大,大邦大国大明君”。朱元璋听了,乐滋滋的,当即重赏了这个书生。 由此可见,一种风俗的形成与帝王将相、风流雅士们的大力推广和流行有密切的关系,春联也不例外。 ”
28
这是一位神人,他 的31岁 51岁 74岁 85岁
“有一位老人,他的名字叫褚时健。 生于1928年的褚时健出生在一个农民的家庭。1955年27岁的褚时健担任了云南玉溪地区行署人事科科长。 31岁时被打成右派,带着妻子和唯一的女儿下农场参加劳动改造。 文革结束后,1979年褚时健接手玉溪卷烟厂,出任厂长。当时的玉溪卷烟厂是一家濒临倒闭的破烂小厂。那年他51岁!扛下了这份重任。 思考: 而我们现在有很多2、30岁的人已经不想工作,害怕压力、害怕承担、怕苦怕累。到40岁已经觉得这一生的奋斗结束了。褚时健的奋斗故事51岁才刚刚开始。 经过褚时健和他的团队经过18年的努力,把当年濒临倒闭的玉溪卷烟厂打造成后来亚洲最大的卷烟厂,中国的名牌企业:红塔山集团。褚时健也成为中国烟草大王。成为了地方财政的支柱,18年的时间共为国家创税收991亿。 而就在褚时健红透全中国,走到人生巅峰时,在1999年因为经济问题被判无期徒刑(后来改判有期徒刑17年),那年的褚时健已经71岁。当从一个红透半边天的国企红人,执政了18年的红塔集团的全国风云人物一下子变成阶下囚,这个人生的打击可以说是灭顶之灾。 接下来的打击对一个老人才是致命的,妻子和女儿早在三年前已经先行入狱,唯一的女儿在狱中自杀身亡。 这场人生的游戏是何等的残酷,一般人想到的:此时这位风烛残年的老人在晚年遇到这样的不幸,只能在狱中悲凉的苟延残喘度过余生了。 三年后,褚时健因为严重的糖尿病,在狱中几次晕倒,后被保外就医。经过几个月的调理后,褚时健上了哀劳山种田,后来他承包了2400亩的荒地种橙子。那年他74岁。 王石感慨地说:我得知他保外就医后,就专程到云南山区探访他。他居然承包了2400亩山地种橙子,橙子挂果要6年,他那时已经是75岁的老人了,你想像一下,一个75岁的老人,戴着一个大墨镜,穿着破圆领衫,兴致勃勃地跟我谈论橙子6年后挂果是什么情景。所以王石说:人生最大的震憾在哀劳山上!是穿着破圆领衫,戴着大墨镜,戴着草帽,兴致勃勃的谈论6年后橙子挂果的75岁褚时健。6年后,他已经是81岁的高龄。 后来有人问深圳万科集团董事长王石:你最尊敬的企业家是谁?王石沉吟了一下,说出了一个人的名字。不是全球巨富巴菲特、比尔.盖茨或李嘉诚,也不是房地产界的某位成功人士,而是一个老人,一个跌倒过并且跌得很惨的人。 这些看起来无法跨越的困难并没有阻挡褚时健,他带着妻子进驻荒山,昔日的企业家成为一个地道的农民。几年的时间,他用努力和汗水把荒山变成果园,而且他种的冰糖脐橙在云南1公斤8块钱你都买不到,原来这些产品一采摘就运往深圳、北京、上海等大城市,效益惊人。因为褚时健卖的是励志橙。 王石再去探望褚时健时,他看到了一个面色黝黑但健康开朗的农民老伯伯。他向王石介绍的都是果园、气温、果苗的长势。言谈之间,他自然地谈到了一个核心的问题:2400亩的荒山如何管理? ...”
bitmap思想及其在java中的相关实现
“先看一个题目: 给你一堆西安市的电话号码列表,数量大概在千万级,要求从中找出所有重复的电话号码,需要时间复杂度尽可能小。 目前西安市的电话号码大概都以8开头,为8位,也就是类似于82678578这样子 二重暴力搜索时间复杂度太高,这里我们不予考虑。 容易想到的办法就是建立一个标志数组,int boolean都行,用相应的位置值来代替这个号码是否出现,根据数组的可直接存取特性,来提高效率。 但是你是否想过或测试过 int; boolean; 这样类似的语句是否可以通过编译并且执行。 再仔细思考下,就会发现,int型的字段太过于占空间,我们只需要知道这个号码存在与否,所以最简单的0和1就够用了,能表示0和1的最小存储单位是什么呢? 是内存中的一位。 OK,这就是bitmap的思想。 将西安市的电话号码去掉开头的8,就可以将其映射到一个1到10000000的数组中。 8bit是1byte,1024byte是1kb,1024kb是1mb 所以10000000个bit占用的空间为 10000000/8/1024/1024mb大概为1mb多些, 这对于现在大家动不动几G的内存来说,完全是小菜一碟。 同时,java中也有对应的实现,java.util.BitSet, 完全是为这个量身定做的java类。 这个类从jdk1.0开始就有了,不过其中的某些方法是jdk1.4以后才有的, 大家用的时候要当心。 另外BitSet是非线程安全的,需要外部同步。 下面的简单代码给出了BitSet的例子: //创建一个具有10000000位的bitset 初始所有位的值为false java.util.BitSet bitSet = new java.util.BitSet(10000000); //将指定位的值设为true bitSet.set(9999, true); //输出指定位的值 System.out.println(bitSet.get(9999)); System.out.println(bitSet.get(9998)); ”
Java入门-BitSet的使用
“在使用PAT-Tree的中文实现中需要用到大量的位运算,BitSet在效率上的表现可能尚待商榷,不过拿来做实验是没有问题的。 在Java的文档中说明了BitSet实现了Vector接口,是一个可按需增长的存储位的数据结构,位的值位布尔型,初始大小为64bit,初始值均为“false”。 常用方法: void set(int bitIndex)、void set(int bitIntex, boolean value) 将bitIndex位置的值设为“true”或者给定的值 boolean get(int bitIndex) 获取bitIndex位置处的值 BitSet get(int fromIndex, int toIndex) 以BitSet存储返回fromIndex与toIndex区间之间的值 void clear()、void clear(int ...”
synchronized与static synchronized 的区别
“通过分析这两个用法,我们可以理解java中锁的概念。一个是实例锁(锁在某一个实例对象上,如果该类是单例,那么该锁也具有全局锁的概念),一个是全局锁(该锁针对的是类,无论实例多少个对象,那么线程都共享该锁)。实例锁对应的就是synchronized关键字,而类锁(全局锁)对应的就是static synchronized(或者是锁在该类的class或者classloader对象上)。下面的文章做了很好的总结: 1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。那么static synchronized恰好就是要控制类的所有实例的访问了,static synchronized是限制线程同时访问jvm中该类的所有实例同时访问对应的代码快。实际上,在类中某方法或某代码块中有 synchronized,那么在生成一个该类实例后,该类也就有一个监视快,防止线程并发访问该实例synchronized保护块,而static synchronized则是所有该类的实例公用一个监视块了,也也就是两个的区别了,也就是synchronized相当于 this.synchronized,而static synchronized相当于Something.synchronized. 一个日本作者-结成浩的《java多线程设计模式》有这样的一个列子: pulbic class Something(){ public synchronized void ...”
什么是hash
“基本概况 HASH函数(计算机算法领域) 基本知识 Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 基本概念 * 若结构中存在和关键字K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。 * 对不同的关键字可能得到同一散列地址,即key1≠key2,而f(key1)=f(key2),这种现象称冲突。具有相同函数值的关键字对该散列函数来说称做同义词。 综上所述,根据散列函数H(key)和处理冲突的方法将一组关键字映象到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“象” 作为记录在表中的存储位置,这种表便称为散列表,这一映象过程称为散列造表或散列,所得的存储位置称散列地址。 若对于关键字集合中的任一个关键字,经散列函数映象到地址集合中任何一个地址的概率是相等的,则称此类散列函数为均匀散列函数(Uniform Hash function),这就是使关键字经过散列函数得到一个“随机的地址”,从而减少冲突。 散列函数的性质 所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果。但另一方面,散列函数的输入和输出不是一一对应的,如果两个散列值相同,两个输入值很可能是相同的,但并不能绝对肯定二者一定相等。输入一些数据计算出散列值,然后部分改变输入值,一个具有强混淆特性的散列函数会产生一个完全不同的散列值。 典型的散列函数都有无限定义域,比如任意长度的字节字符串,和有限的值域,比如固定长度的比特串。在某些情况下,散列函数可以设计成具有相同大小的定义域和值域间的一一对应。一一对应的散列函数也称为排列。可逆性可以通过使用一系列的对于输入值的可逆“混合”运算而得到。 常用HASH函数 ·直接取余法:f(x):= x mod maxM ; maxM一般是不太接近 2^t 的一个质数。 ·乘法取整法:f(x):=trunc((x/maxX)*maxlongit) ...”
什么是消息摘要
“消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。 消息摘要采用单向Hash 函数将需加密的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是"真身"的"指纹"了。 HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到哈希值相同的两个不同的输入消息,在计算上是不可能的。所以数据的哈希值,即消息摘要,可以检验数据的完整性。 哈希函数的这种对不同的输入能够生成不同的值的特性使得无法找到两个具有相同哈希值的输入。因此,如果两个文档经哈希转换后成为相同的值,就可以肯定它们是同一文档。所以,当希望有效地比较两个数据块时,就可以比较它们的哈希值。例如,可以通过比较邮件发送前和发送后的哈希值来验证该邮件在传递时是否修改。 ”
27
对于Linux chmod命令的阐述
“Linux的流行,以至于很多人开始学习Linux。学习中经常会看到Linux系统很多的命令,你是否了解这些命令,本文讲解Linux chmod命令,希望能给你能应用好Linux chmod命令。 只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。 options: -c,--changes 只输出被改变文件的信息 -f,--silent,--quiet 当chmod不能改变文件模式时,不通知文件的用户 --help 输出帮助信息。 -R,--recursive 可递归遍历子目录,把修改应到目录下所有文件和子目录 --reference=filename 参照filename的权限来设置权限 -v,--verbose 无论修改是否成功,输出每个文件的信息 --version 输出版本信息。 who u 用户 g 组 o 其它 a ...”
帮助孩子踏上自律之路—管教中的自由
“与纪律孩子学骑脚踏车时,成人的协助大致分为几个阶段:刚开始时,你答应孩子不会放手,让他安心地尝试;在孩子开始抓到诀窍时,你会悄悄的放开一、二秒,但是紧随身边;随着孩子技巧的熟练,你会放开更长的时间,但仍紧随在身边;渐渐地,你允许孩子在你的视线范围内自己骑;随着你对他的信任,孩子渐渐地扩大被允许的“安全范围”,最后孩子不需要你的叮咛或限制,已经可以自己面对状况了。管教孩子也如同这般。 生活在社会人群中,你能拥有多少自由? 常常,我们努力的捍卫自己的自由,却谴责别人滥用自由;我们总认为自己能理智地约束行为,却总觉得别人不够自律。 常常,我们希望老师多给孩子一些自由,让孩子快乐的学习与发展;但是当孩子在我们的责任范围内时,又处处限制他,以便掌控他。 比如,当你要带着孩子拜访长辈,孩子执意要穿拖鞋出门时,你会尊重他的选择吗?这是自由,或是纪律?事实上,孩子的这个决定并不至于对任何人造成实质的伤害,而所谓的“礼貌”,只是成人自订的标准限制,不是吗? 父母与孩子之间,教师与学生之间,老板与员工之间,无时无刻不在做自由与纪律的拉锯战,每个人心中都有自己的一把尺,很难与对方的标准达到成完全一致。所以,什么情况下你会给孩子自由?你坚持的纪律是什么?自由与纪律的限度是什么?权威与民主的平衡点是什么?这实在是现代父母和教育工作者,需要时时反省、检讨的课题。 (一)强调自由的学校教育 现在的幼教趋势都强调让孩子“自由选择活动”,如蒙特梭利教育的“自由工作”;发现学习法的“自由选区”;方案教学在主题探究活动中所重视的“自主学习”。这些教学法的教育哲学,都相信人类与生俱有自由权(liberty)与活动的自由(freedom);孩子天生有学习的本能,唯有透过自由才能开启天生潜能;孩子有个别差异,因此学习的时间和速度各不相同,所以,不应该对所有孩子实施统一的课程标准、要求相同的学习时间。此外,学习是无所不在,且持续进行的,所以,唯有给予孩子学习上的自由,才能产生学习动机,真正对孩子有所助益。 这些教育理念所强调的自由是属于“智力的自由”,是在培养智能上的独立自由个体。然而,这样的自由并不是一蹴可及,也并不是只放任孩子“为所欲为”就可达成。在自由学习的环境中,孩子需要拥有“活动性的纪律”,而教师则必须拥有专门的技术与修养。所以,你若想允许孩子自由学习,就必须先有以下准备: 1、成人必须先了解幼儿的发展需求,并能尊重幼儿,确定孩子是在被“信任”而非被“放弃”或“忽视”的情境下拥有自由。 2、成人必须是敏锐的观察者,知道如何分辨孩子究竟是正在显露其自发的精神生命,亦或是粗鲁、不适当的行为。成人必须清楚何时该介入制止,何时只要在一旁观察与保护。一旦成人疲于做这样的观察时,就无可避免地会让孩子为所欲为。 3、成人必须勇于反省自己,对心中“是非善恶”的量尺,做更深入的思考与确定。因为如果要让孩子拥有纪律,就必须先具备“明辨是非”的能力。例如:并非安静不动就是好孩子,乖乖听话就是有纪律。 (二)他律和自律 就字源学而言,纪律disci-pline一字,源自拉丁文disco,意为“学习”。其基本的定义是:服从必须要学习的规则,或者克制自己的行动,或是学习事物的必要规则。教育必然包含学习,而所有学习又包括具有上述意义的纪律。因此,教育必定包括纪律,任何自由形式的教育都不能脱离纪律的学习。 但是,必须清楚分辨自律与他律的不同。不论是籍著提供奖品贿赂儿童学习规则,或是运用惩罚来迫使儿童学习,都是强迫性的纪律形式。这是“他律”——儿童想做的事与成人想要他学习的事,其中有人为的关系。所以,儿童受到奖励或惩罚后,往往会表现出对事物的喜爱或厌恶,这些爱憎来于以人为方式所学习到的经验。因此,儿童并没有学到什么才是真正合宜的行为举止,却养成了依靠外在的约束和奖励,再去迎合要求的工具性态度。 反之,自律是经由个人的自觉而服从规则,想做的事情与遵守规则并没有人为的关系,就显示出某种自主性。不论是必须如此、或想去做、或值得做的事,当一个人愿意遵守规则,那么。纪律即可被视为是自己给自己的规范。自律与自主有密  切关系,它是人类的优点,也是教育的目标。人们所推举的优点,如:正直、勇敢、坚毅等,都明显包含了自主自律。孩子是否愿意遵守规则、自主自律,取决于他在面对现实时,如何思考、选择、做决定与承担后果责任。一个具有自由意志的个体,能够思考,也能控制自己的心智。所以,当儿童的行为不符合规则时,成人若一心只想籍由外力来修正孩子的行为,而不能引发孩子内在的理性控制,将会徒劳无功。如果要改变孩子,首先,你得了解他,取得他的信任,让他愿意向你寻求协助。一旦他自己决定想要改变,改变才会发生 (三)管教中的自由与纪律 孩子学骑脚踏车时,成人的协助大致可分为几个阶段:刚开始时,你会答应孩子不会放手,让他安心地尝试;在孩子开始抓到诀窍时,你会悄悄地稍微放开一、二秒,但是紧随在身边跑;随着孩子技巧的熟练,你会放开更长的时间,但仍然紧随身边跑;渐渐地,你允许孩子在你的视线范围内骑车;随着你对他的信任,孩子渐渐地扩大被允许的“安全范围”而至最后不需要你的叮咛或限制,孩子已经成熟到自己可以面对状况了。 管教孩子也如同这般,需要按部就班地留意几个原则,才能让孩子从自由当中获得自律。 订定规则,让孩子享有安全范围内的自由。 1、订定规则,让孩子享有安全范围内的自由 比如婴儿只有在安全围栏内行动时,才能拥有自由探索的空间,所有幼小孩子都需要清楚的规则与界线的保护,界线内的一切是安全的,他们可以在安全范围内尽情享受自由,但超越界线则是“绝对禁止的行为”。 2、创造有弹性、有自由的管教空间 孩子的本质就是“自我中心”,这正是他们需要规则的原因;但他们的本性天真,很难不违背僵硬的界线,所以,父母要创造一个有弹性、有自由的管教空间。在安全范围内,允许孩子自己做决定与犯错,他们才能学会适当地处理自由。 若不给孩子预留犯错、选择或成长的空间,最后,他们将不知如何处理自己所犯的错。 3、随着成长,学会处理愈来愈大的自由和选择 当父母愿意慢慢地把责任交给孩子,而自由也伴随责任渐增时,孩子的自信与自律便会随之自然产生。此时,父母订定的规则也将渐渐转为信任,等到孩子有能力打破“安全范围”的限制时,他们反而不想打破它,因为,孩子已经能享受  那种同时拥有尊敬、保护别人和自己的生活方式。 4、以爱为动力,创造自由 处罚并非完全不可行,但当父母要做出动作之前,要先冷静、思考、计划,然后再采取行动。因为对孩子做出任何未经思考、武断专横或暴力举动的处罚都是虐待,处罚永远都不该用来破坏孩子的心灵与精力,它应该具有建设性,让孩子知道如何面对人生。所以,适当的管教必然有助于培养孩子成为具有自信,并能控制自己行为与情绪的人;正确管教的最终目的应该是建立孩子的自尊,进而建立自律的生活。 5、因材施教,没有统一的时间表 每个孩子对爱、自由、纪律与学习的回应方式皆不同,有些孩子需要较多的指导与尝试错误,有些孩子一教就会,不需父母费心。所以,何时该给孩子自由、信任与放手,每个孩子都不同。父母必须投注时间深入了解每个孩子,花时间了解孩子的希望与需要、优点与缺点,以及他们对事情的不同看法,而后才可能具有建设性的帮助他们。 父母若希望孩子拥有自信、自尊、自律与自我价值感,进而拥有真正的自由,就必须未雨绸缪地为孩子做准备。要确定一点,那是准备,而非保护;不能速成,也不可强求。在适当的限制下拥有自由,在自由的情境中培养自律,一步一步地,孩子才能得到真正的快乐与成功,才能于日后顺利地面对生活的起伏与挑战。 (四)省思 蒙特梭利博士说:“如果要让儿童得到真正的自由,就需先唤醒成人的良心。”“自生命的开始,我们即塑造儿童去忍受暴行、服从独栽者,那又如何论及民主与自由?如果我们培养儿童成为奴隶,又如何能期待民主?真正的自由是始于生命的开始,而非始于成年期。当人的能力缩减而变形,其意志也为年长者所破坏时,我们又如何能期待他们有接受与使用自由的权利? 我们常认为孩子在某个年龄充满强烈的叛逆性,也向孩子强化他“顺从的美德”——乖、听话。事实上,顺从本是人类最强烈的天性之一,只是孩子光只内心愿意服从是不够的,他还需要透过学习才知道如何服从,也才有能力执行必须服从的行动。所以,服从的能力必须经由有系统的意志力活动练习才可能萌芽发展,不可能勉强而得。 不论我们透过何种方法,想让孩子学习纪律与顺从,请记得,如果孩子的心中充满恐惧,他将无法适应未来的新世界。在属于孩子的未来,谁也不知道会怎么样;我们只知道,他必定充满了变异性,无法用僵硬的定律解释。所以,不应该一味地要求孩子顺从我们,我们的教育方式一定要能帮助孩子具备接受生命挑战的勇气、独立的精神,以及适应环境的能力。”
蘇秦始将连横说秦
“苏秦始将连横说秦惠王,曰:“大王之国,西有巴蜀汉中之利,北有胡貉代马之用,南有巫山黔中之限,东有殽函之固。田肥美,民殷富,战车万乘,奋击百万,沃野千里,蓄积饶多,地势形便,此所谓天府,天下之雄国也。以大王之贤,士民之众,车骑之用,兵法之教,可以并诸侯,吞天下,称帝而治。愿大王少意,臣请奏其效!”秦王闻之:毛羽不丰满者,不可以高飞;文章不成者,不可以诛罚;道德不厚者,不可以使民;政教不顺者,不可以烦大臣。今先生俨然不远千里而庭教之,愿异日。” 苏秦曰:“臣固疑大王之不能用也。昔者神农伐补遂,黄帝伐涿鹿而禽蚩尤,尧伐驩兜,舜伐三苗,禹伐共工,汤伐有夏,文王伐崇,武王伐纣,齐桓任战而霸天下。由此观之,恶有不战者乎?古者使车毂击驰,言语相结,天下为一。约从连横,兵革不藏,文士并饬,诸侯乱惑,万端俱起,不可胜理!科条既备,民多伪态。书策稠浊,百姓不足。上下相愁,民无所聊。明言章理,兵甲愈起。辩言伟服,战攻不息。繁称文辞,天下不治。舌敝耳聋,不见成功。行义不亲。于是乃废文任武,厚养死士,缀甲厉兵,效胜于战场。夫徒处而致利,安坐而广地,虽古五帝、三王、五霸,明主贤君,常欲坐而致之,其势不能,故以战续之。宽则两军相攻,迫则杖戟相撞,然后可建大功。是故兵胜于外,义强于内,威立于上,民服于下。今欲并天下,凌万乘,诎敌国,制海内,子元元,臣诸侯,非兵不可。今之嗣主,忽于至道,皆惛于教,乱于治,迷于言,惑于语,沉于辩,溺于辞。以此论之,王国不能行也。” 说秦王书十上,而说不行。黑貂之裘敝,黄金百斤尽,资用乏绝。去秦而归,羸縢履蹻,负书担囊,形容枯槁,面目黧黑,状有愧色。归至家,妻不下纴,嫂不为炊,父母不与言。苏秦喟然叹曰:“妻不以我为夫,嫂不以我为叔,父母不以我为子,是皆秦之罪也。”乃夜发书,陈箧数十,得太公《阴符》之谋,伏而诵之,简练以为揣摩。读书欲睡,引锥自刺其股,血流至足。曰:“安有说人主不能出其金玉锦绣,取卿相之尊者乎?”期年,揣摩成,曰:“此真可以说当世之君矣。” 于是乃摩燕乌集阙,见说赵王于华屋之下,抵掌而谈。赵王大说,封为武安君,受相印。革车百乘,锦绣千纯,白璧百双,黄金万镒,以随其后。约从散横,以抑强秦。故苏秦相于赵,而关不通。 当此之时,天下之大,万民之众,王侯之威,谋臣之权,皆欲决于苏秦之策。不费斗粮,未烦一兵,未战一士,未绝一弦,未折一矢,诸侯相亲,贤于兄弟。夫贤人任而天下服,一人用而天下从。”故曰:“式于政,不式于勇;式于廊庙之内,不式于四境之外。”当秦之隆,黄金万镒为用,转毂连骑,炫煌于道,山东之国,从风而服,使赵大重。 且夫苏秦,特穷巷掘门,桑户棬枢之士耳。伏轼撙衔,横历天下,庭说诸侯之主,杜左右之口,天下莫之伉。 将说楚王,路过洛阳。父母闻之,清宫除道,张乐设饮,郊迎三十里;妻侧目而视,侧耳而停;嫂蛇行匍伏,四拜自跪而谢。苏秦曰:“嫂!何前倨而后卑也?”嫂曰:“以季子位尊而多金.”苏秦曰:“嗟乎!贫穷则父母不子,富贵则亲戚畏惧,人生世上,势位富厚,盖可以忽乎哉?” ============= 译文 苏秦起初用连横策略游说秦惠王说:“大王您的国家内,西边有巴、蜀、汉中的丰富资源,北部有胡地貉、代地马的珍贵物品,南方有巫山、黔中的险阻,东方有崤山、函谷关的坚固。土地肥美,人民富裕,战车有万辆,勇士有百万,肥沃的土地有千里之广,国家府库充实,地势险要、便于防守,这就好比上天所赐的宝库,是天下的富饶之地。凭借大王的贤能,人口的众多,操练军队,研习兵法,可以兼并诸侯,一统天下。希望(恳请)大王稍稍注意以上优势,请允许我陈述地利兵强的功效。” 秦惠王说:“我听说过,毛羽没有长成的鸟儿,不能飞到高处;法令没有健全的国家,不能实施惩罚;道德不崇高的君主,不能役使百姓;政治和教化不能顺应民心的国君,不能控御大臣。今天先生不辞辛劳,亲自登庭,认真(庄重)赐教,我希望改日再恭听赐教。” 苏秦说:“臣下早就预料大王您不相信我。从前神农氏讨伐补遂,黄帝进攻涿鹿擒获蚩尤,尧放逐驩兜,舜迁徙三苗,禹攻打共工,商汤攻夏桀,文王攻崇侯虎,武王攻商纣,齐桓公靠征战四方而称霸天下。这样看来,哪里有不打仗而统一天下呢?从前各国武力相向,订立盟约,天下于是统一;各种谋略层出不穷,不放弃武力;士纷纷巧言善辩,诸侯无所适从;局面复杂混乱;虽然具备法令条文,但百姓邪恶狡诈;文书繁杂,民间疲于应对;国君和百姓都忧心忡忡,民生艰难;依靠法令条文,却无法停止战乱;求诸外交盟约,依然争斗不休;凭借教化王道,仍旧天下大乱;哪怕费尽口舌,也不能奏效;推行诚信道义,天下依然不太平。于是,放弃文治,斥诸武力,优待军队,整顿武备,在战场上决一胜负。 如果想无为而得利,无所事事就能拓广土地,即使五帝、三王、五伯这样的贤能君主也办不到,只好借助战争手段实现。远处两军互相进攻,近处双方展开肉搏,结果就能得到巨大收益。所以军事上的胜利可以巩固对内统治;国君通过胜利的战争可以树立无上的权威,百姓乖乖臣服。现在打算统一天下(做天下共主),让敌国俯首,让海内归附,使诸侯庶民称臣,非得依靠军事力量不可!现在的君主,没有重视最好的学说(自己的主张),不明白教化和治理,被文士的言语巧辩所迷惑。这样看来,大王您不能推行我的主张。” 苏秦连向秦惠王上了十封奏书,秦惠王仍然不为所动。苏秦的财宝礼物消耗一空,被迫离开秦国。(见诸侯的耗费很大,因为自己的行头、食宿、打点的费用都要花钱)苏秦缠裹藤索绑腿,脚穿草鞋,担着书本和行李,身形瘦弱,脸色黝黑,面带愧色回到家中。妻子见了苏秦,不再纺织;嫂子见了苏秦,不给他东西吃;父母见了他也不说话。(耗费了大量钱财,空手而归,故感到失望)苏秦叹息说:“妻子不把我当丈夫看;嫂子不把我当叔叔看,父母也不把我当儿子看,这都是因为秦惠王不接纳我的缘故。”于是夜里打开几十个书箱,找到《太公阴符》的书。从此,认真阅读,精选熟记,探求书中本意。当读书昏昏欲睡的时候,苏秦就用锥子刺自己的大腿,血流到了脚上。苏秦自我激励说:“怎么会有游说诸侯,而不能得到诸侯的金银珍宝,得到高官厚爵呢?!”一年后,苏秦学成,说:“这真的可以去游说君主们了。” 于是来到燕国的乌集阙,在华丽高大的宫室里拜见并游说赵肃侯,二人交谈得非常投机。赵肃侯非常高兴,将苏秦封为武安君,拜为相;又赐给他百辆兵车,千匹锦绣,百双白璧,万镒黄金。这些物资都作为苏秦发展合纵、分解连横的经费,借此来削弱秦国。 所以,苏秦做赵相,秦国军队不敢出函谷关。当时,天下的黎民苍生、诸侯君王、谋臣策士,都要取决于苏秦的策略。不耗费粮食,不损耗人力,不参加战争,诸侯们团结和睦,胜过亲兄弟。真是贤人出现,天下归顺;贤人当政,天下追随。所以说:依靠教化,而不是依靠武力;依靠朝廷,而不是依靠外国。苏秦隆盛的时候,万镒黄金随意挥洒,大队车马荣耀而过,崤山以东的诸侯国像草随风倒那样服从,使赵肃侯在诸侯中大受尊重。何况苏秦只是穷街僻巷出身的读书人,能乘车骑马,显赫一时,游走天下,登廷说服诸侯,驳倒诸侯身旁的谋士,没有谁能与他分庭抗礼。 苏秦打算出使楚国,劝说楚威王参加合纵抗秦,途中路过洛阳,回家停留,父母听说苏秦回家,清扫住宅和道路,演奏音乐,准备酒席,在三十里外迎接。妻子不敢正眼看他,小心翼翼地伺候;嫂子像蛇一样爬行在地上,拜倒在地,跪求原谅自己的怠慢。苏秦说:“嫂嫂为什么先前倨傲,后来谦卑呢?”苏秦的嫂子回答说:“因为您现在地位尊贵而富有。”苏秦说:“真是啊!我贫困潦倒的时候,连父母都不认我,一旦我富贵起来,亲戚就心怀敬畏。人生在世,权势地位和财富权力,怎么可以轻视呢?” ”
一个在高盛工作的学姐总结的12个时间管理妙招
“导读:一天的时间永远是 24 个小时,高效率的人能把 24 小时变成 48 小时,而低效率的人却能把 24 小时变成 12 小时,如何有效的利 用时间,请看一个在高盛工作的学姐总结的 12 个时间管理妙招吧。 在朋友当中, 我被认为是效率使用时间的人, ...”
馄饨、云吞与抄手
“《水浒》里宋江误上贼船,被张横问要“吃板刀面还是吃馄饨”。张横服务态度好,还细加解释:板刀面就是挨刀子,馄饨就是自家跳水省了老爷一刀。虽有些黑色幽默,但确实生动如绘。 馄饨依字辨形,和“混沌”相关。宋时说冬至吃馄饨,大概是因为这混沌劲合了什么开天辟地宇宙洪荒的意思。后世北方又所谓“冬至饺子夏至面”。大概馄饨和饺子系出一门,不小心分裂经营了。广东话云吞读音与江浙“馄饨”类似,本是同根生;四川所谓“抄手”明摆着就是馄饨。 当然,广东云吞、四川抄手与江浙馄饨可以攀亲戚,和北方饺子却是大大不同。饺子皮圆而厚,馅料鼓饱,捏边包裹,水煮完乍看白胖贼秃一个,一咬开香味 郁郁菲菲。北方人所谓原汤化原食,饺子汤是带点面粉香的白水。嘴精刁些的子弟,吃饺子得找好醋就着。馄饨皮方而薄,折叠裹馅,姿容秀雅。煮时常用汤,一起 锅身段婀娜,俨然出浴美人,吃时不离汤水。如果赶上包法华丽、难分彼此时,有个偷懒法子:南北火锅的做法——老北京火锅更多白水涮后找好酱来配;南方火锅 更多汤香料加意渲染。这一哲学运用到面食上,北水饺南汤馄饨,一目了然。 馄饨皮薄,馅料花样也精致。饺子肚里说学逗唱五花八门,馄饨就兰心蕙质书香门第得多。江浙一带老店铺,大多逃不出猪肉、榨菜、虾、蔬菜、葱姜这几样 的排列组合。猪肉膏腴,虾肉清滑,蔬菜、榨菜丁加点丝缕颗粒的细密口感,煮熟后隔着半透明的皮,呼之欲出,要的是个口才浑成又紧致。唐鲁孙说民国时有鸭肉 馄饨,大概取鸭肉紧密鲜实吧。我听广东老饕说,云吞馅有胆敢不用虾球者,品第就次了一等,会被老饕低看。除虾与配料外,也就猪腿肉剁细做陪衬,使虾球这白 净净的书生有点儿金缕衣的烂漫,咬下去弹牙清润。四川抄手的馅变化略少一些,但要在精细:猪肉切得蓬松,与鸡蛋情投意合搅成一片,自有小家碧玉的动人。 佛要金装,妙在人衣搭配。江浙馄饨的皮子常略厚一些,如果赶上菜肉大馄饨,皮厚可以直追饺子。江浙馄饨好的用鸡汤、骨头汤,苏锡之类另加蛋皮丝、干 丝。以汤沐皮,不脱面食本色。好汤煮得皮鲜,一口下去,馅鲜皮润汤浓交相辉映,各得其所。所以江浙馄饨皮与馅分庭抗礼,比较像正襟危坐的主食。近年来各种 馄饨店馅料百变,干贝、香菇、腊肉 、咸肉、栗子等纷纷登场,配方华丽直逼北方饺子,于是皮愈加厚,像饺子的改良版。 广东云吞和四川抄手,有一点 是类似的:论汤与皮,比江浙谨细得多。《金瓶梅》里西门庆叫拿肉鲊拆上几丝鸡肉,加上酸笋韭菜做碗馄饨汤,这般用心,于北方算大户人家谨细了,在广东却遍 地皆是。云吞皮极薄,和福建小馄饨类似,真有美人肌肤吹弹得破的风度。所以云吞上桌,活脱脱就是一颗圆馅裹一层白裙。云吞的汤常用大地鱼熬,香浓清美。鲜 汤薄皮,薄如片纸,所以云吞的汤与皮经常呈波光粼粼流动状,馅反而像定海神珍铁。吃了云吞,被虾馅在口里弹牙跳舌一番,皮与汤一起落花流水下肚去也,才明 白何谓“喝馄饨”。广东人喜欢云吞面,云吞为底铺面其上:饮食里衬底的总是最柔若无骨,云吞可以当之矣。 抄手的皮薄类似云吞,汤底酱料则花样更 多,可以清汤可以红油,个性从容得多。但抄手的馅不像云吞那么是颗巍然不动的虾球,于是劲弹减色,香软倍增。吃抄手好在流畅顺滑,馅软而鲜,与皮与汤一起 ...”
地图上的权力:世界为什么需要 OpenStreetMap?
“此文发表在Gizmodo,原作者是黑客一名,Serge Wroclawski,他是OpenStreetMap的创立者,OpenStreetMap美国组织的建立者,华盛顿特区及OSM纽约市的召集人。自称是一名有道德、要改变世界的黑客。 每次当我向别人谈及“OpenStreetMap“的事情时,他们都无一例外地发问,“为什么不用Google地图了”?从实用的立场,这是一个很理性的问题,但最终这不仅仅是一个实用主义问题,而是我们想要生活在哪种社会的问题。我第一次谈及这个话题是在2008年首届绘制华盛顿特区地图的MappingDC会议上。 十九世纪时,人们在时间问题上抗争,不是他们拥有多少时间,而是现在到底几点的问题。那时候存在钟,每个城市有它自己的“当地时间”,每个城市通过钟获知时间,此外,还有教堂的钟。再就是铁路时间,最后有了格林威治时间成了世界标准时间,今天绝大部分人把时间视为永恒,不会再看做其它。在美国,时间问题在铁路首次普及,之后又伴随大学、巨型城市而解决。 而让现代人困惑的是地理位置,每个人都在寻找精准的地理信息。Google每年花费10亿美金维护它的地图,而这还不包括花费15亿美金收购的Waze。Google是目前唯一一家试图拥有所有地方地理数据的公司,同样还在努力的有Nokia,它收购了Navtek/TomTom/Tele Atlas试图进行数据整合。所有这些公司都想变成精准的地理信息源。 这也是为什么地面上的信息变成了一个巨大商机。而随着每辆汽车里面有GPS,每个人口袋里面有智能手机,向人们提供你在哪里、可以去哪里的之类信息的市场竞争越来越激烈。 既然有这些公司,那为什么我们还需要一个OpenStreetMap这样的项目呢?答案很简单,作为一个社会,不应当由一家公司在地理信息上垄断,就如在十九世纪不应当有一个机构在时间上垄断。地理信息是共享资源,当你将所有权力给予一个单独的实体,你给予他们的就不止是你的地理位置,更是在塑造它。总之,有三个问题值得我们关心:谁决定地图上应当显示的内容,谁决定你在哪里以及你应当去哪里,还有个人隐私问题。 谁在决定Google地图上要显示的内容?答案显然是Google自己。在2009年的时候我参加过一个地方政府会议,发现与会者很关心这个问题,因为Google决定了哪些商业信息会被显示在地图上。自从政府保持中立,地图业务外包后,控制权就交给了第三方,他们有理由去关心这些问题。 Google未来将地理信息搜索结果商业化,甚至推出付费结果,或优先为订阅用户服务,似乎是不可避免的。如果他们没有这么做的话,就不会有我在家附近搜索“早餐”时第一个结果跳出来的就是“赛百味餐厅”,哪里会有如此巧合的事情。 当然Google不是唯一的地图提供方,这只是一个例子。关键是,不管提供方地图是谁,你都交给了他们控制权,让他们决定哪些是优先呈现的信息,哪些根本不会显示。 第二个关心点是地理位置。谁在定义你的周边环境,或你是否应当去那里。这个问题是由ACLU(美国自有公民联盟)提出的。作为地图提供方算法的一部分,他们提供你驾车、骑车、步行路径方案,让你使用他们确定的安全的、或危险的邻居环境信息。这里的问题在于谁在用什么确定这个周边环境安全或不安全,或安全仅仅是为了一些邪恶目的而存在的代码文字。 目前Flickr借助用户通过API上传的照片来收集周边信息。他们用这些信息为你的照片贴标签,但也存在一种可能,就是他们会以一种更精妙的方式为了影响从交通方式到地产价格等任何事情而使用这些周边信息,因为当地图提供方足够强大的时候,他们就变成了“真相”的来源。 最后,这些地图提供方在你可能不同意的情况下,存在收集你地理信息的动机。当你在用Google及Apple他们服务的时候,他们就在收集你的地理信息。他们能够用这些信息去改善他们地图的精准性,而Google很早就宣布他们会用这些信息去跟踪你去的地方与搜索结果之间的关联性。全球有5亿部安卓手机,这是一个巨大的基于个人层面涉及到人们散步、去工作、去看医生、可能参加一个抗议活动等这些具体层面的信息收集。不管他们宣称他们是怎样的博大,我们肯定不能忽略如此巨大的数据掌控在一单独实体手中的社会意义。有些公司像Foursquare是使用游戏化的方式去掩盖实际上大规模的地理信息收集工作,甚至Google也用《Ingress》这款虚拟现实地理游戏来收集信息。 现在我们识别出了问题,那么我们可以看看OpenStreetMap如何解决?在地图内容方面,OpenStreetMap即是中立的又是透明的。OpenStreetMap是一个类似维基的世界上任何人都能编辑的地图。如果一个商店在地图上消失了,它也还可以由店主或其它用户加回去。在展示方面,创造地图的每个人或公司都可以自由的将它渲染成他们期望的样子。OpenStreetMap.org主地图本身是使用FLOSS(Free/Libre Open Source Software)来创建软件的,并且它拥有充分授权的任何人可以创建的样式表。而且,用心的人可以基于同样的数据创建属于自己的地图。 同样,对于OpenStreetMap最流行的路由是FLOSS,即使一家公司选择另一种软件库,一个用户总可以自由的使用他们自己的路由软件,并且基于同样的数据对比路由实现结果很容易找到差异性。 最后,开源道路地图的数据,用户可以自由的下载部分的或所有的离线地图数据。这就意味着你无须将自己的地理数据给到任何人你都可以使用开源道路地图去进行导航。 ”
草根微博要是有了6亿粉丝 干点什么好呢?
“今天的这篇文章,不谈雷军,不谈马云,不谈刘强东,也不谈张近东。我们换换口味。今天,我们谈谈互联网上,和这群大佬完全不同另一群人,一群真正的草根。 但是,你千万不要小瞧了这群草根。这群草根虽然在江湖上无名无万,但是个个深藏绝技,这些很多甚至连V都不加的草根微博微信账号,动辄掌握数百万粉丝,有的甚至几千万上亿。 几千万上亿!是的。 这群人就是控制着江湖上人称“草根大号”的神秘牛人。你们可能知道他们的账号(糗事百科,情感心理学,冷笑话精选等等等等),却很可能从来不知道这些账号背后的主人到底是谁。尤其是对于一些公关公司来说,他们深知为他们代理的品牌,请明星在8:20转发一条软文的可能性极小,所以这些不加V的草根大号就在“社会化营销”中扮演了重要作用。但是即便是最牛的公关公司,都可能从来不知道他们到底在把广告费付给具体的谁。 机缘巧合,我受邀在一个叫做"牛微联盟"的成立大会上做个分享,让我有机会“窥探”一下这个我一直充满好奇的草根大号的世界。 什么是"牛微"?微博粉丝100万、微信订阅20万是最低门槛。从满足这个条件的报名参加的1000多人中,筹委会说他们挑选了最有影响力的100多人(粉丝加在一起达6亿)。这个神秘百人会-牛微联盟-从全国各地飞抵上海,齐聚自贸区,开两天闭门会议,共商如何最大化这6亿粉丝的商业价值。 “牛微联盟”有多牛?成立大会上有一个环节,主持人邀请了一些只在传说中听过的“草根大号”上台分享。台上站了七个人,这七个人从左到右依次分享了自己的“绝技”: 第一个人能不花钱把一条视频推到优酷视频的前两名;第二个人拥有很多非常特殊的QQ号,加一起价值3000万元人民币;第三个人私人微信通讯录好友(不是公共号)63万;第四个人坐拥1000万腾迅微博听众;第五个人拥有全球200多个地方的粉丝会;第六个人看似柔弱小女子,但QQ空间人气到达6亿;第七个人微信公共号最多时达2000多万订阅用户。 我脑海里浮现四个字:华山论剑! 组委会都是从哪里找到这群“我从来没有听说过的牛人”的呢?一家传统媒体的代表禁不住感叹,100人,6亿粉丝,齐聚自贸区,这必将成为中国移动互联网史上的重要事件。 真不容易。杨幂就算有1亿粉丝,我都不惊叹。她本来就很有名,微博微信,不过是她聚拢粉丝的工具。粉丝数量的多少,只是管理效率的问题。但是这些站在台上的草根大号们,他们毫无名气,更没有后台,从零做到上千万,真不容易。 “牛微联盟”发起人周群超的分享让我更是感触:无它,唯勤奋尔。 周群超自己管理了100多个微博账号,最小的账号也有几十万粉丝,加在一起粉丝共有3000多万。他说,他每天要花10多小时的时间,不断收集整理有趣的内容,分享给他的听众。如果有一天没有分享,就会有人给他留言:都十点了,怎么还没有发内容呢?你不发我们就不睡觉了!就是靠着他非常勤奋地服务这些粉丝,才能从最一开始的零,慢慢积累到今天的三千万。 每天十小时,一个人,服务粉丝三千万。 他们的商业模式很简单:1)找到一个定位;2)专注经营内容;3)慢慢积累粉丝;4)承接广告盈利。虽然说这6亿粉丝必然有很多重复,但是去重之后的覆盖面,也相当可观。 好的时候,一个新浪微博百万粉丝的大号,能收入每月10万。差的时候,一个10万粉丝的腾讯微博号每条广告只能得10元。他们普遍不善言辞,是典型的宅男、宅女。他们可以来自最偏远最落后的西部山区,只要有一台电脑,就可以默默耕耘,等待收获。 运营这些账号,仅仅默默耕耘还是不够的。他们所有人都是“寄生”在微博、微信上的草根。微博、微信任何一点点的政策调整,如果被他们迅速能抓到一个机会,就可能一夜之间疯狂涨粉,但也很可能第二天醒来,被疯狂掉粉,或者封掉账号。各种变化,就像野火一样不断燃烧这片草原,等野火过后,草根们就在夹缝中寻找新的机会探出头来,继续耕耘。 这就是草根的力量。面对他们,我新浪微博、腾讯微博、微信加一起才140万左右的粉丝,不值一提。敏锐、勤奋,成就他们的生命力。 但是,这种微博、微信上很独特的“草根大号”现象,将何去何从?他们会慢慢正规化,成为社会化营销的主体吗?他们会慢慢从复制粘贴,成为原创自媒体吗?他们能承担起传统企业拥抱互联网大潮下,帮助企业运营“粉丝经济”的中坚力量吗?具体来说,他们能帮那些传统企业,我提供咨询服务的客户,贡献多大价值呢? 我在我的分享里对大家说:你们最大的竞争力,不是粉丝的数量,而是运营力。这种因为草根出身,所以唯有从用户出发的能力,是未来C2B模式中的稀缺能力。聚沙可以成塔,一群牛人聚在一起,在遵守中国法律的前提下,好好运营,一定能为传统企业互联网化,做出可观的贡献,并因此获益。 这次探访,让我更加深信:高手在民间,而一切神奇,都来自不懈的耕耘。请服务好这6亿粉丝,这是一切的本源。 ”
职场攻略:年会中的Do's & Don'ts
“办公室里同事一起出去happy并不是什么新鲜事,尤其临近农历新年,这种辞旧迎新联络感情的年会更是接踵而来。但年会中有些地方一定要注意,小心这些细节能帮你在同事中赢得更多好感。 要知道,年会或同事聚会这种活动给你带来的好处还是非常多的,当然,前提条件是你得遵守规则。下面的几点办公室聚会Do's & Don'ts就是在你按捺不住冲出办公室前脑子里要谨记在聚会上需要尽力遵守的法则。 职场攻略之年会注意事项:一定要参与 哪怕你总是得千方百计说服自己才能做出参加聚会的决定,你的参与和出现都是十分重要的。这不仅在向同事们表示你是一个很擅长团队合作的成员、对工作中交际的一面很感兴趣,而且对你本身来说,这也是一次非常好的拓展人际关系网络的机会。要知道,很可能在你们聚会的餐厅、酒吧里也有别的公司的人同在happy呢。 职场攻略之年会注意事项:不要喝得太多。 如果大家在一起喝酒的话,你可要把持住,悠着点来。一边喝着小酒的同时,别忘了也吃点零食,这样做一方面不会给胃带来太大负担,另一方面也不会让别人觉得你是在借酒浇愁。聚会的时候,一定要离烈性酒远一点,啤酒、红酒或是普通鸡尾酒虽然较适合这种情况,但也要注意适可而止。还有个少喝酒的好办法,就是在每两杯酒之间喝杯水。聚会之后,不要轻易接受同事送你回家的邀请,尽量自己打车或者让男朋友、老公来接你回家。 职场攻略之年会注意事项:尽可能地去交际。 同同团队的成员进行愉快的交谈,从而对他们的了解达到新的层次,这是办公室聚会带来的好处之一。但同时,不要害怕跟本公司以外的人交际。这是个非常好的认识新朋友、拓展人际网络的机会。所以,即使是在参加聚会的时候,也别忘了随身备好名片,以便随时递给那些新认识的朋友。 职场攻略之年会注意事项:不要传播流言蜚语。 在工作以外的时间和地点,同事之间的谈话很容易进入一个轻松舒适的状态,尤其是再加上几杯小酒之后。但是越是在这样的时候越要保持警惕,不要陷入散布流言蜚语的陷阱。当别的同事在说这些事情的时候,尽量去换个话题,而且无论做什么,都不要提起别人的名字——尤其是在说不好的事情的时候。传播流言是最快的为自 己在公司内部树立敌人的方式,也是损害你自己名声的行为。所以,公司聚会,一定要记住哪些可以说,哪些千万不能说。 职场攻略之年会注意事项:尽早离开。 提早离开聚会是个不错的选择。这样做既能防止自己喝得太多、说了不该说的话,又能让你免于过度疲劳从而耽误了第二天的工作。只要你出现的时间足够和每个人都说上几句,再喝上几杯就可以了。当然,如果你离开得过早也不合适,你得让大家对你有个印象,然后再离开。 所以,下一次公司再聚会的时候,请一定要记住上说的几点。这些细节会让你玩得很开心,同时也能很好地交际。好好享受办公室happy hour吧,只是别忘了注意回家路上的安全哟! ”
老调重弹:年龄大了,码农何去何从
“说明 这篇文章是说我的经历和选择,没有任何对从事软件开发的人员的不敬,更加不是要打击新入门的开发人员热情。你有你理解的方式和自由,要在回复那里指责为那是没有必要的,你有时间还是去多看看书,多写写代码好了。 刚在隔壁看见了一个22岁年轻人遥相呼应的文章,在这里罗嗦一下。年轻就是资本,有冲劲,这是最大的优势,好好学习,珍惜年轻的时光。 最后罗嗦一下,我12岁开始学编程的时候,相当有兴趣,到了15-16岁的时候,我觉得我可以写很好很好的软件,到了20岁的时候,我觉得有无穷的力量,在 这行肯定可以做一番事业的,至于后来写了几个下载了超过500万的免费软件,那是后话了。 人的心态会随着时间的流逝而变化的,几年后,你可能会有不同的想法,不用着急,如果几年后博客园还没倒的话(dudu别骂我,都老朋友了。。。),你可以回来再看看。 总的一句,不要浪费宝贵的时光。 前言 岁月是把杀猪刀,老了码农,白了头发,残了身体,消磨了意志。 码农老矣,尚能码否? 这是一个老话题了,按照一些人的说法,这是月经贴,最近才在博客园上看见这样的帖子。 今天在cnBeta上看见了这个帖子:年过50,还能继续当码农吗,本来只是在闪存发发牢骚,后来想想,干脆写个帖子,写得长点,打发一下时间也好。 我主要谈谈我的经历。 背景 对那些不知道我的情况的同学,我简单说说我的背景,1993年开始学编程,大学读的不是计算机,而是英语高级翻译,毕业10年,2年前移民澳洲,现在33岁,仍然在做码农。 国内 现实是非常残酷的,无论你是否接受! 在中国,软件开发这行太固执于年龄了,主要有3个观点 年纪大了,思维跟不上,不能学习新技术 呆久了,老油条,不怎么干活,效率低下 当然是待遇了,呆了那么多年,工资越来越高,公司成本压力越来越大 现在国内的物价飞涨,人员的待遇也被迫提高了很多,相比几年前,甚至以倍数算。现实有点荒谬,老人多年加薪,比不上新人入职薪酬起点,如果关注新闻的,那些或许部分被夸张的某某IT巨头的毕业生入职20/30万起跳。这对老人来说,情何以堪啊! 对开发来说,码农资历越深,经验越丰富,要解决关键问题,还是要靠扎实经验,学习新技术也应该是驾轻就熟。 举个例子,没有实际业务系统开发经验的,遇到技术问题,一般都是上网搜索,如果没找到,就去stackoverflow之类的网站提问。但如果身边有个经验丰富的,能给你解决的情况就比你自己慢慢研究要来得快吧? 再举个例子,刚入门的同学,不都是喜欢拜师,找前辈学习的吗?没有这些前辈,那学习的过程会相当周折。 再举个例子,没有一定的经验的同学,要实现某个功能,譬如excel文件的读写,除了office automation(不建议),更应该去找第三方的组件(相比商业组件,大家都喜欢开源的吧?)。如果平时积累了丰富的经验同学,需要用到某个功能(如之前说的excel文件的读写),直接就知道可以用如NPOI这样的组件。 最后再举个例子,10年前,对.net一窍不通。记得9年前,一个同事,老程序员了,很热衷学习新技术。当时.net出了beta,他买了本书,新建了个winform,拖放了个DataGrid,再用DataAdapter从数据库取了数据库之后绑定到DataGrid,数据显示了,有点RAD的味道,他还演示了master-detail的功能,当时觉得好神奇。当时一起做同事的,还有另外一个老程序员,记忆中超过40岁了,跟我们一起做开发,写起程序来一点都不含糊。 如果我是招聘者,2个应聘者,关键技术要求都符合,撇除非技术考量(譬如个性等),一个28岁,一个40岁,我会选40岁的。 我的学习经历 学习编程,开始于1992年,初一,学校开了计算机课程,当时是novell无盘工作站,后来用上了DOS 3.x。先用的GWBASIC,后来接触了Quick BASIC和pasal。当时跟几个同学在一起研究,有1年暑假,我们约定要写个程序出来,比一下谁写得更好。其中一个同学用Quick BASIC实现了类似x-windows的图形化的界面,带输入法,支持鼠标(当年dos下都是文字界面,要支持鼠标和图形化,要用asm写),可以显示图片,播放音乐和动画,我觉得好牛。 在中国的时候,经常加班,离开中国前的那个公司,我在那里工作了5年,星期六还要上大半天,觉得还挺累的。 写商业软件这10年来,经验是逐点逐点积累的。我9年前开始在sourceforge写开源项目,大约9年前开始在codeproject写开源文章,8年多前开始在博客园上写博客,每天下班后,再花4-5个小时学习,写开源项目,写商业软件。 直到现在,我每天下班,仍然是上技术网站看文章,譬如codeproject,当然也包括博客园。也会去开源项目网站看看,譬如sourceforge和codeplex,说起codeplex,这应该是当年那个微软为了推广.net而推出的gotdotnet网站的继任者,虽然codeporoject越来越多的.net文章,但codeplex更纯粹的是微软为了推广.net而架设的,所以从事.net开发的同学,应该会留意到这个网站绝大部分项目都是.net写的。 我喜欢看开源项目的代码,首先了解某个项目的主要功能,然后看代码项目结构,不调试,直接从主类入手,看设计思想和新技巧,基本上半个小时可以看几千行吧。 我更喜欢通过写开源项目来学习新技术,譬如之前写的那个SQL Monitor,就用了C#4。 最近去了新公司,做新项目的开发,因为老系统的设计有严重缺陷,无法应付大访问量的情况,所以和技术总监研究分析后,决定采用ASP.NET MVC 4 + Knockout + ...”
EJB 3.0是Hibernate的克隆吗?
“摘要 Sun的EJB 3.0规范正处于其最后的"冲刺"阶段,许多公司都在为遵循这一规范而忙碌着。这个EJB规范最新版本所提供的众多优点中比较突出的当属其数据库功能,但是一些开发人员感到,这个规范仅仅是Hibernate持久性存储引擎的一个"克隆"版。真的吗?本文正是想讨论这一问题。 实践证明,Hibernate是针对于Java语言所创建的最优秀的持久化存储引擎之一。至今,我还清晰地记得第一次使用Hibernate工作的情景。当时,我们已经有了一种现成的持久化存储引擎,但是这个引擎将消耗大量的系统资源并且从未真正正确工作过。令人惊奇的是,Hibernate"瞬间"解决了我们的持久化存储问题!这真是一个"天赐之物"。不觉间,时间快速推进到今天。EJB 3.0又浮出水面,并且不久我们就要计划把我们当前的EJB 2.x服务器向这个更高版本升级了。然而,仔细地分析一下EJB 3.0中所作的持久性存储变化,有人可能会感到惊讶-这不是来自于Hibernate的一个"克隆"品吗?难道Sun当真"偷窃"了来自于Hibernate的设计吗?我的回答是,情况要比这些复杂得多。 一、 EJB 3.0 EJB 3.0必须实现的重要目标之一是,要使之成为更为有用和更易于使用的开发工具。Sun公司的Linda DeMichiel认识到,为了成功实现这一目标,EJB 3.0必须要基于开发人员今天正在使用的现有库;否则,它将会导致一种困难的升级操作并且可能会引不起足够的重视。因此,来自于Oracle,JBoss,Apache,BEA,Novell,Google的成员和其它方面的专家都被邀请参与制订这一规范。这个小组的目标是,生产一种规范-能够使得EJB更易于开发并且还要创建一种便于开发人员能够容易地实现升级的持久性存储标准。 当这个小组开始开发EJB 3.0规范时,他们很快认识到,其中很多特征应该在功能上与所有的主要的供应商和库保持一致。我们将在下面的几节中讨论这些特征。 (一) EntityManager 这个EntityManager负责处理一个事务。在JDO中,它被称作持久性存储管理器,而在Hibernate中称它为一个会话。在GlassFish工程中,EntityManager被作如下描述: 其实,一个EntityManager实例与一个持久性存储上下文相关联。一个持久性存储上下文是一组实体实例,其中的任何一个持久性实体都是唯一的一个实体实例。在该持久性存储上下文中,实体实例及其生命周期都是可被管理的。这个接口定义了用于与持久性存储上下文进行交互的方法。EntityManager API用于创建和删除持久性实体实例-通过其主键查找实体和查询实体。 这个可由一个给定的EntityManager实例管理的实体集合是通过一个持久性存储单元进行定义的。一个持久性存储单元定义了所有类的集合,这些类是相联系的或由应用程序加以分组,并且它们必须共存于它们到单个数据库的映射中。 (二) 命名查询 一个命名查询是一个预定义的查询,它被赋予一个名字,这样它可以在以后通过该名字加以存取。用数据库术语来说,命名查询被称作存储过程。当结合本机查询时(见下一节),数据库查询应该是非常轻松的。 (三) ...”
4399曹政:解密中国互联网
“前言 可能有人会说,这么大的口气,标题党。 随便吧,我觉得,如果我不来写,也没几个人会写;懂的人本来就不多,大部分又都藏着掖着,那么愿意出来分享的,也就寥寥无几了,总结文字的能力也未必比我好。 当然,肯定有些人会说,你这就是扯淡,不懂装懂,云云,随便吧。 1、中国互联网的构成 如之前冯大辉总结,中国互联网分三个层面:第一层面是媒体上的互联网,也就是大众容易识别和认识的互联网;第二层面是草根互联网,这是中国互联网巨大的组成部分,却极少在公众面前出现;第三层面是黑暗互联网,其实它一直以来,非常巨大,非常恐怖,以至于,往往因为某些疏漏造成了全国性的事件,人们才能窥到冰山一角。 第一种,媒体上的互联网,主要的思路是,覆盖尽可能多的用户,生怕别人不知道自己;搞个发布会,要给记者塞车马费,各种软文公关铺天盖地。 第二种,很多年以前,我一直以为是他们不掌握媒体资源,所以被忽视;后来和这些人接触多了,才理解,其实草根互联网,很多是怕媒体的,怕被精英和同行了解,原因很简单,他们都很担心,如果巨头理解了他们的业务构成,理解了他们的用户获取方式,恐怕很快,他们就会失去一切归零; 还记得风风火火的开心网么?各种人给开心网的衰败找了无数理由,我只陈述一个简单的事实,QQ农场上线的时间,就是开心网由盛转衰的转折点。 草根互联网,生存壮大于巨头看不起的环境,并依赖于特定的受众群发展,他们的思路是,我照顾好我的用户就得了,精英们最好别知道。 当然,壮大后的草根互联网,往往也会转入媒体上的互联网,比如最近,forgame上市,多少媒体如梦方醒,多少媒体人开始疯狂补课,这公司哪里冒出来的? 草根互联网的典范有,2004年之前的hao123;2012年之前的4399,各种地方社区如化龙巷,小鱼社区,西子湖畔;8684公交查询,9158等等。 其实,在2002年之前,QQ也是草根互联网的典范。有谁记得,当年南非电讯投资QQ的时候,多少业内专家笑话南非人SB,事实证明,谁是SB? 第三种,黑暗互联网,他们隐藏的更深,只有在特定的时间,特定的事件,才会一不小心暴露在媒体面前;还记得六省断网么?还记得前几天突然半夜里 .cn域名解析全部挂掉了么?这就是黑暗互联网擦枪走火的事情,这个领域包括但不限于私服(百亿+市场贵规模),外挂,组织性盗号,地下账号交易及漏洞黑市,网络诈骗,DDOS攻击产业(与私服产业密切相关),黑卡;单纯的孩子可能会认为,这事交给警察叔叔不就好了,中国那么多网警;这个,据我粗陋的了解,这个,我是不敢在公开文字里披露的。 只说一个小例子,当年Xfocus论坛有个热帖,两个黑产的代表人物因分赃不均在论坛骂战,互揭老底,辗转翻了几百页,成为神贴,后被有关部门勒令锁帖,至于内容,很黄很暴力就是了。 盛大最后与私服行业全面和解,成为中国特色的合法私服产业,这个背景,不说了。 2、中国互联网的发展逻辑 第一,用户比客户重要 最早一些商业精英有一个思路,说是生意离钱越近,赚钱就越近。 但是在互联网,这个逻辑是错的;不论中国还是美国,这个逻辑都是错的;前段时间周鸿祎借用了毛泽东的说法“人在地失,人地皆;;人亡地在,人地皆失”,人就是用户,地就是收益;说的是对的。 范例1:最早推出竞价排名的公司,叫做overture,这个生意模式很好,也发展了足够的客户,依赖于与雅虎和谷歌的合作,一度成为市场上最受资本追捧的公司,但是问题是,他只有商业模式和客户,却没有属于自己的用户;突然有一天,google宣布,不再和overture合作,自己建立广告系统,一夜之间,这家公司的业绩下降2/3;祸不单行的是,雅虎也找了过来,要不卖给我,要不我们也学google自建广告系统;overture连还价的机会都没有;只好委身变卖。 有最优质的客户,有最牛b的商业模式,没有用户基础。 此外,DoubleClick 同理。有兴趣的童鞋可以查一下,doubleclick,全球最大的广告中介平台,拥有最强大的广告发布算法,覆盖全球的优质客户基础,因为没有自己的用户群,是怎样股价狂跌,最后被迫卖给google的。 范例2:263免费电子邮局,曾经市场第一,为了追求收入;强制升级到全面付费版本;他们的逻辑是,邮件地址类似于手机号码,高端人群不会随意变更邮件地址;结果,可笑的是,不但他们丢失了免费用户,付费用户也流失殆尽,中国互联网的奇葩案例。 范例3:QQ 马化腾最初做QQ并没有自己做运营平台的想法,只是想把系统卖给运营商;结果运营商从软件工程的思路来考核,这个东西多少人月做出来的? 这么一算,QQ连100万人民币都卖不掉! 100万人民币,你没看错!!当时马化腾几乎80万人民币就卖掉了QQ,可这时恰好看到了Aol收购ICQ的新闻,1亿多美金好像,是按照一个用户多少钱算的,pony眼睛一亮,原来互联网上,用户=钱!然后他按照这个估值重新估价,结果中国的各种互联网精英嘲笑不已,新浪各种白领用户还可以算点钱,QQ那些小p孩也值钱?别开玩笑了!IDG当真了,南非人当真了,那些精英们就说,看,SB非洲人,被马化腾忽悠了吧。 今天还会有人质疑QQ的用户不值钱么? 但是就在最近两年,还有不少人质疑4399的用户不值钱,这个,我就只能呵呵了。 范例4:百度, 谁还记得当年,百度不过是一个技术服务商,那时候流行一个词叫ASP (application Service Provider),投资圈的故事是,美国掘金,卖裤子的发财了,百度当时走的就是这个路线,给门户提供技术引擎,但后来为了发展自己的用户平台,得罪了最大的客户新浪。当时媒体一股脑认为,霸主新浪分分钟捏死创业公司百度。so,今天你看到robin ...”
Java内存网格公司Hazelcast获得来自贝恩资本的风投
“开源内存数据网格公司Hazelcast获得了来自贝恩资本风险投资公司(Bain Capital Ventures,贝恩资本旗下风投部门)注入的资金, Rod Johnson(SpringSource的创始人)、Salil Deshpande(著名风险投资人,专注于开源和软件基础架构领域)和Ali Kutay(WebLogic前CEO)都加入了该公司的董事会。 预计内存计算市场将以43%的年复合增长率(CAGR)保持增长,目前这个市场主要由诸如Oracle的Coherence、GigaSpace和VMware的GemFire等产品提供服务。这是应用服务器栈中少数还没有被开源攻克的领域之一。 对分布式缓存需求来说,Hazelcast正在成为一个良好的选择——目前它拥有7万/月的下载量,以及超过50个付费客户。 在这宗投资里,有一些值得注意的人性化方面。开源和中间件方面的知名投资人Salil Deshpande,于2013年加入贝恩资本风险投资公司。他在上一家任职的公司里,曾经投资了若干成功的企业,例如SpringSource、MuleSoft、Engine Yard (Ruby on Rails)、Groovy&Grails、Maven、Datastax (开源的Cassandra NoSQL数据库背后的公司)、ZeroTurnaround和Dynatrace (应用性能管理工具)。他进入了福布斯(Forbes)2013年全球最佳创投人排行榜(The ...”
java 集合框架概述
“线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。 如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下: Iterator it = collection.iterator(); // 获得一个迭代子 while(it.hasNext()) { Object obj = it.next(); // 得到下一个元素 } 由Collection接口派生的两个接口是List和Set。 List接口 List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。 和下面要提到的Set不同,List允许有相同的元素。 除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。 实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。 LinkedList类 LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。 注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List: List list ...”
24
科学家研究证明:每天三杯咖啡 肝癌风险减半
“肝癌是全球第六大癌症,死亡率位居第三的癌症。据“美国环球新闻网”10月23日报道,美国《临床肠胃病学与肝脏病学》杂志刊登一项新研究发现,每天喝3杯咖啡可使肝癌危险降低50%以上。 新研究由意大利米兰大学流行病专家卡罗·拉·维克奇亚博士及其同事完成。研究人员对1996年~2012年9月发表的有关咖啡与肝癌的相关研究文献进行分析,其中包括16项高水平研究。新研究涉及病例3153例,研究还包括近期发生的900多原发性肝癌病例的相关数据。结果发现,喝咖啡可使原发性肝癌(最常见肝癌)危险降低40%,而独立研究表明,每天喝3杯咖啡可以使该病危险至少降低一半。 维克奇亚博士表示,最新研究证实,喝咖啡有益健康,特别是对肝脏。早期研究证实,常喝咖啡可防止糖尿病,糖尿病正是肝癌的一大已知风险因素。研究还发现,喝咖啡对肝硬化和肝脏酶也有积极的影响。 维克奇亚博士还表示,肝癌主要是由乙肝和丙肝病毒导致的慢性炎症,其它原因还包括:过量饮酒、吸烟、肥胖症和糖尿病等。肝癌可通过接种乙肝疫苗、控制丙肝病毒传播和减少饮酒量加以避免。这三大措施可避免全球90%以上的肝癌病例。  ”
脂肪肝是肝癌罪魁祸首!专家解读肝癌诱因
“对于“脂肪肝”这个疾病,想必您已经不陌生了,但有谁知道,它其实和病毒性肝炎一样,也可能成为导致肝癌的罪魁祸首! 随着我国经济发展,人民生活水平的不断提高,人们对自身健康状况的关注程度已经今非昔比。越来越多的人,特别是城市居民,经常会在单位或者其他各种体检报告的结论中,发现自己被诊断为脂肪肝,到医院咨询或者到网上查询,多数会得到这样的答案:“吃得太好,运动太少”。其实,事实远非如此。近年来的研究表明,脂肪肝已不再单纯的被定义为良性病变,单纯性脂肪肝可发展为脂肪性肝炎,如不加注意,则可能继续发展为肝硬化,严重者最后可转变为肝癌。 脂肪肝,严格的讲,应该叫做“脂肪性肝病”, 是多种病因引起的肝脏脂质代谢紊乱及动态平衡失调,以致肝细胞内脂质蓄积,肝细胞脂肪变性,从而产生的一系列临床病理综合征。在西方发达国家中,脂肪肝的发病率为10%-24%,近年来,我国脂肪肝发病率也日趋增高,已一跃成为居病毒性肝炎之后的第二大肝病,相关数据显示,仅就上海和广州两地,脂肪肝的发病率就高达20%以上,也就是说,每5个人中就有一人患有脂肪肝。肥胖的人半数可有轻度脂肪肝,重度肥胖的病人脂肪肝的发生率可达61%- 80%,肝内脂肪的堆积与体重成正比。 根据病因,脂肪性肝炎又可分为酒精性和非酒精性两大类,两种类型均与肝癌的发生关系密切。顾名思义,酒精性脂肪肝的主要病因为长期大量酗酒。在美国,约有15%的原发性肝癌患者存在酒精相关性脂肪性肝炎与肝硬化。我国酒精肝患者比例也在显著增长,但目前仍主要以非酒精性脂肪性肝炎为主。 跟踪随访后发现,约有15-25%的非酒精性脂肪性肝炎的患者会在10-20年内出现肝硬化,有医疗机构报道,比例最高可达37.5%,其中超过一半的患者可发展为恶性肿瘤-----肝癌。因此,脂肪性肝炎有可能是肝癌发生的前兆。现代医学已经证实,多种因素与肝癌发生密切相关,如肥胖、2型糖尿病、铁沉积等,而这些因素同时也是脂肪肝的发病因素。研究证实,肥胖的人罹患肝癌的几率大约是正常体重者的2-4倍。 目前,脂肪肝导致肝癌的具体确切机制尚不十分明确。但可以肯定的是,随着病变的进展,肝脏发生脂质过氧化损伤,同时释放相关细胞因子,使正常的肝细胞反复脂肪变性、坏死,肝脏干细胞代之以反应性增生,逐步发展成肝纤维化和肝硬化。继之,在慢性炎症相关的生长因子、II型糖尿病以及脂质过氧化引起的突变等因素作用下,肝细胞发生恶性转化和克隆增殖,最终形成肝癌。 轻度脂肪肝时,很多患者症状很轻微,精神状态也没有明显异常。部分患者会不时出现腹胀、肝区不适、容易疲劳等表现。随着病情发展,消化道症状和易疲劳等现象也越来越明显。如不予干预,肝脏多会出现慢性炎症,脂肪变性、坏死和再生,导致肝脏纤维化。由于部分脂肪性肝病因不明,病程隐蔽,一旦出现自觉症状,其肝脏的炎症、坏死及纤维化已不同程度地存在。此时仅通过饮食和运动疗法往往达不到很好的效果,常需要加以药物治疗才能更好的恢复。当脂肪肝发展为重度时,肝内纤维组织增生,部分病人出现肝硬化,甚至诱发糖尿病、冠心病等与脂肪肝密切相关的疾病。此时不但给患者本人带来了极大地痛苦,治疗也更加困难,经济上也会带来沉重的负担。 那么,如何预防和治疗脂肪肝呢?其实并不难。 首先,祛除病因,寻找并消除病因是治疗脂肪肝的根本方法。无论是酒精性脂肪肝还是非酒精性脂肪肝,限制饮酒都是必要的,因为酒精可以引起肝细胞的急性损伤,转氨酶上升;糖尿病性脂肪肝在于积极地治疗糖尿病;肥胖性脂肪肝在于有效控制体重。大多数轻度脂肪肝在除去致病因素后即可获得好转。 其次是调整饮食,这是治疗脂肪肝重要的一环,饮食需要高蛋白,少量脂肪和糖类。肥胖和超重的脂肪肝患者应从节制饮食着手,冰淇淋、糖果之类高热量食物少食,可多食豆类食物;少吃红肉和含有动物脂肪的食物,尤其不要食用动物内脏。避免过快过饱的饮食可以减轻消化系统,特别是肝脏的负担,有利于脂类代谢;规律饮食,避免过晚吃饭及夜间加餐。多饮茶水,喝咖啡不要加奶和糖,少喝果汁和含糖饮料,不喝酒。水果并非多多益善,不妨用黄瓜、番茄、胡萝卜等蔬菜代替水果。水果最好在餐前或两餐之间饥饿时食用,且每次只吃一种,尽量选体积中等,甜度不是太高 的,比如梨、苹果等。 另外,适当增加运动,特别是有氧运动,可促进体内脂肪消耗。比如每天快走或慢跑半小时以上,打羽毛球、蹬车、游泳或健身器械锻炼都是很有帮助的。 随着病情发展,肝脏合成分解肝糖原的能力减弱,导致血糖代谢紊乱,脂肪堆积,代谢能力受损,肝功能异常,最终将导致肝硬化的发生。 对于该阶段的患者,系统规范的药物治疗是必不可少的,少数肝功能严重受损的患者还需接受包括肝移植等手段在内的外科治疗。建议您到消化科或肝病专科门诊就诊,因为治疗脂肪肝的药物众多,需在医生指导下应用。 总而言之,脂肪肝的危害巨大,普遍没有得到重视,但如能养成良好的生活习惯,合理饮食,适度运动,及时治疗,脂肪肝定会离我们远去。 为了您的健康,请爱护您的肝脏。 ”
醋熏屋子防不了感冒
“很多人认为醋有消毒、杀菌的作用,可能是因为醋里有醋酸。醋酸在一定浓度时的确有消毒、杀菌的作用,但效果并不是很好,即使浓度很高,也不推荐使用。而食醋所含醋酸浓度很低,远远起不到能消毒的效果。熏醋如果浓度过高、时间过长,其散发出的酸性气体对呼吸道黏膜有刺激作用,可能会导致气管炎、肺气肿、哮喘等症,严重的还会灼伤人们的上消化道黏膜,尤其对小孩、老人和哮喘病人影响最大。除了醋熏,很多家庭还会用过氧乙酸和来苏水杀菌。这些药物氧化能力强、酸性大,除了对人体不安全外,对家具也有一定的腐蚀性。对于家庭而言,预防感冒以及消毒最好的办法就是通风,而不是盲目用醋熏。 ”
冬季带孩子滑雪要注意啥
“当下正是滑雪好时节,富爸准备带着乖宝一起感受冰雪世界的刺激与畅快。但滑雪是一项具有危险性的运动,事先具备安全意识并做好准备非常有必要。富爸为此搜罗了一些注意事项,供大家参考参考。 1.应保证孩子的年龄在5岁以上,身体状况良好,对滑雪有充分认识。 2.孩子刚进入雪场时不要急于脱去衣服,应在运动一定时间,身上有发热感时,再适当地减少衣服。也可以一直不减衣服,以免运动停止后着凉。 3.选择合适的器材。为孩子选择大小合适的儿童专用滑具,并为其戴好专用的头盔、护腕和护膝。 4.运动中要量力而行。孩子们的身体条件和心理素质不同,不可盲目高要求,要根据具体情况进行指导。可以先带着孩子在雪地上走一走,适应环境。不要选择坡度太大的场地。 5.家长要和孩子一起运动,不要让孩子单独滑雪。保证孩子在醒目、宽敞的雪道上滑行,不让其离开自己的视线。 6.在进入和退出上山缆索吊椅的时候要格外小心,保护好孩子。 7.注意劳逸结合,滑雪的时间不要过长,以免疲劳,中间可穿插雪地游戏。 8.特别注意保护孩子的眼睛,因为银白色的雪地反光强烈,看久了会影响视力,让孩子经常地看看天空和周围的环境、人物。 9.孩子在雪地上堆雪人、打雪仗时,要特别注意手部保暖,最好的预防措施是戴一副五指分开的防水手套。叮嘱孩子不要把雪团扔到其他小朋友的脸上和脖子里,更不要把人往雪堆里推。玩耍的地点要选在熟悉的开阔地带。 10.备一块干毛巾,当孩子出汗的时候,为其快速擦干,并穿好外衣。 11.运动结束后给孩子做全身按摩,特别是腿和胳膊,好好休息。 ”
小窍门:怎样炒牛肉口感嫩
“牛肉性温而不燥,是冬季驱寒的好食材。但吃肉容易做肉难,很多炒过牛肉的人都知道,牛肉很容易就炒老了。下面,巧妈就教大家几个炒牛肉不老的妙招。 裹淀粉 取一定量的干淀粉,与水以1:2的比例调成湿淀粉水。将湿淀粉水拌到切好的牛肉里,用手抓匀,然后静置30分钟,使淀粉浆均匀地包裹在牛肉表层后,就可以下锅爆炒了。爆炒过程中,拌入的淀粉浆糊化,会在牛肉表面形成一层膜,从而锁住牛肉中的水分,这样能保证炒出来的牛肉鲜嫩、松软适口。 裹蛋清 把牛肉片切好后,加入适量鸡蛋清搅匀,静置30分钟再炒。炒的过程中,蛋清混合液受热变性凝固,从而减少牛肉中水分和营养物质的流失,使肉质爽滑鲜嫩。 加啤酒 取适量啤酒淋在牛肉上,腌30分钟后再炒也是不错的选择。因为啤酒中的酶能使牛肉中部分蛋白质分解,进而增加牛肉的鲜嫩程度。不过因为啤酒中的酶含量较低,这种方法的"嫩肉"效果没有前两种方法效果好。 最后,要想炒出鲜嫩的牛肉,买牛肉时最好选择既瘦又嫩的肉,如里脊、外脊等。切牛肉的时候也要注意逆着肉的纹路来切,而且切得越薄越好,这样炒出来的牛肉才更嫩。 ”
22
AQS架构
“1. LockSupport类 AQS架构使用LockSupport来实现线程的休眠,时间性休眠,唤醒... 2. ‍AQS架构-所有同步器的基本架构 ----- a. 基于‍‍AQS架构的同步器基本上只需要实现四个函数 1. tryAcqurie(int) -- 线程会调用这个函数来做能否互斥的获取同步器资源的尝试的逻辑 2. tryRelease(int) -- ‍线程会调用这个函数来做能否互斥的释放同步器资源的尝试的逻辑 3. tryAcqurieShared(int) -- ‍线程会调用这个函数来做能否共享的获取同步器资源的尝试的逻辑 ‍4. tryReleaseShared(int) ...”
ReentrantLock-互斥同步器
“‍ReentrantLock是一个互斥的同步器,其实现了接口Lock,里面的功能函数主要有: 1. ‍lock() -- 阻塞模式获取资源 2. ‍lockInterruptibly() -- 可中断模式获取资源 3. ‍tryLock() -- 尝试获取资源 4. tryLock(time) -- 在一段时间内尝试获取资源 5. ‍unlock() -- ...”
用通俗的语言说说lock和lockInterruptibly的区别
“下面的lockInterruptibly()就稍微难理解一些。 先说说线程的打扰机制,每个线程都有一个 打扰 标志。这里分两种情况, 1. 线程在sleep或wait,join, 此时如果别的进程调用此进程的 interrupt()方法,此线程会被唤醒并被要求处理InterruptedException;(thread在做IO操作时也可能有类似行为,见java thread api) 2. 此线程在运行中, 则不会收到提醒。但是 此线程的 “打扰标志”会被设置, 可以通过isInterrupted()查看并 作出处理。 lockInterruptibly()和上面的第一种情况是一样的, 线程在请求lock并被阻塞时,如果被interrupt,则“此线程会被唤醒并被要求处理InterruptedException”。 我写了几个test,验证一下: 1). ...”
Java 并发编程中使用 ReentrantLock 替代 synchronized
“Java 5 引入的 Concurrent 并发库软件包中,提供了 ReentrantLock 可重入同步锁,用来替代 synchronized 关键字原语,并可提供更好的性能,以及更强大的功能。使用方法也很简单: public final ReentrantLock lock=new ReentrantLock(); ...... try { ...”
ReentrantReadWriteLock读写锁的使用
“Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有一个人在写,且不能同时读取,那就上写锁。总之,读的时候上读锁,写的时候上写锁! ReentrantReadWriteLock会使用两把锁来解决问题,一个读锁,一个写锁 线程进入读锁的前提条件: 没有其他线程的写锁, 没有写请求或者有写请求,但调用线程和持有锁的线程是同一个 线程进入写锁的前提条件: 没有其他线程的读锁 没有其他线程的写锁 到ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。然后就是总结这个锁机制的特性了: (a).重入方面其内部的WriteLock可以获取ReadLock,但是反过来ReadLock想要获得WriteLock则永远都不要想。 (b).WriteLock可以降级为ReadLock,顺序是:先获得WriteLock再获得ReadLock,然后释放WriteLock,这时候线程将保持Readlock的持有。反过来ReadLock想要升级为WriteLock则不可能,为什么?参看(a),呵呵. (c).ReadLock可以被多个线程持有并且在作用时排斥任何的WriteLock,而WriteLock则是完全的互斥。这一特性最为重要,因为对于高读取频率而相对较低写入的数据结构,使用此类锁同步机制则可以提高并发量。 (d).不管是ReadLock还是WriteLock都支持Interrupt,语义与ReentrantLock一致。 (e).WriteLock支持Condition并且与ReentrantLock语义一致,而ReadLock则不能使用Condition,否则抛出UnsupportedOperationException异常。 下面看一个读写锁的例子: import java.util.Random; import java.util.concurrent.locks.ReentrantReadWriteLock; public class ReadWriteLockTest { public static void main(String args) { } } ”
《深入浅出 Java Concurrency》—锁机制(一)Lock与ReentrantLock
“前面的章节主要谈谈原子操作,至于与原子操作一些相关的问题或者说陷阱就放到最后的总结篇来整体说明。从这一章开始花少量的篇幅谈谈锁机制。 上一个章节中谈到了锁机制,并且针对于原子操作谈了一些相关的概念和设计思想。接下来的文章中,尽可能的深入研究锁机制,并且理解里面的原理和实际应用场合。 尽管synchronized在语法上已经足够简单了,在JDK 5之前只能借助此实现,但是由于是独占锁,性能却不高,因此JDK 5以后就开始借助于JNI来完成更高级的锁实现。 JDK 5中的锁是接口java.util.concurrent.locks.Lock 。另外java.util.concurrent.locks.ReadWriteLock 提供了一对可供读写并发的锁。根据前面的规则,我们从java.util.concurrent.locks.Lock 的API开始。 void lock(); 获取锁。 如果锁不可用,出于线程调度目的,将禁用当前线程,并且在获得锁之前,该线程将一直处于休眠状态。 void lockInterruptibly() throws InterruptedException; 如果当前线程未被中断,则获取锁。 如果锁可用,则获取锁,并立即返回。 如果锁不可用,出于线程调度目的,将禁用当前线程,并且在发生以下两种情况之一以前,该线程将一直处于休眠状态: 锁由当前线程获得;或者 其他某个线程中断当前线程,并且支持对锁获取的中断。 如果当前线程: 在进入此方法时已经设置了该线程的中断状态;或者 在获取锁时被中断 ,并且支持对锁获取的中断, 则将抛出 InterruptedException ,并清除当前线程的已中断状态。 Condition ...”
再谈重入锁--ReentrantLock
“重入锁(ReentrantLock)是一种递归无阻塞的同步机制。以前一直认为它是synchronized的简单替代,而且实现机制也不相差太远。不过最近实践过程中发现它们之间还是有着天壤之别。 以下是官方说明: 一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。ReentrantLock 将由最近成功获得锁定,并且还没有释放该锁定的线程所拥有。当锁定没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁定并返回。如果当前线程已经拥有该锁定,此方法将立即返回。可以使用 isHeldByCurrentThread() 和 getHoldCount() 方法来检查此情况是否发生。 它提供了lock()方法: 如果该锁定没有被另一个线程保持,则获取该锁定并立即返回,将锁定的保持计数设置为 1。 如果当前线程已经保持该锁定,则将保持计数加 1,并且该方法立即返回。 如果该锁定被另一个线程保持,则出于线程调度的目的,禁用当前线程,并且在获得锁定之前,该线程将一直处于休眠状态,此时锁定保持计数被设置为 1。 最近在研究Java concurrent中关于任务调度的实现时,读了延迟队列DelayQueue的一些代码,比如take()。该方法的主要功能是从优先队列(PriorityQueue)取出一个最应该执行的任务(最优值),如果该任务的预订执行时间未到,则需要wait这段时间差。反之,如果时间到了,则返回该任务。而offer()方法是将一个任务添加到该队列中。 后来产生了一个疑问:如果最应该执行的任务是一个小时后执行的,而此时需要提交一个10秒后执行的任务,会出现什么状况?还是先看看take()的源代码: public ...”
可重入与不可重入函数
“主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。 也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰。如果确实需要访问全局变量(包括static),一定要注意实施互斥手段。可重入函数在并行运行环境中非常重要,但是一般要为访问全局变量付出一些性能代价。 编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。 说明:若对所使用的全局变量不加以保护,则此函数就不具有可重入性,即当多个进程调用此函数时,很有可能使有关全局变量变为不可知状态。 示例:假设Exam是int型全局变量,函数Squre_Exam返回Exam平方值。那么如下函数不具有可重入性。 unsigned int example( int para ) { unsigned int temp; Exam = para; // (**) temp = Square_Exam( ); return ...”
可重入代码
“1简介 可重入代码(Reentry code)也叫纯代码(Pure code)是一种允许多个进程同时访问的代码。为了使各进程所执行的代码完全相同,故不允许任何进程对其进行修改。程序在运行过程中可以被打断,并由开始处再次执行,并且在合理的范围内(多次重入,而不造成堆栈溢出等其他问题),程序可以在被打断处继续执行,且执行结果不受影响。 例:可重入代码指可被多个函数或程序凋用的一段代码(通常是一个函数),而且它保证在被任何一个函数调用时都以同样的方式运行,如: void test() { int i; i=2; printf("%d\n",i ); i++; printf("%d\n",i); } 无论谁调用它结果都一样,得到 2 3 但 void test() { static int i=2; printf("%d\n",i ); i++; prinft("%d\n",i); } 就不一样了,对不同的调用结果不一样:如: 第一次: 2 3 第二次 3 4 第三次 4 5 等等...... 该明白了吧 2其他不同的解释 可重入就是,一个函数没有执行完成,由于外部因素或内部调用,又一次进入该函数执行。可重入代码,必须保证资源的互不影响的使用,比如全局变量,系统资源等。 在LINUX设备驱动中 关于可重入代码: 简单介绍,因为驱动能够被多个进程调用,互不干扰,这样驱动必须是可重入的。 可重入最简单的理解就是任何变量都是局部变量。可重入指函数在运行过程中,被中断打断后,待返回时仍然能够正常运行。这就需要在编写代码时注意全局变量和公用资源的使用,同时还需要有编译器的支持。否则,ucos ii就不能移植到其中了!! 3维基百科的解释 若一个程序或子程序可以安全的被并行执行,则称其为可重入(reentrant或re-entrant)的;即,当该子程序正在运行时,可以再次进入并执行它。若一个函数是可重入的,则该函数: 不能含有静态(全局)非常量数据。 不能返回静态(全局)非常量数据的地址。 只能处理由调用者提供的数据。 不能依赖于单实例模式资源的锁。 不能调用不可重入的函数。 多'用户/对象/进程优先级'以及多进程一般会使得对可重入代码的控制变得复杂。同时,IO代码通常不是可重入的,因为他们依赖于像磁盘这样共享的、单独的资源。 4与线程安全的关系 可重入与线程安全两个概念都关系到函数处理资源的方式。但是,他们有一定的区别。可重入概念会影响函数的外部接口,而线程安全只关心函数的实现。 大多数情况下,要将不可重入函数改为可重入的,需要修改函数接口,使得所有的数据都通过函数的调用者提供。 要将非线程安全的函数改为线程安全的,则只需要修改函数的实现部分。一般通过加入同步机制以保护共享的资源,使之不会被几个线程同时访问。 线程安全与可重入性是两个不同性质的概念。可重入是在单线程操作系统背景下,重入的函数或者子程序,按照后进先出的线性序依次执行完毕。多线程执行的函数或子程序,各个线程的执行时机是由操作系统调度,不可预期的,但是该函数的每个执行线程都会不时的获得CPU的时间片,不断向前推进执行进度。可重入函数未必是线程安全的;线程安全函数未必是可重入的。例如,一个函数打开某个文件并读入数据。这个函数是可重入的,因为它的多个实例同时执行不会造成冲突;但它不是线程安全的,因为在它读入文件时可能有别的线程正在修改该文件,为了线程安全必须对文件加“同步锁”。另一个例子,函数在它的函数体内部访问共享资源使用了加锁、解锁操作,所以它是线程安全的,但是却不可重入。因为若该函数一个实例运行到已经执行加锁但未执行解锁时被停下来,系统又启动该函数的另外一个实例,则新的实例在加锁处将转入等待。如果该函数是一个中断处理服务,在中断处理时又发生新的中断将导致资源死锁。 可重入性是函数编程语言的关键特性之一。 ”
老程序员都到哪里去了?
“老程序员都到哪儿去了? –寻找40岁之后软件开发者的象冢 人们都认为软件开发是年轻人的游戏。当年轻自信的程序员获得优厚的待遇并向管理层晋升的时候,老程序员们甚至找工作都困难。真的如此吗? 在最近的一篇文章中,加州大学戴维斯分校的计算机科学教授Norman Matloff认为“软件工程是职业生涯的死胡同”。他写到:“很多程序员发现,大约从35岁起他们的就业能力就开始走下坡路了。” 如果这要是在广播上的话,我会选择跳过这段录音。35岁?我还以为我们要讨论年纪更大些的程序员呢。从什么时候起35岁就算是“老人”了? Matloff继续说:“统计表明,大多数软件开发者40岁之前会离开编程领域。”看到这儿我的眉毛开始挑起来了。大多数程序员?还他们中的绝大多数?离开?(Matloff拒绝说明他从哪里看到的统计数字。) 如果这是真的,那些老程序员都去哪儿了?是否真有这样的地方,让我们把疲倦衰弱的、不适合再做程序员的人送去,使他们远离年轻程序员的视线,优雅的死去?或者说他们拿到了不动产执照? 还是去开剪贴簿商店了?我有点怀疑。 天真的塌下来了? 现在,我并不是走极端说软件开发中不存在年龄歧视。这种现象可能在技术领域比其他行业更普遍。但我不得不说,当我读到Matloff令人震惊的言论时,我的直觉反应是我不买账。 首先,可以举一些经验证据:我认识相当多的人,我的社交圈里基本每个人都超过或者马上就到40岁了,里面有很多是软件开发者。这怎么解释?难道我的每个程序员朋友都碰巧是统计的离群值吗? 除了统计之外,像Matloff的这种恐慌性文章还通过选择性地援引一些技术明星的话来作为支持。Matloff引用Intel前CEO Craig Barrett的话说,“软件工程师或硬件工程师的半衰期只有几年”。此外,他说,Mark Zuckerberg……,唉,我们就别替他操心了。 即使Gordon Moore的一些随便的评论已经变成“定律”,我不会因为他们都曾是Intel的CEO而给Craig Barrett相同的优待。简洁的引用并不会使研究变困难。所有的程序员到底去哪里了呢,我在想这儿吗?我有些想法。 蹲下身子 首先,很多人并未离去。他们在某个领域、行业、工具或者公司变得非常专业化,他们开拓商机并坚持做到最好。有的程序员在大的技术公司成为杰出工程师。他们也是Matloff统计数据的离群值吧,所以让我们忘了他们吧。 其他程序员自然而然地晋升到管理岗位。我想,你在翻白眼吧,也许你会说“软件开发经验并不能使你成为一个好的管理者”。你知道吗?其实管理培训课程也未必能。 重点在于,晋升会带来新的头衔。告诉别人你的新头衔是宣告你进入了一个更高位置的最好方式。当下一次有调查让你填工作角色时,你可能选择“项目经理”而非“软件开发者”,即使你仍然直接参与软件设计、规范、开发、测试和部署过程的每一步。 晋升是留住雇员的一种方式。但不管相信与否,进入软件开发团队的管理位置并不意味着你已经放弃了程序员的工作。然而,看起来统计也是没有包括这部分人的。 低调神秘,开启职业新篇章 尽管其他开发者不再从事原来的工作,但并未离开这个领域。他们继续创业,角色可能转变成为负责人或CTO。一般职业调查是不包括企业家的,再一次,这些人没在统计之中。 职业调查可能也漏掉了独立承包人。对于软件开发者而言,咨询也是个商机,能够给成熟的程序员大量的行业经验。 显然,如果你并不打算找一个全职工作,他们就无法估算你找一个全职工作要花多长时间。你是否注意到国家失业统计数字并不包括那些不找工作的人?承包人同样影响职业统计。 沿着这些思路,我们来检查下Matloff引用的统计信息。他说,研究表明,“超过40岁的工作人员失业之后再找工作要多花23.4%的时间”。真有意思,但是研究没有分析为什么——可能他们将时间花在了咨询上呢。 还有一点是,老程序员们已经为错误交过学费了。他们可能曾经犯过错误,干过不好的工作,并习惯于某种生活标准。他们并不会感到很大压力非要在第一份工作来的时候就抓住,特别是当他们过去几年过着六位数收入的舒适生活时。有经验的程序员找新工作花的时间更长,可能因为他们要求的标准更高呢? 综合信息 但是谁真正关心Matloff说的那些话呢,是吧?统计,所有这一切,都是谎言,可恶的谎言。不管这些灾难预言者怎么说,老的技术人员很可能对自己在职业生涯中的位置有一个公正的认识。我真正担心的是,Matloff的文章传达给年轻一代(特别是那些马上进入这个工作领域的人)的信息。 一方面,高科技看来仍然是美国为数不多的真正繁荣的行业之一。公司说他们找不到足够多的合格人选。政治家和教育家们绞尽脑汁要燃起年轻人对计算技术的兴趣。并且,一年年的,软件开发一直栖身于最好的工作之列。 另一方面,我们却有像Matloff写的这样的文章,认为编程工作是个死胡同,当其他领域的人员正处于职业生涯巅峰时,程序员只能寄望于被送到制胶厂。这样的说法,往好了说是愚蠢、标题党;往坏了说,是彻头彻尾的不负责任。 ”
21
maven-surefire-plugin简介
“一、maven-surefire-plugin简介 maven-surefire-plugin插件用来在maven构建生命周期的test phase执行一个应用的单元测试。maven-surefire-plugin支持JUnit和TestNG。默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径下所有以Test开头、Test或TestCase结尾的的Java类。 二、跳过测试 如果想跳过测试阶段,可用: mvn package -DskipTests 想临时性跳过测试代码的编译,可用: mvn package -Dmaven.test.skip=true maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。 三、手动指定测试用例 maven-surefire-plugin的test参数用来指定要运行的测试用例: //指定测试类 mvn test -Dtest=RandomGeneratorTest //以Random开头,Test结尾的测试类 mvn test -Dtest=Random*Test //用逗号分隔指定多个测试用例 mvn test -Dtest=ATest,BTest test参数必须匹配至少一个测试类,否则会报错并导致构建失败。此时可使用: mvn test -Dtest -DfailIfNoTests=false 来指定即使没有任何测试用例也不要报错。 四、包含与排除测试用例 ...”
门萨俱乐部介绍
“门萨俱乐部是做智力测试的国际组织,1946年建立在英国。号称世界顶级智商俱乐部,最大特色为该会以智商为唯一入会标准。协会从人类利益出发,确认、培养以及巩固人类智商;鼓励开发研究人的智力本能、特征和用途;为会员提供宝贵的智力刺激、交流和发展的机会。六十多年的发展使门萨成为世界上最好的、最大的、最为成功的智商俱乐部。 他们貌不惊人,当中有商贾学者,也有主妇蓝领,因为一个简单的测验,便汇聚在一起,闲来一道饮茶、出游、聚会。这些人兴趣不同,性情各异,但有一点,这些人普遍智商非凡。他们走到一起,只因为他们聪明。将他们拢在一起的这个圈子,叫“门萨” 1简介 门萨的英文名称是“MENSA”。是拉丁语中“圆桌”的意思。门萨取自圆桌的意思就是希望人们能够平等的坐在一起,当然前提是智商相近。 门萨是世界顶级智商俱乐部的名称,于1946年成立于英国牛津,创始人是律师罗兰德·贝里尔和科学家兼律师兰斯·韦林。当时,这两位自认聪明异常的人突发奇想,编制出一些高难试题以测试智商,受到广泛追捧。兴奋之余,贝里尔和韦林干脆成立一个俱乐部,号召高智商的人士加入。他们有意为聪明者建立一个社团, 通过充满挑战性的社团活动而使参加者的高智商获得承认、肯定和不断提高,并分享彼此的成功。门萨多年来坚持中立和非政治、非营利的原则,至今不变。门萨国际总部和各俱乐部也组织一些收费的活动,以及一些出版活动,但收入全部用于俱乐部的拓展和完善。所有参与者个人不获利。 门萨俱乐部拥有10万多名会员,遍及世界100多个国家和地区。 门萨测试试卷一般有30题,答对23题,换算成智商是148,也就是可以加入门萨俱乐部的标准。门萨测试一般从注意力、观察力、逻辑思维、想象力和记忆力这几个方面出题,这三十道题中分布比例大致相当,你会发现这些题目中有你更为擅长的,也就是哪一方面更为突出。 门萨除为它的会员们提供一个充满刺激的智力交流论坛外,还将它的会员们所贡献的最具挑战的智力问题结集出版,让会员之外的人士共同分享。凭借门萨在智商测试领域的地位,“门萨系列图书”不但热销于欧美,同时还被世界众多政府机构和跨国公司列为甄选人才的重要参考标准。 2入会 条件 门萨中国入会的必须条件: 1.禁止在中国进行政治犯罪。 2.年满18周岁。 3.门萨中国官方网站提交申请,并通过统一安排的门萨入会测试。 方法 如果您觉得自己的智商在130之上,包括130(标准差:15 ,百分比:97.725%),想要加入门萨俱乐部的话,可以通过门萨中国官方网站进行申请,入会测试费260元(全日制学生130元)。 2011年门萨总部批准成立门萨中国分会。截止到2011年底,门萨中国在北京、上海、广州三个城市设有固定考点。须前往以上三个城市参与门萨入会测试并通过,方可收到门萨中国分会发出的入会邀请函,缴纳少量会费后即成为门萨会员,会员年费265元(全日制学生133元)。 3影响 半个多世纪的发展使门萨成为世界上最好的、最大的、最为成功的智商俱乐部。 奥斯卡·瑞格雷 作为一个超级俱乐部,它拥有10万以上的会员,遍布世界100个国家。除南极外,各大洲超过40个国家都设有它的分支机构。 除了高智商外,门萨的会员可以说并无其他特征。参加门萨的惟一途径便是参加考试并脱颖而出——参加门萨的考试或者在其他门萨规定的智商测试中达到最高2%的水平。 4宗旨 自成立以来,该社团者宗旨始终如一,亦即是建立一个非政治性的和非地域性的,消除种族和宗教差异的的全球化纯智力交流社团。将聪明过人者与聪明过人者联系起来。这种联系对人类的思维发展来说非常重要,但在现实的社会条件下却不易办到,MENSA不仅帮助会员们建立友谊,而且为他们提供耐心而明智的听众,来检验他们的新想法、新思路,从而为人脑的进步提供积累和启示。 半个多世纪的历史证明,MENSA的确是世界上最好、规模最大以及最为成功的智商俱乐部。MENSA是一个非常特殊的组织。从根本上说,它是一个超级俱乐部,但与其他俱乐部有着很大的不同,因为成为其会员的唯一标准是在高难度的智商测试中获得极高分,而不是地位、金钱和费用。 自始至终,MENSA都是非营利性的。 MENSA的三条公开宗旨是:从人类利益出发,确认、培养以及巩固人类智商;鼓励开发研究人的智力本能、特征和用途;为其会员提供宝贵的智力刺激、交流和发展的机会。 现在的MENSA拥有十万会员,分布遍及世界100个国家和地区,除南极以外,各大洲超过40个国家和地区都设立有MENSA的分支机构,这些国家和地区包括:澳大利亚、奥地利、巴西、比利时、保加利亚、加拿大、哥伦比亚、克罗地亚、捷克共和国、丹麦、芬兰、法国、德国、希腊、中国(香港)、匈牙利、印度、印度尼西亚、爱尔兰、意大利、日本、韩国、卢森堡、马来西亚、荷兰、新西兰、挪威、巴基斯坦、菲律宾、波兰、罗马尼亚、新加坡、斯洛伐克、南非、西班牙、瑞士、瑞典、英国、美国、原南斯拉夫。中国大陆目前拥有的会员数较少,截至发稿期,中国大陆的会员只有30名左右,目前中国香港拥有门萨的分会,但大陆方面仍未建立俱乐部,会员们也只是国际门萨会籍。 5会员 除了高智商外,MENSA的会员可以说并无其他特征。参加MENSA的惟一途径便是参加考试并脱颖而出(平均每一百人中有两人有机会被吸纳为正式会员)。 MENSA为它的全球会员带来“智力之家”的感觉。对多数人来说,参加MENSA只是为了给自己的心智予以一种激励。大多数会员充满幽默感,热衷于交流和挑(应)战。 MENSA的会员年龄在4岁到94岁之间,但主要集中在20岁到49岁这一年龄段之间。他们当中既有学前儿童或辍学者,也有获得多个博士学位的;有依靠福利救济度日的,也有百万富翁。他们职业差距令人咋舌,有教授、卡车司机、科学家、消防员、电脑程序员、农民、艺术家、军人、音乐家、工人或警员。会员中有的声名显赫,是著名的公众人物,但更多的是默默无闻的普通人。 够资格成为会员的个人可在其居住国的MENSA机构获得该国的会员身份,若居住国没有MENSA机构,则可向英国总部申请,通过既定的考试程序而直接获得国际会员身份。 MENSA会员必须同意遵守《MENSA章程》以及MENSA会员获得身份的国家的MENSA机构的相关章程、规定和决议;准时交纳各国MENSA机构规定的年费。如为国际会员,则交纳MENSA国际董事会规定的年费;允许MENSA将其姓名与住址登在经MENSA授权的刊物上。 6原则 MENSA在拉丁语里意为“桌子”。这代表MENSA是一个平等的圆桌式社团,在这里没有地位的差别。在这个社团里,一切种族、肤色、教条、国籍、年龄、政治教育和社会背景都是无关紧要的。 MENSA不涉及任何政治、宗教及社会事务而只关注纯粹的智商问题,社团包括来自各国各种文化背景下持不同见解的人。谁都可以拥护某种观点而却绝对不能因此而影响社团的基本信条——维护一个兼容并包的纯智力交流论坛。MENSA尊重其会员各有的思维方式与见解,但是,MENSA作为一个超越意识形态的智力测试组织,绝对不能把个人或部分会员的意见作为MENSA的意见;也不能在涉及任何纠纷的调查结果发表之前就发表倾向性意见;更不能令自己的活动安排与意识形态、哲学、政治或宗教有任何联系。MENSA的会员可以以个人身份发表独立见解,但他们的见解与行为并不代表MENSA。 MENSA的信念还在于它认为智力问题的提出及解决应有益于人类的智慧的发展。因此,MENSA的一切活动均不应有对社会不利的意向。 MENSA特别注重的是它是一个非营利性社团,在其运作中可能产生的少量获利都用作其活动经费且受到严格监控。 MENSA就好比蛋白质——其最鲜明的特点就是多样性。它跨越了人与人之间的人为障碍。在招收新会员时,它只选择那些能够真正运用大脑的人,而不管其他因素。虽然表面看来MENSA成员之间缺乏共同的基础,但人类智力的深层和谐性给了这个组织以意想不到的能量。 7活动 MENSA为会员们提供了一个平等、公开的智力交流论坛,它开展的常规活动内容包括有讲座、辩论、杂志出版、专门课题研究、地方或全国性或国际性聚会、会员意见表达及调查反馈,以及自愿协助MENSA聘请的专门研究人员对智力测试标准进行修正研究。 MENSA会定期组织会员开展各种各样的非智力交流活动。会员可在其组织或赞助的活动中享受到各种社交乐趣并结识各种年龄的有趣人士。这类活动常常会是由会员或被邀请的特定人士就某一智力论题发表演讲;室外活动,如郊游、划艇或者看流星;派对、烧烤、晚餐或平常聚会,等等。 8图书出版成果 MENSA所聘请的专家会定期整理,筛选其成员贡献的智力问题,或归纳其富有代表性的试题,或授权熟悉MENSA精髓的智商研究学者编写,从而定期推出以MENSA品牌为号召的书籍和相关产品。凭借MENSA在智商测试领域的权威地位,这些图书不但热销于欧美,同时还被作为西方国家进行智商测定的参考标准,获得多个国家政府的采纳和推广。美国中央情报局、硅谷人才库,英国皇家科学院、哈佛商学院等西方顶尖机构招募人才时必考的问题便包括MENSA系列。 自1997年起,MENSA品牌的所有图书出版权由英国知名出版商CARLTON所获得。 9香港门萨 香港门萨俱乐部成立于1986年,如今会员发展到300多人。香港独特的历史文化特色,令香港门萨个性鲜明。会员中除了黄皮肤,还有一半蓝眼睛。交流语言丰富,除了英语、粤语,还有普通话等其他语言,透射出典型的多元色彩。 据香港门萨俱乐部事务秘书安德鲁介绍,香港门萨定期为会员组织各类聚会和活动,形式同其他地方的俱乐部类似,有出游、野餐、讲座以及逛吧等。俱乐部对会员没有任何限制和要求。 香港门萨的会费低廉,每人每年250港元,21岁以下的会员会费减半。体现了门萨非营利的宗旨。这些钱将成为俱乐部活动的资金。 香港门萨俱乐部没有固定的“办公室”。主席和事务秘书由选举产生,并义务担负起俱乐部的各项活动事宜。入门测试每月2次,安排在中环香港大会堂7楼的一间小厅。考试题目36个,测试者用40分钟答完。试题同英语地区不同,全部是图形试题,这样做是为了避免使用英语对香港居民的不利。测试费用100港元。如果通过测试,不久后你就将接到邀请,获准参加俱乐部的活动了。 香港门萨最特别之处,是它的入门比例高达80%,大大高出世界平均的2%,居门萨各俱乐部前列。香港门萨主席王凤雯认为,原因可能是中国人使用方块字,对图形有天然的敏感,也可能是由于华人心性内敛,不做没有信心的事情,参加者都较有把握。 香港门萨的会员年龄从14岁到80岁不等。安德鲁说,香港俱乐部要求的入门最低年龄是14岁,否则定有更年少者加入。至于那位80岁的老者,则始终是俱乐部的活跃人物,心智非常健康年轻,令人敬佩。 ”
Maven仓库总结
“什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难。此外,如果你使用版本管理工具,如SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很多头疼的问题),你需要将大量的jar文件提交到代码库里,可是版本管理工具在处理二进制文件方面并不出色。 Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR,这节省了磁盘资源。此外,由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等等,因此Maven项目可以方便的进行依赖版本管理。你也不在需要提交JAR文件到SCM仓库中,你可以建立一个组织层次的Maven仓库,供所有成员使用。 简言之,Maven仓库能帮助我们管理构件(主要是JAR)。 本地仓库 vs. 远程仓库 运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。 比如说,你的项目配置了junit-3.8的依赖,在你运行mvn test 的时候,Maven需要使用junit-3.8的jar文件,它首先根据坐标查找本地仓库,如果找到,就直接使用。如果没有,Maven会检查可用的远程仓库配置,然后逐个尝试这些远程仓库去下载junit-3.8的jar文件,如果远程仓库存在该文件,Maven会将其下载到本地仓库中,继而使用。如果尝试过所有远程仓库之后,Maven还是没能够下载到该文件,它就会报错。 Maven缺省的本地仓库地址为${user.home}/.m2/repository 。也就是说,一个用户会对应的拥有一个本地仓库。 你也可以自定义本地仓库的位置,修改${user.home}/.m2/settings.xml : ... D:/java/repository ... 你还可以在运行时指定本地仓库位置: mvn clean install -Dmaven.repo.local=/home/juven/myrepo/ 还有一点需要理解的是,当我们运行install的时候,Maven实际上是将项目生成的构件安装到了本地仓库,也就是说,只有install了之后,其它项目才能使用此项目生成的构件。 了解了本地仓库,接着了解一下Maven缺省的远程仓库,即Maven中央仓库。 安装好Maven之后,我们可以建立一个简单的项目,配置一些简单的依赖,然后运行mvn clean install,项目就构建好了。我们没有手工的去下载任何jar文件,这一切都是因为Maven中央仓库的存在,当Maven在本地仓库找不到需要的jar文件时,它会查找远程仓库,而一个原始的Maven安装就自带了一个远程仓库——Maven中央仓库。 这个Maven中央仓库是在哪里定义的呢?在我的机器上,我安装了maven-2.0.10,我可以找到这个文件:${M2_HOME}/lib/maven-2.0.10-uber.jar ,打开该文件,能找到超级POM:/org/apache/maven/project/pom-4.0.0.xml ,它是所有Maven ...”
常用Maven插件介绍
“我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven-compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码。 用户可以通过两种方式调用Maven插件目标。第一种方式是将插件目标与生命周期阶段(lifecycle phase)绑定,这样用户在命令行只是输入生命周期阶段而已,例如Maven默认将maven-compiler-plugin的compile目标与compile生命周期阶段绑定,因此命令mvn compile实际上是先定位到compile这一生命周期阶段,然后再根据绑定关系调用maven-compiler-plugin的compile目标。第二种方式是直接在命令行指定要执行的插件目标,例如mvn archetype:generate 就表示调用maven-archetype-plugin的generate目标,这种带冒号的调用方式与生命周期无关。 认识上述Maven插件的基本概念能帮助你理解Maven的工作机制,不过要想更高效率地使用Maven,了解一些常用的插件还是很有必要的,这可以帮助你避免一不小心重新发明轮子。多年来Maven社区积累了大量的经验,并随之形成了一个成熟的插件生态圈。Maven官方有两个插件列表,第一个列表的GroupId为org.apache.maven.plugins,这里的插件最为成熟,具体地址为:http://maven.apache.org/plugins/index.html。第二个列表的GroupId为org.codehaus.mojo,这里的插件没有那么核心,但也有不少十分有用,其地址为:http://mojo.codehaus.org/plugins.html。 接下来笔者根据自己的经验介绍一些最常用的Maven插件,在不同的环境下它们各自都有其出色的表现,熟练地使用它们能让你的日常构建工作事半功倍。 maven-antrun-plugin http://maven.apache.org/plugins/maven-antrun-plugin/ maven-antrun-plugin能让用户在Maven项目中运行Ant任务。用户可以直接在该插件的配置以Ant的方式编写Target,然后交给该插件的run目标去执行。在一些由Ant往Maven迁移的项目中,该插件尤其有用。此外当你发现需要编写一些自定义程度很高的任务,同时又觉得Maven不够灵活时,也可以以Ant的方式实现之。maven-antrun-plugin的run目标通常与生命周期绑定运行。 maven-archetype-plugin http://maven.apache.org/archetype/maven-archetype-plugin/ Archtype指项目的骨架,Maven初学者最开始执行的Maven命令可能就是mvn archetype:generate,这实际上就是让maven-archetype-plugin生成一个很简单的项目骨架,帮助开发者快速上手。可能也有人看到一些文档写了mvn archetype:create,但实际上create目标已经被弃用了,取而代之的是generate目标,该目标使用交互式的方式提示用户输入必要的信息以创建项目,体验更好。maven-archetype-plugin还有一些其他目标帮助用户自己定义项目原型,例如你由一个产品需要交付给很多客户进行二次开发,你就可以为他们提供一个Archtype,帮助他们快速上手。 maven-assembly-plugin http://maven.apache.org/plugins/maven-assembly-plugin/ maven-assembly-plugin的用途是制作项目分发包,该分发包可能包含了项目的可执行文件、源代码、readme、平台脚本等等。maven-assembly-plugin支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的,例如用户可以按文件级别的粒度、文件集级别的粒度、模块级别的粒度、以及依赖级别的粒度控制打包,此外,包含和排除配置也是支持的。maven-assembly-plugin要求用户使用一个名为assembly.xml的元数据文件来表述打包,它的single目标可以直接在命令行调用,也可以被绑定至生命周期。 maven-dependency-plugin http://maven.apache.org/plugins/maven-dependency-plugin/ maven-dependency-plugin最大的用途是帮助分析项目依赖,dependency:list能够列出项目最终解析到的依赖列表,dependency:tree能进一步的描绘项目依赖树,dependency:analyze可以告诉你项目依赖潜在的问题,如果你有直接使用到的却未声明的依赖,该目标就会发出警告。maven-dependency-plugin还有很多目标帮助你操作依赖文件,例如dependency:copy-dependencies能将项目依赖从本地Maven仓库复制到某个特定的文件夹下面。 maven-enforcer-plugin http://maven.apache.org/plugins/maven-enforcer-plugin/ 在一个稍大一点的组织或团队中,你无法保证所有成员都熟悉Maven,那他们做一些比较愚蠢的事情就会变得很正常,例如给项目引入了外部的SNAPSHOT依赖而导致构建不稳定,使用了一个与大家不一致的Maven版本而经常抱怨构建出现诡异问题。maven-enforcer-plugin能够帮助你避免之类问题,它允许你创建一系列规则强制大家遵守,包括设定Java版本、设定Maven版本、禁止某些依赖、禁止SNAPSHOT依赖。只要在一个父POM配置规则,然后让大家继承,当规则遭到破坏的时候,Maven就会报错。除了标准的规则之外,你还可以扩展该插件,编写自己的规则。maven-enforcer-plugin的enforce目标负责检查规则,它默认绑定到生命周期的validate阶段。 maven-help-plugin http://maven.apache.org/plugins/maven-help-plugin/ maven-help-plugin是一个小巧的辅助工具,最简单的help:system可以打印所有可用的环境变量和Java系统属性。help:effective-pom和help:effective-settings最为有用,它们分别打印项目的有效POM和有效settings,有效POM是指合并了所有父POM(包括Super POM)后的XML,当你不确定POM的某些信息从何而来时,就可以查看有效POM。有效settings同理,特别是当你发现自己配置的settings.xml没有生效时,就可以用help:effective-settings来验证。此外,maven-help-plugin的describe目标可以帮助你描述任何一个Maven插件的信息,还有all-profiles目标和active-profiles目标帮助查看项目的Profile。 maven-release-plugin http://maven.apache.org/plugins/maven-release-plugin/ maven-release-plugin的用途是帮助自动化项目版本发布,它依赖于POM中的SCM信息。release:prepare用来准备版本发布,具体的工作包括检查是否有未提交代码、检查是否有SNAPSHOT依赖、升级项目的SNAPSHOT版本至RELEASE版本、为项目打标签等等。release:perform则是签出标签中的RELEASE源码,构建并发布。版本发布是非常琐碎的工作,它涉及了各种检查,而且由于该工作仅仅是偶尔需要,因此手动操作很容易遗漏一些细节,maven-release-plugin让该工作变得非常快速简便,不易出错。maven-release-plugin的各种目标通常直接在命令行调用,因为版本发布显然不是日常构建生命周期的一部分。 maven-resources-plugin http://maven.apache.org/plugins/maven-resources-plugin/ 为了使项目结构更为清晰,Maven区别对待Java代码文件和资源文件,maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件。默认的主资源文件目录是src/main/resources,很多用户会需要添加额外的资源文件目录,这个时候就可以通过配置maven-resources-plugin来实现。此外,资源文件过滤也是Maven的一大特性,你可以在资源文件中使用${propertyName}形式的Maven属性,然后配置maven-resources-plugin开启对资源文件的过滤,之后就可以针对不同环境通过命令行或者Profile传入属性的值,以实现更为灵活的构建。 maven-surefire-plugin http://maven.apache.org/plugins/maven-surefire-plugin/ 可能是由于历史的原因,Maven 2/3中用于执行测试的插件不是maven-test-plugin,而是maven-surefire-plugin。其实大部分时间内,只要你的测试类遵循通用的命令约定(以Test结尾、以TestCase结尾、或者以Test开头),就几乎不用知晓该插件的存在。然而在当你想要跳过测试、排除某些测试类、或者使用一些TestNG特性的时候,了解maven-surefire-plugin的一些配置选项就很有用了。例如 mvn test -Dtest=FooTest 这样一条命令的效果是仅运行FooTest测试类,这是通过控制maven-surefire-plugin的test参数实现的。 build-helper-maven-plugin http://mojo.codehaus.org/build-helper-maven-plugin/ Maven默认只允许指定一个主Java代码目录和一个测试Java代码目录,虽然这其实是个应当尽量遵守的约定,但偶尔你还是会希望能够指定多个源码目录(例如为了应对遗留项目),build-helper-maven-plugin的add-source目标就是服务于这个目的,通常它被绑定到默认生命周期的generate-sources阶段以添加额外的源码目录。需要强调的是,这种做法还是不推荐的,因为它破坏了 Maven的约定,而且可能会遇到其他严格遵守约定的插件工具无法正确识别额外的源码目录。 build-helper-maven-plugin的另一个非常有用的目标是attach-artifact,使用该目标你可以以classifier的形式选取部分项目文件生成附属构件,并同时install到本地仓库,也可以deploy到远程仓库。 exec-maven-plugin http://mojo.codehaus.org/exec-maven-plugin/ exec-maven-plugin很好理解,顾名思义,它能让你运行任何本地的系统程序,在某些特定情况下,运行一个Maven外部的程序可能就是最简单的问题解决方案,这就是exec:exec的用途,当然,该插件还允许你配置相关的程序运行参数。除了exec目标之外,exec-maven-plugin还提供了一个java目标,该目标要求你提供一个mainClass参数,然后它能够利用当前项目的依赖作为classpath,在同一个JVM中运行该mainClass。有时候,为了简单的演示一个命令行Java程序,你可以在POM中配置好exec-maven-plugin的相关运行参数,然后直接在命令运行 mvn ...”
Maven 参数 -Dskiptests 和 -Dmaven.test.skip
“前段时间,一个maven plugin大牛email说,现在可以使用-Dskiptests来跳过unit test。 赶忙,看一下git history,看看大牛改了什么来enable上述功能。原来是新加了surfire plugin。 org.apache.maven.plugins maven-surefire-plugin 2.6 -Xms512M -Xmx512M ${project.build.directory}/generated-classes/emma/classes ${logbackConfig} 又看文档了解到-Dskiptests是surefire特有的环境参数,而 -Dmaven.test.skip是maven built-in的环境变量。 来源:http://blog.csdn.net/shanling2004/article/details/6710473 ================== 方法1: To skip running the tests for a particular ...”
17
全栈工程师到底有什么用
“最近国内外都在流行一个词叫Full Stack,中文翻译过来叫全栈工程师,也叫全端工程师。微博上很多专业人士都在讨论全端工程师,有赞有毁的。我对全端工程师的定义是:掌握多种技能,并能利用多种技能独立完成产品的人。打外比方,全栈工程师就是一个能独立盖一幢10层小洋楼的人,而普通工程师,则是可以和一群人盖一幢摩天大楼的人。至于要掌握哪些技能,我觉得这个要跟从事的行业与技术方向有关,做互联网的和做软件的是不一样的,即使是做互联网的,后端也可以分为很多种技术流派。 8/2定律在哪都适用,全栈工程师就是掌握20%常用技能的人,但这20%的技能会有80%的几率被用到,剩下那80%不常用的,让我们Google吧。 有人说,全栈工程师在中国已经很多年了,他们叫站长。这个说话有点靠谱但又不那么靠谱,我自己也做过站长,深知作为一名站长需要掌握很多种技术。不靠谱的是,很多站长其实并没有真正写过多少代码,而是熟练利用一些建站软件来建站。 全栈工程师的价值 有人说了,你再牛逼,你懂五种技术,你能干五个人的活吗?全栈工程师并不是说一个人能干几个人的活,而是要从多个方面来看这个问题。 全局性思维 现代项目的开发,很少说只用到一两种技术的,特别是移动互联网大潮下。随便一个互联网项目中用到的技术,就会需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,一些比较前卫的项目,可能会用到Single Page Application、Web Socket、HTML5/CSS3这些技术,还有像第三方开发像微信公众号微博应用等等。 Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。 所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。 像如果是我经手的项目,我肯定会注意到网页优化,也会考虑到API来兼容各种客户端,更会考虑到三屏兼容的问题。不会说项目中完全使用AJAX而不顾SEO,也不会为了功能性而忽略访问速度,我会很好的把握这个平衡,因为我知道它们的权重与实现成本。 沟通成本 项目越大,沟通成本越高,做过项目管理的人都知道,项目中的人力是1+1”
一个公司待多久合适?
“在同一个公司同一个职位上,一旦错过了3~5年的跳槽黄金期,如上所述,员工对安逸的需求大于上进求胜的欲望,随着年龄的增大,家庭琐事的负担,人的惰性将越来越束缚内心,最终沦为朝九晚五混日子的上班族。 这个话题,之前有过讨论,也经常被一些职场人问到,根据小编对身边同事的了解,分享一下个人对这个话题的看法。 无论是公司HR,还是专业的猎头,对应聘者非常看重的一点便是“忠诚度”,因为一个企业不希望辛辛苦苦培养的员工,却为别人做了嫁衣。 根据小编的了解,一个人如果在同一个单位工作年限低于2年,往往被看做“不够忠诚”;而不到一年,可以被视为“稳定性差”。 那么是不是年限越长越有价值呢?不然!如果一个人在同一个企业年限超过5~8年,而岗位较低,薪资平平,这样的人反而没有竞争力。 就小编个人的观点而言,在同一个公司同一个岗位上,工作3~5年,如果职位没有上升,薪资没有大涨幅,应该考虑内部转岗或者外部跳槽来增值,否则个人的价值和能力不进则退。 为什么是3~5年? 不管是同行同岗,还是跨行换岗,一个人在进入一个新的工作环境,第一年往往是打酱油的熟悉过程,第二年才可能慢慢进入角色,真正融入企业文化,熟悉自己产品的内涵,经过前2年的积累,到了第三年才真正出成绩,当然也是职位和薪资提高的关键时期。 以上的过程,如果进入一个同行同岗的新环境,那么打酱油的时间会缩短,但不会少于6个月,基本也是在第三年的时候实现职位和待遇的较大提高。而且,企业的HR对于员工的期许也是在第二、三年。因此,进入一个新环境后的第三年,如果做不出较大成绩,哪怕个人不主动请辞,恐怕HR也坐不住了。 三年也是大多数正规企业第一次签合同的期限,如果被公司认可,那么接下来将至少是三年的合同续签。 如果个人表现很优异,到了第三年没有获得职位的提升(或者因为内部没有空缺职位),也不要在这时的合同到期日选择不续约,请务必续约,毕竟做生不如做熟,继续巩固一下自己的工作业绩,在第四、五年时看是否有提升的机会?说不定,公司领导和HR,只是希望再考察一年,到了第四年或者第五年,给你一个更高的职位或者一个平级而更好的发展空间。 如果你有幸在第四或者第五年,被内部提拔,那么继续在这个岗位上,仍旧以三到五年为限,为自己设定下一个提升目标。 如果到了第四或第五年,自己的成绩仍旧很突出,却没有得到更高的职位或者薪水,那么最明智的选择,就是跳槽。因为,这个环境已经成了瓶颈,而且个人的求胜欲望和上进心仍旧出于高点,此时跳槽,不仅可以得到更高的职位和待遇,也可以继续延续个人的求胜欲望。 如果选择混日子或者安于现状,那么你将会面临“生于忧患,死于安乐”的危险时刻,因为缺乏更高的发展空间,将慢慢削弱个人的求胜欲望,时间也将慢慢钝化个人的上进心,一旦这样的日子持续超过2年,一个人的锐气将被磨平,再想重拾当年的雄风,很难。这样的状态下跳槽,你很难有信心去博得一个更高的职位和薪水。因为,企业更喜欢充满激情,充满创造力的头脑,而不是一个安于现状,不思进取的心态。 在同一个公司同一个职位上,一旦错过了3~5年的跳槽黄金期,如上所述,员工对安逸的需求大于上进求胜的欲望,随着年龄的增大,家庭琐事的负担,人的惰性将越来越束缚内心,最终沦为朝九晚五混日子的上班族。 有的人尽管职位从职员到了主管,又到了经理,但是薪水每年以5~8%的比率增长,超过5年,依旧缺乏竞争力。很多人不再敢于去接受新事物,而安于每年5~8%的涨幅。而跳槽时,HR只会以你当下的薪资为起点,然后增长10~30%,因为你的年限越长,而待遇较低,对HR而言,说明你的价值也就在这个水平上,不会给你超过50%的增长。 3~5年,尤其是在第四或者五年,员工刚刚过了对原单位的新鲜感,呆腻了老环境,这个时候跳槽到一个新的环境,将继续刺激自己的创造思维。员工很难继续吃老本,只能不断学习提高自己,这样进一步巩固个人的能力,于己于企业,是一个双赢的时刻! ”
16
对中国 Linux 标准战略与战术的思考
““制订标准” 现在已经成为了一个时髦的词,而有关各种标准的消息,也不断充斥耳畔,这也昭告了 “标准时代” 的来临。生于田野,长于社会,不拘小节的小企鹅 Linux 也未能免俗,各种 Linux 标准也纷至踏来, 这就是“成长的烦恼”吧!而制订 Linux 标准正逐步成为我国标准战略的一个重要组成部份。 同样是制订标准,小企鹅的出生、成长方式、生存模式以及“它”和我们的相互认知度都对我们制订 Linux 标准有着重要的影响。 “标准”真的万能吗?认为只要制定了 Linux 国家标准, ...”
14
乐观锁与悲观锁的区别
“为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。 典型的冲突有: l 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 l 脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看到的值都是6,用户B把值改为2,用户A读到的值仍为6。 为了解决这些并发带来的问题。 我们需要引入并发控制机制。 并发控制机制 最常用的处理多用户并发访问的方法是加锁。当一个用户锁住数据库中的某个对象时,其他用户就不能再访问该对象。加锁对并发访问的影响体现在锁的粒度上。比如,放在一个表上的锁限制对整个表的并发访问;放在数据页上的锁限制了对整个数据页的访问;放在行上的锁只限制对该行的并发访问。可见行锁粒度最小,并发访问最好,页锁粒度最大,表锁介于2者之间。 悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。悲观锁假定其他用户企图访问或者改变你正在访问、更改的对象的概率是很高的,因此在悲观锁的环境中,在你开始改变此对象之前就将该对象锁住,并且直到你提交了所作的更改之后才释放锁。悲观的缺陷是不论是页锁还是行锁,加锁的时间可能会很长,这样可能会长时间的限制其他用户的访问,也就是说悲观锁的并发访问性不好。 乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。 乐观锁不能解决脏读的问题。乐观锁则认为其他用户企图改变你正在更改的对象的概率是很小的,因此乐观锁直到你准备提交所作的更改时才将对象锁住,当你读取以及改变该对象时并不加锁。可见乐观锁加锁的时间要比悲观锁短,乐观锁可以用较大的锁粒度获得较好的并发访问性能。但是如果第二个用户恰好在第一个用户提交更改之前读取了该对象,那么当他完成了自己的更改进行提交时,数据库就会发现该对象已经变化了,这样,第二个用户不得不重新读取该对象并作出更改。这说明在乐观锁环境中,会增加并发用户读取对象的次数。 从数据库厂商的角度看,使用乐观的页锁是比较好的,尤其在影响很多行的批量操作中可以放比较少的锁,从而降低对资源的需求提高数据库的性能。再考虑聚集索引。在数据库中记录是按照聚集索引的物理顺序存放的。如果使用页锁,当两个用户同时访问更改位于同一数据页上的相邻两行时,其中一个用户必须等待另一个用户释放锁,这会明显地降低系统的性能。interbase和大多数关系数据库一样,采用的是乐观锁,而且读锁是共享的,写锁是排他的。可以在一个读锁上再放置读锁,但不能再放置写锁;你不能在写锁上再放置任何锁。锁是目前解决多用户并发访问的有效手段。 乐观锁应用 1.使用自增长的整数表示数据版本号。 更新时检查版本号是否一致,比如数据库中数据版本为6,更新提交时version=6+1,使用该version值(=7)与数据库version+1(=7)作比较,如果相等,则可以更新,如果不等则有可能其他程序已更新该记录,所以返回错误。 2.使用时间戳来实现。 注:对于以上两种方式,Hibernate自带实现方式:在使用乐观锁的字段前加annotation: @Version, Hibernate在更新时自动校验该字段。 悲观锁应用 需要使用数据库的锁机制,比如SQL SERVER 的TABLOCKX(排它表锁) 此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。 SqlServer中使用 Begin Tran select ...”
乐观锁与悲观锁
“锁( locking ) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中 (可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “ 锁 ” ,即给我们选定的目标数据上锁,使其无法被其他程序修改。 Hibernate 支持两种锁机制:即通常所说的 “ 悲观锁( Pessimistic Locking) ...”
13
关于声音训练
“我感觉这个需要很长时间的练习才能达到你想要的效果,因为我的声音就是偏低,越想高越感觉憋在嗓子里发不出声音。 也曾请教过一些老师,自我感觉这样可以改善: 如果先天条件不是“洪钟型”的,就没有必要因为这个而不自信,越因为这个紧张可能越发不出自然而洪亮的声音。特别是在公众场合和需要声音大的场合,不自信可能会带来更多的尴尬。 演讲或朗诵时,在必要时候做些停顿,以调整呼吸,观众也会将注意力集中起来,如果有麦就大可不必担心了,因为一般的设备都没问题。只需要自信些。如果没有麦,那就首先要心静,主观上想要谁听到就对着谁放开声音大胆去说。就象你说的内心的气流。 演讲或朗诵的技巧也是需要注意的,有助于你的发挥,主要是抑扬顿挫、不要拖沓或太快、主题突出、重点突出等。 一、用气发声练习 科学的呼吸方式和灵活的气息控制,可使音色甜润、优美、持久,有力。大部分学生朗读时间稍长就感到底气不足,出现口干舌燥、声音嘶哑的现象。这就是因为他呼吸方法不对,气息量不够的缘故。那么,怎样才能把气吸得多而且控制自如呢?首先我们要让学生练习气吸得深,让气往下沉,把胸腔和腹腔之间的横膈膜向下压,使胸腔的上下径加长、扩大。这就是人们常说的“胸腹联合呼吸法”。吸气时,两肋展开,横膈下降,胸部稍向前倾,小腹自然内收,后腰坚挺饱满,发声呼气 时用腹肌控制出气量的大小与力度,在小腹肚脐下三指处形成一个支力点。传统的戏曲把这叫“气沉丹田”。 为了掌握这种科学的呼吸方法必须先练习正确的吸气方法。吸气时全身,特别是肩、胸要放松。可做以下练习: (1)闻花香:把气深深地吸下去,一直吸到肺底,获得小腹及腰围的胀满感,要吸得深入、自然、柔和。 (2)抬重物:意念上准备抬起一件重物,先要深吸一口气,然后憋足一股劲儿。 学会了正确的吸气方法后,接着就要练习有控制地均匀平稳的呼气方法。练习呼气首先得吸气,吸足气之后,以丹田穴 为支力点,口中发出带有声带颤动的“嘶”的音,使气慢慢地、均匀地呼出。发出的“嘶”的音最好能坚持40—50秒,这样说明气吸得多,而且深。还可做吹蜡 烛练习。方法是,点着蜡烛后,深吸一口气,然后对着火焰轻轻吹去,不要将火焰吹灭,气要轻而匀,使火焰向外方倾斜,并努力让自己的气使它保持住倾斜状态。 这是检验出气量是否均匀的一个好方法。 这些练习做好后,再找些读起来难度较大、内容较复杂的长句进行练习。读长句时,吸气量要大,读时要控制好气息,气要“拉住”不能随意顿歇和补气,否则就会破坏语意的完整。 ”
软件包管理 rpm yum apt-get dpkg
“软件包管理 在GNU/Linux(以下简称Linux)操作系统中,RPM和DPKG为最常见的两类软件包管理工具,他们分别应用于基于RPM软件包的Linux发行版本和DEB软件包的Linux发行版本。软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。 RPM全称为Redhat Package Manager,最早由RedHat公司制定实施,随后被GNU开源操作系统接受并成为很多Linux系统(RHEL)的既定软件标准。DEB是基于Debian操作系统(UBUNTU)的DEB软件包管理工具-DPKG,全称为 Debian Package。 一、RPM包的安装/升级/查询/卸载 一个RPM包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以.rpm扩展名结尾的文件,例如package.rpm。对其操作,需要使用rpm/yum命令。 1、RPM命令常用参数 RPM的常规使用方法为rpm-? package.rpm,其中-?为操作参数(更多信息,请查阅帮助man rpm): -q 在系统中查询软件或查询指定rpm包的内容信息 -i 在系统中安装软件 -U 在系统中升级软件 -e 在系统中卸载软件 -h 用#(hash)符显示rpm安装过程 -v 详述安装过程 安装RPM包 rpm -ivh package.rpm 升级rpm包 rpm -Uvh package.rpm 卸载rpm包 rpm ...”
必知的Linux关机/重启命令
“学习知识首先要从基础学起,不如说现在很多人在学习Linux操作系统,学习Linux就要先了解一些Linux命令,本文介绍Linux关机/重启命令的知识。常用的Linux关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。 1.shutdown shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭Linux,这是十分危险的。因为Linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。 shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。 shutdown 参数说明: 在改变到其它runlevel之前﹐告诉init多久以后关机。 重启计算器。 并不真正关机﹐只是送警告信号给每位登录者〔login〕。 关机后关闭电源〔halt〕。 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。 cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。 在重启计算器〔reboot〕时忽略fsck。 ...”
Linux如何切换到root用户(ubuntu/LinuxMint)
“这里讲的切换到root用户,并不是在图形界面中用root权限打开文件浏览器,而是直接在命令行中获得root权限。 该方法我已经测试过了,可以很好的执行。 众所周知,UNIX/LINUX拥有很多丰富的命令,这些命令均是直接通过命令行的方式执行的,其强大而丰富的功能绝非鼠标在界面点击所能比的。下面分享一个非常简单的命令,在命令行状态下切换到root用户。 先说一下问题的起因吧: 我在工作中使用Solaris,因此非常习惯使用su(switch user)切换到root用户,进行一些必要的操作。比如:查看修改系统文件,安装package。这两天玩Q5的命令行(打开终端窗口就可以了),发现缺省的是“user”用户。于是就想su到root。但是切换的时候需要输入root密码,这下我可懵了,不知道root密码是啥呀!不管了,先猜猜吧。第一次我试了"root"作为密码,不对!第二次又试了空串,也不对!郁闷之余,只好到Ubuntu的社区去查询。 解决方法: 先说说我查到的有关Ubuntu的一些信息。 据Ubuntu社区上的帖子说,Ubuntu中的root没有固定的密码。它的密码是动态改变的。据帖子说,是每隔5分钟就自动改变root密码。这样能够获得非常高的安全性。是啊,安全是安全了,难道俺就没办法获得root密码了吗。继续查,终于发现了一个非常简单的命令。咱们一般都是用sudo来获得root权限,进行有关操作的。但是请注意sudo只是允许操作人获得root权限,并不是你真正的切换到root用户了。并且,sudo并不能执行所有的root权限的命令,它只能是root权限的一个子集,你的实际用户还是user。 如果要切换到root用户,只需要简单的执行命令 "sudo su" 即可。 切换到root的优势是显而易见的,能够完全获得root权限。另外还有个小好处,就是能少敲一些字符,比如再执行某些需要高权限的命令就不需要带sudo前缀了。 退出root也很简单,只要执行exit命令,就可以退回到user用户。 ”
10
Java泛型编程指南
“此系列文章译自SUN的泛型编程指南, 看不懂译文的请看原文 http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf 一、绪言 JDK1.5对JAVA语言进行了做了几个扩展,其中一个就是泛型。 本指南旨在介绍泛型。如果你熟悉其它语言的构造类似的东西,特别是C++的模板(template),你会很快发现它们之间的相同点及重要的不同点;如果你在其他地方没看到过类似的东西,那反而更好,那样你就可以开始全新的学习,用不着去忘掉那些(对JAVA泛型)容易产生误解的东西。 泛型允许你对类型进行抽象。最常见的例子是容器类型,比如那些在Collection层次下的类型。 下面是那类例子的典型用法: List myIntList = new LinkedList();//1 myIntList.add(new Integer(0));//2 Integer x = (Integer) myIntList.iterator().next();//3 第3行里的强制类型转换有点烦人,程序通常都知道一个特定的链表(list)里存放的是何种类型的数据,但却一定要进行类型转换。编译器只能保证迭代器返回的是一个对象,要保证对Integer类型变量的赋值是类型安全的话,必须进行类型转换。类型转换不但会引起程序的混乱,还可能会导致运行时错误,因为程序员可能会犯错误。 如果程序员可以如实地表达他们的意图,即标记一个只能包含特定数据类型的链表,那会怎么样呢?这就是泛型背后的核心思想。下面是前面代码的泛型写法: List myIntList = new LinkedList();//1' myIntList.add(new ...”
查看Linux系统信息
“简单列一下,具体命令的含义还得google一下。 系统 # uname -a ...”
软件包管理 rpm yum apt-get dpkg
“软件包管理 在GNU/Linux(以下简称Linux)操作系统中,RPM和DPKG为最常见的两类软件包管理工具,他们分别应用于基于RPM软件包的Linux发行版本和DEB软件包的Linux发行版本。软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。 RPM全称为Redhat Package Manager,最早由RedHat公司制定实施,随后被GNU开源操作系统接受并成为很多Linux系统(RHEL)的既定软件标准。DEB是基于Debian操作系统(UBUNTU)的DEB软件包管理工具-DPKG,全称为 Debian Package。 一、RPM包的安装/升级/查询/卸载 一个RPM包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以.rpm扩展名结尾的文件,例如package.rpm。对其操作,需要使用rpm/yum命令。 1、RPM命令常用参数 RPM的常规使用方法为rpm-? package.rpm,其中-?为操作参数(更多信息,请查阅帮助man rpm): -q 在系统中查询软件或查询指定rpm包的内容信息 -i 在系统中安装软件 -U 在系统中升级软件 -e 在系统中卸载软件 -h 用#(hash)符显示rpm安装过程 -v 详述安装过程 -p 表明对RPM包进行查询,通常和其它参数同时使用,如: -qlp 查询某个RPM包中的所有文件列表, 查看软件包将会在系统里安装哪些部分 -qip 查询某个RPM包的内容信息,系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。 安装RPM包 rpm -ivh package.rpm 升级rpm包 rpm -Uvh package.rpm 卸载rpm包 rpm ...”
Linux如何卸载程序
“A:RPM包,这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双击就能自动安装。 ==如何卸载: 1、打开一个SHELL终端 2、因为LINUX下的软件名都包括版本号,所以卸载前最好先确定这个软件的完整名称。 查找RPM包软件:rpm -qa ×××* 注意:×××指软件名称开头的几个字母,不要求写全,但别错,*就是通配符号“*”,即星号,如你想查找机子里安装的REALPLAYER软件,可以输入:rpm -qa realplay* 3、找到软件后,显示出来的是软件完整名称,如firefox-1.0.1-1.3.2 执行卸载命令:rpm -e firefox-1.0.1-1.3.2 ===安装目录,执行命令查找:rpm -ql firefox-1.0.1-1.3.2 B:tar.gz(bz或bz2等)结尾的源代码包,这种软件包里面都是源程序,没有编译过,需要编译后才能安装,安装方法为: 1、打开一个SHELL,即终端 2、用CD 命令进入源代码压缩包所在的目录 3、根据压缩包类型解压缩文件(*代表压缩包名称) tar -zxvf ****.tar.gz tar -jxvf ****.tar.bz(或bz2) 4、用CD命令进入解压缩后的目录 5、输入编译文件命令:./configure(有的压缩包已经编译过,这一步可以省去) 6、然后是命令:make 7、再是安装文件命令:make install 8、安装完毕 ===如何卸载: 1、打开一个SHELL,即终端 2、用CD ...”
linux环境变量总结
“Linux 的变量可分为两类:环境变量和本地变量 环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了。Linux 的环境变量具有继承性,即子shell 会继承父shell 的环境变量。 本地变量,当前shell 中的变量,很显然本地变量中肯定包含环境变量。Linux 的本地变量的非环境变量不具备继承性。 Linux 中环境变量的文件 当你进入系统的时候,linux 就会为你读入系统的环境变量,这些环境变量存放在什么地方,那就是环境变量的文件中。Linux 中有很多记载环境变量的文件,它们被系统读入是按照一定的顺序的。 /etc/profile 此文件为系统的环境变量,它为每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d 目录的配置文件中搜集shell 的设置。 这个文件,是任何用户登陆操作系统以后都会读取的文件(如果用户的shell 是csh 、tcsh ...”
四大Linux图形界面赏析:KDE、Gnome、Xfce、LXDE
“如果不是加入了图形界面,微软的Windows系列操作系统不会成功地占领计算机桌面这块高地。 如果不是加入了图形界面,微软的Windows系列操作系统不会成功地占领计算机桌面这块高地。这种人机交换的图形化界面,使得界面更加直观、简易、而且更人性化,同时也大大减少了使用者的认知负担,普通用户无需再牢记让人“劳神”的命令,直接拖拽就能操作。 在这一点上,微软确实是将图形化操作界面这条路走得更彻底、更专一,尽管人们一直都在抱怨Windows系统安全性和稳定性上的不足,但是,在应用程序和娱乐性上,微软仍然赢得了大多数普通用户的青睐,因为在他们的工作和生活中,这些就已经足够了。 图形界面架起用户迈向Linux的桥梁 而相对而言,Linux系统一直坚持自己的专业路线,在服务器操作系统领域,Linux凭借着其安全性和稳定性等特性,一直都企业的绝对主力。不过,尽管Linux在服务器操作系统领域算是佼佼者,而且很多Linux系统都是开源软件,但是了解和熟悉他们的人大多都集中在社区和专业人士中。 不过,现在这一情况正在不断地改变。随着,近几年Windows系统爆出的各种不愉快的事件,人们醒悟过来,任何时候都不能受限于一种产品,否则不管是个人还是企业都有被辖制的危险。 而同时,在Linux/Unix系统自身地不断进步及其上各个图形界面产品不断地成熟和发展,越来越多的普通用户通过试用发现,这种组合能够焕发出独特的吸引力,很多企业和个人都在这个过程纷纷放弃Windows转投Linux/Unix的怀抱。 很多可能会提出问题,在Linux系统下,还有很多应用软件和娱乐仍然都无法使用,甚至一些驱动程序还没有,但是这一情况正在渐渐得以解决,越来越多的软件和硬件厂商正在支持或者准备支持Linux/Unix系统。 事实上,很多年前,我们Linux开发者们,早就已经注意开发出针对普通用户的图形界面环境了。这篇文章编者带你认识一下,这些吸引普通用户迈入Linux系统世界的图形桌面环境。 在介绍之前,编者做了一次调查,发现在distowatch.com网站上,2010年6月份排在前十名的操作系统,他们都使用了什么样的图形桌面环境。 而调查的结果见下表,而Enlightenment和JWM两种图形桌面环境各有一个系统使用,就没有在表中体现出来。 从编者这个局部的调查可以看出来,GNOME和KDE是目前的主流环境,而Xfce、LXDE、Openbox和Fluxbox等也已经得到了很高的应用。下面,编者就以上图形桌面环境进一步的解析。 KDE KDE(Kool Desktop Environment)项目始建于1996年10月,相对于GNOME还要早一些。KDE项目是由图形排版工具Lyx的开发者、一位名为Matthias Ettrich的德国人发起的,目的是为满足普通用户也能够通过简单易用的桌面来管理Unix工作站上的各种应用软件以及完成各种任务。 在应用开发方面,KDE项目已经开发了一流的复合文档应用程序框架,实现了最先进的框架技术并且因此把它自己直接置身于和诸如微软的MFC/COM/ActiveX技术等流行开发框架相竞争的位置。KDE的KParts复合文档技术使得开发人员可以快速创建一流的应用程序以实现最尖端的技术。 在应用程序上,KDE也拥有了可以与微软office媲美的办公应用套件KOffice,其分别由电子表格、幻灯片制作程序、组织者、新闻客户端等应用组成。还集成常见的Web浏览器、电子邮件客户端、办公套件、图形图像处理软件,以及桌面主题功能、配置功能、KDE帮助中心等各种管理工具。同时,还支持60余种语言的翻译。 其实,从系统的安装过程,你就能体验KDE给你带来的便捷,各种语言、时区、安装磁盘、用户设置以及网络设置等工作,都无需去考虑输入什么命令,直接用鼠标点选即可。 目前,KDE最新版本是4.5.0,进一步提高了稳定性和性能。可以体验到,KDE的操作习惯越来越与Win9x有很多相似之处,支持鼠标拖放、类似快捷方式,即使你是一个刚接触Linux的新手,也能很快上手。 GNOME GNOME计划发起于1997年8月,所以,你可以在GNOME的LOGO上见到1997的字样。发起人是Miguel de Icaza和Federico Mena,GNOME计划当初的目标就是完全基于自由软件,构造那种功能完善、操作简单以及界面友好的桌面环境,希望走国际化道路,尽可能多地为各种国家的人所使用。目前,GNOME已经基本上可以成为KDE的替代品。 GNOME不仅仅提供了一个吸引人的桌面环境,而且还提供一个开发平台,一个能使开发的应用程序与桌面其它部分集成的可扩展框架。 GNOME的结构包括:一个面板、桌面以及一系列标准的桌面工具和很多功能强大的应用软件。这些应用软件包括:文件管理器、电子表格处理软件、字理软件、电子表格软件、邮件阅读器、MP3播放器、简单的编辑器以及可以与PhotoShop媲美的图像处理软件等常用软件。 同时,GNOME还集成了软件更新和管理工具,基于Web的软件发布和自动升级工具,可平滑、安全地运行最新的开放资源和下载最新的补丁。 如果,你体验过GNOME就会知道,GNOME的这些应用软件是如何让Linux系统更具可操作性,鼠标拖拽以及左右键功能、编辑文档、绘制图片、收发邮件、音频和视频的播放、即时通讯工具聊天......这些使用体验与你在Windows下几乎没有差别。 虽然,GNOME最初是GNU/Linux的桌面,但是现在GNOME已经运行在大多数类Unix系统(如*BSD变体、AIX、IRIX、HP-UX)和几乎所有的Linux系统之上。目前,gnome.org上显示GNOME最新版本是2.3,而在2011年将发布的GNOME3的体验据介绍将可以匹敌Windows 7,我们将拭目以待。 XFCE Xfce(XForms Common Environment)创建于2007年7月,类似于商业图形环境CDE,是一个运行在各类Unix下的轻量级桌面环境。原作者Olivier Fourdan最先设计XFce是基于XForms三维图形库。Xfce设计目的是用来提高系统的效率,在节省系统资源的同时,能够快速加载和执行应用程序。 XFce最主要的特色是容易配置,整个过程都可以使用鼠标来完成,而不需要修改配置文件的代码。最新版本的XFce还支持鼠标拖放、系统任务管理、多字节在内的多国语言以及其它特征。 同时,XFce桌面环境的结构包括:一个叫XFwm的窗口管理器、主面板、文件管理器、背景管理器、声音管理器以及GNOME兼容模块等。另外,还有很多第三方的应用程序:文字编辑器、文件管理器、日历程序、CD 和 DVD 烧录程序、媒体播放器、浏览器等。 从体验过程来看,虽然,没有GNOME和KDE的应用程度那么高,但是Xfce简单高效的特点,仍然为其赢得了非常多的用户青睐。目前,Xfce最新版本是4.6.2。 LXDE LXDE(Lightweight X11 ...”
yum 和 apt-get 用法及区别
“一般来说著名的linux系统基本上分两大类: 1 RedHat系列:Redhat、Centos、Fedora等 2 Debian系列:Debian、Ubuntu等 RedHat 系列: 1 常见的安装包格式 rpm 包,安装rpm包的命令是 “rpm -参数” 2 包管理工具 yum 3 支持tar包 Debian系列: 1 常见的安装包格式 deb 包,安装deb包的命令是 ...”
Linux Mint 安装ibus输入法
“安装完Linux Mint竟然没有输入法,真是郁闷。 安装ibus: sudo add-apt-repository ppa:shawn-p-huang/ppa sudo apt-get update //这两部不是必须的,添加下载资源位置 sudo apt-get install ibus-pinyin 安装完成后,还需要做下设置。 1.点击Menu——setting——IBus Preferences,打开IBus Preferences对话框,切换到“Input Method”; 2.在“Select a input method”栏添加刚才安装的Chinese——pinyin输入法,最后单击Add按钮即可; 3.有时候可能需要重启或是注销一下,root用户好像不需要。 引用:http://hi.baidu.com/sf_chipan/item/1ced85ce42aa1b2c0bd93a68 其他输入法:http://my.oschina.net/wxwHome/blog/55228 另外,mint默认的软件更新源使用的是ubuntu的,如果觉得速度慢,可以更改为国内的源,这里以mint14为例,更改为/etc/apt/sources.list: deb ...”
09
生活的24条智慧
“1.再烦:也别忘记微笑 2.再急:也要注意语气 3.再苦:也别忘坚持 4.再累:也要爱自己 5.低调做人;你会一次比一次稳健 6.高调做事;你会一次比一次优秀 7.成功的时候不要忘记过去 8.失败的时候不要忘记还有未来 9.有望得到的要努力;无望得到的不介意 10.无论输赢都要高姿态 11.生活不是单行线,一条路走不通,你可以转弯 12.泪水和汗水的成分相似;但前者只能为你换来同情。后者却可以为你赢得成功 13.变老是人生的必修课 14.变成熟是选修课 15.以锻炼为本,学会健康 16.以适应为本,学会生存 17.学会放弃,耐得住寂寞,经得起诱惑 18.当所有人都低调的时候,你可以选择高调,但不能跑调 19.学会忘记是生活的技术 20.学会微笑是生活的艺术 21.懒惰像生锈一样比操劳更消耗身体 22.让梦想成真的最好方法就是醒来 23.哲人无忧、智者常乐。并不是因为所爱就要拥有,而是拥有的一切都爱 24.不能失去的东西:自制的力量、冷静的力量、希望和信心 ”
福尽而死是真理
“所谓「受苦是了苦,享福是消福。」我们修道人为什么要修苦行?一天只吃一餐,就为要了苦的缘故。苦了了,便是乐。福,有应享的福和不应享的福。应享的福,是自己工作所得来的代价,能够住好房子,穿好衣服,吃好东西,坐好汽车,可以享受一番。可是,要知道享完之后,就消福了,而在福报的银行就没有存款了。 不应享的福,就是在本分之外求享受,由侥幸得来的福。好像强盗,抢人家的钱,自己享受,这是不讲道理的享受,必定会受到法律的制裁。在福报银行的户头就透支了。应享的福,享完之后,就报销了福,何况不应享的福,硬要勉强享受?这不但消福,而且还要亏本。因为这种关系,福不可享尽,享尽就没有福了;苦可受尽,受尽则没有苦。我们做人,要明白这种道理。在困难的环境中,欢喜接受逆境,这样便无怨恨,也没有不满现实的心在作祟。 研究佛法的人,其思想和行为,与世俗人正好相反。世俗人是顺着生死去造业,修道人是逆着生死来消业。无论在什么境界上,处之泰然,心安理得,便不觉得苦。所谓「吃得苦中苦,方为人上人。」这是至理名言。 现在讲一个受苦的公案,作为参考。 明朝最后一位皇帝,名叫崇祯。他虽有皇帝的智慧,可是没有皇帝的福报。为什么?因为他的苦没有受尽。他前生是个沙弥,因为未到受具足戒的时候,就死了,所以还是个小沙弥而已。他做沙弥的时候,凡是搬柴运水的苦工,都由他来做,任劳任怨。天天做苦工,来护持道场。 有一天,他到房顶修理屋瓦,不慎失足,坠地而死。师兄弟就去报告方丈和尚。老和尚知道前因后果,想成就小沙弥,替他了苦。于是乎,对大家宣布:「这个小沙弥,做事不小心跌死,对道场有很大的损失。因为他犯了侵损常住的过错,要惩罚他。你们用马来把他的尸体拖散为止,免得买棺材埋葬。」 大家一听方丈的话,不以为然。师兄弟们发恻隐之心,而不听方丈的命令,因为不忍心这样去做。于是共议:「我们是师兄弟,同修一场,应该把他安葬,不可用马拖尸。」乃出钱买棺材安葬于荒山中。 这个小沙弥,因为替庙做苦工,积有功德,来生为人,做了皇帝,身为崇祯。可是只做了十六年的穷皇帝。他在位的时候,天下大乱,内有李自成造反,外有清兵侵境,没有过一天好日子,都是在忧患煎迫中度日。这事是被好心的师兄弟害了他,使他的苦未能了尽。如果他们当时听方丈的话,用马拖尸,苦便了了,不会害得崇祯在煤山自缢,而为国殉难。 福尽而死是真理,故当惜福少享福。 有人说:我自己赚的钱我自己花,不把钱花光享受,不是白赚钱了吗? 我们可以通过比喻来思考,比如一个农民对着粮仓想:这是我自己种的粮食,当然应享受,不把它吃完不是白辛苦一年吗?这显然是愚人自绝后路的做法,不为明年留下种子,最后只会饿死而已。可见,不顾及后果的过分享受,将会耗尽福报,给自己的未来和后世带来无量的痛苦。 我们再来看这样一则公案:明朝正德三年出现了大旱灾,楝塘地方因为有水库而得以避免。第二年又出现大水灾,也以堤坝高而没有遭灾。邻近的几个乡连续好几年没有收成,唯独楝塘地方接连丰收,而且他们乘形势得到了官府的两次免粮。于是这些村里人廉价买进了各乡的产业,生活变得非常富有。从此之后,该地朴素的风气荡然无存,奢糜成风。 当时,乡民陈良谟对他的叔兄说:“我们村子会有奇祸发生!”叔兄问他是什么原因,他答:无福消受罢了。不久果然全村发生了大瘟疫,存活下来的寥寥无几。 先儒焦澹园说:“人生衣食财禄,皆有定数,当留有余不尽之意。故节约不贪,则可延寿;奢侈过求,受尽则终;未见暴殄之人得皓首也。”人的福报有限,能节约不贪着,就可以延寿,如果过分奢侈,福报享尽了必定福尽而死。 有人想:现在时代不同了,物质条件日新月异,过时的东西都可以丢掉。半碗饭、一张纸不值几个钱,不要搞得太约束。 这也是以拨无因果的断见所滋生的邪见。从因果上思惟,就会知道其实浪费半碗饭、一张纸,也有很大的罪过。比如半碗饭来之不易,从播种、施肥、灌溉、收割、去壳、运输到最后煮成米饭,其间有多少劳动者的心血,要耗费多少自然资源,才能端到口边,供你享用。这半碗饭不是无因无缘产生的,随意浪费不会折福吗?实际上,因果丝毫不会空耗,浪费财富是损减自己的福报。因此,想起物品来之不易、业果不虚,我们不能不珍惜福报。古人说:“一茶一饭当思来处不易;一丝一缕,恒念物力维艰。”有一首唐诗说:“锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦。”我们能在这个世界上生存,需要劳累那么多的父母有情,想到这一点,为什么还不珍惜福报,反而以浪费为光荣吗? 弘一大师在他的一篇演讲中说:我五岁时,父亲就不在世了!七岁我练习写字,拿整张的纸瞎写,一点不知爱惜。我母亲看到,就严肃地说:孩子!你要知道呀!你父亲在世时,莫说这样大的整张的纸不肯糟蹋,就连寸把长的纸条,也不肯随便丢掉!母亲这话,也是惜福的意思! 我因为这样的家庭教育,深深地印在脑海里,后来年纪大了,也没有一时不爱惜衣食。就是出家以后,一直到现在,也还保守着这样的习惯。诸位请看我脚上穿的一双黄鞋子,还是一九二○年在杭州时,一位打念佛七的出家人送给我的。又诸位有空,可以到我房间里来看看,我的棉被面子,还是出家以前所用的;又有一把洋伞,也是一九一一年买的。这些东西,即使有破烂的地方,请人用针线缝缝,仍旧同新的一样了。简直可尽我形寿受用着!不过,我所穿的小衫裤和罗汉草鞋一类的东西,却须五六年一换,除此以外,一切衣物,大都是在家时或是初出家时制的。 在古德中这样的事例也随处可见。古时候,雪峰禅师和钦山禅师一起在溪水边洗脚,钦山见到水中漂有菜叶,很欢喜地说:“这山中一定有道人,我们可以沿着溪流去寻访。” 雪峰禅师回答他:“你眼光太差,以后如何辨别人?他如此不惜福,为什么要居山!” 入山后果然没有名僧。有人说:人生在世,应当好好享受,必须拥有豪宅名车、高档电器等,如果没有这些物质享受,人生还有什么意义呢? 首先应当辨别哪些是生活的所需,哪些与生活毫无关系。身为欲界人类,虽然不能缺少衣食、卧具,但是普通的饮食、衣服,就足以保证生存,身高不到二米,也用不了多大的空间。除此之外的物品,都只是虚假的摆设而已。动物也知道寻求饮食、洞穴和配偶,如果生命的意义只有这一点,那就和动物没有差别。如果把一切精力都用于追求生活享受,这样造作非福业,则连动物也不如。人生的意义在于能成办自利利他的大义,不能少欲知足,就无法集中精力投入于修行,这样就不能成办大义,只是浪费生命而已。 不但自己惜福,还要教育子女、学生惜福,为他们而惜福。 袁了凡居士的妻子是一位善女人。有一年冬天,她给儿子做棉衣,家里本来有丝棉,她把丝棉卖掉换成棉絮。了凡先生问她:“家里有丝棉,为什么要换成棉絮?”她说:“丝棉太贵,卖了可以把钱送给别人,反正用棉絮也一样可以保暖。”了凡先生听了很高兴,因为这样做就不愁孩子将来没有福! 再来看反面例子:古时候,有户富人在孩子满月时,请客大摆酒席,杀了许多生命。之前,有位算命先生给孩子算命,说他一生的命运如何如何好。可是孩子活到两岁半就死了,富人埋怨算命先生,本来以为他算命很准,为什么这次没有算对。后来遇到一位有道高僧,高僧说他“折福太深,福尽而死”。 再看现代的青少年从小就知道享乐,乱花父母的血汗钱,衣服、鞋子、用具都要用名牌,每个月几百几千块的零花钱象流水一样用。家长也认为:现在时代不同了,宁可自己苦一点,也不能让孩子没面子。他不知道孩子从小养成骄奢的习惯后,由骄奢必然多欲,多欲则无德。长大之后,不是成为贪官,就是成为匪类、花花公子、寄生虫,百无一用。从结果来看,这不是爱护子女,而是毁掉子女。因此,从小要教孩子惜福培福。 我们都是大乘修行者,应当念念关怀众生的苦难。想到自己享福的同时,世界上还有千千万万的人连饭都吃不上,为什么不能省下自己的福报施给诸母有情呢? 以下是惜福舍福的事例:宋朝的范仲淹读书时,心中念念想着救济他人。后来他作了宰相,把自己的俸禄全部拿出来购置义田,赡养一个家族几百户的贫寒之家。他的几个儿子请求他买一所园宅,他说:“京城里的大官园林很多,主人也不能经常去游园,谁会不准我去游他们的园林?何必要自己有花园才能享乐呢?” 范仲淹晚年把自己的住宅改为天平寺,用来兴崇三宝。他的几位公子共用一件好的衣服,外出时轮流穿着。范仲淹出将入相数十年,所得俸禄全部用来布施周济别人,所以死的时候连丧葬费都不够,而他的四个儿子都做到公卿的官位,个个能继承父志,舍财救济他人,因此范家的曾孙辈也极为发达。 某年旧历十一月,天气正冷的时候,苏州城有位大绅士带着工匠到印光大师的关房装置洋火炉,印光大师坚决不肯接受,大师说:“人生不可享受过分,要是自己没有德,空去享用,那就是折福。”这位大绅士非常诚恳,再三请求,必须供养,弟子也从旁边劝请,印光大师说“安在外间的客厅里吧!那里时常来人,让大家一齐暖和,外间的空气暖了,这间的空气也会变暖。” 我们应当随学过去的祖师大德,不仅惜福,而且把自己的福报舍给众生。自己的生活可以过得清苦一点,省下来的钱让别人享用,有这样的善心将来才能利益无量众生。心中应常常记挂天下苦难的众生,常以福报回向。“为利有情故,不吝尽施舍,身及诸受用,三世一切善。”又说:“如空及四大,愿我恒成为,无量众有情,资生大根本。”愿我们如地水火风空五大种一样,恒时成为维持无量有情生存的大根本。 “人生衣食财禄,皆有定数,当留有余不尽之意。故节约不贪,则可延寿;奢侈过求,受尽则终;未见暴殄之人得皓首也。”人的福报有限,能节约不贪着,就可以延寿,如果过分奢侈,福报享尽了必定福尽而死。 ”
被人认做迷信的佛教
“国际间最具权威的百科全书——《大不列颠百科全书》也指出:佛法的可信,是因为从佛陀时代直至如今,一直有佛弟子以亲身的修行体验,证明着佛经的正确。 舍利子原指佛教祖师释迦牟尼佛,圆寂火化后留下的遗骨和珠状宝石样生成物。据有关佛教文献记载。佛祖释迦牟尼涅盘火化后,弟子们在他的骨灰中发现了许许多多晶亮透明、五光十色、坚硬如钢的圆形硬物,这就是舍利,俗称舍利子,历来被视为佛门珍宝。 各种神奇现象都表明舍利子不是结石,学医的应该明白结石的外观以及物理性能。结石主要成分是钙质或金属盐沉积,形态和水垢相似,也易碎(所以可以用超声破碎石),这些东西在高温下都会变成粉末状的氧化物。 事实上只在佛教高僧大德火化后见到舍利子,而从未在什么胆结石病人身上见到过。现在也有很多素食主义者,也没有发现过一粒舍利子。 1981年在陕西省法门寺地宫发掘出的佛指舍利四枚,三枚影骨、一枚灵骨。宝相寺塔俗称黄金塔,位于山东省汶上县城西北隅原宝相寺前 。1995年3月,维修时发现塔内长方形地宫,地官内出土佛牙一具,舍利子数百粒、金棺、银椁、水晶、玛瑙、银佛、铜盒等141件宋代佛教文物。中国已知的佛祖舍利塔:陕西省法门寺合十舍利塔,孝泉舍利塔,景县舍利塔,营山舍利塔,沈阳舍利塔,隋舍利塔,武安舍利塔,开元舍利塔,古佛舍利塔,浛洸舍利塔,金刚舍利塔,延庆寺舍利塔,方山舍利塔,临清-舍利塔。 近代的比丘尼--隆莲法师(1909~2006), 圆照法师(1993年6月l2日火化),宽能法师(1895-1989),能宽长老尼(1912—2006年)。 高僧或男性居士:印光大师(1861~1940),,虚云老和尚(1840-1959),宣化上人(1918~1995),清净老和尚(1919-2007),续修法师(1921-2002)等很多高僧大德火化后都见舍利子。 很多念佛者,往生前能预知自己辞世的准确时间,且死后十几小时身体柔软(常人死后30分钟尸体开始变得僵硬,6小时达高峰,关节处是不能弯曲的,只有3-4天后才能变软)。当代《往生见闻纪实》记载的往生实例173则,成书于古代的《净土圣贤录》也有很多记载。大量实例,事实如此。 佛经汉译三藏有1,692部,共6,241卷,逻辑严密、哲理精深,是集历代高僧之心血,历尽艰辛翻译出的,佛法在我国传承一千九百多年,是经过时间考验历史见证的,是经历岁月沧桑,各流派思想冲刷,依然生机勃勃的真理。请不要对各年代那么多杰出的人的信仰草率地说不。 唐代玄奘(公元602~664),经十七年,步行五万里,至天竺学习佛法,唯有有学识,有胆色,追求真理者才会成就此惊天壮举。共译出佛经47部,凡一千三百三十五卷。唐太宗亲自撰写了一篇长七百八十一字的《大唐三藏圣教序》,文中称赞玄奘“松风水月,未足比其清华;仙露明珠,讵能方其朗润”。公元664年4月14日玄奘下葬时,史料记载长安附近500里内送葬者100多万人。玄奘坚韧不拔,家喻户晓,誉满天下。玄奘与鸠摩罗什、真谛并称为中国佛教三大翻译家。公元413年,感知大限即近的鸠摩罗什,对众人起誓:“假如我所传的经典没有错误,在我焚身之后,就让这个舌头不要烧坏,不要烂掉!”不久,鸠摩罗什圆寂,在逍遥宫依佛制焚身,火灭身碎后,惟有舌头完好无损。鸠摩罗什大师的舌舍利,在甘肃祁连山脚下的武威,市中心有鸠摩罗什寺,还有他的舌舍利塔。 梁代僧佑所编之《高僧传》十四卷,又称《梁高僧传》; 唐代道宣所编之《高僧传》三十卷,又称《唐高僧传》;宋代赞宁所编之《高僧传》三十卷,又称《宋高僧传》; 明代如惺所编之《高僧传》八卷,又称《明高僧传》。 各代《高僧传》记载了从三国时代到明神宗万历年间数百位高僧的言行,事迹,有很多神异之事,言简意明,不同于一般文学创作。那么多的人出家学道,不是脑袋被门挤了。释迦牟尼佛,以太子身份出家,等于弃国捐王,荣华富贵与道无法相比,无可比性。 历代的很多著作中,记述了为数不少的因果轮回之事。纪昀(1724—1805),字晓岚,直隶献县(今河北省)人氏。乾隆时进士,后官至礼部尚书。纪昀作《阅微草堂笔记》时,《聊斋志异》已广播海内。但纪昀认为聊斋一书“燕昵之词,媟狎之态,细微曲折,摹绘如生,使出自言,似无此理。使出作者代言,则何从而闻见之?”在他看来,《聊斋志异》兼志怪和传奇两体,既非作者自叙的文字,又过于隐微浪漫,不合情理。所以,纪昀不顾年迈70,撰《阅微草堂笔记》以继承魏晋志怪之遗风,即用简朴的叙述,写真的笔法,短小的形式,记事一千一百余则。书中大部分主人公,皆有年代,姓名及所在府县可考。事件多为第三人称转述,没有作者创作的迹象。其中部分文章记录了“先姚安公(纪晓岚父亲)”“先外祖张雪峰先生”“曾伯祖光吉公”等亲人耳闻目睹的亲身经历。或许其中有以讹传讹,但全部否定,未免太过武断。我国从战国时代到清代的志怪作品有几十部之多,如: 《萤窗异草》(浩歌子著,3编12卷),《夜雨秋灯录》(宣鼎著,16卷),《三异笔谈》(许元仲著,4卷)。每部作品都对应一段时期内为数不少的记录。《金刚经持验录》,《金刚经灵异录》,记载着历朝历代好多人持诵《金刚经》的感应。内经曰:智者查同,愚者查异。 三武一宗灭佛,重演雷同结局。第一位,北魏太武帝拓跋焘,446年,在重臣崔浩的进言下,发出了最严厉的灭佛诏,452年被宦官杀死,年仅44岁。他两个儿子(太子和恭宗)也相继死于宦官之手。第二位:北周武帝宇文邕,574年,宇文邕扬言不怕下地狱,佛、道齐灭,毁佛道经书、塑像,令和尚道士还俗,次年六月北伐突厥,大军齐至,武帝却暴病而亡,年仅35岁。第三位:唐高祖李渊,626年五月下诏书:“京城留寺三所观二所。其余天下诸州各留一所。”不过,六月份就发生了玄武门事变,李世民亲政,该诏书没能执行。第四位:唐武宗李炎,845年开始大毁佛寺,诏书明令拆除寺庙4,600余所,小寺院4万余所,佛经大量被焚,佛像烧熔铸钱,强令26万多僧尼还俗,846年武宗突然病死,年仅32岁。第五位:后周世宗,955年五月,下诏大毁佛寺,959年胸疮溃烂而死。时人传为毁佛砍像之报,终年三十九岁。类似事件,屡次发生,便不应视作偶然,便不是巧合。 蕅益大师,黄念祖,尤智表。三位都是曾嘲讽佛教迷信,之后皈依佛教的人,略说如下。 蕅益大师(公元1599~1655年),名智旭,号西有,别号八不道人。俗姓钟,江苏吴县人。父亲歧仲,十年持念大悲咒以祈子,母亲金氏梦观音菩萨抱儿授之而生大师。大师七岁即茹素,十二岁读儒书,以传千古圣学为己任,誓灭佛老二教,开荤酒,作《辟佛论》数十篇。十七岁时阅读莲池大师的《自知录序》与《竹窗随笔》,幡然认识到以前的错谬,将所著的《辟佛论》付之一炬。五十六岁时,大师示疾,遗命身体火化,屑骨和粉,分施水陆禽鱼,以结往生西方之缘。跏跌而坐,面西念佛,举手而逝。圆寂三年后,门人如法荼毗。启龛,见大师跌坐巍然,发长覆耳,面貌如生。火化后,牙齿俱不坏,与鸠摩罗什大师的舌相不坏,同一徽信。门徒们不忍遵从遗命,便奉灵骨,建塔于灵峰。 黄念祖,(1912一1992)祖籍湖北江陵,早岁专攻无线电信工程,大学毕业后任职于电台。解放后任北洋大学、天津大学、北京邮电学院教授。 少年学佛,潜心教典,曾随舅父梅光羲参学法要;归依虚云和尚学禅,又从诺那弟子王家齐及贡噶上师学藏传红、白教密法,师事夏莲居学掸净必要。 我(黄念祖)的家庭世代奉佛,我童年最喜绕佛,曾于北京广济寺释尊成道日,绕念圣号直达次日淩晨。但稍长到学校读书之后,接触到新思想,例如蔡元培《以美育代宗教》的文章,产生一些影响,但更主要的则是看到来来往往的佛教界知名人物,从他们的言行可以看出,世俗的缠绕毫不少于常人,甚至有过之而无不及。妒嫉障碍,勾心斗角,争名好利,排除异己,一样也不少。于是我十分怀疑,这些人久修多少年,为什么一点也不脱尘俗!于是产生一个错误的结论,认为佛法无益于人,直等到十九岁,大学三年级时,寒假考试结束,不想再看书,又无事可做,于是找到母亲的一部有注解的《金刚经》和一部《灵魂论》,每本厚约一寸,我一夜之间读完两书,在读经时,产生了空前的稀有情况:如闻惊雷,醒人长梦;如沐春风,身心调适;如饮甘露,遍体清凉;如闻妙乐,顿忘俗味。当时只感觉一阵阵清凉与光明,自头至足,遍灌全身,一夕之间二三十次,其殊胜安乐不是言语所能形容。这才恍然明白,不是佛法辜负人,而是人辜负佛法。 70多年前,尤智表曾嘲讽佛教是迷信。他身为佛教徒的叔叔说:“你们学科学的人说话应该有根据,你对佛教一窍不通,怎么可以随便下结论就说是迷信呢?”于是,尤智表开始研读佛经,将各大佛教经典通读了一遍,最后慨叹不已,得出一个结论:现有的科学成果都是对佛教世界观的一个注脚。尤智表接着写了一部在佛教界颇富声望的《佛教科学观》,他本人也皈依佛教,成了居士。 他在《佛教科学观》一文中是这样阐述的: 佛教——这古老的宗教,一向是被人认做迷信的。从它的外貌上看,确是带上浓厚的宗教色彩。人家看见了装金的佛像,听到了钟磬梵呗,就硬说是拜偶像;再看见了寺院里僧众的生活,就硬称他们是社会的寄生虫。那里知道佛教里一事一物,都有理论上的根据,只是这种理论太高深了,非但不是三言两语所能讲明白,而且要有相当学问基础的才能听得懂。说佛教是迷信的人,其实他自己倒是犯了迷信的病,因为他并不曾彻底的研究过佛理,有的甚至连佛教的普通常识也不知道,只是人云亦云,这才是真的迷信——迷信他人的胡言。 中国在佛教传入以前,就有善恶报应的思想。见于《尚书》,《周易》,《左传》等,好多的事件证明了善恶报应的存在,世人关于恶人无现报的疑问。是因不知“富贵皆由命。前世各修因。...欲知前世因,今生受者是,欲知后世果,今生作者是。”的经文。没有全面的认识。这段经文也解释了人的天性,命运的不同的原因。比孔子所说的“生死由命,富贵在天”,更为详尽。并无矛盾。 《坛经》摘录,“师曰。吾灭后五六年。当有一人来取吾首。听吾记曰:头上养亲,口里须餐,遇满之难,杨柳为官。...次年七月二十五日出龛,弟子才辩,以香泥上之。门人忆念取首之记,遂先以铁叶漆布,固护师颈入塔。忽于塔内,白光出现,直上冲天,三日始散。韶州奏闻,奉敕立碑,纪师道行。” 开元十年(公元722年),八月三日半夜,有人在供养真身的塔内欲盗大师头弄出声响,僧众被惊醒,只看见一个人从塔中慌忙逃跑,再检查惠能大师的真身,才发现脖颈上面有伤痕。第二天一早就向州县报了案。不久,在当地的石家村把偷盗之人抓住,并立刻送往韶州审讯。当时的县令杨侃刺史柳无忝审理此案,经过审讯,这个盗贼叫张净满, 是汝州梁县人,是个孝子,为了赡养家中年迈的老母亲,收了洪州开元寺一个新罗僧人给的二十千钱,帮该僧人盗取惠能大师的头颅到海东进行供养。这就是惠能大师预言中说的“头上养亲,口里须餐”。这两句话的意思就是偷盗头颅是为了奉养自己年迈的母亲,这个事实是相符合的。负责审理此案的县令杨侃和刺史柳无忝,也正应了预言中的“遇满之难,杨柳为官”。佛经中预言非仅此一处。 有很多名人和智者信佛:李白、苏东坡、白居易、欧阳修、李清照、曾国藩、林则徐、康有为、章太炎、梁启超、瞿秋白等等都是。现代的,林青霞:2000年10月,林青霞皈依于圣严法师,法号“常恒”。 刘德华:早前刘德华在《志云饭局》中自曝已皈依十年,是台湾灵岩山寺妙莲老和尚之皈依弟子,法号叫“慧果”。张国立:张国立拜在台北法鼓山安和分院的圣严法师门下,取法名“常升”,正式成为了一名俗家弟子。还有郭富城、张学友、孟庭苇、杨紫琼、成龙、李连杰、曾志伟、黄安、何家劲、吴孟达、谭咏麟、王菲等很多 。 巴帕特(印度学者,《2500年佛教》作者): 佛教的历史上没有一页是被询问者的火焰燃烧过,或被异教徒屠城的浓烟熏黑过,或被充满宗教仇恨的无辜受害者的鲜血染红过。佛教挥举的只有一支剑——智慧之剑;佛教承认只有一个敌人,乃是无知。这是历史的见证,无可厚非。 泰戈尔(亚洲第一位获得诺贝尔文学奖的印度大文豪、大诗人): 我认为释迦牟尼佛乃世上最伟大的圣哲!(见泰戈尔《论佛祖及佛教思想》) 麦克斯·穆勒(Max Muller,1823——1900),德国语言学家,比较宗教学家。 佛陀是他所倡导的一切美德的化身。在他那成就非凡、经历丰富的四十五年的布道生涯里,他以行动诠释了自己的言教。在他身上找不到一点人性的弱点和低劣的东西。佛的道德准则是世界上迄今所知最完美无上的。 罗克希米·那兰苏教授(Lakhsmi Narasu),《佛法精要》作者: 佛是一位看见孩子们在世俗烈火中玩耍,权巧方便,施以各种适度的手法把他们从烈火燃烧的房子里救渡出来,并把他们引向安全的涅盘境地的人。 我们可心断言,佛教是唯一不带任何狂热色彩的宗教。它的目的是通过征服自我使每一个人产生一种彻底的内心改造,而不是叫人以权力、金钱来诱使他人归信自己的宗教。佛陀仅向人们展示了一条完全取决于每一个人自己是否实践的解脱之道。将心智的开发和证悟作为解脱的必要条件是佛教的伟大所在。佛教主张道德与证悟互为依存,不可分离,道德构筑了人生最高境界的基础,而知识与智慧则完善了这一人生最高境界的构筑。一个人如果不具备必要的洞察力和知识,不真正明了缘起性空的基本道理,他就不可能被认为是一个具有真正德行的人,在这一点上,佛教有别于所有其他宗教。所有一神教均基于某种假设概念之上,当这些假设被日益发展的知识而驳斥时,则越来越沮丧。然而,佛教与假设无缘。它是建立在坚实稳固的现实基石之上的,因此,佛教从来就不曾逃避知识的公平无私。 中国近代史上的著名人物章太炎先生说:“佛教的理论,使上智人不能不信。”张东荪先生说:“我对于佛家,却相当的敬重,以为他所提出的问题是对的,他的动机是大勇大智大仁。”杨振宁,1944年获硕士学位,1948年获物理学博士学位,1957年获诺贝尔物理学奖,他说:“佛教是世界上伟大的宗教之一,两千多年前传入中国之后,对中国文化产生了深远的影响。”1985年9月12日,在美国纽约的大乘寺玉佛塔落成典礼上,杨振宁说:“我是一个信奉佛教的科学家。” 所以,他们有智慧的人,虽然不一定对所有的事物都能精通,但却对佛教文化都抱着尊重的态度。然而恰恰是那些没有智慧的人,尤其是对世间及出世间法都不懂的人,反倒会说佛教是很迷信的,这种说法在六、七十年代相当流行。那时候的人们普遍陷入于一种愚昧而又疯狂的状态,不管是对西方的现代文明还是对东方的传统文化都是践踏得一塌糊涂 。 中国著名的思想家、革命家、文学家鲁迅先生在阅读了《贤愚经》、《瑜伽师地论》等佛经论典后,对佛的智慧感叹不已,对他的朋友许寿棠说:“释迦牟尼真是伟大的圣哲,我平常对人生有许多难于解决的问题,而他居然大部分早已明白启示了,真是伟大的圣哲。” 佛陀为了祛疑解惑,素极热切。就在他圆寂前几分钟,他还数度要求他的弟子们,如果他们对他的教诫仍有所疑的话,应向他提出问题,而不要到后来再后悔没有把这些疑问搞清楚。可是他的弟子们都没有出声。那时他所说的话极为感人。他说:假使你们因为尊敬你们的师尊而不肯提出问题的话,甚至有一个人肯告诉他的朋友也好。(这意思就是说:他可以将所疑的告诉他的朋友,而由后者代替他向佛陀发问。) 佛曾对弟子们说:“众比丘,善知识,你们要像煆、切、磨、试黄金以鉴别其真假那样,对我的言教进行鉴别,不能因尊重我而盲目信从。” 爱恨无常,爱恨的转变,只在转念之间,不是我们所能把握,身体亦不会坚守候青春。情爱是一种错觉,所有的心动都会变成左手摸右手,爱情之所以产生是因为每个人都不完美,对虚幻的美生起贪念,爱欲荣华一场空。快乐总会变成不快乐,以无常为乐,乐终是苦。诸苦所因,贪欲为本。 五蕴,即色受想行识。眼所见者为色,如人、我、世间万物、山川、草木、河流等。五蕴皆空,先说色空,万物的生灭成坏,土木铁石无常住之物,人的新陈代谢,生老病死,无不死之人,科学这样讲,哲学这样讲,佛法这样讲。 人的思想,前后相继,连续不断的变化,随着社会环境(贫富仇怨,利益冲突),自然环境(寒暑风雨,沧海桑田),及身体状况,每年有不同的欲望,数不尽的欲望,不是所有的愿望都能实现,接下来思虑忧愁,心识没有一定,不知不觉人已老,被忽略,苦痛来不及倾诉就已遗憾地死去。相信很多人是这样的。百年之后,不会有几个人想起我们的名字,儿孙们也在他们的烦恼中忧愁,随我们而来。所以说受想行识不异于空。 命运就是阴差阳错,人算不如天算,好多人,见识过命运被人准确说出的事,但只会说命该如此,没想过为什麽。复杂的万物不是彼此孤立、不相干的,如同做豆腐,将配料用量稍稍改动,豆腐的口感及凝固强度就会不一样,只有若干次的细心实验,才会认识到配料之间的联系是如此微细又必然。你亲身经历的事,讲给人听时,不见得有人相信,很多人亲身经历的事讲给你听时,请认真想一想,若简单对人说不,是很草率的。富贵皆由命。前世各修因。很多人都说鹤顶红有毒,你若不信说我没尝过,若吃到肚里再相信时就太晚了。请不要草率地说无因果。 减少对五欲(财色名食睡)的贪恋,世间人我万物,生灭成坏究竟坚固,没有一分一秒地停留。一切如梦,如幻,如露,如电。社会的大群体,天天有人出生,有人老死。繁华的都市,人们都在后台倍感劳累,品味艰辛,在台上努力展现人生美丽瞬间。追求常乐我净的我们,只看到了衣着时尚的俊男美女,忽略了那许多黄牙残缺,满脸皱纹、老年斑的群体,他们皆是俊男美女所变的。所谓的俊男美女,也只是外表光鲜的一层薄薄的皮,一天不洗满是汗液、油脂,其皮袋之内是诸多不净之物,时刻变异,坏灭。那些引人遐想的香气,也只是香水的味道,与人无关,请不要迷恋他们。 五蕴皆空,乃《心经》所述,事实如此,佛教并非迷信。 诸佛智慧,甚深无量,微细难知,信为能入。愿对充满智慧的佛法多加读诵,思考。 学佛可以改命,转疾病为健康,学佛不一定必须吃素,但尽量不要杀生,学佛会让人更富于爱心,容易感动,浮躁的心变得平静,很少烦恼,平静且快乐。学佛的益处非你我所能尽知。 ”
什么叫阴德
“行善为人所知是阳善,为善不为人知就是阴德。阴德就是无所求的成就好事;阴德就是面对他人的冷漠、奚落、歧视,心不罣碍;阴德就如《赵氏孤儿》里舍身救赵武的公孙杵臼,以及牺牲亲生儿子的程婴,他们扶忠除奸不求回馈的阴德,令人称扬。 古人的「怜蛾不点灯,为鼠常留饭」是积阴德;分粥赈饥是积阴德;筑桥铺路、凿井引水、点灯施茶、捐棺义葬、急难救助是积阴德;功成不居、不称己善、不扬人过更是阴德;见人危急,勇于搭救;甚至随手捡起地上垃圾,使人不致滑倒,也是阴德;乃至于给人喜悦的面容,令郁闷者一笑解千愁;在自己的工作岗位上发心、用心,让领导者安心、同事们欢心,都是积阴德。 积阴德是「给人」,但不为人所知,是「为人」但不为人所明,也就是佛教所说的无相功德。如寺院里,以「无名氏」作功德者,他们都希望成为无相的阴德;佛在世时比丘的忍苦护鹅;隋朝智舜的割耳救雉;孙叔敖埋蛇去害;梁武帝颁令禁屠之诏;阿育王立碑明令保护动物;美国林肯总统解放黑奴;晋朝僧群的护鸭绝饮等,都是与乐拔苦的阴德。 北宋《司马温公家训》云:「积金以遗子孙,子孙未必守;积书以! 遗子孙,子孙未必读。不如积阴德于冥冥之间,为子孙长久之计。」阴德就如播种,只要播土下种,就不怕将来没有收成的机会。 《安士全书》记载:有一位年幼的沙弥,因救起将溺的蝼蚁,而获长寿的果报;《缁门崇行录》亦举出智凯法师不嫌污秽,毡被野犬,不但感动了畜类,也为时人所敬崇;其它又如唐朝悟达国师,曾耐心的守护身患恶病的西域僧人,因而召感救愈人面疮的果报;梁武帝因布施斗笠,而获得贵为帝王的好报。 「祸福无门,唯人自招」,一个人命运的好坏,与您平常自心的善恶与积德结缘有关。修善积德,就是为自己创造善因善缘、获福灭罪的机会;祸稔恶盈,就是为自己造作恶因恶缘、轮回受苦的因缘。 古训言:「立荣名不如种隐德。」创造好的荣誉、高的地位、不如培植阴德。如袁了凡的改变命运,不就是由积阴德而来的吗?所以要改变命运,就看你如何积阴德了。 标签:我的信仰”
05
国外父母如何处理孩子街头耍赖
“孩子在公共场所的礼貌教育问题让很多父母大伤脑筋,打不得、骂不得,怎么办?一起看看一位网友的经历。 超囧:孩子耍赖家长束手无策 网友Eileenwa初到法国,她分享了自己在法国街头教育孩子时的一次窘迫遭遇: 宝宝一岁半,越来越调皮,还爱说no。平时还好,一出去就爱到处乱跑,被我抓到后赖在地上不起来,那时候真是气得我想踹两脚!赖在地上多丢人啊!可是气归气,孩子毕竟不到两岁还小,不能真打。有一次在法国街上的小店,宝宝又耍赖皮,我一着急,揪住了宝宝衣服把他拽起来,可是拽起来他又躺下,怎么办呢?一个店员用异样的眼神看着我们反反复复,我真是觉得太丢人了。这种事如果发生在国内,至少不会有人投来异样眼光吧? 其实这位妈妈的遭遇,即使放在国内也会引人侧目的,毕竟孩子的大声哭闹不是小事。需要明确的是,孩子在公共场所“耍赖”无论发生在法国街头还是中国街头,家长都应该尽快采取措施控制住场面。这时候,选择什么方法十分重要。下面是一位美国父亲的真实示范,这种做法确实值得妈妈们学习。 老外家长示范:孩子大闹公共场所可以这样做 美国街头,一位父亲领着5岁的女儿,正沿着人行道走着。父亲和女儿还在聊着天,可就因为一句话不合,5岁的小女孩被惹怒了。瞬间,原本乖巧可爱的小女孩变得小脸气得发红,上气不接下气,又是跺脚又是摇头的,拽得紧紧的小拳头在空中愤怒地挥舞着。比这更严重的是那尖叫的哭声。 发生以上情况,国内的不少家长可能会像Eileewa一样,尽快地制止孩子,或是选择满足孩子的需求以安抚孩子孩子的情绪。那么这位美国父亲是怎么做的呢? 他从容地离开怒火中烧的女儿,与女儿保持一定距离并将背随意斜倚在一旁的墙面上,明显甚至夸张地摆出一副轻松、耐心、不带威胁成分的架势。接下来,父亲开始语气平和地与女儿谈话,在谈话中,他解释说,无论是什么事让女儿生气都是可以商量的。他的女儿由此而明白了父亲表达的东西并渐渐平静了下来。一场街头危机就此化解。 以平等的姿态跟孩子谈谈,比制止孩子或满足孩子更有效。一方面这能平静孩子的情绪,另一方面也会让孩子知道,这种吵闹是无法达到让家长顺从自己的目的的。各位爸爸妈妈若遭遇孩子大闹公共场所的情况时,可以尝试美国爸爸的做法。 除了法国街头教子的超囧经历,网友Eileenwa还分享了自己在法国的一次深刻感受,这次是关于法国孩子的礼貌修养的。 点赞:法国孩子在公共场所的良好修养 法国的公共场所,一直给人井然有序的感觉。就连小孩也很少不懂事地疯跑。当然,这与法国整体的社会风气不无关系,可小小的孩子能做到这样实属不易。 网友Eileenwa对此就有亲身体会:记得一次跟老公去哈尔滨看冬季冰雪节,有溜冰表演,但是几个中国孩子大的10来岁,小的4岁左右,在舞台下面跑来跑去。管理人员是一会一来制止,可是仍然是无济于事。另外一次,在法国看表演,前四排都是本土抱着孩子的家长,孩子也就2岁、3岁的样子。当时我心想:完了,这么多小孩估计又是嚷嚷闹闹没法看了。但是没想到,整场竟然没有感觉孩子们的存在,安静看完演出! Eileenwa表示,这两次经历让她印象深刻,她觉得法国的家长给孩子设定好一个标准,不是无底线地对孩子忍让。虽然国内很多父母也会注意制止孩子,可效果绝对没有法国那么好。 法国人在公共场所能表现出很好的修养,孩子之所以能够如此注意在公共场所的礼貌礼节,家长的表率作用不容忽视。那么国内家长对孩子的礼貌教育为何会出现收效甚微的情况呢? 网友:国内的礼貌教育缺乏对孩子的理解 如何培养孩子在公共场所的礼节礼貌,相信不少的育儿书籍、资料中都有分条缕析的介绍。可真到做起来,有些爸妈却觉得孩子完全不受控制。一位曾在海外幼儿园做过实习老师的网友表示,国内的礼貌教育太过教条,缺乏对孩子的理解认同是其中的原因之一,这位网友是这样说的: 小孩做错了,有些家长虽然会制止,但是会跟孩子说“哎呀妞妞怎么这样呀,下次可不许喔~”、“你再这么做我就揍你!”这是典型的熊孩子养成之路。为什么不许?家长有没有和孩子清讲道理呢?有没有告诉孩子这么做错在哪里、为什么公共场合喧哗是不合适的?好了,家长的道理没有讲,那就罢了,那在孩子下次犯错时拜托你遵守诺言严厉批评孩子。结果再次犯错后,家长还是说同样不疼不痒的话,家长觉得这样已经算教育了孩子,没啥问题,可小孩已经不把家长的话放在心上了。于是,接下来,孩子在公共场合吵闹了起来,如果家长喝斥他,他会吵闹得更凶。 细细想来,这样的分析不无道理。不仅仅是礼貌教育,对孩子教育的方方面面都应当让孩子明白令行禁止背后的原因,比如会影响别人、会跟自己造成人身危险等等,而不是单纯地喝止孩子。 ”
家长课堂:孩子耍赖该如何应对?
““我就要再玩一遍摇摇车嘛”、“不讲故事就不睡觉”、“再看一集动画片”……生活中,如果孩子耍起赖,类似这种“没完没了”的央求,常常让父母们面面相觑、不知道如何是好。 很多家长自以为能看清孩子的内心,可事实上孩子才是揣摩大人的高手。孩子往往能发现父母的立场并不坚定,撒点儿娇、软磨硬泡一下,爸爸妈妈就可能心软,遂了自己的心愿。 因此,面对赖皮的孩子,家长有必要找到应对方式,不妨试试以下三步。 第一,说明自己的底线。最好一开始就告诉孩子“可以吃两颗糖果”、“9点之前必须睡觉”。如果没有明确的规定,孩子很容易拿“我只多吃一颗”、“再看5分钟”的理由纠缠你。 第二,做好离开的准备。如果孩子试图“违规”,家长一定不要心软,立刻转身就走。这种突如其来的离开,会让孩子主动意识到问题的严重性。而如果家长一边说着“宝贝该睡觉了”,一边继续陪他玩玩具,孩子很容易把你的话当成耳旁风。 第三,情绪冷静、适当警告。为了达到自己的目的,孩子可能会耍五花八门的小把戏。此时,家长一方面要保持情绪上的平静,无论孩子怎么哭闹,家长最好把脸转向一边,不要冲动、更不能打骂。另一方面,家长千万不能妥协,必要时给予警告,取消他的某项“特权”,比如“明天不能看动画片”等。有了这种警告,下次孩子想提出“无理要求”时,一定会考虑后果。 ”
好好经营你的35—47岁
“1 、 学会放手 这个年龄已经不允许你不成熟,当你无力把握命运中的某种爱,某种缘,某种现实,学会放手。给自己身心一个全新的开始,只要信心在,勇气就在;努力在,成功就在。 2 、 储蓄友谊 真挚的友谊是人生最温暖的一件外套。它是靠你的人品和性情打造的,在这个年龄一定要好好地珍惜它,用心去储存。 3 、 播种善良 一定要极尽自己所能及之事,让那些比你苦、比你难的人感受到这世上的阳光和美丽。这样的善良常常是播种,不意间,就会开出最美丽的人性之花来。 4 、 懂得音乐 音乐可以陶冶情操,它会洗涤你的身心。会打开你的记忆和想象,全心地投入,更会给你带来意想不到的宁静。它是日子中的味精,点点滴滴中让我们的生活有了滋味。 5 、 避开两种苦 尘间有两苦,一是得不到之苦,二是钟情之苦。在你付诸努力的前提下,所有的、想得到的都当作一场赌。胜之坦然;败之淡然。好在这年龄还具有一定的资本,我们可以卷土重来。世间最苦是钟情,如果在这时候还有这样的情愫,一定要象打扫灰尘一样,把它从心屋里清出去。 6 、 学会承受 有些事情需要无声无息地忘记,经过一次,就长一次智慧;有些苦痛和烦恼需要默默地去承受;历炼一次;丰富一次。 7 、 保留感恩的心 感恩的心一定要时时保留,它不仅让你怜惜一沙一石、一草一枝,还会让你淡漠某种无形的压力,平抚你的欲望和争斗,更多的时候,有一些幸福的感觉也往往来自于此。 8 ...”
年终总结要这样写才出彩
“年终总结怎么写?相信这是每个职场人士都会遇到的问题,不管你是已经做完今年的年终总结,还是正准备要做,看看下面的文章相信你一定会有所收获。 内容千篇一律 "时光荏苒,转眼又到了一年的结尾,回首这一年,我的工作……"这样的开头你是不是觉得很眼熟?如何改变内容千篇一律的情况呢?富爸说,除在文字功力上加强以外,还可在电脑技术上多动动脑筋,可在年终总结中加些图片、图表,让死板的年终总结"动"起来。切忌流水账,注重结构化表达。 业绩不好年终总结怎么写 1.如果没有质量,那就先凑分量,让领导认为你没有功劳,还有苦劳。 2.多用正能量词汇,少用负面词汇。例如衰退变成负增长;巨大矛盾变成新的挑战;损失变成交学费。 3.列出未来详细的改进计划最为重要,最好占到总篇幅的40%,多总结失败的原因。 4.屡战屡败还是屡败屡战,这是态度问题。详细写出你为解决某件问题"呕心沥血"的过程会很给力。 领导眼中的好总结 1.精准 要把领导最关心的事情展现出来,抓住个人的工作重点,多分析工作中存在的问题。其次要写体会。 2.站在公司角度看问题 领导从年终总结里能够看到员工的业绩、书写能力、表达能力以及认真的态度。不要敷衍,对未来的工作要有很好的想法,杜绝假大空,并能站在公司角度思考问题。 3.提可实施性建议 客观表现绩效,用数据说话,让领导一目了然。对于企业发展和企业文化建设的合理化、可实施性建议也是领导重点关注的。 ”
03
“损毁一卡通”退卡为何这么难?
“在北京,新办一张一卡通,只需几分钟,所有地铁站均可办理。但退卡,全市只有60余个网点办理,其中,只有11个网点可以办理“坏卡”(出现损毁的一卡通)退卡业务。 昨日,记者走访发现,退卡窗口外市民排长队、坏卡退卡需7个工作日后再次返回网点退还余额、卡内余额超百元只能到西单一卡通公司客服中心退卡…… 对此,多名网友连呼“太折腾”。此前,一卡通公司曾称因“技术原因”,充值网点不具备开通退换卡业务的条件。昨日,专业人士分析认为,不排除存在发卡与退卡系统不一的问题,但“办卡点退卡”技术上实现几乎无难度。 部分一卡通退换卡办理网点 ●一卡通客服中心(西城区复兴门内大街45号,可退换