乐篇
文章平均质量分 78
redraiment
我在大学里修软件工程专业,目前在一家外企银行中做软件开发工作。
我很喜欢我自己的专业,因此无论是在校期间或者是工作之余,我都会主动去学习一些自己感兴趣的内容。我很庆幸我的自学能力不错,所以学习的过程往往不会索然无味。
此外,我很喜欢动手实践。我会利用业余时间开发一些小工具和大家分享,来提高我们的工作效率,有几个已经发布到 google code 上。因为我信奉:学习知识是用它来改善我们的生活!
展开
-
开源不应作为推荐的理由
明天去学校啦,近两个月的暑假结束了,来总结总结这个暑假的经历。早在放假前,我就计划好了,这个暑假一定要熟悉一下 Linux 的使用。在这个期间,我也看到很多开源人士和 Windows 的铁杆粉丝们在论坛等地方吵架。有个支持开源的朋友说:“当你听到开源软件时是什么感觉?给我的,是感觉亲切,没有浓重的商业气息。”;还有很多软件商,在向用户推荐自己的产品时,都不忘加上一句,“我们的产品是完全开源的”。原创 2008-09-04 21:31:00 · 6675 阅读 · 8 评论 -
DuplexPipe二三事(三)——网络中转站:端口映射
端口映射在《DuplexPipe二三事(二)》中介绍了瑞士军刀 nc 的用法:nc 就像给程序一张飞机票,让原本只能在本地执行的程序也能运行在网络上!但网络和现实交通一样,很多地方需要中转才能到达(比如外网计算机无法直接访问公司内部 Web 服务器)。为实现公网对内部网络的访问,需要对数据进行转发(即端口映射)。比如内网“主机A”开启了 Web(port 80)服务,需要在“服务器的网关”原创 2009-09-04 10:23:00 · 3798 阅读 · 0 评论 -
DuplexPipe二三事(六)——没有第七
我的设想在着手编写 DuplexPipe 之前,我规划过我的需求:我想要一个最通用的通信工具,换言之就是能让所有具有输入/输出的程序都可以相互通信。DuplexPipe 本身远没达到这个设想,至少还得具备以下几中模式:-f file # 通过读写文件获得数据-s # 从 stdio 中获得数据-e exefile # 从本地程序的输入输出原创 2009-09-05 12:42:00 · 2862 阅读 · 0 评论 -
解决 Debian 升级后小键盘失效
经过两个月的假期,寝室里蒙上了厚厚的一层灰。擦桌子、拖地、刷马桶……忙得不亦乐乎!回到实验室,第一件事就是“aptitude update && aptitude upgrade”。经过一段不算漫长的等待,Debian 以崭新的面貌展现在我面前。但想输入密码的时候发现小键盘没反应了:按“Num Lock”指示灯还会改变,回车也依然有效,按数字却就“没反应”。再仔细观察一下,发现按“8、原创 2009-09-11 17:27:00 · 3973 阅读 · 0 评论 -
内网IP自动获取
在寝室上内网真的是很闹心呀~稍微迟点开机,IP 地址就被别人抢去了。昨晚九点放学后,一直等到十点半才连上,实在忍无可忍了!IP 被抢后解决方法无非就是找一个没被占用的地址,但手工去测试 256 个地址太折磨人了,早些时候我们班的两个同学就分别用 Java 和 C# 来实现过类似的小工具。但解决这样的小问题有点杀鸡用牛刀的感觉,不符合我的性格^_^,我当然还是用批处理来解决。批处理中核心的两原创 2009-09-23 14:11:00 · 7609 阅读 · 21 评论 -
内网IP自动获取V2
为解决上内网问题,我需要找一个 DHCP 未分配的 IP 地址来使用,在《内网IP自动获取》一文中的批处理能成功实现自动搜索。原理是逐个尝试地址是否可用,测试方法就是将本地地址设置成指定的静态 IP,然后去 ping 网关,直到找到一个成功的地址。但这种方法有些美中不足:通过 netsh 设置本地静态 IP 比较耗时间;如果 IP 已经被分配就会弹出一个消息框需要手工确认,因此并不算真原创 2009-09-24 11:37:00 · 3703 阅读 · 0 评论 -
批量检测可用域名
在《内网IP自动获取》的评论中,有个网友希望能帮忙写一个批处理来批量检测域名的可用性。但前两天都在赶文档,刚刚接到老师电话说推迟到10月08日交,心头大石终于落地^_^。所以就马上开工帮那位朋友实现这个批处理!原理很简单,就是找一个域名注册网站(比如我这里找的中国域名为 http://www.chinadomain.com.cn/),这类网站一般都提供了域名查询功能,我们只要用 curl 等命原创 2009-09-25 18:14:00 · 5569 阅读 · 5 评论 -
人所不欲,勿施于人
己所不欲,勿施于人?己所甚欲,勿施于人?人所不欲,勿施于人?原创 2010-08-17 00:33:00 · 4110 阅读 · 6 评论 -
Pig 更新: 发布 0.7 版本
Pig 发布 0.7.x 版本。原创 2011-01-03 04:26:00 · 3128 阅读 · 3 评论 -
用C语言写解释器(五)——其他一些东西
写完解释器之后这一篇文章我只想和大家侃侃编程语言的事情,不会被放到书中。因此可以天南地北地扯淡,不用像前几篇一样畏首畏尾的了。经过前面几篇文章的讨论,已经把用纯 C 语言来实现一个解释器的方法介绍完了。但那些是写给我校 C 语言初学者看的,并不只是你,我得也觉得很不过瘾 ^_^。因此准备继续深入学习编译原理等课程,希望有志同道合的朋友和我一起交流!富饶的语言(工具)在前几篇文章中一直在鼓吹我拍脑袋原创 2009-11-05 16:16:00 · 11509 阅读 · 18 评论 -
用DOS批处理来做数字图像处理
前言:我最近对语言挺着迷的,很想学习一下《编译原理》。询问了老师才知道我们已经取消了这么课程(他们觉得学了没用) ,一时间也没找到什么好的教材,如果有好心的朋友可以推荐几本关于编译原理的经典书籍,感激不尽!图灵机是由输入、输出和状态转移函数三要素组成的,广义上的自动机模型。理论上讲任何任何完备图灵机语言都可用于通用编程,并且和其他完备图灵机语言一样有效。但实际上有些此类语言作用在其特定领域之外原创 2009-07-03 14:03:00 · 7881 阅读 · 3 评论 -
DuplexPipe二三事(五)——来自内网的呼唤
穿越防火墙你是否曾经尝试过去连接一台远程计算机,却因为被防火墙拦截或路由器没有转发而造成无法通信?这是主动式连接的一个弊端:它依赖服务器的状态,而对服务器有生杀大权的只有管理员。如果能让服务器主动尝试连接我们的计算机,那就没问题了!因为防火墙、路由等一般不会过滤向外的连接(反弹式木马就是利用这一原理)。但以往的服务端程序都是采用监听本地端口的方式(比如 Windows 远程桌面程序监听本地原创 2009-09-04 20:07:00 · 7940 阅读 · 2 评论 -
linux 桌面背景随心换
偶然间在网上找到了一百张美图~都是自然风景画。据说能养眼哦~地址请看这里我的桌面背景也是该换换了,不过手工换这一百张可不好玩。windows下有桌面随心换这个现成的软件;kde下也自带这个功能。但我用的是gnome,找了半天还是没找到自带的功能。所以写了一个python脚本,让它隔10分钟换一张桌面背景。感觉好炫哈~ #!/usr/bin/env pythonBACKG原创 2008-10-10 21:17:00 · 42480 阅读 · 0 评论 -
和Pig一起学英语
谷歌金山词霸生词本有位同学看英语文档必备“谷歌金山词霸”,碰到不认识的生词就添加进“生词本”里。我想把生词本里的单词打印出来,就可以随时随地看看。但直接从生词本里导出的文档是采用UTF-8编码(用于输出音标),而且格式是混乱的(如下图所示),计算机看得懂,人看起来就很吃力了。俺的谷歌金山词霸好像暂时没有提供到处能方便打印的格式(升级后可以一张张地打印卡片)。所以就直接动手来原创 2009-02-18 12:55:00 · 7574 阅读 · 3 评论 -
永生轮回之术
前段时间看了一个视频——《科学家证明轮回的事实》。视频中疑点甚多,姑且就当科幻片看好了。很多宗教里都有生命轮回的概念,但真伪难证。今撰此文来扯扯“永生轮回”的淡,本文是在一本正经地讲一段屁话,仅供消遣切莫认真。从物理学的波开始“波”蕴含能量:在真空中没有任何阻碍,因此能力可以毫无损失地传播到任意远处;在空气或其他介质中传播,能量不断地被其他物质吸收直至耗尽。“波”储存信息:不同的频率、原创 2009-08-16 20:40:00 · 7404 阅读 · 3 评论 -
在命令行下发送短信
飞信是个不错的业务,可以通过PC端免费发短信,如果以后能一直免费下去那就是非常不错啦(奸笑ing)。为了能在 Linux 下使用,已经有不少人分析出了飞信的通信协议,比如开源的 libfection。还有一些是网页版的工具,比如“https://fetionapi.appspot.com/”。有了这些前辈们的贡献,我们就可以很轻松地写一个 Shell 脚本来实现在命令行下发送短信了。#!/bi原创 2009-08-19 14:53:00 · 3704 阅读 · 0 评论 -
关于批量重命名文件
不久前,我们软件工程系举行了全系大会。我在大会上做了简短的报告,主题是“学以致用、动手实践”。报告期间我说了一个亲身经历:以前校园内U盘病毒肆虐,病毒会把U盘里所有的文本文件加上系统属性和隐藏属性,并添加“.tmp”扩展名(例如原文件名为“a.txt”,病毒修改为“a.txt.tmp”),然后生成一个和原文件同名的病毒文件。我不幸中招,于是用我所学的知识写了一个小程序,几秒钟就解决了。原以为它原创 2009-08-29 12:52:00 · 2561 阅读 · 0 评论 -
DuplexPipe二三事(二)——瑞士军刀再显锋芒:让程序相互聊天
瑞士军刀NCnc(NetCat)是我很喜欢的一个小工具。在我常用的网络小工具中使用频率仅次于 cURL 。nc 属于传输层的工具(TCP/IP 四层模型请看这里),它能保证准确无误地发送和接收数据,但并不关心数据的具体含义(这些工作交给应用层的软件)。难怪说 nc 是网络的瑞士军刀,因为所有应用层的软件都是通过各自的网络协议来解析来自传输层的数据。所以,只要你了解应用层协议(比如HTTP、PO原创 2009-09-03 13:22:00 · 3620 阅读 · 0 评论 -
DuplexPipe-0.1_0发布
项目主页:http://code.google.com/p/duplexpipe/DuplexPipe 是我开发的一个开源网络小工具——双向管道,目的是让网络上的两个程序能进行自动化交流。当初写这个小工具的原因是为了能在外网远程控制内网计算机。传统的管道只能从一端输入、一端输出。双向管道不仅可以让进程 A 的输出作为进程 B 的输入,也会让进程 B 的输出作为进程 A 的输入。这样就可以让原创 2009-09-02 01:25:00 · 2870 阅读 · 1 评论 -
DuplexPipe二三事(一)——有趣的起因:算24
写 DuplexPipe 是因为“无聊”!真的,那天很无聊,想起小时候用扑克牌和姐姐比赛算24,就随手写了一个 Shell 脚本重温一下:#!/bin/shfor ((i=0;i<4;i++))do ((n=$RANDOM%10+1)) echo -n "$n "doneechoi=0while read expdo ((i++))原创 2009-09-03 10:56:00 · 3365 阅读 · 6 评论 -
DuplexPipe二三事(四)——网络连接方式随心换
连接方式在《DuplexPipe二三事(一)》中提到建立连接有两种方式:监听本地端口,等待其他程序来连接(以下简称“监听方式”);或者主动连接其他程序(以下简称“连接方式”)。排列组合一下,会得到三种结果:监听-连接、监听-监听、连接-连接。其中只有“监听-连接”方式能正确地建立连接,《DuplexPipe二三事(三)》中介绍的 FPipe 只是在其中添加了一节“监听-连接-监听-连接”,其中原创 2009-09-04 13:18:00 · 8553 阅读 · 0 评论 -
博客搬家
经过几夜奋战,我做出一个“不艰难”的决定:正式把博客迁移到 http://redraiment.com!http://redraiment.com 托管在 Github上,你也可以通过 http://redraiment.github.com 来访问。如果你也有兴趣搭建这样一个站点,可以简单地 Fork 一下 https://github.com/redraiment/redraiment.git原创 2013-03-17 09:33:47 · 4677 阅读 · 3 评论