Siney's BLOG

天空外有天堂,流星错过海洋

祸不单行哇

这几天真是倒霉到家了,不知道是那个和我有仇的家伙在背后诅咒我,先是周末的时候移动硬盘挂鸟,里面放着很多重要的数据,珍贵照片,这下都付之东流了,伤心之余,我痛定思痛,决定绝对不能在我身上发生"祸不单行"的人间惨剧.

谁知今天,我的苹果笔记本也罢工鸟,早上开机直接黑屏,连多余遗言都没有留给我,走的悄无声息,我那个心哇凉哇凉的,你说我怎么这么凄惨,笔记本可是工作中最重要的设备,就如同英雄陪宝剑,剑在人在,剑亡人亡,我这出师未捷身先死,本来以为已经跌倒了谷底,谁知道还有地狱.

好吧,我拿着我本本去苹果售后服务中心修理,被告知刚过保修期,需要自费修理,偶卖糕的,这这~~~,

"好吧,多少钱?",

"8000",

"多少?",

"8000!!!!",

我突然想起了网络盛传的神兽,我真想送那个正在斜眼看我的修理人员一只"卧槽泥马",

"8000, 你这赶上买台新的thinkpad了",
"是这样,你这是显卡坏了,需要换整块主板",

我突然想起苹果前端时间承诺要免费维修苹果笔记本,貌似就是因为显卡的设计缺陷而导致的问题

"显卡你们不是免费更换的吗?我看过苹果的新闻"

"对啊~~(好像有点结巴), 如果你能提供发票和出境证明"

废话,再送你一只"法克鱿",一脸奸商样,

"可以啊,我下次来取的时候,给你"

...

 

OK,哈哈,看来上帝还是站在我这边的,从8000到zero, 虽然一段时间用不了笔记本,已是对下到黄泉地狱的我的一种告慰了.

回来的时候唱着欢快的歌曲 "苹果苹果我爱你,就像老鼠爱大米"

  • 2 comments
  • 分类: 随笔

    替代svn,使用git做版本控制

    以前项目的版本管理都一直使用svn,最近发现了git,立刻被他简介的特性所吸引,比较之后立刻把svn从服务器踢了出去,全部采用git作为版本管理工具,首先是其clone(svn里的check out)的速度,还有不会在每个文件夹都创建类似svn的.svn隐藏目录,取而代之是在顶层目录采用压缩的文件系统保存历史数据,而各级子目录不在存在任何历史数据信息,目录看起来很清爽,尺寸也比svn的垃圾数据减小了不少.

    最后就是其关键的分布式设计,对于开发者不用每次commit都提交到服务器,而是可以先commit到本地的文件系统中,在必要的时候在push到服务器,这样就方便了那些不能时刻保持与服务器连接的开发者(比如在家写代码,commit,回到公司push到服务器),而且所有本地commit都可以版本管理,随时可以回退到历史版本,这样就类似一个单机的版本管理系统,不用连接服务器也可以回退.

    对于windows用户,svn有一个非常好用的gui工具,tortoiseSvn,一般叫做小乌龟,而git也有小乌龟版本tortoiseGit,也非常好用,在实际使用过程中,还是有一点小问题,就是关于ssh连接,目前的tortoiseGit使用putty做为ssh连接的客户端,想配置putty并最终能连接ssh服务器,还真花了不少时间,为了方便新的tortoiseGit用户,我简单把配置步骤描述如下:

    首先进入tortoiseGit setting对话框(任意目录右键选tortoiseGit->setting)

    进入Network页面,配置ssh client为tortoiseGit/bin目录下的TortoisePlink.exe

    运行bin/目录下的pageant.exe的程序,add key加入你的ssh privete key file文件,输入密码,以后每次都要先启动pageant程序并输入密码

    保持pageant.exe程序运行, 这个时候应该可以使用tortoiseGit clone的git代码仓库了

    例如 ssh://test@192.168.1.100:3220/test.git

    如果还有问题,可以把TortoisePlink.exe换成官方的plink.exe(需要单独下载)

    一个好消息是,下一版的tortoisegit的ssh配置应该不会这么麻烦了,在其官方google code中说已经支持open ssh,并能自动弹出密码确认框

  • 2 comments
  • 分类: 编程心得

    奥巴马是我家猫猫的名字,它是一只英国短毛猫,买来的时候,猫舍的买主一再要求一定要喂猫粮,而且还指定了牌子,说什么喂其他东西肯定导致肠胃不适,引起腹泻,所以一直也没有喂它其他东西,今天偶然发现奥巴马尽然喜欢吃开心果,而且吃的很兴奋,泪流满面,看来吃的很感动啊!开始不了解以为是刺激到眼睛不舒服,后来问问原猫猫主人,了解到这种猫在吃好定西的时候可能会流眼泪,就像人看到好吃的东西流口水差不多.

    下面是我家奥巴马的照片,第一张是不是像黑猫警长啊,"眼睛瞪的像铜铃",是不是很神气啊

    IMG_0135

    图片1

     IMG_0134

    图片2

  • 2 comments
  • 分类: 心情故事

    关于BeginScene和EndScene函数

    昨天闲来没事,特地跟踪了下Farcry2引擎的渲染流程,无意间发现Farcry2每帧竟然会多次调用BeginScene和EndScene函数,我以前的认识是每帧开始的时候BeginScene,Present之前EndScene,一般为了gpu和cpu的并行性,会在EndScene和Present函数之间插入一些计算代码(比如物理计算等),让cpu不至于等待gpu绘图。

    很多人可能会认为在SetRenderTarget之后要BeginScene,使用完RenderTarget后要EndScene,网络上有很多例子也是这样写的,但这是完全错误的,渲染RenderTarget不需要Begin和End,否则会导致D3D_ERROR,如下:

    Direct3D9: (ERROR) :BeginScene, already in scene. BeginScene failed.

    就是说不允许连续两次的BeginScene调用,所以一般就是一帧调用一次Begin和End函数,而Farcry2非常奇怪,它存在如下函数调用顺序:
    GetBackBuffer ->BackBuffer
    SetRenderTarget
    BeginScene
    Some Draw Call
    EndScene

    BeginScene
    Some Draw Call
    EndScene

    ……

    SetRenderTarget( BackBuffer )
    BeginScene
    Some Draw Call
    EndScene

    BeginScene
    Some Draw Call
    EndScene

    ……

    Present

    有时候甚至会出现一对空的

    BeginScene
    EndScene

    中间什么也没干,我很好奇这些函数到底有什么特别的用法,我在DXSDK文档和google都搜索了,没有找到关于此的描述,不明白其中的原因,我猜想是不是这样可以提高cpu和gpu之间的并行率,但我以自己引擎来测试,把一些渲染代码放在一起Begin/End,没有发现有效率的提升,如果有那位看到此博客的朋友知道原因,希望不吝赐教。

  • 3 comments
  • 分类: 游戏开发

    很久之前研究了下wow的场景组织和地形渲染,一直也没有时间验证分析结果,最近比较空闲,特地写了一个wow的地形渲染器,以验证分析,wow的地形还是比较怪异的,感兴趣的朋友可以参考我之前的博客,对于为什么要如此划分地形的,我的第一感觉是便于计算静态lod的index,不至于出现裂缝,下面是截图,再有时间,我考虑把模型渲染也完成了。

    wow_terrain

    目前主要完成地形的渲染,数据的多线程加载还有渲染架构。

    ====================

    今天又有了新的进展,可以渲染简单的模型了,还加入了地形lod,现在渲染的三角形被裁剪掉很多,有空可以考虑视锥裁剪和视觉遮挡剔除,这样将会被裁剪更多,哈哈。

    wow2

    目前有个问题是,虽然使用了多线程loading,但还是会在创建贴图的时候停顿一下,看来d3d的多线程创建对象还是有点慢,一种改进方法是前台lock,后台fill数据。

  • 1 comments
  • 分类: 游戏开发

    用了很久的Mac,感觉原配的120G硬盘明显不够用,时下硬盘很便宜,于是就打算换一个大的硬盘,最后入手日立的320G的硬盘,买了硬盘发现拆开Mac到犯了难,搜索了很多关于macbook换硬盘的文章,总是在关键的的如何拆除c壳的部分忽略,坦白说新手拆除c壳有一定心理考验,要不是最后孤注一掷强硬拆除,真打算放弃了,其最为困难的部分是拆除触摸板部分,同时还要注意2个细小的螺丝,否则可能会掰坏外壳,下面就以实际拍照经过手把手交你如何更换硬盘,如果广州有动手能力不好的同学也欢迎联系我,免费为你提供更换硬盘服务(硬盘费用自理 ),let’s go

    IMG_0009

    正式开始工作之前,先准备好工具,一套可以应付各种螺丝借口的螺丝刀,如果没有就去买吧,淘宝价格30左右

    一共需要用到4中型号的螺丝刀

    IMG_0018

    首先拆除电池,然后是内存盖,这里没有什么难度,顺便提下,我已经换了内存了,4G Kingston

    IMG_0004

    注意电池底部螺丝,左右对应,各有一个,也要拆除,否则后面掰断了,别来找我

    IMG_0001

    拆除4周和底部的小螺丝,这时靠近显示器的一端基本可以很容易打开了,可以靠近触摸板这端则需要用很大的力气掰,一定要用力

    注意打开c盖的时候,也不要太用力,小心把连接线扯断了

    IMG_0002

    注意图,之所以需要这么用力才能搬开,是因为这部分有卡扣,因为正面没有螺丝,如果没有卡扣就没有办法把c盖扣严实,所以需要卡扣

    IMG_0008 IMG_0007

    接下来就是硬盘了,先拔掉右边的数据线,然后用信用卡之类的东西把黄色排线拆除

    IMG_0010

    用螺丝刀卸掉这个螺丝,上下各一个

     

     

     

    IMG_0011

    拿掉sata接口线,就可以把硬盘拆了

    IMG_0012

     

    IMG_0013  IMG_0014

    用螺丝刀卸掉硬盘周围的4个螺丝(需要6角的)

     

     

     

     

     

    IMG_0015

    我的320G硬盘和原先fuji硬盘对比

     

    IMG_0016

    还是用行用卡拆除原先硬盘的铁质圆盘,把那个铁质圆盘粘在新的硬盘的磁盘中心,其实我不知道这个东西的用处

    猜想是避免与排线数据干扰

     

    IMG_0017

    把原先的硬盘在装回去,然后就是扣上c盖,这里需要注意的是上面提到的卡扣

    需要用力在4个卡扣处按,会听到滴答的声音,说明卡上了,否则会出现盖不严实的问题,影响美观

    最后就是安装系统了,放入leopard系统光盘,按住C键,当看到苹果标志后就算ok了,接下来就是分区安装了!!!

    ps:原来的硬盘不要急着格式化,等安装完苹果系统,接上usb,可以使用迁移助理程序,把原先的程序和数据全部

    迁移到新的硬盘上,苹果真是体贴啊,so prefect!!

  • 3 comments
  • 分类: 随笔

    Kingston内存的购买经历

    最近在taobao上购买2条2G的笔记本 DDRII 667 的Kingston笔记本内存,(很多朋友会说,为什么不去实体店买,其实都一样,如果你不知道验证的方法,就会像我下面一样),按照网站的说法,该内存支持 Kingston官方网络验证,就是这个地址的验证,http://www.kingston.com/china/verifynew/,内存到手后,我按照提示,输入了id和序列号,收到反馈电子邮件是“正品”,于是暗喜,但好奇心驱使下,我又试着输入了错误的id和正确的序列号,发现同样的反馈“正品”,我就纳闷了,于是致电Kingston客服电话,询问原因,客服人员不的其解,也说第一次遇到这种情况,然后询问我内存背面的总代理“恒盈”的电话,我答曰“8008577073”,其实还没有等我说完,客服就告诉我是“假货”,因为恒盈的电话不是8008577073,而是400-830-5640(手机查询,其官方站点是www.hengwin.com也可以查询),对于序列号可以验证通过的原因,他们建议我拍张内存的微距照片,发送到其客服电子邮件,有专业人士帮我进一步认证真伪。

    于是我联系taobao卖家,说明情况后,他向我摊牌说“内存没有利润”,“他们都是把真的标(就是恒盈代理)撕下来单独卖,或者把正面Kingston的标撕下来单独卖”,这样一个正品的Kingston的2个标志可以分开卖2份钱,所以有的内存宣称支持电话查询真伪(去打恒盈电话,输入恒盈代理序列号),而有的内存宣称支持Kingston官方网站验证,而如果是假货,贴的假恒盈标志,你打错误的恒盈电话,输入“错误”的序列号,估计也能认证通过,但如果打其官方电话就验证不通过了,而真正的Kingston产品应该是都可以官方验证通过的。

    最后有朋友可能会问,为什么输入错误的id和正确序列号,也能得到“正品”验证通过的结果,这个我估计是Kingston的问题,如果输入正确id和错误的序列号就不能通过(后来多次测试得出的结论),我猜测Kingston的验证程序仅仅识别序列号的真伪,而不关注module id的正确性,所以只要输入正确的序列号,随意输入id都能通过,这是我开始不清楚的情况下,产生的疑问?于是追根溯源,了解了整个Kingston内存市面的假货状况,给以后再买Kingston内存的朋友一点帮助。

  • 0 comments
  • 分类: 随笔

    分页:[«]1[2][3][4][5][6][7][8][9][10][11][12][»]