病毒 xviewer.exe 简析
搞到了个病毒,想看看它想干什么,扔虚拟机里跑了几次。PS: 这个病毒真大,9M 多了。
第一次,观察到其进程结构为一个 winloads.exe 进程下生成三个 xviewer.exe 工作进程。winloads.exe 无法被 Process Explorer 杀死,而 xviewer.exe 可以。工作进程总保持为三个。病毒运行过程中,耳机不时传来 Windows 页面刷新...
formValidator js框架
昨天拿到一个前端传来的个人注册的页面,说里面可以完美的验证各个控件,然后有些许好奇,就去看了看。发现用了一个js的验证框架 名曰: formValidator 。
简单的看了看,还是基于jquery的一套玩意儿~ 用起来还是不错的,导入js后,基本只需要一句话就可以搞定
<link type="text/css" rel="s...
尾递归改写为递归
做备忘用.
上代码
#lang racket
;;factorial
;;non-tail recursion
(define (fact1 n)
(if (= 0 n)
1
(* n (fact1 (- n 1)))))
;;factorial
;;tail recursion
(define (fact-a...
对于断言 ASSERT 的理解
昨天看了《代码大全》的“防御式编程”章节,解惑了长期以来自己对于断言的理解。
书中给了使用断言的指导意见,如下
用错误处理代码来处理预期会发生的状况,用断言来处理绝不应该发生的状况。
避免把需要执行的代码放到断言中
用断言来注解并验证前条件和后条件
对于高健壮性的代码,应该先使用断言再处理错误...
linux下进程通信——无名管道
1、管道的创建
管道是基于文件描述符的通信方式,使用pipe()函数可以创建一个管道,同时会创建两个文件描述符fd[0]和fd[1],其中fd[0]固定于读管道,而fd[1]固定于写管道。
2、管道的关闭
由于在创建管道时我们得到的管道信息只有两个文件描述符,所以关闭这个管道只需关闭这两个文件描述符。可以使用普通的close()函数逐个关闭返回的两个文件...
Psych、Syck、YAML 和编码
这次 is-programmer 升级碰到了一个很棘手的问题,花了好长时间才把大致的原因搞明白,这里记录一下经过。
背景
在 Ruby 1.9.2 之前,YAML 的解析使用的是 Syck 这个引擎,而从 1.9.3 之后,默认的引擎变成了 Psych。Psych 相比 Syck 有以下优点:
可以正确处理 UTF-8 字符。
基于的底层库是...
无刷电机初调
最近还做了个小实验,无刷电机驱动,这个电机的的驱动方法还真的比较复杂,不想直流电机 步进电机,给电平就能转,既要驱动电路保护驱动,还要程序上的事实电平转换驱动,结合起来还是不容易的。只是一直比较懒每次都是弄一半一半的, 这回终于把小实验做了。但还是开环的驱动程序。
为了做准确的做PWM 输出,PWM 端口控制必须要在程序中断中做出,而且要及时,指令过多 或判...
coterx-M3 学习开发板
买过两次板子,这想再也不买了,全都自己做从硬件到软件,更加熟悉这个东西,去年做了一版很是有问题,今年过年后马上把新做了一版送去做样板回来了,这里非常感谢sky.Wang的帮助。
正面
反面
焊好的一部分
总归有点像样,简单的程序也调通了一部分,不过没打算仔细调太多,主要是熟悉片子的使用,后面有设计计划用上...
Ruby 中 flip-flop 表达式的真谛:JK 触发器
今天看 Matz 的《Ruby编程指南》,遇到一个被称为「flip-flop」的奇特表达式:
在一个由条件式或循环所构成的上下文中,一个 flip-flop 由两个通过..操作符相连的布尔表达式构成。除非其左侧表达式为 true,否则一个 flip-flop 表达式就是 false,而且在左侧表达式为 true 之前,它的值都会是 false。一旦该表达式为 true ...
[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
GAS 汇编-1:起步
百度离职后,随着递归式学习的深入,我的涉猎从Lisp/Scheme/SICP,到APUE,最近又转入到了汇编语言上。老实说,汇编这种文物级的东西,在一般的计算机编程中是绝难碰到的。但是计算机工程学到一定层次,瓶颈所在,就会发现,总是有那么几样东西,诸如汇编、C、算法、编译原理、体系结构、操作系统、网络数据库等,这些基础知识绕不过,躲不开,而能否跨越这些坎,从某种意义上决定了一个程序员能...
PHP命名空间
究竟什么是"命名空间"呢? 看看中文手册是怎么说的:
命名空间概述
什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。
例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。
具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /h...
ie6 7下display:inline-block失效解决办法
就在十分钟前,被这个不是经常接触的bug狠虐了。
ok,下面贴出解决办法。
<!DOCTYPE html>
<html lang="gb2312">
<head>
<meta charset="gb2312" />
<title>example</t...
ff下css最小高度bug(个人观点)
接触web不久,对css的理解也不是很深刻,前两天就被它华丽丽的虐了。
问题出在ff下,因为我使用cms来做网站,使用cms通常都会涉及到一个数据采集的范畴,问题就出在这。在ff下,比如一个加背景的显示页面,需要嵌套3层来完成(上、中、下),其中上、下的高度可以是固定的,而中间的高度通常不能固定(因为你永远不知道将来要加的数据的长度)。而写css样式的时候,我通常是最外...
javascript insertAfter method
//insertAfter method
function insertAfter(newElement,targetElement) {
var parent = targetElement.parentNode;
if (parent.lastChild == targetElement) parent.appendChild(newElement);
...