自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(299)
  • 资源 (10)
  • 收藏
  • 关注

原创 Sed和AWK入门教程之AWK篇

AWK是一门专门用于文本处理的编程语言.是的,它是编程语言,它的目的仅有文本处理,所以你不能用它写系统软件,或者做科学计算(当然,它也能做数学计算),它只能用于文本处理.与sed不同,AWK具有编程语言的特性,有内置函数,有逻辑语句,有输入输出语句,其实它看起来很像C语言,只不过所有功能集中于文本处理.与Sed不同,AWK最强大的功能在于处理结构化的文本,也就是说文本有一定的组织结构的.

2013-07-04 23:55:15 6285

原创 Sed与AWK入门教程之Sed篇

Sed和AWK是*nix命令行里面文本处理的神器,相当的强大.它们都是面向行的,或者说它们处理文本的方式都是一行接着一行的处理,从标准输入或者文件中读取内容,一行一行的执行脚本命令,然后打印输出到标准输出,直到文件结尾(EOF).SedSed是一个流编辑器(Stream editor),它的功能在于对于一个输入流进行编辑和处理.相当于是对一个输入流进行脚本性的编辑.其实它就是对一个输入

2013-07-04 22:31:41 21970 6

原创 Android实战技术: 用Dimension解决多屏幕适配的问题

开闭原则--可变与不变的分离,且容易定制应用程序的目的是尽可能做到适用于多种设备,这些设备的配置不尽相同,有些不同的物理尺寸,分辨率.为了达到最佳的适配效果,和最少的代码重复,以及最好的可扩展性,就需要分离资源的使用和资源.用一个统一的资源管理者来管理资源.代码通过资源管理者提供的统一的接口来获取资源.这样对于使用者来讲资源的获取的方式是统一,资源者无需关心如何为不同的设备获取不同的资源.这样

2013-06-28 22:49:01 32812 5

原创 Android实战技巧: ListView之ContextMenu无法弹出

问题Activity中使用了ListView作为布局.当每一列表项中含有默认能获取焦点的子View时有可能会对ListView的某些事件有影响:1. OnItemClick2. OnItemLongClick3. ContextMenu这三个事件都无法正确响应.对于ContextMenu.首先要在onCreate中注册Activity的ContextMenu到Lis

2013-06-20 23:32:47 5657

原创 Android实战技巧: ExpandableListView滑动时会变黑

问题有一个简单的ExpandableListView用于显示某一天下面的事件列表。为了符合整体的风格,把窗口的背景设成了白色,把ExpandableListView的背景也设置成了白色!一切都很好,但突然发现,当滑动的时候,ExpandableListView会变黑!甚是奇怪。刚开始以为是Focus的问题,调整了不管用。后来,调整了每个GroupItem和ChildItem的背景,把它们的背景

2013-06-19 22:11:09 6376

原创 Vim高级进阶之ex命令集

ex是Vim对行编辑器ed的支持.ed是一个面向行的编辑器.在远古时代,还是黑白终端的时代,有一个流行的面向行的编辑器ed,也即把文件一行一行的读入,一次只显示一行,然后编辑这行.所以Vim中的ex命令都是ed编辑器所支持的命令,现代所用的流编辑器sed中的命令是ed命令的扩展.所以掌握了Vim中的ex编辑命令,稍加变通就连sed也一起搞定了.Vim是全屏编辑器,因此不会像ed那样只显示一

2013-04-14 11:35:05 10551

翻译 五年专业编程的14个经验

这里并没有特定的顺序:1. 当遇到性能问题时,如果可以在应用程序层上评估或处理,那么就把它从数据库层中拿出来."按XX排序"和"按XX组合"就是典型的例子. 应用程序层总是比数据库层容易测量.这对服务器上的MySQL和手持设备上的SQLite都是一样的.HackerNews上有一些很好的评论,所以这里我澄清一下:我们仅为了某些特定的查询做这些,不是为了提升某个客户的反应速度,而是为了减轻复

2013-04-06 21:33:00 3091 2

翻译 可评审代码之道

如何组织改动的一些建议.这篇文档是纯建议性的.Phabricator(一个源码审查工具)可以与很多源码控制策略一起使用,这篇文档中的建议产生的差异不会影响到把Phabricator作为代码审查和源码管理的使用.概览这篇文档描述了一个在Facebook和Phabricator中被成功的应用结构化改动的策略.大体上:每次提交应该尽可能的小,但不能再小了一次提交要小到

2013-03-21 22:17:01 3542

翻译 为什么仍还用C编码?

作者Andrew Binstock概述:作者论述了C语言仍然屹立不倒,长久不衰的原因:过去C语言在性能和可移植上面有巨大优势,但随着时间的流逝其他语言(C++等)在性能和可移植上与C的差距越来越小.但为什么C还很火.作者认为是因为C语言的简洁性,使它在系统级别上仍然无可替代.但是对于应用程序开发还是选择其他语言较好,因为开发效率更重要.正文:偏好C而非C++的传

2013-03-17 23:16:38 4360

原创 如何用doxygen生成文档

Doxygen是一款基于源代码生成文档的工具,类似于Java中的javadoc.概念:文档和注释的区别文档(Documentation)是给代码的使用者准备的,或者是更高一级的开发者或者是用户,主要是告诉使用者如何更好的使用代码.典型例子就是API文档.注释代码的一部分,解释代码为什么这样写,是给代码的维护者准备的.优秀且可读的代码应该不需要注释,但文档应该是必须有

2013-03-07 21:05:52 10060 1

翻译 gbs使用手册之gbs chroot

子命令chroot允许用户chroot到gbs build生成的buildroot(编译环境)目录.可以使用如下方法获得基本的使用帮助:$ gbs chroot --help注意:build root的默认位置是在~/GBS-ROOT/local/scratch.{arch}.*,如果在运行gbs build时使用了-B选项,则这个路径会不同.实例:创建build ro

2013-03-06 21:34:07 3820

翻译 gbs使用手册之gbs build

开发者可使用gbs build在本地编译源代码然后生成RPM包.使用这个命令:gbs build --help可以获取关于子命令build的帮助指南.gbs build -hgbs build工作流程gbs build所需输入下面所列的是gbs build的输入:包含RPM打包文件的一个(或多个)git项目二进制RPM软件包仓库(远程或本地)项目编译的配置选项(宏,开关

2013-03-06 21:21:28 8026

翻译 gbs使用手册之配置文件

Git Build SystemGBS(git-build-system) 是支持Tizen软件包开发的面向开发者的命令行工具.它被用来基于Git仓库生成压缩包(tarball),还能用于本地编译,还可以用于提交代码到OBS(Tizen的主要的编译服务)这部分包含更加详细的GBS信息.我们建议您首先阅读一下"开发环境的搭建"章节.配置文件(Configuration

2013-03-06 20:25:15 4845

翻译 短信技术的几个基本概念

1. 短信的有效期(validity period)如果接收手机离线,一条短信会暂时存储在短信服务中心.也可以给短信设置一个时间期限,就是短信过多久才会从短信服务中心删除,这样一来即使是接收手机转成在线短信也不会被发送给接收手机.这个时间期限就叫做有效期.举个例子来说明如何使用有效期.比如你现在发现电视播放的某个节目非常的有意思,你的朋友没准也想观看一下.因此,你发了一条短信把电视

2013-03-02 12:22:27 5834 1

翻译 好的程序员应该第一时间去Google

我所知道的最好的程序员是在Framebase.io的技术合伙创始人.我不晓得他是怎么做到的,但是他对Google的使用远胜于我.你应该知道这句名言:         "绝不要去记忆那些很容易在书中查到的东西" ---- 爱因斯坦所以,除非你已经把排序算法熟记于心,要不然为什么要花2个小时自己去思索呢?最糟糕的是,当你能从某些之前做过的人那轻易的找到时,为什么还要从零开始重新实现

2013-03-01 23:00:16 2743 3

翻译 参数声明中的静态数组索引:一个不错且鲜为人知的C语言特性

C语言的创造者们一定都热衷于让关键字的数目尽可能的少.今天将向你展示另一个可使用C99中static关键字地方.也许你已经看到过在数组的参数声明中包括数组的长度:void foo(int myArray[10]);这样的函数仍可接收整数指针int *,但是长度[10]可以对阅读代码的人们可当作文档,传达着这相函数预期一个长度为10个整数的数组的信息.

2013-02-21 23:04:18 3711

原创 常见面试题之C++

1. struct与C语言中的struct有何区别在C语言中, struct仅用于定义复杂数据结构,也主是说它只能定义数据,它的成员只能是数据类型,不能直接定义方法函数。在C++中,struct除了C中的用途外,还可以像class一样,可以定义成员方法函数。2. struct与class的区别共同点:它们都可以定义面向对象中的类:定义成员数据和成员方法函数。区别

2013-02-15 12:15:26 2805

原创 C语言中编译相关的常见错误

1. /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start':(.text+0x18): undefined reference to `main'collect2: ld 返回 1Reason: no main function in source file2.

2013-02-14 09:56:48 7299 1

原创 如何玩转ELF(*.so)

Shared library can be confusing and erroneous. It is very vulnerable to get "undefined symbols" error. There are some good tools can be used to analyze the so file and help us to locate the error.A.

2013-02-13 12:12:01 4594

原创 Android开发:实践TDD的一些建议

最近部分采用了TDD的方法来开发一个模块,小有收获特此总结一下:1. TDD的基本原则TDD的最核心思想就是先明确需求,且用代码的方式量化,明确需求标准,然后进行编码实现以达成由代码测试来衡量的标准。那么它要求,先把需要标准写出来,每次只写一个。编码实现通过达到,并刚好满足这个标准。这样一点一点的迭代。这样有三个好处:一个是先明确标准,不至于我们迷失主题,偏离方向。有标准在检测,保

2013-02-12 16:25:40 4190

原创 重构的几点注意事项

最近又温习了一遍Martin Flower的经典名著《重构:改善既有代码的设计》,感触颇多,应该总结一下:1. 重构是减缓代码腐化的有效武器现在很少有软件完全是从0开始开发,也很少有软件有很短的生命周期(2年)以下。那么,换句话说,很多时候你拿到的都是既有代码,它能工作,也许它的设计很好,也许很乱,但它肯定能工作。即使是优质的项目,当初的设计,架构非常合理,代码很优质,但随着时间的

2012-12-15 11:41:03 7462 1

原创 AsyncTask的坑,Handler,Looper与MessageQueue

AsyncTask的隐蔽陷阱先来看一个实例这个例子很简单,展示了AsyncTask的一种极端用法,挺怪的。public class AsyncTaskTrapActivity extends Activity { private SimpleAsyncTask asynctask; private Looper myLooper; private TextV

2012-11-17 20:04:17 14710 8

原创 如何更有效的进行面试

面试是一个永恒的话题,也是这一辈子必不可少的一部分,无论是对于公司还是个人而言。如何能更好的找人和找工作也是一个值得探究的问题。针对不同角色面试官和应聘者,结合自身的经验,总结了一些能让面试更有效率的建议:对于公司和面试官明确需求:到底需要什么样的人招聘中的面试应该是按照需求来选择人,就好比体育选拔赛,制定一定的标准,然后对应聘者进行测试(通常为笔试和面试)然后择优录取

2012-11-03 15:52:28 7034 5

原创 Android实战技术:ListView刷新的顺序问题

背景一个典型的ListView,每个Item显示一个TextView,代表一个Task,需要实现二个编辑方式:一个是用CheckBox来标识任务已经完成,另一个要实现的编辑是删除任务。对于完成的CheckBox就直接放在布局中就可,但对于删除不想使用ContextMenu来实现编辑,对于像iOS中那样的列表,它的删除都是通过对列表中每个项目的手势来触发。这个实现起来并不难,可以用一个ViewS

2012-10-20 00:13:17 6159 2

原创 Android应用“今日事今日毕”发布了

今日事今日毕,这是高效工作的最重原则。没有什么能比从待办事项列表里划掉一些条目更让人觉得舒服的事了。做为一个高效的人,您需要一个优秀的待办事项管理工具,一个优秀的待办事项列表可以帮助你更加高效的完成一天的任务。今日事今日毕是款优秀的待办事项管理工具,它可以方便,简洁快速的帮您安排一天内要做的任务。无论是待办事项,购物清单,甚至是临时记事都可以用它来完成。没有繁杂的日期和时限设置,没

2012-10-19 10:41:01 5215 3

原创 Android实战技巧:深入解析AsyncTask

AsyncTask的介绍及基本使用方法关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复。AsyncTask引发的一个问题上周遇到了一个极其诡异的问题,一个小功能从网络上下载一个图片,然后放到ImageView中,是用AsyncTask来实现的,本身逻辑也很简单,仅是在doInBackground中用HTTP请求把图

2012-09-16 00:02:49 106227 87

原创 Android Ticks: display text vertically

TextView of Android is a text label to display text. But it can show text only horizontally by default, left to right or right to left. There are some chances that we would like to show text verticall

2012-09-15 09:23:11 3595 1

原创 Android实战技术:Splash的实现

什么是SplashSplash也就是应用程序启动之前先启动一个画面,上面简单的介绍应用程序的厂商,厂商的LOGO,名称和版本等信息,多为一张图片,显示几秒钟后会自动消息,然后显示出应用程序的主体页面。在PC上,很常见各种平台的应用程序都会有,多半是一张图片显示在屏幕中央,如Microsoft Office系列,或者GIMP等。在各种游戏中Splash是最常见的,几乎所有的游戏开始都会有一张全屏

2012-09-11 21:56:55 30220 9

原创 Vim进阶技术:搜索和替换

行内搜索行内搜索,也就是在当前行内进行搜索和移动,通常都与编辑命令一起使用。fx -- 移动到下一个字符x的位置,光标停留在x字符上面tx -- 移动到下一个字符x的位置,光标停留在x前一个字符上Fx -- 移动到前一个字符x的位置,光标停留在x字符上面Tx -- 移动到前一个字符x的位置,光标停留在x后一个字符上; -- 重复前一个搜索,向着同一方向,即原来向前就向前,原来向后就向后

2012-09-10 22:02:04 13166

原创 一道面试题:餐馆模拟

前阵子遇到一个面试题,当时没有做出来,后来断断续续的用了一周的时间做了出来,但感觉也不完全对,先来看看题目,稍后再讨论。问题模拟一个餐馆,三个厨师,二个服务员,厨师单独做菜,2分钟一个菜,服务员单独送菜10秒一个分析一看这问题就知道考查的点是多线程,生产者与消费者模型的模拟类问题,《Java编程思想》中有类似的例子,但是这个问题比书中的例子要复杂一些,因为厨师和服务员都有多个,所以

2012-09-04 20:33:11 3778 2

原创 Android实战技术:Cursor相关的性能问题

当数据库中存有大量数据的时候,用Cursor查询时要注意,有可能引发性能问题。数据库查询出来的Cursor都会由一个CursorWindow来进行数据管理,包括内存空间的申请和数据的填充。CursorWindow对Cursor中的内容大小有限制,限制为1024*1024也就是1M,换句话说Cursor中数据的大小不能超过1M,如果超过1M会引发如下的错误:08-23 05:48:31.838:

2012-09-01 21:40:50 6827

原创 年中总结:一些工作和技术相关的想法

1. 不要为过去买单不要活在过去,今天才是最最重要的,明天更重要。不要弥补过去,那样会错过今天和明天,更会把自己迷失在过去的阴影中,会造成总是犯错,又总是为过去改过,于是生活在一个怪圈之中。2. 量化目标,把目标具体化千万别把一些:掌握,熟悉,高级,专家等一些非常抽象的标准作为你的目标,仔细想一想:什么叫掌握,什么叫熟悉,什么叫高级什么又叫专家呢?这些东西不同的人会有不同的理解

2012-08-22 21:03:03 3273 3

原创 WebKit技巧:如何用GDB进行调试

对于Android中的Webkit(libwebcore.so),因为它是系统底层的库,所以没有办法像App和Frameworks那样直接用Eclipse来调试,因为它们都是C和C++语言,所以对于它来讲只能用GDB来进行调试。何时用到GDB来调试个人认为,并不是所有问题都立马上GDB来调试。因为Webkit的代码十分巨大逻辑也十分的复杂,所以直接用GDB,可能不是很直观,你无法在合理的位

2012-07-22 18:46:51 5597

原创 Webkit实战技术:如何添加日志信息

调试日志信息调试日志都是由宏来定义和实现的,并由另外定义的宏来作为开关。日志开关Webkit中只有JNI部分是有Log日志的,其他代码都没有加入日志。JNI部分常用的LOG有:DBG_SET_LOG      在external/webkit/Source/WebKit/android/jni/PictureSet.h中定义,开关为PICTURE_SET_DEBUGDB

2012-07-17 22:58:16 6225 1

原创 给大一新生的建议

1. 好好利用高考结束后的暑假这个暑假非常的长,是高中三年痛苦生活的一次小补偿,要好好的利用。第一:好好的放松一下,最好选择去某个地方进行一次长途旅行,可以和父母亲人一起,但我更建议跟要好的朋友和同学几个人一起去,这样不仅可以锻练自己的独立做事的能力,更能增进朋友之间的友情,另外,由于都是同龄人,想法行为会更一致,会让旅途更加的愉快!第二:好好的陪伴一下家人,你要明白随着人的成长,跟家

2012-06-16 17:13:12 8323 3

原创 写给即将毕业的同学们

纷纷的雨季送来了别离,一年又一年,又一大批学生即将离开学校,结束学生生涯,开启人生的另一个征程!回首自己走过的路,总结了下,写点东西出来,不敢说是忠告或是什么经验,但是至少没坏处!1. 回首过去,思考人生找一个安静的地方,听着音乐,闭上双眼,慢慢的回忆过去,一点一点的回忆,发生的事情,做过的事情,犯过的错误,特别是你曾经没做好的事和做的满意的事情等等。回首过去,思考那些

2012-06-15 23:06:04 5077 2

原创 16岁的博士----神童还是悲剧?

本来不想写这篇文章,关于16岁全国最年轻博士(其实也是最年轻的硕士和本科生)这个故事在2011年四五月份的时候就听说了,当时有一个小电视,每天都当背景音乐在放着,有一天晚上就报道了16岁神童的故事,第一感觉是这孩子真苦。今天浏览CnBeta时突然又看到了这个消息,一细看原来都是以前的旧报道,内容跟以前电视采访是一样的,于是先大骂一下CB,又思考了一下,觉得应该写点什么(但后来CB好像把这篇文章删除

2012-06-14 23:21:37 4203

原创 Android线程解惑

一个应用只有一个线程在默认情况下,更确切的讲一个进程中只有一个线程,这跟其他语言,比如C/C++,Java等是一致。也就是说在Android应用程序里面一个进程只有一个线程,所有组件都运行在一个线程里面!当应用程序启动时,系统会为其创建一个进程,也会创建一个线程名字叫做main,所有其所属组件的创建,系统事件的处理,系统的回调等一切应用相关的事情都运行在此名叫main的线程中。此线程即为常

2012-06-12 22:23:58 6174 2

原创 如何快速接手一个项目(内部项目或开源项目)

1. 了解项目读相关的文档和文章,起码要知道这个项目是用来干嘛的,有什么样的功能,运行在什么上面(手机,PC,或多平台),发行许可(GPL,Apache或者??),目标格式(应用程序,库,中间件等)等等。通常这些问题在项目的文档,Wiki,FAQ等地方都 能找到。2. 获取源代码这不用多说,没源码你还研究个啥,这个官方文档会讲,通常都是通过SVN或GIT,当然也有把源码打包下载的(

2012-06-02 21:15:07 12704 3

原创 一个合格的软件开发者所应拥有的

日常工作必备技能: 这些东西是不是每天都用用到呢Unix/Linux Shell:如果用Unix/Linux系统,必须要学会Shell,目的是写一些自动化脚本,看看《Productive Programmer》和《Pragmatic Programmer》,其实很多事情不用手动去做,电脑会帮我们无差错的完成,一次又一次毫无怨言,人可没这么好。Windows BATCH:必然会用到Windo

2012-06-02 20:32:56 3416

doxygen完整示例

完整的如何使用Doxygen的例子,包括书写文档块,配置和生成的文档!

2013-03-07

The Artist’s Guide to GIMP, 2nd Edition

The Artist’s Guide to GIMP, 2nd Edition 英文原版 The GIMP, an image editor whose power and ease-of-use rivals that of Adobe Photoshop, is one of the world's most popular free software projects. Artists and designers have relied on the GIMP since 1995 to retouch photographs, composite multiple images, and create new artwork from scratch. The Artist's Guide to GIMP Effects shows you how to harness the GIMP's powerful features to produce professional-looking advertisements, impressive photographic effects, as well as logos and text effects. And author Michael J. Hammel, who has used the GIMP since its first public release, won't mince words or waste your time. His extensively illustrated, step-by-step tutorials are perfect for hands-on learning and experimentation. After a crash course in using the GIMP's interface and core tools (such as brushes, patterns, selections, layers, modes, and masks), you'll learn: Photographic techniques to simulate ripped edges, create sepia-toned antique images, swap colors, produce motion blurs, alter depth of field, and even fix rips in an old photo Web design techniques to create tiled patterns, navigation tabs, rollovers, and fancy buttons and borders Type effects to create depth, perspective shadows, metallic and distressed text, and neon and graffiti lettering Advertising effects to produce movie posters and package designs; simulate clouds, cracks, cloth, and underwater effects; and create specialized lighting Interface design tips for creating textures, navigation bars, and buttons Whether you're new to the GIMP or you've been playing with this powerful software for years, The Artist's Guide to GIMP Effects is sure to teach you some new tricks. Visit the book's companion site for additional tutorials and resources. http://www.graphics-muse.org/artistsguide/

2012-10-20

Android本地代码生成器

可以自动生成Android本地代码。 解压后,在项目根目录下面运行genjni.sh(先把里面的genjni.jar放在一个地方,然后把genjni.sh里面的路径改下)。之后,如果有本地方法声明,就会生成本地文件和编译文件。

2011-10-19

Android本地代码生成器

能帮助使用NDK开发时自动生成本地代码。 只需要在Java文件中声名本地方法,然后运行这个工具,它会逐个检查Java文件,并根据里面的本地方法生成本地文件,和相应的Android.mk文件。并会更新Java文件,添加System.loadLibrary。 接下来所需要做的就是实现那些本地方法。然后编译。

2011-10-19

Java反编译器

用于反编译Jar的实用工具,在逆向工程的时候特别的有用处。 可以把Jar直接解析成Java代码.

2011-10-14

Android反编译工具dex2jar

用于反编译Apk的实用工具,在逆向工程的时候特别的有用处。 可以把Dex转成Jar包。

2011-10-14

AMXLPrinter2用于把二进制的XML转为文本

用于将二进制的XML文件 转回到文本。在Android应用程序Apk逆向工程的时候特别有用。

2011-10-14

Learn the GNU Emacs Editor

best book about learning Emacs Editor

2009-05-29

Learning Vi and Vim editor

best course about Vi and Vim Editor. This is the 7th edition. It includes many Vim-7 new features

2009-05-29

Fedora 10安装教程

详细介绍Fedora 10的安装,非常适合初学者.

2009-05-29

空空如也

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

TA关注的人

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