自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Joyer的日志

复杂人的简单

  • 博客(123)
  • 资源 (3)
  • 收藏
  • 关注

原创 火速配置完成mercurial(Hg)中心版本库,支持push/pull

虽然ssh方法非常完全,却不敏捷。。SCM基本上是只增不减的东西,所以支持push非常重要! 最好懂的方法是用hg serve,不过他不支持push,好吧。。而且默认端口是8000,我们要的是80,因为方便输入。。所以。。最快的办法是在版本库目录输入:echo "[web]" >>.hg/hgrcecho "allow_read = *" >>.hg/hgrcecho

2010-04-01 11:21:00 6234 4

原创 发布一个emacs扩展:Hexview巨文件16进制查看模式

title: 发布一个emacs扩展:Hexview巨型文件16进制查看模式Emacs(http://www.gnu.org/software/emacs/)是个神奇的工具,她能让使用者的编辑效率永无止境地提升。今天区区的一个Weekend Project再次印证emacs强大而灵活的扩展能力————只用不到两个小时的时间编写的一个扩展,赋予了emacs方便查看巨型文件

2010-01-29 23:04:00 3910 1

原创 老是记不住/r 和 /n 哪个是13 哪个是 10

所以要在blog写下一个小代码: javascript:alert(/n.charCodeAt(0)); alert(/r.charCodeAt(0)); javascript:alert(String.fromCharCode(112, 108, 97, 105, 110));

2010-01-22 15:11:00 1507 1

原创 处理apt-get update遇到的PUB KEY GPG ERROR

公司的debian稳定运行很久了,一直没怎么动过,今天同事告诉我说apt-get update不了,出现PGP错误。。。 google一下,找到两个比较靠的贴子:http://en.kioskea.net/faq/sujet-809-debian-apt-get-no-pubkey-gpg-errorhttp://www.debian-administration.org/ar

2010-01-20 16:03:00 2488

原创 C Array Dumper(一个将任意文件转成C语言数组文本的东西)

因工作和个人爱好需要,最近要写一些内存受限系统上的程序(或者说嵌入式),将一个将任意文件转成C语言数组文本是频繁遇到的一个功能请求。网上有很多现成的工具:比如,http://d.download.csdn.net/down/635265/pajoke (我花了一个积分试了一下,GUI版的不错。)http://www.pudn.com/downloads82/sourcecode/oth

2010-01-13 01:07:00 2994

原创 Google Chrome的实现技术

Table of Contents1 尝鲜 2 浏览器开发架构 3 插件开发者的转移 4 Chrome Frame的扩展方式实现 1 尝鲜 Hey,想来你也知道互联网流行先锋google最近又折腾出了个chrome frame了,号称可以让你在IE中享受一下google的渲染引擎和V8的非凡速度。使用方

2009-09-26 01:38:00 2771

原创 让windows的GNU emacs默认shell启动cygwin bash

区区的好友Victor告知说他打算转用cygwin版的emacs了,为了更加方便的集成他开发MTK时的bash环境。 于我这也google了一下cygwin emacs等主题。。结果在这时(http://www.khngai.com/emacs/cygwin.php)找到一些非常用的定制。。  (add-hook eshell-mode-hook   (lamb

2009-09-21 10:49:00 7143

原创 用GCC输出带C源代码注释的汇编列表文件

 我们都知道gcc的-S开关可以用来生成汇编代码,但有时候,单有汇编文件是不够的,我们希望的是将C语言程序的源代码和汇编语言文本交错在一起查看,这是LISTING功能,在gcc中并没有专门的FAQ说明,区区在网上查了很多资料才知道怎么实现,所以特此记下。 gcc -c -g -Wa,-adlhn ee.c >  ee.anno.s 由此生成的ee.anno.

2009-09-08 04:30:00 8522 1

原创 支持自动TOC超文本目录生成的chm转换器(perl脚本)

早些时候为自已使用方便编写了一个将chm解压结果文件压中的hhc文件转换成目录式html的脚本。如果大家需要这个功能,可以从这里找到。两个脚本程序都是使用perl语言编写,所以你需要一个比较IN的perl发行版(区区推荐是ActivePerl)。 用google很容易就能找到windows系统内置的chm解压方式:HH.EXE -decompile [解压至路径] [被

2009-09-02 11:25:00 3011

原创 解压chm后由hhc生成html索引页面

解压chm大家都知道很简单。很多时候用hh来看chm是很痛苦的(比如没有增量查找功能),但是只用hh或者7z解压的chm,根本就没有目录(运气好的话,一些电子书会有目录页),而当我们用hh查看时,.hhc才是真正的目录。。今天实在觉得不能忍受,于是打开perl写了个将.hhc简单转成.htm的脚本程序,代码最终很简单,但区区花了不少时间去尝试XML::Simple(原以为更简单)。

2009-09-02 01:47:00 4234 3

原创 公有领域一AES加解密算法C语言实现,和一个小的改进

从Google Code上看到的项目,http://code.google.com/p/byte-oriented-aes/downloads/list只有一个文件,实在是简单亲切又可爱的东西。。。 文件aestable.c中的ExpandKey 函数用以展开太短的keyDecrypt       函数用以进行单次key长的解密Encrypt       函数用以进行单

2009-08-28 16:09:00 3371 1

原创 最简易的BMP文件格式读取和显示示意程序

 在看ImageMagick时,忽然觉得,我们应该至少能完全掌握一种是常使用的图片文件格式才行。 首先想到,应该是BMP,不要求复杂,只掌握24bit,非压编的BMP即可。 于是用WTL的CMemoryDC试写了一个,因为是第一次这样按位来SetPixel,有很多问题到写时才觉得复杂,真正完成时,已经是深夜了。 把它们贴到blog上,以后不想再又试一遍了。  vo

2009-07-09 02:52:00 2323 1

原创 大家都可以用的emacs草稿buffer生成命令

发现自己常常会有临时新建某一编程语言buffer,这个buffer并不想保存,所以不想每次都输出文件名,而emacs在内存buffer创建时,并不会开启相应的语言mode。。 所以区区编写一个简单的scratch-run命令,可以智能地提示并补全emacs支持的各种语言major mode,另外还提供一个简单的alist别名操作: (defvar scratch-run-ali

2009-07-08 16:14:00 2015

原创 打印自身源代码的程序,一个通用方法

  打印自身源代码的程序,这是翻看《More Programming Pearls》时的一道作业题。 记得以前曾看到Ken Thompson老师的一个版本http://www.cnblogs.com/coderzh/archive/2008/05/13/1194426.html 不过这个版本严格来讲不是合格的的打印自身程序,虽然两段文本的编译结果相同,但用diff程

2009-06-27 10:16:00 6607

原创 google v8 实战 -- 神秘的v8.vcproj

title: google v8 实战 -- 神秘的v8.vcproj 根据前文的说明,大家应该都可以把v8.lib编译出来了。 本文想再说说编译这个环节。因为区区在另外一台同样安装了VS2008和python2.5的机器上,编译失败,而且败在v8.vcproj中的natives.cc上。打开这个文件时要小心,连IDE都会警告说“这个文件包含巨长的文本行,可以会很慢”。

2009-05-07 00:17:00 6976 1

原创 google v8 实战 -- 构建v8

title: google v8 实战 -- 构建v8首先用废话热热身,再来马上很快就讲怎么样构建v8。事情源起于不久前用Gmail(http://mail.google.com)读《ACM Queue》,里面有篇文章说google又抛出个叫o3d(http://code.google.com/intl/zh-CN/apis/o3d/)的东东,支持在浏览器内实现3D硬件加速,而且还可以用Javas

2009-05-06 23:59:00 5680

原创 用ATL使用自动化操控MS word读取文本内容

用ATL操控word读取文本内容。这是一个非常简单而且实用的功能,区区简单地封装成两个函数:extern wstring wstring_from_word(const wstring &);extern string string_from_word(const string&);  #ifndef WordReader_h__#define WordReader_h__

2009-04-09 19:36:00 2352 1

原创 一段备用JS代码

Insert title here  var logger = document.createElement(div);logger.setAttribute(id, logger);document.body.appendChild(logger);function $L(msg) {    var ln = document.createElement(p);  

2009-03-26 22:03:00 898

原创 项目做得迷糊时,阅读!

2009年,区区的第一个任务是编写一个文件系统,其实以前研究操作系统时,最不感兴趣的就是文件系统的部分。以至于到后来查看SQLite的db虚拟机代码时,对其Btree和页缓冲表的实现惊叹不已。 手下指导了一个实习生小Z做毕业设计,题目是嵌入式文件系统,又一个文件系统,他说想参考开源的UFFS,重用的念头浮上来。 不过后来,重用UFFS的念头又打消了,起因是小Z有一天拿着UFFS的E

2009-03-13 23:46:00 1388

原创 原子化字符串

在编译器或者其它语言处理软件的开发过程中,字符串管理是非常重要的。原子化字符串可以提升符号管理和文件名管理。下面是区区编写的一个简单实现,intern一词是来源于emacs lisp的intern函数:///////////////////////Pimpl模式声明class AtomsImpl;class Atoms{public: const char * intern(const st

2008-12-04 11:21:00 1420

原创 忽然觉得google chrome速度快是完全有道理的

google chrome 浏览器速度快的原因有很多,比如优秀的javascript实现,webkit原有的高效代码。这里区区想指出的是一个许多人并没有注意到的因素:chrome的标签页独立进程运行方式。单从操作系统方面来说多进程有些浪费内存,但是可以有一个更强分界的Sandbox提高可靠性和安全性,这一点也被许多chrome用户称道。加速是这一运行方式的另一获益,因为

2008-09-04 01:00:00 1993

转载 曾国藩经典人生哲理语录——大师级别啊

曾国藩经典人生哲理语录 1、凡遇事须安祥和缓以处之,若一慌忙,便恐有错。盖天下何事不从忙中错了。故从容安祥,为处事第一法。2、人生一日或闻一善言,见一善行,行一善事,此日方不虚生。遇富贵人,宜劝他宽,见聪明人宜劝他厚。3、得失有定数,求而不得者多矣,纵求而得,亦是命所应有。安然则受,未必不得,自多营营耳。4、行事常思退一步。5、 处毁誉要识有量,今之

2008-06-17 21:55:00 3187

转载 开始→运行→输入的命令集锦 (建议收藏) 开始→运行→输入的命令集锦

开始→运行→输入的命令集锦 (建议收藏) 开始→运行→输入的命令集锦  gpedit.msc-------------------------组策略  sndrec32-------------------------录音机  nslookup-------------------------ip地址侦测器  explorer-------------------------打开资

2008-06-13 00:02:00 869

原创 知道未必是做到!算法的实现总让人意外

<!--.constant {/* font-lock-constant-face */color: #7fffd4;}.function-name {/* font-lock-function-name-face */color: #63b8ff;}.keyword {/* font-lock-keyword-face */color: #00

2008-06-06 01:59:00 1561 5

原创 将一些开发时常用到的火狐插件独立成XUL runner应用。比如XPCOM viewer

 火狐浏览器挺不容易的,平时都拿来看网页,做mozilla开发时还担当着文档中心的任务,十几个MDC的页面常驻着。另外还得运行许多开发插件,比如 XPCOM viewer,这东东在查找火狐现有组件服务时是必不可少的(当然还有另一个叫XPCOM components viewer的,各有千秋)。但浏览器毕竟有其不方便的地方:*我们为安全需要更新FF到最近版本时,很多插件会不能用。解决方法之一是把插件

2008-06-02 23:46:00 2658

原创 不能忘了看XUL Tutorial。

今天是儿童节,大街上小孩子和家长太多,不方便出行。于是区区就在屋里写写uDown的界面。首先当然是模仿:用XUL做一下模仿netants 1.25的界面,netants是最早的网络分段缓传下载软件,在区区初中时就很有名了,目前几乎所有的下载管理软件在界面上走的也还是netants的基本布局。刚才记录了一下,用到了几个XUL元素:window,dialog,commandset,command,me

2008-06-01 21:42:00 1202

原创 将venkman的调试功能加入到xulrunner应用当中。

venkman是目前做mozilla平台开发首选的OS调试工具。本文说明如何将venkman功能加入到我们自己的xul当中。MDC的调试说明文档对此也有比较详细的说明,详细的有点罗嗦,但是大家也不妨一阅,下面是简单中文版。1.首先要在这儿下载venkman的最新版,(将.xpi另存为.zip文件方便些)2.将压缩包内的文件chrome/venkman.jar拖到我们自己XUL应用的chrome

2008-06-01 00:28:00 1612

原创 让emacs的compile更聪明一些——另一个为xul开发而写的emacs扩展

最近一直在为xul写yasnippet的snippet,包括javascript的和XUL的,区区从来不抱怨XULrunner程序开发没有IDE,因为emacs已经够快了(调试功能还是想要D~)。有个问题以前就很想解决。那就是改进emacs的compile。举例来说吧,如果目录树如下:顶层目录ext代码目录ext/src文档目录ext/doc你正在编写的代码文件是ext/src/main.js那如

2008-05-31 02:43:00 1853

原创 XUL程序中访问文件,非常简单,非常痛苦

先贴上短短的代码。。。function useFile () {    var a_in_name  = CQI(@mozilla.org/file/local;1,Ci.nsILocalFile);    var a_out_name = CQI(@mozilla.org/file/local;1,Ci.nsILocalFile);    var a_in_stream  = CQI(

2008-05-31 00:41:00 2003 1

原创 gecko-sdk的nsIGenericFactory和宏NS_IMPL_ISUPPORTS*在VC6下面会表现异常。

nsIGenericFactory对于编写简单C++ XPCOM来说是个好东西,她可以把复杂的Factory对象定义用简单几句话完成,nsIGenericFactory其实是基于表驱动来实现的,一个简单的C++ XPCOM类厂如下:(更新补充: 宏NS_IMPL_ISUPPORTS*和NS_GENERIC_FACTORY_CONSTRUCTOR交互的结果显示,出错的是NS_IMPL_ISUPPOR

2008-05-28 23:43:00 1642

原创 编写第一个javascript的XPCOM,以及一些小问题的解决。

如果会阅读E文文档,那么阅读一下这个,这个和这个是很有帮助的。在上一篇日志的基础上,加一个XPCOM应该不是很难的事情。在firefox3.0之后,引入了方便javascript XPCOM编写的XPCOMUtils,在MDC的教程上有两个版本的示例代码。本着一切从简的原则,区区把不用XPCOMUtils的版本照抄了一个。。编写HelloWorld.idl:#include "nsISup

2008-05-27 22:19:00 2796

原创 用emacs创建第一个基于mozilla的xulrunner应用程序。

创建xulrunner应用不是很复杂:按照MDC的Getting started with XULRunner提示首先要按照提示装好xulrunner,然后在path路径中指定好xulrunner的路径下面要分几步:创建下面的目录文件结构+ /myapp|+-+ /chrome| || +-+ /content| | || | +- main.xul| || +- chrome.manifes

2008-05-27 00:59:00 1905

原创 在windows中编译构建mozilla firefox 3.0 rc1

mozilla的构建过程非常复杂——和几乎所有复杂软件一样复杂。目前最好的文档仍然是MDC上有关Build的页面,不过可惜全是E文的,会有些人看得慢。*MSYSwindows版的火狐编译更是比其它unix麻烦,虽然区区有完全安装的cygwin,可是火狐要求用MSYS,不过这也是正确的,因为cygwin过于庞大,版本问题比较多。*MozillaBuild 1.2还好,MDC上提供的mozillabu

2008-05-26 00:35:00 1649

原创 JavaScript真相报告(来自mozilla,兼推荐一个好用的web幻灯片系统)

如果你是火狐爱好者,而且还是搞开发的,那么强烈你把 Mozilla Developer Center (MDC)收藏,因为在这里你可以看到火狐最新最IN的进展首页上推荐阅读的The Truth About JavaScript就是区区所指的真相报告了。老实说,介绍的东西挺guru级别的,如果不非常关心js的进展,都可能不知道在说什么。。这应该就是有人抱怨mozilla在把js搞得越发复杂的起因吧。

2008-05-25 01:27:00 1271

原创 uDown怎么了

区区一直想要一个好用的下载管理器。迅雷很快,可是太占系统资源,而且广告太多;网际快车/netants/tuodu都很好,可是并没有达到区区对速度/资源占用/功能的要求;区区心目中完美的Downloader是uDown(这只是我脑海中的一个代号,还不是真实产品)。第一次想过写uDown(翻看自己Blog的记录)已经是一年前的事情了,那段时间比较有空(提前完成了工作中的事情),于是着手设计和实现uDo

2008-05-25 01:02:00 2233

原创 让Nokia SDK与最近版本的ActivePerl协同工作

注意,解决方法其实只是编辑文件/devices/S60_3rd_FP2_SDK/epoc32/tools/perllib/params.pm和文件/devices/S60_3rd_FP2_SDK/epoc32/tools/perllib/args.pm在它们开头的use语句后分别加入:#加入到params.pm中sub CParamItem::New;sub CParamsEntry::New;#

2008-04-22 22:11:00 1450

原创 在emacs实现VIM和textmate的两个特色功能。。。

不知道你有没有碰到过这样的需要,就是在用两个窗口(在emacs或者vi中的window)编写两个文件时 ,忽然觉得应该把两个窗体的内容(buffer)互换一下,方便查看,这在gvim中,使用Ctrl-w r就可以完成。---号称无敌的emacs没有这个内置的功能~~还有一个功能在textmate(macOS和ruby扇子的最爱) 和eclipse的编辑器中有有,就是选定一些文本行,再按alt +

2008-02-29 00:43:00 4233 1

翻译 effective emacs中文版

这是对区区的emacs技术影响极大的文章,在年初里曾想把它译完的,结果post了一个未完成版  。今天,终于把完整版写完了。。发上来吧。。。带附注的Effective Emacs中文版十个提升你Emacs生产力的高招Emacs是世界上最好的编辑器(真的有很多人这么认为)。不要以为emacs只是在编写程序时很牛X,其实只要你真正精通了emacs,会发现她几乎在所有

2008-01-19 18:17:00 39437 7

原创 J语言的金字塔

http://projecteuler.net/ 是个好玩的地方,你可以当是做脑力体操,同时又可以见识很多牛人的编程技术。区区解了30多道题,1/3用erlang,1/4用python,还有剩下的是用J解决的。。最初到Project Euler去玩,纯粹是想练习一下erlang编程的。。其中有些题目,因为急躁,又想不出很方便的erlang解法,就祭起python来搞定了 (啊你问为什么我不用per

2007-12-31 23:18:00 4834 2

原创 在emacs开启几个动态语言的shell(perl, python, ruby, bean shell,groovy)

(defun python-shell()  "make a python shell"  (interactive)  (switch-to-buffer (make-comint "python" "python" nil "-i")))(defun groovy-shell()  "make a groovy shell"  (interactive)  (switch-to-buffe

2007-11-24 20:19:00 3576 3

支持到火狐19.0的firegesture

支持到火狐19.0的firegesture

2011-11-23

支持到10.0的firegesture

firefox插件。 支持到10.0的firegesture

2011-08-20

火狐手势插件firegestures及其build过程

火狐手势插件firegestures及其build过程

2011-06-20

空空如也

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

TA关注的人

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