自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于锁--实现原理(一)

通过上次的起源中,我们可以看到锁的必要性。那么为什么会出现两个线程会同时修改那个变量i呢?这个是因为多线程执行的机制造成的。在单核情况下,是怎么实现并发的呢?通常我们知道是靠CPU分片执行实现的,但是不知道是因为中断来实现的CPU分片。我们将i++操作分解开来,可以写成如下汇编的方式(假设存放变量为TMP,寄存器为AX,tmp值为0): mov ax tmpadd ax 1mo...

2014-03-09 09:08:09 174

关于锁--起源

最近在设计分布式系统中以及性能优化中都会多多少少用到一些锁,又经常被人问到,闲暇之时总结一下关于锁的一些理解。锁的出现是因为有并发,当完全串行的时候,你根本不需要考虑某个资源会被多个消费者消费的情况,完全是一种瀑布流模式。但是如果串行的弊端(等待)成为瓶颈的时候,我们会引入并发来优化系统,这样就会导致同一个资源会被多个消费者同时来消费。最简单的例子,执行i++的时候,系统会进行两次操作,第一次将i...

2014-03-09 09:04:39 158

原创 HttpClient引起的TCP连接数高的问题分析

【问题现象】系统上线后出现TCP连接数超过预期阀值,最高值达到8K左右,新上线代码中包含了一文件上传操作,使用的是apache的commons-httpclient包。 【问题分析】1、先确认是否存在连接未关闭问题引起的。观察发现,TCP连接数不是一直在增长,而是会有所下降。并且当业务低峰期TCP连接数TCP连接数会降到100左右,这说明TCP连接还是会关闭。 2、...

2014-02-22 07:11:36 1548 1

python学习--新型对象模型和传统对象模型

1、新的对象模型提供了两种类方法(传统对象模型没有这些方法):静态方法和类方法2、静态方法可以直接被类或类实例调用。它没有常规方法那样的特殊行为(绑定、非绑定、默认的第一个参数规则等等)。完全可以将静态方法当成一个用属性引用方式调用的普通函数来看待。3、一个类方法就是你可以通过类或它的实例来调用的方法, 不管你是用类调用这个方法还是类的实例调用这个方法,python只会将实际的类对象做为该方法的...

2013-03-31 12:17:01 141

python学习--对象特殊方法列表

名称(省略双划线)说明call为实例添加调用方法,如实例x是Class C的实例,则调用x()时会调用Class的call方法cmp比较方法del垃圾回收之前会调用,开发的时候要小心使用这个方法,因为这个方法可能会引起不会进行GCdelattr当要求解除绑定关系时,会调用这个方法eq ge gt le lt nex==...

2013-03-30 22:18:32 123

编程语言学习之惑

最近喜欢上了python,吸引我的地方的是其简洁之美以及方面的类库,于是最近一个月我几乎都将业余时间交给了python,但是越学习越觉得迷茫。 “学习编程语言的过程实际上就是学习该编程语言的语法+该编程语言的类库”,这句话不是我说的,也不止一个人提到过。一门编程语言的语法其实也很简单,估计会任何一门编程语言的人拿出来一天甚至是半天的时间都可以学会,但是学习该编程语言的类库又是一个漫长的...

2013-03-30 15:23:46 79

Eclipse的console没有输出的问题解决办法

1、问题现象在Eclipse中运行单元测试用例或者运行其他的程序,执行完了,也没有错误,console也没有输出。即使是用哦最简单的hello word做测试也是一样。 2、问题原因工程使用的JVM错误导致,更换了project 的JVM之后,问题解决。...

2013-03-24 13:14:10 2610 2

数据挖掘初试

最近在学习python,也看到了python在数学计算方面的优势,特别是numpy和scipy的强大,恰好看到一个数据分析的题目,想拿来练练手。开始做了之后,光顾着解决问题了,没有使用python,反而使用了SPSS来解决的。 一、数据材料手头有的数据包括了两个csv格式的数据集,分别是6000多条的training data和2000多条的validate data 二、处...

2013-03-23 17:41:27 100

python内置函数大全

最近一直在看python的document,打算在基础方面重点看一下python的keyword、Build-in Function、Build-in Constants、Build-in Types、Build-in Exception这四个方面,其实在看的时候发现整个《The Python Standard Library》章节都是很不错的,其中描述了很多不错的主题。先把Build-in ...

2013-03-23 00:27:57 183

解决远程桌面背景变黑的问题

最近一直使用远程桌面连接一台win7的台式机,可是每次连接之后,远程机器的背景就编程了黑色,看起来很不爽。今天在查看远程桌面连接的客户端时,发现了还有这么一个选项: 将这个选项选中之后,就可以了...

2013-03-22 09:19:48 9671

Python学习--第三方类库安装方法

在实现功能上,使用内置函数的优先级要高于使用第三方平台的函数,这个第三方平台的函数包括所使用语言的第三方类库和所在平台提供的shell。这些都是基于可迁移考虑的。 python也有很多第三方类库,这也是其功能强大的原因,不管是专业的数学计算(可以与Matlab媲美),还是专业的图像处理,抑或是复杂的文本计算,都有现成的第三方类库帮助我们实现了。这些类库基本上在https://pypi.p...

2013-03-19 22:50:34 149

效率低下的原因--开发者说

1、老大给我分类了任务,这个是新需求,我只了解这个需求的大概,不了解这个需求的细致业务逻辑是什么,2、老大对需求进行了分析,可是我精力有限,光记住了记住了跟我相关的需求,其他的需求没有太了解,到时候再去说吧。3、我好像之前开发过这样的代码,我去找找在哪里,唉,浪费了半天时间才找到。4、我找到了之前做的代码,可以我发现这个代码里面有很多其他的业务逻辑,我需要把代码拿过来,然后去掉不相...

2013-03-19 00:06:06 328

效率底下的原因--项目管理者说

一、需求阶段1、产品也不知道自己想要的是什么2、产品即使知道自己想要的是什么,也没法给出具体的业务细节,如用户输入应该限制在多少位,是否进行存在性或唯一性校验等。3、即使产品知道自己想要的,也知道业务细节,但是也没法跟开发人员衔接上,往往都是会有误差。4、即使有幸,产品跟技术衔接上了,也很难在以后能记住这些当时的共识。5、即使为了防止以后的遗忘,增加了文档说明,也难以保证文...

2013-03-18 22:17:34 124

对角线删除法

今日在家看到一篇讲图灵机停机问题的文章,在如何证明停机问题是个悖论命题的时候,用到了对角线删除法,看这种方法的时候感觉似曾相识,终于想起来大学的时候讲实数不可列性的时候,也用过这样的方法。 命题:实数集合是不可列的。证明思路:只要证明出来[0,1]是不可列的即可,使用反证法,假设成立,然后构造出来一个反例即可。证明过程:假设[0,1]是可列的,则[0,1]区间中的任何一个数...

2013-03-10 19:06:04 617

新浪微博API的吐槽

周末在家用python开发了发送新浪微博的代码,没有使用它们的sdk,是因为想做个适合自己的,顺便练习一下python。按照新浪微博提供的API文档开发过程中,可谓问题不断,问题原因也是让人大跌眼镜。 1、获取accesstoken的时候老是出现“miss client id or secret”错误。原因:该方法说是只能通过post请求传递,但是参数又必须放到url里面,是get/...

2013-03-05 13:55:59 723 2

树莓派上安装ftp服务--vsftpd

【安装】apt-get install vsftpd 【配置】1、配置文件路径:/etc/vsftpd.conf2、配置用户可以写权限:write_enable=YES3、配置uMask:local_umask=022(默认为077,该种方式不支持断点续传,修改为022)4、禁止匿名用户登录:anonymous_enable=NO5、限制用户访问配置以外的路径:c...

2013-03-02 15:40:16 281

原创 朴素的技术路线

是的,你不是什么大牛,对于那些从大牛口中从容的出来的英文单词云里雾里。但是这并不影响你每天的coding。该分给的任务一分也不少,如果遇到问题,你也是照样得Baidu,然后被百度满屏的治病广告强*奸的不行,转而去群里求一个翻*墙方法。问题还得解决,路还得继续。 是的,你是个卑官微吏,手下小弟不多,还得吭哧吭哧的低头苦干,看看mail list上一个个的Technology Share和...

2013-02-28 23:02:15 99

最后一公里

地图导航类的软件,一公里之外的粒度,基本都没有错,如同别人问你“XX地方在哪里?”,你也能说个大概方位,但是如果粒度再细一点,具体哪个街道,哪个楼,门在哪个方位,基本上都不好使。那个时候,手里拿着再高级的软件也是白搭。 电商流行的时代,阻碍人们网上购物的不是网店上没有你想要的产品或性价比不高,而是你买的东西送不到你那里,特别是如果你是在三线城市或者农村,物流送不达或者久久送不到,谁都知...

2013-02-28 23:00:17 97

文科思维 VS 理科思维

有的人,大多数思维都是严谨的,从节点A到节点B必须经过一个过程,至少是一个推导过程,节点B才能被接受,这种思维可以称之为理科思维。 有的人,大多数思维都是跳跃的,如同花火,他们不在乎节点A与节点B之间是什么关联,只要觉得正确,可能这种正确毫无根据,就可以接受,这种思维可以称之为文科思维。 理科思维的人,有着自己的知识树,这棵树的建立是有着基础的,新的知识点的加入,必须找到书中的合...

2013-02-28 22:59:49 687

浅谈Java中的Hash值

1、Hash值有什么用?     HashMap、HashTable、HashSet,所以涉及到使用Hash值进行优化存储的地方,都会用到HashCode。HashCode是Key,这种计算为提高计算的性能。想想看,一般来说,数组算是比较快的集合类了吧,直接用index定位元素,简直就是O(1)的级别。但是添加元素就不这么乐观了。但是使用hash类的集合,添加元素,移动的元素少,只影响一小块...

2013-02-02 22:41:28 556

接口API设计的注意事项

最近在设计一些基础平台的API,在设计过程中总结了一些经验,记录如下: 1、方法参数不要多。特别是同一种数据类型的方法参数不要过多,一旦过多,调用者容易搞混顺序,搞混了顺序,在编程阶段不会报错,但是在运行时会出错。并且这种错误时不宜排查的。 2、如果方法参数超过4个,若超过则适合使用参数类进行封装。人的记忆一般适合于4个参数左右,参数多了不利于掌握。 3、谨慎使...

2013-01-29 22:23:03 336

谈谈html页面的解析(一)

如今,互联网上的信息越来越多,互联网的信息已经成为一个越来越大的矿山,这个里面有黄金也有垃圾,我们坐在这个矿山上,如何挖掘其中的金子,已经越来越受到重视,而这个挖掘过程的第一步就是需要将这些非结构化的数据转变为结构化的数据。最简单的搜索的爬虫需要这种转变,由WEB到WAP的转码需要这种转变,WEB数据的应用也需要这种转变。我们通过浏览器所看到的页面信息,是由包含了很多的页面元素组装在一起的,其...

2012-09-04 22:45:22 126

使用jquery.form.js的ajaxsubmit方法提交数据的Bug

周五同事遇到一个很奇怪的问题,调到下班,虽然问题解决了,但是不知道问题的具体原因,回来翻了翻代码,才发现症结所在,下面就分享出来,供遇到同样问题的同行们参考: 先把问题描述一下,做的功能是使用ajax向后台来提交数据,为了向用户进行很好的错误提示,后台中将出现错误时的错误原因返回给前端,前端使用jquery.form.js的ajaxsubmit来提交数据,并在success方法中提示“...

2012-09-02 10:42:28 381

谈谈使用iFrame模拟Ajax的问题

几年之前,那个时候Ajax还没有出现(或者说还没有像现在这么火),为了实现向服务器端提交数据而不刷新页面的效果,大多数采用的就是这种隐藏iFrame的方法。下面就简要介绍一下这个方法: 1、处理思路:假设FormA是我们要提交数据的Form,正常来说,向服务端提交数据后,返回的response会刷新当前的Form,也就是页面会刷新一下,但是如果我们将form的target设置到另外一个...

2012-09-02 09:59:31 104

Javascript的异常处理介绍

1、错误报告、错误处理以及代码调试,一直被认为是JavaScript的弱项,直到ECMAScript3和ECMAScript4的退出才得到改善。在ECMAScript中将JS的错误分为语法错误(ERROR)和运行期错误(Exception)。2、不同的浏览器对于异常的处理策略不一样,下面列出了一些常用浏览器对于异常的处理以及一些操作方法:浏览器类型处理方法备...

2012-09-02 09:16:35 162

我们使用到的编码

最近遇到了一个编码转换的问题(GBK到UTF-8再到GBK会出现乱码),所以将我们使用到的一些编码相关的看了一下,包括了ASCII、Unicode、GBK、GB2312、UTF-8等。现在总结一下:1、ASCII码。最原始的编码方式,使用7位进行编码。2、由于ASCII使用的是7位,而一个存储单元是8位,所以有1位是空着的,这就给不同的OEM进行不同的扩展提供了基础。3、ACSII...

2012-08-27 22:44:46 150

原创 Java中去除空格

1、起因今天在解析RSS的Feed的时候,由于需求是需要去掉html标签,仅保留其文本信息。结果在解析某博客的时候发现,解析后的文本信息中前后含有空格,但是在代码已经使用正则表达式替换掉了\t\r\n\f了,并且也使用了trim操作,可怎么还是还是有空格呢?2、分析使用了各种正则表达式来进行替换,结果还是有空格,最后没有办法,查看了这些空格的二进制代码,发现这些空格是0xE3808...

2012-08-14 21:54:48 144

原创 使用Jackson进行Bean与json互换

1、bean到json [code] ObjectMapper m = new ObjectMapper(); String value = m.writeValueAsString(bean); [/code]2、json到bean [code] ObjectMapper m = new ObjectMapper(); ...

2012-06-08 10:20:36 222

原创 抽象类与接口的区别

今天看了篇文章讲抽象类(abstract class)和接口(interface)的区别。文章讲了很多,我觉得两者的区别和联系实际上就是一个事: 抽象类是接口的更进一步具体。或者反过来说,接口是抽象类的更上一层抽取。抽象类一般有一些通用的方法的实现,接口则仅仅是实现了一种契约规则。使用抽象类的好处是,如果修改这一个大类(类似于生物分支中的门纲目等),那么这个门纲目下的所有的种类都会...

2012-05-27 14:43:55 54

原创 文件下载设置文件名和文件类型

1、设置文件名response.setHeader("Content-Disposition", "attachment; filename="+"xxx.xls");2、设置文件类型response.setContentType(mimeType);3、通过文件名获取mimetypeString mimeType = new MimetypesFileTypeMap(...

2012-05-22 10:14:31 306

原创 linux上配置dns

使用root用户修改/etc/hosts文件,添加上需要修改的dns配置即可

2012-05-09 17:02:46 50

原创 mx4j.tools.adaptor.http.HttpAdaptor不能远程访问的问题

使用mx4j.tools.adaptor.http.HttpAdaptor进行了JMX的HTTP Adapter。使用后发现只能在本地(localhost)上访问暴漏的服务,部署到服务器上远程访问不了。后来查看了mx4j.tools.adaptor.http.HttpAdaptor的代码,发现该代码有个host属性,关于该属性的官方文档如此描述:Host: Defines the ...

2012-05-03 16:15:41 208

实验室产品的商用

1、实验室中的产品重点是“行不行”的问题,其重点是理论上能不能行得通。2、商业产品的要求是要高于实验室的要求的,不仅仅是“行的通”还得“行的顺利”,这个里面不光考虑的是功能能够实现,还要考虑大数据量、大并发的情况下的能不能行的顺利,并且为了这个行的顺利而付出的成本是不是值的。3、所以实验室的产品不一定都能够拿来用到商业上的。并且商业上的东西也不见得能够拿到实验室中去研究,商业产品讲...

2012-04-29 15:54:31 105

Jquery几种方法说明

1、click方法 常用方法,用来绑定click事件。2、bind方法 为元素的某个事件绑定处理方法,实际上click就是bind的一种特例,对应的是bind("click",function)3、live方法 为符合的所有元素绑定方法,与2的不同是该方法还支持动态添加的dom元素。4、delegate方法 live方法不支持链...

2012-04-20 15:11:13 62

原创 Eclipse设置字体设置不了Courier New的解决办法

1、现象:使用Eclipse的Window->preferences->General->Appearance->Colors and Fonts->Java->Java Editor Text Font,找不到我们熟悉的Courier New字体。2、原因:Window7将Courier New字体设置为隐藏了。3、解决办法:直接到 控制面板\所有控制面板项\字体 找到Couri...

2012-04-08 16:40:29 254

原创 用css控制cellspacing、cellpadding

table{border:0;margin:0;border-collapse:collapse;}table td{padding:0;}第一行控制cellspacing,关键是“border-collapse:collapse;”第二行控制cellpadding文章来源:http://silbo.net/551.html...

2012-04-01 10:09:15 60

原创 firefox禁止缓存的设置方式

在地址栏中打”about:config”; 找到”network.http.use-cache”;双击它直至它变为”False“

2012-03-21 20:26:07 110

原创 转来一篇文章,觉得讲的还不错--抽象类和接口类的区别

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很...

2012-03-10 15:32:02 71

浏览器基本知识

1、最近在写一些WEB页面,并且使用了以前没有用到的div+css方式来写(以前多用table来写),所以最近对于CSS+DIV看的比较多。2、对于前端页面而言,最大的一个障碍就是跨浏览器的问题,不管是现实问题还是js问题,为了这个问题,学习了一些浏览器的基本知识点。3、浏览器一般包括两部分:外壳(shell)和内核(core)。shell种类很多,但都是衣服,core种类较少,但...

2012-02-27 22:18:49 70

CSS碎碎念

1、一个web页面实际上包括三个部分:结构化、表现性、动作。所以实际上html应该只负责结构化的数据(这点也可以使用XML来代替),CSS来完成表现性的战士,ECMAScript来负责页面的动作。2、从1中的观点可以看出,实际上大部分表现性的html标签是不建议使用的[color=red],比如table等,但是为什么这些标签在html5中没有被替换掉呢?[/color]-----可能是因...

2012-02-27 22:10:36 60

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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