- 博客(50)
- 收藏
- 关注
原创 淘宝导航css相关说明
#设置背景颜色 .skin-box-bd{background:url(http://img02.taobaocdn.com/imgextra/i2/1758944073/TB2ARZhapXXXXabXpXXXXXXXXXX_!!1758944073.jpg_620x10000.jpg);}#修改分类之外的导航.skin-box-bd .menu-l...
2014-09-20 15:06:28
456
原创 Web表单设计:表单结构
你是否曾为表单设计感到过沮丧或不知所措呢?接下来三篇文章,希望能彻底改变你的看法,真正爱上Web表单设计。首先感谢Luke Wroblewski的帮助,让我有机会细心品味设计表单的乐趣。总体来说,Web表单主宰着结算、注册和数据输入。每天eBay、Taobao上的大量物品主要通过出售物品(Sell Your Item)表单售出;MySpace、Facebook等超过几亿的用户都是通过Web表单...
2011-09-08 20:16:04
990
原创 交互设计-简单
交互设计是近几年流行的一个词语。现在市场上有许多资料来介绍什么是交互设计,如何做交互设计等。从场景,任务,用户,操作等分析。但由于受实际情况的限制,往往不能很深入。所以笔者结合实际工作体验与大家分享下,具体做设计时候是怎么考虑的。如果要说什么是一个好的交互设计,个人浅见就是简单。本文以下内容都是围绕简单2字进行展开。 简单在本文中包括认知和操作两个部分: 1. 认知主要是指人的思维过程...
2011-09-08 20:12:44
254
原创 Netty实现原理浅析
转载http://www.kafka0102.com/2010/06/167.htmlNetty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考我的另一篇文章 netty使用初步。本文将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研 究。如果下面的内容有错误或不严谨的地方,也请指正和谅解。对于Netty使用者来说,Netty提供了几个...
2011-09-04 21:54:39
467
原创 读写自旋锁详解,第 3 部分
引用:http://www.ibm.com/developerworks/cn/linux/l-cn-rwspinlock3/ 基于简单共享变量的读写自旋锁的不足本系列文章的第 2 部分中给出的实现都基于简单共享变量,简洁实用,但在大规模多核、NUMA 系统上可扩展性较差。我们说某个读写自旋锁的实现是可扩展的,通俗地讲是指在线程访问模式(读者写者数目之比、各自到来的频率及...
2011-08-29 12:25:05
136
原创 读写自旋锁详解,第 2 部分
引用:http://www.ibm.com/developerworks/cn/linux/l-cn-rwspinlock2/?ca=drs- 读者优先的读写自旋锁我们先不考虑性能,搞出一个可用的实现再说。首先,用一个整型变量 status 来记录当前状态;另一个整型变量 nr_readers 来记录同时持有锁的读者数量,只有当 nr_readers 为 0 的时候,锁才...
2011-08-29 12:24:11
117
原创 读写自旋锁详解,第 1 部分
引用:http://www.ibm.com/developerworks/cn/linux/l-cn-rwspinlock1/index.html?ca=drs- 读写自旋锁简介什么是读写自旋锁自旋锁(Spinlock)是一种常用的互斥(Mutual Exclusion)同步原语(Synchronization Primitive),试图进入临界区(...
2011-08-29 12:22:10
324
原创 Analysis Patterns
Models are not right or wrong ;they are more or less useful.Engineering demands a trade-off between the cose of building and maintaining an arifact and the features it will provide Conceptual m...
2011-07-31 23:39:28
225
原创 Best Practices for Speeding Up Your Web Site
The Exceptional Performance team has identified a number of best practices for making web pages fast. The list includes 35 best practices divided into 7 categories.Filter by category: Con...
2011-07-11 10:32:50
522
原创 Base 128 Varints
Google Protobuf里面提出了“Base 128 Varints”编码,这是一种变字节长度的编码,官方描述为:varints是用一个或多个字节序列化整形的一种方法。我理解要点有三个(1)操作是序列化(2)操作对象是整形(3)变长编码。重点是最后一点,他是如何编码的呢? (1)除了最后一个字节,varint中的每个字节的最高位设为1,表示后面还有字节出现 ...
2011-06-22 22:45:16
349
原创 Redis分析系列:启动加载过程
从本篇文章开始(命名为Redis分析系列),将会通过分析Redis的源代码(以Redis 2.2.0 RC1为准),来对它的内部实现做一些探讨。本文主要介绍Redis启动加载过程,总体上可以分为如下几步:1. 初始化全局服务器配置2. 加载配置文件(如果指定了配置文件,否则使用默认配置)3. 初始化服务器4. 加载数据库5. 网络监听整个启动加载过程如下图所示:...
2011-06-18 16:37:13
290
原创 Redis使用系列:协议篇
Redis从1.2版本开始,设计了一套统一的协议格式,作者讲到自己设计的协议在下面几个方面进行了权衡: 1. 实现简单 2. 快速通过计算机解析 3. 容易让人阅读如果我们需要自己实现一个Redis客户端程序,有必要了解一下Redis的协议格式。在网络层面,客户端通过TCP连接到Redis服务器(默认端口6379,可以通过配置文件修改),客户端与服务器之间发送的命令以\r\n(CR LF)...
2011-06-18 16:35:36
185
原创 Redis使用系列:配置文件篇
如果认为Redis是一个key value存储, 可以使用它来代替MySQL;如果认为它是一个可以持久化的cache, 可能只是用它保存一些频繁访问的临时数据(代替Memcached);除此之外,还可以把Redis当做一个轻量级的消息队列使用,因为它内置就支持list数据结构和PUB/SUB命令;还可以当做一个轻量级的分布式锁系统。Redis是REmote DIctionary Server的...
2011-06-18 16:28:04
87
原创 scala并行集合
每一个集合都能通过`par`方法 转换为一个并行的集合,并行集合利用多核实现并发操作,如:foreach,map,filter等等。并行集合在`scala.collection.parallel`. 有下面这些并行集合: parallel arrays - scala.collection.parallel.mutable.ParArrayparallel ...
2011-06-11 12:36:27
824
原创 Specializing for primitive types
转之http://www.scala-notes.org/2011/04/specializing-for-primitive-types/ One interesting feature that was added to Scala in version 2.8 is specialization, using the @specialized annotation...
2011-06-05 09:40:48
95
原创 scala 去掉continue和break
在programming in scala中P175页中提到 Living without break and continue,说到scala中不提倡使用break and continue,当然break 和continue主要是在for和while这样的循环中。scala中是提倡使用for,提倡使用while,理由很简单,scala提倡面向函数编程,每个方法都有返回值,而while是...
2011-06-03 11:16:56
308
原创 des和3Des加密算法实现
DES简介: DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data...
2011-04-24 15:57:53
387
原创 jstack 和jmap
sun提供的jvm检测工具jstack和jmsp,简单介绍: jstack命令行工具连接到指定的进程或核心文件,并打印所有连接到虚拟机的线程的堆栈跟踪信息,包括Java 线程和VM 内部线程,有时也包括本地堆栈框架。该工具还执行死锁检测。用法:jstack [option] pid参数(Options): -F 在-l ...
2011-04-23 20:47:51
331
原创 理解Heap Profling名词-Shallow和Retained Sizes
所有包含Heap Profling功能的工具(MAT, Yourkit, JProfiler, TPTP等)都会使用到两个名词,一个是Shallow Size,另一个是 Retained Size.这是两个在平时不太常见的名词,本文会对这两个名词做一个详细的解释。Shallow Size对象自身占用的内存大小,不包括它引用的对象。针对非数组类型的对象,它的大小就是对象与它所有的成员变量大小...
2011-04-23 00:40:32
94
原创 Boosting算法简介
一、Boosting算法的发展历史 Boosting算法是一种把若干个分类器整合为一个分类器的方法,在boosting算法产生之前,还出现过两种比较重要的将多个分类器整合为一个分类器的方法,即boostrapping方法和bagging方法。我们先简要介绍一下bootstrapping方法和bagging方法。 1)bootstrapping方法的主要过程 主要步骤: ...
2011-04-22 23:52:12
237
原创 转分布式哈希与一致hash
分布式哈希和一致性哈希是分布式存储和p2p网络中说的比较多的两个概念了。介绍的论文很多,这里做一个入门性质的介绍。 分布式哈希(DHT) 两个key point:每个节点只维护一部分路由;每个节点只存储一部分数据。从而实现整个网络中的寻址和存储。DHT只是一个概念,提出了这样一种网络模型。并且说明它是对分布式存储很有好处的。但具体怎么实现,并不是DHT的范畴。 一致性哈希: D...
2011-04-22 23:39:34
86
原创 jtrace
很多时候在online的应用出现问题时,很多时候我们需要知道更多的程序的运行细节,但又不可能在开发的时候就把程序中所有的运行细节都打印到日志上,通常这个时候能采取的就是修改代码,重新部署,然后再观察,但这种方法对于online应用来说不是很好,另外一方面如果碰到不好改的代码,例如引用的其他的外部的包什么的,就很麻烦了,BTrace就是一个可以在不改代码、不重启应用的情况下,动...
2011-04-22 00:04:30
1289
原创 jsoup使用
jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。请参考:http://jsoup.org/ jsoup的主要功能如下: 从一个URL,文件或字符串中解析HTML; 使用DO...
2011-04-20 22:28:37
131
Squid(安装配置)
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } TD P { margin-bottom: 0cm } A:link { so-language: zxx } --> 前言: 公司最近要把图片缓存到web中,提高网站的访问效率,让...
2011-04-17 21:42:12
221
原创 vi指令
文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充! 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于...
2011-04-17 00:10:28
77
oracle 学习1(buffer cache )
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } --> buffercache 概述 buffercache 是oracle建立的数据文件缓存。oracle中的所以sel...
2011-04-16 20:42:29
98
原创 Google Snappy - 一个高速压缩库
Snappy已经被Google开源,作为一个压缩库,它可以利用单颗Intel Corei7处理器内核处理至少每秒250MB~500MB的数据流。Snappy的前身是Zippy。虽然只是一个数据压缩库,它却被Google用于许多内部项目程,其中就包括BigTable,MapReduce和RPC。Google宣称它在这个库本身及其算法做了数据处理速度上的优化,作为代价,并没有考虑输出大小以及和...
2011-04-16 18:17:33
193
原创 java序列化
引言将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序...
2011-04-15 23:42:09
292
原创 转OAuth认证协议原理分析及使用方法
twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,比如像feedtwitterrss2twitter推特中文圈(这个目前好像有点问题转回来的时候是个错误地址) 这种网站就是这个效果。其实这都是拜 OAuth所赐。OAuth是什么?OAuth是一个开放的认证协议,让你可以在Web或桌面程序中使用简单而...
2011-04-03 10:07:32
81
原创 用javap分析java编译器对string常量表达式的处理和优化
最近看了下javaeye上一篇关于string优化的文章,借此分析下string 原文地址http://skydream.iteye.com/blog/48351 先看看作者的问题分析: 首先把问题摆出来,先看这个代码 String a = "ab"; String b = "a" + "b"; System.out.println((a == b)); ...
2011-01-06 16:25:49
92
原创 转【JAVA】虚拟机指令集
0x00 nop 什么都不做0x01 aconst_null 将null推送至栈顶0x02 iconst_m1 将int型-1推送至栈顶0x03 iconst_0 将int型0推送至栈顶0x04 iconst_1 将int型1推送至栈顶0x05 iconst_2 将int型2推送至栈顶0x06 iconst_3 将int型3推送至栈顶0x07 iconst_4 ...
2011-01-05 11:19:36
149
原创 检查字符串是否是整数
检查字符串是否是整数 今天在论坛中看见一个贴,讨论用异常检验字符串是否为整数,出处http://www.iteye.com/topic/856221。个人总结了里面的方法。有如下四种:1、 异常检测法;2、每个字符检测法;3、使用Character中的isDigit法;4、正则表达式法。个人分析比较了下这四种方法。如有错误请指出;1、 异常检测法代码如下: public s...
2010-12-31 10:57:44
890
原创 计算机程序设计艺术-----红黑树
自己写的红黑树,先保存下来,有时间写具体细节。节点类:package com.star; public class RedBlack { private RedBlack parent; private RedBlack left; private RedBlack right; private RedBlackEnum redOrBlack...
2010-12-27 17:43:58
90
原创 计算机程序设计艺术-----归并排序
合并排序:把两个或多个有序序列合并为一个有序的序列。例子:合并503,703,765和087,512,677,得到087,503,512,677,703,765。每次比较两个序列最小的数,输出最小的,不断重复这个过程。如: <!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,2...
2010-12-22 15:53:48
102
原创 计算机程序设计艺术-----堆排序
堆排序:一种基于堆的排序算法;一些基础概念堆定义:当且仅当该序列满足如下性质(简称为堆性质):(1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ n) //ki相当于二叉树的非叶结点,K2i则是左孩子,k2i+1是右孩子若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶...
2010-12-22 12:29:07
130
原创 计算机程序设计艺术-----选择排序
直接选择排序:基本思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的后面(前面),直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。实现思想:1、 针对n个数R[1…n]进行n-1趟选择就可排好序。2、 无序序列R[1…n],有序列为空。3、 第一趟选择,选出最小的数p[k],用p[k]和R[1]进行交换,得到无序序列R[2…n],...
2010-12-22 10:19:15
93
原创 计算机程序设计艺术-----基数排序
箱排序:也称桶排序。基本思想:设置多[k]个箱,依次把a[1],a[2],a[3]…..a[n]按其键值为k放入k个箱中,依次按1-k把k个箱首尾相连。这样就排好序了。例如:把一副52张牌按照点数排序,可以设置13个箱依次表示为1-13,把点数为A的放到1号箱,点数为2-10的分别放入2-10号箱,把J,Q,K分别放入11-13号箱,这样依次连接1-13号箱,就排好序了。基数排序:...
2010-12-22 09:40:28
91
原创 计算机程序设计艺术-----快速排序
快速排序:是冒泡排序的改进。基本思想:通过一趟排序把整个序列分为两部分,一部分的所有数比另一部分的所有数都小,再递归的处理这两部分,直到排好序。实例: 上面是一趟排序后的结果,275,087,154,061,426,170都要小于503. 相同897,653,908,512,612,677,765,703都大于503;接到对275,087,154,061,426,170;897,6...
2010-12-21 18:20:34
111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人