<?php

[转] 毕业后的五年拉开大家差距的原因在哪里?

个人觉得与其把这篇文章称之为解释问题的答案,倒不如称为“如何树立起正确的职业发展计划”。

以下为转载:

正如”打工皇帝”唐骏说:”我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入企业的人,头5年千万不要说你能不能多给我一点儿工资,最重要的是能在企业里学到什么,对发展是不是有利……”
人总是从平坦中获得的教益少,从磨难中获得的教益多;从平坦中获得的教益浅,从磨难中获得的教益深。一个人在年轻时经历磨难,如能正确视之,冲出黑暗,那就是一个值得敬慕的人。最要紧的是先练好内功,毕业后这5年就是练内功的最佳时期,练好内功,才有可能在未来攀得更高。
出路在哪里?出路在于思路!
  其实,没有钱、没有经验、没有阅历、没有社会关系,这些都不可怕。没有钱,可以通过辛勤劳动去赚;没有经验,可以通过实践操作去总结;没有阅历,可以一步一步去积累;没有社会关系,可以一点一点去编织。但是,没有梦想、没有思路才是最可怕的,才让人感到恐惧,很想逃避!
  人必须有一个正确的方向。无论你多么意气风发,无论你是多么足智多谋,无论你花费了多大的心血,如果没有一个明确的方向,就会过得很茫然,渐渐就丧失了斗志,忘却了最初的梦想,就会走上弯路甚至不归路,枉费了自己的聪明才智,误了自己的青春年华。
荷马史诗《奥德赛》中有一句至理名言:”没有比漫无目的地徘徊更令人无法忍受的了。”毕业后这5年里的迷茫,会造成10年后的恐慌,20年后的挣扎,甚至一辈子的平庸。如果不能在毕业这5年尽快冲出困惑、走出迷雾,我们实在是无颜面对10年后、20年后的自己。毕业这5年里,我们既有很多的不确定,也有很多的可能性。
  毕业这5年里,我们既有很多的待定,也有很多的决定。
  迷茫与困惑谁都会经历,恐惧与逃避谁都曾经有过,但不要把迷茫与困惑当作可以自我放弃、甘于平庸的借口,更不要成为自怨自艾、祭奠失意的苦酒。生命需要自己去承担,命运更需要自己去把握。在毕业这5年里,越早找到方向,越早走出困惑,就越容易在人生道路上取得成就、创造精彩。无头苍蝇找不到方向,才会四处碰壁;一个人找不到出路,才会迷茫、恐惧。
生活中,面对困境,我们常常会有走投无路的感觉。不要气馁,坚持下去,要相信年轻的人生没有绝路,困境在前方,希望在拐角。只要我们有了正确的思路,就一定能少走弯路,找到出路!
成功的人不是赢在起点,而是赢在转折点。
不少刚刚毕业的年轻人,总是奢望马上就能找到自己理想中的工作。然而,很多好工作是无法等来的,你必须选择一份工作作为历练。职业旅程中的第一份工作,无疑是踏入社会这所大学的起点。也许你找了一份差强人意的工作,那么从这里出发,好好地沉淀自己,从这份工作中汲取到有价值的营养,厚积薄发。千里之行,始于足下,只要出发,就有希望到达终点。
起点可以相同,但是选择了不同的拐点,终点就会大大不同!
毕业这几年,我们的生活、感情、职业等都存在很多不确定的因素,未来也充满了各种可能。这个时候,必须学会选择,懂得放弃,给自己一个明确的定位,使自己稳定下来。如果你不主动定位,就会被别人和社会”定型”!
可以这么说:一个人在毕业这5年培养起来的行为习惯,将决定他一生的高度。我们能否成功,在某种程度上取决于自己对自己的评价,这就是定位。你给自己定位是什么,你就是什么。定位能决定人生,定位能改变命运。丑小鸭变成白天鹅,只要一双翅膀;灰姑娘变成美公主,只要一双水晶鞋。
人的命,三分天注定,七分靠打拼,有梦就”会红”,爱拼才会赢。只要不把自己束缚在心灵的牢笼里,谁也束缚不了你去展翅高飞。
现实情况远非他们所想的那样。于是,当优越感逐渐转为失落感甚至挫败感时,当由坚信自己是一块”金子”到怀疑自己是一粒”沙子”时,愤怒、迷茫、自卑就开始与日俱增。
其实,应该仔细掂量一下自己,你是否真是金子?是真金,手中要有绝活,才能上要有过人之处才行。一句话:真金是要靠实力来证明的,只有先把自己的本领修炼好了,才有资格考虑伯乐的事情
每颗珍珠原本都是一粒沙子,但并不是每一粒沙子都能成为一颗珍珠。
想要卓尔不群,就要有鹤立鸡群的资本。忍受不了打击和挫折,承受不住忽视和平淡,就很难达到辉煌。年轻人要想让自己得到重用,取得成功,就必须把自己从一粒沙子变成一颗价值连城的珍珠。
天有下雨与日出,人生高峰与低谷。
莫为浮云遮望眼,风物长宜放眼量。 只要拂去阴霾,就能亮出朗朗晴空。如果你在工作上有些不如意,要相信自己不会一直处于人生的低谷期,总有一天能冲破重重云层。告诉自己:我并没有失败,只是暂时没有成功!只要在内心点亮一盏希望之灯,一定能驱散黑暗中的阴霾,迎来光明。
的确,论资历,他们是不折不扣的职场菜鸟,业务涉及不深,人脉一穷二白,在工作中经常碰壁。他们的压力并不一定都像千钧大石,而是像大雨来临前的天色,灰色低沉,明明有空间,却被灰色填满每个缝隙,只能等待大雨倾盆之后的晴空。
  ”起得比鸡早,睡得比狗晚,干得比驴多,吃得比猪差。”这是很多刚刚毕业的人喜欢用来调侃自己生活状态的话。虽然有点儿夸张,但是,他们中的很多人的确一直都被灰色心情所笼罩–心里永远是多云转阴。记得有位哲人曾说:”我们的痛苦不是问题本身带来的,而是我们对这些问题的看法产生的。”换个角度看人生,是一种突破、一种解脱、一种超越、一种高层次的淡泊与宁静,从而获得自由自在的快乐。
一位哲人说:”人生就是一连串的抉择,每个人的前途与命运,完全把握在自己手中,只要努力,终会有成。”就业也好,择业也罢,创业亦如此,只要奋发努力,都会成功。你是不是准备把生命的承诺全部都交给别人?
  毕业后这5年,是改变自己命运的黄金时期。在最能决定自己命运时,如果还不把握,那你还要等到什么时候呢?我的人生我做主,命运由己不由人。
  不要活在别人的嘴里,不要活在别人的眼里,而是把命运握在自己手里。
  别说你没有背景,自己就是最大的背景。美国作家杰克·凯鲁亚克说过一句话:”我还年轻,我渴望上路。”在人生的旅途中,我们永远都是年轻人,每天都应该满怀渴望。每个人的潜能都是无限的,关键是要发现自己的潜能和正确认识自己的才能,并找到一个能充分发挥潜能的舞台,而不能只为舞台的不合适感到不快。要客观公正地看待自己的能力,结合自己的实际情况和爱好冷静选择,尽可能到最需要自己、最适合自己的地方。
  在人力资源管理界,特别流行一个说法,即”骑马,牵牛,赶猪,打狗”理论:人品很好,能力又很强的,是千里马,我们要骑着他;人品很好但能力普通的,是老黄牛,我们要牵着他;人品、能力皆普通的,就是”猪”,我们要赶走他;人品很差能力很强的,那是”狗”,我们要打击他。
我想,刚刚毕业几年的你,一样胸怀大志,一样想成为一匹被人赏识、驰骋沙场的千里马吧?那么,就好好沉淀下来。低就一层不等于低人一等,今日的俯低是为了明天的高就。所谓生命的价值,就是我们的存在对别人有价值。能被人利用是一件好事,无人问津才是真正的悲哀!
能干工作、干好工作是职场生存的基本保障。
任何人做工作的前提条件都是他的能力能够胜任这项工作。能干是合格员工最基本的标准,肯干则是一种态度。一个职位有很多人都能胜任,都有干好这份工作的基本能力,然而,能否把工作做得更好一些,就要看是否具有踏实肯干、苦于钻研的工作态度了。
在能干的基础上踏实肯干。
工作中,活干得比别人多,你觉得吃亏;钱拿得比别人少,你觉得吃亏;经常加班加点,你觉得吃亏……其实,没必要这样计较,吃亏不是灾难,不是失败,吃亏也是一种生活哲学。现在吃点儿小亏,为成功铺就道路,也许在未来的某个时刻,你的大福突然就来了。

能吃亏是做人的一种境界,是处世的一种睿智。
在工作中并不是多做事或多帮别人干点儿活就是吃亏。如果领导让你加加班、赶赶任务,别以为自己吃了大亏,反而应该感到庆幸,因为领导只叫了你,而没叫其他人,说明他信任你、赏识你。吃亏是一种贡献,你贡献得越多,得到的回报也就越多。乐于加班,就是这样的一种吃亏。
舍得舍得,有舍才有得;学会在适当时吃些亏的人绝对不是弱智,而是大智。
  给别人留余地就是给自己留余地,予人方便就是予己方便,善待别人就是善待自己。
  傻人有傻福,因为傻人没有心计。和这样的人在一起,身心放松,没有太多警惕,就能相互靠近。傻在很多时候意味着执着和忠贞,也意味着宽厚和诚实,让人不知不觉站到他一边。傻人无意中得到的,比聪明人费尽心机得到的还多。毕业这几年,你的天空中只飘着几片雪花,这样你就满足了吗?成功需要坚持与积累,与其专注于搜集雪花,不如省下力气去滚雪球。巴菲特说:”人生就像滚雪球,最重要的是发现很湿的雪和很长的坡。”让自己沉淀下来,学着发现”很湿的雪”,努力寻找”很长的坡”。记住:散落的雪花会很快融化,化为乌有,只有雪球才更实在,才能长久。
在毕业这几年里,你要是能做到比别人多付出一分努力,就意味着比别人多积累一分资本,就比别人多一次成功的机会。

什么是职业化呢?职业化就是工作状态的标准化、规范化、制度化,即在合适的时间、合适的地点用合适的方式说合适的话、做合适的事,使知识、技能、观念、思维、态度、心理等符合职业规范和标准。”在每个行业里,都有很多出色的人才,他们之所以能存在,是因为比别人更努力、更智慧、更成熟。但是,最重要的是,他们比一般人更加职业化!这就是为什么我现在能当你老板的原因。一个人仅仅专业化是不够的,只有职业化的人才能飞在别人前面,让人难以超越!”不要以为我们现在已经生存得很安稳了。对于毕业5年的人来讲,一定要认清即将面临的五大挑战。

一、赡养父母。
二、结婚生子。
三、升职加薪。
四、工作压力。
五、生活质量。
有的人为生存而雀跃,目光总是停在身后,三天打鱼两天晒网,有始无终。
  有的人为发展而奋斗,目光总是盯在正前方,每天进步一点点,坚持不懈。
  毕业这几年,不能没有追求和探索,不能没有理想和目标。人生如逆水行舟,不进则退。甘于现状的生活就是不再前行的船,再也无法追上时代前进的步伐。一定要抓紧每一秒钟的时间来学习,要明白学习不是学生的专利。小聪明的人最得意的是:自己做过什么?大智慧的人最渴望的是:自己还要做什么?
  小聪明是战术,大智慧是战略;小聪明看到的是芝麻,大智慧看到的是西瓜。
  在这个世界上,既有大人物,也有小角色,大人物有大人物的活法,小人物有小人物的潇洒,每个人都有自己的生活方式,谁也勉强不了谁。但是,小聪明只能有小成绩和小视野,大智慧才能有大成就和大境界。小企业看老板,中企业看制度,大企业看文化。
小公司与大企业都有生存之道,没有好坏之分,但对一个人不同阶段的影响会不同。
  小公司肯定想要发展为大企业,这是一种目标,年轻人也要给自己的职业生涯制定目标。毕业几年的你,是否经常会怯场或者是感到没有底气?居安思危绝对不是危言耸听!此刻打盹,你将做梦;此刻学习,你将圆梦。在竞争激烈的人生战场上,打盹的都是输家!
每个人在年轻的时候似乎都豪情万丈,什么都不怕,可是随着年龄的增长,每天想着房子、工作、养家糊口这些俗事儿,再也没有年轻时那种敢于”上天探星、下海捞月”的勇气了。是我们改变了生活,还是生活改变了我们?我们的思想越来越复杂,因为有了越来越多的舍不得、越来越多的顾虑,我们总是在徘徊、总是在犹豫。毕业开始一两年,生活的重担会压得我们喘不过气来,挫折和障碍堵住四面八方的通口,我们往往在压迫得自己发挥出潜能后,才能杀出重围,找到出路。可是两三年后,身上的重担开始减轻,工作开始一帆风顺,我们就松懈了下来,渐渐忘记了潜在的危险。直到有一天危机突然降临,我们在手足无措中被击败……毕业这几年,仍然处于危险期,一定要有居安思危的意识,好好打拼,这样才能有一个真正的安全人生!
生于忧患,死于安乐。如果你想跨越自己目前的成就,就不能画地自限,而是要勇于接受挑战。对畏畏缩缩的人来说,真正的危险正在于不敢冒险!
年轻人在社会的重压下,适应能力已变得越来越强,只是他们不自觉地习惯被环境推着走。他们不敢冒险,怕给自己带来终身的遗憾,于是告慰自己:”我对得起自己、对得起家人,因为我已竭尽全力。” 其实,人只有不断挑战和突破才能逐渐成长。长期固守于已有的安全感中,就会像温水里的青蛙一样,最终失去跳跃的本能。
经历了这几年社会生活,你应该明白:这个世界上有富也有贫,有阴也有亮,有丑也有美,到底看到什么,取决于自己是积极还是消极。在年轻时学会勤勉地工作,用一种光明的思维对待生活,那么,只要张开手掌,你就会发现,里面有一片灿烂的人生。

把感恩刻在石头上,深深地感谢别人帮助过你,永远铭记,这是人生应有的一种境界;把仇恨写在沙滩上,淡淡忘掉别人伤害过你,学会宽容,让所有的怨恨随着潮水一去不复返,这也是一种人生境界。
学会倒出水,才能装下更多的水。从毕业那天开始,学会把每天都当成一个新的起点,每一次工作都从零开始。如果你懂得把”归零”当成一种生活的常态,当成一种优秀的延续,当成一种时刻要做的事情,那么,经过短短几年,你就可以完成自己职业生涯的正确规划与全面超越。
  在职业起步的短短道路上,想要得到更好、更快、更有益的成长,就必须以归零思维来面对这个世界。不要以大学里的清高来标榜自己,不要觉得自己特别优秀,而是要把自己的姿态放下,把自己的身架放低,让自己沉淀下来,抱着学习的态度去适应环境、接受挑战。放下”身段”才能提高身价,暂时的俯低终会促成未来的高就。
  年轻人从校园或者从一个环境进入一个新环境,就要勇于将原来环境里熟悉、习惯、喜欢的东西放下,然后从零开始。我们想在职场上获得成功,首先就要培养适应力。从自然人转化为单位人是融入职场的基本条件。一个人起点低并不可怕,怕的是境界低。越计较自我,便越没有发展前景;相反,越是主动付出,那么他就越会快速发展。很多今天取得一定成就的人,在职业生涯的初期都是从零开始,把自己沉淀再沉淀、倒空再倒空、归零再归零,正因为这样,他们的人生才一路高歌,一路飞扬。
  在毕业这几年里,我们要让过去归零,才不会成为职场上那只背着重壳爬行的蜗牛,才能像天空中的鸟儿那样轻盈地飞翔。请好好品味一下杰克·韦尔奇说过的一句话:” 纠正自己的行为,认清自己,从零开始,你将重新走上职场坦途。” 吐故才能纳新,心静才能身凉,有舍才能有得,杯空才能水满,放下才能超越。
归零思维五大表现:心中无我,眼中无钱,念中无他,朝中无人,学无止境。
年轻人难免带着几分傲气,认为自己无所不能、所向披靡,其实不然,初入职场的新人还是个”婴儿”,正处在从爬到走的成长阶段。在毕业这几年里,一定要让自己逐步培养起学徒思维、海绵思维、空杯思维,具有这样思维的人心灵总是敞开的,能随时接受启示和一切能激发灵感的东西,他们时刻都能感受到成功女神的召唤。

QQ潮流概念版初体验

今天看到QQ出了个潮流概念版,下载地址,如果打不开请尝试搜索
试用之前需要申请登录许可,申请地址
下面贴几张我的截图吧, 启动中:
loading

登录窗口:
login

登录后的QQ主界面:
QQ

被拖拽到桌面的好友,这个功能挺好的。不过也不算QQ的首创了,我记得当初UC(现在的新浪UC)出来时就有了这个功能。
drag

点击被拖拽出来的图标会有几个菜单供选择,看样子以后会加入数量更多的菜单,这个形式很容易扩展。
menu

其他地方值得一提的就是操作的体验吧,一个字“炫”,或许这个就是潮流概念的所指? 整体没有发现什么新功能,多tab聊天比较适合玩NP的聊天狂人,我是用不上了。。
更多的是不足,比如说对我很重要的聊天记录。在这个版本中居然没有导入历史记录的工具。

另外 这个版本目前还没有广告, 免于广告的骚扰是一种幸福。。。

下面看一下官方给出的whats new:
1.个性化登录界面
悠悠飘动的白云,随风摇摆的叶子,极富生命力。

2.头像动感相框
多款富有动感的相框,给自己的头像增添新的趣味。

3.动态背景
清新自然的竹叶,活力四射的霓虹灯,好友列表不再单调。

4.好友动态滚动显示
个性签名、音乐状态、QZone 等更新信息滚动显示,随时随地了解好友动态。

5.桌面好友
把好友拖放到桌面,实时关注好友的最新状态,即时快聊,实现无缝沟通和互动。

6.好友管理
富有质感的界面,好友卡片自由拖放,支持多点触摸,好友男女比例统计,给您全新的好友管理体验。

7.多TAB聊天功能
拖拽会话窗口上的头像可以合并和拆分会话窗口,管理会话更方便。

8.表情选择器
圆盘卡片式的表情选择器,自动排列常用表情。

9.超级表情
给好友发送特殊的表情,让您的心情跃然好友屏幕之上,与好友一起感受不一样的互动形式。

10.全新的聊天记录查看体验
带有加速度和富有弹性的滚动及翻页体验,操作更自然。

11.系统设置
系统设置位于主面板背面,可用鼠标右键手势进行3D翻转,修改设置更快捷。

关于微博,尤其腾讯微博

近来微博似乎一夜间遍布天下,大有赶超当年博客之风的趋势。
腾讯微博,新浪微博,网易微博。。
截止目前,相比之下3个微博众我比较推崇新浪微博。为什么呢? 首先功能完善,其次人气够足。能看到想看的信息,这一点在网易围脖和腾讯微博都没有体会到。或许腾讯微博和网易微博是以为暂未开放的缘故,但不得不说的是腾讯微博的功能实在欠缺,体验一般,而且不符合微博使用习惯。难道说一些标记符号做的跟其他微博不同就算是创新?可笑,不仅没有体现任何新意,反倒让人十分反感!功能开发进度太慢、邀请制的内测形式、不合使用习惯的设计、数据展示的凌乱…… 种种不足着实让人失望。
下面针对腾讯微博说几点:
1,贴图、贴视频功能欠缺,使得内容过于单一(贴图还在小范围内测)
2,不能方便的看到所有人对某条微博的评论;
3,没有评论同时发布一条的功能;转发的同时发一条评论;
4,功能不稳定,follow其他人之后对方收不到通知;
5,给别人的评论会自动成为新的广播;(这一点很烦人,以为我觉得有些评论不适合作为广播,仅仅是作为一个评论而已)
6,有时会遇到刚刚新建的#话题#点击进去却看不到自己刚发布的那一条;
7,信息审核慢;
8,发布一条信息出现重复数据;
9,认证混乱,经常看到一些根本就是乱七八糟的名字,却得到了认证;
。。。

相比之下网易微博就显得比较中庸,但至少符合用户使用习惯。你腾讯抄也不会抄么? 搞成那样怎么树立口碑呢?难道就仗着用户群体够大?? 静观其变,希望不是个杯具。。

最后,赠送腾讯微博邀请码一个:http://t.qq.com/invite/1768cb00
如果失效,请谅解。

膜拜国内第一台iPad[多图]

前天还看到开复在微博说要去美国拿iPad。当时说他真奢侈,买个ipad还要去美国拿。。。今天就看到了国内的iPad了,至于它是不是真的第一台,已经不重要了。。 什么时候ipad才能真正在大陆上市?

sina的大编们什么时间来个拆机图啊?哈哈

最后再问一下乔布斯,iPad已经出来了,下一个计划出i什么呢?iDesk? iHouse?

下文转自新浪科技

苹果于美国东部时间4月3日上午9时(北京时间4月3日晚21:00)正式销售iPad平板电脑,新浪数码第一时间得到了首台登录中国的苹果 iPad,以下为该机到达新浪网的第一时间拆箱图赏:

iPad到达新浪网所在地:北京市理想国际大厦
iPad到达新浪网所在地:北京市理想国际大厦
刚进入电梯,我们就按捺不住激动,先在电梯里面拍照留念。
刚进入电梯,我们就按捺不住激动,先在电梯里面 拍照留念。
图为:苹果iPad的外包装
图为:苹果iPad的外包装
打开盒子,苹果iPad正安静的躺在盒子内
打开盒子,苹果iPad正安静的躺在盒子内
iPad的附件相当简单,电源适配器,数据线,说明书
iPad的附件相当简单,电源适配器,数据线, 说明书
先来一张iPad和小浪的合影
先来一张iPad和小浪的合影
打开新浪网首页,页面浏览的体验相当出色
打开新浪网首页,页面浏览的体验相当出色
打开新浪数码首页。
打开新浪数码首页。
把iPad横过来
把iPad横过来
苹果iPad简洁的背部设计
苹果iPad简洁的背部设计
苹果iPad的顶部设计:耳机、麦克风和电源按钮
苹果iPad的顶部设计:耳机、麦克风和电源按 钮
iPad的底部设计:扬声器和数据线接口
iPad的底部设计:扬声器和数据线接口
iPad右侧接口:锁定旋屏重力感应、音量键
iPad右侧接口:锁定旋屏重力感应、音量键
iPad左侧没有任何接口
iPad左侧没有任何接口

Erlang入门第二期:Erlang“记录”的用法及注意事项

15. 记录 record

提供了一种方法吧一个名称与元组中的一个元素对应起来,从而便于区分元组中的各个元素的含义。定义方法:

-record(Name, { key1 = Default1, key2 = Default2, key3, key4=undefined, ….}

其中key3 key4=undefined 是等效写法;

Name:记录的名字;

Key1, key2, key3, key4 这些是记录中的字段名,且必须是元子;

注意:record 不是一个shell命令,不能在shell中使用,只能用于erlang源码中;在shell中应该使用rr命令读取hrl记录定义文件

保存为 .hrl 扩展名的文件,以保证不同的erlang模块使用相同的记录定义

保存为records.hrl

%%记录 定义

-record(

todo,

{

status=abc,

who=usr,

text

}

).

Shell中执行:

1> rr(”records.hrl”).

[todo]

2> X1 = #todo{}.

#todo{status = reminder,who = joe,text = undefined}

3> X2 = #todo{who=zhys9, text=”erlang”}.

#todo{status = reminder,who = zhys9,text = ”erlang”}

4> X3 = X2#todo{text=”copy of X2″}.

#todo{status = reminder,who = zhys9,text = ”copy of X2″}

5> X3#todo.text.

“copy of X2″

6> X2#todo.text.

“erlang”


说明一下:

1> 加载记录定义

2> 实例化一个todo类型的记录,所有字段值都按照记录的默认值

3> 实例化一个todo类型的记录,并指定whotext字段的值

4> copy变量X2并修改text字段的值为copy of X2,赋值给X3

5> 通过记录,获取X3text字段的值

6> 通过记录,获取X2text字段的值

特别注意的是,X3X2copy与被copy的关系,当X3的字段值发生改变后,X2的字段没有变化!

另外一种从记录中提取字段值的方法依旧是模式匹配:

7> #todo{status=Y, who=Z,text=T}=X2.

#todo{status = reminder,who = zhys9,text = ”erlang”}

8> Y.

12

9> Z.

zhys9

10> T.

“erlang”

Erlang入门注意事项,第一期

最近在看Erlang的介绍,对于一个入门级的新人而言,erlang还是有不少需要注意的地方。先简单整理一下,自己备忘或是方便新人吧。。这里记录不是很详细,只是记录了一部分我认为需要特别注意的地方。

1. 变量首字母必须是大写

2. 元子(Atoms):元子是在Erlang中的另一个数据类型。元子以小写字母开头,元子只是一个简单的名字,其它什么都不是。他们不

像变量可以带有一个值。也可以用单引号括起来声明一个元子,此时可使用大写字母开头或包含其他字符 (类似枚举)

3. 元组(Tuple) - 元素 (类似对象)

C:\Documents and Settings\zhys9>erl

Eshell V5.7.5  (abort with ^G)

1> A=a.

a

2> B=b.

b

3> C={char, A,B}.

{char,a,b}

4> {char, First, Second} = C.

{char,a,b}

5> First.

a

在复杂结构的元组中提取变量的另一种提取方式:(使用匿名变量)

6> {_,First1,_}=C.

{char,a,b}

11> First1.

a

4. 列表 (类似数组)

5. 字符串 必须使用双引号; erl并没有字符串类型,取而代之我们可以提供一个由ASCII字符组成的列表。实际上是一个整数列表;用$a获取字母aASCII码值;

6. 变量在它的上下文(作用域)中,只能赋值一次

7. 函数format/2(format带有2个参数)带有两个列表。第一个列表几乎总是在“”中列出。这个列表原样输出,除了~w被使用第二个参数中的对相的元素替换了。每个~n都是一个新行。io:format/2函数自身返回一个元子ok,如果一切都按计划正确执行的话。

8. 注释%开始,直到本行结束。 如 % comments (意味着不能通%来取模了)

9. 外部函数在一个模块中声明多个外部可访问的函数:-export([fac/1, mult/2]). 另:局部函数无需在此声明

10. 守卫 guard 在《Erlang程序设计》中被称为断言

list_max([Head|Rest], Result_so_far) when Head > Result_so_far ->

list_max(Rest, Head);

list_max([Head|Rest], Result_so_far)  ->

list_max(Rest, Result_so_far).

只有很少一部分的内建函数,可以于用守卫,你也无法在守卫中使用你自己定义的函数。

11. 匿名函数fun

fun可以拥有任意多个参数

1> Fun = fun(A, B) -> A*B end.

#Fun<erl_eval.12.113037538>

2> Fun(2,5).

10

3> Muti=Fun.

#Fun<erl_eval.12.113037538>

4> Muti(3,9).

27

12. 高阶函数:能够返回fun或接受fun作为参数的函数

13. 列表解析

5> Foo = [{2,2},{3,3},{4,4}].

[{2,2},{3,3},{4,4}]

6> [A*B || {A, B} <- Foo].

[4,9,16]

7> lists:sum([A*B || {A, B} <- Foo]).

29

14. 取余数:6 rem 5 值是1; 取整除数: 7 div 2 值是3

fsockopen VS pfsockopen

前几天cyberty说起pfsockopen,我还不是很了解,大家平时用的最多的应该是fsockopen,事实上我基本没用过pfsockopen

那么这两个函数有什么区别呢?先看一下手册上的介绍:

resource fsockopen ( string target [, int port [, int &errno [, string &errstr [, float timeout]]]] )
resource pfsockopen ( string hostname [, int port [, int &errno [, string &errstr [, float timeout]]]] )

两函数的参数完全一致,从手册上能看出来的区别只是一句话It is the persistent version of fsockopen().

或许此时你想到了mysql_connect 和 mysql_pconnect,经验告诉我们mysql_pconnect并没有预期的效果。那么psocketopen会是什么效果呢?

下面我做了几组测试,每组测试时反复50次连接:
socket

给一些说明: 第一行的1~5代表测试次数的序号,fsockopen 和 pfsockopen在各种情况分别测试了5次;其他数字是执行时间(以秒为单位)。
从测试结果来看pfsockopen在同一次请求中大量反复使用的连接具有复用效果,但是在需要获取内容时表现不佳。

总体来看区别不是很大,或许需要更大量的测试数据来支持这一结论。

下面是测试代码,根据需要改动注释代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ini_set("display_errors", "On");
 error_reporting(E_ALL);
 set_time_limit(600);
 $t1 = microtime(true);
 $err = 0;
 
 echo "<pre>\n";
 $func = isset($_GET['p']) ? "pfsockopen" : "fsockopen";
 for ($i = 0; $i < 50; $i++) {
	$fp = $func("www.163.com", 80);
	if(!is_resource($fp)) {
		echo "conn error\n";
		$err++;
		continue;
	}
	fwrite($fp, "GET / HTTP/1.1\r\n\r\n");
	$s = stream_get_contents($fp);
//	fclose($fp);
	echo strlen($s);
	echo "\n";
	flush();
 }
 $t2 = microtime(true);
 echo "time: ".($t2-$t1)."\n";
 echo "err: ".$err;

通过shell+crontab实现自动分割nginx日志

最近有几个朋友问这个事情,干脆写出来吧。。
nginx自身不能按天分割日志,因此还是自己动手来吧~
本文提供的这个脚本会把当前的log文件打包为当前日期为文件名的tgz包,并保存到指定目录。

首先把下面的脚本copy保存为/root/daily_logs.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#! /bin/bash
 
nginx_app=/home/nginx/sbin/nginx #设置nginx的目录
logs_dir=/data/logs/ #log目录
bak_dir=/data/logs/bak/ #log备份目录
 
#先把现有的log文件挪到备份目录临时存放
cd $logs_dir
echo "moving logs"
/bin/mv *.log $bak_dir
sleep 3
 
#重建nginx log
echo "rebuild logs"
echo "$nginx_app -s reopen"
$nginx_app -s reopen
 
#按天打包log文件
echo "begining of tar"
cd $bak_dir
/bin/tar czf `date +%Y%m%d`.tgz *.log
 
#删除备份目录的临时文件
echo "rm logs"
rm -f *.log
echo "done"

并添加执行权限:

1
chmod +x /root/daily_logs.sh

然后增加crontab,这里以每晚0点执行为例:

1
2
[root@localhost ~]# crontab -e
0 0 * * * /root/daily-task.sh > /dev/null 2>&1

保存后退出,以后就可以自动分割nginx的日志啦~

收工。。

很不错的erlang中文手册,适合新手入手

比较好的一个erlang中文手册,适合新手入手。
如果需要请点击这里下载,感谢译者。
注意:需要安装pdf阅读器,如果你不想安装。
请在线查看:http://www.docin.com/p-47521830.html
如果你打算安装一个阅读器,推荐:Foxit

下面摘抄一下文档目录:
目录
译者 注…………………………………………………..I
其它译者………………………………………………….II
第1部分 入门………………………………………………1
1.1 简介……………………………………………….1
1.1.1 简介……………………………………………1
1.1.2 其它方面 ………………………………………..1
1.2 顺序编程 ……………………………………………1
1.2.1 Erlang Shell …………………………………..1
1.2.2 模块和函数 ………………………………………3
1.2.3 元子(Atoms) …………………………………….6
1.2.4 元组 …………………………………………..7
1.2.5 列表 …………………………………………..8
1.2.6 标准模块及用户手册 ……………………………….11
1.2.7 将输出写到终端上 …………………………………11
1.2.8 一个更大的例子 …………………………………..12
1.2.9 变量的匹配、守卫和作用域 …………………………..14
1.2.10 更多关于列表 …………………………………..16
1.2.11 If和Case……………………………………..21
1.2.12 内建函数(BIFs) …………………………………25
1.2.13 复杂函数……………………………………….27
1.3 并行编程……………………………………………29
1.3.1 进程…………………………………………..29
1.3.2 信息传递………………………………………..31
1.3.3 进程名称注册…………………………………….35
1.3.4 分布式编程………………………………………36
1.3.5 一个更大的例子……………………………………40
1.4 [#1]健壮性(Robustness 鲁棒性)…………………………49
1.4.1 超时(Timeouts)………………………………….49
1.4.2 错误处理………………………………………..51
1.4.3 增强健壮性之后的大型例子……………………………54
1.5 [#1]记录和宏(Records and Macros)………………………59
1.5.1 将大型的例子分割在多个文件中…………………………59
1.5.2 头文件(Header Files)…………………………….64
1.5.3 记录(Records)…………………………………..64
1.5.4 宏(Macros)……………………………………..65
第2部分 OTP设计原则………………………………………..66
2.1 概述………………………………………………66
2.1.1 监督树…………………………………………66
2.1.2 Behaviour……………………………………..66
2.1.3 应用…………………………………………..70
2.1.4 发布…………………………………………..71
2.1.5 发布控制………………………………………..71
2.2 Gen_Server Behaviour(文档缺失)………………………..71
2.3 Gen_Fsm Behaviour………………………………….71
2.3.1 有限状态机………………………………………71
2.3.2 实例…………………………………………..72
2.3.3 启动一个Gen_Fsm…………………………………73
2.3.4 事情通知………………………………………..74
2.3.5 超时…………………………………………..74
2.3.6 All状态事件…………………………………….75
2.3.7 停止函数………………………………………..75
2.3.7.1 在监督树中…………………………………..75
2.3.7.2 独立Gen_Fsm…………………………………76
2.3.8 处理其它消息…………………………………….76
2.4 Gen_Event Beheaviour……………………………….77
2.4.1 事件处理原则…………………………………….77
2.4.2 实例…………………………………………..77
2.4.3 启动一个事件管理器………………………………..78
2.4.4 加入一个事件处理器………………………………..78
2.4.5 事件通知………………………………………..79
2.4.6 删除一个事件处理函数……………………………….80
2.4.7 停止…………………………………………..80
2.4.7.1 在监督树中…………………………………..80
2.4.7.2 独占式事件管理器………………………………80目录

linux下erlang之OTP编译安装

在安装otp时遇到了一点问题,整体的安装过程比较简单。

1
2
3
4
wget http://erlang.org/download/otp_src_R13B04.tar.gz
tar xzf otp_src_R13B04.tar.gz
cd otp_src_R13B04
./configure --prefix=/home/erlang

configure之后发现有以下提示信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
*********************************************************************
**********************  APPLICATIONS DISABLED  **********************
*********************************************************************
 
odbc           : ODBC library - link check failed
jinterface     : No Java compiler found
 
*********************************************************************
*********************************************************************
**********************  APPLICATIONS INFORMATION  *******************
*********************************************************************
 
wx             : wxWidgets not found, wx will NOT be usable
 
*********************************************************************
*********************************************************************
**********************  DOCUMENTATION INFORMATION  ******************
*********************************************************************

我们只需要关注APPLICATIONS DISABLED部分的提示信息,至于其他提示信息需要根据使用情况酌情处理。
这里我只需要解决APPLICATIONS DISABLED部分的问题:
1,安装unixODBC和unixODBC-devel,解决第一个问题;
2,因为我这里用不上java编译了,因此可以在configure时增加 –disable-javac 避免第二个错误;

1
2
3
yum install unixODBC unixODBC-devel
./configure --prefix=/home/erlang --without-javac
make && make install

ok, 安装成功了。
下面给erl做一个软连接到/usr/local/bin/,以方便使用

1
ln -s /home/erlang/bin/erl /usr/local/bin/erl

测试一下:

1
2
3
4
5
6
7
8
9
bash-3.2# erl
Erlang R13B04 (erts-5.7.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]
 
Eshell V5.7.5  (abort with ^G)
1> EvenN = lists:filter (fun (N) -> N rem 2 == 0 end, lists:seq (1,100)).
[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,
 44,46,48,50,52,54,56,58|...]
2> halt().
bash-3.2#

注:以上操作在centOS5下完成。