自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 资源 (1)
  • 收藏
  • 关注

原创 谈谈 NSNotification

notification这东西比较nb的地方在于程序间低耦合,达到了通过name就可以调用八杆子都达不到的方法。但是带来的坏处就是程序不容易维护,有人会说低耦合不就是带来程序的扩展的易于维护吗?我说的不易维护主要集中在name上面,比如程序中大量的使用notificatioin,那么name就很容易冲突,并且如果冲突了是很难发现了,IDE不会画出一到红线告诉你的,当然如果程序规范好了是很容易解决这

2014-06-18 14:08:50 975

原创 swift特性一

2014年6月3号早上一起来,就打开手机看看wwdc14发布了什么新东东。之前官方就透露这次发布会给开发者带来好东西。看来这个东西主要就是swift语言了。作为来自java的ios开发者,首先要吐槽的就是objc的命名空间了。没有命名空间!只能通过类名前缀来划分业务。如果使用短前缀代码可读性低,如果用长前缀就会让类名过长。然后就是objc的异常处理,最典型的是访问一个对象不存在的方法,会造

2014-06-11 15:33:44 1854

原创 layoutSubViews实践

(1)什么时候调用layoutSubViews1、addSubview,view和它的子view的layoutSubView都会被调用。2、调用setNeedsLayout 调用自己的layoutSubView3、改变自己的size会调用自己的layoutSubView4、scroll未待实验5、转屏未待实验(2)问题:view1vi

2013-11-11 17:39:27 3633

原创 ARC最佳实践

常规基本类型变量property使用assign@property (nonatomic, assign) int scalarInt;@property (nonatomic, assign) CGFloat scalarFloat;@property (nonatomic, assign) CGPoint scalarStruct;对象的正向引用要用strong

2013-10-10 20:59:39 564

原创 启动resin多个实例

启动resin多个实例的命令是:sh /opt/resin_life/bin/httpd.sh start -conf /opt/resin_activity/resin.conf -pid /opt/resin_activity/httpd.pid其中-conf选项的作用是引用resin.conf配置文件。com.caucho.server.resin.Resin类会加载这个配置文件,配置r

2013-05-10 14:31:10 1256

原创 resin 虚拟主机

resin 虚拟主机就是resin根据不同的请求的host名称,将请求分配到不同的虚拟主机上面。那边为什么同一个ip会有不同的主机域名呢?是因为http请求中有一个host名称,通过nginx可以修改这个名称,进而根据不同的请求映射到不同的虚拟主机:上面是nginx的配置,它如果遇到类似example.com/activity/*的url,它就会设置ip数据包中的host。resin服

2013-05-09 15:33:07 1421

原创 resin webapp

webapp 就是一个web应用,在resin.conf文件中可以定义一个多个webapp存放的目录。如:/data/webapps/。我们可以将我们的war包放到这个目录下,war包会被解压成一个项目。如果项目的目录名称是awebapp,域名是example.com。那么我们访问这个项目服务的url就是example.com/awebapp/。如果我们不想多加这个“awebapp”,我们可以

2013-05-09 15:31:23 1383

原创 Mysql分页查询

提到mysql的分页查询,可能第一个想到的是limit a,b。但是通过实验发现它是这几种分页查询中最慢的一个。还有一种方法是,在表中设置递增id,通过select * from tablename where id>=start and XXX order by  id limit size;(Id需要建立索引)这种方法和limit a,b的缺点是不能并行分段查询,后一段的查询必须依赖前

2013-05-09 15:29:52 603

原创 Kafka

消息队列什么的在未来的日子里肯定会遇到,这里温习下(http://incubator.apache.org/kafka/)。Kafka的优点:1、常数基本存储message,如果是TB级别的也是一样。2、高吞吐量:对于普通硬件,Kafka能承受每秒几十万的message。3、明确将message划分到kafka各个服务器中。消费者簇通过保持每部分的顺序语义来消费message。

2013-05-09 15:29:24 683

原创 线程池

看java编程思想的时候看过线程池的使用。最经阅读Quarz的时候又遇到这个东西了。但是看了一会儿,发现线程池不是我猜想的那样。并没有看到预期的数组放着线程。这次的书写风格还是自问。这里讲以ThreadPoolExecutor为例。ExecutorService executorService = Executors.newFixedThreadPool(3);executorServi

2013-05-09 15:28:49 424

原创 对自己说~

记得上初中的时候,班里的黑板报上面写了一段故事,大概是这样的:从前有个小和尚,对师傅说自己已经都学会了,可以下山了。老和尚拿来一个瓶子,里面装满石子。问:“满了吗?”。”满了“小和尚回答。老和尚又放入了沙子,问“这次呢?”。“这次满了”。老和尚又放入了水。希望自己不要浮躁~

2013-05-09 15:27:34 446

原创 Quartz随笔

1、定义Quartz:和Timer功能类似的定时任务api。Scheduler:scheduler上面注册着Trigger以及JobDetail。当指定时间到的时候,scheduler就是运行job。Scheduler初始的时候是“待命”状态。如果调用它的start方法,就会开始定时任务。Job:Job就是要工作的任务。它是JobDetail的属性之一,JobDetail是用来

2013-05-09 15:27:01 618

原创 Quartz 使用

增值一直以来都在使用crontab来处理定时任务。但是每运行一次任务,就要编译,并运行一次java代码,这样很消耗服务器,也浪费了时间。对于一些较复杂的定时任务,满足的不好。这里想通过搭建Quartz服务来解决这个问题。它的优点是,可以构建服务器簇,实现均衡负载,并且可以在宕机的情况下,保持服务的持续性(failrecover)。参考地址:http://quartz-scheduler.org

2013-05-09 15:26:28 694

原创 Ibatis 源码解析

huo公司的ibatis代码主要对获取数据源的部分进行了二次开发,总体来说和开源的ibatis差不多。ibatis的使用共分两部分,ibatis的的初始化以及ibatis的数据库访问。对源码的分析也通过这两部分开始。这也应该是看源码的一种方法吧。1、ibatis的初始化ibatis的初始化过程如下:在用户调用Ibatis初始化代码后,BaseDbClient会使用如下代码,配置

2013-05-09 15:17:47 1475

原创 daemon线程和user线程的区别

daemon线程会在所有user线程结束后,马上结束,这时jvm停止。user线程不管它的父线程是否结束,它会一直执行下去,直到执行结束。public class Test { public static void main(String[] args) { Thread userThread = new Thread(){

2013-05-09 15:14:16 1032

原创 Jade 源码阅读

1 Jade入口在写Jade代码的时候只是写了一个接口,在使用Jade Dao的时候只是写了个spring注入。那么Jade是如何开始它的工作的呢?Jade调用:@Autowiredprivate Qixi11DAO qixiDAO;// 注入Dao...qixiDAO.invite(player)// 调用接口...Jade接口的编写:@DAO(catal

2013-05-09 15:13:11 1131

原创 VIM使用

借着需要考试,这里总结写VIM。   VIM模式命令模式,ESC插入模式,a/i/o选择模式,v   光标移动命令模式下,光标向上是k,光标向下时j,光标向左是h,光标向右是l。命令模式下定位:0/^都是移动到行首,$是移动到行末,b是移动到上一行,w是移动到下一个单词。查找/? 直接查找* 向上查找当前单词,#向下查

2013-05-09 14:57:10 454

原创 分布式原理以及系统介绍

这周四有个新生入职考试,这里复习一下。这些东西先简单看下,以后深入研究下,作者是公司的yanyan。   分布式系统包含一系列的计算机,他们通过计算机网络相互协调工作达到共同的目标。--wiki CAP,一致性、可用性、网络差异的容错性。   一致性,所有的改变都可以更新出去,所有的副本都是一致的。比如数据库的数据一致性,操作系统的数据一致性等。   eg:mysql -CA、

2013-05-09 14:54:34 583

原创 shell 中的if语句

if*[*"a"*=*"a"*] // 空格用*标示thenecho "a = a"fi   最近几天写脚本,遇到if语句时总是吃不准。这次总结一下。使用if语句有2中方式,一种是使用test命令另一种是使用“[]”,其中后者比较常用。方法一,使用test命令,这个命令返回一个boolean值。test -e /dataa || echo "不存在"上面的例子使用了判断语

2013-05-09 14:40:06 562

原创 如何读源码

今天想看看rose的源代码,但是看了半天没有头绪。思考一下,有一下原因引起:对系统中的百分之90的代码都没有头绪,不知道有什么作用。没能有效使用java的log。自己过于急躁,想一下子不全部代码看懂。 看了其他人写的关于spring源码的分析,想从中得到答案。自己也有了点思路。总结如下:找到系统入口,按顺序,各个击破每个模块。对于代码

2013-05-09 14:32:40 449

原创 如何进行部门间合作

最近搞礼物实时化,需要和提醒的前端,提醒的后端以及状态。这3个部门合作。项目进行非常缓慢。原因主要是对这个实时化的整体流程不熟悉,因为是4个部门共同的东西。归根结缔,是自己和着几个部门沟通不彻底。但自己不了解整体的时候,就应该去沟通把这件事件事情搞清楚了。    那边如果做到有效沟通呢,今天和云峰沟通了很久,知道我给你我调用的接口,才找到问题。所以,不但要和他们沟通还要让他们看我我所做的。自己表达

2013-05-09 14:31:18 522

原创 CSRF攻击

最近需要给自己的应用添加CSRF防御代码,顺便了解一下CSRF攻击。以下是对wiki的摘抄。   CSRF(Cross-Site Request Forgery)从字面理解就是跨站伪造请求。CSRF攻击会让用户在不知道的情况下在信任站点下执行未知操作。这些未知操作可以是邮件中的一个连接或者其他网站上的一个图片。这种攻击可以盗取用户的信息,如果目标用户是管理员,那么骇客就会进入应用。   有

2013-05-09 14:28:34 493

原创 目标-架构师

我和那些准架构师不同,我刚刚从一个不知名的大学毕业。可以说起点不高,底子不厚。可我又一个目标就是做一个架构师。但单单将这个目标说一说是远远不够的。自己需要有实际的行动。   回首看来,自己虽然刚刚毕业3个月,但是参加工作可以说是一年了。这一年中,自己慢慢掌握了手上的工作。但感觉前几个月自己就是的懵懂的婴儿,没有什么方向。可以说自己当了几个月的”码农“。虽然不想这样形容自己,但是的确是这样的。只

2013-05-09 14:23:50 473

原创 设计模式(记录)

一篇不错的文章:http://www.cnblogs.com/hnrainll/archive/2011/12/29/2305582.html

2012-03-01 12:02:03 59

原创 django-admin.py startproject mysite 不成功

我在执行django-admin.py startproject mysite?时,总显示帮助信息。查了下stack over flow。原来是python bug。解决方法如下: That's already been reported to the django, see http://bugs.python.org/issue7936And these's an so...

2012-02-27 11:30:57 302

原创 算法与数据结构回顾--线性表(1)

既然叫回顾,当然不能仅仅介绍基础,这里主要解析java的线性表--List、map、set。ArrayListArrayList的数据结构是由数组实现的,数组的初始化需要定义大小。所以使用ArrayList之前要估计List的大小。太小虽然不会出现溢出的异常,但是因为需要扩容所以浪费了很多资源,太大又浪费空间。ArrayList初始化源代码:...

2012-02-21 15:38:49 78

原创 异常的合理使用

这几行文字看似简单,但常常在实际开发中忽略。好的编程修养很重要!! 考虑去使用的异常参数异常的使用常用:IllegalArgumentException。对象的状态异常:IllegalStateException。 编程中需要注意的异常引用为空:NullPointException。序列越界:IndexOutOfBoundsExceptioin.并发异常:Cur...

2012-02-20 16:01:50 76

【翻译】Memcache 的使用

前几天接触到memcache的,这里学习下。希望看到这个文章的人能够纠错和补充。http://sacharya.com/前面写的是JBoss Cache和Memcached的比较。从而肯定了Memcached的简单,资源消耗小,便于维护的优点。简介:Memcached的优点:简单、独立、便于维护。Memcached服务是一个内存缓存。它可以通过键值对存储包括字节、文档、...

2012-02-20 11:28:45 89

原创 shell---awk使用

记下链接以便查找:http://hi.baidu.com/cjy2020/blog/item/b18c0587a0476026c65cc3c7.html

2012-02-03 17:25:10 50

python笔记---反射

java反射到学过,python反射没用过。这里几下别人的文章,以后慢慢欣赏……http://www.cnblogs.com/huxi/archive/2011/01/02/1924317.html

2012-02-03 15:41:59 67

原创 python学习笔记---类

类 和其他语言比较,python添加一个class使用更少的语法和语义。它是C++和Modula-3  class机制的混合体。python提供了面向对象编程的标准特性。class的继承继承允许多个父类。子类可以继承父类的任何方法。子类的方法可以调用父类的同名的方法。和模块一样对象可以拥有都多成员变量。他们在运行时被创建,在创建后可以被修改。命名空间:是一个名称到对象的一个映射。大多数...

2012-02-03 12:58:43 98

原创 python笔记---包

包是一种结构化python模块的一种方法。文件结构如下:sound/ Top-level package __init__.py Initialize the sound package formats/ Subpackage for file for...

2012-02-02 11:57:35 77

原创 python笔记---dir()函数

dir()函数 dir()函数,能够显示一个模块定义的所有成员。>>> import fibo, sys>>> dir(fibo)['__name__', 'fib', 'fib2']>>> dir(sys)['__displayhook__', '__doc__', '__excepthook__', '__nam...

2012-02-02 11:36:12 170

python笔记---标准模块

标准模块 python带有标准模块库。他们一般在python的lib下。但是有一些模块被内建在解释器中。有些模块式系统相关的。在解释器交互模式的时候,sys.ps1和sys.ps2是提示性语言。>>> import sys>>> sys.ps1'>>> '>>> sys.ps2'...

2012-02-02 11:29:54 59

原创 python笔记---模块搜索路径

模块搜索路径当一个名为spam的模块被载入的时候,解释器会在当前脚本所在的位置搜索文件spam.py。然后会在环境变量PYTHONPATH中定义的目录中搜索。如果还没有,就会在安装目录中搜索。 实际上,python的解释器的搜索路径,是在sys.path中定义的。这个变量时在当前目录下的脚本被执行的时候被初始化的。import sysprint(sys.path) # 输出...

2012-02-02 10:34:18 74

原创 python学习笔记---模块

模块一个模块不但包含语句,还包含函数的定义。这些语句是用来初始化模块的。当模块第一次被载入的时候被执行。每个模块有自己的命名空间,这些命名空间可以作为函数的全局命名空间使用。因此用户可以使用全局变量,而不必担心使用用户其他全局变量的意外冲突。另一方面,如果你明确做这件事情的后果,你可以通过引用其他模块那样引用模块的全局变量。 模块可以导入其他模块,通常来说模块导入语句import放在模...

2012-02-02 10:07:29 112

原创 python学习笔记---序列的比较

序列的比较 序列对象可以和同类型的其他对象进行比较。根据字典顺序进行比较。(1, 2, 3) < (1, 2, 4)[1, 2, 3] < [1, 2, 4]'ABC' < 'C' < 'Pascal' < 'Python'(1, 2, 3, 4) < (1, 2, ...

2012-02-01 22:20:43 306

原创 python笔记---集合后的更多条件操作

除了比较运算符,while和if语句中还可以使用更多的操作符。使用“in”或者“not in”可以检验一个元素是否在一个序列中。语句“is”或者“is not”用来判断两个对象是否是同一个对象。这个操作符适用于可变的对象,他们的优先级比算数操作符低。'''可变的对象'''a=[1,2]b=aa1=[1,2]b1=[1,2]print("a=b?",a is b)...

2012-02-01 18:51:32 122

原创 python笔记---集合迭代技术

>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']>>> for f in sorted(set(basket)):... print(f)...applebananaorangepear 集合迭代技术 使用字典对象的i...

2012-02-01 18:07:07 141

原创 python学习笔记---字典

字典 字典不像序列是被数字索引的,字典是被关键字索引的。这些关键字可以是任何不可变的类型。包括string、数字、包含stirng或者数字的元组(tuple)也可以作为关键字。如果关键字使用了可变的或者是间接可变的数据类型,它就不能作为关键字了。比如list,因为它可以通过下标复杂,切片赋值来改变或者append()、extend()函数可以改变自己的对象。 字典是一系列键值对,关...

2012-02-01 17:47:17 106

c语言代码——ACM常用算法

一、数学问题 1.精度计算——大数阶乘.乘法.加法.减法 .任意进制转换.最大公约数、最小公倍数.组合序列 .Ronberg算法计算积分 .求排列组合数.字符串处理.计算几何.Graham扫描法寻找凸包 .数论.求解模线性方程 图论.Dijkstra算法求单源最短路径.数据结构 。

2009-07-31

空空如也

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

TA关注的人

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