自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 电信网络性能质量测量

服务质量基本含义固定电话网络3G/2G手机网络VoIP

2010-07-27 21:40:00 1911

原创 北电的产品卖给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关注的人

提示
确定要删除当前文章?
取消 删除