- 博客(93)
- 收藏
- 关注
原创 遭遇多线程bug (1)
某些用户,机器重启后,到第三方服务器的连接起不来,而到我们自己服务器的连接就没事。如果连接由于网络或其他原因fail掉,过一定时间后应该会重新尝试建立连接的。测试组做初步调查,他们能在本地环境复现,只是不是稳定复现,时而有时而没有。(嗯,race condition的问题就常常比较飘忽不定,并且往往在系统繁忙负载高的时候爆发)。我开始参与。
2013-12-13 08:12:43 2202 2
原创 三十岁,开始异域漂泊
三十岁,开始异域漂泊2012年5月,因为想在职业上做一些新的尝试(其中的一个想法,就是想尝试做贴近用户和产品一些的开发工作,而不只是做平台...),萌生去意。当时公司快上市了(现在已经上市了),上市半年后解禁 手上成熟的部分股票应该可以带来一些回报。不过人生有几个一年,自己想要什么生活应该立即开始努力尝试,不想因为这个再等一年。跟公司说了想法之后,公司提议我参加一老板亲自带队的 新
2013-02-05 07:46:57 14206 91
原创 算法写到广告词里
有天晚上,看到路边公交站上的这块广告牌:Divide and Conquer?这是惠普还是微软的程序员想的广告文案吗?(Windows 8系统,惠普的变形超级本,其实不确定是微软还是惠普做的广告)----------------------------------------------------------------------------------------
2012-12-25 18:50:00 2593
原创 用好Code Review
个人写各自的代码,没有review流程,确实比较快。开发人员会天然地喜欢和有这种倾向,因为这样感觉比较自由,有一些丑陋的地方也不会被别人看到...但,如果开发的程序有多人维护,并且对质量、稳定性要求高的话,最后还是需要Code Review来保障代码质量。Code Review不仅是提高软件质量的有效手段之一,更是团队老人传授知识和经验给团队新人的极好时机。认真
2012-05-15 20:55:01 2505 2
原创 Evernote 的服务器架构
最近几天开始用云笔记Evernote...也顺带了解一下Evernote服务器端的设计。Evernote的技术博客上有若干Evernote的CTO Dave Engberg撰写的文章做了阐述。可读性很强,可直接点开下面的原文链接阅读,这里就不赘述或翻译了。Evernote服务器整体方案的描述:http://blog.evernote.com/tech/2011/05/17/ar
2012-02-28 23:19:49 3405
原创 前Amazon工程师分享早期故事
前Amazon软件工程师GREG LINDEN在他的博客上,分享了1997年毕业后加入Amazon的一些早期故事:The seriesThe first weekGroup discountsDoor desksBookMatcherboy-am-i-hard-to-pleaseInventory cacheDogsXmas at the warehouseSplitting the
2012-02-08 23:23:49 2581
原创 临时优化了一下可靠UDP程序
之前做的一个简单的可靠UDP传输,基本的可靠是实现了,但没做动态的流控。当时为了简单,也为了快速实现。当然 运算简单服务器也能撑起更多用户,比如一个服务端单线程进程可能撑起上万的用户连接。几个数据量小的业务,跑了几个月并没发现什么明显问题。后来迁移一个业务过去,灰度测试,客户端获取一份数据的速度很慢,比原来使用TCP的慢多了。对比之后发现用来使用TCP传的时候,这份业务数据有做压缩,迁
2012-01-15 13:10:03 3693 8
原创 亚马逊(Amazon)面向服务架构(SOA)经验
Amazon前员工,现google员工在Google+上说google不懂得做平台,里头也提到以前Amazon实现面向服务架构的一些经验(不过是好几年前的经验了):- pager escalation gets way harder, because a ticket might bounce through 20 service calls before the real owner
2011-11-08 17:11:50 3289
原创 宣讲行程更新
在前面一篇毕业生又开始找工作了里说的校园宣讲行程后来更改了,基本上长沙的宣讲延到11月,其他地方的都在10月:宣讲行程 城市宣讲学校宣讲会时间地点 广州华南理工大学10月14日 14:30 - 16:30大学城校区A4-204
2011-10-31 00:22:01 2340
原创 初遇缓冲区溢出攻击
初遇缓冲区溢出(Stack Buffer Overflow)攻击那天晚上,某种业务有好几个服务端进程在短时间内崩溃了。同事上去看了,发现都是在处理来自同一个地方东莞的同一个IP地址过来的请求时发生core dump。恩,诡异,当时我们先跟运维同事联系,在该业务的几个服务器上 临时紧急禁掉该IP的连接。我也上去看了,用GDB查看core文件。看了trace
2011-10-23 13:11:39 3048 2
原创 看完 Masters of Doom
终于看完 Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture 这本书。了解业界前辈的这些经历,感觉收获还是蛮多的。1. 有人财务自由,功成名就之后干活不卖力了。比如John Romero,前面一两个游戏出来成功之后,整天忙于应酬,享受千万粉丝追捧。
2011-10-17 23:34:46 2499 2
原创 黑莓宕机
黑莓宕机影响全球用户3天 ...各大洲的用户都影响到了,可以看RIM官方上的service update:http://www.rim.com/newsroom/service-update.shtml原因是一个核心交换机坏了,虽有备份的,不过切换后备份交换机没按预期工作...一般实现一个高可用的服务器系统,有两种方式。方法A,让一个主服务器
2011-10-14 01:01:56 2555
原创 毕业生又开始找工作了
公司的2012校园招聘终于要开始了。2012校招职位:C++开发工程师(广州)Java开发工程师(珠海)Java开发工程师(广州)产品运营专员(广州)内容编辑(广州)产品运营专员(珠海)C++开发工程师计划招聘130
2011-10-12 11:27:46 2708 11
原创 初始化惹的祸
我们某种业务,客户端获取服务端数据,有重试机制。其中重试的timer原定是可配置的,就是服务端改了数值,客户端与服务端交互消息之后就起效。客户端版本发布之后,发现客户端一直按默认值执行,更改timer的配置无效。同事debug后,发现消息在从服务端发出去之前就不对了。获取配置后给消息赋值时打出来的timer的数值是正确的,序列化后再发送出去之前再打出来就不对了。代码逻辑看起来完全正确...
2011-09-26 22:52:02 2067
原创 大学毕业,真正的学习才刚刚开始
最近读到两篇文章,觉得他们的观点挺有意思,所以分享一下。第一个是:The Truly Educated Never Graduate文章全文在以下链接:http://stoffe.deephacks.org/2011/08/09/the-truly-edu
2011-09-11 18:50:13 2677 2
原创 Java虚拟机(JVM)内部干些什么
来自一家开发商业Java虚拟机的公司Azul Systems的 Ian Rogers博士,2011年5月27日做了一次演讲 叫“Learn about JVM internals - what does the JVM do?”。简单讲解了Java虚拟机内
2011-08-10 23:49:15 2296 1
原创 Facebook的服务器架构
大体层次划分 Facebook的架构可以从不同角度来换分层次。 一种是:一边是PHP整的经典的LAMP stack;另外一边是非PHP整的各种service。Facebook的页面从刚创立的时候扎克伯格写的,到现在,都用PHP开发。后端有用各种语言开发的service。它们之间用跨语言的thrift RPC通信(Scribe也是建立在Thrift之上
2011-06-09 16:45:00 9319 6
原创 Oracle的高可用
快速浏览了一下Oracle官方的网页以及非官方的ppt,简单了解了一下Oracle提供的高可用方案。主要有三种: 1. RAC RAC, Real Application Clusters 多个Oracle服务器组成一个共享的Cache,而这些Oracle服务器共享一个基于网络的存储。这个系统可以容忍单机/或是多机失败。 不
2011-05-20 00:40:00 2648
原创 Twitter的服务器架构
三字要诀Twitter的工程师把他们构建高效率,可伸缩的系统的经验总结为三字要诀:partitioning(分片), indexing(索引), 和 replication(复制)。分片(partitioning)技巧Twitter上的tweet有两种
2011-04-10 15:58:00 3350
原创 试了一下一致性哈希(consistent hashing)
普通的一致性哈希(consistent hashing)是这样,在哈希环上为client顺时针选取最近一个server: 在某个paper上看到一种变形,具体哪个paper忘了,它是这么做的,就是选取前后两个server,每个client对应两个server,而不是一个: 为了写代码方便,最后实现的是这种: 为一个
2011-02-01 12:42:00 3922 5
原创 Skype的服务器架构
这篇文章 SKYPE's Roadmap and Architecture 简化地描述了Skype的架构。Skype的数据库团队leader Asko Oja 的幻灯, http://www.slideshare.net/highload/asko-oja-moskva-architecture-highload-presentation 则说Skype使用了PostgreSQL和Skype贡献的开源工具(plProxy, pgBouncer, PgQ...)做分布式数据库。终于具
2011-01-25 23:36:00 3075 2
原创 Flickr的服务器架构
前Flickr的架构师 Cal Henderson,在 Flickr: Web Services 这个PPT中,有对其架构比较全面的阐述。Flickr运维团队的John Allspaw,有两个讲LAMP的幻灯,Hardware Layouts for LAMP Installations 和 capacity planning for LAMP,但应该是Flickr架构演进和运维的一些经验总结,其中也透露一些服务器架构。John Allspaw也很强调测量(measurement)的重要
2010-12-31 00:55:00 1220
原创 Mixi的服务器架构
Mixi的CTO Batara Kesuma 在PPT mixi.jp scaling out with open source中讲他们怎么使用开源工具做向外扩展伸缩的。主要是怎么对MySQL数据库做切分(partitioning)。Mixi还被MySQL官方收为案例之一:mixi Delivers Massive Scale-out with MySQL这篇文章memcached全面剖析–5. memcached的应用和兼容程序(翻译自日文文章 http://gihyo.j
2010-12-24 11:36:00 1225
原创 Redis的源代码分析
比较全面但不太详细的分析:Redis: under the hoodRedis的字符串实现:http://code.google.com/p/redis/wiki/HackingStringsRedis的事件库:http://code.google.com/p/redis/wiki/RedisEventLibraryRedis的虚拟内存实现:http://code.google.com/p/redis/wiki/VirtualMemorySpecification简单
2010-12-14 01:42:00 4868
原创 Redis Cluster预览
当前稳定版本的redis(2.0.4)只支持简单的master-slave replication:一个master写,多个slave读。只能通过客户端一致性哈希自己做sharding。Redis Cluster是下个版本开发的重点,会有集群的自动sharding,多节点容错等等。10月份,Redis的作者Salvatore antirez Sanfilippo在伦敦的Redis London Meetup会上做了演讲,介绍了Redis Cluster。Youtube已经上传
2010-12-12 13:02:00 2822
原创 软件架构师(Software Architect)成美国最佳职业
CNN排出了全美100个最佳职业,其中 软件架构师(Software Architect) 竟然排在第一位:1 Software Architect 34% 2 Physician Assistant 39% 3 Management Consultant 24% 4 Physical Therapist 30% 5 Environmental Engineer 31% 6 Civil Engineer 24% 7 Database Administrator 20%
2010-10-28 21:19:00 1413 2
原创 RTLinux的架构
偶尔听到 实时Linux, 也就是 Real Time Linux - RTLinux. 不过都没去仔细了解。为什么会有实时Linux,估计大家都知道,普通Linux内核是作为通用系统设计,追求应用任务的平等调度和总体吞吐量,而不保证实时性。而很多嵌入式的应用场合对硬实时性(hard real time)有要求。RTLinux就是声称可以满足硬实时性的一种Linux。偶然看了一个infosys的一个关于RTLinux的幻灯(http://linux-bangalore.org
2010-10-24 22:14:00 2370
原创 Redis server主从之间的断开重连
最近某项目,用了开源的 key-value 存储 Redis server,同事提出来用的。会部署一个master和若干个slave。slave和master同步。开发完了上线。第二天,发现slave与master断开了。master和slave放在不同机房的。进程都还在,只是没有同步,数据没有更新,因为master显示连接的slave少了。这太吓人了,不会简单的断开重连都没实现吧,redis。进一步分析,一开始如果slave没连上master,是会一直重试连接的。中间如果重启mas
2010-08-31 21:38:00 3973
原创 北电的产品卖给Ciena后被拿去开源
北电的城域以太网事业部MEN卖给Ciena后,DRAC产品被Ciena开源了。叫Open DRAC:http://www.opendrac.org/DRAC意思是动态资源分配控制器,它的基本理念是把网络作为一种资源来管理分配,和传统的计算,存储一样。要通过web页面注册,等人工回复拿到账号,才可以查看文档和下载代码。整个DRAC都用Java实现,代码用SVN check out下来有几百兆,花费时间挺长的。
2010-06-21 11:30:00 1038
原创 NetPeeker的替代工具
用NetPeeker这个工具,可以方便地看到你写的程序建立了多少网络连接,TCP的还是UDP的,速率是多大,还可以随意切掉任一个连接。所以在你测试,调试的时候,都挺有用的。不过它是商业软件,过了试用期没有lisense就用不了了。 还好,免费的工具有一替代品。你如果只是要看程序有多少网络连接,速率,开了那些TCP/UDP端口,其实用360就可以看。但360没办法随意切掉某个连接,这个调
2010-05-28 21:56:00 1482
原创 Windows上的异步通信程序库CAsyncSocketEx
Windows上的异步通信程序库CAsyncSocketEx CAsyncSocketEx是一个叫Tim Kosse的2003年发布到codeproject.com上的一个小程序库(http://www.codeproject.com/KB/IP/casyncsocketex.aspx),说是MFC的CAsyncSocket的替代品和改进品。 作为异步通信,CAsync
2010-05-17 21:59:00 3168
原创 为私有协议写一个wireshark插件
为私有协议写一个wireshark插件 为公司私有协议写了一个Wireshark插件。这样可以直观分析抓到的包,对开发和调试都可以带来一些方便。 首先编译wireshark就挺折腾的,参考了网文还有Wireshark官方的 developer guide也还有一大堆错误,并且折腾到最后生成的wireshark exe文件还执行不了。。。幸好编译的插件可以用:) 有很
2010-05-15 00:22:00 2400 3
原创 推荐一个画call flow的好工具
推荐一个画call flow的好工具 作者:千里孤行(http://blog.csdn.net/yanghehong) 推荐一个画call flow的好工具,callpot。可以到SourceForge的项目主页下载:http://sourceforge.net/projects/callplot/ 下载下来的是文件后缀是1,可以改后缀为.rar然后解压缩。这个网页上并没有
2010-05-06 12:29:00 1479
原创 Linux上TCP丢失小包不可见的解决
Linux上TCP丢失小包不可见的解决 作者:千里孤行(http://blog.csdn.net/yanghehong) 有网友在做一个Linux上的客户端碰到这样的问题: 我们在Linux下开发一个网络客户端程序(服务器是不可修改的),不断向服务器不定期发送一些很小的包(一般只有几十字节),现在出现这种情况:大部分包正常发送,但是当无线Modem断开的时候,如果这个时候
2010-03-16 23:15:00 2160 2
原创 IM系统 文件传输的断点续传
IM系统 文件传输的断点续传作者:千里孤行(http://blog.csdn.net/yanghehong) 一般的IM系统,除了基本的文字聊天功能之外,还可以传输文件。 而文件传输,断点续传基本上是一个基本需求了。(哈哈,貌似QQ也经历一个从无到有的过程,一开始的文件传输并没有支持断点续传,多年前的事不知道有没记错:)) 断点续传是需要发送方程序和接收方程序)相互配
2010-03-14 00:10:00 1444 2
原创 中国公司使用巴西文字插图介绍产品?
在google查论坛里头的新加坡公司Jitcomm是干什么的,翻到广州一同类型的公司,看到它的一个网页http://www.dtonecn.com/traffic.html 在介绍它的“业界最高性能的流量控制器”。结果发现上面的插图上的文字竟然没看懂,不是中文,也不是英文: 什么 Rede Local, Servidores Corporativos, Monitorar Imagen
2010-03-02 22:51:00 1256 1
原创 关于 《XMPP: The Definitive Guide》
关于 《XMPP: The Definitive Guide》作者:千里孤行(http://blog.csdn.net/yanghehong) 这本书 XMPP: The Definitive Guide: Building Real-Time Applications with Jabber Technologies 是09年出的, 作者是Peter Saint-Andre (
2010-02-23 17:54:00 1619
原创 Chrome浏览器的证书管理
Chrome浏览器的证书管理 作者:千里孤行(http://blog.csdn.net/yanghehong) 当浏览HTTPS开头的网站时,网站的服务器会发一个数字证书过来,浏览器和人需要对其做有效性验证。这个过程中,需要从本地的证书库里头找出证书的颁发机构(certificate authority ,CA)的证书来对网站服务器的证书做验证。这些CA的证书是浏览
2010-02-17 18:07:00 27526 2
原创 GPRS移动数据网络 – Charging Characteristics(计费特性)
GPRS移动数据网络 – Charging Characteristics(计费特性) 作者:千里孤行(http://blog.csdn.net/yanghehong) 这里要说的是Charging Characteristics,把它翻译作计费特性,是因为看到网上有这样翻译的。不知道是不是最恰当,因为标准中是区分Charging和Billing。两个单词都比较长,为了简单,
2010-02-09 01:51:00 2828 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人