天下3认证服务器正在维护维护什么意思

前几天,一位朋友突然问我道,为什么我的博客最近更新的都是有关读后感的,而少了以前那么多的技术干货。很欣慰,居然有朋友一直在看我的站点,虽然并没有看到它想看的,但是他所要的技术干货我现在其实也有,只是并没有放在主站,而是放在这个二级域名下。至于为什么,我想是因为厌倦了很多博客的内容样式,厌倦了很多教程的复制粘贴,才有了把它们一分为二的想法。
看了一下百度统计和谷歌Analytics,博客从13年至今,统计在内的PV总共有20000+,单日最高PV居然有1300+,但是平日里也就10左右。虽然我有用统计工具,但是几乎不会去关注这些统计结果,一直以来我写博客都是为了自己在写,即使是技术干货,也是为了方便自己以后查阅。但是最近又有了一些新的方法,我认为,我现在可以宣传自己了。以前的我很自卑,觉得自己写的东西,那肯定都是别人写过的,而且自己写的东西更是没有多少技术深度的东西,但是事实好像并不是这样。我最骄傲的地方就是与身边的不一样,我每天都在浏览着很多科技博客、技术新闻,以为自己一直是站在技术前沿的人,也意识到自己学的东西范围非常广,自己的深度也不够,眼前有很多路,却不知道该往哪里走。这就像一个瓶子,明明上面就是瓶颈了,但就是怎么做也钻不出去,甚至在往下掉。到新公司也快半年了,新同事们很好,也很牛逼,感觉大家简直就像游侠一样,不想去北上广争夺,只想待在重庆这个小江湖,说实话,他们的技能水平,在北上广绝对也能称得上高手。这半年里,因为有人在旁边指导,在代码质量方面成长得挺快,至少现在写代码的时候能明显感觉到自己以前写的代码是有多么的bad smell。在给别人开发的时候也感觉自己的代码量真的太少了。以前都是自己开发自己的东西,觉得有时候有点错误没什么,但是给别人开发的过程中,一点儿不满意人家就会指出来,而且让人伤心的是,这里面起码有百分之五十确实是自己代码质量的问题。路漫漫其修远兮,编程之路,我还有很长的路要走。
前几天翻了以前的博客,我去,居然没有今年的年初计划,不禁思考,我这半年是怎么浑浑噩噩过来的,接下来的半年又该怎样浑浑噩噩地过呢。浑浑噩噩这个词我不喜欢,你说我懒我会接受,我懒得开心,但是说我浑浑噩噩,说我不思进取,那肯定是不行的。在这里,补一下下半年的目标:
熟练日语五十音(说了很多次要学日语,结果到现在连五十音都还不认识,要想装逼,至少要会说吧)
结交三个以上IT界朋友(年龄相仿+忘年)
博客日访问量10+(我承认,现在的博客日访问量还有零的)
年底公司评级达到P4及以上(这就要求在公司好好工作啦)
给父母做全身检查(哪怕再缺钱也得做)
SegmentFault声望达到1000以上
我不知道有多少人因为池老师的一篇《先有Mac还是先有钱》而去买的苹果电脑,我现在也在用rmbp,但我可不是因为这个原因。从大一到大三,我那台宏碁的笔记本一直陪伴在我身边,经历了我各种摧残,更换了无数的操作系统(windows、linux系列的),曾经最长用了半年的deepin单系统。虽说我自认为我用电脑一定比其他人用得好,毕竟一台三千多的电脑能用出人家五六千电脑的流畅度,但是依然不尽如我意。折腾累了,最终在大三结束刚进入实习期的我就找父母拿钱买了一台15年乞丐版的rmbp。刚好快一年了,这一年,mac带给我最大的感受就是我几乎没有任何感受…我已经完全忘记了去折腾电脑了,重装系统、电脑卡顿、木马病毒,统统都没有,我甚至都忘记了他们的存在了。买windows是买电脑送系统,买mac则是买系统送电脑。mac带给我们更多的是一种享受,我愿意为这样的服务买单。
作为一本talk mac的书籍,当然不乏众多的mac使用技巧,osx的强大,远比我当前的使用方式更强大,还需要我去探索。当然,现在的我已经不再是工具控了,因为我已经找到了一套自己认为最适合自己的工具,不用再为新工具的出现而浪费时间了。除了一些使用技巧外,池健强老师还谈了一些对编程的看法。让我了解了一个人,王小波,对他几乎没有什么认识,我想,我也该去拜读一下他的书了。
关于盗版,我的博客很早就有一篇《学生应该尽量购买正版书籍》,上个月从学校回来,收拾了一箱子舍不得卖的书,几乎全是在当当或者亚马逊上买的,这,也算是我对这些作者表达的基本的尊重。同时,在使用了mac过后,我的电脑/手机都与盗版彻底绝缘了。从此可以问心无愧地进行开发,也希望自己开发的东西有一天能让大众享受,能让用户主动掏钱。以下是池老师关于盗版的言论:
11.盗版肯定是不对的,如果用了盗版软件,至少要有愧疚之心。如果你是个穷学生,学习软件开发用了盗版软件,谁忍心责备你呢?但大家千万不能无耻到开篇提到的那位父亲那样,不仅误己,而且误人。 2.程序员也是要吃饭的,你们每个人在自己的电脑上使用的每个软件都是程序员一行行的代码敲出来的。 3.在经济实力允许的基础上,尽可能用正版,尤其是程序员。程序员不支持程序员,还怎么指望别人呢?
池老师也算是很多新一代程序员的领路人,不知道他现在怎么样了,不过,我算是真正走上了这条路了,一切,才刚刚开始。
反观观国内,很多公司把企业文化作为一种“秀”或“工具”,这就比较扯淡了。我觉得搞好企业文化,就两点: 1.利益,把公司利益和员工联系在一起,好员工钱得给足。 2.人文,少搞或不搞办公室政治,让员工自由一点、开放一点、平等一点,你会获得回报。 对于员工本身来说,不管企业是什么文化,
是啊,人怎么会有那么多时间学习那么多东西呢?其实这个不可能的设定,是在保证你有足够时间看电视、看美剧、刷微博、上网闲逛的基础之上的。只要把上述这些事情消费的时间减少一半,拿来持续学习,你就会发现学习效果是惊人的。
有一些穿高跟鞋走不到的路,有一些喷着香水闻不到的空气,有一些在楼宇里永远遇不到的人。
很多时候我们初入江湖,不知深浅,不知道什么事能做,怎么做,为什么要这么做,即使怯生生问了,得到的答复往往是,That’s just the way it’s done(我们向来这么做),于是我们慢慢也变得成熟、圆滑和懒惰,不再去从深层次思考『为什么要这么做?』因为别人也这么做。慢慢的,这些东西就成为了folklore(陈规陋习)。 一个坏的习惯或传统,可能延续十年、百年、千年,直到那个打破陈规陋习的人出现! 提问、思考和努力工作,你就会抛弃这些陈规陋习,找到布满荆棘也满是鲜花的另一条鲜活的路。
经验告诉我,优秀的人才是那些一心想着产品的人,而不是关注管理和流程本身。
乔布斯认为,人活着是为了追求极致并分享美好的东西给人类,而不是做三流产品并赚钱。这样社会才能进步,让更多的人欣赏到更美好的东西。微软不过是另一个麦当劳,哈哈。
我以为我是个盖世程序猿,有一天我的程序会奔跑在千万台服务器上。我猜中了前头,可是我猜不着这结局……我们说,呸,你丫从头就错了!
有人问,你为什么要从事IT技术研发工作?如果是乔布斯,可能的答案是改变世界;如果是人生导师,可能的答案是跟随你心。如果是我回答呢,答案就是如果不从事这个行业的话呢,我还真不知道该如何养家糊口
目前网络上的数据传输普遍基于HTTP/HTTPS,然而,他们都是无状态的协议,也就是说你本次的请求与下一次的请求是毫无关系的,为了使得我们能够保存用户的状态,于是诞生了cookie,诞生了session,诞生了token,当然,这三者的概念其实都差不多,总体思想就是,在第一次请求过后,给用户生成唯一的一个标识,用户在下一次请求时,携带这个标识,这样服务端就能通过它来判断用户的状态以及合法性。
注意: OAuth确实增加了安全性,但是也增加了应用的复杂性,对于安全要求没那么高的应用,依然可以使用简单的加密算法进行双向加解密认证。
OAuthOAuth主要用于社会化登录,仅仅需要一个系统来存储用户的信息,其他的系统或者第三方系统均可以使用,其他系统不需要维护自己的用户系统,免去了用户注册账号的麻烦,并且用户的密码等重要信息都集中保存在信任方,提高了安全性。
根据阮一峰的博客,客户端获取授权有以下几种认证方式:
授权码模式(authorization code): 是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与”服务提供商”的认证服务器进行互动。
简化模式(implicit): 不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了”授权码”这个步骤,因此得名。所有步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。
密码模式(resource owner password credentials):用户向客户端提供自己的用户名和密码。客户端使用这些信息,向”服务商提供商”索要授权。
客户端模式(client credentials):指客户端以自己的名义,而不是以用户的名义,向”服务提供商”进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求”服务提供商”提供服务,其实不存在授权问题。
具体流程(感觉不用图也能说清楚呀):
第三方站点获取未授权的Request Token
获取用户授权的Request Token
用授权的Request Token换取Access Token
通过Access Token访问该用户的资源
另外,对于客户端的每一次获取token的请求,都对应着一定的权限,比如微博的第三方认证,通常仅有获取用户基本信息的权限,或者如github的权限就更加详细一点,包括获取基本信息,公开库的访问权限和私有库的访问权限(github的认证请求权限使用的是X-OAuth-Scopes作为参数放在请求头部,例如user,表示能获取用户的所有信息,而user.email则表示只能获取用户的邮箱)。
对于第三方应用,仅需要维护token的值,一般来说,有一种用户基本信息表,多张token存储表对应着多个公开应用。例如接入了微博的第三方可以有这么一张表: (id, user_id, weibo_id, weibo_access_token, weibo_expires)
注: 社会化登录的回调地址(callback_url)与返回地址(next)的区别,回调地址指用户点击第三方登录过后,由资源服务器回调到的地址,而返回地址则是用户欲访问的地址,一般为应用自己的首页,但也有可能是用户直接知道url后想去的地址,这时候可以在请求的时候带上next参数,然后由资源服务器原样返回过去。
最后,几乎所有关于OAuth的文章都会遗漏的一点,那就是资源服务器和认证服务器之间的认证。当访问者获取了token过后,向资源服务器发送请求时,资源服务器肯定会向认证服务器验证这个token的合法性,这也是一个很危险的步骤,在实际项目中,我将token与访问者的appkey一起进行认证,并且作为认证服务器同样要对资源服务器的认证请求一起认证。具体可参考
SSO(单点登录)解决的是跨域的用户校验问题,常用于一个公司内部有多个子网站,然后提供统一的登录,一个站点登录过后其他站点不用重复登录。多用于存在多个子系统的公司。具体流程:
用户请求任意一个子站的login页面
用户输入用户名密码,子站将它传递给认证中心SSO Server
SSO Server验证成功后
虽然SSO和OAuth是不一样的东西,但是我认为SSO只是OAuth的一种简化模式,可以归为OAuth的一类。通常由于子系统的域名不一样,不方便设置各自的cookie,于是这里又有两种解决方案:
使用公共加解密函数进行双向加解密(加密字符串直接放在GET请求中)
同样使用公共的加解密函数,但是是使用JSOPN解决跨域问题(用户登录子应用时,会带上父应用域名下的cookie访问父应用提供的JSONP接口,父应用验证登录状态,最后返回加密后的用户信息)
例如,本人在一个项目中所使用的认证流程:
签名算法的设计无论是OAuth或是SSO都涉及到认证的过程,一般都不推荐使用可逆的加密算法,而使用单向的加密算法,只要双方对数据进行加密后的结果一致就表示该请求是合法的。参考网上很多的签名算法,最后总结了一下使用最广也是最安全的一种签名算法步骤:
将请求的参数转换为’key=value’形式的字符串,如: “k1=v1”, “k2=v2”
将格式化后的字符串以字典升序进行排序,然后拼接在一起,如: “k1=v1k2=v2”
在拼接后的字符串的前后加上Secret Key,如:”keyk1=v1k2=v2key”
对拼接后的字符串进行MD5加密得到最终的结果
Python实现12345678910import hashlibdef apiSign(parameters, secret): keys = list(parameters.keys()) keys.sort() parameters_str = "%s%s%s" % (
str().join('%s%s' % (key, parameters[key]) for key in keys),
secret) return hashlib.md5(parameters_str.encode('utf8')).hexdigest()j
PHP实现123456789101112131415161718function apiSign($parameters, $secret){ $str = ''; if (gettype($parameters) === 'array') {
ksort($parameters);
foreach ($parameters as $k =& $v) {
$str .= $k.$v;
} } elseif (gettype($parameters) === 'string') {
$str = $ } else {
return false; } $str = $secret.$str.$
return md5($str);}
Java实现1234567891011121314private static String apiSign(List&NameValuePair& nvps) throws NoSuchAlgorithmException, IOException {
List&String& nvs = Lists.newArrayList();
for (NameValuePair nvp: nvps) {
boolean noSignValue = nvp == null || nvp.getValue() == null ||
SIGN_EXCEPTIONS.contains(nvp.getName());
if (noSignValue) continue;
nvs.add(String.format("%s=%s", nvp.getName(), nvp.getValue()));
Collections.sort(nvs);
StringBuilder sb = new StringBuilder();
for (String nv: nvs) sb.append(String.format("%s", nv));
String encodeSource = String.format("%s%s", sb.toString(), APP_SECRET);
return MD5Util.MD5Encode(encodeSource, ENCRYPT_CHARSET).toLowerCase();}
说实话,李笑来的这本《把时间当作朋友》确实绕过去绕过来,把我饶得有点晕了,但是书中的主要观点我还是非常认同的。把时间当作朋友。从来都只听过如何去管理时间,却从来没听说过要去和时间做朋友。上帝给每个人的时间都是一样的,不是说你想怎么管理就怎么管理,从小学到大学到工作,每次考试前你不都有很多的复习计划,每次假期前不都有很多的出游计划吗,但是,有多少我们真正实现过呢。很多时候计划越详细,我们反而越不会执行。为什么?因为我们不了解时间,也不了解自己。就像你想和一个人做朋友一样,你们都不互相了解,非要在一起,那也是互相折磨而已。所以,要想与时间和睦相处,首先是要了解自己,自己是一个怎么样的人,自己喜欢做什么样的事情,什么样的事情会让自己有动力去做,到底为什么而活?
没有人不懒惰,没有人不爱做计划,只是那些成功的人普遍都是做了计划就立马行动的,这真的真的是我目前为止发现的最大的缺点。想太多,做得少。基本上从高中就开始意识到这个缺点了,也一直在改,在改的过程中又发现了另一个缺点,那就是只要我心里有一块石头,就不能放下它去做其他的事情了。我在外面实习都快一年了,这一年里感觉还没我大一一个暑假成长得快,我知道自己遇到了一个瓶颈,也做了很多的计划去冲破它,但就是碍于学校里数不清的杂事,一直没放心大胆地去做。最后导致两边都互相拖着,然后两边都没做好。其实专注于一件事没有什么不好,但是心中担心一件事情,就直接把那件事情做了就好呀,这有什么好犹豫的呢,有什么好纠结的呢。那件事情制约着我,我干嘛就不把他做了呢,一定要拖到最后。不过还好,毕业答辩做了充足的准备,还是顺利通过了。在昨天那个不存在的日子里进行的答辩,而且在答辩前几天我就已经开始我的全栈实践之路了。马上进入社会,希望能真的和时间做好朋友,然后和它并肩作战。
语录当你把时间花在一个人身上的时候,相当于在他的身上倾注了你生命的一段,不管最终结果如何,反正,那个人、那件事都成了你生命的一部分——不管最后你是喜欢还是不喜欢。
一个人遗忘痛苦的能力特别强的一个具体表现就是,这个人会很轻易地原谅自己。
往往并不是有兴趣才能做好,而是做好了才有兴趣。
浪费生命、虚度年华的人,有个共同的特征——他们拼命想控制自己完全不能控制的,却在自己真正能掌控的地方彻底失控。
当我们不停地鼓励所有人的时候,最大的受益者其实是我们自己,因为最终我们会发现,自己开始进入一种他人无法想象的状态,成为一个不需要他人鼓励的人。
心智真正成熟的人在一些情况下能够做到无须亲自经历,仅凭思考就得到深刻的体会。
所谓的幸运,就是当你准备好了的时候,机会来了。
你比别人强一点根本没用,真正有用的是你比别人强很多很多。
学东西前不用定义一定要有用——别觉得知识现在没用就拒绝去学它。
人是没办法管理时间的,时间也不听从任何人的管理,它只会自顾自一如既往地流逝。”管理时间”只不过是人们的一厢情愿而已。
这些人其实并不是对自己正在做的事情没有兴趣,而是没有能力把目前正在做的事情做好。
本科教育之”本”在于培养学生的自学能力。从理论上讲,一个人本科毕业之后,应该有能力自学他所需要的任何知识。
今天,我顺利地完成了人生第一次的迷你马拉松。
其实在去年,我就最高跑过七公里,当时因为心情失落,所以闷着头跑,一直跑到手脚发麻才停下来。开始实习过后,我就几乎没有跑过步了。在上个公司是下班过后尽量提前几个站下车,然后走着回家。来了现在公司过后好一点,每天能够骑自行车上下班了。所以从体力上我还是觉得自己可以的。不过为了保险起见,在前天我去了石子山体育公园试跑了一下,感觉还不错,只不过跑完了过后腰酸背疼的。直到几天都还在痛。
今天六点钟,我们运维团的几个朋友就起床了,其实是听错了时间,以为8点开跑,结果是8点集合,10点开跑。到那儿过后天一直飘着雨,不过南滨路挨着嘉陵江,风景真的好,更好看的是…如图所示运维取经团的几个朋友:刚开始跑时,我突然感觉自己脚有点抽筋,于是放慢了一下脚步,之后才渐渐地匀速前进,但是主办方的路标是在是坑人,按常理来说应该是一公里一个提示,结果,它一个公里到两公里中间有一个提示,但是却没提示这时候的距离,只能让人以为这是1.5公里了,并且在折返点离2.5公里的路标是在太远,所以我们预计,总的里程大概在六公里多。折返跑有一个好处是,你能看到最前面的几个人,也能看到最后面的一群人。最后的一百米我还小小的冲刺了一下。其实我每次跑步最后都能够有冲刺的力气,但就是在前面无法提速,每次都是那样的速度,下次比赛我一定要克服这个问题,争取跑进半小时。今天的成绩大概在三十五六分钟。看看中途的我(白衣服短裤那个):
总之,总体感觉真的很爽,虽然这次的比赛都是给公司的员工参加的,也就是说大家尽量在宣传自己的公司,不过,好多好多的人还是跑了个开心,run for fun,这才是比赛的宗旨。仔细想想自己为什么喜欢跑步呢,我想应该是因为跑步这个运动项目,每个人到达终点的距离一样,每个人的路线也都一样,只要坚持就一定可以到达终点,无论名词高低,到达终点后你都会如释重负,心胸特别舒畅。不像其他的运动项目,有很多的技巧、必须经过很多的练习或者场地总是有所限制。
随着马拉松的落幕,我的毕业论文也经过了查重,周末就上传毕业论文了,然后下周就答辩了,希望一切顺利,然后,就可以开始我的全栈工程师实践之旅。
爱情是甜美的?爱情是苦涩的?花花世界,谁又能说得清呢。
《我依然爱你,我只是不喜欢你了》这本书是无意间在以前一位喜欢过的女生的一篇微博看到的,光看标题就有一种台湾的那种小清新爱情片的味道,看了一下简洁,是讲爱情的不是讲分手的爱情的,所以果断入手,毕竟和女朋友还处在热恋期,不知道为什么,我们俩热恋期咋这么长呢。
全书是由几十个小小的爱情故事汇聚而成,不知道真的是作者身边朋友的经历还是有很多朋友主动向作者倾诉的呢,我也好希望我身边能有一位情感专家,有什么心里问题她都能迎刃而解,什么心里话都能对她说,但是至今我的朋友圈也没出现过这样的人。作为书评,在这里我并不打算把我对爱情的理解写出来,因为也许可能大概我也写不出来,有些东西,在心里,就够了,是万万不能用我那笨拙的文字功底写出来的。另外,看了看豆瓣上的评分,其实还算不错,但是下面的有些评论我就不大赞成了。平淡、口水文,对于爱情来说,这样子有错吗?如果真的觉得平淡就觉得这是一本烂书,那我是该说你们不懂文学,还是该说你们不懂爱情呢?至少在我,一看到这个书名,就觉得这就是一本平平淡淡的书,就是一本贴近生活的书。这本书也绝不是一本只讲故事不走心的故事集,应该说它是很走心的,谁都可以深陷进那一个个的故事,也谁都可以从中体会到什么。
小井岩(作者)是个温柔的人,只有温柔的人,人们才会想他倾诉吧。很多时候,我也想做一个温柔的男朋友。虽然我比我女朋友小,我也很幼稚。和她刚在一起的时候就觉得她是那种很有气质型的,没想到,现在已经被我”调教“成一个每天都会向我撒娇的可爱女孩子了,虽然我也每天撒娇。她很好,我是她第五个男朋友,她是我第三个女朋友,我们谁都不知道会不会一直走下去,但又一直都朝着一直走下去的目标努力着。不仅我们过去爱的是人渣还是真的错过,过去的都已经翻篇了,就像我最开始说的以前喜欢过的那个女生,我现在女朋友也知道我以前喜欢过她,但是女朋友并不会阻止我和她聊天,说了半天,我到底想说什么呢,我也不知道。反正,米娜,有爱到来的时候就好好爱吧,不要刻意去回避,也不要刻意去追逐,一切随缘,不矫揉造作的爱,才是最真最纯的爱。(不要问我为什么不多谈谈书中的内容,因为看了大半年了吧,已经忘记了,只能从kindle里的笔记中找一点点当时的体会)
语录我知道我已离开你的世界,也知道,彼此不再有交集,然而心中某块地方,始终无法抹去存在的痕迹。我依然爱你,我只是知道,自己不能再像以前那样喜欢你了。 依然祝你,平安幸福。
“你知道年轻的时候穷最大的问题是什么吗?”“什么?”“以为所有得不到的一切都是穷的错。眼睛盯着遥远的地方看不到身边一朵花的美丽。”
对那时的我来说,爱情是什么并不重要,就像我知道苹果就是苹果,而不需要知道它是蔷薇科还是落叶乔木;就像当我遇见你,我就知道遇见了爱情。
最温暖的相处模式,就是两个人在一起的时候,有一种自然而然的舒适氛围,能够消解心中的那些戾气,恢复成最放松而且淡然的自己。没有强烈的惴惴不安,也没有莫名的看不顺眼,没有所有那些消耗神经的累的东西。只要我知道你在,一切就都很好。
真的有些人,让你相信人是有上辈子的,不然为何一相见就可以自然而然跳过试探、了解、熟悉的人际程序直接成为那个直达灵魂的亲密之人。
做个称职的前任吧,不纠缠,不打扰,不撩拨。心里那些残存的想念,是怀念和感激。放下心中那多愁善感的郁金香,才会开出畅然伸展的蓝莲花。
我觉得真正爱一个人的表现肯定是努力使自己和对方变得更好,怎么会是拉着对方一起下沉呢?
我不认为一辈子只爱一个人是件可惜的事,也不认为一辈子爱过很多人就是一件不道德的事。
秒速五厘米间,樱花蹁跹了看客;人生聚散离合,伊人明媚了岁月。
如果我们费尽所有心力,都不能在那个心爱的心上留下一个深一点的痕迹,这不是对方的错,也不是你的错。因为不是你不努力,而是对方跑得太快,飞得太高。
感动不是爱情,爱情根本不需要这么累,你追我跑,那是狩猎,我又不是猎物!
最后献上知乎的几位朋友对”我爱你,我只是不再喜欢你了”的《One Day》里安妮海瑟薇的一句台词 我无法控制自己对你的难以忘怀 可是我关于你的一切已经再也没有了期待。
——我会想起我们的过去,却不会再去想我们的未来。
——“不介意孤独,比爱你舒服”
——我还是曾经的那个我,你已经不是曾经的那个你了。 ——
最近真的太忙,但是再忙我也强迫自己抽出一些碎片时间来阅读,所以写书评也是必要的,因为,一本书不写书评,我根本就看不下去另一本书。对了,其实前几天还看过一本书叫《程序员的数学思维修炼》,这本书几乎是直接翻过去的,因为里面的内容基本上是给没上过大学的人看的,所以也就没有写书评的必要了。
《暗时间》是本与效率有很大关系的书,有很多套路,但是也不乏新奇之处,很多章节虽然啰嗦而且段落太长(不知道是不是我kindle显示的原因),但是书中对于每一个结论的得出,都是经过了层层推敲,循序渐进地引导我们进入作者的思维中去。而不是如其他效率书一样,上来就是一个结论,然后教我们步骤。整体感觉上,这本书还是挺不错的,可以给四分。对于“暗时间”的概念,我是觉得作者在这里并不是标题党,确实作者的“暗时间”并不仅仅是指传统意义上的碎片时间。
更深层次地讲,此书,并不是完全讲时间管理,而更多的是一种引导,引导我们认知、学习,文中提到很多关于学习的方法以及很多学习不好的方法对我来说都受益匪浅。对于时间管理,我现在使用的是番茄工作法,基本上解决了碎片时间的利用率问题和工作休息切换的问题;但另一方面,天秤座最主要的特点,犹豫不决,我在这一点上依然会浪费很多的时间,而且总是给自己和身边的人造成困扰。我想或许经历得更多,我就能有更多的果断和从容,但是又该怎样在有限的时间里比普通人经历更多呢?
书中关于学习算法那个章节我的印象是十分深刻的,因为我也曾经参加过ACM比赛,也曾经疯狂地刷题,虽然最终放弃了,但是那段一心钻研算法的日子真心值得回忆。看了该书,我仿佛茅塞顿开,仔细想想,曾经的很多算法书,特别是我们的教材上面讲算法,包括数学的公式证明,在引导我们的中途几乎都会突然来一个转折,“不妨在这里…”这样的坑我以前也踩过很多次,特别是在啃那部《算法导论》的时候,当时我就一直想弄明白,这里凭什么就突然要这么做了。事实上,正如作者所说好多的书籍都弱化了思考的这一环节,事实上,我猜,那些书的作者可能也没理解到这样转折的理由,如果真要把思考的过程全部加起来,那么随便一个K(kan)M(mao)P(pian)算法也足矣成一本书了。在刷OJ的那几个月里,我记住了很多算法,也记不住很多算法,但现在仔细想来,基本上能记住的算法,我都能清清楚楚地知道那个算法是怎么演变而来的以及为什么要用那个算法和什么时候用那个算法。
书中还提到几个日常中非常实用的思维训练以及时间管理方法:
设置自己的进度条,将目标分割成一个个里程碑,再讲里程碑分割为一个个TODO list列表
如果有什么难题困扰你了,那就在睡觉前一直想,你永远不知道大脑在你睡着的时候会怎么奇迹般地解决这个问题。这点相信很多人都是有实际体会的吧。
走路睡觉吃饭都可以思考,当你完完全全陷入一个问题的时候你就会知道你突然多了好多的时间
时常反省和注意自己的思维过程。尤其是当遇到无法理解或解决的问题之后,最需要把原先的思维过程回顾一遍,看看到底是哪个过程被阻塞住了妨碍了理解。
后记:写完了整个书评,突然觉得这本书比我之前认为的还要有意义得多,我现在可以给它五星了。
语录你会在这本书当中看到的一个重复出现的现象就是自学,大规模的自学,逃课自学,上网找书自学,程序员行业是最适合自学的行业,网络是程序员的天堂,需要的资源、工具,比课堂上的多出何止百倍,如果说还有一个学科,并不需要传统的教育就可以成才,估计非程序员莫属了。作为程序员如果没有查过wikipedia,没有看过几本原版电子书,没有在国内外主要邮件列表里面提过问题吵过架,没有用技术博客记录学习的独特体会,没有订阅技术牛人们的博客,怎么好意思说身在这个行业呢?
利用走路和吃饭的时候思考,还有睡觉前必然要弄一个问题放在脑子里面,在思考中迷糊入睡。发现这样一来往往在不知不觉中多出来大量的思考时间。将思考成为习惯还有一个很大的好处–避免焦虑。
尽量避免琐事骚扰,不重要的事情能不做就不做。有时候,紧急的事情往往只是当事人觉得必须马上做完才显得紧急或者干脆就是紧他人之急,最糟糕的就是纯属性格上原因觉得每件事情都得第一时间完成,很多看上去紧急的事情实际上并不是真的”不能再拖了”,有的干脆就并不需要或值得去做。有很多事情都是可以先放一放甚至完全let go的,否则的话就整天被所谓”紧急”的事情牵着鼻子走了。
有一句话说:看一个人,只要看他读的书和见的人。还是很有道理的,这两者是一个人成长中最有价值的信息来源。
一个你不明白其证明的定理在我看来比不知道这个定理还要糟糕,因它给你造成一种懂了的错觉。与看定理必看证明类似,看一个问题的解法,必然要看解法所诞生的过程,背后是否隐藏着更具一般性的解决问题的思路和原则。否则一个解法就只是一个问题的解法,跟背口诀一样。即,知道了算法是怎样一步步被推导出来的,我们就一下拥有了大量的记忆提取线索:对算法发现过程中的任何一个关键步骤(尤其是本质)的回忆都可能使我们能够自己动手推导出剩余的内容
在做毕业设计的时候,由于后端有一个耗时任务,所以想到了异步,又由于长期使用Python,进而想到了Tornado,然后,我就半个月没做毕设了,说来全是坑啊。在了解异步与阻塞的原理之前我就盲目地想从代码层面去实现,这样只会浪费时间。所以这里我就先描述一下我对这几个概念的理解。
异步与同步:是消息通信机制的层面采用异步的时候,程序并不关心该操作的结果,所以并不会有返回结果,比如ajax,一般会给异步操作赋予一个回调函数,通过这个回调函数对结果进行处理,而不是直接将结果返回给外部(在ajax如果return结果则会是一个null值)
阻塞与非阻塞:指程序在等待调用结果时的状态如果是阻塞,则程序会一直等待程序返回结果,如果是非阻塞,则不会等待,而继续执行下面或者其他的代码了。
阻塞式IO耗时型任务一般分为两类:CPU耗时型任务和IO耗时型任务。CPU指一般的代码运算执行过程,IO一般分为两大类,计算型IO和阻塞式IO。如果仅有一个线程,那么同一时刻只能有一个任务在计算,但如果是阻塞式IO,它可以让它先阻塞掉,然后去计算其他的任务,等到内核告诉程序那边没有被阻塞了就、再回到之前的地方进行之后的运算。
所以,在了解了这些概念过后,我就知道了为什么要发挥tornado的异步特性就得依赖异步库(),而不是随便一行代码都能变成异步非阻塞式的代码。比如我试验时使用的一个sleep函数:
12345def sleep(self):
for i in range():
if i % 100000 == 0:
self.set_cookie(&setting&, &hao&)
看吧,这是一个计算型任务,由于tornado是单进程单线程,所以无论怎么做也不可能实现在访问该请求的时候访问其他请求,因为CPU只能执行当前任务,其他请求必须等到这个请求结束后才能成功,这也是为什么部署tornado的时候几乎都是用nginx+多实例事实上,同理,其他的框架基本上都是需要nginx、apache等配合才能同时服务于多个请求的。Tornado的异步库,几乎都是用来进行阻塞式IO任务的,所以只有他们才能发挥其异步特性。
Tornado的异步实现就是将当前请求的协程暂停,等待其返回结果,在等待的过程中当前请求不能继续往下执行,但是如果有其他请求(同样是一个协程),只要不也是阻塞式IO,那么就会直接去处理其他的请求了。
当然,包括nodejs的异步等,这些统统都是有历史原因的,JavaScript和Python在发展之初都只支持单进程单线程,即使使用多线程技术最多也只能利用到100%的单核,多核在这里似乎并不使用,而如果要使用多进程变成,光靠框架是做不到的,必须自己根据实际需求来处理多进程之前的数据共享、资源竞争等问题。所以,在我的理解里,如果能直接利用多线程编程就不需要用服务端异步,毕竟,多线程的发明本身也是为了解决阻塞式IO的问题。
多线程实现异步、非阻塞、并行请求、并行计算其实我认为多线程相比于异步非阻塞有很大的优点,不可否认,多线程在线程切换上存在开销,并且在资源竞争上需要写更多的逻辑,稍微控制不好就会导致服务出错,然而,多线程在处理并行任务上有先天的优势,这一点光看名字就看得出来,下面介绍Tornado的多线程和Flask多线程的用法,其中Tornado的多线程是指由程序将当前请求中的代码交由其他线程处理,而flask的多线程就是类似apache服务器,另起一个进程来处理请求。
注意:两者都可以使用global来引用全局变量
Tornado实现:当前请求会立马返回一个结果并断开当前http连接,所以不能在这里设置cookie1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import tornado.ioloopimport tornado.webimport timefrom concurrent.futures import ThreadPoolExecutorimport tornado.httpclientfrom tornado.concurrent import run_on_executorclass Executor(ThreadPoolExecutor): _instance = None
def __new__(cls, *args, **kwargs):
if not getattr(cls, &_instance&, None):
cls._instance = ThreadPoolExecutor(max_workers=10)
return cls._instanceclass SleepHandler(tornado.web.RequestHandler):
executor = ThreadPoolExecutor(10)
def get(self):
tornado.ioloop.IOLoop.instance().add_callback(self.sleep) # 相当于丢到下一个时间循环去
self.write(&when i sleep&)
# 请求会立马返回这个值并断开连接
@run_on_executor
def sleep(self):
for i in range():
if i % 100000 == 0:
self.set_cookie(&username&, &hao&)
print(&yes&)
return 5class TestHandler(tornado.web.RequestHandler):
def get(self):
if not self.get_cookie(&username&):
self.write(&没有&)
self.write(&有&)
application = tornado.web.Application([ (r&/test&, TestHandler), (r&/sleep&, SleepHandler), ], debug=True)if __name__ == &__main__&:
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
flask实现:直接在启动时添加参数,当前请求不会立马返回一个返回值,会一直处于连接状态,所以可以设置cookie1234567891011121314151617181920212223from flask import Flask,request,make_responseapp = Flask(__name__)@app.route(&/&)def hello_world(): username = request.cookies.get(&username&)
if username is None:
return &没有&
return &有&
return username@app.route(&/s&)def sleep():
for i in range():
if i % 100000 == 0:
print(i) resp = make_response(&ok&)
resp.set_cookie(&username&, &the username&)
return respif __name__ == &__main__&: app.run(debug=True, threaded=True)
我的kindle里面收藏了太多的书,此书就是一本我也不知道什么时候一时兴起将其收藏的,光看书名还以为是一部心灵励志类的小说,没想到竟是包含人生、哲理、财经、政治的集大成者。自然,在看本书前我对作者也是一无所知,到后面越看越觉得作者不是等闲之辈,便去维基了一下:吴晓波,就是那个《激荡三十年》和《跌宕一百年》等著作及纪录片的作者,他的《大败局》被评为‘影响中国商业界二十本书’之一。一路走来,吴晓波亲身经历了中国改革开放的几十年,并深入其中,握其精髓,无论书中哪一篇文章都让我感觉仿佛身临其中,无法自拔。
其实,这部作品从形式上来说是一篇文集,“把生命浪费在美好的事物上”只是这部著作其中一篇的标题,作者从人生谈到家国,谈了几个人,仿佛谈了几千年。他不仅经历过,而且还和很多成功或曾经成功的人士聊了很多事,历史的沉浮中升华出自己的理解。其间的内涵可能也只有自己能体会。我想,一个知识分子,姑且这样称呼自己,想要在浮躁的社会中,必然得有自己的一片精深田地,可以入世,但不能抛弃一个知识分子的道德、心境、理想。
当然,另一方面,有人读书的目的就是当前对自己有没有用。客观地说,书的前面一份主要讲一些鸡汤,中间以及后面的部分才是全书的内涵所在,从叙事中领悟不同的人生。
看完这本书,我也忍不住想去看作者其他几本书,光从书名上就感觉是我目前思想境界还未能企及的,所以暂时,放下,等我继续,沉淀。
最后关于“把生命浪费在美好的事物上”这几个字,我一直很喜欢。中考的时候,阅读理解,大意是“珍惜那些浪费的时光”,两个主题其实如出一辙。生命中总有好多的事,我们很喜欢,但是这些事可能无法给我们带来直接的价值,所以很多人尽量选择回避自己所喜欢的,而不得不接受自己不喜欢的。我一直不希望成为这样的人,因为这样子活着,真的好累。在这个浮躁的社会,每晚拿出kindle,摆上一杯清水,就这样,静静地看,这一刻你会发现,你的灵魂终于跟上了你的身体。
语录其实,人生如草,活的就是“从容”两字。
这一生中,你遇见怎样的人,然后有机会成为那样的人。
我们对这个世界还是这么好奇,我们还有舍弃一切的勇气,即便手中的黄金变成了砂砾,但若放手出来,空掌仍能握铁。
你看,我们对这个世界还是这么好
你看,我们对这个世界还是这么好奇,我们还有舍弃一切的勇气,即便手中的黄金变成了沙砾,但若放手出来,空掌仍能握铁。还是邱兵同学说得好:“我只知道,我心澎湃如昨。”
自由是世俗的,它不在空中,不在别处,它就在地上。作为一个读书人,你能否自由地支配时间,你能否自由地选择和放弃职业,你能否自由地在四月去京都看樱花,你能否自由地与富可敌国的人平等对视,你能否自由地抵制任何利益集团的诱惑,这一切并不仅仅是心态或勇敢的问题,而是一种现实能力。
在这个世界上,不是每个国家、每个时代、每个家庭的年轻人都有权利去追求自己所喜欢的未来。所以,如果你侥幸可以,请千万不要错过。
每一件与众不同的绝世好东西,其实都是以无比寂寞的勤奋为前提的,要么是血,要么是汗,要么是大把大把的曼妙青春好时光。
金钱让人丧失的,无非是他原本就没有真正拥有的;而金钱让人拥有的,却是人并非与生俱有的从容和沉重。金钱会让深刻的人更深刻,让浅薄的人更浅薄。金钱可以改变人的一生,同样,人也可以改变金钱的颜色。 把金钱当对手和敌人的人,将一生为金钱而烦恼;而把金钱当朋友的人,将获得金钱给予的欢乐和平和。成为金钱的奴隶,或将金钱视为奴隶的人,都无法与金钱平视对坐。
花开在眼前/已经开了很多很多遍/每次我总是泪流满面/像一个不解风情的少年
一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐。贤哉,回也!
重庆,真的是一座来了就跑不脱的城市。这里每个人干事都风风火火、雷厉风行,从不脱离带水,但是这里的每一个人骨子里貌似都藏着一份“不与世俗同流合污”的精神。磁器口喝茶,植物园赏花,歌乐山看树,朝天门游江,清晨找个公园晨跑,傍晚全家围着看生活麻辣烫,这样的生活,一直以来都是我所期待的,安静、舒适、简单、美好。曾经看过重庆时尚频道冷暖人生栏目的一个广告(应该是09年以前的了,始终找不到那个视频了),广告语是:当生命在懵懂中灿烂/当情愫在无言中飘零/当我们在百转中千回/其实人生正如季节,冷暖交替/看人生故事,品故事人生。就像这样,当生活麻辣烫看久了,就真的感觉已经离不开这种生活方式了。推荐大家看看《火锅英雄》这部陈坤和白百合主演的富有重庆本色的电影,谈不上精彩,但是重庆的风土人情还是展现得不错的,特别是片中的几处取景,特别不错。
haofly拍摄于重庆朝天门以上说的并不是今天要讲的重点,重点是我现在发现在小城市生活与大城市一样,同样要面临很多困难,大城市多的是外界施加给你的压力,而小城市则是自己与自己抗争。如今,终于理解什么叫“努力不一定会成功,但是不努力一定会很舒服”。在大城市,压力是很大,但至少身边有各种拼了命也想要成功的朋友,你自然也不会松懈,但小城市就不一样了,你会感觉每个人好像都是安于现状的,每个人好像都没有多大的追求,当然,我并不了解每一个人,这些也只是表面上给我的感觉而已,但是自己还是潜移默化地被感染了。渐渐地,感觉到自己的棱角被磨平了,说不出年少时的豪言壮语,再提起曾经的梦想也只是一闪而过,生怕自己发现了自己的堕落。
近一年的实习经验经历,不仅没让我越来越强,反而使我觉得在这一年的时间里自己并没有多少成长。我是在吃老本吗?不知道。我是在骄傲吗?不知道。我是温水里的青蛙吗?不知道。仔细想想,我什么都不知道,确实,我已经好久好久没有静下来这么想了。遇到人生第一个瓶颈,我竟不知所措,最终选择视而不见,究其原因,可能是懒,因为懒,所以好多该做的事情没有做,因为懒,根本没有去发现什么事情该做,因为懒,连未来怎么走都不知道,只能走一步是一步。但是每个人不都有轻度的懒癌吗,为什么偏偏就我的懒癌就无可救药吗?
近日发现,身边的人都成长十分迅猛,而自己依然止步不前,心里十分焦虑,仿佛压力越大,行动力反而越差,事情越多就越不想做。清明回家,回想了一下自己近一年的实习,我发现,目前我要克服自己的最大的一个缺点就是反省。不会反省,所以每次我发现自己有点懒惰了,然后就会立马忽略;不会反省,有些事情总是一错再错;不会反省,永远不知道自己什么事情做了,什么事情没做,什么事情做好了,什么事情没做好。总之,“吾日三省吾身”,我要为自己制定一个计划,希望能通过这个计划提高自己的反省能力,并从中找到技术瓶颈的解决办法。每天总结一次,并在每周周末形成一篇完整的周报。
看起来又是一篇无用的计划文,但是闹钟已设,毕竟不都说,21天就可以养成一个习惯了吗,加油,还是得多喝鸡汤呀。}

我要回帖

更多关于 认证服务器维护 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信