架构设计:远程调用服务架构设计及zookeeper技术详解(上篇)
一、序言 Hadoop是一个技术生态圈,zookeeper是hadoop生态圈里一个非常重要的技术,当我研究学习hadoop的相关技术时候,有两块知识曾经让我十分的困惑,一个是hbase,一个就是zookeeper,hbase的困惑源自于它在颠覆了我对数据库建模的理解,而zookeeper的困惑却.... ...
JavaScript性能优化
如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度。 这种情况下决定程序速度的另一个重要因素就是代码本身。 本文分门别类的介绍JavaScript性能优化的技巧,并提供相应的测试用例,供大家在自己使用的浏览器上验证, 同时会对特定... ...
细说WebSocket - Node篇
在上一篇提高到了 web 通信的各种方式,包括 轮询、长连接 以及各种 HTML5 中提到的手段。本文将详细描述 WebSocket协议 在 web通讯 中的实现。 一、WebSocket 协议 1. 概述 websocket协议允许不受信用的客户端代码在可控的网络环境中控制远程主机。该协议包含一个 ...
“不给力啊,老湿!”:RSA加密与破解
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 加密和解密是自古就有技术了。经常看到侦探电影的桥段,勇敢又机智的主角,拿着一长串毫无意义的数字苦恼,忽然灵光一闪,翻出一本厚书,将第一个数字对应页码数,第二个数字对应行数,第三个数字 ...
Visual Studio 常用快捷键
最近看到很多同事用 VI 来开发Ruby,Python脚本。 编辑代码全部用的是快捷键,效率很高。 其实Visual Stuido也有非常多的快捷键,熟练运用后,能大大提高工作效率。 本文介绍一些最常用的快捷键本文用的GIF动画图片,是通过LICEcap工具录制的。 阅读目录 VS快捷键教程 htt ...
跟我一起云计算(5)——Shards
什么是shardingSharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库 (server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表... ...
由浅入深表达式树(二)遍历表达式树
为什么要学习表达式树?表达式树是将我们原来可以直接由代码编写的逻辑以表达式的方式存储在树状的结构里,从而可以在运行时去解析这个树,然后执行,实现动态的编辑和执行代码。LINQ to SQL就是通过把表达式树翻译成SQL来实现的,所以了解表达树有助于我们更好的理解 LINQ to SQL,同时如果你有... ...
Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件、目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作。。。一、原始版本控制 最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本。有时候偷懒省事,保存副本时命名比较随意,时间长了就不知道哪个是新的,哪个是老的了..... ...
如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人。传统的hibernate直接插库基本上是不可行的。我就一步步推导出一个无锁的数据库操作。1. 并发中如何无锁。一个很简单的思路,把并发转化成为单线程。Java的Disruptor就是一个很好的例子。如果用java的concurrentCollection类去做... ...
背后的故事之 - 快乐的Lambda表达式(一)
快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜。它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能降低发生一些潜在错误的可能。LINQ包括ASP.NET MVC中的很多功能都是用Lambda实现的。... ...
Hello Web API系列教程——Web API与国际化
软件国际化是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,在创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。这在很多成熟和软件开发平台中非常常见。在.net平台中,软件的国际化主要依靠工作线程的国际化来完成。在.net框架的的处理线程中,我们通过设置Thread... ...
如何通过预加载器提升网页加载速度
预加载器(Pre-loader)可以说是提高浏览器性能最重要的举措。Mozilla 官方发布数据,通过预加载器技术网页的加载性能提升了19%,Chrome测试了 Alexa 排名前2000名网站,性能有20%的提升。 它并不是一门新技术,有人认为只有 Chrome 才具备这个功能。也有人认为它是有史... ...
在C#代码中应用Log4Net系列教程(附源代码)
Log4Net应该可以说是DotNet中最流行的开源日志组件了。以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了。没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这系列的教程讲的是Log4Net的应用。学习完这系列的教程,你可以实现如下图一样整洁、醒目的日志文件。... ...
设计十日谈[一]产品、设计
笔者为某云计算公司产品经理,负责产品的产品设计与前端开发管理。在工作引发了公司级别对产品和设计的讨论,有了以下文章。原文均作为邮件发在公司内部,以下截取出来希望收到更多的讨论。weibo:@侯振宇L4这不是产品手册,我不会直接讲重点。你能从中读出什么,那取决于你了。读的语速超过160,那也不用读了。... ...
在创业型软件公司的收获
我在两家创业公司工作过。A公司,由3人发展到20人;B公司,由20人发展到60人。这两家公司都不算成功,因此,要讲收获,更多的是经验与教训。就如同教材一样,反面教材更加有教育意义。我针对创业公司面临的重要问题,谈谈我的想法。 ...
也谈项目经理与敏捷开发
项目第一阶段结束,各个组员也在自己学习相应的知识,没有人催促他们去学习,也没有人上网聊天看电影之类的,这样一个氛围的形成,和项目组中项目经理有很大的关系。我本人也是敏捷的拥护者,恰好今早看博客园时看到两篇文章:有些感慨很想写下来与各位分享一下。第一篇:敏捷中的沟通与故事点第二篇:亲爱的项目经理,我恨... ...
不定义JQuery插件,不要说会JQuery
一:导言 有些WEB开发者,会引用一个jQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery。我曾经也是这样的人,直到有一次公司里的技术交流,我才改变了自己对自己的看法。 二:普及JQuery知识 知识1:用JQuery写插件时,最核心的方法有如下两个 ...
高并发服务端分布式系统设计概要(上)
高并发服务端分布式系统设计概要(上) 张峻崇 原创。转载请注明出处。 又是快一年没写博客了,2013年也只剩尾巴,也不知道今年都忙了些什么。写这篇文章的目的,主要是把今年以来学习的一些东西积淀下来,同时作为之前文章《高性能分布式计算与存储系统设计概要》的补充与提升,然而本人水平非常有限,回头看之前写 ...