近期随想:科技发展的终结
本文链接地址:近期随想:科技发展的终结
最近看了一些视频,世界进步的真是好快。
希拉・尼伦伯格:用假体眼睛治疗失明 [Link]
Google Glass [Link]
Anthony Atala:三维细胞打印机打印肾脏 [Link]
看到这里,我不由得开始乱想,现在的科技已经发展到了现在这种程度,学科的分支已经如此的多,想学通多个分支已经相当的难。那到底什么时候才是科技发展的尽头呢?是不是很幼稚?:D,不要当真,乱想嘛。
最近看了一些视频,世界进步的真是好快。
希拉・尼伦伯格:用假体眼睛治疗失明 [Link]
Google Glass [Link]
Anthony Atala:三维细胞打印机打印肾脏 [Link]
看到这里,我不由得开始乱想,现在的科技已经发展到了现在这种程度,学科的分支已经如此的多,想学通多个分支已经相当的难。那到底什么时候才是科技发展的尽头呢?是不是很幼稚?:D,不要当真,乱想嘛。
前段时间读了《程序员修炼之道》,读之前以为这本书估计基本是在重复《Unix编程艺术》,《编程珠玑》,《重构》等等里面的各种思想,结果我发现我错了,这本书完全不是那么一回事。其他的书说的只是代码或工程的哲学,而这本书除了讲述工程方面的哲学之外,还在讲述程序员应该如何规划自己的人生。看完之后确实是受益匪浅,越看到后面,越觉得这世间的万事万物其实是相通的。事物的表现或许不同,但是背后的规律却是如此的相似。
不知道大家有没有这样的感觉,时间总是那么的不够用,想要学的东西太多,学习的速度太慢,有时候还不一定有激情。我们没有龙珠里面的时间与精神的小屋,也没有岛国的时间停止器,修行是一辈子的事情,而且有时候没有想象中的那么简单。
这四个字是书中最关键的几个字,在书中频繁出现,仿佛作者写这本书就只是想将这四个字潜移默化给大家一样。方法和过程都因人而异,但是只有注重实效是永远不变的。
曾经有一个同事F对我说:“一个技术人员最不可或缺的是什么?技术。如果没有技术的,那其他的东西,如人际,都没有意义,因为那些都只是加分而已。”。这句话我觉得说的很对。所以,一个技术人员在修炼自己之前,首先需要有一个意识:你的知识就是你的资产,学会如何经营他。在这本书里面,作者给出了如下几个建议:
定期评估已有资产,并进行投资
定期的回顾你已经学习到的东西,并找出其中你遗忘的或者你想学的,以后会有用的内容,进行学习。说不定,以后这些知识就真的能够帮到你。
书中推荐的几个目标是:
多元化
多元化投资是长期成功的关键,谁也不知道以后的市场会有怎样的突变,偶尔去看看别的方面,对自己是有好处的。也许你现在很熟悉C++了,那么尝试着去看看动态语言吧。如果你已经做了两三年Windows上的开发了,那么去看看Unix吧。分散的投资到最后总会有一处会收到回报。
注意,这并不是让大家乱学知识,什么都不深,看着这段时间语言排行榜一变,就一股脑钻进去了。多元化的投资的前提是,你已经有一个擅长的专长或领域了。
平衡风险和回报
学习和投资一样,有风险有回报,管理好学习的风险,不要学了很久,也许带来不了任何回报,开阔眼界是好的,但是也要注意,你的时间是有限的。不要瞎忙活。
主动联系大神们,向他们学习
互联网带来的最大的好处就是将所有人和事物的关系都拉近了,主动的寻找你这个方向的大神,并向他们请教,也许他们不会马上回复你,组织好自己的问题,耐心一点,礼貌一点,总会有结果的。
这几天旅游去了一次日本,跟着旅行团,几天之内晃悠了大半个日本,所以路上非常的紧张,而且还很不幸的遇上了台风,导致风景自然就没有那么好看了,不过这一趟还是不虚此行的。
第一天,我们在成田下了飞机到了酒店,刚到酒店,台风就登陆了,雨开始哗啦啦的下了起来,但是即便这样也挡不住我们一群人想要撒欢的心。下午自由活动的时候,我们自己坐了1个半小时的地铁到了东京塔,登上塔上的时候,天已经黑了,正好在上面俯瞰东京的夜景。东京塔上是一个很浪漫的地方,特别是在晚上,要是带上MM一起去,真是一件非常舒服的事情,可惜这次我没有,感觉真是格外的寂寞。
当然,在东京塔上看台风也是有一番别样的感觉,那种冲击的感觉,实在是相当刺激。听说最顶层的眺望台还会被风吹得晃动,幅度可以达到1m!
Mirror 0.2的x86版本已经膨胀到了793KB了,这让我觉得很好奇,到底是什么东西在疯狂的膨胀呢?实在想一探究竟。
于是杯具的事情发生了:Mirror的方向终于还是跑歪了,偏离了窗口,朝着编译器的方向走了弱弱的一小步。
加载pdb,就可以看到代码段大小的分布。
发现还是stl膨胀的比较猛,特别是map和vector。但是没有想想中的那么多,代码只有400多k,还有300多k估计是资源什么的,这个可能要等写完pe分析了之后才能知道了。
当时在写这个功能的时候,我想到的方法有两种:
正当我纠结的蛋疼的时候,幸运的事情发生了,无意中在vs中发现了一个的pdb分析库:Debug Interface Access SDK。这个库随着vs的发布而发布,反正Mirror也只有开发人员才会用,所以基本上机器上应该都有vs,所以就直接使用这个SDK来实现了。
这个库里面有两个最主要的类:
关于这个SDK,微软已经给出了非常好的使用方法,所以这里就不罗列代码了,大家可以照着这个step by step来学习使用。
另外微软还提供了一个完整的实例程序Dia2dump展示Dia的方方面面:http://msdn.microsoft.com/en-us/library/b5ke49f5
今天来看博客的草稿箱,发现这篇文章已经放置有将近一年了,本来是2011年8月份的时候,写天津之行的,结果一直放到现在。
一晃一年过去了,走了一些地方,满足了一些自己的好奇心,原来在上海,没有去杭州。在深圳,去了香港,没去澳门。现在来到了北京,周边城市什么的还是去看看比较好。就先去了天津。
当时还是由于T哥家在天津,想着还能有个伴,就带着MM和T哥一起去玩了两天。去的时候,我对天津的印象只有两个:竹板这么一打呀,别的咱不夸,夸一夸咱们那个狗不理包子!
到了天津算是去了不少地方:瓷房子,五大道,意大利风情街,劝业场。不过最搞的还是古玩街。
嗯,原来只听过泥人张,结果。。。这。。。。。简直就是张家村呀~
难得有时间,玩了一天整的暗黑3,感觉不知道要如何表达,有些内容实在忍不住要吐槽一下了。
p.s. 我的游戏时间才一天,对游戏的理解肯定不深,下面这些都只是我的个人YY而已,暴雪出品,必是精品,这句话我还是坚信的。如果说的有什么地方不对,欢迎各种指正。
现在的电脑游戏已经越来越简单,这是真的!以前,你见过中间休息一下就能补满血的FPS游戏么?你见过杀第一个小怪就弹出什么类似于“初出茅庐”的成就么?你见过走几步就弹一个还带视频的教学的RPG么?你见过按一个键就能发大招的KOF么?而现在这种简单的趋势在暗黑3中更是表现的淋漓尽致。
另外,我实在觉得3里面有太多2的影子,以至于让我产生了一种在玩2的新资料片的感觉。。。这。。。应该不太正常吧。。。
好吧,现在我们来细细的聊一下我觉得的各种槽点吧~
暴雪的CG依然是那么的给力,每到CG开始我都特别激动。但是故事背景还是那么的单纯,具体是什么,你懂的。在暗黑2的时代,毕竟大家见的少,弄一个出来很新鲜。但是现在这种RPG已经遍地都是,所以感觉总是缺乏新意。当然,我们可以说暗黑3的剧情必须要继承暗黑的传统去发展,所以才不会有特别大的变化。不过即便是这样,我还是觉得少了点什么。
可能是对暴雪期望太高,毕竟暗黑2是一个里程碑。
现在我总共也才玩一天,我接触到的也还是一些最简单的部分,比如最浅显的人物设定和基本的游戏操作。
在暗黑2中,一旦你登录到战网中,首先看到的是一个战网大厅,大家可以在里面聊天,组团,约着一起打怪,要么刷巴尔,要么刷莫非斯托,大家都很high。
但是在暗黑3中,这一切都没有了,取而代之的是一个自动加入房间的入口。这算什么?!欢乐斗地主么?而且就连斗地主也没有取消大厅啊!这样多不利于大家交流啊。
在发布了0.1 Preview版本之后,又折腾了一个月,Mirror v0.2 Preview 2终于诞生了。
这一次的发布主要是让界面可以自由缩放了,这样能适当的缓解一些界面太大导致的调试困难。另外还增加了一些小功能,并且修复了一些bug。
由于加入的部分功能在64位的机器上只有64位的API才能正常工作,所以之后的Mirro可能都将发布32位和64位两个版本,后面我会尽量想办法将两个版本合并。
欢迎您点此乱入反馈各种意见和问题,或者点此捐助作者鸡蛋灌饼,支持作者继续开发~
Mirror v0.2 Preview 2 (0.2.69.102)
由于前段时间经常在各种奇奇怪怪的窗口相关的问题上纠缠着,而spy++的功能又总是不那么尽如人意,所以就在业余的时间,写了这么一个非常简单的小工具,能查看和修改窗口的一些信息,方便测试窗口,避免每实验一下,都要重新编译工程带来的痛苦。
Mirror v0.1 Preview (0.1.21.101)
Mirror的目标是成为一个足够绿色,对开发人员足够友好的观察窗口的行为的小工具。现在的Mirror还很简单,只有两个主要功能:窗口操作和热键管理,希望他以后会慢慢强大起来。但是Mirror是一个单纯的孩子,它并不想成为Spy++,所以暂时不会添加关于Hook窗口消息的功能。
软件主要包含如下文件:
本来打算将配置文件生成在appdata目录下,但是这个软件本来只是一个很小的工具,实在没有必要。
如果有兴趣的,也可以点击下面的捐赠页面,让作者每天都能吃上好吃的鸡蛋灌饼,帮我增加继续下去的动力。
捐赠页面:https://me.alipay.com/bigasp
**说明啊说明:**本人纯属小菜,对Objective-C神马的完全的不懂,这篇文章纯属扯淡,各位大大路过,欢迎各种指教~
今天一个同事对我说,他花了两个晚上的时间,啃完了Objective-C。我表示非常震惊,这种速度,应该是为了避免跟不上工作进度,穿越回来的时候选早了几天。于是接着我们就围着Objective-C侃了起来。
他说他看到Objective-C里面的一些特性非常好玩,于是说给我听,比如:
这是一个很神奇的特性,虽然我完全没有看过Objective-C,但是听大致的描述是这个意思:只要我们拥有某个类的头文件和其对应的静态链接库,那么我们就可以对这个类进行扩展,比如,给这个类加一个成员函数。
这种用法,对于基本只在C++里面转圈的我来说,确实也是第一次听到,觉得相当新鲜,于是就开始想了:C++里面是不是也能做到这件事情呢?
让我们来开始尝试吧!给一个名为Test的类添加名为Func1的成员函数。
这篇文章是接着上篇文章继续聊的,Chrome的代码实在太多,每一个东西单拿出来都可以说很很多,单就一个breakpad都说了两篇。恩,不过也许是我太啰嗦了。
我们知道Chrome做这一套皮肤引擎是为了替换掉Windows原生的控制UI的方式,所以这个皮肤引擎上怎么能没有控件呢?所以在建立好各种基础的UI元素和默认处理之后,Chrome在上面开始封装各种基础的控件,比如button等等。
其相关代码主要分布在src/ui/views/control目录下。
为了进一步的方便开发,Chrome的UI控件库中包括了很多基础的控件,这些控件现在包括如下几种:
这些控件中有一些并不一定是全部自绘的,而是使用系统原生的控件,比如tabbed_pane,tree和table。按照Chrome的文档来看,Chrome团队应该并不喜欢使用系统原生的控件,所以从长远来看,这些代码应该是中间代码,毕竟很好的实现一个这样的控件还是比较复杂的,所以Chrome就暂时使用着原生的控件。
另外还有一种我们在控件库中找不到,但是却十分重要的控件:容器。
Chrome的皮肤引擎有一个特点:万物皆容器。所有的控件都继承于一个同一个基类:View,所以所有的控件都可以有子元素。在Chrome里面,你可以建立一个其他什么都不做的View,只用它来排布他的子元素。用过GTK的朋友们肯定对GtkHBox和GtkVBox这个类有一定的印象,这两个类对辅助控件的布局是很有帮助的。在Chrome里面,你也可以使用类似的用法来辅助控件的布局,而且在UI里面还提供了几种基础的布局方法来帮助大家开发。