介绍
您的 Web 服务器认为,客户端(如您的浏览器或我们的 CheckUpDown 机器人)发送的 HTTP 数据流应包括一个 “ 内容长度 ” 规范。 这通常是只用于那些将数据放置在 Web 服务器上的 HTTP 方法,而不是数据检索方法。
HTTP 循环中的 411 错误
任何客户端 ( 例如您的浏览器或我们的 CheckUpDown 机器人 ) ,都需要通过以下循环:
- 从您站点的 IP 名称 ( 即您站点的网址-URL, 不带起始的 ‘http://') 获得一个 IP 地址。这个对应关系 ( 即由 IP 名称向 IP 地址转换的对应关系 ) 由域名服务器 (DNSs) 提供。
- 打开一个 IP 套接字 (socket) 连接到该 IP 地址。
- 通过该套接字写 HTTP 数据流。
- 从您的Web服务器接受响应的 HTTP 数据流。该数据流包括状态编码, 其值取决于 HTTP 协议 。 解析该数据流得到 状态编码和其他有用信息。
该错误在以上所述的最后一步生成,即当客户端收到 HTTP 状态编码 并识别其为 ‘411’ 。
------------------------------------
android在发送流的时候好象不发送Content-length的。所以有时候会返回411
肖佑阳最近还是很有意思的啦
1、妈妈问他吃什么,他说,你不会打电话问老师吧,不打我就瞎说说吧。然后就真的乱说一通
2、每天看超级变变变,居然知道每天晚上8点半的节目,改到了7点,还知道下午3点半会重播,于是中午睡觉就有了心事,2点半醒了就不会再睡了,看着钟直到3点半。今天睡过头了,丈母娘说一定是闹钟坏了,然后他说,不是坏了,是我睡过头了。然后就很委屈的想哭。
3、基于2的故事,现在知道时间了,知道当前是几点几分。时钟上只有3、6、9、12哦,也能知道当前到底是几点钟了
。。。。突然忘了很多,看来以后还是要及时记录,不然以后就不知道怎么和他说了
来自cnbeta,有点意思,想起了以前的一些小事情
原文来自:http://cnbeta.com/articles/151368.htm,作者梁斌,文末有链接
今天看到微博上@hellodba发的一个帖子:“内部晋升越来越困难,但是外部来的大P越来越多,所以很多人都选择跳槽”,之后我从三个方面简要的进行 了回答:“外面来的总是有包装的,内部的都是肉身PK,此一输;外面来的总是小股人马,内部的一批批的,升谁都伤感情,此二输;外面来的通常都是大佬推荐 的,没有特别重大机会,人不会来,内部的就不解释了,成果都被大佬吸收,难有机会,此三输”。之后讨论不断,我也余兴未了,继续写来。
这个世界上有一类人特别苦逼,苦逼到什么程度呢?他们省吃俭用攒钱买房,结果房价越来越贵;公司外部竞争激烈,他们工作异常繁忙,披星戴月,日复一日;技 术更新行业罕见,他们要随时调整心情,随时学习知识;他们长期和机器为伍,大多比较呆傻,比较单纯;还有很多不一一例举,这一类人就是程序员。
而就是这么一类程序员过着这么苦逼的生活,在公司内部却难以获得公平的晋升机会,外来的和尚总是在不断打破平衡,甚至是刚毕业的新和尚拿得都比老和尚多,这是全行业都罕见的奇观,IT人有幸经历了。
- 某创业公司,某个程序员要离职,老板甚至不问问他直接领导的意见,就同意了,没有挽留,之后大骂不忠诚,这个人拿3k,拿了2年,他走了以后,老板用5k雇了个新面孔,但就是不愿意给这个老人晋升,不愿意给加到哪怕是4k。
- 某上市公司,游戏部门突然从外部空降了一个领导,原因是原大佬被挖走以后,剩下的人升谁都有意见,难以服众,不从外部请人来镇不住局面,这个人一来,大家是团结了,团结起来和这个人斗,但最后还是和解了。
- 某国际大公司,某人伪造简历,包装的如花似玉,获得高职,工作主要有下属完成,他只需要汇众汇报即可,越混路越宽,直到某天事发,依然是高官。
- 某IT企业,某清华同学离职时语重心长的对我说,XX(可以理解为网游,搜索,电商任意一种)是00-02年毕业的这些人清华人的机会, 我们就是比某人强十倍也没有机会,也得从下面做起,搜索的天时不属于我,此人去了某金融分析软件公司,目前是高管,同期留在某IT企业的其他同学依然过着 苦逼的生活。
举了这么多例子,我想说得是为什么不给你晋升这个问题,或者晋升很难,为什么?
1)大佬的问题
你晋升困难,最大的主观原因在你自己,最大的客观原因在你的直接上司。付责任人的说,目前很多企业的领导是不合格的,他们大多80后,没有为他人着想的思 想基础,一味的考虑自己,不顾下属,曾经我对某人说,你说你是合格的领导,你说出你下属每个员工租房在哪里,每月多少房租,我就同意你是合格的领导,结果他羞愧不言。你晋升不了,很大程度上是你的领导没有帮你,连你每月房租多少都不知道,你指望他帮助你提高技术水平,帮助你晋升?
2)大佬的大佬的问题
你大佬的大佬,level很高,他需要引入新鲜血液,他知道这个队伍缺什么,这个是他思考的问题,他需要找牛的人来补这个缺口,于是一个光鲜照人的牛人进 来了(虽然两年后也会泯为众人)给队伍带来了新鲜的血液,但你的大佬升不上去,你大佬边上的位置被这个人占了,你的位置在哪?
3)公司的问题
各大企业给员工的再教育和培训都是不尽相同的,但大多口号是一致的,在工作中锻炼成长,这句话是最扯淡的,国外很多大公司是有很完善的培训和再教育计划 的,会给员工一个充电的机会,并且给其一个完善的培训后,以便于让他在新升职的岗位上能够很好的胜任。在国内大公司都在找牛人,就是不愿意自己培养,原因 是什么,不解释,你懂得。
4)你的兄弟
很多时候让你升不了职恰恰是因为和你一起战斗的兄弟,他们工作也很不错,你升职了,他们怎么办?这也是一个平衡的问题,你很努力,为什么你没有带动你的兄 弟一起努力,你上去了,需要你这帮兄弟的支持,他们会支持你吗?曾有一个说了一句话,我觉得很值得回味,“当大家都认为你该升职了,就是你升职的时候了”,细细品味,很有道理。
5)你自己的问题
最后你升不了职是你自己的问题,每天工作很忙,没时间充电,每天工作压力很大,来不及学习,每天这个那个,一年下来碌碌无为。你提高了自己的效率了嘛?你 周围有朋友再帮你吗?你知道你要学什么嘛?你知道什么样的工作才能超出领导的期望?,你超出领导期望后却没有升职和领导沟通过吗?我曾在某企业,我周围的 几乎所有人加薪升职都是和领导沟通后才获得的。指望主动给你加薪升职,不如指望自己的沟通。
6)还是你自己的问题
你选择的这个行业是不是对的,公司是不是对的,就好像我说的这个清华的同学这个例子。如果你能耐大可以选大公司,PK到一票牛人上去,如果你能耐不大,去成熟大公司,还心理期盼高薪升职就不现实了,不如去一个有前途的中小公司,开创自己的事业。
从企业角度出发,如何创建一个合理公平的晋升机制呢?
1)第一流大佬才会招第一流的人,第二流大佬只会招第三流的人,因此公司一把手必须是第一流的,价值观才能靠谱,制度才靠谱,没熟读历史,不理解中国文化的,建议不要做公司一把手。
2)晋升的制度必须公平,面向每一个人,每一个层次,这往往很难做到,做前端的和做后台的不好比,但做前端的可以和做前端的比。必须要有公开公平的比拼,已获得升职机会。例如某公司做一个高维矩阵分解的难题,大家机会均等,性能最快,效果最好,胜出者升职,带领团队。
3)鼓励公司职员交流,传播和帮助他人的文化,一个人如果乐于助人,帮助他人提高技术水平,这个人升职升上来,大家都会顶,反之,你保守,不帮助他人,水平再牛,升职上来也没人支持。
4)可以给职员一些挑战的机会,提供更多的资源,比如某公司的闪电计划,超越了谷歌搜索效果,就是一个很好的例子,要敢于给一些勇于挑战的职员更多的资源,在严酷的战斗中考验,并提供充分弹药。
5)给予内训机会,邀请业界牛人讲座,送职员去美帝考察开会乃至工作等等。培训机会是发达国家企业的一种非常好的激励措施,一个岗位5个人培训,最好的上岗,这是一个很公平的机会,培训机构足够独立。
方法有很多,只要这第一流的大佬,心中有着这帮打生打死的兄弟,办法总是有的,不要总是考虑自己的业绩,考虑自己的乌纱帽,做到这一点很难很难,但制度不是只有这位大佬可以制定,任何职员都应该积极投身到制度建立的过程中,要敢于提出自己的观点,毕竟公司是大家的公司。
我就写这么多,我是一个十年一线程序员的身份写这篇博客的,我努力做到客观,但我相信我更多代表的是劳方立场。
作者/梁斌
前两天看的文章里刚刚说ECMA 262中的一些String特性,又正好看到一篇博客介绍一些其他操作的实现,比如foreach,这个对于PHP用户来说就太常用了,而以前在javascript中只能用for(i in arr)来实现,虽然都没有问题,但毕竟看起来怪怪的。
上次的文章在这里:Javascript中各种trim的实现,这次的文章引用自Javascript1.6数组新特性和jquery的几个工具方法。
原文如下,其中会插入自己的内容,会特别标记
JavaScript 1.6 引入了几个新的Array 方法,具体的介绍见:New in JavaScript 1.6 。这些方法已经被写进了ECMA262 V5。现代浏览器(IE9/Firefox/Safari/Chrome/Opera)都已经支持,但IE6/7/8不支持。jquery的工具方法中提供了类似的功能。【膘叔:上次在讲trim的时候自己也测试过,确实IE8不支持,低于IE8的就更不用想了】
1、Array.forEach()和jquery的$().each()。在数组中的每个项上运行一个函数。类似java5 增强的for循环。
JavaScript代码
- var ary = [2,4,6,8];
-
-
- ary.forEach(function(i){alert(i);});
-
-
- $(ary).each(function(){alert(this);});
-
- $(ary).each(function(index,item){alert(item);});
- //膘叔:这个相当于PHP中如下代码。。
- while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
2、Array.filter()和jquery的$.grep()。在数组中的每个项上运行一个函数,并将函数返回真值的项作为数组返回。简单的说就是用一个条件过滤掉不符合的数组元素,剩下的符合条件的元素组合成新的数组返回。
JavaScript代码
- var ary = [2,4,6,8];
-
-
- var otherAry1 = ary.filter(function(item){return item>4;});
- alert(otherAry1);
-
-
-
-
- var otherAry2 = $.grep(ary,function(item,index){return item>4;});
- alert(otherAry2);
- //膘叔:PHP中有类似函数,比如array_filter,也是可以通过callback来处理
3、Array.map()和jquery的$.map()。在数组中的每个项上运行一个函数,并将全部结果作为数组返回。这个方法非常强大,尤其是作用于DOM数组时(在abcc项目上用过,对每个查询模块DOM生成查询字符串)。简单说就是把每个数组元素运算的结果作为新数组元素(还是很拗口)【膘叔:php中有array_map,array_walk等】
JavaScript代码
- var ary = [2,4,6,8];
-
-
- var newAry1 = ary.map(function(item){return item+1;});
- alert(newAry1);
-
-
- var newAry2 = $.map(ary,function(item,index){return item+1;});
- alert(newAry2);
4、Array.every()方法。检查数组元素是否都符合某个条件,只要有一个不符合返回false,否则返回true
JavaScript代码
- var ary = [2,4,6,8,10];
-
- alert(ary.every(function(item){return item>1}));
- alert(ary.every(function(item){return item>2}));
5、Array.some()方法。检查数组中元素是否符合某个条件,只要有一个符合返回true,否则返回false
JavaScript代码
- var ary = [2,4,,6,8,10];
-
- alert(ary.some(function(item){return item>9;}));
- alert(ary.some(function(item){return item>10;}));
最后给出 IE6/7/8的解决方案,让这些浏览器完美支持JS1.6的Array新方法。
JavaScript代码
- -function(){
-
- function applyIf(o, c) {
- if(o) {
- for(var p in c) {
- if(o[p]===undefined) {
- o[p] = c[p];
- }
- }
- }
- return o;
- }
- applyIf(Array.prototype, {
- indexOf : function(obj, idx) {
- var from = idx == null ? 0 : (idx < 0 ? Math.max(0, arr.length + idx) : idx);
- for(var i = from, l = this.length; i < l; i++) {
- if(i in this && this[i] === obj) {
- return i;
- }
- }
- return -1;
- },
- lastIndexOf : function(obj, idx) {
- var len = this.length, from = idx == null ? len - 1 : idx;
- if(from < 0) {
- from = Math.max(0, len + from);
- }
- for(var i = from; i >= 0; i--) {
- if (i in this && this[i] === obj) {
- return i;
- }
- }
- return -1;
- },
- every : function(fn, thisObj) {
- var l = this.length;
- for(var i = 0; i < l; i++) {
- if(i in this && !fn.call(thisObj, this[i], i, this)) {
- return false;
- }
- }
- return true;
- },
- some : function(fn, thisObj) {
- var l = this.length;
- for(var i = 0; i < l; i++) {
- if(i in this && fn.call(thisObj, this[i], i, this)) {
- return true;
- }
- }
- return false;
- },
- filter : function(fn, thisObj) {
- var l = this.length, res = [], resLength = 0;
- for(var i = 0; i < l; i++) {
- if(i in this) {
- var val = this[i];
- if(fn.call(thisObj, val, i, this)) {
- res[resLength++] = val;
- }
- }
- }
- return res;
- },
- map : function(fn, thisObj) {
- var l = this.length, res = [];
- for(var i = 0; i < l; i++) {
- if(i in this) {
- res[i] = fn.call(thisObj, this[i], i, this);
- }
- }
- return res;
- },
- forEach : function(fn, thisObj) {
- var l = this.length;
- for(var i = 0; i < l; i++) {
- if(i in this) {
- fn.call(thisObj, this[i], i, this);
- }
- }
- }
- });
- }();
------EOF----
最后这一段有事没事可以参考一下哦,毕竟这些都是可以拿来做参考的,比如象最后一个foreach,可以好好学学这些代码哦。
最后,var evens = [i for each (i in numbers) if (i % 2 == 0)];,看到这个,有没有感觉很象python的写法???这个是javascript 1.7中的写法了,看看这里的介绍:https://developer.mozilla.org/en/JavaScript/Guide/Predefined_Core_Objects#Working_with_Array-like_objects