字符串结束字W?\0 ASCII ?0 I格你看不到。ASCII ?32
??xml version="1.0" encoding="utf-8" standalone="yes"?> 在IT领域Q左脑型的思想者具有优ѝ不q,ҎAlan Norton的观察,他们q完美无缺。你是理性超q感性的左脑型思想者吗?上网的时候你潜水过参与?信息成瘾、摇摆不定、优柔寡断、感觉迟?.....你知道这Uh的十宗罪?不过q些|不一定就会遭致罚Q也能得到祝,世界需要他们? 普通h也许会把IT视ؓ极客之家。而我则更喜欢把IT看做分析型思想家的王国。分析型思想者,或者叫做左脑思想者,是直U型的思想者。逻辑而非感情l治着分析者的领地。不擅与人打交道的特D特质得分析型的h电脑玩得很溜。也许这正是Z么IT充斥着那些不擅C交的、更愿意自己出去闲逛也不参加聚会的人的原因?/p>
我本人就是一个高度分析型的h士。这一点对我这些年的分析师/E序员工作很有帮助。但是我也体验过许多分析型h士的不好的地斏V也怽自己也曾l历q一两个q样的分析型思想者之咒?/p>
1: 信息成瘾 对于分析型思想者来_信息再多也不够。他们吞噬着|页上有关万物的一切信息,从天气到最新的高科技玩意Q不一而。他们酷爱在U讨论,但更多时候他们是潜水者而非参与者?他们对Q何类型的数据和事实的胃口都是Ʋ壑隑֡。在购买M技术复杂性超q闹钟的东西的时候,他们会直奔特定的|页。诱人的互联|向他们大声疑֑Q快到我们的自助厅来啊Q一切你能吃的信息这里都有,低? 我能理解q一行ؓ会给一位家庭成员造成怎样真正的困扰。请理解Qhc追求信息是天性?— 只是不像分析型思想者那般强制性Ş了。你来想想看Q沉Z息的癖好也许能解释一个现象,是q些q来我遇C几位IT人士都是脑袋膨胀的?/p>
2: 摇摆不定 大多Ch对于一个有争议的问题往往只看到其中的一面。但是分析型的思想者不是这栗对于他来说QQ何事情都有好和不好的一面,装了一半水的杯子既可以看作是半满的Q也可以视ؓ是半I的。不可避免地Q分析型人士最l都会被一些h视ؓ是末日博士,然后被另一些h看成是乐天派。既是悲观主义者又是乐天派的分析型人士会给朋友(如果他有的话)留下q样的印象,那就是摇摆不定?/p>
3: 优柔寡断 ׃分析型h士喜Ƣ在做出一知情决定前攉可能多的事实,也许会给别h留下优柔寡断的感觉。俚语做点什么,别占着茅坑不拉屎可以用到分析型l理的n上,他们L忙于攉信息Q以至于常常会忽视了q速、明的决策的h倹{?/p>
4: 感觉q钝 曄有一ơ,我向我们的大型机团队成员马克(Mark)解释一个客?服务器系l的一部分。我指着屏幕然后说类似正如你q里所?.....q样的话Q这个手势和q句话只有一个问题:马克Ҏ是瞎的。我当即尬万分Q惊呆了Q一句话都说不出来。要是马克能看东西的话,他一定会看到一张涨得通红的脸Q然后额头上正开始飙汗。这cda不逊的行ؓ对于分析型h士来说ƈ非罕见。我现在已经意识到自己应该有CD地承认自qqQ然后表达歉意,但是当时却说不出q样的话来。现在事情已l过M15q多了,但是马克依然很愉快地接受了我q不敏感的致歉?/p>
5: 因@守旧 你想让我q什?不吃午饭?开玩笑? 不吃饭也完成我项目经理的某些愚蠢的宠物项目o人沮丧。我的血压上M。我的压力激素升高了。是的,我生气了。当他营d不到保障的时候最好不要出现在一位低血p的逻辑学家面前! 让分析型人士打破自己的习惯很隄。他们喜Ƣ按部就班、拒l作出改变。当一个项目启动的时候,左脑型的思想者也许缺乏动机,不过一旦项目开始,他们׃像一头永不停歇的斗牛犬,目不已Q工作不止。这q不是说他们不能接受改变;分析型h士只是不希望别h打扰自己的舒适区?/p>
6: 不擅C交 我曾l跟一位是自己朋友的年d士说她超重了。当Ӟ她的问了我q个问题。我一直都找不到机会跟她说Q她的体重刚刚好?分析性h士很认真——太认真了。苛dƈ非分析型人士的本意,他们只是x供一个诚实的评hQ尽这几乎L会被视ؓ是批评。不q的是,对于意图好的分析型h士来_大家q不喜欢对自q相貌、行为、卫生或脂肪指数{做实的评h。具有讽刺意味的是,q些无意识的、尽也是诚实的评判己往往接受不了批评?/p>
7: 生性多?/strong> 你可以欺骗某些h一世,也可以欺骗所有h于一Ӟ但是你无法欺骗所有h于一世,亚伯拉罕·林肯(Abraham Lincoln)应该说过q句话。在所有h当中Q政客最清楚惌愚弄逻辑型的思想者是很困隄。如果你惌左脑型的思想者说点什么,最好解释清楚ؓ什么他们需要它。分析型人士需要事实,不是感受或诱导性的陈腔滥调?/p>
如果你是试图说服一l程序员的项目经理,惌告诉他们目可以提前2个月完成Q你最好用事实武装自己Q以便ؓ如何实现q样的奇qҎ供支持。要是项目g误了Q几乎可以肯定的是,你将会收到分析型人士冷嘲热讽的反应?/p>
8: 不懂营销 有一样东西o分析型h士成为很好的产品评测者,不过成也萧何败萧何,也正是这个东西得他们不擅营销。他们能够透彻C针见血地洞察到所评测产品的优~点。得C份工作的一w要技能就是自我推销。在其他人对自己的有点夸大其词的时候,分析型h士却不能够。指己喜Ƣ更跟电脑而非人打交道也许是诚实公正的自我解剖Q但是却会被面试者视为污点记录。我知道Q在自我推销斚w自己很弱。我曑֊力改善自q营销技巧。不q如果我能oq成功的话,下次面试的时候我会聘请一位营销专家! 9: 政治错误 当我写作的候,我试图探讨以下这U非常真实的可能性,也许有女性h士正在阅L的沉思录。认识到q一点之后,我试着写下臛_一个的他或奏V事实是Q我把可L排在了政治正确的前面。不对错,我相信,把男女两性都|列q来Q对于耐心的读者来说一定是冗长乏味的。因此女士们Q请原谅我的政治不正吧。有您这L客h我是真的感到非常的荣q?/p>
10: ȝ索居 我们分析型h士宁肯独自跟好书或好电媄共度时光也不愿意跟h呆在一赗从本质上来_qƈ不代表我们不喜欢人。我们只是觉得他们无聊、对他们没感觉、认Z们庸俗而已。对于无所不察无所不知的分析型人士来说Q普|大众就像是《皇帝的新衣》里面的那位皇帝——他们w上什么都没有。我的意思是Q说真的Q上一ơ有人愿意与你讨论相对论或边际效益递减规律是什么时候呢? 归根l底 当然Q分析型人士看v来可能冷h情、感觉迟钝、条理分明,跟史波克先生(Mr.Spock)的性格有点cMQ但是这个世界需要这些特质。毕竟,Z避免一构的NQ我们还需要一位分析型的旅鼠去告诉它其他的朋友Q嘿!伙计Q我可不认ؓ悬崖xq个L很妙?/p>
塞翁失马焉知非福Q每一宗罪也能化ؓ福。因为分析型人士喜欢表格形式的信息,针对上述的十个诅咒,我来l你十条福Q?/p>
每一个诅咒也可被视ؓ一个祝?/p>
下次当你x自己钟爱的分析型人士大喊大叫的时候,请你放他一马吧。那些你认ؓ讨厌的特征对C会来说的确存在U极意义?/p>
作者注Q尽这些特质可能部分或全部适用于我或其他分析型人士Q但是我们可都是复杂的生物体。将q些q于单化的视角加怺所有分析型人士的n上ƈ非我本意?/p> ICMP协议是一U面向连接的协议Q用于传输出错报告控制信息。它是一个非帔R要的协议Q它对于|络安全h极其重要的意义?/font> 它是TCP/IP协议族的一个子协议,属于|络层协?主要用于在主Z路由器之间传递控制信?包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法讉K目标、IP路由器无法按当前的传输速率转发数据包等情况Ӟ会自动发送ICMP消息ICMP提供一致易懂的出错报告信息。发送的出错报文q回到发送原数据的设备,因ؓ只有发送设备才是出错报文的逻辑接受者。发送设备随后可ҎICMP报文定发生错误的类型,q确定如何才能更好地重发p|的数据报。但是ICMP唯一的功能是报告问题而不是纠正错误,U正错误的Q务由发送方完成?/font> 每个ICMP消息都是直接装在一个IP数据报中的,因此Q和UDP一PICMP是不可靠的。虽然ICMP是包含在IP数据报中的,但是对ICMP消息通常会特D处理,会和一般IP数据报的处理不同Q而不是作为IP的一个子协议来处理。在很多时候,需要去查看ICMP消息的内容,然后发送适当的错误消息到那个原来产生IP数据包的E序Q即那个DICMP讯息被传送的IP数据包?/font> 我们在网l中l常会用到ICMP协议Q比如我们经怋用的用于查网l通不通的Ping命oQLinux和Windows中均有)Q这?#8220;Ping”的过E实际上是ICMP协议工作的过E。还有其他的|络命o如跟t\qTracert命o也是ZICMP协议的?/font> ICMP协议对于|络安全h极其重要的意义。ICMP协议本n的特点决定了它非常容易被用于d|络上的路由器和L。例如,?999q?月v信集?#8220;悬赏”50万元人民币测试防火墙的过E中Q其防火墙遭受到的ICMPd?34050ơ之多,占整个攻LL?0%以上Q可见,ICMP的重要性绝不可以忽视! 比如Q可以利用操作系l规定的ICMP数据包最大尺怸过64KBq一规定Q向L发v“Ping of Death”Q死亡之PingQ攻凅R?#8220;Ping of Death” d的原理是Q如果ICMP数据包的寸过64KB上限ӞL׃出现内存分配错误Q导致TCP/IP堆栈崩溃Q致使主机死机?/font> 此外Q向目标L长时间、连l、大量地发送ICMP数据包,也会最lɾpȝ瘫痪。大量的ICMP数据包会形成“ICMP风暴”Q得目标主费大量的CPU资源处理Q疲于奔命?/font> 从技术角度来_ICMP是一?#8220;错误侦测与回报机?#8221;Q其目的是让我们能够检网路的q线状况H也能确保连U的准确性﹐其功能主要有Q?/font> · 侦测q端L是否存在?/font> · 建立及维护\p料?/font> · 重导资料传送\径?/font> ·资料量控制 Type ― 错误消息或信息消息。错误消息可能是不可获得目标文gQ数据包太大Q超Ӟ参数问题{。可能的信息消息有:Echo Request、Echo Reply、Group Membership Query、Group Membership Report、Group Membership Reduction?/font> Code ― 每种消息cdh多种不同代码。不可获得目标文件正式这样一个例子,卛_中可能的消息是:目标文g没有路由Q禁止与目标文g的通信Q非dQ不可获得地址Q不可获得端口。具体细节请参照相关标准?/font> Checksum ― 计算校验和时QChecksum 字段讄??/font> Identifier ― 帮助匚w Requests/Replies 的标识符Q值可能ؓ0?/font> Sequence Number ― 帮助匚w Requests/Replies 的序列号Q值可能ؓ0?/font> Address Mask ― 32位掩码地址?/font> 问题一QIdentifier字段的目的你已经说过了,其实是Ҏq个区分不同的PINGq程?br />
?br />
****************************************************
****************************************************
**** ****
** **
* *
**
**
*****
*****************************************************
*****************************************************ICMP的重要?/span>
ICMP功能
问题二:对于unix以及cunix操作pȝ来说Qicmp Identifier的内容就是ping的进E号Q对于windowspȝ来说Q具体参考如下:
Microsoft Windows NT - 256
Microsoft Windows 98/98SE - 512
Microsoft Windows 2000 - 512
Microsoft Windows ME - 768
Microsoft Windows 2000 Family with SP1 - 768
q里有个比较有意思的问题Q既然windowspȝ的icmp Identifier是固定不变的Q那么系l如何区别不同的Pingq程呢?实际上windowspȝ׃在根据Identifier来区别pingq程了,它是ҎSequence Number field来区分的?br />
与此形成鲜明ҎQ在所有这些城市,到处都是咖啡馆。这里的咖啡馆,不像中国某些资所惌或期望的那样充满情调。其实都很普通,cM于中国的饭馆。只是随着城市攚w,中国的小饭馆逐渐消失。咖啡馆则在高楼大厦中生长出来,q有一些集中的所谓咖啡馆街,比如说北京三里屯、后但它们从一开始,I漫着暧昧的气息。欧zԌ咖啡馆却仍然像中国原来的饭馆。同h把桌子摆在门外,客h们则悠然地在q里消磨旉Q也不?#8220;城管”来掀台?
当然Q除了看Ch们不在街上,我们q不知道Ƨ洲人在星期天、在下班之后在做什么,但M上,q是能够感受到欧zh的悠闌Ӏ这让我们这匆匆忙忙的中国游客感受很深。当代中国h的生z,几乎每个人,都可用一个字来概括:忙。甚臌乞丐、流汉Q都忙着闯红灯去办事?
因ؓ忙不q来Q所以,国h拼命地g长工作时间。在中国Q小店铺的业主自不用_他们通常每天开业十六小时以上;南方各种刉工厂的外来力_的工作时间之长,也是Z名的Q看h光鲜的白领们Q也几乎普遍地被强制、半强制加班Q以至于加班变成了一U生zL式,如果不加班,白领们反而不知道该干什么了。当Ӟ新闻媒体也告诉我们,老板们是多么地辛苦,而领g又是如何地日以夜地操劳?
MQ大U除了乡村的留守人员之外Q生zd城市中的各个C会体都十分忙。当ӞZ的这U忙,只有一个目的,叔Rq早p得清清楚楚:天下熙熙Q皆为利来;天下攘攘Q皆为利往。大安x钱。说到钱Q恐怕不能不_忙碌的挣qz,已经在一定程度上改变了中国h的心智结构。根据我的观察,Ƨ洲人的̎技能似乎不如中国h。在中国Q哪怕没有受q什么高深教育的商贩,也有很高的心技艺。在Ƨ洲Q收银员们进行心似乎有点费劌Ӏ?
单地_短暂的旅行过E中的肤观察让我觉得,中国人对于钱比欧zh更ؓ热衷Q也愿意拿出生命中的大部分时间用于挣钱。整个生命的节奏被挣qƲ望驱动Q而比Ƨ洲人快得多Q生zM显得忙忙碌。前些年老有Q现代化意味着生活节奏加快Q但臛_在欧zԌq如此。在q个高度成熟的现代化世界Qh们的生活节奏昄慢于中国?
有h会说Q中国hq很IP所以必L命工作,才能改善境遇。但是,怿国内很多白领的收入,未必低于中欧相应体。很多h也一向盲目地怿Q上世纪九十q代以来中国的境遇大大地好于中欧。很昄Q这U认知ƈ没有让中国h把生命的脚步放慢一炏V?
所以,忙碌与绝Ҏ入、相Ҏ入水qx养I而是由其他因素决定的。可能是文化Q比如,׃~Z宗教_Q中国h普遍hҎ蒂固的物质主义們Q在仅有的一些宗教传l被销蚀之后的当代尤甚。也可能是制度。如果社会的各种制度安排让h觉得未来不可预期Q那合理的对{就是尽可能抓紧当下的时_拼命赚钱Q好让自己在那难以预料的未来有一块立脚之地?
从这个角度看Q中国h的忙其实是一U强q症Q是透支生命的无奈。由于未来的不可预期性,单位旉的生命hD低估Qh们只能通过 “拼命”来提高生命的价值生产力Q而文化则让中国h选择了通过w外之物来嘪昄命的价倹{心为物蔽,对生命内在h值的体会、追索,反而成Z可能
q几天,我和学生在网上有了比较深层次的交,大部分的同学都告诉我Q他们在学习上有些障?#8211;学习的成果不彎ͼ同学们很清楚Q是自己的动力和毅力不有关Q今晨,我在公园跑步的时候,脑子里反复思考这个问题,同时Q也自q思\拉到30q前。自己在17,8岁的时候,也是个学习很差的子Q不p书,每天费自己的时间。到?0岁进了部队,22岁退伍,l箋工作Q每天没有生zȝ的活着Q一直到?5岁时Q才因ؓ一件事情的触发Q让我重新拾回课本,然后是专科夜间部,以及q入世界500强公司,以及获得2个硕士学位,让自己和家庭食无虞的成果?/p>
是什么事情触发了我有q么大的改变呢?是我在工作的时候,感受到自q“不入?#8221;。什么意思呢Q就是我在工作的时候感觉到没有被别人尊重!我在医院里头做医技人员Q穿着蓝领白袍Q跟ȝ的白领白袍只有些许的差别Q但是病人和同事遇见我和ȝQ态度是南辕北撤的。我感觉自己不被重Q也深深地思考要怎么h能被重Q有位博士医生在闲聊中提醒了我,可以再读书充实自己啊Q把自己的社C再提升v来啊Q?/p>
真是一语惊醒梦中hQ这道理我不是不懂,只是因ؓ之前不懂事和怠惰蒙蔽了我的心c当下我才真正的明白Q没有一番苦d付出Q是没有甜蜜的果实可以吃的,也不会得到别人打从心里真正的重的!pP我进入了前后十年的半工半dd?#8220;蜡烛五头?#8221;奋斗阶段。蜡烛五头烧Q就是我w兼五职Q儿子、丈夫、父二Ӏ学生、部属。到了后来,甚至变成蜡烛六头烧,因ؓ多了一个n份:ȝQ?/p>
累吗Q篏Q爽吗?爽!Z么会有这L学习动力和动力呢Q我视自己,大概是《礼?中庸》里头说的:”知耻近乎勇“吧?Q?/p>
#include <pthread.h> |
Returns: 0 if OK, error number on failure |
C99 中新增加?restrict 修饰的指针: ?restrict 修饰的指针是最初唯一Ҏ针所指向的对象进行存取的ҎQ仅当第二个指针ZW一个时Q才能对对象q行存取。对对象的存取都限定于基于由 restrict 修饰的指针表辑ּ中??restrict 修饰的指针主要用于函数Ş参,或指向由 malloc() 分配的内存空间。restrict 数据cd不改变程序的语义?~译器能通过作出 restrict 修饰的指针是存取对象的唯一Ҏ的假设,更好C化某些类型的例程?/p>
W一个参Cؓ指向U程标识W的指针?br />W二个参数用来设|线E属性?br />W三个参数是U程q行函数的v始地址?br />最后一个参数是q行函数的参数?br />
下面q个E序中,我们的函?code>thr_fn不需要参敎ͼ所以最后一个参数设为空指针。第二个参数我们也设为空指针Q这样将生成默认属性的U程。当创徏U程成功Ӟ函数q回0Q若不ؓ0则说明创建线E失败,常见的错误返回代码ؓEAGAIN和EINVAL。前者表C系l限制创建新的线E,例如U程数目q多了;后者表C第二个参数代表的线E属性值非法。创建线E成功后Q新创徏的线E则q行参数三和参数四确定的函数Q原来的U程则l运行下一行代码?
|
pthread.c:(.text+0x85)Q对‘pthread_create’未定义的引用
gcc -o pthread -lpthread pthread.c
q是一个关于PosixU程~程的专栏。作者在阐明概念的基上,向您详l讲qPosixU程库API。本文是W一将向您讲述U程的创Z取消?/blockquote>
1Q? U程与进E?/span>
相对q程而言Q线E是一个更加接q于执行体的概念Q它可以与同q程中的其他U程׃n数据Q但拥有自己的栈I间Q拥有独立的执行序列。在串行E序基础上引入线E和q程是ؓ了提高程序的q发度,从而提高程序运行效率和响应旉?/p>
U程和进E在使用上各有优~点Q线E执行开销,但不利于资源的管理和保护Q而进E正相反。同ӞU程适合于在SMP机器上运行,而进E则可以跨机器迁UR?/p>
1Q? 创徏U程
POSIX通过pthread_create()函数创徏U程QAPI定义如下Q?/p>
与fork()调用创徏一个进E的Ҏ不同Qpthread_create()创徏的线Eƈ不具备与ȝE(卌用pthread_create()的线E)同样的执行序列,而是使其q行start_routine(arg)函数。threadq回创徏的线EIDQ而attr是创建线E时讄的线E属性(见下Q。pthread_create()的返回DC线E创建是否成功。尽arg是void *cd的变量,但它同样可以作ؓLcd的参Clstart_routine()函数Q同Ӟstart_routine()可以q回一个void *cd的返回|而这个返回g可以是其他类型,q由pthread_join()获取?/p>
int pthread_create(pthread_t * thread, pthread_attr_t * attr,
void * (*start_routine)(void *), void * arg)1Q? U程创徏属?/span>
pthread_create()中的attr参数是一个结构指针,l构中的元素分别对应着新线E的q行属性,主要包括以下几项Q?/p>
__detachstateQ表C新U程是否与进E中其他U程q同步Q如果置位则新线E不能用pthread_join()来同步,且在退出时自行释放所占用的资源。缺省ؓPTHREAD_CREATE_JOINABLE状态。这个属性也可以在线E创建ƈq行以后用pthread_detach()来设|,而一旦设|ؓPTHREAD_CREATE_DETACH状态(不论是创建时讄q是q行时设|)则不能再恢复?PTHREAD_CREATE_JOINABLE状态?/p>
__schedpolicyQ表C新U程的调度策略,主要包括SCHED_OTHERQ正常、非实时Q、SCHED_RRQ实时、轮转法Q和 SCHED_FIFOQ实时、先入先出)三种Q缺省ؓSCHED_OTHERQ后两种调度{略仅对用户有效。运行时可以用过 pthread_setschedparam()来改变?/p>
__schedparamQ一个struct sched_paraml构Q目前仅有一个sched_priority整型变量表示U程的运行优先。这个参C当调度策略ؓ实时Q即SCHED_RR 或SCHED_FIFOQ时才有效,q可以在q行旉过pthread_setschedparam()函数来改变,~省??/p>
__inheritschedQ有两种值可供选择QPTHREAD_EXPLICIT_SCHED和PTHREAD_INHERIT_SCHEDQ前者表C新U程使用昑ּ指定调度{略和调度参敎ͼ即attr中的|Q而后者表C承调用者线E的倹{缺省ؓPTHREAD_EXPLICIT_SCHED?/p>
__scopeQ表C线E间竞争CPU的范_也就是说U程优先U的有效范围。POSIX的标准中定义了两个| PTHREAD_SCOPE_SYSTEM和PTHREAD_SCOPE_PROCESSQ前者表CZpȝ中所有线E一L争CPU旉Q后者表CZ与同q程中的U程竞争CPU。目前LinuxThreads仅实CPTHREAD_SCOPE_SYSTEM一倹{?/p>
pthread_attr_tl构中还有一些|但不使用pthread_create()来设|?/p>
Z讄q些属性,POSIX定义了一pd属性设|函敎ͼ包括pthread_attr_init()、pthread_attr_destroy()和与各个属性相关的pthread_attr_get---/pthread_attr_set---函数?/p>
1Q? U程创徏的Linux实现
我们知道QLinux的线E实现是在核外进行的Q核内提供的是创E的接口do_fork()。内核提供了两个pȝ调用__clone()和fork ()Q最l都用不同的参数调用do_fork()核内API。当Ӟ要想实现U程Q没有核心对多进E(其实是轻量q程Q共享数据段的支持是不行的,因此Qdo_fork()提供了很多参敎ͼ包括CLONE_VMQ共享内存空_、CLONE_FSQ共享文件系l信息)、CLONE_FILESQ共享文件描q符表)、CLONE_SIGHANDQ共享信号句柄表Q和CLONE_PIDQ共享进EIDQ仅Ҏ内进E,?可E有效)。当使用forkpȝ调用Ӟ内核调用do_fork()不用Q何共享属性,q程拥有独立的运行环境,而用pthread_create()来创建线E时,则最l设|了所有这些属性来调用__clone()Q而这些参数又全部传给核内的do_fork()Q从而创建的"q程"拥有׃n的运行环境,只有栈是独立的,?__clone()传入?/p>
LinuxU程在核内是以轻量q程的Ş式存在的Q拥有独立的q程表项Q而所有的创徏、同步、删除等操作都在核外pthread库中q行。pthread 库用一个管理线E(__pthread_manager()Q每个进E独立且唯一Q来理U程的创建和l止QؓU程分配U程IDQ发送线E相关的信号Q比如CancelQ,而主U程Qpthread_create()Q的调用者则通过道请求信息传l管理线E?/p>
2Q? U程取消的定?/span>
一般情况下Q线E在其主体函数退出的时候会自动l止Q但同时也可以因为接收到另一个线E发来的l止Q取消)h而强制终止?/p>
2Q? U程取消的语?/span>
U程取消的方法是向目标线E发Cancel信号Q但如何处理Cancel信号则由目标U程自己军_Q或者忽略、或者立即终止、或者l运行至Cancelation-pointQ取消点Q,׃同的Cancelation状态决定?/p>
U程接收到CANCEL信号的缺省处理(即pthread_create()创徏U程的缺省状态)是l运行至取消点,也就是说讄一个CANCELED状态,U程l箋q行Q只有运行至Cancelation-point的时候才会退出?/p>
2Q? 取消?/span>
ҎPOSIX标准Qpthread_join()、pthread_testcancel()、pthread_cond_wait()?pthread_cond_timedwait()、sem_wait()、sigwait(){函C及read()、write(){会引vd的系l调用都是Cancelation-pointQ而其他pthread函数都不会引起Cancelation动作。但是pthread_cancel的手册页声称Q由于LinuxThread库与C库结合得不好Q因而目前C库函数都不是Cancelation-pointQ但CANCEL信号会ɾU程从阻塞的pȝ调用中退出,q置EINTR错误码,因此可以在需要作为Cancelation-point的系l调用前后调?pthread_testcancel()Q从而达到POSIX标准所要求的目标,卛_下代码段Q?/p>
pthread_testcancel();
retcode = read(fd, buffer, length);
pthread_testcancel();2Q? E序设计斚w的考虑
如果U程处于无限循环中,且@环体内没有执行至取消点的必然路径Q则U程无法由外部其他线E的取消h而终止。因此在q样的@环体的必l\径上应该加入pthread_testcancel()调用?/p>
2Q? 与线E取消相关的pthread函数
int pthread_cancel(pthread_t thread)
发送终止信LthreadU程Q如果成功则q回0Q否则ؓ?倹{发送成功ƈ不意味着thread会终止?/p>
int pthread_setcancelstate(int state, int *oldstate)
讄本线E对Cancel信号的反应,state有两U|PTHREAD_CANCEL_ENABLEQ缺省)?PTHREAD_CANCEL_DISABLEQ分别表C收C号后设ؓCANCLED状态和忽略CANCEL信号l箋q行Qold_state如果不ؓ NULL则存入原来的Cancel状态以便恢复?/p>
int pthread_setcanceltype(int type, int *oldtype)
讄本线E取消动作的执行时机Qtype׃U取|PTHREAD_CANCEL_DEFFERED?PTHREAD_CANCEL_ASYCHRONOUSQ仅当Cancel状态ؓEnable时有效,分别表示收到信号后l运行至下一个取消点再退出和立即执行取消动作Q退出)Qoldtype如果不ؓNULL则存入运来的取消动作cd倹{?/p>
void pthread_testcancel(void)
查本U程是否处于Canceld状态,如果是,则进行取消动作,否则直接q回?/p>
在最q接受《赫芬顿邮报》采访时Q斯蒂芬·l茨表示Q?#8220;在过d二年里,搜烦本nq未发生Ҏ改变。传l搜索即失败,搜烦的标准理念,卛_面和链接中L文字不再有效?#8221;
l茨q具体针对谷歌发表了看法。他表示Q谷歌通过|站之间的联pL军_搜烦l果排名曄是一U非怼U的模式,但是已经不再适用。他表示Q现在搜索公司应当满用L新需求?/p>
Z实现q一目的Q微软本周早些时候推Z必应搜烦的新功能Q利用Facebook?#8220;?#8221;按钮来改q用L搜烦l果。例如,如果用户希望L所在城市的饭店Q必应搜索将把这名用户Facebook好友“?#8221;q的饭店攄于搜索结果页面的上方。不q要使用q一新功能,用户必须旉d必应和Facebook账户?/p>
l茨在本周早些时候的一份声明中表示Q?#8220;我们努力把q种情感理念整合到搜索结果中?#8221;
不过微Y采取的措施ƈ不局限于此。维茨介l说Q必应对于未来搜索的目标是:“通过理解意图Q准提供知?#8221;。他向《赫芬顿邮报》表C,最l微软希望简化搜索结果内容,以尽可能快速和无缝的方式ؓ用户提供所需的信息?/p>
h的新功能
当然Q谷歌也没有停滞不前。今q早些时候,h推出?1实验功能Q允许用h荐搜索结果。这功能非常类gFacebook?#8220;?#8221;按钮Q有助于搜烦同一主题的用戯得更好的l果?/p>
q项功能推出时谷歌官方博客表C:“+1功能的美妙之处在于其相关性。用户可以在正确的时_当用L实需要有兌一主题的信息之Ӟ、以正确的方式(用户的搜索结果)获得正确的推荐(因ؓq些推荐来自于有同样信息需求的ZQ?#8221;
不过必应需要担心的不仅仅是h的新功能。市研公司comScore发布的数据显C,今年4月䆾Q谷歌在国搜烦市场拥有65.4%的䆾额,必应的市Z额ؓ14.1%Q雅虎的市场份额?5.9%?/p>
记者:您是怎样走向创业q来条\的?
郭欣Q一直以来,我都感觉创业是一U与生俱来的情结Q有的h骨子里就创业视为生z,我可能就这Uh。ƈ不需要什么都懂才开始创业,但一定要有一U敢x做的_。创业是一U特质,能渗透到你的血液中Q创业也是一U宿命,你得攑ּ一些东ѝ我不记得第一ơ萌生创业念头的旉Q因生念头和实际创业是两回事。想想那大概是初中第一ơ见到WPS的时候,当时或多或少q道自己未来也得折腄似的东西了。高中热h戏之后,也想自己开发游戏;看到国内没有Web架构和性能优化cȝ原创书籍Q就自己写一本。不明白Z么L有想自己搞一个的念头Q大概因q梦只能由自己来实现?span id=more-6081>
记者:您如何看待云计算所酝酿的商机?
郭欣Q看待Q何商机,首先要看能否l你的用户带来h|以及所处行业的发展势Q而云计算只是一U实现商业h值的工具。因为我们针对的是企业用P所以用户h值更多体现在能否帮助用户降低成本、提高效率。如果脱M具体行业和用户h|谈论云计毫无意义。结合行业来看,我认为国内有很多Z来做SaaSQ比如监控宝是针对网站性能监控领域的云服务产品。我们的监控宝是首款SaaS产品Q目前取得了不错的成l,正在保持E_的业l增ѝ虽然与其他面向最l用L应用相比Q监控宝的市场容量相Ҏ限,但对于一ƾ轻量的SaaS应用来说Q这是一个以立的切入点,有可能带来更多探索SaaS的机会?span style="COLOR: #333300">
记者:您认己在创业斚w的最大优势是什么?发展q程中,有哪些印象最q事情Q?/strong>
郭欣Q因为我个h做过技术和产品Q也懂性能优化Q同时我们团队也在技术方面有一定的U篏Q所以我们的最大优势在于懂用户Qƈ且用心做产品。我觉得q是创业最重要的前提。懂产品归根l底是要懂用P因ؓ产品只是一U工P服务才是目的Q服务的目的q是要给用户带来真正的h|如果不懂用户Q一切都毫无意义。监控宝的用户就是技术、运l工作者,因此我自己在相当长时间内都充当品设计师的角Ԍ首先要设计出自己能够满意的品。监控宝创立之初Q我们就坚持一个原则,那就是让产品单,而且是无与u比的单。所以我们在产品规划、交互设计以及定h型上都倾注了大量的心血。我们有很多用户q去都在使用其他监控pȝQ但他们最l选择了监控宝Q理由就是我们的产品_单实用。事实上Q简单可以带来数不清的好处,但同时也会考验你的坚持Q会有一些用h怨没有他所需要的功能。有声音是好的,但你必须有够的判断力和直觉Q你要坚持原则,因ؓ你提供的是SaaSQ而不是定制YӞ你要Ҏ有的用户负责Q而不能ؓ了取悦个别用戯给大部分用户制造噪韻I因ؓSaaS依靠的是长尾效应Q而不?8法则?/p>
记者:从技术创业到理公司Q您个h的思想是怎样转变的?
郭欣Q技术和理都不是创业者最头疼的,归根l底Q我们最头疼q是l营问题。这U{变需要一个过E,也是个h商业感觉的不断提升,公司的成长便是最好的驱动力,所需要I补的知识也是不容忽视的。创业者的学习能力必须非常强,借助互联|你可以让自׃断成长,同时也要会借助团队和各U资源的力量Q这些都是{型过E中必不可少的?/p>
作者简介:郭欣Q监控宝创始人,《构建高性能Web站点》作?/p>
云计,q种正以指数U速度增长的技术,已经渐渐渗透到IT界的每一个角落,深刻影响着Z的生zR一些敏锐的技术h员不甘寂寞,准确地挖Z潜伏的创业机会,t上了创业的征程。本刊记者近日采访了三位云计创业者,请他们分享自q创业U籍。本文ؓ三篇专访之第二篇?/p>
记者:您第一ơ创业的念头是什么时间开始的Q是什么原因促成了q个念头Q?/strong>
范渊Q?000q开始我在硅LArcSight公司做信息安全,从最开始的核心研发工作做到后来的主。因为硕博课题正好涉?br>Web安全Q所以我意识到Web安全、数据安全市场的潜力非常巨大Qƈ且有很好的趋势,所以在2006q我׃生了回国创业的念头。同q_我和几个朋友选择在杭州的滨江高新区开始创业。滨江高新区的徏讑֒布局跟硅谯是有点儿像的Q不是很拥挤Q但是缺Ҏ杭州的信息安全h才相对于北京、上广州这些城市来说不占优ѝ我q算比较q运的,在公司发展的q五q中Q不是巧合Q还是因为我们的努力Q很多h才能够聚在一赗我觉得q点很重要。现在公怸务也在慢慢地做大Q发展也很快。另外我惌的是每个公司初创的时候都会遇到很多困难,当遇到困难时首先要坚持,q需要够的专注Q机会还是会向于努力者倾斜?strong>
记者:您认Z计算的到来对于信息安全意味着什么?
范渊Q云计算的发展应该说是给信息安全带来了一个巨大的ZQ哪怕先抛开公有云的概念Q我们自q专网Q我们自q|络Q我们自q在线pȝQ可能都存在很大的问题。那么现在呢Q我们会以一个云的方式来q行相关的资源调用、相互通信、数据分散等问题Q云本n的安全问题就昑־ؓ重要Q因为数据有可能会存储在不同的云中,所以保证云中数据的隐私性以及不被篡Ҏ能保证数据安全。在我看来这些因素对我们是一个很好的发展契机Q因为我们所专注的Web安全和云安全本n是紧密联系的?span style="COLOR: #333300">
记者:相对于其他行业,信息安全q不是最赚钱的,您认为安全行业的创业需要注意什么?
范渊Q安全行业肯定不是最Ҏ赚钱的。站在整个中国投资者的角度来看Q很多投资者也不会选择q个行业q行投资。安全行?br>的创业需要注意两个方面:要够专注、将C会责Q感和l济价值充分结合。我们非常看中社会责Lq方面,像北京奥q会、上世博会的信息网l安全保障工作,我们都参与ƈ贡献了自q力量Q我觉得参加q些zd本n对安恒就是一个很好的提升?/p>
记者:从做技术到理公司Q您都遇到哪些挑战?您的创业初衷有变化吗Q?/strong>
范渊Q对我来_理实是一个不的挑战。就像你说的Q我本n走的是技术\U,现在的角色从技术者{变ؓ理者,所以我要求自己要与时俱q,保持不断q步的状态。此外,我意识到需要一个很好的核心团队。在核心团队的徏设中Q只有不断引入新的h才和资源Q才能保持生命力和竞争力Q而这是一个需要时间积累的q程。在创业初衷q点上,我可以自豪地说自己当q最初的x是专注Web安全Q尽当时是比较_的设想Q但现在来看当初选择q条道\实是正的。更为有的是,云安全市模的扩大可能出当初的想象,其像现在云计算、物联网所带来的应用安全、数据安全的市场要大于当初纯_互联网的市场?/p>
记者:在您看来Q国内创业环境适合公司的发展吗Q?/strong>
范渊Q我觉得目前国内创业的大环境是非常良好的Q创业园区的支持工作也做得非常到位,因此我们可以集中_֊来把自己专注的品和市场做好。同Ӟ我认为创业也需要国家的其他支持Q比如对知识产权的保护,如果q方面做得不够的话,肯定会潜U默化地扼杀一些有创新力的、有真正技术含量的公司。希望在中国良好的创业环境背景下Q我们都能够向创业板发展?/p>
作者简?strong>Q范?/strong>Q安恒信息技术有限公司总裁?/p>
Q本文选自《程序员》杂?1q?5期,更多_ֽ内容敬请x05期杂志)
倪光南中国工E院院士
国和欧盟的实践告诉我们QIT领域的重大反垄断行动往往都由政府dQ所以中国政府需要采取措施打破桌面领域的垄断?/p>
2008q_中国发生了震惊全国的“黑屏”事gQ微软公司将无数的用盗版Windows的中国用L脑屏q背景变黑,此事l中国的信息安全?响了警钟Q说明了使用q口软g有重大安全隐患。ؓ保障信息安全Q我们必M用自d控的软gQ特别是自主可控的基软g。但实践表明Q由于Windows 垄断了桌面操作系l,国操作pȝ{基软g很难通过U市行推qѝ?/p>
2010q底Q俄联邦政府ȝ普京{v命oQ批准了俄联邦行政机构在2011q至2015q期间将其信息系l{用自pY件的预算计划?/p>
q个五年计划是借助行政命o其信息pȝ从用私有Y件{换到使用自由软g。该计划首先了对联邦公务员的教育和培训,因ؓ推广开源Y件的最 大障往往不是来自于技术方面,而是来自于h们的观念和用习惯。计划详l规定了在五q中需逐步实施?4Ҏ术Q务,从易到难Q@序渐q,每一w有明 的目标、实施期限和责Q部门Q操作性强。此外,计划q规定了财会{非技术方面的支持Qƈ要求Z一个l推q自pY件的计划制订新的俄政府命令草案,?它作Zw期的d贯彻下去?/p>
俄联邦政府通过此项命ol我国的信息安全以一定的启示Q政府等重要信息pȝ要从Zq口软g转换到基于自d控的国软gQ理由有两方面:一?保障信息安全。据报道Q不久前Q伊朗国内大U有3万个互联|终端感染Stuxnet蠕虫病毒Q甚臛_什核늫一些工作h员的个h计算机都感染了这U病 毒,q说明信息系l采用进口Y件有重大安全隐患Q政府部门有必要为加Z息安全而{用自d控的国软g。二是要打破跨国公司软g的垄断,其是在桌面?作系l领域?/p>
q年来,随着云计、移动互联网、SaaS{新一代信息技术的发展Q在Ud通信领域Q开源^台已占据优势Q在云计后台、服务器和网l操作系l等领域也呈C多种pȝ竞争q存的格局Q只有桌面领域仍被Windows所垄断?/p>
目前Q我国有U?亿台桌面PCQ新一代信息技术虽焉低了桌面PC的地位ƈ减少了{换桌面操作系l的隑ֺQ但桌面操作pȝ的垄断仍需打破Q否 则,政府{重要信息系l就不可能{换到国软g上来。美国和Ƨ盟的实践告诉我们,IT领域的重大反垄断行动往往都由政府dQ所以中国政府需要采取措施打 破桌面领域的垄断。当前,我们的有利条件是Q?#8220;栔R?#8221;重大专项已作了相应部|Ԍ中国已完全具备条件推q基于开源Y件发展v来的、自d控的桌面操作pȝ?/p>
当然Q中俄两国的国情不同。中国Y件与信息服务业的规模和自d新能力都过俄国Q在2010q_中国实现了Y件业务收?3364亿元Q占?界市Z额约14%。鉴于此Q我国有关部门和业界历来d政府{重要信息系l应采用国软gQ其内涵比俄政府命o所指的自由软g更广Q包括了自主开发的?件以及本国厂商发行ƈ提供服务的开源Y件?/p>
然而实践表明,~Z行政措施的支撑,q种d难以实施。对此,政府采购也几乎无于事,q是因ؓ我国政府采购对外商投资企业和中资企业在中国开 发生产的产品一视同仁,q等对待Q因此,如何界定“国货”是个关键。早?004q底有关部门已拟定:国软g是在中华人民共和国境内最lŞ成,且在国内 的开发成本不低于d发成本的50%的YӞ但后来ƈ未实施,致国软g的界定至今仍无据可依?/p>
此外Q我国《反垄断法》发布不久,q缺乏配套法规和实施l验Q三个实施部门之间也~Z协调机制Q因此我国《反垄断法》的作用q不易发挥。在q种情况下,可以考虑采取俄国那样的行政措施来推进国软g和服务?/p>
哪些技能呢Q下面就列出q?0Ҏ能,看看你符合h值百万的前段开发者的队伍中嘛Q?/p>
现在的开发工P有用的开发工h以千计。快速掌握新工具是你的首要技能。比如:Kissmetrics\Usabilla\Padi Act?/font>
墨守成规Q可不是前端开发者应有的素质?/p>
大部分的前端开发者需要从开发者那里获得帮助,所以良好的沟通技能不可或~,在没有品经理的情况下更是如此?/p>
前端开发者的工作之一是保证站点的前端代码Q那么应用如何工作的Q那必要知道了。更Ҏ优化JS代码Q你需要有q个能力?/p>
前端开发者对设计要有感觉Qƈ且可以再利用原有的设计。当然你也许有做Photoshop或HTML/CSS的高手,但是他们也都是很E~的。所以前端开发者要对设计有那么一定的感觉?/p>
很努力的优化、测试,但很多时间也会得到糟p的l果。这p求前端开发者敢于测试,甚至明知道可能会p|。要拿出令h信服的数据来Q可有效规避让你的老板涉入其中Q那非常糟p?/p>
不同的web|站都有转化率的要求Q这只是老板x的?No。某些时候{化率的提升将遇到dQ而变得很困难。这时候前端开发者需要大胆的试。作个职位,你应该喜Ƣ{化率提升的请求,否则你将会失dq?.1%的动力?/p>
速度很重要,Google已经速度加入C搜烦排名的因素当中。有的网站已l很快,alexa或其他分析工h许是如是l果Q但是Google可能说它太慢。速度性能优化Q必L握!
原型设计的需求,不仅仅是团队分n一个观炏V快速的原型设计能力Q将让你更好的把控web交互、思想d传播。所以,_N一仉手的原型设计工具吧,推荐q入OSCHINA?a >界面原型设计工具分类q行选择?/p>
前端开发的重视度将过Q或许已l超q)后端开发,你不觉得吗?前端开发者将来重要。确保你掌握了上q的10Ҏ能,那么你离百万富翁不远了?/p>
原文出处Q?a target=_blank>10 Skills to Become a Frontend Developer worth Millions
译文出处Q?a target=_blank>10Ҏ能让前端开发者h值百?/font>
字符串结束字W?\0 ASCII ?0 I格你看不到。ASCII ?32
字符串结束字W?\0 ASCII ?0x00 I格。ASCII ?0x20
DQ谷歌是q十q来最为成功的U技公司Q美国科技博客Businessinsider周四撰文分析了创始h谢尔?#183;布林(Sergey Brin)和拉?#183;佩奇(Larry Page)让谷歌成为科技巨头?3U妙招?/span>
以下是文章全文:
q去十年Q谷歌成Z众多公司d的对象?/p>
hq箋多年蝉联最佳雇主,成ؓq轻专业人士最向往的公司,他们的名字也一直和搜烦联系在一赗?/p>
那么佩奇和布林是如何使谷歌成为科技巨头的呢Q以下是他们使用q的13U妙招:
选择不喜Ƣ的商业伙伴
W一印象往往是错误的。如果佩奇和布林仅通过W一印象来判断对方的话,如今的谷歌可能就不存在了?/p>
?995q的斯坦大学博士生校园游览中,布林是佩奇的向导Q但是双方在游览期间一直在争吵?/p>
但是是q两个h共同研究?#8220;剖析大型文本网|索引?#8221;目Q这也是h建立的基?/p>
q不试开办公?/strong>
佩奇当时在斯坦福大学Q他遭遇C|页的困扰。在他看来,大部分网都有它的前q链接,q很好操作,但是用户却不知道它的后退链接Q于是他想办法扑ֈ|页的后退链接?/p>
q个目是日后知名的BackRubQ谷歌的雏Ş?/p>
用户是营销工具
如果你打造了一Ƒ֥产品Q用户就肯定乐于讨论它?/p>
布林?000q表C:“我们实际上依靠用h帮助我们的营销Q大部分用户l常告诉其他人有x们的产品信息Q这极大帮助了谷歌。谷歌自1998q徏立以来,h的网站流量每月增?0%多?/p>
口头传播成ؓhq告业务的主要方式,直到2009q他们推出首个电视商业广告?/p>
重视研发
2000q_h拥有150名员工,其中一半以上ؓ工程师和研发人员、布林表C:“我们在研发上投入巨大?#8221;
研发上的巨大投入引入也帮助谷歌取得成功,q开拓了除搜索以外的其它业务?/p>
不作?/strong>
h控制着Z的大量信息资源,q努力承担vC会责Q?/p>
佩奇?999q接受采访时表示Q?#8220;搜烦引擎在h们生zM发挥着重大作用Q它军_了h们想要看到的信息Q用户需要相信ؓ他们提供的信息的人。我们所做的事情必须是正的Q有道d的?#8221;
用简单的词语形容h的行为方式就?#8220;不作?#8221;?/p>
׃是唯一Q要做到最?/strong>
布林?999q接受采访时表示Q?#8220;我们要达到雅虎、亚马逊和AOL的水准,q希望在搜烦领域成ؓW一Q如果你所做的事情正确Q你每天׃q步一大块?#8221;
佩奇?006q接受采访时表示Q?#8220;如果我们只能被金钱所Ȁ励,那么我们很早之前已l将公司卖掉了?#8221;
做出让h担忧的决?/strong>
佩奇和布林从来不x与公众舆论做斗争,布林在谈邮g扫描时称Q?#8220;当h们首ơ听到这功能时Q可能真的很担心Q但是事实不是如此,我们为的是让q告能够和你阅读的信息更加匹配,没有Z阅读到邮件内宏V?#8221;
现在Gmail被看做是互联|上最好的邮g服务?/p>
做最单的产品
很多公司希望用户能够停留在他们的|站上,可能久的用他们的产品?/p>
但是佩奇和布林希望用戯够进行快速搜索,扑ֈ他们所需要的东西后迅速离开。佩奇表C:“我们希望用户使用hQ我们的搜烦能够成功你带到其它的网站。这是最重要的事情?#8221;
让谷歌融入h们的日常生活
当h们需要某U品时Q他们就会对q种产品更加忠诚?/p>
佩奇表示Q?#8220;我们是Z日常生活的一部分Q就像刷牙一Ph也已l被接受成ؓ了h们日常生zȝ一部分?#8221;
有趣的公司文?/strong>
h总部拥有有趣的公司文化,公司员工可以享受滑梯、自行R、踏板R和玩兗?/p>
佩奇表示Q?#8220;我们Z保持公司文化做了很多努力Q我们的公司更像是一个包装过的大学校园,而不是典型的郊区办公园区?#8221;
举行TGIFz֯
hq行的是人性化理Q每周五都要举行z֯Q称作TGIF(Thank God It ’ s Friday)大会?/p>
佩奇表示Q?#8220;当我们拥?0名员工时Q我们开始在每周五D行TGIFz֯Q员工们也可以借此回顾一周所发生的一切?#8221;
高层大变?/strong>
佩奇现在已经取代施密Ҏ歌CEOQ有分析Uͼ管施密特之前担任CEOQ但是谷歌的军_q是三个人做出。ؓ了加快决{速度Q谷歌现在由佩奇一个hq行决策?晓明)
注意一点:把设|代码放在画囄的前面。即可显C。一味的攑֜OnDrawQ)里有时候是没用的?/span>
讄MFC坐标p?L以下函数Q?/span>
CRect rect;
GetClientRect(&rect);
pDC-> SetMapMode(MM_ANISOTROPIC);
pDC-> SetWindowExt(100,-100);
pDC-> SetViewportExt(100,100);
pDC-> SetViewportOrg(rect.left,rect.bottom);
CPoint pointOrg(0,0);
CPoint pointEnd(100,100);
pDC-> MoveTo(pointOrg);
pDC-> LineTo(pointEnd);
但是希望知道在Setwindowext和setviewportext函数中的参数是什么意思?
发现把里面的100都改写成1000的话效果是一L。。?span class=Apple-converted-space>
首先,windowsE序在画图时,window有一个设备描q表,比如M个宽?0,高ؓ10单位长度的矩?注意q个单位长度是对于设备描q表来说?默认情况?一个设备描q表单位长度(即逻辑单位)对应一个像素大?如果需要将逻辑单位与物理单位这个对应改?需要用SetMapMode函数来设|新的映模式了.比如SetMapMode(LOENGLISH)表示一个逻辑单位映射到视频窗口或者打印机{物理设备时,对于0.01英寸.而SetMapMode(ANIOSTROPIC)表示x,y轴单独羃?q是既然要单独羃?比如支持x,y轴的~放比例.后面的SetWindowExt(a1,b1)和SetViewportExt(a2,b2)正是表示q个~放比例?q里表示,x轴羃放比例是a1逻辑长度~放为物理长度a2,同理,b1~放为b2.后面的SetViewportOrg(x,y)表示物理设备的坐标原点Ud(x,y)位置.比如昄器默认坐标原Ҏ屏幕的左上角(0,0)位置,而现在移?x,y)位置,q是q面坐标q移,q个不用详细说了.假设要话一个矩?0,0,100,100),物理讑֤原点Ud?x,y)?本来要在左上角话的矩?此时实际话在(x,y,100x,100y)的位|上(q里假设昄器左上角?0,0)坐标).实际上还有一个函数SetWindowOrg(x,y)q个是设|逻辑讑֤的原?如果需要知道比较详l?请参?lt;<mfcwindow~程>>一?/p>
建立以左上角为原点,X轴和Y轴ؓ1000的坐?span class=Apple-converted-space>
我们可以用以下代码:
void CTtView::OnDraw(CDC* pDC)
{
CTtDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetViewportOrg(0,0);
pDC->SetViewportExt(rect.right,rect.bottom);
pDC->SetWindowOrg(0,0);
pDC->SetWindowExt(1000,1000);
pDC->MoveTo(50,50);
pDC->LineTo(50,950);
pDC->LineTo(950,950);
pDC->LineTo(50,50);
}
代码分析Q?/p>
1. GetClientRect(&rect); 取得客户区矩形区域,其存放在rect?/p>
2. 用pDC->SetMapMode(MM_ANISOTROPIC); 讄映射模式
3. 通过pDC->SetViewportOrg(0,0);讄逻辑坐标的原?/p>
4. 通过pDC->SetViewportExt(rect.right,rect.bottom);?/p>
pDC->SetWindowExt(1000,1000);来确定逻辑坐标下和讑֤坐标下的寸对应关系
5. 在MM_ANISOTROPIC模式下,X轴单位和Y轴单位可以不相同
6. 坐标方向的确定方法是如果逻辑H范围和视口范围W号相同Q则逻辑坐标的方向和视口的方向相同,即X轴向右ؓ正,Y轴向下ؓ正?/p>
7. 如果显C模式改为MM_ISOTROPICQ那么X轴单位和Y轴单位一定相同,感兴的读者可以自׃一下?/p>
Q二Q?建立以视H中心ؓ原点的坐?span class=Apple-converted-space>
用如下代码:
void CTtView::OnDraw(CDC* pDC)
{
CTtDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetViewportOrg(rect.right/2,rect.bottom/2);
pDC->SetViewportExt(rect.right,rect.bottom);
pDC->SetWindowOrg(0,0);
pDC->SetWindowExt(1000,-1000);
pDC->MoveTo(150,150);
pDC->LineTo(-150,-200);
pDC->LineTo(150,-150);
pDC->LineTo(150,150);
}
代码分析Q?/p>
1. ?pDC->SetViewportOrg(rect.right/2,rect.bottom/2); 讄视口的原炏V?/p>
2. 用pDC->SetViewportExt(rect.right,rect.bottom);和pDC->SetWindowExt(1000,-1000);来确定设备坐标和逻辑坐标的单位对应关pR?/p>
3. 因ؓ逻辑H范围和视口范围的符号不一_U坐标取反,所以Y轴向上ؓ正?/p>
5q后的今天,CNZZl计QGoogle搜烦引擎在中国的使用率和占有率已l低?0%Q而百度则高达76%Q李彦宏的预a从某U角度上被验证了?/p>
周`对此评论:“现在看来老李实北大QNorthBigQ(注:NBQ,很有眼光和远见,实看到了未来。我们其他h比较南大QSouthBigQ(注:SBQ只是从产品和技术还有市场用戯些狭隘的角度出发q不准?#8221;
猜到了结果,却没有猜到过E?/strong>
癑ֺ?000q成立,最初的时候专注于中文搜烦引擎Q在2002qGoogle被封事g中成长v来,?003q的时候,在中文搜索领域百度基本上和Google持^Q?004q?005q从30%?0%Q到2006q超q?0%Q之后一直到2009q_癑ֺ的市Z额一直在60%左右Q在2010q第一季度市场癑ֺ占有率上升至64%。谷歌中国的市场份额则从2006q的20%增长?009q末?5.6%Q随着h退Z国事件的影响Q?010q第一季度h在中国互联网搜烦市场占有率下降至30.9%?/p>
2003-2009q中国搜索引擎市收䆾额(来源Q艾瑞咨询)
我在2010q初曾撰文《后h时代的中国互联网生态》,认ؓ其他搜烦公司“瓜分h退出后留下的超q?0%的市Z?#8221;的论调ؓ时尚早,q?#8220;癑ֺ可能会是谷歌离开后的最大受益?#8221;?/p>
一q的旉q去了,癑ֺ逐渐垄断了中国的搜烦引擎市场QGoogle搜烦引擎受到了变本加厉地限制Q先是针Ҏ索服务的单字屏蔽Q之后HTTPS搜烦服务被屏蔽,?011q??日开始,Google的全U服务都在中国受C不同E度的干扎ͼDGoogle各类服务QGmail、Google Reader、Google分析{)都出CE_情况Q谷歌地图亦在牌照门的阴׃生死未卜Q得Google服务的可用性逐渐下降?/p>
而现在,据CNZZ数据中心的数据显C,2011q第一季度癑ֺ搜烦引擎的用率高达76%Q位居国内第一Q其ơؓh10.16%、搜?.86%、腾讯SOSO3.43%Q而必应、有道、雅虎紧随其后?/p>
然而,癑ֺ虽然占据着l大部分市场份额Q但qƈ不代表其搜烦引擎p善美。按照CNZZ的数据显C,癑ֺ管在搜索结果总量、检索结果页面的打开速度、检索结果即时性等斚w比较H出Q但是对于检索结果竞价广告、检索结果下载效果、微博搜索、购物搜索等斚w的控制却落后于谷歌等其他搜烦引擎。也是_即便在最为核心的搜烦领域Q百度也不得不面临着来自h{其他搜索引擎的挑战?/p>
癑ֺh搜烦质量的对?/strong>
如果没有那些Zؓ的干扎ͼ让百度和h在一个公q的环境下竞争,那么癑ֺ和谷歌的搜烦质量Ҏ哪个更好呢?原谷歌中国的CEO李开复从“相关?#8221;?#8220;索引规模”?#8220;速度”?#8220;新鲜?#8221;四个斚wl出了一个详l的评测Q?/p>
一、在2005-2006q时Q谷歌和癑ֺ的比较:
1、相兛_Q领先百?个点Q大U是今天的英语谷歌和微Y的差距,是说不大)?/p>
2、烦引规模:h规模较大Q但是很多重要的内容都没有(例如论坛Q。(q里比较的是中文索引Q但是其实谷歌的索引是全球所有语a都储存的Q因此Q何搜索可能搜ZQ何语a和国家的l果Q?/p>
3、速度Q谷歌远q慢于百度?/p>
4、新鲜度Q谷歌落后百度?/p>
二、经q两q的努力Q在2008q_h和百度的比较Q?/p>
1、相兛_Q谷歌远q领?个点Q大U是hp刚出来时和雅虎的差距Q?/p>
2、烦引规模:h是百度的10倍左叻I当然Q对l大部分常见搜烦词是感觉不出差别的)Qƈ且I补了有些爬取的错误和落差?/p>
3、速度Q谷歌和癑ֺ大约一P虽然许多服务器不在国内?/p>
4、新鲜度Q谷歌达?分钟之内Q也是说一个网上U?分钟后就可以被搜刎ͼ如果是PR值够高的话)?/p>
因此可以看出Q从搜烦引擎技术上看,h当年对于癑ֺ来说是领先的Q一个具体的例子是,?007q的时候,h的一个员工做了一?#8220;h癑ֺ比比?#8221;的程序,Ҏ索引擎进行盲,来验证谷歌和癑ֺ的搜索质量,l果l过大量匿名用户的测试,最l谷歌搜索胜出?/p>
癑ֺ的危?/strong>
南方周末的重文章《澃涡中的中国首富李彦宏》一文中写到Q?#8220;李R宏认为,‘技术本w不是唯一的决定性因素,商战{略才是册千里的关键?#8217;……李R宏将微Y描述?#8216;寸土必争’?#8216;邪恶帝国’Q十余年后,他所创徏和领导的公司面着同样的指控。百度不仅在做搜索,q在做实旉讯、电子商务、博客、微博、输入法、浏览器、压~Y?#8230;…甚至q做q一D|间的内容生?#8221;
从某U角度来看,癑ֺ的发展似乎一帆风,2011q??0日出炉的布斯全球富豪排行榜中,内地首富名号被百度CEO李R宏摘得??4日,癑ֺ市Dq腾讯,成ؓ目前市值最高的中国互联|企业,q也是腾讯自2006q以来,首次丢掉中国互联|企业市值第一的头衔?/p>
而在另外一斚wQ百度似乎一下子成ؓ了国内互联网行业?#8220;众矢之的”Q竞h名非议颇多、百度文库R权风波搞的百度灰头土脸,被迫道歉、当当网{合作伙伴纷U封杀癑ֺq告Q乃至于癑ֺ自营?#8220;有啊”黯然兛_Q百度MP3被迫转型Q各U问题都在一夜间爆发Q百度成Z联网行业?#8220;众矢之的”?#8220;头号公敌”?/p>
癑ֺ的盈利模式非常简单其易于理解Q就?#8220;竞h排名”Q百度的“竞h排名”早期很脏Q那时在癑ֺ搜烦“癌症”Q要dW七八页才能得到正常的搜索结果,而前面的七八全是赞助商出钱买的q告位,在众人的猛烈抨击下,癑ֺ不得不做Z些修改,减少了广告的数量?/p>
但是癑ֺ?#8220;늊版权”斚w的行为却更甚Q在癑ֺ贴吧已经出现侉|的势头后Q百度反而又推出的百度百U、百度文库等pd|站Q这些网站虽然给癑ֺ带来了很多流量,却存在大量R权的内容Q严重损害了内容创造者的利益Q最l引来作家和出版C围攻Q自w的声誉受到了严重媄响?/p>
对于W三方网站来_癑ֺ对于原创文章的排名也不如GoogleQ搜素很多关键字Q排在前面的都是癑ֺ自己的网站,如百度百U、百度知道等Q俨然成Z“癑ֺ站内搜烦”Q而Google则更多把原创文章排在前面?/p>
框计?/strong>
面对U种困境Q百度也在思考未来的盈利模式Q苹果应用商店的成功引v了百度的xQ百度也开始打造自q应用商店Q试N过所谓的“框计?#8221;应用开攑^台来“建成一个新的生态体p?#8221;Q把搜烦框变成类D果AppStoreq样的应用^収ͼ提供应用和服务;对用h_有利于用户体验,帮用戯U时_对开发者来_开发者或q营商可以将应用直接提交到百度应用开攑^収ͼq实现最佳位|和最佛_Ş式的搜烦l果直接展现?/p>
癑ֺ“框计?#8221;实现了对快递、媄视剧、机和购物{垂直搜索的量截取Q百度数据开攑^台导致相对美观、全面的W一条搜索结果会截取到大部分的流量,大型的企业或软g开发商从中获取量Q小|站则失掉q部分的量?/p>
和竞h名相比,应用q_的商业模式主要是“免费+q告”的商业模式。目前这个开攑^収ͼ应用商店Q以癑ֺ搜烦框ؓ核心Q缺客LQ百度浏览器可能是未来的客户端)Q由于百度的用户通常不愿付费Q因此在上面做收Ҏ务较为困难,大部分应用以个h应用ZQ电子商务类应用很少Q第三方开发者的商业模式通常只能采取“免费+q告”Q其盈利难以和苹果应用商店相比,癑ֺ?#8220;免费”模式昄是应用商店的最大挑战?/p>
l论
可以看出Q百度虽然取得了一些成功,但ƈ不是依靠Ua的技术和创新莯Q如果不是Googlel常间歇性的被屏蔽,中国的搜索引擎市Z不会是今天这个样子,癑ֺ赢了市场Q失M口碑。一个可以随意R犯作家的版权Q给钱就可以删除负面消息Q竞h名发布假药广告,q样的企业竟然可以成Z国市值第一的互联网企业Q这的确是个劣币驱逐良币的时代?/p>
引用Q?a >http://news.csdn.net/a/20110419/296177.html