自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (5)
  • 收藏
  • 关注

原创 我的VIM配置保存

~/.vim中各种插件打包: http://download.csdn.net/detail/zhakalamu/4989734 ~/.vimrc文件 "允许鼠标的使用,防止linux终端下无法拷贝 if has('mouse')     set mouse=a endif au GUIEnter * simalt ~x "字体的设置 set guifont=

2013-01-13 10:47:41 950

原创 YUV转RGB,无除法,无浮点运算

项目需要,将YUV422图像转换成RGB图像,考虑到效率问题,不能使用除法,不能使用浮点运算。 参考http://blog.csdn.net/housisong/article/details/1859084 不使用浮点数:在应用时,希望避免低速的浮点运算,所以需要整数算法,我们可以将先乘上一定的倍数来实现整数运算算法. 不使用除法:通过移位运算代替除法,避免除法运算带来的效率问题。 原公

2012-08-18 23:36:44 648

转载 c语言中 ## 连接符与# 符

## 连接符与# 符         ##连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在编译原理里有详尽的解释,但不知道也无所谓。同时值得注意的是#符是把传递过来的参数当成字符串进行替代。下面来看看它们是怎样工作的。这是MS

2012-05-23 13:31:25 1515

原创 pandaboard与beagleboard的NFS,TFTP,以及dhcp服务设置

最近需要重新搭建一下pandaboard与beagleboard的环境,特把搭建的过程记录下来,留以后备用。 基于环境ubuntu10.04 * configure TFTP/NFS/DHCP ** TFTP    # modify /etc/default/tftpd-hpa    TFTP_DIRECTORY="/var/lib/tftpboot" -> TFTP_DIRE

2012-05-17 23:47:09 1390 2

转载 从c++中野指针看c++的对象实例化

指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。

2012-05-08 15:51:52 1114

转载 distcc 分布式部署步骤

原文地址:分布式部署步骤">distcc 分布式部署步骤作者:独独力子 前言 我们机器在绝大多数时间是空闲的,如果你在Windows下用任务管理器或其他的Linux平台观察CPU,你会看到CPU的使用率常见在1~2%,如果能利用现有的计算机资源,把空闲的CPU利用起来,或者能让服务器智能的迁移负荷,加快我们的编译速度,就是我们部署distcc的理由。 分布式集群中的节点需要硬件尽

2012-04-24 17:08:56 1339

重构_改善既有代码的设计[高清版]中文版

hapter 1:Refactoring,a First Example 重构,第一个例子   The Starting Point 起点   The First Step in Refactoring 重构第一步   Decomposing and Redistributing the Statement Method 分解并重组slalemenl方法   Replacing the Conditional Logic on Price Code with Polymorphism 用多态代替价格条件逻辑代码   Final Thoughts 结语  Chapter 2:Principles in Refactoring 重构原则   Defining Refactoring 何谓重构   Why Should You Refactor? 为何重构   When Should You Refactor? 何时重构   What Do I Tell My Manager? 怎样说服经理   Problems with Refactoring 重构的问题   Refactoring and Design 重构与设计   Refactoring and Performance 重构与性能   Where Did Refactoring Come From? 重构的起源  Chapter 3:Bad Smells in Code(by Kent Beck and Martin Fowler) 代码坏昧   Duplicated Code 重复代码   Long Method 过长方法   Large Class 过长类   Long Parameter List 过长参数列表   Divergent Change 发散式变化   Shotgun Surgery 霰弹式修改   Feature Envy 特性依恋   Data Clumps 数据泥团   Primitive Obsession 基本类型偏执   Switch Statements switch语句   Parallel Inheritance Hierarchies 平行继承体系   Lazy Class 冗余类   Speculative Generality 理论上的一般性   Temporary Field 临时字段   Message Chains 消息链   Middle Man 中间人   Inappropriate Intimacy 过度亲密   Alternative Classes with Different Interfaces 接口不同的等效类  Incomplete Library Class 不完整的库类   Data Class 数据类   Refused Bequest 拒绝继承   Comments 注释过多  Chapter 4:Building Tests 构建测试   The Value of Self-testing Code 自测试代码的重要性   The JUnit Testing Framework Junit测试框架   Adding More Tests 添加更多测试  Chapter 5:Toward a Catalog of Refactorings 重构目录   Format of the Refactorings 重构描述的格式   Finding References 寻找引用   How Mature Are These Refactorings? 这些重构的成熟度如何 Chapter 6:Composing Methods 组合方法   Extract Method 提取方法   Inline Method 内联方法   Inline Temp 内联临时变量   *Replace Temp with Query 用查询方法代替临时变量   Introduce Explaining Variable 引入解释性变量   Split Temporary Variable 分离临时变量   *Remove Assignments to Parameters 去除参数赋值   Replace Method with Method Object 用方法对象代替方法   Substitute Algorithm 替换算法  Chapter 7:Moving Features Between Objects 在对象之间移动特性  *Move Method 移动方法   Move Field 移动字段   Extract Class 提取类   Inline Class 内联类   Hide Delegate 隐藏委托类   Remove Middle Man 去除中间人   Introduce Foreign Method 引入外加方法   *Introduce Local Extension 引入本地扩展类  Chapter 8:Organizing Data 组织数据   Self Encapsulate Field 自封装字段   Replace Data Value with Object 用对象代替数据值   Change Value to Reference 将值对象改为引用对象   Change Reference to Value 将引用对象改为值对象   Replace Array with Object 用对象代替数组   Duplicate Observed Data 重复被观察数据   *Change Unidirectional Associationto Bidirectional 将单向关联改为双向   Change Bidirectional Association to Unidirectional 将双向关联改为单向   *Replace Magic Number with Symbolic Constant 用字面常量代替魔数   Encapsulate Field 封装字段   Encapsulate Collection 封装集合   Replace Record with Data Class 用数据类代替记录   *ReplaceType Code with Class 用类代替类型码   Replace Type Code with Subclasses 用子类代替类型码   Replace Type Code with State/Strategy用State/Strategy 代替类型码   Replace Subclass with Fields 用字段代替子类  Chapter 9:Simplifying Conditional Expressions 简化条件语句   Decompose Conditional 分解条件语句   Consolidate Conditional Expression 合并条件语句   Consolidate Duplicate Conditional Fragments 合并重复的条件片段   Remove Control Flag 去除控制标志   Replace Nested Conditional with Guard Clauses 用守卫语句代替嵌套条件语句   Replace Conditional with Polymorphism 用多态代替条件语句   Introduce Null Object 引入Null对象   Introduce Assertion 引入断言  Chapter 10:Making Method Calls Simpler 简化方法调用   Rename Method 重命名方法   Add Parameter 添加参数   Remove Parameter 去除参数   Separate query from Modifier 将查询方法与修改方法分离   Parameterize Method 参数化方法   Replace Parameter with Explicit Methods 用显式方法代替参数  Preserve Whole Object 保持对象完整   Replace Parameter with Method 用方法代替参数   Introduce Parameter Object 引入参数对象   Remove Setting Method 去除设置方法   Hide Method 隐藏方法   Replace Constructor with Factory Method 用工厂方法代替构造器   Encapsulate Downcast 封装向下转型   Replace Error Code with Exception 用异常代替错误码   Replace Exception with Test 用测试代替异常  Chapter 11:Dealing with Generalization 处理泛化关系   Pull Up Field 上移字段   Pull UP Method 上移方法   Pull Up Constructor Body 上移构造器主体   Push Down Method 下移方法   Push Down Field 下移字段   Extract Subclass 提取子类   Extract Superclass 提取超类   Extract Interface 提取接口   Collapse Hierarchy 合并继承层次   Form Template Method 形成Template Method   Replace Inheritance with Delegation 用委托代替继承   Replace Delegation with Inheritance 用继承代替委托  Chapter 12:Big Refactorings(by Kent Beck and Martin Fowler) 大型重构   Tease Apart Inheritance 分解继承层次   Convert Procedural Design to Objects 将过程式设计转换为面向对象   Separate Domain from Presentation 将领域逻辑与表现分离   Extract Hierarchy 提取继承层次  Chapter 13:Refactoring,Reuse,and Reality(by William Opdyke) 重构,复用与现实   A Reality Check 现实的检验   Whv Are Developers Reluctant to Refactor Their Programs? 开发人员为何不愿重构程序   A Reality Check(Revisited) 再谈现实的检验   Resources and References for Refactoring 重构的资源和参考文献   Implications Regarding Software Reuse and Technology Transfer 对软件复用与技术传播的意义   A Final Note 结语   References 参考文献  Chapter 14:Refactoring Tools(by Don Roberts and John Brant) 重构工具   Refactoring with a Tool 使用工具重构   Technical Criteria for a Refactoring Tool 重构工具的技术标准   Practical Criteria for a Refactoring Tool 重构工具的实用标准   Wrap Up 结语  Chapter 15:Putting It All Together(by Kent Beck) 集大成  References参考文献  List of Soundbites 要点列表  Updates 更新内容  Index 索引

2013-10-16

vim插件打包

vim中~/.vim 插件打包 ./vimrc文件内容为 "允许鼠标的使用,防止linux终端下无法拷贝 if has('mouse') set mouse=a endif au GUIEnter * simalt ~x "字体的设置 set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI "记住空格用下划线代替哦 set gfw=幼圆:h10:cGB2312 syn on "语法支持 syntax enable colorscheme desert filetype plugin on filetype indent on set nocompatible set history=5000 set autoread set mouse=a "common conf {{ 通用配置 set ai "自动缩进 set bs=2 "在insert模式下用退格键删除 set showmatch "代码匹配 set laststatus=2 "总是显示状态行 set expandtab "以下三个配置配合使用,设置tab和缩进空格数 set shiftwidth=4 set tabstop=4 "set cursorline "为光标所在行加下划线 set number "显示行号 set autoread "文件在Vim之外修改过,自动重新读入 set ignorecase "检索时忽略大小写 "set encoding=utf-8 fileencoding=utf-8 fileencodings=utf-8,latin1,ucs-bom,gb2312,gb18030,cp936,big5,euc-jp,euc-kr set fileencodings=utf-8,gb2312,gbk,gb18030,latin1,usc-bom,cp936,big5,euc-jp,euc-kr set termencoding=utf-8 set encoding=utf-8 set hls "检索时高亮显示匹配项 "set foldmethod=syntax "代码折叠 "}} "conf for plugins {{ 插件相关的配置 "状态栏的配置 "powerline{ set guifont=PowerlineSymbols\ for\ Powerline set nocompatible set t_Co=256 let g:Powerline_symbols = 'fancy' "} "pathogen是Vim用来管理插件的插件 "pathogen{ call pathogen#infect() "} "winmanager{ let g:winManagerWindowLayout='FileExplorer|TagList' "} "minibuffer{ let g:miniBufExplMapWindowNavVim = 1 "} "grep " "omnicppcomplete { set tags=tags; "智能补全ctags -R --c++-kinds=+p --fields=+iaS --extra=+q let OmniCpp_NamespaceSearch = 1 let OmniCpp_GlobalScopeSearch = 1 let OmniCpp_ShowAccess = 1 let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表 let OmniCpp_MayCompleteDot = 1 " 输入 . 后自动补全 let OmniCpp_MayCompleteArrow = 1 " 输入 -> 后自动补全 let OmniCpp_MayCompleteScope = 1 " 输入 :: 后自动补全 let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"] " 自动关闭补全窗口 au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif set completeopt=menuone,menu,longest set nocp "} "}} nmap <F2> :WMToggle<CR> "窗口间切换 nmap <F3> :Dox<CR> nmap <F4> :bn<CR> nmap <F5> :only<CR> nmap <F6> :close<CR> nmap <F7> :AV<CR> nmap <F8> :!make<CR> nmap <F12> :!tags<CR> let g:template_autoload = 1 let g:bufExplorerMaxHeight=30 let g:miniBufExplorerMoreThanOne=0 let mapleader = "," let g:mapleader = "," map <leader>1 =a{ nmap <leader>1 =a{ nmap<C-c> "+yy nmap<C-v> "+p """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " CSCOPE settings for vim """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " This file contains some boilerplate settings for vim's cscope interface, " plus some keyboard mappings that I've found useful. " " USAGE: " -- vim 6: Stick this file in your ~/.vim/plugin directory (or in a " 'plugin' directory in some other directory that is in your " 'runtimepath'. " " -- vim 5: Stick this file somewhere and 'source cscope.vim' it from " your ~/.vimrc file &#40;or cut and paste it into your .vimrc&#41;. " " NOTE: " These key maps use multiple keystrokes (2 or 3 keys). If you find that vim " keeps timing you out before you can complete them, try changing your timeout " settings, as explained below. " " Happy cscoping, " " Jason Duell [email protected] 2002/3/7 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " This tests to see if vim was configured with the '--enable-cscope' option " when it was compiled. If it wasn't, time to recompile vim... if has("cscope") """"""""""""" Standard cscope/vim boilerplate "set csprg=/usr/local/bin/cscope " use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t' set cscopetag " check cscope for definition of a symbol before checking ctags: set to 1 " if you want the reverse search order. set csto=0 " add any cscope database in current directory if filereadable("cscope.out") cs add cscope.out " else add the database pointed to by environment variable elseif $CSCOPE_DB != "" cs add $CSCOPE_DB else let cscope_file=findfile&#40;"cscope.out", ".;"&#41; let cscope_pre=matchstr(cscope_file, ".*/") if !empty(cscope_file) && filereadable(cscope_file) exe "cs add" cscope_file cscope_pre endif endif " show msg when any other cscope db added set cscopeverbose """"""""""""" My cscope/vim key mappings " " The following maps all invoke one of the following cscope search types: " " 's' symbol: find all references to the token under cursor " 'g' global: find global definition(s) of the token under cursor " 'c' calls: find all calls to the function name under cursor " 't' text: find all instances of the text under cursor " 'e' egrep: egrep search for the word under cursor " 'f' file: open the filename under cursor " 'i' includes: find files that include the filename under cursor " 'd' called: find functions that function under cursor calls " " Below are three sets of the maps: one set that just jumps to your " search result, one that splits the existing vim window horizontally and " diplays your search result in the new window, and one that does the same " thing, but does a vertical split instead (vim 6 only). " " I've used CTRL-\ and CTRL-@ as the starting keys for these maps, as it's " unlikely that you need their default mappings (CTRL-\'s default use is " as part of CTRL-\ CTRL-N typemap, which basically just does the same " thing as hitting 'escape': CTRL-@ doesn't seem to have any default use). " If you don't like using 'CTRL-@' or CTRL-\, , you can change some or all " of these maps to use other keys. One likely candidate is 'CTRL-_' " (which also maps to CTRL-/, which is easier to type). By default it is " used to switch between Hebrew and English keyboard mode. " " All of the maps involving the <cfile> macro use '^<cfile>$': this is so " that searches over '#include <time.h>" return only references to " 'time.h', and not 'sys/time.h', etc. (by default cscope will return all " files that contain 'time.h' as part of their name). " To do the first type of search, hit 'CTRL-\', followed by one of the " cscope search types above (s,g,c,t,e,f,i,d). The result of your cscope " search will be displayed in the current window. You can use CTRL-T to " go back to where you were before the search. " "go there the symbol is exist nmap <leader>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <leader>g :cs find g <C-R>=expand("<cword>")<CR><CR> nmap <leader>c :cs find c <C-R>=expand("<cword>")<CR><CR> nmap <leader>t :cs find t <C-R>=expand("<cword>")<CR><CR> nmap <leader>e :cs find e <C-R>=expand("<cword>")<CR><CR> nmap <leader>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <leader>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <leader>d :cs find d <C-R>=expand("<cword>")<CR><CR> " Using 'CTRL-spacebar' (intepreted as CTRL-@ by vim) then a search type " makes the vim window split horizontally, with search result displayed in " the new window. " " (Note: earlier versions of vim may not have the :scs command, but it " can be simulated roughly via: " nmap <C-@>s <C-W><C-S> :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-@>g :scs find g <C-R>=expand("<cword>")<CR><CR> nmap <C-@>c :scs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-@>t :scs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-@>e :scs find e <C-R>=expand("<cword>")<CR><CR> nmap <C-@>f :scs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-@>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <C-@>d :scs find d <C-R>=expand("<cword>")<CR><CR> " Hitting CTRL-space *twice* before the search type does a vertical " split instead of a horizontal one (vim 6 and up only) " " (Note: you may wish to put a 'set splitright' in your .vimrc " if you prefer the new window on the right instead of the left nmap <C-@><C-@>s :vert scs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-@><C-@>g :vert scs find g <C-R>=expand("<cword>")<CR><CR> nmap <C-@><C-@>c :vert scs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-@><C-@>t :vert scs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-@><C-@>e :vert scs find e <C-R>=expand("<cword>")<CR><CR> nmap <C-@><C-@>f :vert scs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-@><C-@>i :vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <C-@><C-@>d :vert scs find d <C-R>=expand("<cword>")<CR><CR> """"""""""""" key map timeouts " " By default Vim will only wait 1 second for each keystroke in a mapping. " You may find that too short with the above typemaps. If so, you should " either turn off mapping timeouts via 'notimeout'. " "set notimeout " " Or, you can keep timeouts, by uncommenting the timeoutlen line below, " with your own personal favorite value (in milliseconds): " "set timeoutlen=4000 " " Either way, since mapping timeout settings by default also set the " timeouts for multicharacter 'keys codes' (like <F1>), you should also " set ttimeout and ttimeoutlen: otherwise, you will experience strange " delays as vim waits for a keystroke after you hit ESC (it will be " waiting to see if the ESC is actually part of a key code like <F1>). " "set ttimeout " " personally, I find a tenth of a second to work well for key code " timeouts. If you experience problems and have a slow terminal or network " connection, set it higher. If you don't set ttimeoutlen, the value for " timeoutlent (default: 1000 = 1 second, which is sluggish) is used. " "set ttimeoutlen=100 endif

2013-01-13

Windows游戏编程大师技巧.pdf

Windows游戏编程大师技巧.pdf 不错的游戏3D游戏编程书籍,完整版。

2012-11-14

Visual C++游戏编程基础.pdf

Visual C++游戏编程基础.pdf 游戏编程的基础入门书籍,完整版

2012-11-14

空空如也

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

TA关注的人

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