- 博客(99)
- 资源 (18)
- 收藏
- 关注
转载 每个程序员都应该收藏的算法复杂度速查表
算法复杂度这件事这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 OBig-O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo、eBay、LinkedIn 和 Google,每次我都需要准备这个,我就在问自己,“为什么没有人创建一个漂亮的
2016-11-18 08:27:16 833
原创 Git 读书笔记(二)
运行 Git 前的配置Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:/etc/gitconfig文件系统中对所有用户都普遍适用的配置。若使用git config时用--system选项,读写的就是这个文件。~/
2016-03-29 16:10:49 472
原创 Git 读书笔记(一)
Git 同其他版本控制系统的主要区别 -- 直接快照,而非比较差异Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容,请看图 1.4。Git 并不保存这些前后变化的差异数据
2016-03-29 15:41:15 455
转载 查找文件或内容
使用find查找文件的时候怎么避开某个文件目录 避开/usr/sam/dir1 和 /usr/sam/file1 目录, 查找temp 文件find /usr/sam (-path /usr/sam/dir1 -o -path /usr/sam/file1 ) -prune -o -name "temp" -print圆括号表示表达式的结合。 表示引用,即指示 shell 不对
2015-04-21 15:26:00 611
转载 写出好的 commit message
为什幺要关注提交信息加快 Reviewing Code 的过程帮助我们写好 release note5年后帮你快速想起来某个分支,tag 或者 commit 增加了什么功能,改变了哪些代码让其他的开发者在运行 git blame 的时候想跪谢总之一个好的提交信息,会帮助你提高项目的整体质量基本要求第一行应该少于50个字。 随后是一个空行 第一行题
2015-04-16 10:34:27 655
转载 shell 脚本中set -e 的用法
-----------------------------------------------------------#!/bin/bashset -ecommand 1command 2...exit 0----------------------------------------------------------Every script yo
2015-03-10 08:57:42 2092
转载 在git 中修改之前的提交内容
备录下,省的又忘了。比如要修改之前的commit的 hashcode为:187f869c9d54c9297d6b0b1b4ff47d2ec781a55eStep 1:先用git rebase 187f869c9d54c9297d6b0b1b4ff47d2ec781a55e^ --interactive //退回到要修改的commit的前一个点上,执行后,git会调用默认
2014-12-04 21:43:17 783
转载 Detours使用说明
转自:http://www.cnblogs.com/flywuya/archive/2010/12/01/1893729.html1 介绍 Api hook包括两部分:api调用的截取和api函数的重定向。通过api hook可以修改函数的参数和返回值。关于原理的详细内容参见《windows核心编程》第19章和第22章。2 Detours API hook"Detours is
2013-10-25 15:13:30 2919
转载 Detour开发包之API拦截技术
转自:http://www.cnblogs.com/flying_bat/archive/2008/04/18/1159996.html我们截获函数执行最直接的目的就是为函数增添功能,修改返回值,或者为调试以及性能测试加入附加的代码,或者截获函数的输入输出作研究,破解使用。通过访 问源代码,我们可以轻而易举的使用重建(Rebuilding)操作系统或者应用程序的方法在它们中间插入新的功能或者做
2013-10-25 15:02:39 1162
转载 程序员的灯下黑:重知识轻技术
转自:http://www.cnblogs.com/flying_bat/archive/2007/05/30/764637.html 电视《雍正王朝》讲了这么一个故事:大将军年羹尧奉命到青海平叛,清军因路途遥远,军耗巨大,因此力求速战速决。但叛军避开锋芒,东躲西藏,年羹尧没有办法找到叛军决战。这时,朝廷内外压力越来越大,年羹尧陷入困境。这是一位谋士对年说:我知道叛军在那里。年大喜。这位谋
2013-10-25 14:57:16 965 1
转载 图形加速卡技术(大众扫盲篇)
图形加速卡技术论坛:1.入门篇--图形加速之图形(发表于GZeasy.com: Jul 20 2003, 04:14 PM)来了这么久,也对这里的朋友有了一个大概的了解。恕我罗索一两句,这里的名字是“图形加速卡技术论坛”,可是情景完全不是这样啊。选购,改卡,甚至游戏也是技术,我倒不说什么,可是n 多人在这里说些完全没有关系的话题,或者让人看了完全摸不着头脑的东西,给我们留下不好
2013-09-04 15:11:09 2962
转载 C++中Static作用和使用方法
1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的
2013-03-19 10:05:05 735
转载 C++中public,protected,private访问小结
第一:private,public,protected方法的访问范围. private: 只能由该类中的方法访问,不能被该类的对象访问. protected: 可以被该类中的方法和其友元函数访问,但不能被该类的对象访问 public: 可以被该类中的方法和其友元函数访问,也可以由该类的对象访问 第二:类的继承后方法属性变化: 使用private继承,父类的所有方法在子类中变为p
2013-03-14 10:11:26 1267
转载 C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include using namespace std;class CExample {private: int a;public: CExample(int
2013-03-13 09:05:06 666
转载 函数指针与指针函数
1.指针函数的定义 顾名思义,指针函数即返回指针的函数。其一般定义形式如下: 类型名 *函数名(函数参数表列); 其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。
2013-03-09 12:05:31 702
转载 typedef用法
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(。用途一:定义一种类型的别名,而不只是简单的宏替换。
2013-03-09 10:56:50 624
转载 static 作用
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)第一个作用:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容#includestdio.h>增加这条语句char a = ‘A‘; // global var
2013-03-09 09:22:39 684
转载 C语言内存分布(BSS段、数据段、代码段、堆与栈)
BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text
2013-03-09 08:53:54 1600 1
转载 进程上下文
请问进程上下文是什么意思?回答者的答案集合:1.进程上下文一般在进程切换中提到,也就是当进程要切换时关于当前进程的寄存器内容以及内存页表的详细信息等等内容,一句话概括也就是关于描述进程的信息。2.同意楼上的,就是很多书本上提到的进程控制块PCB,保存着进程的很多详细信息3.补充(LINUX完全注释中的一段话):当一个进程在执行时,CPU的所有寄存器中
2013-02-20 09:42:09 720
转载 windows驱动程序中的预处理含义
#pragma code_seg(“PAGE”)作用是将此部分代码放入分页内存中运行。#pragma code_seg() 将代码段设置为默认的代码段#pragma code_seg("INIT")加载到INIT内存区域中,成功加载后,可以退出内存转自:http://blog.csdn.net/whatday/article/details/7100855
2013-02-17 15:47:07 2675
转载 git 代理的使用方法
有时候,必须要使用代理才能够访问外部网络,这时候需要使用git来下载代码怎么办呢? 答案是可以使用tsocks来帮忙。下载地址如下:http://sourceforge.net/projects/tsocks/files/tsocks/1.8%20beta%205/tar xzvf tsocks-1.8beta5.tar.gz cd tsocks-1.8 ./confi
2013-01-14 13:25:13 1145
原创 搭建Xen虚拟化环境
环境简介:硬件环境:intel i5处理器平台(Sandy Brige)软件环境:Redhat 6.2 Enterprise (64bit) 1、 设置主板BIOS, 支持虚拟化技术 2、配置yum repo 环境根据环境需要,配置/etc/profile.d/目录中的repo环境 3、安装公共软件包yum install screen vim wget
2013-01-14 11:08:50 3861
转载 使用gprof和oprofile查找性能瓶颈
有些时候,我们特别关注程序的性能,特别是底层软件,比如驱动程序、OS等。为了更好的优化程序性能,我们必须找到性能瓶颈点,“好钢用在刀刃上”才能取得好的效果,否则可能白做工作。为了找到关键路径,我们可以使用profilng技术,在linux平台上,我们可以使用gprof和oprofile工具。 gprof是GNU工具之一,它在编译的时候在每个函数的出入口加入了profiling的代码,
2012-11-08 10:30:32 1104
原创 linux操作命令总结二()
1)查看目录大小du -sm /directory 查看/directory目录总大小, 单位MB 2) RPM软件包rpm -qa |grep vnc 查询已经安装软件中带vnc关键字的软件包rpm -e vnc 卸载vnc软件rpm -e vnc --nodeps 卸载vnc软件,忽略软件包的依赖关系
2012-07-25 13:35:11 840
原创 linux操作命令总结一(vim命令)
1、Vim操作命令1)Vim自动目录补全在vim编辑状态下(即insert状态),先按Ctrl+X键,再按 Ctrl+F键 ,即可进入目录自动补全模式,它会根据文中的目录,显示该目录下的所有文件,通过上下键来选择,回车键来确认。2)文件对比vimdiff file1 file2比较file1和file2中的代码差异或文本差异vimdiff有几个比较方便的快捷键
2012-07-16 16:18:58 2235
原创 ubuntu系统登陆后,只显示桌面,无任何图标
这个问题也困扰了我几天,今天也终于找到终极解决方法:问题:ubuntu系统登陆后,只显示桌面,无任何图标解决方法:这个问题可能是由于compiz的问题,把这个安装包卸载即可。在登陆时按--,进入console模式,在命令行中输入:sudo apt-get --purge remove compiz* libcompizconfig*
2012-07-03 15:55:27 12494 3
原创 输入正确的密码,依然无法登陆ubuntu系统
这个问题一直困扰我好几天,网上也找到好几天,今天终于找到终极解决方案了。问题:进入ubuntu登陆界面,输入正确的登陆密码,屏幕闪一下,又回到登陆界面,无法登陆到系统解决方法: 按--键,通过console进入系统,删除home目录下的.Xauthor*文件:root@kevin:/home# find -name .Xauthor*./kevin/.Xauthority-c.
2012-07-03 15:51:16 12844 3
转载 linux 的System V和BSD区别
linux或unix有两种方式的启动模式:System V和BSD最大的不同就是:System V能够为不同的运行级别定义启动哪些服务,比如: # 0 - 停机(千万不要把initdefault设置为0 ) # 1 - 单用户模式 # 2 - 多用户,但是没有NFS # 3 - 完全多用户模式(无界面的黑框框) # 4 - 没有用到
2012-06-15 15:30:12 1331
转载 mount用法详解
与WINDOWS一样,在LINUX系统中可以从光盘、软盘安装应用软件;但不同的是,它需要用命令mount来登录光驱、软驱。而且,软件大多是经过压缩的,所以还需要懂得如何解压。最后必须配置、编译才能运行。下面分四个方面进行介绍:一、mount登录 LINUX的软驱设备用特殊文件/dev/fd0表示,文件系统是msdos,因此用以下命令登录,读取软盘内容: # mount -t
2012-06-15 10:56:08 1550
原创 商务邮件写作指南
英文邮件1、格式(参考下文样板)2、主谓宾3、单词错别字4、标点符号(标点符号后面要用空格)5、要用敬语 Please help to , Would /Could you help to , Thanks for your help to /Thanks for your confirmExample:(Please follow this style to wri
2012-02-28 17:12:05 1421
转载 linux内核学习笔记之——list_for_each_entry
在Linux内核源码中,经常要对链表进行操作,其中一个很重要的宏是list_for_each_entry:意思大体如下:假设只有两个结点,则第一个member代表head,list_for_each_entry的作用就是循环遍历每一个pos中的member子项。如下图所示:宏list_for_each_entry: /** * list_f
2012-02-27 19:32:59 1431
翻译 指导8:软件缩放
Code: tutorial08.c软件缩放库libswscale 近来ffmpeg添加了新的接口:libswscale来处理图像缩放。 但是在前面我们使用img_convert来把RGB转换成YUV12,我们现在使用新的接口。新接口更加标准和快速,而且我相信里面有了MMX优化代码。换句话说,它是做缩放更好的方式。我们将用来缩放的基本函数是sws_scale。但一开始,我们
2012-02-20 19:48:54 743
翻译 指导7:快进快退
Code: tutorial07.c处理快进快退命令 现在我们来为我们的播放器加入一些快进和快退的功能,因为如果你不能全局搜索一部电影是很让人讨厌的。同时,这将告诉你av_seek_frame函数是多么容易使用。我们将在电影播放中使用左方向键和右方向键来表示向后和向前一小段,使用向上和向下键来表示向前和向后一大段。这里一小段是10秒,一大段是60秒。所以我们需要设置我们的主循环
2012-02-20 19:41:13 1041
翻译 指导6:同步音频
Code: tutorial06.c同步音频现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同步方式。我们将采用和视频一样的方式:做一个内部视频时钟来记录视频线程播放了多久,然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频都同步到外部时钟。生成一个视频时钟 现在
2012-02-20 19:33:56 654
翻译 指导5:同步视频
Code: tutorial05.c如何同步视频 前面整个的一段时间,我们有了一个几乎无用的电影播放器。当然,它能播放视频,也能播放音频,但是它还不能被称为一部电影。那么我们还要做什么呢?PTS和DTS幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频
2012-02-20 19:19:33 801
翻译 文档4:创建线程
Code: tutorial04.c综述前面我们利用SDL的音频函数实现了对音频解码和播放的支持,我们定义一个包含音频回调函数callbacks的线程函数,当我们需要音频的时候就使SDL启动这个线程。现在我们将要对视频播放做同样的事情,这样能使代码更容易模块化和协作,尤其有利于音视频同步,那么我们从哪里开始呢?首先注意到,我们的主函数需要做太多的事情:运行event循环,读pack
2012-02-20 19:00:27 1214
翻译 指导3:播放声音
Code: tutorial03.c现在我们要来播放声音。SDL也为我们准备了输出声音的方法。函数SDL_OpenAudio()本身就是用来打开声音设备的。它使用一个叫做SDL_AudioSpec结构体作为参数,这个结构体中包含了我们将要输出的音频的所有信息。在我们展示如何建立之前,让我们先解释一下电脑是如何处理音频的。数字音频是由一长串的样本流组成的。每个样本表示声音波形中的一个
2012-02-20 12:57:09 1068
原创 软件知识体系
知识分类:基础知识:1)架构设计设计模式 《深入浅出设计模式》UML设计 《大象--Thinking in UML》STL和泛型编程 《STL 源码剖析》2)底层编译、装载、链接 《程序员的自我修养—链接、装载与库》linux设备驱动 《Linux设备驱动程
2012-02-20 12:34:50 812 1
转载 程序员技术练级攻略
导读:本文是由陈皓和他的一位朋友Mailper合作完成,原名叫《Build Your Programming Technical Skills》,本文分享了Mailper和作者个人的学习经历。每个程序员都希望自己能顺利的升级到高的层次,您不妨按照下面的方法去做。前言你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学
2012-02-20 10:34:39 521
原创 常用linux命令
1、查找并删除指定路径下文件例:在/home目录下删除所有隐藏文件(隐藏文件是以“.”开头的)find /home -name ".*" -exec rm -rf {} \;
2012-02-19 16:21:32 493
linux设备驱动程序第3版代码
2012-02-22
MainConcept MPEG Encoder
2012-02-08
MainConcept
2012-02-08
Elecard YUV Viewer
2012-02-08
yuvtools_v2
2012-02-08
ASF容器官方说明文档
2011-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人