- 博客(119)
- 资源 (19)
- 收藏
- 关注

原创 感谢榜
由于我的精力和水平都有限,写的文章中难免存在一些错误。所幸得到热心网友的指正,才能不断修改、完善。我无法像 Knuth 一样为每个错误的头一个发现者支付奖金,故在此罗列各位网友的贡献,让他们收获属于他们的荣誉!2010-01-25:网友黄海提供在 Linux 下通过 nc 来实现 DuplexPipe 的方法,详见《Linux下用nc实现DuplexPipe》。网友Kusk在评论中指出,在《戏说C
2009-12-24 10:23:00
1888
原创 博客搬家
经过几夜奋战,我做出一个“不艰难”的决定:正式把博客迁移到 http://redraiment.com!http://redraiment.com 托管在 Github上,你也可以通过 http://redraiment.github.com 来访问。如果你也有兴趣搭建这样一个站点,可以简单地 Fork 一下 https://github.com/redraiment/redraiment.git
2013-03-17 09:33:47
4722
2
原创 循环 vs 递归
注:本文代码使用 JavaScript。一些同学对递归的理解还停留在“是一种求阶乘比循环低效的方法”。但其实递归和循环处理的问题是不同。拿“遍历数组”这个问题来说:循环适合同一维度(单层长度不限)上的遍历,而递归则适合跨维度(层数不限)的遍历。比如遍历以下一维数组:var a1 = [1];var a2 = [1, 2];var a3 = [1, 2, 3];虽然它们长度不一,但循环应付它们非
2013-02-28 09:04:07
5043
原创 消灭成堆的分支语句之类责任链模式
摘要分支语句是所有编程语言的基本元素,比如Java语言中的if else和switch语句,它们提供一种能力允许程序根据一些条件动态地选择执行某些代码块。这种动态性给程序带来了很多的灵活性!正因为if else如此方便如此灵活,很多代码中它都会被滥用,就像下面这样让人崩溃的、嵌套的、成堆的分支语句:if (context.equals("tutorial-room")) { if (pag
2013-01-26 22:47:05
5090
原创 第一款微信小游戏:开窗!
利用微信的公众平台接口,我开发了一款“开窗”小游戏。玩过文曲星的同学对这款小游戏不会陌生。 除了实现游戏本身的逻辑,我还加入了“入门级”、“初级”、“中级”、“高级”等不同的游戏难度。每个难度等级就是一个独立的房间,拥有独立的擂主(用最少步数完成目标)。如果你坐上擂主之位,就能向房间里所有的玩家发一句擂主宣言! 为了让大家快速上手,游戏还提供了额外的“教程”房间,一步一步教你所有规则!就像
2013-01-25 22:08:15
7739
1
原创 EDBC居然被顶到Hacker News的首页!
今天早上醒来在 Hacker News 上发布了 EDBC 的信息,没想到一下子被顶到首页上去了!大家都去围观一下,嘿嘿~http://news.ycombinator.com/item?id=4967432
2012-12-26 09:29:49
4935
原创 EDBC(Emacs-Lisp Database Connectivity)
今天更新了之前的 Emacs-CGI,把其中的数据库连接模块拎出来,作为一的独立的项目:EDBC(Emacs-Lisp Database Connectivity)。项目地址:https://github.com/redraiment/edbc 文档地址:https://github.com/redraiment/edbc/wiki现在通过抽象,edbc.el 就是定义了一个框架,规范了 elis
2012-12-25 23:14:19
13192
原创 微信版中文计算器
我最近一直在“叫嚷”中文计算器 ,最早发布的是网页版的,纯JS实现;半个月前又发布了微博版的;今天实现了微信版! 通过扫描下面的二维码,或者搜索用户名 calc-cn,或者在“查找微信公众帐号”中搜索“中文计算器” 来添加!
2012-12-25 23:10:51
8628
原创 微博版中文计算器!
@中文计算器 还有童鞋记得我之前发布的“中文计算器”不? 经过几天的忙活,我终于用php重写了这个中文计算器,并发布了“微博版”! 所谓的微博版其实就是我开通了一个叫“中文计算器”的微博帐号,只要你发一条包含表达式的微博,同时 @中文计算器,它就能自动帮你计算!如下图所示。 目前“微博版中文计算器”只支持“加、减、乘、除、除以”五种运算,但数值支持无限精度整数和十六位小数~如果你感到喜
2012-11-27 22:40:58
4250
1
原创 中文计算器更新!
刚刚做了升级,支持输出“中文简写”,“中文大写”,“金额”以及“阿拉伯数字” 四种格式。http://chinesecalculator.sinaapp.com/
2012-10-24 00:05:32
4935
原创 燕雀安知鸿鹄之志
太阳能手电筒昨天参加完OSC源创会之后,和几个同事一起在肯德基啃鸡腿。期间聊起我前天开发的“中文计算器”,同事的想法和网上的评论差不多,觉得这是一个无聊的作品,没什么现实意义。顺着这个话题,又聊到什么是最没用的发明?同事说当初看《国产凌凌漆》的时候,达文西发现的那个“太阳能手电筒”是他看来最没用的!手电筒本来就是在黑暗的地方用来照明的,而他的发明只能在有光的地方才亮,在黑暗的地方就“绝对不会亮”。
2012-10-21 23:28:05
6010
2
原创 来试试纯汉语中文的计算器~
计算器程序相信很多人都写过。不过通常都是基于阿拉伯数字的,比如输入 1+2+3,返回 6。 我刚刚实现了一个纯汉语中文的计算器,即输入 一加二加三,返回“六”。 程序是用 JS 实现的,大家可以玩玩~^_^ http://chinesecalculator.sinaapp.com/
2012-10-20 00:19:09
5339
7
原创 Node.js 初体验
又到周五晚上自由时间,^_^。今天看了一下 Node.js。服务器端 JS 情缘在校期间我学会了JavaScript和Java,当时我就在考虑JS有没有类似JSP一样的服务器端程序,名字应该是JSSP(JavaScript Server Page),可以在 HTML 中嵌入 JS。Google了一圈发现IIS支持用JScript代替VBScript做ASP开发,另外SourceForge上真有个叫
2012-09-22 00:36:06
6334
4
原创 [Emacs-cgi] 登入页面
最新进展:Emacs-cgi 加入对存取 Cookie 和 Session 的支持,以及页面之间跳转(redirect和forward)。项目地址:https://github.com/redraiment/emacs-cgi。下面以一个登入页面作为示例:首先是首页:如果用户为登入,显示输入框提示用户输入用户名;否则输出欢迎词。#!/usr/local/bin/elisp(require 'c
2012-09-03 19:16:36
5024
原创 用 Emacs Lisp 开发 CGI 程序
Emacs Lisp 作为编程语言也是非常强大的。尤其 Emacs 作为一款编辑器,自带了很多处理文本的函数,用起来很方便。我一直希望用 Emacs Lisp 作为服务端脚本语言来开发 Web 程序。在网上搜索了很久,还真有人做过类似的事情:http://www.emacswiki.org/emacs/cgi.el。但他封装的还不够彻底,用起来还是挺麻烦,于是自己动手写了一个。目前支持:scrip
2012-09-02 10:14:50
4837
1
原创 JS访问数据库[非Node.js]
提起服务器端 JavaScript,很多人第一反应都是 Node.js。其实 Java 6 开始包含 Script Engine,其中就自带了一个“阉割版”的 Mozilla Rhino - 纯 Java 实现的 JavaScript 解释器。使用 jrunscript 就能启动这个解释器。使用 Rhino 的好处是你能使用 JavaScript 语言做开发,但又能使用现成的浩瀚的 Java 库!
2012-08-22 09:20:07
6347
4
原创 猜数字游戏及自动解猜数字程序
都是寂寞惹得祸...网络故障已经四天了,强烈谴责华数网通这种低效率的行为(好吧,谴责有个屁用)。实在无聊,于是写了一个猜数字游戏:随机生成一个[0, 99]之间的整数,如果猜得小了就显示 Too small,大了显示 Too big,否则显示 You are right。作为添头,前面会以英文序数词输出 The first time, The second time...(setf *random
2012-08-21 20:02:49
6411
2
原创 Lisp 匿名递归函数 v2:在 Common Lisp 中实现 Clojure 的 fn
我在之前的文章《Lisp 匿名递归函数》中提及 Emacs Lisp、Scheme 和 Common Lisp 中默认都没提供定义可递归的 lambda 函数的方法。并在文章里提供了我自己实现的 Emacs Lisp 版本和 Common Lisp 版本。在那之后,我学习了 Clojure,发现 Clojure 中的 fn 在定义 lambda 函数的同时还允许给它取一个临时的名字,这样就能在函数
2012-08-04 19:39:15
5785
1
原创 BrainFuck 解释器(C语言实现)
码农的业余休闲活动就是去学习一门冷门的语言或者研究一项非主流的技术。BrainFuck 是一门小巧的编程语言,顾名思义,阅读这门语言的代码就像在强奸你的大脑一样。事实证明开发它的解释器比读懂它的 Hello World 要快。BrainFuck只有八条指令: 指令 含义 等价的C代码 > 指针加一 ++ptr;
2012-04-20 22:25:10
20625
原创 收集一些在线的 REPL
刚开始学编程的时候,是不是对搭建环境感觉非常棘手?比如从零开始搭建个 PHP Web 开发环境,要下载 Apache 服务器、PHP,然后安装、配置……经过这么一大堆的无关工作,你可能只是想验证一下教程上的 echo "Hello World"; 能不能工作。这种时候,如果能有个网站可以在线执行代码:我们只要打开浏览器,进入网页,敲入要执行的代码,点击执行按钮就看到执行结果。那是一件多畅快的事情!
2011-11-06 18:18:39
11760
翻译 命令行界面设计
p { font-size: 16px;}《Designing command-line interfaces》原文地址:http://www.antoarts.com/designing-command-line-interfaces/正文虽然已存在大量关于图形用户界面
2011-08-12 23:59:55
6772
原创 Lisp 匿名递归函数
主流的 Lisp 实现(CLISP、Guile、Emacs Lisp 等)中默认都没提供定义匿名的递归函数的方法。上 Google 搜索了一下,看到不少人也都在抱怨。不过 Lisp 一个特色就是你可以自己动手添加需要的语言特性!于是我就尝试着自己写一个宏来实现这个功能。用 Lis
2011-08-05 22:22:13
5240
原创 Emacs 中给文本加引号的插件
前几天 @刘鑫-MarchLiu 在微博上发布了一个给给文本加引号的插件:http://weibo.com/1729408273/eDcC8e8w6aD。不过用起来有点小问题:两头都只能插入一个字符,因此不能用于添加 XML 标签;光标控制上有个 bug,每次执行后光标会往左移动
2011-07-08 20:50:40
2763
原创 是否存在一种专门编辑文本的脚本语言?
据大家所知,有没有这样一种脚本语言:专门用于编辑文本信息?我现在是比较习惯 Emacs 的快捷键,而且最近使用的键盘按方向键不太方便,所以很希望所使用的软件都能用 Emacs 的快捷键来操作。一开始,我使用 XKeymacs (日本人开发的一款小工具),它能把 Windows 下所有应用程序的快捷键都转换成 Emacs 的。不过这个软件不太稳定,和 mitty 等软件配合得也不好;可配置性
2011-06-17 19:26:00
2023
3
原创 [JavaScript] 数字金额大写转换 v2
几天前分享了一段 JavaScript 版的《整数金额大写转换》,不过只能处理整数的。刚刚做了一个改进,可以处理两位小数(角和分)和负数(欠款)。function digit_uppercase(n) { var fraction = [角, 分]; var digit = [ 零, 壹, 贰, 叁, 肆,
2011-06-16 12:32:00
4006
1
翻译 E4X教程[5] - 全局 XML 对象
全局 XML 对象E4X-capable JavaScript 引擎在全局对象上放了一个新的属性。XML 对象有许多属性允许你定制解析和序列化 E4X。XML 元素从他们创建开始就记住 XML 对象的设置。扩展 XML.prototypeXML.prototype 和 XMLList.prototype(XMLList.prototype 实际上就是 XML.prototype)不能像
2011-06-15 19:47:00
2553
4
翻译 E4X教程[4] - 命名空间
E4X 与 命令空间通常情况下,XML 文档包含来自多种命令空间的元素。你可以通过声明为你的 E4X 对象设置默认的命名空间。default xml namespace = "http://www.w3.org/1999/xhtml";通过重复的声明,你可以随时更改相同范围内 E4X 的命名空间。default xml namespace = "http://www.w
2011-06-15 13:39:00
1871
翻译 E4X教程[3] - 后代与筛选器
访问后代节点很多时候,你感兴趣的节点往往不是 XML 根节点的子节点,而是嵌套在多层下的后代节点。你可以使用 .. 操作符访问任意深度的节点,或者使用 descendants 性质。例如:var element = ;element..fido.@color
2011-06-15 12:21:00
1409
翻译 E4X教程[2] - 访问 XML 子节点
访问 XML 子节点JavaScript 对象通常使用 . 或 [] 来设置性质。var a = {};a.foo = 1;a["bar"] = 2;在 E4X 中,点(.)和中括号([])操作符用来访问 E4X 元素的子节点。var element1 = ;var element2 = ;
2011-06-15 11:41:00
2537
翻译 E4X教程[1] - 入门
基本语法如果启用了 E4X,基本的 XML 元素就是有效的语法。例如:var element = 在开启了 E4X 的浏览器里完全有效。变量的声明也不局限于单个元素,并且和 JavaScript 一样可以扩多行。var element2 = 此外,和一般的 XML 文档一样,你能给一个元
2011-06-14 21:29:00
2700
5
翻译 E4X教程[0]
原文地址:https://developer.mozilla.org/en/E4X_Tutorial概述本教程指导你掌握 E4X(EcmaScript for XML)的基本语法。使用 E4X,程序员可用更熟悉的 JavaScript 编程语法来操作 XML 文档。主题入门访问 XML 子节点后代和筛选器命名空间全局 XML 对象
2011-06-14 21:25:00
1331
原创 [JavaScript] 整数金额转汉语数字大写
前几天用网银给朋友转账,在金额一栏中输入阿拉伯数字,右边会立即显示出相应的汉语数字大写。感觉挺有意思,就到网上搜索一下现成代码(没怎么仔细找),找到一段 Java 的和一段 C# 的。不过感觉它们的实现都很繁琐,或者说不够优雅。最重要的是功能上有缺陷,比如 100 被翻译成“壹佰零拾零”,在汉语中我们习惯说“壹佰元整”。所以,就考虑自己动手写一个小程序。我现在也有点思维定势了:一提起处理文本,
2011-06-13 22:35:00
2818
2
原创 鼠标和键盘的故事
关于键盘昨天订了一台 Happy Hacking Keyboard 白版英文配列,今天早上收到。梦寐以求的键盘终于到手了,花了我不少米。不过我也是带键盘上班一族了,哈哈。回来后想得瑟一下,让同学们猜它多少钱,第一个同学试探着问:“70 元?”第二个同学更狠,说:“50 元!超过 50 元你绝对被宰了!”好吧,那我真是彻头彻尾地被“宰”得体无完肤了,这键盘花了我 2K 块,它
2011-06-13 22:12:00
3671
5
原创 在 Cygwin 下编译 netcat_1.10-38
在 Cygwin 里手工编译并安装 netcat_1.10-38 版本,并模式 WireShark 的监听功能。
2011-03-18 08:06:00
5704
4
翻译 AutoHotKey 新手入门教程
这一教程翻译自 http://www.autohotkey.com/docs/Tutorial.htm该教程将帮助新手快速地学会以正确地方式编写自己的宏和热键。
2011-02-13 23:21:00
86331
10
Lisp 入门教程 中文版
2011-06-30
Pig(谷歌金山词霸生词本转换器)
2010-02-03
编程村一日游 什么是编程 C语言指针和数组的区别 PPT
2010-01-10
用XP桌面图标玩贪吃蛇(附VB源代码)
2009-10-06
DuplexPipe-0.3_0_ch(开源项目)
2009-10-06
用XP桌面图标玩贪吃蛇(附源码)
2009-10-06
超星pdg转pdf工具
2008-08-20
ACM HDU 2000->2099 解题报告
2008-06-11
汉字转字符图片(java源码)
2008-03-07
java拼图游戏(含源码)
2008-02-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人