Avatar_small

病毒 xviewer.exe 简析

搞到了个病毒,想看看它想干什么,扔虚拟机里跑了几次。PS: 这个病毒真大,9M 多了。 第一次,观察到其进程结构为一个 winloads.exe 进程下生成三个 xviewer.exe 工作进程。winloads.exe 无法被 Process Explorer 杀死,而 xviewer.exe 可以。工作进程总保持为三个。病毒运行过程中,耳机不时传来 Windows 页面刷新...

Avatar_small

formValidator js框架

昨天拿到一个前端传来的个人注册的页面,说里面可以完美的验证各个控件,然后有些许好奇,就去看了看。发现用了一个js的验证框架 名曰: formValidator 。 简单的看了看,还是基于jquery的一套玩意儿~ 用起来还是不错的,导入js后,基本只需要一句话就可以搞定 <link type="text/css" rel="s...

Avatar_small

尾递归改写为递归

做备忘用. 上代码 #lang racket ;;factorial ;;non-tail recursion (define (fact1 n) (if (= 0 n) 1 (* n (fact1 (- n 1))))) ;;factorial ;;tail recursion (define (fact-a...

Avatar_small

对于断言 ASSERT 的理解

昨天看了《代码大全》的“防御式编程”章节,解惑了长期以来自己对于断言的理解。 书中给了使用断言的指导意见,如下 用错误处理代码来处理预期会发生的状况,用断言来处理绝不应该发生的状况。 避免把需要执行的代码放到断言中 用断言来注解并验证前条件和后条件 对于高健壮性的代码,应该先使用断言再处理错误...

Avatar_small

linux下进程通信——无名管道

1、管道的创建   管道是基于文件描述符的通信方式,使用pipe()函数可以创建一个管道,同时会创建两个文件描述符fd[0]和fd[1],其中fd[0]固定于读管道,而fd[1]固定于写管道。 2、管道的关闭   由于在创建管道时我们得到的管道信息只有两个文件描述符,所以关闭这个管道只需关闭这两个文件描述符。可以使用普通的close()函数逐个关闭返回的两个文件...

Avatar_small

Psych、Syck、YAML 和编码

这次 is-programmer 升级碰到了一个很棘手的问题,花了好长时间才把大致的原因搞明白,这里记录一下经过。 背景 在 Ruby 1.9.2 之前,YAML 的解析使用的是 Syck 这个引擎,而从 1.9.3 之后,默认的引擎变成了 Psych。Psych 相比 Syck 有以下优点: 可以正确处理 UTF-8 字符。 基于的底层库是...

Avatar_small

无刷电机初调

最近还做了个小实验,无刷电机驱动,这个电机的的驱动方法还真的比较复杂,不想直流电机 步进电机,给电平就能转,既要驱动电路保护驱动,还要程序上的事实电平转换驱动,结合起来还是不容易的。只是一直比较懒每次都是弄一半一半的, 这回终于把小实验做了。但还是开环的驱动程序。 为了做准确的做PWM 输出,PWM 端口控制必须要在程序中断中做出,而且要及时,指令过多 或判...

Avatar_small

coterx-M3 学习开发板

买过两次板子,这想再也不买了,全都自己做从硬件到软件,更加熟悉这个东西,去年做了一版很是有问题,今年过年后马上把新做了一版送去做样板回来了,这里非常感谢sky.Wang的帮助。 正面 反面 焊好的一部分 总归有点像样,简单的程序也调通了一部分,不过没打算仔细调太多,主要是熟悉片子的使用,后面有设计计划用上...

Avatar_small

Ruby 中 flip-flop 表达式的真谛:JK 触发器

今天看 Matz 的《Ruby编程指南》,遇到一个被称为「flip-flop」的奇特表达式: 在一个由条件式或循环所构成的上下文中,一个 flip-flop 由两个通过..操作符相连的布尔表达式构成。除非其左侧表达式为 true,否则一个 flip-flop 表达式就是 false,而且在左侧表达式为 true 之前,它的值都会是 false。一旦该表达式为 true ...

Avatar_small

[Linux]Ubuntu的ld不搜索/usr/lib/x86_64-linux-gnu的问题

今天在ubuntu(for AMD64)下编译gcc-4.6.3时遇到如下错误: /usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory collect2: ld 返回 1

Avatar_small

GAS 汇编-1:起步

百度离职后,随着递归式学习的深入,我的涉猎从Lisp/Scheme/SICP,到APUE,最近又转入到了汇编语言上。老实说,汇编这种文物级的东西,在一般的计算机编程中是绝难碰到的。但是计算机工程学到一定层次,瓶颈所在,就会发现,总是有那么几样东西,诸如汇编、C、算法、编译原理、体系结构、操作系统、网络数据库等,这些基础知识绕不过,躲不开,而能否跨越这些坎,从某种意义上决定了一个程序员能...

Avatar_small

PHP命名空间

究竟什么是"命名空间"呢? 看看中文手册是怎么说的: 命名空间概述 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。 例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。 具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /h...

Avatar_small

ie6 7下display:inline-block失效解决办法

就在十分钟前,被这个不是经常接触的bug狠虐了。 ok,下面贴出解决办法。 <!DOCTYPE html> <html lang="gb2312"> <head> <meta charset="gb2312" /> <title>example</t...

Avatar_small

ff下css最小高度bug(个人观点)

接触web不久,对css的理解也不是很深刻,前两天就被它华丽丽的虐了。 问题出在ff下,因为我使用cms来做网站,使用cms通常都会涉及到一个数据采集的范畴,问题就出在这。在ff下,比如一个加背景的显示页面,需要嵌套3层来完成(上、中、下),其中上、下的高度可以是固定的,而中间的高度通常不能固定(因为你永远不知道将来要加的数据的长度)。而写css样式的时候,我通常是最外...

Avatar_small

javascript insertAfter method

//insertAfter method function insertAfter(newElement,targetElement) { var parent = targetElement.parentNode; if (parent.lastChild == targetElement) parent.appendChild(newElement); ...