一个小程序

用途:

程序执行的太快,可能相邻2s的日志会交错打印,如果看每秒处理的请求数就不太方便,可以通过如下脚本来解决

脚本:

 

深奥而又简单的“交叉编译”

吾数年来因为没能搞明白“交叉编译”说的是“谁”和“谁”交叉,所以就没有理解什么叫“交叉编译”。“交叉编译”提到了不同平台下可以执行的代码,如此的话,“交叉编译”的结果当是一个同时包含了可以在多个(至少2个)平台下能够执行的代码的一个程序了,我简直不能理解怎么能有这样的事情发生。

苦于“交叉编译”的名字的理解,我很无奈,我觉得应该翻译成“跨平台编译”更好一些,即:在一个平台上编译一个在别的平台上运行的程序; 如此这般的一个简单的概念,却因为一个翻译的问题使得其变得那么的深奥。

就是说:编译什么平台上可执行的程序和在什么平台上编译没有关系,有关系的是使用什么样的编译器来编译

参考:http://baike.baidu.com/view/650389.htm

http://sqybi.com/blog/archives/322

https://www.ibm.com/developerworks/cn/linux/l-embcmpl/

JAVA与C之间的关系

  • java可以直接编译成可执行的二进制文件,参考:http://xieruilin.iteye.com/blog/728940
    • 这种方案成熟吗?很少见到把JAVA编译成二进制文件后运行的
  • java可以通过jni的方式来访问C编译后的程序的(如:so),当然,这种so和普通的so有稍许的不同,需要通过jni的方式包装一下的,参考: http://hubingforever.blog.163.com/blog/static/17104057920115218559186/
  • javah命令就是为jni而生的
  • Android.mk简介: http://hubingforever.blog.163.com/blog/static/171040579201152185542166/
    http://hubingforever.blog.163.com/blog/static/1710405792011656434982/
  • NDK
    Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。
    众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。
    NDK包括了
    • 从C / C++生成原生代码库所需要的工具和build files。
    • 将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中。
    • 支持所有未来Android平台的一些列原生系统头文件和库
    为何要用到NDK?
    概括来说主要分为以下几种情况:
    1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
    2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。
    3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。

    参考:http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html

PHP中执行命令的一个问题

1. 首先在命令行尝试如下命令:

for i in {1..4098}; do echo 1; done| grep 1|head -n 2

输出:

1

1

没有任何问题

2. 使用PHP执行该命令:

得到结果如下:

grep: writing output: Broken pipe
grep: writing output: Broken pipe
1
1

 

为什么?

 

HTML5

学习HTML5需要了解的两个网址:

http://www.whatwg.org/

http://www.w3.org/TR/html5/

其它:

http://zh.wikipedia.org/wiki/WHATWG

 

网页超文本技术工作小组英语:Web Hypertext Application Technology Working Group,缩写为WHATWG),是一个以推动网络 HTML 5 标准为目的而成立的组织。在2004年,由OperaMozilla基金会苹果这些浏览器厂商组成。

 

HTML5 的标准制定者 WHAT 工作组和 W3C 最终选择了 分道扬镳。WHAT 工作组将会继续致力于为 HTML5 制定一个不断进化的动态标准,而 W3C 则会依照传统编号的版本控制系统构建一个静态快照版的标准。

此前这一分歧在 2011 年一月已经出现,这次的公开分手也在情理之中。WHAT 工作组的成员主要由来自苹果和 Mozilla 的一批希望推动互联网标准进化的人组成,而 W3C 这种大型组织则有着自己繁琐的条例需要去维护遵守。现在的状况是一批激进的技术派全力拖着保守组织前进时,发现自己没办法保持双方步调一致,索性弃掉辎重轻装前进。虽然 HTML5 的发起者 Ian Hickson 认为这次分裂并不会造成两种标准间太多的冲突,即使有也只是一种标准更精准而已,但是他在公开邮件中又意味深长的加了一句“浏览器厂商自然会知道去采用更精准的标准”。

javascript 类型数组处理二进制数据

Javascript中,我们总是只能使用: String.fromCharCode(i)     charAt(i)      charCodeAt(i)  和一些位移操作来操作二进制数据,下面介绍了类型数组来帮助处理二进制数据:

http://www.khronos.org/registry/typedarray/specs/latest/

http://www.2cto.com/kf/201204/126017.html

http://caniuse.com/#feat=typedarrays

一些数学名词的由来

“函数”命名的来历

为什么 function 翻译成函数?我对当年这两个字是怎么来的从来就没搞清过。。。 我知道function(函数)是什么,我就是不知道为什么这么翻译?

做这个翻译的最早是中国清朝数学家李善兰,出现于其著作《代数学》。之所以这么翻译,他给出的原因是“凡此变数中函彼变数者,则此为彼之函数”,也即函数指一个量随着另一个量的变化而变化,或者说一个量中含有另一个量。此后这个名称一直沿用。
摘自: http://www.guokr.com/question/445814/


“方程”命名的来历

现在我们所说的方程的确切定义是指含有未知数的等式。但是方程一词在我国早期的数学专著《九章算术》中,意思指的是包含多个未知量的联立一次方程,即现在所说的线性方程组。
《九章算术》有一道题目,把它翻译成现代语言就是:现在这里有上等黍3捆、中等黍2捆、下等黍1捆,打出的黍共有34斗;另有上等黍1捆、中等黍2捆、下等黍3捆,打出的黍共26斗。请你回答,上、中、下等黍各1捆所打黍的斗数为x,y,z根据题意列方程:
3x+2y+z=39(1)
2x+3y+z=34(2)
x+2y+3z=26(3)
但是《九章算术》里并没有列出像上面的方程来,而是画出一个等式,通过等式计算出答案来。
到了魏晋时期,大数学家刘徵注《九章算术》时,给这种“方程”下的定义是:“程,课程也,群物总杂各列有数,总言其实,令每行为率。二物者再程,三物者三程,皆如物数程之,并列为行,故谓之方程。”大家应该注意的是,这里所谓的“课程”也不是我们今天所说的课程,而是按不同物品的数量关系列出的式子。“实”就是式中的常数项。“今每行为率”,就由一个条件列一行式子,横列代表一个未知量。“如物数程之”,就是有几个未知数就必须列出几个等式。因为各项未知量系数和常数项用等式表示时,几行并列成一方形,所以叫作“方程”,它就是现在代数中讲的联立一次方程组。
《九章算术》中还列出了解联立一次方程组的普遍方法——“方程术”。当时又叫它“直除法”,和现在代数学中能用的加减消元法是基本一致的,而这也是世界上最早的。这种解法,公元7世纪印度才出现,在欧洲,1559年,瑞士数学家彪奇才开始用不同的字母表示不同的未知数,并提出三元一次方程组不很完整的解法,因为他们那时还没有认识到负数,这比《九章算术》要迟1500多年。

摘自:http://www.meblog.cn/user3/5862/archives/2007/26034.shtml

参考: http://baike.baidu.com/view/5925.htm