Crane
Table_bottom

Search
Loading
Table_bottom

分类
Table_bottom

随机文章
Table_bottom

标签云
Table_bottom

最新评论
Table_bottom

链接
Table_bottom

功能
Table_bottom

python的一个彩蛋

今天才知道python居然还有这样一个有意思的彩蛋,使用下面这一句python代码就可以看到。


import this

执行就可以看到一段关于python理念(禅?)的介绍。

 

继续阅读

计算字符串md5的几个方法

很多时候我们都需要计算md5用来做校验或者什么的,比如下了个iso,要做个校验看下到的文件是否没有损坏,从而刻盘啊什么的。

这样的需求很好办,直接使用linux提供的工具即可:

md5sum filename

但是有时候我们只需要计算一个字符串的md5,这时可能很自然的想把这个字符串放进一个文件中,再计算这个文件的md5不就行了么。其实这种方法有个问题,就是在文件中这个字符串的末尾有不可见字符,比如换行,这样算出来的就不是原来的字符串的md5了,而是加上这个换行后的,所以这种方法不可取。

 

继续阅读

让赛扬机器性能“赶上”四核

今天用 stumbleupon 在网上上乱逛,发现这么个有意思的东西 (这里是原贴

有人在LKML(linux kernel mailing list)发贴

Hi, all

I have two machines that show very different performance numbers.

After digging a little I found out that the first machine has, in
/proc/cpuinfo:

model name      : Intel(R) Celeron(R) M processor         1.00GHz

while the other has:

model name      : Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz

and that seems to be the main difference.

Now the problem is that /proc/cpuinfo is read only. Would it be possible
to make /proc/cpuinfo writable so that I could do:

echo -n "model name      : Intel(R) Core(TM)2 Quad CPU    Q6600  @
2.40GHz" > /proc/cpuinfo
in the first machine and get a performance similar to the second machine?

这人意思是说他有两个机器,一个赛扬,一个四核,因为/proc/cpuinfo是只读的,能不能让它可写然后他用这个命令

echo -n "model name      : Intel(R) Core(TM)2 Quad CPU    Q6600  @
2.40GHz" > /proc/cpuinfo

让第一台机器的性能直逼第二台。

很明显这是恶搞,但是有个人很配合的回了句

Good catch! 'chmod +w /proc/cpuinfo' should do the trick.

把/proc/cpuinfo文件权限改下即可。

楼主又来了句

Thanks, that did the trick. My first machine is much faster now and it
even has 4 cores! :)

OMG,赛扬比四核还牛B。

呵呵,of course,这是个April Fool's Day 's joke!

测试堆的最大申请数量

看到说linux下的虚拟地址空间分给进程本身的是3GB(高址的1GB是内核空间,也就是0xc000000以上地址),所以有这样一个程序来测试用malloc最多能申请多少内存?

#include<stdio.h>
#include
unsigned max=0;
int main(void)
{
  int i,count;
  unsigned size[]={1024*1024,1024,1};
  for(i=0;i<3;i++){
    for(count=1;;count++){
      void *p=malloc(max+count*size[i]);
      if(p){
        max+=count*size[i];
        free(p);
      }
      else{
        break;
      }
    }
  }
  printf("The max memory i can alloc is %u\n",max);
  return 0;
}

在我的linux机器上跑了后发现只有1.1G左右的空间,想一下应该是内存768M+swap400多M,所以到不了那么大吧!

 

 

 

 

使用wget做网站镜像

记得以前在网上看到一个好网站的时候,因为那时上网时间少,就想着把它整个抓下来,存到自己硬盘上,想什么时候看就什么时候看,那多爽。记忆中那时用的软件就是webzip了,但是这家伙是个共享版,如果你用的不是什么什么特殊版本的话,那么这个家伙是会有限制的,功能上的限制忘了,记得的是好像它会插广告在网页内容里面,这实在是极不爽的一件事。

现在虽然上网的时候多了,要查资料的话也能随时上网查,看到好的站也能随时打个书签收藏(比如好用的用tag管理书签的delicious,书签再多也不怕),免得以后要再来看。但是又发现了这样的问题,比如说我非常喜欢某个家伙的博客,但这个家伙的博客访问比较慢,每开个页面都要等好长时间,我就想把它全部弄到本地来;或者说遇到了这样的情况,看到这样一个网站(地址),就是一本书的html版。于是想把它整个保存到本地来,这样看起来就方便了,不用每次看书都跑到人家网站去,而且这个世界,没准今天网上还找得到的资源下一分钟就没了,所以想把看到的好东西就保存起来。

其实不用webzip这些看起来很强大的软件,我们有一个命令行下的软件,短小精悍,功能强大,工作稳定,它就是wget(一个linux下的软件,不过windows下装cygwin包的话也能使用),放心,不要以为它是命令行的就很挫,它还断点续传呢,这次跑了一半关机了,没关系下次还能接着干活,只要给它个 -c  参数就行了。

要做网站镜像用wget只要3个参数就搞定了,所以就只需要打这样一条命令:

wget -mkL $URL
其中参数意义:
m --mirror 做镜像的意思
k --convert-links 把链接变成适合本地阅读的形式
L --relative只抓取与本网站相关的链接,不会因为出现别的网站的链接而一直追踪抓下去。

$URL 要抓取的网站的地址

这三个都是必要的参数,当然还有其它的参数可以实现相关功能,比如使用 -O 指定输出文件名字(默认是网站url命名),网络状况不好的话可以使用 -t NUMBER 或完整形式 --tries=NUMBER,其中NUMBER表示重试次数,0表示无限,这样就不怕网络不好异常中断了。

 敲好命令,一回车,就看到wget在努力的干活了,默认是输出详细信息,可以看到每个文件的下载进度。