- 博客(157)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Azure多磁盘构建RAID-0后,Host-Cache相关性能测试
在Azure文档中有一段关于如何让虚拟机的存储性能提高的介绍,基于此进行对比测试To achieve scalability targets in Premium Storage, for all premium storage disks with cache set to ReadOnlyor None, you must disable "barriers" when y
2017-04-18 16:09:31
2098
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 三问微服务
微服务是一个越来越热的话题,讨论的问题都大致是我有一个单体大应用,如何拆成微服务?如何保证保证拆了微服务以后,微服务之间的依赖性?服务之间调用的性能问题?分布式一致性问题?现在也有越来越多的讨论微服务与组织架构的对应关系
2017-03-02 11:01:19
3081
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一个有意思的Ruby Webdriver超时问题的解决过程
因为写ruby的时候感觉混身上下都拽起来了,所以比较喜欢用ruby写代码。今天遇到了一个webdriver timeout的问题,问题本身还是因为我对webdriver不了解以及破文档导致的。首先我们把问题简化一下:driver = Selenium::WebDriver.for :safaridriver.navigate.to "http://www.faraway.com"wait = Selenium::WebDriver::Wait.new(:timeout => 1000) # seco
2014-07-04 18:33:12
3839
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 使用gulp构建nodejs,你只需要记住5个函数
gulp是一个nodejs的streaming构建工具,所谓的streaming大致意思就是把构建流程想成一个个链接的管道(pipe)。为什么要这样做呢?要解释原因,就不得不提到unix。unix本身只提供了数量相对较少的命令,但是你可以命令的组合完成很强大的功能。命令和命令之间的衔接通常就用的是pipe。类似,使用gulp,你仅仅只需要记住5个命令。这5个命令就是gulp提供给我们的一套streaming构建的架子,也就相当于提供了unix中的pipe功能。至于说pipe中每个命令的功能,则可以使
2014-07-02 21:36:50
54554
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 小话HTTP Authentication
Authentication就是要证明你是谁。举个例子,你告诉别人你的名字叫Alice,怎么样让别人确信你就是Alice,这就是Authentication。
2014-06-05 23:39:33
27100
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Log4j ObjectRenderer定制对象显示
log是每个应用必备的功能,log4j是其中使用很多的一个:logger.info("something happend");可能有人认为log4j只能log一般的String,其实不然,log4j也能log一般的Object:logger.info(new Hello("kiwi", "Good morning"));但是这个时候,显示的是:0 [main] INFO
2014-04-09 15:08:53
2907
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 HTTP/1.1 Cache中Expiration机制
Cache是一种常见的提高系统的运行效率的方法。在HTTP/1.1中,通过Cache的Expiration机制,让尽可能减少由Client向Server发送请求的次数。这篇博客简单介绍HTTP Header中与Expiration相关的字段。1. ExpiresExpires早就存在于HTTP/1.0,是由服务器指定的Response过期时间。表明在Expires这个时间点之前
2014-03-27 23:28:05
3993
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 DuckDuckGo + Alfred
DuckDuckGo 如果翻译成中文就是 “鸭儿鸭儿走”这个搜索网站最近炒的很火热。受不了了,自己也来试试。DuckDuckGo主页:http://duckdukgo.com/DuckDuckGo最好玩儿的应该就是它的Bang语法了:https://duckduckgo.com/bang.html比如你想要在maven仓库中查找spring-code这个jar:在搜
2014-03-06 20:13:56
2654
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring Transaction属性之Isolation
上一篇博客《Spring Transaction属性之Propagation》讲解了Propagation相关的知识,这篇博客主要关注于Isolation这个属性。一、Isolation基础请先移步Wikipedia:isolation.Isolation Level VS Phenomena上图来自wikipeida。注意:Isolation Level仅仅会
2014-03-04 19:40:10
27642
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring Transaction属性之Propagation
我们平常使用spring transaction时,我们大多都习惯于使用@Transactional,对于这个annotation可以有些什么配置,在什么情况下使用了解比较少。这篇博客主要关注于@Transactional中4个属性之一 -- propagation。Propagation取值:REQUIRED(默认值):在有transaction状态下执行;如当前没有transa
2014-03-01 15:04:04
78920
12
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 21点(Blackjack)与概率
去年的时候,看过一本书《醉汉的脚步》。这本书也是我至今看过的最精彩的数学书之一,中间讲了很多和概率有关的故事。让我重新燃骚起了对概率的兴趣与痴迷。概率的起源很大程度来源于赌博,在几百年前的欧洲,赌博之风盛行。大家都在琢磨扔两个色子,哪个数字出现的概率更大,大多少。那个时候的人们对于概率就已经有了朦胧的向往。最近又看了一本书《Bringing Down the House》,这本书讲述了
2014-02-18 23:10:10
15113
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 白天不懂夜的黑--java中时区的问题
今天早上,项目站会,在澳大利亚的客户说,我们应该在提交代码之前在本地跑测试。我心里觉得委屈啊,我提交代码的时候的确都是跑了测试的啊。多争无益,于是,我又去看看代码到底是不是有什么问题。在我的DA(Desktop Anywhere)中,我使用和CI上相同的命令又跑了一次,还是OK的。在这里被卡住了一下,于是找澳大利亚的客户帮忙看看是不是CI上的配置发生了变化。客户说CI是
2014-02-13 20:23:50
1627
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IntelliJ Live Template进阶使用
在《IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题》中简单的介绍了为什么要使用Live Template,以及Live Template可以给我们带来怎样的好处,这篇博客将会介绍如何使用Live Template中的一些进阶功能。回到第一篇博客的例子,java中的foreach语句:这里的items这几个字是由In
2013-12-26 17:50:03
21819
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 丢弃重口味的xml配置--spring4用groovy配置bean
spring4之前,bean的配置可以主要分为两种方式,一种是使用基于xml,个人非常讨厌这种方式,因为明明一件很简单的事,放在xml中就会多了不少繁杂的信息。另一种方式是基于java的配置。在几天前release的spring4中,我们可以用groovy作为spring的配置文件啦!比起最早的基于xml配置,使用groovy会更加灵活,而且干扰信息会更少。
2013-12-21 17:29:29
38351
11
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Dokku:搞一个你自己的'Heorku'
在上一篇博客《Heroku:快速部署Dropwizard开发的RESTful Service》中,我们使用了Heroku这个PaaS进行快速部署。如果因为某些原因,你觉得把你的Service部署到Heroku这样的public PaaS不太靠谱或者在需求上做不到,你也完全可以动手自己做一个类似Heroku这样功能的PaaS平台。而且,很幸运,有现成的Open Source工具Dokku,可以帮
2013-12-12 20:59:25
8788
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Heroku:快速部署Dropwizard开发的RESTful Service
上一篇博客《Dropwizard:用Java轻轻的写一个RESTful Service》中讲到了使用Dropwizard可以快速的开发出一个RESTful service,同时因为Dropwizard使用的是Jetty Embedded Container,就可以不再需要繁琐的去安装相应的container,以及其他的好处(参考《Embedded Server:像写main函数一样写Web Server》)。唯一需要的东西,只是java的运行时环境。为了说明这样带来的好处,这篇博客将会采用大家耳熟能详的一个
2013-12-12 11:12:19
6068
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Dropwizard:用Java轻轻的写一个RESTful Service
在我的上一篇博客《 Embedded Server:像写main函数一样写Web Server》中,提到了使用Jetty Embedded Server进行Java Web Server的开发比传统的Web Container的方式进行开发的优势。如果直接使用Jetty提供的API进行Web Server的开发,特别是RESTful service的开发,难免看起来还是简单粗暴了一些。
2013-12-10 14:22:58
18750
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Embedded Server:像写main函数一样写Web Server
1.传统的JEE Web Server 传统的JEE中,如果我们想要部署一个Web Application,我们需要首先安装一个Container Server,如JBoss,WebLogic,Tomcat等。在安装这些Container Server作为我们的开发或者部署环境时,我们还需要注意配置的一致性。 配置好Container Server以后,如果我们想开发一个Web App
2013-12-08 21:20:11
6296
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题
程序员的工作不是写程序,而是写程序解决问题。做到心中无码,才更容易专注于解决问题。
2013-12-04 11:20:36
19540
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 在IntelliJ下使用instance method替换static method
intellij重构static method到instance method
2013-11-14 13:31:20
2864
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 在IntelliJ下如何做parameterize method的重构
今天在做项目的时候,发现在测试代码中有一个bad smell。在准备数据的时候,有些代码在结构上是类似的,可以用parameterize method的方法进行重构。那么在intellij下怎么更高效的做这样的事情呢?
2013-08-19 21:19:51
3117
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 1+1/1+1/2+1/3 + ...+1/16的整数部分是多少?
问:1/1 + 1/2 + 1/3 + 1/4 + ... + 1/36 的整数部分是多少?
2013-07-21 23:39:41
6690
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Linux终端中使用上一命令减少键盘输入
减少键盘输入,可以大大提高程序员的工作效率,快捷键的使用就是一个很好的例子。程序员经常使用终端。那么在终端上有没有类似的“快捷键”可以提高我们的效率呢?程序员的工作往往是前后相关连的。所以,本文将演示如何使用上一条命令提高工作效率的。
2013-07-03 08:43:26
22864
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一个被烂眼儿公司水了的同学
前天,大家都在高高兴兴吃毕业散伙饭的时候。W同学站起来,端着酒杯,说,给大家说一个坏消息--我的工作弄丢了。瞬间,气氛尴尬了。W说,原来他跟公司说好,答完辩就到公司实习。公司也同意了。但前天打电话给那公司的时候,公司却说,因为他没有去实习,就取消offer了。大家都在咒骂那家公司。那家公司叫“我要去哪儿网”,http://517na.com,不是“去哪儿网”,是“我要去哪儿网”
2013-06-09 00:35:45
2470
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Clean Talk
我一直很重视各种形式的演讲,因为演讲是非常好的锻炼思考、检验学习成果的机会。我也一直在思考怎么样能够讲的更好,怎么样能够用最短的语言表达想法。上周我讲pecha kucha,想通过对比用lisp和java实现链表翻转,说明编程语言会影响人的思考。下来以后,刘同学跟我说我没有讲清楚。我自己也不满意。但有一点我觉得自己做的比较好,我请人用mini把我讲的过程完整的录下来了。当我
2013-04-23 19:30:22
1388
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 前辈的问
昨天参加公司的培训,中间有一轮做pecha kucha。中间有一个环节让我很难忘,也是昨天我觉得收获最多的一个地方。有一个同学讲的是她自己的一个会议上发表的文章。是基站在不同的负载情况下,利用一个switch选择不同功率,从而节省能耗。也许是沉醉于这个同学流利的英语,讲完的时候,大家都没有什么特别的反映。大熊发问了。说:“这个东西能够产生多大的价值?”同学:“我们这
2013-04-14 12:38:39
1608
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 忆前年ThoughtWorks面试经历--用门开啤酒
本来想不写这样的文章,觉得这种回忆过去的东西,都是一些有文化有层次的人写的。我这种小屁孩儿没做出个名堂,写了这种,以后要是还没出息,不久留下笑话的把柄了吗。后来看到微薄上别人写的回忆面试什么的,感觉写的可开心了,我也就想开心开心。要是以后没什么出息,就当我是个棒槌吧。 大四的时候,给导师做一个项目,是一个用来处理地震数据的分布式批处理系统。有一天,导师把我叫到了办公室,说周六的时候要
2013-03-06 18:20:53
5322
6
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 塔式起吊机是怎么安装的?
昨天回家,市区漫天的灰尘,到处都在修,修房子,修二环路。看到一个很高的塔式起吊机。我就想到了几个问题这么长的长臂是怎么弄到那么高的未知的?后面那几个大石板放在后臂是怎么弄的?想起那些几十层的塔式起吊机又是怎么弄的?如果我是这个工程的施工人,我会怎么去弄?好像是个有点儿意思的问题。我想了一个下午,然后到网上搜了下,可以看下这个视频:http://www.tudou.com/p
2013-02-02 12:24:37
5528
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 有多大的概率会迟到?
小A在早上去教研室的路上,看到了胡博,大叫了一声“混蛋!(胡博的绰号)”。胡博回过头,还看到了小B和小C。胡博还在慢悠悠的走,小A就说:“胡博,你看到我们三个走在一起,你还不走快点儿,不怕迟到么?” 好吧,我就是小A。谢天谢地,今天没有迟到。我坐在位置上的时候,就在想刚才发生的事,我告诉胡博,他同时看见了我,小B和小C就应该走快点儿,是对的吗?那他又有多大的可能会迟到呢?
2012-12-28 16:03:55
2110
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 记一次讲座与前辈的对话
今天晚上听公司的技术讲座,讲公司是怎么做软件的。到了Q&A环节时,一位同学说到制定项目计划的问题。 当时,我的两个同学都在很好奇的发短信问我提问的奖品是什么。说实话,我也没搞清楚,公司每次的小奖品,你不琢磨一下,你真不知道是干什么的。以前有过像黑板檫的鼠标,这次感觉像是一个带指南针的小刀,好奇怪的组合啊。同学问了问题后,公司一位前辈坐在我前边,转过来问了我对这个提问的想法。我就说这个计划可能
2012-12-19 09:43:50
1618
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从small到safe,形容词的学问
高中的时候,历史老师黄勇是个非常有趣的人。黄老师讲课的时候眉飞色舞,我一个哥们说,上他的课你不可能睡觉。因为太有趣了。也很幸运有这么好的老师。黄老师是特级教师,后面好像去了教育局。也是很遗憾的。 历史上经常会有什么新革命,新变法之类的。每次,遇到这种带有“新”字的东西,黄老师都要问,“这个‘新’,‘新’在哪里?”。当你不断的被重复某句话的时候,你很难不记住这句话。就好像恒源祥的广告,“
2012-11-13 18:42:32
3649
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从高中一次半夜不冲厕所的经历谈程序
我高中的时候,是住校生。寝室到了10点半就会熄灯,早上6点40左右就要起来跑早操。 一天半夜大概两三点,起床放了个大号。想要充厕所的时候发现没有水,很尴尬,也没有其他的办法。半夜还冷的很。就上床睡觉了,想着明早一早起来的时候冲就是了。 等到第二天早上,一早起来,急急忙忙的出早操,生怕迟到,迟到是会被班主任老左骂的,我也就忘了冲厕所。等中午回到寝室的时候,宿管大叔找到我说我没有冲大便
2012-11-11 12:09:25
16698
66
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 那些烂代码教给我的事
(以前的博文,转到csdn上来)如果作为一个程序员,你对我写的东西不感兴趣,可以直接跳到最后一句。这周三的时候,我还是跟往常一样在做我的事,偷偷摸摸学点儿ror。一个老师让一个同学叫我过去帮忙看程序,说是程序编译不通过。。。先说明,这个项目组的项目是一个地质相关的绘图软件,大部分的程序设计到石油数据,和一些计算机图形学的东西,是跟中石油合作的,有大概8、9年的样子了,无测试。几
2012-10-20 20:47:15
3028
6
原创 MySQL中优化存储UUID
关于MySQL中UUID的一些性能存储介绍可以参考Percona相关博客:https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/概括主要以下几点:1. 直接存uuid,存储空间较大2. uuid生成没有“自增”性质,会导致数据插入缓慢解决办法:对uuid进行重排序,使用uuid中的时
2017-06-09 10:49:46
3640
原创 MySQL SELECT中LIMIT时EXPLAIN估算ROWS不准确的替代方法
在MySQL性能调试中,常常使用EXPLAIN解释MySQL执行计划,从而用来估算性能耗时。其中,rows用来表示在SQL执行过程中会被扫描的行数,该数值越大,意味着需要扫描的行数,相应的耗时更长。但是需要注意的是EXPLAIN中输出的rows只是一个估算值,不能完全对其百分之百相信,如EXPLAIN中对LIMITS的支持就比较有限。可以参考文章《MySQL EXPLAIN limits an
2017-05-22 20:57:55
10280
原创 Java NIO Fundamentals
Basic Concepts1. Channel & Buffer: data is always read from channel to buffer, or writtern from buffer to channel2. Non-blocking IO: non-blocking while read and write data3. Selector: A single t
2016-06-25 17:51:18
2022
转载 redux笔记
IntroductionMotivationhttp://redux.js.org/docs/introduction/Motivation.htmlMutation & AsynchronicitySolving by imposing certain restrictions -- PrinciplesPrincipleshttp://redux.js.
2016-03-30 18:22:03
2065
原创 【ES6】之 Arrow Function箭头函数
基本语法1. 更简洁的代码,摆脱function[1, 2, 3].map(function(x) { return x * 2});es6:[1, 2, 3].map(x => x * 2);2.语义化的this在es6之前,函数都定义了自己的this值,这样会带来一些混乱//在strict mode下var self = this;a
2016-03-29 18:21:23
3796
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人